【SCM学習】高度な周辺機器とアイテム1:温度センサーDS18B20

【朱さんのコース概要侵入】

最初の部分、章リスト

2.1.1.DS18B20関連の背景知識1

2.1.2.DS18B20関連の背景知識2

2.1.3。概略図とデータシート1

2.1.4。概略図とデータシート2

2.1.5。概略図とデータシート3

2.1.6。概略図とデータシート4

2.1.7。概略図とデータシート5

2.1.8.DS18B20ワークフロー分析

2.1.9.DS18B20のプログラミングポイント

2.1.10.DS18B20移植実験1

2.1.11.DS18B20移植実験2

2.1.12.DS18B20移植実験3


第二部、章の紹介

2.1.1。DS18B20関連の背景知識1
    このセクションでは、最初に第1シーズンの内容を要約し、第2シーズンの詳細な計画と学習目標を正式に紹介し、最後に温度センサーの開発プロセスについて説明します。
2.1.2。DS18B20関連の背景知識2
    このセクションでは、DS18B20温度センサーの基本的な特性を詳細に紹介します。この情報はデータシートからのものであり、このセンサーの一般的な理解をすべての人に提供することを目的としています。
2.1.3。
    概略図とデータマニュアル1このセクションは、18B20データマニュアルを読むことから始まります。コアは、ブロックダイアグラムと、温度値と読み取られたデジタル値の間の対応する変換関係を理解することです。これは、後続のプログラミングにとって非常に重要です。    
2.1.4。概略図とデータマニュアル2
    このセクションでは、主にアラーム設定、64ビット読み取り専用ROMなどのデータマニュアルを読み続けます。
2.1.5。概略図とデータシート3    
    このセクションでは、DS18B20の低レベルのタイミングの分析、主に初期化とチップ存在検出のタイミングの分析を開始します。そして、初期化関数のソースコードと比較。   
2.1.6。概略図とデータマニュアル4
    このセクションでは、主に18B20の低レベルのバイナリ読み取りおよび書き込みタイミングについて説明します。これらのタイミングは、コントローラと18B20が命令データを送受信するための基本的なタイミングです。
2.1.7。概略図とデータマニュアル5
    このセクションでは、公式サンプルコードのバイト読み取りおよび書き込み機能のソースコードを組み合わせて、低レベルの読み取りおよび書き込みタイミングを比較および分析し、理解を深めます。
2.1.8。DS18B20ワークフロー分析
    このセクションでは、DS18B20ワークフローを分析します。これは、実際には高レベルのタイミングの実現です。そして、ROM操作命令と機能命令に焦点を合わせました。
2.1.9.DS18B20のプログラミングポイント
    このセクションでは、DS18B20プログラム移植の要点を説明し、その後、ステップ
2.1.10でプログラム移植を段階的に実行します。DS18B20移植実験1
    このセクションでは、正式に移植実験を開始します。このセクションでは、主に初期化機能テストについて説明します。
2.1.11。DS18B20移植実験2
    このセクションでは、高レベルのタイミングを追加し、温度を読み取るためのテスト関数を記述します。移植の重要なポイントは、タイミングの遅延です。
2.1.12。DS18B20移植実験3
    このセクションの実際のテストコード、読み取られた温度値が処理され、シリアルポートが出力されます。

    
パート3、教室の記録

2.1.1.DS18B20関連の背景知識1

2.1.1.1。温度センサー
(1)温度の測定方法:

  • 物理学(Hg、空気圧)
  • エレクトロニクス(金属の電気的特性(抵抗率と導電率)は温度によって変化します)

(2)初期段階:サーミスタNTC(アナログインターフェース):AD変換とキャリブレーションを実行するのは面倒です
(3)最新:特殊センサー

  • I2C、DS18B20シングルバス(1線式)インターフェースなどのデジタルインターフェース。
  • 温度値を直接読み取ることができ、AD変換チップが内部に統合されています
    ソース画像を表示


2.1.2.DS18B20関連の背景知識2

DS18B20データシート

