【正文】
ceFlag){OWInit()。rom_byte_number = 0。idata unsigned char rom_byte_mask。 搜索流程圖 搜索流程圖 搜索流程圖對應(yīng)以上流程圖的代碼如下bit OWSearch(void){idata unsigned char id_bit_number。搜索算法指定在第一輪查詢中若出現(xiàn)差異(數(shù)據(jù)位/補(bǔ)碼 = 0/0),則選用‘0’路徑。在后續(xù)搜索過程中,選用不同的路徑(或分支)來查找其它器件的ROM 碼。與所有的1Wire 通信一樣,無論是讀取數(shù)據(jù)還是向從機(jī)器件寫數(shù)據(jù),都由1Wire 主機(jī)啟動每一位操作。搜索算法首先通過復(fù)位(Reset)和在線應(yīng)答脈沖(Presence Pulse)時隙將1Wire 總線上的所有器件復(fù)位;成功地執(zhí)行該操作后發(fā)送1 個字節(jié)的搜索命令,搜索命令使1Wire 器件準(zhǔn)備就緒、開始進(jìn)行搜索操作。} 1Wire 器件的ROM搜索從上面的讀出溫度的過程我們看到,DS18B20是依靠64位注冊碼來作為地址,來區(qū)分每個器件的,我們要完成在一條1Wire總線上的多點(diǎn)測量必須知道每一個器件的注冊碼,當(dāng)線路上只有一個器件的時候,這個問題處理起來很簡單,只要發(fā)出0X33命令就行,但是實(shí)際上我們看到,現(xiàn)場使用的測溫電纜已經(jīng)把多個18B20密封在一條電纜中了,我們不可能單獨(dú)來測量每一個18B20的注冊碼了,這樣問題就復(fù)雜了,各種參考文獻(xiàn)和網(wǎng)絡(luò)上的例程都沒有對這種情況的介紹,不解決這個問題,溫度檢測系統(tǒng)就沒有使用價(jià)值!通過對參考文獻(xiàn)DS1820 Programmable Resolution 1Wire174。 for(i=0。當(dāng)產(chǎn)品系列編碼的8 位移入以后,接著移入序列號,在序列號的第48 位進(jìn)入之后,移位寄存器便包含了CRC 值,移入CRC 的8 位應(yīng)該使移位寄存器返回至全零。 1Wire CRC 校驗(yàn)處理DS1820有一包括64位ROM 的最高有效字節(jié)內(nèi)的8位CRC,總線上的主機(jī)可以根據(jù)64位ROM的前56位計(jì)算CRC的值并把它與存貯在DS1820內(nèi)的值進(jìn)行比較以決定ROM的數(shù)據(jù)是否已被主機(jī)正確地接收,CRC的等效多項(xiàng)式函數(shù)為 CRC=X8+X5+X4+1。 //skip rom WriteByte(0xbe)。 WriteByte(0xcc)。 //read rom read_bytes(8)。 Temperature /= 16。}/*************************************************************Function:讀取溫度*parameter:*Return:*Modify:*************************************************************/void GemTemp (void){ read_bytes (9)。 for(i=0。 TempDelay (4)。i++) { dq = 0。 wr = 1。 TempDelay(5)。i++) { dq = 0。}ROM 操作命令一旦總線主機(jī)檢測到從屬器件的存在它便可以發(fā)出器件ROM 操作命令之一所有ROM 操作命令均為8 位長,ROM操作命令由1Wire的單字節(jié)讀寫命令完成。 //detect 1820 fail! TempDelay(20)。 _nop_()。 //delay 530 uS 主機(jī)發(fā)出復(fù)位脈沖 _nop_()。完成這個功能的代碼如下:/*************************************************************Function:18B20初始化*parameter:*Return:*Modify:*************************************************************/void Init18b20 (void){ dq=1。LED指示燈如下圖所示。它符合所有的RS232C技術(shù)規(guī)范,只要單一 +5V電源供電;片載電荷泵,具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生 +10V 和 10V電壓V+、V ;低功耗,典型供電電流5mA;內(nèi)部集成2個RS232C驅(qū)動器,內(nèi)部集成2個RS232C接收器。實(shí)現(xiàn)這種轉(zhuǎn)換的方法可以使用分立元件,也可以使用專用RS232C電平轉(zhuǎn)換芯片。在不使用調(diào)制解調(diào)器(MODEM)時,RS232C能夠可靠進(jìn)行數(shù)據(jù)傳輸?shù)淖畲笸ㄐ啪嚯x為15米。3. 通訊接口本設(shè)計(jì)采用RS232C串行通信方式。如果單片機(jī)是EPROM,在編程其間,將用于輸入編程脈沖。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。初始化后,程序計(jì)數(shù)器PC指向0000H,P0P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。(7)中斷系統(tǒng):STC89C52具備較完善的中斷功能,有兩個外中斷、兩個定時/計(jì)數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。 (3)程序存儲器(ROM):STC89C52共有8192個8位Flash ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。INTEL的MCS51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。 外部電源供電方式 外部供電方式的多點(diǎn)測溫電路圖外部電源供電方式是DS18B20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng)。 DS18B20寄生電源供電方式電路圖(2)DS18B20寄生電源強(qiáng)上拉供電方式電路圖改進(jìn)的寄生電源供電方式如下面圖10所示,為了使DS18B20在動態(tài)轉(zhuǎn)換周期中獲得足夠的電流供應(yīng),當(dāng)進(jìn)行溫度轉(zhuǎn)換或拷貝到E2存儲器操作時,用MOSFET把I/O線直接拉到VCC就可提供足夠的電流,在發(fā)出任何涉及到拷貝到E2存儲器或啟動溫度轉(zhuǎn)換的指令后,必須在最多10μS內(nèi)把I/O線轉(zhuǎn)換到強(qiáng)上拉狀態(tài)。因此,圖9電路只適應(yīng)于單一溫度傳感器測溫情況下使用,不適宜采用電池供電系統(tǒng)中。下面就是DS18B20幾個不同應(yīng)用方式下的測溫電路圖:(1)DS18B20寄生電源供電方式電路圖如下面圖9所示,在寄生電源供電方式下,DS18B20從單線信號線上汲取能量:在信號線DQ處于高電平期間把能量儲存在內(nèi)部電容里,在信號線處于低電平期間消耗電容上的電能工作,直到高電平到來再給寄生電源(電容)充電。ROM、RAM指令如下圖所示: ROM、RAM指令表 DS18B20的應(yīng)用電路單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后。(4)配置寄存器該字節(jié)各位的意義如下: 配置寄存器 低五位一直都是1,TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式。(2)DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,℃/LSB形式表達(dá),其中S為符號位。 DS18B20的測溫原理DS18B20有4個主要的數(shù)據(jù)部件:高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計(jì)數(shù)器2的脈沖輸入。 DS18B20的讀時序(2)DS18B20的寫時序 對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。數(shù)據(jù)和命令的傳輸都是低位在先。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。3VDD可選擇的VDD引腳。 DS18B20的引腳介紹 TO-。C到+125。 DS18B20產(chǎn)品的特點(diǎn) (1)、只要求一個端口即可實(shí)現(xiàn)通信。在使用中不需要任何外圍元件;測量結(jié)果以9~12位數(shù)字量方式串行傳送。DS18B20 數(shù)字溫度傳感器,測溫范圍 -55℃~+125℃,℃。作為電流輸出型傳感器的一個特點(diǎn)是,和電壓輸出型相比,它有很強(qiáng)的抗外界干擾能力?!?。在工業(yè)中用于50~180℃測溫。按IEC標(biāo)準(zhǔn)測溫范圍200~650℃,百度電阻比W(100)=,R0為100Ω和10Ω,其允許的測量誤差A(yù)級為177?,F(xiàn)應(yīng)用較多的有鉑、銅、鎳等熱電阻。同時增加了組件的測溫點(diǎn)免維護(hù)自由增減功能,以適應(yīng)系統(tǒng)的規(guī)模的自由裁剪。上位機(jī)上位機(jī)運(yùn)行組態(tài)通用工業(yè)過程監(jiān)控軟件,對現(xiàn)場的設(shè)備進(jìn)行監(jiān)控、并對倉庫溫濕度進(jìn)行巡回檢測。但是通過實(shí)際的考察,現(xiàn)實(shí)的系統(tǒng)根本不是這個樣子:由于糧食要定期的通過熏蒸來除蟲、防鼠,熏蒸藥劑具有高毒性,高腐蝕性,人員根本不能隨意接觸到倉內(nèi)設(shè)備,更不要說通過數(shù)碼管的顯示和報(bào)警器來及時發(fā)現(xiàn)溫度的異常變化,同時出于防爆的要求,在倉庫內(nèi)部的系統(tǒng),是完全密封的,并被充入低氧高氮的氣體,平時人員根本不能及時進(jìn)入。它直接影響到儲備物資的壽命和工作可靠性。關(guān)鍵詞:DS18B20 ;單片機(jī) MCU;串行傳輸 Serial Data Transfer;單總線 1wire interface AbstractThis design as the main STC8952 of singlechip control module, using a simple external circuit to drive the 1Wire bus, the use of 1Wire bus protocol, to achieve a more accurate measurement of temperature. The use of MCS STC89C52 powerful features and its own internal RAM resources, it is easy to achieve singlechip and PC data transfer between aircraft and the use of software to facilitate the realization of the logic to determine the 1Wire bus ROM search, the realization of the temperature measurement device enumeration 18B20, no intervention to achieve a dynamic temperature measurement point cut, so the design of practical application. In addition,the system did not plete humidity testing. This article from the 1Wire bus starting with the principle, described in detail 1Wire bus ROM search process, as well as the design of hardware circuits, puting and software algorithms. Keywords :DS18B20。倉庫溫濕度檢測系統(tǒng)設(shè)計(jì)院 系自動化學(xué)院專 業(yè)自動化班 級學(xué) 號姓 名指導(dǎo)教師負(fù)責(zé)教師2009年月65 / 71摘要本設(shè)計(jì)使用STC89C52單片機(jī)作為主控制模塊,利用簡單的外圍電路來驅(qū)動1Wire總線,利用1Wire總線協(xié)議,實(shí)現(xiàn)了多點(diǎn)溫度和濕度的精確測量。本文從1Wire總線的原理入手,詳細(xì)闡述了1Wire總線的ROM搜索過程,以及硬件電路的設(shè)計(jì)、計(jì)算和軟件的算法。monobus 1wire interface目 錄摘要 IAbstract II目 錄 III第1章 緒 論 1 1 2 2 2第2章 系統(tǒng)總體設(shè)計(jì) 3 3 4 DS18B20基本知識 4 DS18B20產(chǎn)品的特點(diǎn) 4 DS18B20的引腳介紹 4 5 5 DS18B20的使用 7 DS18B20的應(yīng)用電路 11 14 MAX232電平轉(zhuǎn)換芯片特點(diǎn) 18 20 20第3章 軟件設(shè)計(jì) 22 1Wire總線協(xié)議處理 22 1Wire CRC 校驗(yàn)處理 28 1Wire 器件的ROM搜索 29 ‘FIRST’操作 38 ‘NEXT’操作 38 39第4章 總結(jié) 41社會經(jīng)濟(jì)效益分析 42參考文獻(xiàn) 43致謝 45附錄A 程序清單 46附錄B PCB板圖 65 第1章 緒 論防潮、防霉、防腐、防爆是糧庫日常工作的重要內(nèi)容,是衡量糧庫管理質(zhì)量的重要指標(biāo)。在我們的印象中,溫度的測量不外乎由傳感器、放大器、數(shù)碼顯示、報(bào)警器等單元組成?,F(xiàn)場控制站現(xiàn)場控制站可用西門子PLC控制現(xiàn)場輸送機(jī)、提升機(jī)、電動閘門、通風(fēng)機(jī)的啟動運(yùn)行,以及報(bào)警等功能的反饋信號,實(shí)現(xiàn)自動化控制。根據(jù)實(shí)際的需求,我們提出了測溫組件的基本功能,需要說明的是,在這里你看不到傳統(tǒng)的溫度顯示功能,因?yàn)閷?shí)際上工作人員根本不可能到現(xiàn)場去記錄溫度的顯示。熱電阻是利用導(dǎo)體的電阻隨溫度變化的特性制成的測溫元件。缺點(diǎn)是價(jià)格貴,溫度系數(shù)小,受到磁場影響大,在還原介質(zhì)中易被玷污變脆。銅電阻的