国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

單總線數(shù)字溫度傳感器的自動(dòng)識(shí)別技術(shù)

發(fā)布時(shí)間:2010-8-30 13:53    發(fā)布者:techshare
在多點(diǎn)溫度測(cè)量系統(tǒng)中,單總線數(shù)字溫度傳感器(例如DS18X20)因其體積小、構(gòu)成的系統(tǒng)結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn),應(yīng)用越來越廣泛。每一個(gè)數(shù)字溫度傳感器內(nèi)均有唯一的64位序列號(hào)(最低8位是產(chǎn)品代碼,其后48位是器件序列號(hào),最后8位是前56位循環(huán)冗余校驗(yàn)碼),只有獲得該序列號(hào)后才可能對(duì)其進(jìn)行操作,也才能在多傳感器系統(tǒng)中將它們一一識(shí)別。實(shí)際應(yīng)用時(shí)的一般做法是:將每一個(gè)傳感器的序列號(hào)測(cè)出,以表格的形式和程序存放在一起,并且給每個(gè)測(cè)溫點(diǎn)編上號(hào),做成標(biāo)簽粘貼在對(duì)應(yīng)的傳感器上。當(dāng)系統(tǒng)中有傳感器故障時(shí),必須由專業(yè)人員測(cè)出備用的傳感器序列號(hào),貼上相應(yīng)的標(biāo)簽,并在程序中修改表格,再將程序固化到程序存儲(chǔ)器中。顯然,這樣做非常不利于系統(tǒng)維護(hù)。

現(xiàn)有的單總線數(shù)字溫度傳感器的文獻(xiàn)很少涉及自動(dòng)識(shí)別序列號(hào)和排序(即與測(cè)量點(diǎn)對(duì)應(yīng))的問題,文獻(xiàn)1給出了一種方法:通過特制的編碼器,將一個(gè)傳感器的序列號(hào)讀出,并將其中48位器件序列號(hào)轉(zhuǎn)換成BCD碼,再通過手動(dòng)撥盤將測(cè)溫點(diǎn)編號(hào)撥入編碼器,與器件序列號(hào)一起寫入到傳感器內(nèi)的上下限溫度報(bào)警寄存器TH/TL中(兩個(gè)字節(jié)的EEPROM)。使用該方法,系統(tǒng)可以由運(yùn)行人員來維護(hù),并減少維護(hù)工作量,但仍有缺點(diǎn):需要專門的編碼器,維護(hù)工作量減少得仍不夠;必須是在TH/TL不使用的前提下。本文給出一種方法,只需在系統(tǒng)中增加一片EEPROM芯片,通過編程,可實(shí)現(xiàn)多個(gè)傳感器的出錯(cuò)指示、自動(dòng)識(shí)別。

硬件設(shè)計(jì)  

圖1為系統(tǒng)電路原理圖,主要由PIC單片機(jī)PIC16C63、四位LED顯示器、鎖存器74LS373、二-四譯碼器74LS139、2KB的EEPROM存儲(chǔ)器DCM0016C、撥位開關(guān)K以及數(shù)字溫度傳感器DS18B20等組成。PIC系列單片機(jī)是一種采用精簡(jiǎn)指令集(RISC)、哈佛(Harvard)雙總線和兩級(jí)指令流水線結(jié)構(gòu)的高性價(jià)比的8位嵌入式控制器,I/O口線直接驅(qū)動(dòng)LED,片內(nèi)有4KB的程序存儲(chǔ)器和256B的數(shù)據(jù)存儲(chǔ)器。可電改寫的DCM0016C主要用于存儲(chǔ)DS18B20的序列號(hào)。LED顯示器用于顯示各測(cè)量點(diǎn)的編號(hào)、溫度以及傳感器故障時(shí)的指示。撥位開關(guān)K在系統(tǒng)正常運(yùn)行時(shí)處于打開狀態(tài),需要更換傳感器時(shí)將其撥至閉合位置,單片機(jī)調(diào)用相應(yīng)的子程序進(jìn)行傳感器自動(dòng)識(shí)別。圖中數(shù)字溫度傳感器DS18B20的接線拓?fù)浣Y(jié)構(gòu)考慮了兩種結(jié)構(gòu):總線結(jié)構(gòu)和星型結(jié)構(gòu)。總線結(jié)構(gòu)是指在一根I/O口線上掛接若干只溫度傳感器,星型結(jié)構(gòu)則在若干根I/O口線上分別掛接若干只溫度傳感器(圖中虛線表示)。實(shí)際應(yīng)用時(shí)考慮單總線的驅(qū)動(dòng)能力、布線問題,更多地是采用星型結(jié)構(gòu),同時(shí)這種結(jié)構(gòu)更容易對(duì)多個(gè)溫度傳感器進(jìn)行出錯(cuò)指示、自動(dòng)識(shí)別其序列號(hào)和排序。


  
圖1 系統(tǒng)電路原理圖

