版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
內(nèi)容提要
一線總線時序分析及應(yīng)用
10.4一線總線時序分析應(yīng)用 代表產(chǎn)品是溫度傳感器和ID碼芯片。特點(diǎn)如下: (1)一線傳輸。數(shù)據(jù)線和串行時鐘線合并,統(tǒng)稱DQ線,為數(shù)據(jù)數(shù)輸入/輸出端。 (2)單主機(jī),外圍接口器件都是從器件。 (3)總線中的從器件采用器件地址編碼方法。每個器件唯一的64位串行碼,用于主機(jī)對從器件識別和尋址。 (4)一線總線時序中有嚴(yán)格的時間參數(shù),對時間操作的精度要求很高。10.4.1DS18B20簡介
1.DS18B20的一般特性 (1)工作電壓范圍3~5V,并可通過數(shù)據(jù)線對器件供電。 (2)溫度測量范圍為-55℃~+125℃。在-10℃~+85℃范圍內(nèi),保證±0.5℃的測量精度;整個測量范圍內(nèi),保證±2℃的測量精度。其測量結(jié)果可選擇9位或12位轉(zhuǎn)換輸出。 (3)溫度轉(zhuǎn)換速度:12位數(shù)字轉(zhuǎn)換時間為750ms。 (4)具有溫度報警功能,可長期保存報警溫度的設(shè)置值,掉電不丟失。
(5)64位串行地址編碼,用于系統(tǒng)主機(jī)對其識別與通信。2.DS18B20的內(nèi)部結(jié)構(gòu)
18B20內(nèi)部結(jié)構(gòu)如圖10-17所示。18B20主要由一線接口和64位ROM、寄存器組和控制電路、溫度傳感器和CRC(循環(huán)校驗(yàn)碼產(chǎn)生器)等4個部分組成。器件外部只有DQ(數(shù)據(jù)傳送線)、VDD和GND三個管腳。1)DS18B20內(nèi)部存儲器布局
18B20內(nèi)部存儲器布局如圖10-18所示。分為兩個區(qū),圖中左邊9個SRAM單元,稱為暫存寄存器,括號內(nèi)的數(shù)據(jù)為18B20的上電復(fù)位值。 圖右側(cè)3個非易失性(EEPROM)存儲單元。由于TH和TL及芯片配置寄存器與18B20的工作任務(wù)有關(guān),需要長期保存。它們的內(nèi)容(出廠值或用戶設(shè)定值),決定了圖中左邊暫存寄存器組中第2、3、4字節(jié)的內(nèi)容。2)轉(zhuǎn)換溫度寄存器格式
DS18B20的轉(zhuǎn)換溫度存于其內(nèi)部的轉(zhuǎn)換溫度寄存器中,其格式如圖10-19所示。
當(dāng)溫度為負(fù)值時,輸出值以補(bǔ)碼的形式輸出,表10-11為典型溫度的對應(yīng)輸出值。DS18B20上電復(fù)位時轉(zhuǎn)換溫度寄存器的內(nèi)容為0550H即85℃。
當(dāng)溫度為負(fù)值時,輸出值以補(bǔ)碼的形式輸出,表10-11為典型溫度的對應(yīng)輸出值。DS18B20上電復(fù)位時轉(zhuǎn)換溫度寄存器的內(nèi)容為0550H即85℃。 例如,溫度轉(zhuǎn)換值為191H=0000000110010001B
則檢測到的溫度值為+24+23+20+2-4=25.0625℃
又如,溫度轉(zhuǎn)換值為FF5EH=1111111101011110B
求補(bǔ)碼:0000000010100001+1=0000000010100010
則檢測到的溫度值為-(23+21+2-3)=-10.125℃
3)
TH和TL觸發(fā)寄存器
18B20的溫度報警功能是通過設(shè)置其內(nèi)部TH和TL觸發(fā)寄存器實(shí)現(xiàn)的。他們存儲用戶設(shè)定的報警溫度上、下限值。TH和TL觸發(fā)寄存器的數(shù)據(jù)格式相同,如圖10-20所示。圖中的“S”位為報警標(biāo)志位,當(dāng)S=1時,表示被測溫度超出了設(shè)定的報警溫度上或下限值。
DS18B20每次完成溫度轉(zhuǎn)換后,與TH和TL觸發(fā)寄存器的內(nèi)容進(jìn)行比較,當(dāng)測得的溫度超出用戶設(shè)定的報警溫度上或下限值時,“S”位被置“1”。如在下一次溫度轉(zhuǎn)換后,溫度不超限,則“S”位被自動復(fù)位。
4)DS18B20的芯片配置寄存器的數(shù)據(jù)格式
18B20的芯片配置寄存器的功能是確定18B20的溫度轉(zhuǎn)換結(jié)果的位數(shù),以實(shí)現(xiàn)不同測量精度和轉(zhuǎn)換時間的要求,芯片配置寄存器數(shù)據(jù)格式如圖10-21所示。
圖中R1、R0位的組合,確定了芯片對溫度轉(zhuǎn)換結(jié)果的位數(shù)及轉(zhuǎn)換時間。 轉(zhuǎn)換結(jié)果的位數(shù)及轉(zhuǎn)換時間與R1、R0的關(guān)系如表10-12所示。5)DS18B20的循環(huán)冗余校驗(yàn)碼(CRC)的意義
CRC由DS18B20的CRC發(fā)生器自動生成。借用CRC值,用戶可實(shí)現(xiàn)對多點(diǎn)溫度采集系統(tǒng)中節(jié)點(diǎn)位置、工作狀態(tài)、溫度轉(zhuǎn)換和數(shù)據(jù)傳輸?shù)恼_性等狀態(tài)的判別。
DS18B20中有兩個不同意義的CRC值。一個是暫存寄存器組中的CRC值,它是寄存器組中前8個寄存器值的CRC值,用于檢驗(yàn)溫度轉(zhuǎn)換和數(shù)據(jù)傳輸?shù)恼_性。上電后,該CRC值由EEPROM的值決定,見圖10-18。
另一個是18B20內(nèi)部有唯一的64位激光編碼,只讀,即ROM。用于多從器件系統(tǒng)的識別。其數(shù)據(jù)板式如圖10-22所示。其中最低8位為18B20家族編碼,固定為28H;接下來是48位序列號,最高位是前56位(7字節(jié))數(shù)據(jù)的CRC校驗(yàn)值。
6)CRC算法
DALLAS一總線器件的CRC方程統(tǒng)一為:
在18B20中的循環(huán)冗余校驗(yàn),是通過CRC發(fā)生器實(shí)現(xiàn)的,其算法如圖10-23所示。
(8-1)
3.DS18B20的ROM功能命令集
18B20命令集分ROM命令和功能命令兩類。ROM命令用于器件64位編碼的識別、總線上器件的數(shù)量和種類;功能命令用于實(shí)現(xiàn)DS18B20的功能?,F(xiàn)將DS18B20命令集列于表10-13中,以便在整體上掌握其指令系統(tǒng)。
6.DS18B20的引腳功能及供電方式
18B20采用TO-92、8PinSO及8PinμSOP三種封裝。圖10-24為TO-92封裝器件引腳圖。注意:當(dāng)面對芯片的標(biāo)稱平面時,最左邊為1號引腳(GND)。當(dāng)1、3接反時,18B20在短時間內(nèi)不會燒毀,但器件發(fā)熱,不能正常讀、寫。
圖10-25是單片機(jī)與18B20的接口電路圖。圖中18B20采用外接電源方式,其VDD端用3~5.5V電源供電。
圖10-26是18B20寄生供電方式。為此,VDD必須接地。單片機(jī)通過I/O控制圖中的MOSFET管,為18B20提供能量。以這種寄生供電方式構(gòu)成的系統(tǒng),可以帶更多的一線產(chǎn)品,并能可達(dá)到較遠(yuǎn)的傳輸距離。
5.一線總線時序分析
(1)初始化時序 初始化時序如圖10-27所示。主器件將總線拉低至少480μs后,將總線拉成高電平,之后等待從器件的應(yīng)答信號,等待時間在15~60μs之間。正常情況下,從器件將產(chǎn)生60~240μs寬的低脈沖作為應(yīng)答信號,表示從器件在線,可接收主器件的命令與讀操作。2)讀/寫時序
18B20讀/寫操作是靠時間片來識別總線信息的。又有讀、寫“0”和“1”時間片兩種。寫時間片至少要持續(xù)60μs(但不要超過120μs),包括兩個時間片中間的至少1μs的電平轉(zhuǎn)換時間。圖10-28(a)為寫時序,圖10-28(b)為讀時序。
(3)讀時序 讀數(shù)據(jù)的過程從DQ端由高向低電平躍變開始。讀與寫不同于:在讀時間片開始后,主機(jī)要在15μs之內(nèi)完成讀進(jìn)程,因?yàn)樵谧x命令下達(dá)后,讀時間片就開始了,總線狀態(tài)隨18B20的輸出而變化。因此,在讀過程中主機(jī)要保持DQ為低電平15μs。之后,主機(jī)要釋放DQ端,總線回到高電平狀態(tài)最長時間為45μs,整個過程應(yīng)在60μs之內(nèi)完成。見圖10-28。10.4.3DS18B20的應(yīng)用1.DS18B20命令流程 為應(yīng)用好DS18B20,使用者需要具備以下條件: (1)對DS18B20的數(shù)據(jù)手冊中關(guān)于工作原理和操作技術(shù)細(xì)節(jié)的內(nèi)容有深入的理解。 (2)深入理解DS18B20的操作時序。 (3)掌握實(shí)現(xiàn)DS18B20各種功能的流程,并能編寫驅(qū)動程序?qū)崿F(xiàn)其功能。 18B20的操作一般由以下固定的步驟順序組成: (1)初始化18B20,包括主機(jī)發(fā)復(fù)位脈沖,18B20應(yīng)答,主機(jī)確認(rèn)等。 (2)主機(jī)發(fā)ROM命令到18B20,后跟所需的數(shù)據(jù)。 (3)主機(jī)發(fā)功能命令,后跟所需的數(shù)據(jù)。
DS18B20的ROM命令流程如圖10-29所示,其功能命令流程如圖10-30所示。2.搜索ROM原理
1)搜索算法的物理基礎(chǔ)
要在眾多器件中,一個個地確定它們的64位ROM編碼,需要18B20對搜索ROM命令(F0H)有特別的反應(yīng)。事實(shí)正是如此,聽到搜索廣播命令后,每個18B20會向總線輸出兩個數(shù)據(jù)位,前面是64位ROM編碼之一,后跟此位的“非”。主機(jī)讀到的是所有器件碼的“與”值?!皟勺x”內(nèi)容的4種組合,對搜索ROM編碼所提供的信息及分析結(jié)果如表10-14所示。 “兩讀”內(nèi)容(原碼、非碼、線與)的特征,是搜索算法的物理基礎(chǔ)之一。 “一寫”,寫什么?18B20對“一寫”的內(nèi)容有如下反應(yīng):如果器件編碼位與寫的值相同,則繼續(xù)保持與總線的聯(lián)系;否則從總線上“退出”,不再響應(yīng)主機(jī)發(fā)布的命令,直到主機(jī)進(jìn)行下一次復(fù)位為止。這就是識別算法的物理基礎(chǔ)之二。
設(shè)“兩讀”結(jié)果為01,說明總線上所有器件該位ROM碼均為0,為保持器件與總線的聯(lián)系,“一寫”內(nèi)容0。同理,如“兩讀”數(shù)據(jù)為10,主機(jī)則應(yīng)寫1?!耙粚憽钡摹芭懦惫δ埽姑?4次“兩讀一寫”,確定一個器件的64位編碼成為可能。 2)ROM編碼的“排除”搜索算法示例
【例10-5】為使討論的問題簡單扼要,假設(shè)某一線總線器件有4位ROM編碼,器件具有DS18B20的功能。現(xiàn)有4個這種器件在總線上,它們的編碼分別為0000、1111、0101、1010。試描述ROM編碼的“排除”搜索算法確定它們編碼的過程。 解:4個4位編碼器件在總線上,需要4輪4循環(huán)“兩讀一寫”才能完成搜索。表10-15為一個器件編碼搜索的全過程,確定總線上有一個ROM編碼為0000的器件。
3.DS18B20的51機(jī)應(yīng)用程序舉例
【例10-6】DS18B20的基本功能-溫度采集的用法。設(shè)總線上只有一片一總線器件,即一片18B20。設(shè)在圖8-25(b)中,51機(jī)用P1.0與DS18B20的DQ端相連接。并設(shè)系統(tǒng)時鐘頻率為:fosc=12MHz。 解:在系統(tǒng)中若一總線上只有一個器件,可以利用DS18B20命令,直接命令器件進(jìn)行溫度轉(zhuǎn)換或讀取溫度的工作,參考的匯編程序如下: DQ EQU P1.1 RESULT EQU 40H ORG 0000H LJMP MAIN ORG 0040HMAIN: MOV SP,#5FH MOV R0,#RESULT LCALL INIT;復(fù)位一總線,并檢測應(yīng)答
MOV A,#0CCH
LCALL WRITE_BYTE;發(fā)跳過ROM命令
MOV A,#44H LCALL WRITE_BYTE ;發(fā)啟動轉(zhuǎn)換命令
LCALL DEYAY1S;延時1s待溫度轉(zhuǎn)換完成
LCALL INIT MOV A,#0CCH;發(fā)跳過ROM命令
LCALL WRITE_BYTE MOV A,#0BEH ;發(fā)讀存儲器命令
LCALL WRITE_BYTE LCALL READ_BYTE MOV @R0,A ;存溫度值低位字節(jié)
LCALL READ_BYTE INC R0 MOV @R0,A ;存溫度值高位字節(jié)
SJMP $INIT: CLR DQ ;復(fù)位總線,并檢測應(yīng)答。
MOV B,#240 DJNZ B,$
;等待480μs,參考圖10-27
CLR C
;清標(biāo)志,C=1成功,總線有應(yīng)答
MOV B,#1051W_ACK: ORL C,/DQ DJNZ B,1W_ACK ;等待420μs,參考圖10-27 ANL C,DQ ;總線若總為高,C=0,失敗
RETWRITE_BIT: CLR DQ ;寫一位數(shù)據(jù)到總線子程序??偩€拉低
MOV B,#27 ;等待2μs,完成下降沿起動時間片
MOV DQ,C DJNZ B,$
;等待54μs,參考圖10-28(a)
SET DQ ;釋放總線
RET ;最后2μs,完成時間片
READ_BIT: CLR DQ ;總線拉低
MOV B,#4 ;等待2μs SETB DQ ;釋放總線
DJNZ B,$ ;等待10μs NOP MOV C,DQ ;讀數(shù)據(jù)
MOV B,#21 DJNZ B,$ ;等待42μs,參考圖10-28b RETWRITE_BYTE:MOV R7,#8 ;寫一字節(jié)數(shù)據(jù)到總線子程序。WR_NEXTB: RRC A ;移出數(shù)據(jù)
LCALL WRITE_BIT ;寫一位
DJNZ R7,WR_NEXTB RET READ_BYTE: MOV R7,#8 ;寫一字節(jié)數(shù)據(jù)到總線子程序。R_NEXTB: LCALL READ_BIT ;讀一位
RRC A ;移入數(shù)據(jù)
DJNZ R7,R_NEXTB RET DEYAY1S: MOV R7,#8 ;延時1s子程序8XDELY: MOV R6,#250500US: MOV R5,#250 DJNZ R5,$ DJNZ R6,500US DJNZ R7,8XDELY RET END 【例10-7】設(shè)在圖10-25中,標(biāo)準(zhǔn)51機(jī)用P1.1與DS18B20的DQ端相連接,51機(jī)系統(tǒng)時鐘頻率為12MHz。試用C51編寫核對DS18B20的進(jìn)行溫度采集的程序,并用CRC驗(yàn)證數(shù)據(jù)的正確性。
解:檢驗(yàn)溫度轉(zhuǎn)換和數(shù)據(jù)傳輸?shù)恼_性,用DS18B20中寄存器組中的CRC值,它是寄存器組中前8個寄存器值的CRC值。編程步驟歸納如下: (1)主機(jī)向總線發(fā)復(fù)位脈沖,對總線上所有DS18B20復(fù)位。 (2)主機(jī)發(fā)跳過ROM命令(CCH)。 (3)主機(jī)向總線上的所有器件發(fā)置換溫度的命令(44H)。 (4)等待DS18B20溫度轉(zhuǎn)換完成。 (5)主機(jī)讀取該DS18B20暫存寄存器內(nèi)容,包括溫度值、CRC值共9B
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《彩旗飄飄》課件
- 智能樓宇管理師考試題A卷(附答案)
- 2026年公司財務(wù)內(nèi)控體系建設(shè)計(jì)劃
- 美術(shù)培訓(xùn)機(jī)構(gòu)課程顧問履職清單
- 中國共青團(tuán)的基本知識競賽試題及答案
- 安全生產(chǎn)責(zé)任險管理制度
- 2026年保潔管理服務(wù)合同三篇
- 零售連鎖店銷售顧問客戶滿意度績效評定表
- 廣告策劃師項(xiàng)目成果績效評估表
- 企業(yè)人力資源招聘與選拔標(biāo)準(zhǔn)流程
- 起重機(jī)械安全風(fēng)險辨識報告
- 2025年山東省村級后備干部選拔考試題(含答案)
- 村社長考核管理辦法
- 兒童顱咽管瘤臨床特征與術(shù)后復(fù)發(fā)風(fēng)險的深度剖析-基于151例病例研究
- 防潮墻面涂裝服務(wù)合同協(xié)議
- GB/T 15237-2025術(shù)語工作及術(shù)語科學(xué)詞匯
- 外賣跑腿管理制度
- 冷鏈物流配送合作協(xié)議
- 生物-江蘇省蘇州市2024-2025學(xué)年第一學(xué)期學(xué)業(yè)質(zhì)量陽光指標(biāo)調(diào)研卷暨高二上學(xué)期期末考試試題和答案
- 2024年人教版一年級數(shù)學(xué)下冊教學(xué)計(jì)劃范文(33篇)
- 成都隨遷子女勞動合同的要求
評論
0/150
提交評論