1-Wire器件與8051系列單片機(jī)的軟件接口_第1頁
1-Wire器件與8051系列單片機(jī)的軟件接口_第2頁
1-Wire器件與8051系列單片機(jī)的軟件接口_第3頁
1-Wire器件與8051系列單片機(jī)的軟件接口_第4頁
1-Wire器件與8051系列單片機(jī)的軟件接口_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1-Wire器件與8051系列單片機(jī)的軟件接口摘 要:分析了1-Wire總線的硬件結(jié)構(gòu)和通信協(xié)議,結(jié)合實(shí)際應(yīng)用設(shè)計(jì)了1-Wire器件與8051系列單片機(jī)的軟件接口。關(guān)鍵詞:1-Wire總線,軟件接口,CRC校驗(yàn)1 引言現(xiàn)在,單片機(jī)應(yīng)用系統(tǒng)的外圍擴(kuò)展已逐漸從以并行方式為主過渡到以串行方式為主,許多新型外圍器件都帶有串行擴(kuò)展接口。通常的串行擴(kuò)展接口和串行擴(kuò)展總線有:UART的移位寄存器方式,MOTOROLA公司的SPI,NS公司的Microwire,Philips公司的IIC和Dallas公司的1-Wire總線等。1-Wire總線是一種最簡單的總線形式,它通過單條連接線完成了全部的控制、通信和供電

2、,節(jié)省了I/O口,降低了系統(tǒng)成本并簡化了設(shè)計(jì)。1-Wire器件家族包含多種功能的器件,如身份識(shí)別器、傳感器、控制和存儲(chǔ)器等。在應(yīng)用系統(tǒng)中,需要將這些簡易實(shí)用的外圍器件與系統(tǒng)中的微控制器互連。常用的方法包括:簡單的軟件方案;串行接口芯片,如DS2480;或以VHDL方式整合1-Wire主控器于定制的ASIC中。本文結(jié)合以1-Wire溫度傳感器構(gòu)成的溫度測(cè)控系統(tǒng),詳細(xì)講述1-Wire器件與常用的8051系列單片機(jī)的軟件接口。2 1-Wire總線簡述21 硬件配置1-Wire總線通常如圖1連接,構(gòu)成一個(gè)簡捷的1-Wire網(wǎng)絡(luò),它包括三個(gè)主要部分:帶有控制軟件的主控器(Master),連接上拉電阻和穩(wěn)

3、壓二極管的連接線,以及各種功能的1-Wire器件(Slave)。漏極開路的端口結(jié)構(gòu)和上拉電阻Rpu使總線空閑時(shí)處于高電平狀態(tài)(3V至5.5V),從器件可直接從數(shù)據(jù)線上獲得工作電能(節(jié)省了電源線)。每一位讀寫時(shí)隙開始時(shí),主控器把總線拉低(小于0.8V),結(jié)束時(shí),釋放總線為高電平,這種按位自同步的數(shù)據(jù)傳輸方式節(jié)省了時(shí)鐘線。穩(wěn)壓二極管將總線最高電平限定在5.6V,起保護(hù)端口的作用。1-Wire器件內(nèi)部結(jié)構(gòu)如圖1所示,1-Wire接口實(shí)現(xiàn)供電和同步。ROM存儲(chǔ)一個(gè)由廠家光刻的、全球唯一的、且不可更改的64位序列號(hào),內(nèi)容如圖2所示。最低8位是器件的類型號(hào)(Family Code),功能相同的一類器件具有

4、相同的類型號(hào);然后是48位器件序列號(hào)(Serial Code);最后是8位CRC校驗(yàn)位用于驗(yàn)證數(shù)據(jù)傳輸?shù)恼_性,這樣,實(shí)際可用的256個(gè)序列號(hào)為器件或其附著的電路板或系統(tǒng)在1-Wire網(wǎng)絡(luò)中提供唯一的電子識(shí)別。外圍部件完成某一特定的功能,主控器通過對(duì)RAM的讀寫操作對(duì)器件進(jìn)行控制。22 通信規(guī)程 1-Wire總線采用主從式、位同步、半雙工串行方式通信,如圖3所示,分以下三步: (1)總線初始化,主控器先復(fù)位脈沖,然后從器件發(fā)應(yīng)答脈沖。(2)ROM指令,主控器通過ROM指令來讀取各從器件的ROM識(shí)別碼,以選擇1-Wire總線上的某一器件,其余器件忽略主控器的后續(xù)指令。(3)RAM指令,通過對(duì)從器

5、件RAM的讀寫操作,讓外圍器件實(shí)現(xiàn)某一功能。所有1-Wire器件與主控器之間的通信都符合上述規(guī)程,但不同類型的1-Wire器件的結(jié)構(gòu)和功能不同,8比特的ROM指令和RAM指令會(huì)略有不同,系統(tǒng)設(shè)計(jì)時(shí)查器件數(shù)據(jù)手冊(cè)即可。3 接口時(shí)序及軟件模擬在所設(shè)計(jì)的溫度測(cè)控系統(tǒng)中,選用了達(dá)拉斯公司性能優(yōu)良的1-Wire溫度傳感器DS1822,以一片常用的AT89C51作為系統(tǒng)主控器。89C51與1-Wire器件互連時(shí),需要根據(jù)1-Wire總線協(xié)議,用軟件模擬1-Wire總線接口,89C51的P1和P3口都具有與1-Wire器件相同的集電極開路接上拉電阻的端口結(jié)構(gòu),根據(jù)管腳分配情況,選用P1.0模擬1-Wire總