總線結(jié)構(gòu)的傳感器識(shí)別

獲取序列號(hào)的ROM操作命令  操作單總線數(shù)字溫度傳感器必須嚴(yán)格按規(guī)定的協(xié)議操作,即應(yīng)按以下順序操作:初始化、ROM操作命令、暫存存儲(chǔ)器操作命令。在ROM操作命令中,有兩條命令專門用于獲取傳感器序列號(hào):讀ROM命令(33H)和搜索ROM命令(F0H)。讀ROM命令只能在總線上僅有一個(gè)傳感器的情況下使用。搜索ROM命令則允許總線主機(jī)使用一種“消去”處理方法來識(shí)別總線上所有的傳感器序列號(hào)。搜索過程為三個(gè)步驟:讀一位,讀該位的補(bǔ)碼,寫所需位的值。總線主機(jī)在ROM的每一位上完成這三個(gè)步驟,在全部過程完成后,總線主機(jī)便獲得一個(gè)傳感器ROM的內(nèi)容,其他傳感器的序列號(hào)則由相應(yīng)的另外一個(gè)過程來識(shí)別。具體的搜索過程為:(1)總線主機(jī)發(fā)出復(fù)位脈沖進(jìn)行初始化,總線上的傳感器則發(fā)出存在脈沖做出響應(yīng);(2)總線主機(jī)在單總線上發(fā)出搜索ROM命令;(3)總線主機(jī)從單總線上讀一位。每一個(gè)傳感器首先把它們各自ROM中的第一位放到總線上,產(chǎn)生“線與”,總線主機(jī)讀得“線與”的結(jié)果。接著每一個(gè)傳感器把它們各自ROM中的第一位的補(bǔ)碼放到總線上,總線主機(jī)再次讀得“線與”的結(jié)果。總線主機(jī)根據(jù)以上讀得的結(jié)果,可進(jìn)行如下判斷:結(jié)果為00表明總線上有傳感器連著,且在此數(shù)據(jù)位上它們的值發(fā)生沖突;為01表明此數(shù)據(jù)位上它們的值均為0;為10表明此數(shù)據(jù)位上它們的值均為1;11表明總線上沒有傳感器連著;(4)總線主機(jī)將一個(gè)數(shù)值位(0或1)寫到總線上,則該位與之相符的傳感器仍連到總線上;(5)其它位重復(fù)以上步驟,直至獲得其中一個(gè)傳感器的64位序列號(hào)。

根據(jù)以上分析,搜索ROM命令可以將總線上所有傳感器的序列號(hào)識(shí)別出來,但不能將各傳感器與測(cè)溫點(diǎn)對(duì)應(yīng)起來,即不能實(shí)現(xiàn)真正意義上的自動(dòng)識(shí)別。

關(guān)系表的建立  

以總線上連著8個(gè)傳感器為例。系統(tǒng)中使用相同型號(hào)的傳感器,因此產(chǎn)品代碼都是一樣的,比如DS18B20為28H,可以只用一個(gè)單元存儲(chǔ)該代碼。用DCM0016C的第一個(gè)單元0000H存儲(chǔ)。剩下的56位序列號(hào)用7個(gè)字節(jié)單元來存儲(chǔ)。對(duì)每個(gè)測(cè)溫點(diǎn)進(jìn)行編號(hào),與存儲(chǔ)序列號(hào)的單元地址建立如表1所示的關(guān)系。

