版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1-Wire 總線協(xié)議應(yīng)用作為一種單主機(jī)多從機(jī)的總線系統(tǒng), 在一條 1-Wire 總線 上可掛接的從器件數(shù)量幾乎不受限制。為了不引起邏輯上的 沖突,所有從器件的 1-Wire 總線接口都是漏極開路的, 因此 在使用時必須對總線外加上拉電阻 (一般取 5k 左右)。 主機(jī)對 1-Wire 總線的基本操作分為復(fù)位、 讀和寫三種, 其中 所有的讀寫操作均為低位在前高位在后。復(fù)位、讀和寫是 1-Wire 總線通信的基礎(chǔ), 下面通過具體程序詳細(xì)介紹這 3 種 操作的時序要求。(程序中 DQ 代表 1-Wire 總線,定義為 P1.0 , uchar 定義為 unsigned char ) 1 1-Wir
2、e 總線的復(fù)位 復(fù)位是 1-Wire 總線通信中最為重要的一種操作, 在每次總線 通信之前主機(jī)必須首先發(fā)送復(fù)位信號。如程序 1.1 所示,產(chǎn) 生復(fù)位信號時主機(jī)首先將總線拉低480960s然后釋放,由于上拉電阻的存在,此時總線變?yōu)楦唠娖健?1-Wire 總線器件在接收到有效跳變的 1560s 內(nèi)會將總線 拉低 60240s ,在此期間主機(jī)可以通過對 DQ 采樣 來判斷是否有從器件掛接在當(dāng)前總線上。函數(shù) Reset ()的 返回值為 0 表示有器件掛接在總線上, 返回值為 1 表示沒有 器件掛接在總線上。程序 1.1 總線復(fù)位uchar Reset(void)uchar tdq;DQ=0; / 主
3、機(jī)拉低總線 delay480s(); / 等待 480sDQ=1; / 主機(jī)釋放總線 delay60s(); / 等待 60s tdq=DQ; / 主機(jī)對總線采樣 delay480s(); / 等待復(fù)位結(jié)束 return tdq; / 返回采樣值 2 1-Wire 總線的寫操作由于只有一條 I/O 線,主機(jī) 1-Wire 總線的寫操作只能逐位進(jìn) 行,連續(xù)寫 8 次即可寫入總線一個字節(jié)。如程序 1.2 所示, 當(dāng) MCS-51 單片機(jī)的時鐘頻率為 12MHz 時,程序中的語句 _nop_(); 可以產(chǎn)生 1s 的延時,調(diào)用此函數(shù)時需包含頭 文件 intrins.h 。向 1-Wire 總線寫 1
4、bit 至少 需要 60s ,同時還要保證兩次連續(xù)的寫操作有1s 以上的間隔。若待寫位 wbit 為 0 則主機(jī)拉低總線 60s 然后釋放,寫 0 操作完成。若待寫位 wbit 為 1 , 則主機(jī)拉低總線并在115& #956;s內(nèi)釋放,然后等待60s ,寫 1 操作完成。程序1.2向總線寫1bitvoid Writebit(uchar wbit)_nop_();/保證兩次寫操作間隔1s 以上DQ=0;_nop_();/保證主機(jī)拉低總線 1s 以上if(wbit)/向總線寫 1DQ=1;delay60s();else/ 向總線寫 0 delay60s();DQ=1;3 1-Wire 總線的讀操
5、作與寫操作類似, 主機(jī)對 1-Wire 總線的讀操作也只能逐位進(jìn)行, 連續(xù)讀 8 次,即可讀入主機(jī)一個字節(jié)。從 1-Wire 總線讀取 1bit 同樣至少需要 60s ,同時也要保證兩次連續(xù)的讀 操作間隔 1s 以上。如程序 1.3 所示,從總線讀數(shù)據(jù) 時,主機(jī)首先拉低總線 1s 以上然后釋放,在釋放總 線后的115& #956;s內(nèi)主機(jī)對總線的采樣值即為讀取到的 數(shù)據(jù)。程序1.3從總線讀1bituchar Readbit()uchar tdq;_nop_();/保證兩次連續(xù)寫操作間隔1s 以上DQ=0;_nop_();/保證拉低總線的時間不少于1sDQ=1;_nop_();tdq=DQ;/主
6、機(jī)對總線采樣delay60s();/等待讀操作結(jié)束return tdq;/返回讀取到的數(shù)據(jù)數(shù)字溫度傳感器 DS18B201 DS18B20 的基本特性 采用 1-Wire 總線接口,可以方便實(shí)現(xiàn)多點(diǎn)測溫。 與主機(jī)連接方便,除 5k 的總線上拉電阻外無須其 他額外器件。電源電壓范圍為 3.05.5V,與3.3V和5V數(shù)字系統(tǒng)均可 很好地兼容。測量范圍為-55+125C,分辨率為 912位可編程。 通過編程可設(shè)置溫度報警上下限,設(shè)置值掉電不丟失。 內(nèi)部集成了用于器件尋址的 64bit 光刻 ROM 編碼。2 DS18B20 中的存儲器在 DS18B20 中共有三種存儲器,分別是 ROM 、RAM
7、、 EEPROM ,每種存儲器都有其特定的功能, 可查閱相關(guān)資料。3 1-Wire 總線 ROM 功能命令在 DS18B20 內(nèi)部光刻了一個長度為 64bit 的 ROM 編碼,這 個編碼是器件的身份識別標(biāo)志。當(dāng)總線上掛接著多個DS18B20 時可以通過 ROM 編碼對特定器件進(jìn)行操作。 ROM 功能命令是針對器件的 ROM 編碼進(jìn)行操作的命令,共有 5 個,長度均為 8bit ( 1Byte )。 讀 ROM(33H)當(dāng)掛接在總線上的 1-Wire 總線器件接收到此命令時,會在主 機(jī)讀操作的配合下將自身的 ROM 編碼按由低位到高位的順 序依次發(fā)送給主機(jī)??偩€上掛接有多個DS18B20 時,
8、此命令會使所有器件同時向主機(jī)傳送自身的ROM 編碼,這將導(dǎo)致數(shù)據(jù)的沖突 匹配 ROM(55H)主機(jī)在發(fā)送完此命令后, 必須緊接著發(fā)送一個 64bit 的 ROM 編碼,與此 ROM 編碼匹配的從器件會響應(yīng)主機(jī)的后續(xù)命令, 而其他從器件則處于等待狀態(tài)。該命令主要用于選擇總線上 的特定器件進(jìn)行訪問。 跳過 ROM(CCH)發(fā)送此命令后,主機(jī)不必提供 ROM 編碼即可對從器件進(jìn)行 訪問。與讀 ROM 命令類似,該命令同樣只適用于單節(jié)點(diǎn)的 1-Wire 總線系統(tǒng), 當(dāng)總線上有多個器件掛接時會引起數(shù)據(jù)的 沖突。 查找 ROM(F0H)當(dāng)主機(jī)不知道總線上器件的 ROM 編碼時,可以使用此命令 并配合特定的
9、算法查找出總線上從器件的數(shù)量和各個從器 件的 ROM 編碼。 報警查找 (ECH)此命令用于查找總線上滿足報警條件的 DS18B20 ,通過報 警查找命令并配合特定的查找算法,可以查找出總線上滿足 報警條件的器件數(shù)目和各個器件的 ROM 編碼。4 DS18B20 器件功能命令與 1-Wire 總線相關(guān)的命令分為 ROM 功能命令和器件功能命 令兩種, ROM 功能命令具有通用性,不僅適用于 DS18B20 也適用于其他具有 1-Wire 總線接口的器件, 主要用于器件的 識別與尋址;器件功能命令具有專用性,它們與器件的具體 功能緊密相關(guān)。下面是 DS18B20 的器件功能命令。 啟動溫度轉(zhuǎn)換
10、(44H)該命令發(fā)送完成后, 主機(jī)可以通過調(diào)用 Readbit() 函數(shù)判斷溫 度轉(zhuǎn)換是否完成, 若 Readbit() 的返回值為 0 則表示轉(zhuǎn)換正在 進(jìn)行,若 Readbit() 的返回值為 1 則表示轉(zhuǎn)換完成。 讀 RAM(BEH) 該命令發(fā)送完成后,主機(jī)可以通過調(diào)用 Readbit() 函數(shù)將 DS18B20 中 RAM 的內(nèi)容從低位到高位依次讀出。 寫 RAM(4EH)該命令發(fā)出后,主機(jī)隨后寫入 1-Wire 總線的 3 字節(jié)將依次 被存儲到 DS18B20 的報警上限、 報警下限和配置寄存器中。 復(fù)制 RAM(48H)該命令會將 DS18B20 的報警上限、報警下限和配置寄存器 中
11、的內(nèi)容復(fù)制到 EEPROM 中。該命令發(fā)出后,主機(jī)可以通 過調(diào)用 Readbit() 函數(shù)判斷復(fù)制操作是否完成,若 Readbit() 的返回值為 1 ,則表示復(fù)制操作完成。 回讀 EEPROM(B8H)該命令會將存儲在 EEPROM 中的報警上限、報警下限和配 置寄器的內(nèi)容回讀到 RAM 中,主機(jī)可以通過調(diào)用 Readbit() 函數(shù)判斷回讀操作是否完成, 若 Readbit() 的返回值為 1 則表 示回讀操作完成。 DS18B20 在上電時會自動進(jìn)行一次回讀 操作。圖 1 主機(jī)與 DS18B20 的通信流程圖5 主機(jī)與 DS18B20 的通信流程如圖 1 所示,主機(jī)通過 1-Wire 總
12、線接口對 DS18B20 的每次 訪問都以復(fù)位信號和 ROM 功能命令開始,訪問的結(jié)束位置 是不確定的,這與具體的功能命令相關(guān)。圖中圓角矩形中的 操作與主機(jī)發(fā)送的功能命令相對應(yīng),隨著功能命令的不同圓 角矩形中的操作有時可以被省略。對總線上的 DS18B20 來 說,復(fù)位信號意味著又一次通信的開始,器件對此的響應(yīng)是 拉低總線以告知主機(jī)自身的存在,然后準(zhǔn)備接收 ROM 功能 命令。多點(diǎn)測溫系統(tǒng)仿真實(shí)例DS18B20 是一種比較廉價的溫度傳感器,其封封裝形式如 圖 2 所示。在 Proteus 中包含有 DS18B20 的仿真模型,這 使得相關(guān)程序的調(diào)試變得簡單方便。下面以一個實(shí)例介紹用 Prote
13、us 仿真多點(diǎn)測溫系統(tǒng)的步驟。圖 2 DS18B20 封裝形式 繪制仿真原理圖如圖 3 所示,在本實(shí)例中以單片機(jī) AT89C52 和 8 個 DS18B20 構(gòu)成了一個多點(diǎn)測溫系統(tǒng)。為了有足夠的空間存 儲各個 DS18B20 的 ROM 編碼和溫度值,在實(shí)例中用一片 8KB 的 SRAM 芯片 6116 對單片機(jī)的 RAM 進(jìn)行了擴(kuò)展。 設(shè)置 DS18B20 仿真模型的屬性首先右擊選中 protues 編輯區(qū)中的 DS18B20 仿真模型然后 再左擊,此時彈出如圖 4 所示的屬性設(shè)置對話框。其中, Family Code 是器件的家族碼,對于 DS18B20 來說是 28H ROM Seria
14、l Number 對應(yīng)于器件的 48bit 序列號,格式為十 六進(jìn)制,在填寫過程中要保證同一條 1-Wire 總線上所有仿真 模型的 ROM Serial Number 都不相同。 Automatic Serialization 設(shè)置為 No 時仿真模型將使用 ROM Serial Number 中的序列號,設(shè)置為 Yes 時模型的序列號將由仿真 環(huán)境自動生成,在此設(shè)置為 Yes ,這樣可以免去手動修改 ROM Serial Number 的麻煩。 Current Value 中是仿真模型 當(dāng)前的溫度值。 Cranularity 中是單擊仿真模型的溫度值增減 按鈕時溫度值的改變量,在此設(shè)置為
15、1.1 。其他選項(xiàng)保持默 認(rèn)即可。單擊 OK 按鈕,設(shè)置完成。圖 3 多點(diǎn)測溫系統(tǒng)仿真原理圖 編制源程序主機(jī)是通過 Reset() 、 Readbit() 、 Writebit() 三種基本操作與 1-Wire 總線進(jìn)行通信的, 只要這三個函數(shù)的時序準(zhǔn)確,那么 對于有一定 C 語言編程基礎(chǔ)的用戶來說程序其他部分的編 寫將不是難事,按照前面介紹的流程向總線發(fā)送功能命令并 進(jìn)行相應(yīng)讀寫操作即可。多點(diǎn)測溫系統(tǒng)編程的難點(diǎn)在于器件 的查找,系統(tǒng)上電時主機(jī)首先要查找總線上掛接著多少個 1-Wire 器件并將各個器件的 ROM 編碼讀入單片機(jī)的 RAM 中,這需要一套復(fù)雜的算法,限于篇幅關(guān)于此算法在此不再
16、詳述。本仿真實(shí)例大體工作過程如圖 3 右下角注釋部分所示, 查找總線上所有器件的 ROM 編碼并存儲 這一步可以由 uchar B20ReadROM(uchar B20ROM 函數(shù) 完成,該函數(shù)的返回值是查找到的器件數(shù)目,各個器件的 ROM 編碼將存儲在二維數(shù)組 B20ROM 中。圖 4 DS18B20 仿真模型屬性設(shè)置 統(tǒng)一開始溫度轉(zhuǎn)換 的通信流程為: 發(fā)送復(fù)位 信號;發(fā)送跳過 ROM(CCH) 命令;發(fā)送啟動溫度轉(zhuǎn)換 (44H) 命令。 逐器件讀取溫度值 的通信流程為: 發(fā)送復(fù)位 信號;發(fā)送匹配 ROM(55H)命令;發(fā)送第i(i=O7)個器件的 ROM 編碼;發(fā)送讀 RAM(BEH) 命
17、令;讀取 2 字節(jié),其中低 字節(jié)在前,高字節(jié)在后,讀取到的值符合溫度值數(shù)據(jù)格式。 在 Proteus 中添加監(jiān)視變量為了檢驗(yàn)程序運(yùn)行的正確與否,通常的做法是將運(yùn)行結(jié)果通 過單片機(jī)的 UART 接口輸出到虛擬終端上, 這種方法的缺點(diǎn) 是會占用一定的單片機(jī)資源,在此介紹另外一種程序調(diào)試技 巧監(jiān)視變量。在 Proteus 的運(yùn)行狀態(tài)下點(diǎn)擊 DebugWatch Window 會彈出監(jiān)視窗口 (Watch Window) ,然后按下 Alt+A 鍵會彈出如圖 5 所示的添加存儲 器條目對話框 (Add Memory Item) 。所謂監(jiān)視變量也就是監(jiān) 視相應(yīng)存儲單元中的內(nèi)容,圖 5 中圖 5 添加存儲
18、器條目對話框Memory 用于選擇待監(jiān)視變量所在的存儲器; Name 用于填 寫變量名稱,為了含義清晰該名稱最好與源程序中定義的變 量名稱一致; Address 用于填寫待監(jiān)視變量的地址; Data Type 和 Display Fomat 用于設(shè)置數(shù)據(jù)格式和顯示格式。 設(shè)置 完成后單擊 Add 按鈕即可添加一個監(jiān)視變量。 在本實(shí)例中將 測量到的溫度值轉(zhuǎn)化成 ACSLL 碼字符串的格式存儲在二維 數(shù)組 TempBuffer 中,因此 Data Type 選擇為 ASCLLZ String , Watch Window 的最終結(jié)果如圖 6 所示。 Value 一欄中顯示 的即為 8 個 DS18B20 測量到的溫度值,單擊仿真模型的溫 度增減按鈕溫度值的改變
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 需要多少錢(說課稿)-2023-2024學(xué)年北師大版數(shù)學(xué)三年級上冊
- Unit 1 What's he like?PartA(說課稿)-2024-2025學(xué)年人教PEP版英語五年級上冊
- 二零二五年度五人投資影視制作公司協(xié)議書3篇
- Unit 2 More than fun Developing ideas I 說課稿-2024-2025學(xué)年外研版(2024)七年級英語上冊
- 全國川教版信息技術(shù)八年級上冊第二單元第1節(jié)《“初識”人臉》說課稿
- Unit 5 The colourful world第一課時(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- Module 5 Unit 1 Can you run fast(說課稿)-2024-2025學(xué)年外研版(三起)英語四年級上冊
- 二零二五年度雙胞胎監(jiān)護(hù)權(quán)糾紛離婚協(xié)議3篇
- 2025年房產(chǎn)交易線上合同2篇
- 塑料鞋品牌建設(shè)與管理考核試卷
- 2025年門診部工作計(jì)劃
- 2025福建中閩海上風(fēng)電限公司招聘14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 智能網(wǎng)聯(lián)汽車技術(shù)應(yīng)用專業(yè)國家技能人才培養(yǎng)工學(xué)一體化課程標(biāo)準(zhǔn)
- 政治-北京市朝陽區(qū)2024-2025學(xué)年高三第一學(xué)期期末質(zhì)量檢測考試試題和答案
- 物業(yè)公司績效考核與激勵機(jī)制
- 小學(xué)道德與法治學(xué)科教師專業(yè)素質(zhì)真題考試試題及答案
- 中建落地式卸料平臺專項(xiàng)施工方案
- 2023-2024學(xué)年浙江省麗水市蓮都區(qū)教科版六年級上冊期末考試科學(xué)試卷
- 2024北京初三(上)期末語文匯編:議論文閱讀
- 鋰電池應(yīng)急處理培訓(xùn)
- 交通信號燈安裝工程合同樣本
評論
0/150
提交評論