【朱老師課程總結 侵刪】
第一部分、章節目錄
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
本節實際測驗代碼,并且對讀到的溫度值進行加工處理,串口輸出,
第三部分、隨堂記錄
2.1.1.DS18B20相關背景知識1
2.1.1.1、溫度傳感器
(1)測溫度的方式:
- 物理(汞柱、氣壓)
- 電子(金屬電性能(電阻率和導電性)隨溫度變化)
(2)早期:熱敏電阻NTC(模擬介面):要進行AD轉換,還要進行校準,很麻煩
(3)現代:專用傳感器
- 數字介面,如I2C、DS18B20的單總線(1-wire)介面等
- 直接可以讀出溫度值,內部集成了AD轉換芯片
2.1.2.DS18B20相關背景知識2
2.1.2.1、DS18B20的基本特征
(1)內置集成ADC,外部數字介面
(2)單總線數字介面,布線成本低
(3)溫度范圍寬、精確率高(相對)
(4)數字值溫度解析度位數可軟體設定
(5)溫度閾值報警功能,且閾值可內置存盤掉電不丟失
(6)溫度采集速度快(750ms)
(7)內置唯一64位序列碼,CPU可以單線串聯無限多個DS18B20
(8)支持VDD供電,或通過資料總線及內部電容實作寄生電源供電
2.1.2.2、綜合評價
(1)DS18B20是很多年前的東西了
(2)現在趨向于溫度+濕度的綜合傳感器
(3)現實應用一般低端用熱敏電阻、熱電偶,高端用精密傳感器
(4)學習重點和難點是單總線協議的時序編程實作
2.1.3.原理圖和資料手冊1
2.1.3.1、原理圖和接線
(1)原理圖確認
(2)接線確認(注意不要接反了,否則會很快啥訓)
2.1.3.2、資料手冊學習 http://wenku.baidu.com/view/59c857cfa1c7aa00b52acbb2.html
(1)內部結構框圖
(2)數字值和絕對溫度值的對應關系(注意18B20直接讀出絕對溫度值不需要參考點)
2.1.4.原理圖和資料手冊2
2.1.5.原理圖和資料手冊3
2.1.5.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的時候ROM操作指令我們不需要去管,
(3)一旦系統中單總線上有多個18B20,那么我們必須借助ROM操作指令來區分多個18B20,而且這個區分程序可能需要多條ROM指令來完成,
(4)如果系統中只有一個18B20,那么就用一條skip rom命令(0xCC)就可以跳過這個階段,
2.1.8.3、功能指令
(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、main函式撰寫
2.1.10.3、測驗與除錯
2.1.11.DS18B20移植實驗2
2.1.11.1、低層時序讀寫byte函式的移植
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攝氏度
在單片機中,應該盡量避免進行小數運算,小數運算一般轉成整數運算,
409*0.0625=409*625/10000
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/231579.html
標籤:其他