&nbs p;工程調(diào)試時(shí),要設(shè)法將每個(gè)測(cè)溫點(diǎn)的傳感器序列號(hào)寫入對(duì)應(yīng)地址的單元中,即用編程方式自動(dòng)建立表1,則可實(shí)現(xiàn)傳感器的自動(dòng)尋址和排序。程序流程圖如圖2所示。


  
圖2 建立關(guān)系表的程序流程圖

按圖2編制的程序工作,需要按一定的要求操作:按位置編號(hào)由小到大順序插入傳感器。具體工作流程為:  

(1)首先檢測(cè)總線上是否掛接了傳感器。若沒有,則四位LED顯示器顯示“0000”;有則識(shí)別傳感器的序列號(hào)。

(2)識(shí)別傳感器序列號(hào)。從0位到63位共64位二進(jìn)制數(shù)分別識(shí)別出來,若該序列號(hào)與EEPROM單元的內(nèi)容不同,說明獲得了一個(gè)新的序列號(hào),將其存到相應(yīng)的單元中,并顯示位置編號(hào)和“PPPP”。例如,在1號(hào)位置插入一個(gè)傳感器,單總線上只掛接一個(gè)傳感器,很容易將其序列號(hào)識(shí)別出來,并存入到0001H"0007H 單元中;接著在2號(hào)位置插入另一個(gè)傳感器,單總線上掛接了兩個(gè)傳感器,系統(tǒng)首先識(shí)別出一個(gè)序列號(hào)來,若與存儲(chǔ)在0001H"0007H單元的內(nèi)容相同,說明這次識(shí)別出的仍是1號(hào)傳感器的序列號(hào),不存儲(chǔ)并接著進(jìn)行另一個(gè)過程,得到不同的序列號(hào)(即2號(hào)傳感器的序列號(hào)),將其存儲(chǔ)在0008H"000EH單元中。獲得序列號(hào)的同時(shí)也就獲得了總線上掛接傳感器的個(gè)數(shù)。

由上述知,總線上掛接多個(gè)傳感器時(shí),若編制的程序不當(dāng),可能同一個(gè)傳感器要被識(shí)別多次,識(shí)別時(shí)間增長(zhǎng)。為了減少識(shí)別時(shí)間,編程時(shí)要注意“需要的位值”取值。傳感器序列號(hào)的最低8位為產(chǎn)品代號(hào),“需要的位值”可按對(duì)應(yīng)的值給出,關(guān)鍵是其后的48位器件序列號(hào)的識(shí)別。這里采用了“完全二叉樹”的排序思想,如圖3所示。具體思路:設(shè)在K位首次發(fā)生數(shù)據(jù)位沖突,這時(shí)所有的傳感器分成兩類,即該位為1的傳感器和為0的傳感器。“需要的位值”給1,K位為1的傳感器仍掛接在總線上。若接下來K+M、K+N位發(fā)生數(shù)據(jù)位沖突,“需要的位值”仍分別給1,獲得一個(gè)序列號(hào)。下一個(gè)過程在K、K+M位“需要的位值”仍給1,但在K+N位則給0,獲得另一個(gè)傳感器的序列號(hào)。第三個(gè)過程在K位仍給1,而在K+M位給0,在這條支路上繼續(xù)識(shí)別。K位為1的傳感器的序列號(hào)識(shí)別完后,回到K位時(shí),“需要的位值”給0,按同樣的方法識(shí)別該支路的傳感器序列號(hào)。按此思路,多個(gè)傳感器的序列號(hào)只需要分別識(shí)別一次。


  
圖3 完全二叉樹

出錯(cuò)指示  

建立關(guān)系表后,編制好程序,系統(tǒng)可投入運(yùn)行。讀取每個(gè)測(cè)溫點(diǎn)的溫度時(shí),需要用到“符合”ROM命令,該命令要求將關(guān)系表中的序列號(hào)取出送到總線上,只有序列號(hào)與之相符的傳感器才掛接在總線上,可讀取其溫度。若相應(yīng)的傳感器出錯(cuò),顯然不會(huì)有序列號(hào)與之相符的傳感器,這時(shí)顯示器顯示位置編號(hào)和“FFFF”,表明該測(cè)溫點(diǎn)的傳感器出錯(cuò)。

更換傳感器后的自動(dòng)識(shí)別  