2.1.2.1 DS18B20の基本機能
(1)内蔵ADC、外部デジタルインターフェースDQ
(2)シングルバス(1線式)デジタルインターフェース、低配線コスト
(3)内蔵メモリに格納された内蔵の一意の64ビットシリアル番号(世界で唯一のDS18B20のIDカード番号であり、ネットワークカードのMACアドレスと同様で、工場出荷時に持ち込まれ、変更はできません)
(4)CPUは無制限の数のDS18B20と直列に接続できます
(5)広い温度範囲と高精度(相対)
( 6)デジタル値の温度分解能の桁はソフトウェア(9〜12桁)で異なる分解能と異なる精度で設定できます
(7)高速温度取得速度(750ms)
(8)温度しきい値アラーム機能、およびしきい値は内部に保存できます電力が失われません(EEPROMを使用してTHとTLを保存できます
(9)VDD電源/データバスの内部容量をサポートして寄生電源を実現します


2.1.2.2。学習のアイデア
(1)基本機能、内部構造、シングルバスプロトコル、タイミング、配線方法、データの送受信プログラミングを理解します。
(2)学習の焦点と難しさはシングルバスプロトコルのタイミングプログラミング実装です。


2.1.3。概略図とデータシート1

2.1.3.1。概略図と配線
(1)ピン配列


(2)概略図の確認

(2)配線の確認

  • 温度センサーの方向に注意してください。インターフェースにシルクスクリーンで膨らみが描かれているので、それに応じて温度センサーを挿入するだけで済みます。
  • J14はDQラインに対応し、マイクロコンピューターの任意のピンに接続できます。P3.7を受け取りました


2.1.3.2、データマニュアル調査
(1)内部構造ブロック図

  • DQラインを使用して電力を供給する方法について話してください!


これらのタイプのレジスタについては、以下で説明します。最初にマークを付けます。

  • 2バイト温度レジスタ
  • 温度アラーム値レジスタ(TH、TL、各8ビット)
  • 1バイト構成レジスタ


2.1.4。概略図とデータシート2-登録

2.1.4.1。温度レジスタ-温度の測定

  • 温度変換コマンド(44H)が発行された後にのみ、AD変換された2進数の補数が温度レジスタに格納されます。
  • 温度変換が終了しました:= 1、未完了:= 0;
  • マイクロメータが温度レジスタを読み取るとき、下位ビットが最初で、上位ビットが最後です。 
  • 9ビット:0.5℃10ビット:0.25℃11ビット:0.125℃12ビット:0.0625℃
  • MS + LSはグリッドを保存します!実際の温度=温度レジスタの値*解像度

2.1.4.2、THおよびTLレジスタ-アラーム操作

  • THレジスタとTLレジスタはEEPROMに保存されます。アラームのプリセット値をカスタマイズすると、電源をオフにしても失われることはありません。
  • 各温度変換後、温度レジスタの値がTHおよびTLレジスタと比較され、THより高いかTLより低い場合、アラームが発生します。
  • S = 0の場合、温度が正であることを意味し、S = 1の場合、温度が負であることを意味します。

2.1.4.3。構成レジスタ-構成の解決


  • ビット7および0〜4はデバイスによって予約されています

2.1.4.4、高速レジスタ

  • 一時ストレージSRAMとEEPROMで構成
  • データは、一時メモリ書き込み命令(0x4E)を介して高速一時メモリに書き込まます。

2.1.5。概略図とデータシート3

2.1.5.1。シングルバスプロトコルの概要
(1)シングルポイント:1つのマスターと1つのスレーブ、複数のポイント:1つのマスターと複数のスレーブ

  • 私たちの開発ボードはシングルポイントシステムですが、マルチポイントシステムについてお話します!

(2)DS18B20は、バス上のデータがLSB(ロービット伝送)であることを規定しています。
(3)シングルバスハードウェア接続要件:オープンドレイン+ 5Kオームプルアップ抵抗
(4)バスのローレベルが480usを超えると、スレーブデバイスはリセット


2.1.5.2、シングルバスプロトコルの標準実行シーケンス
(1)ホストは、シングルバスプロトコルによって設定された完全なシーケンスに従ってDS18B20と通信する必要があります。各ラウンドには3つのステップが含まれます。

  • 初期化
  • ROM操作説明書
  • 機能的な操作手順。

   順序を間違えたり、省略したりすることはできません。

(2)初期化は、マスターデバイスが最初にデータバスを480us以上プルダウンしてリセットパルスを送信し、次にスレーブデバイスDS18B20がリセットパルスを受信して​​ハードウェアを内部でリセットします。リセットが完了すると、マスターデバイスはプレゼンスパルスを返し、マスターデバイスはプレゼンスパルスを受信します。パルスの後、スレーブデバイスは準備ができていると見なされ、初期化が完了します。


2.1.6。概略図とデータシート4

2.1.6.1、読み取りタイミング
2.1.6.2、書き込みタイミング


2.1.7。概略図とデータシート5

2.1.7.1、ソースコード分析とタイミング図の比較


2.1.8.DS18B20ワークフロー分析

2.1.8.1。温度取得プロセス
(1)DS18B20自体は主導権を握って温度を測定しませんが、メイン制御CPUが温度変換プロセスを開始する必要があります。この設計は、温度変換自体が電力を消費するため、設計されています。通常のスタンバイの場合は、温度変換コマンドを待ってから温度AD変換に進みます。
(2)主制御CPUとDS18B20間の通信はサイクルに分割されます。たとえば、DS18B20に温度変換を実行させたい場合、それはサイクルです。このサイクルには、初期化+ Nコマンドが含まれます。(各サイクルの開始時に初期化が必要で、その後にN個のコマンドが続きます)
(3)初期化プロセスは、主にターゲットDS18B20が存在するかどうかを検出し、存在する場合はチップを初期化します。
(4)コマンドは非常に重要です。したがって、DS18B20は典型的な「コマンド応答」ペリフェラルです。この周辺機器を学習するための鍵は、コマンドセットです。
2.1.8.2。ROM操作手順
(1)DS18B20は、バス上で直列に接続された複数のチップをサポートします。これはいわゆるシングルバスプロトコルであるため、マスターCPUはバス上の複数の18B20を区別できる必要があるため、ROM操作があります。このタスクを実行するための手順。
(2)ROM操作命令は温度取得とは関係がないため、バス上に18B20が1つしかない場合は、ROM操作命令を処理する必要はありません。
(3)システム内の1つのバスに複数の18B20がある場合、ROM操作命令を使用して複数の18B20を区別する必要があり、この区別プロセスを完了するには複数のROM命令が必要になる場合があります。
(4)システムに18B20が1つしかない場合は、skip romコマンド(0xCC)を使用してこの段階をスキップします。

2.1.8.3。DS18B20機能コマンド
(1)ROM操作コマンドの目的は、単一バス上の複数の18B20の中から操作したい18B20を選択することであり、機能コマンドは選択した18B20と通信して温度を取得することです。


2.1.9.DS18B20のプログラミングポイント

2.1.9.1。いくつかの実用的なアイデア
(1)独自のコードを作成するためのリファレンスドキュメント
(2)リファレンスサンプルコードの移植
2.1.9.2 DS18B20移植の要点
(1)遅延機能のローカル実装に注意してください(コードの時間関連部分は
書き換え)(2)ピン配置に注意
(3)タイミングシーケンスに注意
(4)チップが初期化を通過できるかどうかを最初に確認し、次に他のことを行う
(5)読み取った温度値が
2.1.9.3に変化するかどうかに注意する、コードプラクティス
( 1)プロジェクトを構築する
(2)移植初期化機能
(3)デバッグとしての移植シリアルポート機能


2.1.10.DS18B20移植実験1

2.1.10.1、シリアルポート機能の移植
2.1.10.2、メイン機能の書き込み
2.1.10.3、テストとデバッグ

    
2.1.11.DS18B20移植実験2

2.1.11.1、低レベルのタイミング読み取りおよび書き込みバイト機能の移植
2.1.11.2、高レベルのタイミング移行
(1)温度変換
(2)温度読み取り
(3)シリアルポートデバッグ出力


2.1.12.DS18B20移植実験3

2.1.12.1。前節のコードテスト
(1)シリアルポートデータが正常か確認
(2)タイミングのキーディレイを調整してタイミングの理解を深める
2.1.12.2。その後の
温度データの処理(1)温度データのシフトコンビネーション
( 2)デジタル値を温度値に変換します
(3)デバッグ出力

変換:tml:0x99、tmh:0x01、つまり、温度デジタル値:0x0199は409に等しい。
現在のデフォルトの精度は12桁で、各デジタル値は0.0625℃に対応します。
したがって、計算された温度値は409になります。 * 0.0625 = 25.56℃

シングルチップマイクロメータでは、10進演算は極力避けてください。通常、10進演算は整数演算に変換されます。
409 * 0.0625 = 409 * 625/10000


 

おすすめ

転載: blog.csdn.net/qq_27148893/article/details/110818040