6、線接口。如圖4所示,1-Wire總線上的數(shù)據(jù)傳輸是通過1-Wire總線協(xié)議最底層的操作時(shí)隙完成的。每個(gè)通信周期起始于主控器發(fā)出復(fù)位脈沖,然后,1-Wire器件以應(yīng)答脈沖做出響應(yīng)。當(dāng)主控器將總線從空閑狀態(tài)的邏輯高拉為邏輯低時(shí),即啟動(dòng)了一個(gè)讀寫時(shí)隙。在寫“0”時(shí)隙中,主控器在整個(gè)時(shí)隙期間將總線拉低;而后在15us之內(nèi)釋放總線為高。在讀時(shí)隙中,主控器將總線拉低1us,接頭釋放總線,這樣,1-Wire從器件就能夠接管總線,輸出有效數(shù)據(jù)。所有的讀寫時(shí)隙在60us至120us內(nèi)完成,并且每個(gè)時(shí)隙之間至少需要1us的恢復(fù)時(shí)間。按圖4的時(shí)序要求,先建立以下幾個(gè)關(guān)鍵的子函數(shù),作為1-Wire器件與8051系列單

7、片機(jī)的軟件接口的基礎(chǔ)(晶振頻率為12M,一個(gè)機(jī)器周期為1us)。在上述時(shí)序模擬子函數(shù)的基礎(chǔ)上,建立讀、寫一個(gè)子節(jié)函數(shù),根據(jù)1-Wire協(xié)議的要求,傳送數(shù)據(jù)時(shí)低位在前高位在后。 主控器讀入1-Wire器件數(shù)據(jù)后,會(huì)進(jìn)行CRC校驗(yàn)。1-Wire協(xié)議采用的8位CRC校驗(yàn)的生成多項(xiàng)式為: g(x)=x8+x5+x4+1其硬件生成器如圖5所示。把單片機(jī)的8位存儲(chǔ)單元TEMP看成一個(gè)8位生成器,按圖4的結(jié)構(gòu),很容易得到計(jì)算一個(gè)字節(jié)的8位CRC校驗(yàn)的匯編子函數(shù),輸入字節(jié)置于讀寫累加器A中,計(jì)算的累計(jì)CRC校驗(yàn)結(jié)果置于暫存單元TEMP中。設(shè)TEMP的初值為00H,8次循環(huán)調(diào)用CRC函數(shù),即可得64位ROM號(hào)的

8、CRC校驗(yàn)結(jié)果,讀數(shù)正確時(shí),前7個(gè)字節(jié)(Family Code+Serial Code)的CRC校驗(yàn)計(jì)算結(jié)果TEMP應(yīng)與ROM號(hào)最后一個(gè)字節(jié)(8BIT CRC)的值相同,最后的校驗(yàn)值TEMP應(yīng)為00H。上述的總線初始化函數(shù)START、字節(jié)讀寫函數(shù)RDBYTE、WRBYTE和CRC校驗(yàn)函數(shù)就構(gòu)成了8051系列單片機(jī)與1-Wire器件通信的軟件平臺(tái),在設(shè)計(jì)時(shí)只需按規(guī)程調(diào)用這4個(gè)函數(shù),就可輕松構(gòu)建起一個(gè)1-Wire總線擴(kuò)展的單片機(jī)應(yīng)用系統(tǒng)。4 軟件接口應(yīng)用數(shù)片DS1822按圖1連接到AT89C51的P1.0腳,按圖3的1-Wire總線通信規(guī)程,調(diào)用上述軟件接口,即可構(gòu)成一個(gè)簡單實(shí)用的溫度測(cè)控系統(tǒng)DS

9、1822是一種精度可調(diào)的(9至12比特)的1-Wire數(shù)字溫度傳感器,其RAM結(jié)構(gòu)如圖6所示,最低兩字節(jié)只讀,用于保存每次采集溫度值;Th寄存器和T1寄存器分別用于設(shè)定溫度傳感器告警的最高和最低溫度;設(shè)置寄存器用于設(shè)定溫度傳感器的采和最低溫度;設(shè)置寄存器用于設(shè)定溫度傳感器的采樣精度;對(duì)應(yīng)的EEPROM用于掉電時(shí)保存用戶設(shè)置。DS1822的指令字及其功能如表1所示。系統(tǒng)從主控器片內(nèi)RAM30H至37H單元中讀取事先存儲(chǔ)的ROM號(hào),從總線上選擇該器件,啟動(dòng)溫度變換,再讀取溫度于70H、71H中的程序如下:5 結(jié)束語 1-Wire總線連線簡捷,1-Wire器件種類多樣,功能豐富,必將得到日益廣泛的應(yīng)用。本文詳細(xì)闡述了目前普遍使用的8051單片

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論