給8個(gè)傳感器建立臨時(shí)關(guān)系表,占用EEPROM存儲(chǔ)單元地址范圍為:0039H"0070H,將更換后傳感器的序列號(hào)存入這些單元中。當(dāng)只有一個(gè)傳感器出錯(cuò)時(shí),臨時(shí)關(guān)系表中的序列號(hào)與關(guān)系表的序列號(hào)比較,只有一個(gè)號(hào)不同,用該號(hào)取代前文所述的關(guān)系表中序列號(hào),即存入對(duì)應(yīng)的存儲(chǔ)單元中,便完成了更換傳感器后的自動(dòng)識(shí)別。有兩個(gè)及以上傳感器出錯(cuò)時(shí),若同時(shí)將這些傳感器更換掉,則它們的序列號(hào)同時(shí)進(jìn)入臨時(shí)關(guān)系表,將無法進(jìn)行排序,因此更換傳感器時(shí)也要按一定的順序進(jìn)行:只能一個(gè)一個(gè)更換,且位置編號(hào)小的先更換;更換一個(gè)傳感器,顯示器顯示位置編號(hào)和“PPPP”后,再更換下一個(gè)傳感器。實(shí)現(xiàn)該功能的子程序主要流程:(1)建立臨時(shí)關(guān)系表;(2)臨時(shí)關(guān)系表的內(nèi)容與關(guān)系表比較。建立臨時(shí)關(guān)系表子程序與建立關(guān)系表的程序基本一樣,主要是存儲(chǔ)單元地址不同。建立該表的同時(shí)也就獲得了總線上掛接的傳感器數(shù),該數(shù)據(jù)決定兩個(gè)表的比較次數(shù)。   

星型結(jié)構(gòu)的傳感器識(shí)別  

拓?fù)浣Y(jié)構(gòu)采用星型結(jié)構(gòu),如圖1所示,RA0、RA1、RA2、RA3、RA4、RA5、RC0為七根單總線,分別掛接若干個(gè)傳感器,以掛接8個(gè)為例,建立表2所示的關(guān)系表。

因?yàn)楦鲉慰偩分別操作,它們的編程及操作和上述單總線差不多,此處不再詳述。采用星型結(jié)構(gòu)有一個(gè)主要優(yōu)點(diǎn):當(dāng)七根總線上分別只有一個(gè)傳感器出錯(cuò),按上述編程思想,可以同時(shí)更換七個(gè)傳感器,有利于系統(tǒng)維護(hù),工作量相應(yīng)減少。

結(jié)語  

綜上所述,用簡(jiǎn)單的硬件以及編程方法自動(dòng)建立關(guān)系表,在單總線多點(diǎn)溫度測(cè)量系統(tǒng)中實(shí)現(xiàn)了數(shù)字溫度傳感器的出錯(cuò)指示、自動(dòng)識(shí)別,大大有利于系統(tǒng)的調(diào)試、維護(hù),減少維護(hù)工作量,并解決了過去維護(hù)工作必須由專業(yè)人員來完成,而不是由運(yùn)行人員來完成的不便。
本文地址:http://m.qingdxww.cn/thread-24436-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产国产成人人免费影院| 日本人亚洲人jizz| 日日夜夜天天人人| 天天色天天操综合网| 四虎影院免费视频| 综合色在线观看| 国产中文字幕在线| 亚洲免费观看| 亚洲国产成人精品区| 色综合色狠狠天天综合色hd | 2019中文字幕乱码免费| 内射人妻无码色AV麻豆去百度搜| 亚州三级| 日韩欧美视频一区二区| 网曝门精品国产事件在线观看| 伊人96| 久久国产免费观看精品1| 中文字幕日本一区| 青草资源| 四虎影库紧急大通知| 被免费网站在线视频| 同房交换4p好爽| 日韩中文字| 亚洲精品中文字幕无乱码| 亚洲精品网址| yellow免费| 亚洲 欧美 国产 伦 综合| 手机免费看a| 亚洲午夜在线播放| 中国人泡妞xxxxxxxxx69| 久草在在线免视频在线观看| 日本免费黄网站| 日韩黄a级成人毛片| 婷婷在线免费观看| 国产成人a一在线观看| 善良的小峓子2在钱免费中文字| 色综合免费视频| 先锋影音亚洲| 在线免费观看理论片| 精品高清国产a毛片| 视频一区 精品自拍|