【正文】
離也大大提高。RS485常采用平衡發(fā)送和差分接收方式來實(shí)現(xiàn)通信。RS485需要2個(gè)匹配電阻,其阻值要求等于傳輸電纜的特性阻抗。只有在很短的距離下才能獲得最高速率傳輸。RS485的最大傳輸距離約為1219m,最大傳輸速率為10Mb/s 。無論是四線還是二線連接方式總線上最多只能接32個(gè)設(shè)備。RS485 可以采用二線與四線方式,二線制,可實(shí)現(xiàn)真正的多點(diǎn)雙向半雙工通信。支持半雙工或全雙工模式,網(wǎng)絡(luò)拓?fù)渫ǔ2捎媒K端匹配的總線型結(jié)構(gòu),不支持環(huán)型或星型網(wǎng)絡(luò)。圖7 數(shù)碼管顯示電路原理圖 RS485總線及其與單片機(jī)的接口電路的設(shè)計(jì)[4][5]RS485是一個(gè)電氣接口規(guī)范,屬于7層開放系統(tǒng)互連(Open System Interconnection,OSI) 模型物理層的協(xié)議標(biāo)準(zhǔn)。其中段選線占用一個(gè)8位I/O口,可用單片機(jī)的P1口作為段選線控制的I/O;位選線占用4位I/O口,~,由于采用的是共陽極LED為使亮度足夠,每位都采用了一個(gè)PNP管進(jìn)行驅(qū)動(dòng)。在輪流點(diǎn)亮的過程中,每位顯示器的點(diǎn)亮?xí)r間極為短暫(約1ms),由于人類眼睛的視覺暫留及發(fā)光二極管的余輝效應(yīng),只要輪流點(diǎn)亮各位二極管是,掃描的頻率合適時(shí)不會(huì)有閃爍感。單片機(jī)向字段輸出字形碼時(shí),所有顯示器都接收到相同的字表碼,但究竟是哪個(gè)數(shù)碼管亮,則取決于公共端,可通過控制公共端來決定哪一位數(shù)碼管發(fā)亮顯示。圖6 直接由VDD供電,同時(shí),單片機(jī)對(duì)DS18B20進(jìn)行讀/寫操作也是通過該引腳實(shí)現(xiàn)的。當(dāng)采用DQ線寄生電源供電方式時(shí),在對(duì)DS18B20的一些命令操作上會(huì)有一些較特殊的要求。單總線器件僅在主機(jī)發(fā)出讀時(shí)序時(shí)才向主機(jī)傳輸數(shù)據(jù),當(dāng)主機(jī)向單總線器件發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時(shí)序,以單總線器件能傳輸數(shù)據(jù)。所有的讀寫時(shí)序至少需要60us,且每兩個(gè)獨(dú)立的時(shí)序至少需要1us的恢復(fù)時(shí)間。基本的通信過程為:主機(jī)通過拉低單總線至少480us產(chǎn)生Tx脈沖;然后由主機(jī)釋放總線,進(jìn)入Rx模式。1wire協(xié)議定義了復(fù)位脈沖、應(yīng)答脈沖、寫0、讀0、和讀1時(shí)序等幾種信號(hào)類型。由于是主從結(jié)構(gòu),只有主機(jī)呼叫時(shí),從機(jī)才能應(yīng)答,主機(jī)訪問1wire器件必須嚴(yán)格遵循總線命令時(shí)序,即初始化、讀ROM、命令功能命令。kΩ的上拉電阻,當(dāng)總線閑置時(shí),其狀態(tài)為高電平。主機(jī)或從機(jī)通過一個(gè)漏極開路或態(tài)端口連到該數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時(shí)能夠釋放總線,而讓其它設(shè)備使用總線。表3 DS18B20溫度與測得值對(duì)應(yīng)表溫度/℃二進(jìn)制表示十六進(jìn)制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+0000 0001 1001 00010191H+0000 0000 1010 001000A2H+0000 0000 0000 10000008H00000 0000 0000 00000000H1111 1111 1111 1000FFF8H1111 1111 0101 1110FF5EH1111 1110 0110 1111FE6FH551111 1100 1001 0000FC90H DS18B20中的單總線技術(shù)DALLAS公司推出的1wire Bus技術(shù)采用單根信號(hào)線,既可傳輸時(shí)鐘,又能傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的。表1 LS字節(jié)2322212021222324表2 MS字節(jié)SSSSS262524當(dāng)符號(hào)位S=0時(shí),表示溫度值為正,可以直接將二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù);當(dāng)符號(hào)位S=1時(shí),表示溫度值為負(fù),要先將補(bǔ)碼變成原碼,再計(jì)算其對(duì)應(yīng)的十進(jìn)制數(shù)。單片機(jī)可以通過單線接口讀出數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在前,高位在后,℃/LSB形式表示。芯片內(nèi)部有斜率累加器,可對(duì)頻率的非線性度加以補(bǔ)償。DS18B20內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號(hào);高溫度系數(shù)振蕩器則將被測溫度轉(zhuǎn)換成頻率信號(hào)。計(jì)數(shù)器1的預(yù)置數(shù)也就是在給定溫度處使溫度寄存器值加1℃所需的計(jì)數(shù)值。以后計(jì)數(shù)器1每一個(gè)循環(huán)的預(yù)置數(shù)都由斜率累加器提供。初始時(shí),溫度寄存器被預(yù)置成55℃,每當(dāng)計(jì)數(shù)器1從預(yù)置數(shù)開始減計(jì)數(shù)到0時(shí),溫度寄存器中寄存的溫度值就增加1℃,這個(gè)過程重復(fù)進(jìn)行直到計(jì)數(shù)器2計(jì)數(shù)到0為止。圖5 DS18B20的內(nèi)部框圖低溫度系數(shù)振蕩器是一個(gè)振蕩頻率隨溫度變化很小的振蕩器,為計(jì)數(shù)器1提供一個(gè)頻率穩(wěn)定的計(jì)數(shù)脈沖。 圖2 DS18B20的8腳SO封裝 圖3 DS18B20的3腳PR35封裝 8腳封裝的NC為空引腳;VDD為電源引腳,~;GND接地;DQ為數(shù)據(jù)的輸入和輸出引腳(單線總線),常態(tài)下呈高電平。根據(jù)實(shí)際需要通過簡單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式,℃,測量范圍為55~125℃。 數(shù)字式溫度傳感器DS18B20DS18B20數(shù)字式溫度傳感器與傳統(tǒng)的熱敏電阻不同,可直接將溫度轉(zhuǎn)化成數(shù)字信號(hào)進(jìn)行處理,每片DS18B20都具有惟一的產(chǎn)品號(hào)并可存入其ROM中,便于構(gòu)成大型溫度測控系統(tǒng)時(shí)在單線上掛接多個(gè)DS18B20芯片,CPU可用簡單的協(xié)議就可識(shí)別。圖1 遠(yuǎn)程溫度數(shù)據(jù)采集系統(tǒng)框圖 DS18B20數(shù)字式溫度傳感器模塊的硬件電路設(shè)計(jì)[1][2]為了降低溫度采集的硬件復(fù)雜性與提高整個(gè)設(shè)計(jì)電路的抗干攏能力,降低成本,數(shù)據(jù)采集模塊中,采用美國達(dá)拉斯(DALLAS)公司推出的一種改進(jìn)型智能溫度傳感器DS18B20作為檢測元件。就其采樣頻率和分辨率來說屬于中速類型,適合對(duì)數(shù)據(jù)采樣頻率要求不是特別高的應(yīng)用場合。設(shè)計(jì)采用了模塊化的思想,條理清楚,主要有硬件設(shè)計(jì)與軟件程序設(shè)計(jì)兩部分。 系統(tǒng)上位機(jī)由一臺(tái)微機(jī)構(gòu)成,軟件采用Visual Basic編程,做出十分直觀的人機(jī)界面,由單片機(jī)構(gòu)成的測溫模塊檢測到的溫度數(shù)據(jù)分別顯示在單片機(jī)的顯示模塊和通過串口通信顯示在PC機(jī)上。為了簡化電路,降低成本,提高性價(jià)比,增強(qiáng)抗干攏能力和擴(kuò)大傳輸距離和使用的靈活性,研究一種新的溫度數(shù)據(jù)遠(yuǎn)程采集系統(tǒng)也就很有必要。傳統(tǒng)的溫度檢測大多以熱敏電阻或熱電偶為傳感器,它們測出的一般都是電壓,再通過相應(yīng)的A/D轉(zhuǎn)換,轉(zhuǎn)換成對(duì)應(yīng)的溫度,這種結(jié)構(gòu)需要比較多的外部硬件支持,硬件電路復(fù)雜,軟件調(diào)試復(fù)雜,制作成本高。關(guān)鍵詞:單片機(jī)AT89C52 溫度傳感器DS18B20 RS232 總線串行通信RS485 Abstract: A designing method which uses DS18B20 digital sensor as temperaturecollecting tool, and single chip puter as Microcontroller unit is introduced. It makes a longrange conveyance by using RS485 Bus to send the collected data to PC temperaturemeasuring system by RS232 interface. This design has its clear order and mainly has hardware design and software process design two parts for its Modular thoughts. This system has widely perspective in temperature measurement and good use value for its simple and convenient interfaces. As far as sampling frequency and resolution ratio, it belongs to middlespeed type. It is proper to be used in application occasion without high requirement to data sampling frequency.Key words: Single Chip Computer AT89C52;Temperature Sensor DS18B20;RS232;Bus Serial Communication RS485;1 概述數(shù)據(jù)采集廣泛應(yīng)用于各個(gè)測試和控制系統(tǒng),數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)包括很多方面的內(nèi)容,涉及面也很廣。本系統(tǒng)接口簡單、使用方便、可靠性好,在溫度檢測中有較廣泛的應(yīng)用前景,具有較強(qiáng)的使用價(jià)值。目 錄內(nèi)容摘要 1關(guān)鍵詞 1Abstract 1Key words 11 概述 22數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計(jì) 3 DS18B20數(shù)字式溫度傳感器模塊的硬件電路設(shè)計(jì) 3 數(shù)碼管顯示模塊的設(shè)計(jì) 8 RS485總線及其與單片機(jī)的接口電路的設(shè)計(jì) 93 遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì) 14 單片機(jī)的數(shù)據(jù)采集模塊的程序設(shè)計(jì) 14 數(shù)據(jù)采集的串口通信協(xié)議 19 人機(jī)界面的設(shè)計(jì) 244系統(tǒng)調(diào)試與分析 29 單片機(jī)中測溫顯示模塊的調(diào)試 29 串口通信調(diào)試 29 結(jié)果分析 315 結(jié)束語 32參考文獻(xiàn) 33致 謝 35內(nèi)容摘要:本論文提出一種利用DS18B20數(shù)字式溫度傳感器作為溫度采集的工具,利用單片機(jī)AT89C52對(duì)它進(jìn)行控制,并且通過RS485總線做遠(yuǎn)程傳送將采集到的數(shù)據(jù)通過RS232接口送入PC機(jī)測溫系統(tǒng)的設(shè)計(jì)方法。設(shè)計(jì)采用了模塊化的思想,條理清楚,主要有硬件設(shè)計(jì)與軟件程序設(shè)計(jì)兩部分。就其采樣頻率和分辨率來說屬于中速類型,適合對(duì)數(shù)據(jù)采樣頻率要求不是特別高的應(yīng)用場合。在日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要用到溫度的檢測及控制,能獨(dú)立工作的溫度檢測系統(tǒng)已廣泛應(yīng)用于諸多的領(lǐng)域。在一些測量與控制系統(tǒng)的應(yīng)用場合中,數(shù)據(jù)采集點(diǎn)與控制點(diǎn)通常有一定的距離,因此需要將采集的數(shù)據(jù)從采集現(xiàn)場進(jìn)行遠(yuǎn)程傳輸,而傳統(tǒng)的串口通信傳輸?shù)淖畲蟮木嚯x只有15m,因此相要完成遠(yuǎn)距離的傳輸,就應(yīng)對(duì)系統(tǒng)的數(shù)據(jù)傳輸問題采取新的方法。本設(shè)計(jì)提出一種利用DS18B20數(shù)字式溫度傳感器作為溫度采集的工具,利用單片機(jī)對(duì)它進(jìn)行控制,并且通過RS485總線做遠(yuǎn)程傳送將采集到的數(shù)據(jù)通過RS232接口送入PC機(jī)測溫系統(tǒng)的設(shè)計(jì)方法。本系統(tǒng)設(shè)計(jì)完成了對(duì)溫度數(shù)據(jù)的采集、數(shù)碼管顯示以及PC機(jī)對(duì)溫度變化的曲線圖繪制。本設(shè)計(jì)接口簡單、使用方便、可靠性好,在溫度檢測中有較廣泛的應(yīng)用前景,具有較強(qiáng)的使用價(jià)值。2數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計(jì)系統(tǒng)主要由DS18B20數(shù)字式溫度傳感器模塊、單片機(jī)控制模塊、數(shù)碼管顯示模塊、RS485傳輸總線模塊、RS485/RS232轉(zhuǎn)換接口模塊、上位PC機(jī)顯示和控制模塊五個(gè)部分組成,其框圖如圖1所示,本系統(tǒng)的整體硬件電路圖見附錄1。它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),特別適合于多點(diǎn)溫度測控系統(tǒng)。從DS18B20讀出或?qū)懭隓S18B20信息僅需要一根端口線,其讀寫及溫度變換功率來源于數(shù)據(jù)總路線,該總路線本身也可以向所掛接的DS18B20供電,而無需額外電源,從而節(jié)省大量的引線和邏輯電路。它采用8腳SO封裝或3腳PR35封裝,分別如圖圖3所示。DS18B20的內(nèi)部結(jié)構(gòu)如圖4所示:圖4 DS18B20的內(nèi)部結(jié)構(gòu) DS18B20的測溫原理DS18B20的內(nèi)部框圖如圖5所示,主要包括寄生電源、溫度傳感器、64位激光ROM單線接口、存放中間數(shù)據(jù)的高速暫存器、用于存儲(chǔ)用戶設(shè)定的溫度上下限值、觸發(fā)器存儲(chǔ)與控制邏輯、8位循環(huán)冗余校驗(yàn)發(fā)生器等7部分。高溫度系數(shù)振蕩器是一個(gè)振蕩頻率對(duì)溫度很敏感的振蕩器,為計(jì)數(shù)器2提供一個(gè)頻率隨溫度變化的計(jì)數(shù)脈沖。初始時(shí),計(jì)數(shù)器1的預(yù)置值是和55℃相對(duì)應(yīng)的一個(gè)初始值。為了補(bǔ)償振蕩器溫度特性的非線性,斜率累加器提供的預(yù)置值也隨溫度作相應(yīng)的變化。DS18B20測量溫度時(shí)使用特有的溫度測量技術(shù)。當(dāng)計(jì)數(shù)門打開時(shí),DS18B20進(jìn)行計(jì)數(shù),計(jì)數(shù)門開通時(shí)間由高溫度系數(shù)振蕩器決定。測量結(jié)果以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存入溫度寄存器中。溫度值格式的低、高字節(jié)如表表2所示。表3是部分溫度對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。系統(tǒng)中的數(shù)據(jù)交換、控制都由這根線完成。主機(jī)和從機(jī)之間的通信通過三個(gè)步驟完成:初始化1wire器件、識(shí)別1wire器件和交換數(shù)據(jù)。如出現(xiàn)混亂,1wire器件不會(huì)響應(yīng)主機(jī)。在這些信號(hào)中除應(yīng)答信號(hào)外,其它的都是由主機(jī)發(fā)出同步信號(hào),且發(fā)送的所有命令和數(shù)據(jù)都是低字節(jié)在前面。主機(jī)釋放總線時(shí),會(huì)產(chǎn)生一由低電平跳變?yōu)楦唠娖降纳仙?;單總線器件檢測到該上升沿后,延時(shí)15~60us;單總線器件通過拉低總線60~240us來產(chǎn)生應(yīng)答脈沖;主機(jī)接收到從機(jī)的應(yīng)答信號(hào)脈沖后,說明有單總線器件在線,然后主機(jī)就可以開始對(duì)從機(jī)進(jìn)行ROM命令和功能命