采用ds18b20和at89c51單片機的遠程溫控系統(tǒng)設(shè)計本科學(xué)位論文_第1頁
采用ds18b20和at89c51單片機的遠程溫控系統(tǒng)設(shè)計本科學(xué)位論文_第2頁
采用ds18b20和at89c51單片機的遠程溫控系統(tǒng)設(shè)計本科學(xué)位論文_第3頁
采用ds18b20和at89c51單片機的遠程溫控系統(tǒng)設(shè)計本科學(xué)位論文_第4頁
采用ds18b20和at89c51單片機的遠程溫控系統(tǒng)設(shè)計本科學(xué)位論文_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

采用DS18B20和AT89C51單片機的遠程溫控系統(tǒng)設(shè)計1引言糧食溫度檢測是儲備庫中防止糧食霉?fàn)€、保質(zhì)存放的重要環(huán)節(jié)。對于一個農(nóng)業(yè)大國來講,糧食生產(chǎn)、需求與儲備量都很大。大量糧食在儲備的過程中常因糧食濕度過大而升溫發(fā)熱,導(dǎo)致糧食大量腐爛變質(zhì),給國家?guī)砭薮髶p失。所以糧倉監(jiān)控系統(tǒng)中溫度測量是整個系統(tǒng)的主要功能之一。本文介紹一種以單線數(shù)字溫度傳感器DS18B20為溫度敏感元件的糧倉溫控系統(tǒng),系統(tǒng)以微型計算機為上位機,89C51單片機為檢測分機,DS18B20數(shù)字溫度傳感器直接與分機連接,分機與測溫主機通過RS-485總線網(wǎng)進行通信,系統(tǒng)所有操作通過菜單命令完成。本文主要圍繞下位機數(shù)據(jù)采集部分進行論述,并結(jié)合糧倉監(jiān)控系統(tǒng),對DSl8B20的這種單總線技術(shù)及其在本系統(tǒng)中的具體應(yīng)用進行了討論。2系統(tǒng)硬件設(shè)計2.1系統(tǒng)的總體設(shè)計整個系統(tǒng)從結(jié)構(gòu)上可分為三層:由微型計算機構(gòu)成上位機——用戶監(jiān)控層,51單片機系統(tǒng)分別構(gòu)成測溫主機——控制層和分機——溫度數(shù)據(jù)采集層。上位機通過串行口與測溫主機交換數(shù)據(jù)。測溫主機與多臺分機采用主從分布式結(jié)構(gòu)。系統(tǒng)組成結(jié)構(gòu)如圖1所示,測溫主機與上位機通過RS-232總線連接,測溫分機與主機通過RS-485總線連接。一臺主機最多可管理64臺分機,一臺分機可以測試大約1000個溫度點。本設(shè)計適用于中小型糧庫。2.2溫度數(shù)據(jù)采集模塊的設(shè)計DS18B20是美國DALLAS公司生產(chǎn)的數(shù)字溫度傳感器芯片,具有結(jié)構(gòu)簡單、體積小、功耗小、抗干擾能力強、使用方便等優(yōu)點??梢栽谌€上同時并聯(lián)多個溫度傳感器,每臺分機上可以連接多根電纜,每根電纜上可以并聯(lián)幾十個點,構(gòu)成串行總線工作方式。由于18B20芯片送出的溫度信號是數(shù)字信號,因此簡化了A/D轉(zhuǎn)換的設(shè)計,提高了測量效率和精度;并且芯片的ROM中存有其唯一標(biāo)識碼,即不存在相同標(biāo)識碼的DS18B20,特別適合與微處理芯片構(gòu)成多點溫度測控系統(tǒng)。每臺測溫分機的P0~P3口分別可接N個DS18B20傳感器(N<40)。上位機控制每臺分機工作,實現(xiàn)多點測溫。采集到的溫度數(shù)據(jù)通過RS-485通信總線連成的總線型網(wǎng)絡(luò)進行傳輸,測溫分機接收到DS18B20所傳送的溫度數(shù)據(jù),并將這些數(shù)據(jù)進行簡單的處理發(fā)往上位機。主程序?qū)崿F(xiàn)對DS18B20的實時數(shù)據(jù)采集,將結(jié)果存貯于單片機的RAM區(qū)。中斷服務(wù)程序?qū)崿F(xiàn)測溫分機與上位機的通信。測溫分機按照上位機的命令來完成溫度數(shù)據(jù)采集和發(fā)送工作。其先將采集的數(shù)據(jù)存放于外部存儲器SRAM中,當(dāng)收到上位機的上傳數(shù)據(jù)命令時,由發(fā)送子程序?qū)?shù)據(jù)進行簡單處理后通過串口TXD端送出。在測溫主機的配合下,數(shù)據(jù)上傳到上位機并在上位機的監(jiān)控界面顯示給用戶。2.3RS-485總線在溫控系統(tǒng)中的設(shè)計在系統(tǒng)中用51單片機構(gòu)成主從分布式測控系統(tǒng),具有價格低、控制功能強等許多特點。然而在應(yīng)用中,測溫主機與各糧倉相距較遠,距離從幾十米到幾千米不等。對此遠程糧倉,系統(tǒng)采用RS-485總線實現(xiàn)數(shù)據(jù)的遠程傳輸。進行串行通信的主機與分機的RS-485接口電路如圖2.3所示。該電路以MAX485芯片為核心器件進行半雙工通信,具有通信功能強、可靠性高、程序設(shè)計簡單等特點。圖2典型RS-485(半雙工)通信網(wǎng)在使用RS-485接口時,對于特定的傳輸線徑,從發(fā)生器到負(fù)載,其數(shù)據(jù)信號傳輸所允許的最大電纜長度是數(shù)據(jù)信號速率的函數(shù),這個長度主要是受信號失真及噪聲等影響所限制。當(dāng)數(shù)據(jù)信號速率降低到90Kbit/S以下時,假定最大允許的信號損失為6dBV時,則電纜長度被限制在1200M。實際上,在實用時是完全可以取得比它大的電纜長度。當(dāng)使用不同線徑的電纜時,取得的最大電纜長度是不相同的。例如:當(dāng)數(shù)據(jù)信號速率為600Kbit/S時,采用24AWG電纜,計算可知最大電纜長度是200m,若采用19AWG,電纜則電纜長度將大于200m;若采用28AWG電纜,則電纜長度只能小于200m。RS-485總線是半雙工方式,即總線上某一時刻不能同時出現(xiàn)發(fā)送和接收的情況。此方式用于多站互連時,可節(jié)省信號線,方便地實現(xiàn)RS-485的多點通信功能??紤]到中小型倉庫地理位置特點,系統(tǒng)采用較低的接收、發(fā)送波特率,以換取更遠距離的傳送,此設(shè)計完全可以滿足系統(tǒng)需求?/p>3軟件設(shè)計3.1系統(tǒng)軟件的工作流程DS18B20以單總線協(xié)議工作,測溫分機首先發(fā)送復(fù)位脈沖命令,使信號線上所有的DS18B20芯片都被復(fù)位,接著發(fā)送ROM操作命令,使序列號編碼匹配的DS18B20被激活進入接收內(nèi)存訪問命令狀態(tài);內(nèi)存訪問命令完成溫度轉(zhuǎn)換、溫度讀取等工作(單總線在ROM命令發(fā)送之前存儲命令和控制命令不起作用)。DS18B20工作流程見圖3所示。圖3DS18B20工作流程圖系統(tǒng)以ROM命令和存儲器命令的形式對DS18B20操作。ROM操作命令均為8位,命令代碼分別為:讀ROM(0x33H)、匹配ROM(0x55H)、跳過ROM(0xCCH)、搜索ROM(0xF0H)和告警搜索(0xECH)命令;存儲器操作命令為:寫暫存存儲器(0x4EH)、讀暫存存儲器(0xBEH)、復(fù)制暫存存儲器(0x48H)、溫度變換(0x44H)、重新調(diào)出EERAM(0xB8H)以及讀電源供電方式(0xB4H)命令。其對時序及電特性參數(shù)要求較高,必須嚴(yán)格按照它的時序要求去操作。DS18B20的數(shù)據(jù)讀寫由測溫分機來完成,包括初始化、讀數(shù)據(jù)和寫數(shù)據(jù)。系統(tǒng)軟件采用模塊化程序設(shè)計,主從式結(jié)構(gòu)通信方式。規(guī)定總線上有一個測溫主機和64臺分機,分機地址唯一。初始化完成后各分機均處于監(jiān)聽狀態(tài),采用中斷方式工作,測溫分機接受上位機命令,向DS18B20發(fā)出地址匹配命令幀,進入等待狀態(tài),每一幀數(shù)據(jù)位都對應(yīng)著不同意義,若地址匹配成功則進行響應(yīng)分機,否則繼續(xù)等待,直到等待超時而重發(fā)命令。溫度采集模塊負(fù)責(zé)數(shù)據(jù)的采集工作。當(dāng)緩沖區(qū)有數(shù)據(jù)時產(chǎn)生中斷,程序轉(zhuǎn)向中斷服務(wù)子程序入口,中斷子程序如下:C程序voidSerialInterrupt()interrupt4//中斷服務(wù)子程序{loop0:if(RI);SlaveNo=SBUF;RI=0;while(!RI);//等待下一個命令loop1:RI=0;SensorNo=SBUF;if(SlaveNo==0x81&SensorNo<0x80)//判別數(shù)據(jù)是否合法{while(1){Gettemp(SensorNo);if(RI)gotoloop1;}}elsegotoloop0;}//否則繼續(xù)等待3.2DS18B20的時延及讀寫時序問題為保證DS18B20的嚴(yán)格I/O時序,需要作較精確的延時。在DS18B20的操作中,短時間延時是指10us以下的延時,在匯編語言下采用若干個NOP指令即可。因C51編譯器提供了若干內(nèi)部函數(shù),(_nop_()函數(shù)為其中之一)其編譯結(jié)果就是在對應(yīng)位置嵌入一個nop匯編指令,所以短時間延時可利用_nop_()函數(shù)實現(xiàn)。較長時間延時指10us以上的延時。在DS18B20操作中,用到的較長時間延時有15us、90us、270us、540us等。因這些延時均為15us的整數(shù)倍,可編寫一個Delayl5(n)函數(shù),該函數(shù)可實現(xiàn)約15us×n的延時。DS18B20的初始化包括測溫分機發(fā)送的復(fù)位脈沖和其向測溫分機返回的存在脈沖??偩€在開始時刻發(fā)出一個最短為480us的低電平復(fù)位脈沖,接著在該時刻釋放總線并進入接收狀態(tài),DS18B20在接收到總線的電平上升沿,等待15—60us后在下一時刻發(fā)出60—240us時延的低電平存在脈沖信號,表明器件已接在總線上。時序如圖4所示。圖4初始化圖當(dāng)總線于該時刻從高電平拉至低電平時,就產(chǎn)生“寫”的時間間隙。從該時刻開始15us之內(nèi),應(yīng)將所需寫的位送到總線上,DS18B20在該時刻后的15—45us期間內(nèi)對總線采樣,低電平寫入0,高電平寫入1。連續(xù)寫兩位之間的間隙應(yīng)大于1us。寫時序如圖5所示。圖5讀寫時序圖起始時刻將總線從高電平拉至低電平,持續(xù)15us之后將總線釋放,就產(chǎn)生讀時間間隙。測溫分機必須在該時刻之后的15us之內(nèi)完成讀總線狀態(tài),并在45us內(nèi)釋放總線,連續(xù)讀兩位之間的間隙應(yīng)大于1us。讀時序如圖5所示。4總結(jié)本文論述了以DS18B20為傳感器,AT89C51單片機為控制核心組成的遠程糧倉溫控系統(tǒng)。由于DS18B20采用數(shù)字單總線技術(shù),使得系統(tǒng)電路簡單,易于擴展,加上總線數(shù)字化,使得系統(tǒng)的抗干擾性能好,可靠性高,測溫范圍比較寬(-55~125℃),與傳統(tǒng)的溫控系統(tǒng)相比還具有較高的性價比。此外,系統(tǒng)的應(yīng)用范圍不僅僅局限于糧倉領(lǐng)域,稍作改動還可作為其它自控領(lǐng)域的解決方案,如煙葉烘烤箱控制系統(tǒng)等。本文作者創(chuàng)新觀點:采用新型數(shù)字溫度傳感器DS18B20,并將其與51單片機、RS-485總線技術(shù)有機的結(jié)合在一起,組成抗干擾性能較強的溫控系統(tǒng)。系統(tǒng)具有較高的性價比,已成功應(yīng)用于許昌、尉氏等中型糧庫中。該系統(tǒng)避免了因溫度過高而導(dǎo)致大量糧食發(fā)霉變質(zhì)所造成的損失,對于中型糧庫可產(chǎn)生經(jīng)濟效益百萬元以上,在糧食儲藏技術(shù)領(lǐng)域內(nèi)具有廣闊的市場前景。用FPGA實現(xiàn)對DS18B20溫度傳感器控制l引言DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,采用3引腳T0-92型小體積封裝;溫度測量范圍為-55℃~+125~C,可編程為9位~12位A/D轉(zhuǎn)換精度,測溫分辨率可達0.0625一線式(1-WIRE)串行總線是利用1條信號線就可以與總線上若干器件進行通信。具體應(yīng)用中可以利用微處理器的I/O端口對DS18B20直接進行通信,也可以通過現(xiàn)場可編程門陣列(FPGA)等可編程邏輯器件(PLD)實現(xiàn)對1-WIRE器件的通信。本文介紹利用ACTEL公司的ProASICplus系列FPGA實現(xiàn)與DS18B20的通信功能。FPGA可以將讀出DS18B20的48位ID號和12位溫度測量結(jié)果保存在內(nèi)部寄存器中,微處理器可以隨時快速地從FPGA寄存器中讀取這些信息。一般在使用DS18B20時往往采用微處理器的I/O端口實現(xiàn)與該器件的通信,這種方法雖然比較容易和方便,但是,因為DS18B20的一線式串行總線對時序要求比較嚴(yán)格,因此,為了保證與DS18B20的通信可靠性,微處理器與DS18B20通信時需要采用關(guān)閉中斷的辦法,以防止操作時序被中斷服務(wù)破壞。利用FPGA實現(xiàn)與。DS18B20通信不存在被迫關(guān)閉中斷的情況,可以滿足對實時性要求嚴(yán)格的應(yīng)用要求。2ProASICplus系列FPGA簡介ProASICplus系列FPGA是ACTEL公司推出的基于Flash開關(guān)編程技術(shù)的現(xiàn)場可編程門陣列,包括從7.5萬門的APA075型到100萬門的APAl000型,具有高密度、低功耗、非易失、含有嵌入式RAM及可重復(fù)編程等特點。因為ProASICplus系列FPGA基于Flash技術(shù),利用Flash開關(guān)保存內(nèi)部邏輯,因此不需要另外的器件。由于不需要上電配置過程,因此具備上電就立即工作的特點。不用配置器件,系統(tǒng)的保密性提高。筆者在電力監(jiān)控的產(chǎn)品中利用APA150型FPGA實現(xiàn)了邏輯控制、A/D采樣控制和FIFO存儲等功能,并利用剩余的資源實現(xiàn)了DS18B20的通信功能。APA150在整個系統(tǒng)中充當(dāng)協(xié)處理器,使主CPU從繁重的實時處理中解脫出來。3DS18B20簡介3.1內(nèi)部結(jié)構(gòu)DS18B20的內(nèi)部結(jié)構(gòu)如圖1所示,主要由以下幾部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH(溫度高)和TL(溫度低)、配置寄存器、暫存寄存器(SCRATCHPAD)、存儲器控制邏輯。DQ為數(shù)字信號輸入/輸出端。ROM中的64(8位產(chǎn)品家族編號、48位ID號、8位CRC)位序列號是出廠前刻好的,這64位序列號具有惟一性,每個DS18B20的64位序列號均不相同。8位CRC生成器可以完成通信時的校驗。暫存寄存器有9個字節(jié),包含溫度測量結(jié)果、溫度報警寄存器、CRC校驗碼等內(nèi)容。3.2操作步驟對DS18B20的操作分為3個步驟:初始化、ROM命令和DS18B20功能命令。3.2.1初始化FPGA要與DS18B20通信,首先必須完成初始化。FPGA產(chǎn)生復(fù)位信號,DS18B20返回響應(yīng)脈沖。3.2.2ROM命令該步驟完成FPGA與總線上的某一具體DS18B20建立聯(lián)系。ROM命令有搜尋ROM(SEARCHROM)、讀ROM(READROM)、匹配ROM(MATCHROM)、忽略ROM(SKIPROM)、報警查找等命令(ALARMSEARCH)。這里,F(xiàn)PGA只連接1個DS18B20,因此只使用讀ROM命令,來讀取DS18B20的48位ID號。3.2.3DS18B20功能命令FPGA在該步驟中完成溫度轉(zhuǎn)換(CONVERTT)、寫暫存寄存器(WRITESCRATCHPAD)、讀暫存寄存器(READSCRATCHPAD)、拷貝暫存寄存器(COPYSCRATCHPAD)、裝載暫存器寄存器(RECALLE2)、讀供電模式命令(READPOWERSUPPLY)。文中不用溫度報警功能,因此在本步驟中只需完成溫度轉(zhuǎn)換,然后通過讀暫存寄存器命令完成溫度轉(zhuǎn)化的結(jié)果。3.3操作時序DS18B20的一線式操作時序如圖2所示。從時序圖中可以看出,對DS18B20的操作時序要求比較嚴(yán)格。利用FPGA可以實現(xiàn)這些操作時序。4FPGA與DS18B20的通信4.1DS18B20的操作模塊FPGA需要完成DS18B20的初始化、讀取DS18B20的48位ID號、啟動DS18B20溫度轉(zhuǎn)換、讀取溫度轉(zhuǎn)化結(jié)果。讀取48位ID號和讀取溫度轉(zhuǎn)換結(jié)果過程中,F(xiàn)PGA還要實現(xiàn)CRC校驗碼的計算,保證通信數(shù)據(jù)的可靠性。以上操作反復(fù)進行,可以用狀態(tài)機來實現(xiàn)。狀態(tài)機的各種狀態(tài)如下:RESET1:對DS18B20進行第一次復(fù)位,然后進入DELAY狀態(tài),等待800μs后,進入CMD33狀態(tài)。CMD33:對DS18B20發(fā)出0×33命令,讀取48位ID值。GET_ID:從DS18B20中讀取48位ID值。RESET2:對DS18B20進行第二次復(fù)位,然后進入DELAY狀態(tài)等待800μs后,進入CMDCC狀態(tài)。CMDCC:向DS18B20發(fā)出忽略ROM命令,為進入下一狀態(tài)作準(zhǔn)備。CMD44:向DS18B20發(fā)出啟動溫度轉(zhuǎn)換命令,然后進入DELAY狀態(tài)等待900ms后進入下一狀態(tài)。RESET3:對DS18B20進行第三次復(fù)位。CMDCC2:向DS18B20發(fā)出忽略ROM命令,為了進入下一狀態(tài)作準(zhǔn)備。GET_TEMP:從DS18B20中讀取溫度測量數(shù)值。DELAY:等待狀態(tài)。WRITE_BIT:向DS18B20中寫入數(shù)據(jù)位狀態(tài)。READ_BIT:從DS18B20中讀取數(shù)據(jù)位狀態(tài)。在該狀態(tài)中每讀取1位數(shù)據(jù),同時完成該數(shù)據(jù)位的CRC校驗計算。所有數(shù)據(jù)都讀取后,還要讀取8位CRC校驗位。這8位校驗位也經(jīng)過CRC校驗計算,如果通信沒有錯誤,總的CRC校驗結(jié)果應(yīng)該是0。這時可將通信正確的數(shù)據(jù)保存到id和temp_data寄存器中。設(shè)計中采用Verilog語言建立DS18B20操作模塊”DS18B20_PROC”。在該模塊中實現(xiàn)以上的狀態(tài)機功能。該模塊的定義為moduleDS18B20PROC(sysclk,reset,dq_pim,id,temp_data,dq_ctl)。圖3示出是該模塊的仿真波形。從仿真波形可以看出,系統(tǒng)上電后的10ms左右,F(xiàn)PGA可以讀出DS18B20的48位ID值,這樣,主CPU在系統(tǒng)復(fù)位后很短的時間內(nèi)就可以讀取ID值,進行相應(yīng)的處理。4.2FPGA與CPU的接口在FPGA中,要實現(xiàn)對DS18B20的通信處理,主模塊要實現(xiàn)對DS18B20_PROC模塊的調(diào)用及建立與CPU之間的接口。與CPU之間的接口通過建立若干寄存器實現(xiàn)。溫度測量值和48位ID可以用4個16位寄存器保存。CPU通過讀取這些寄存器可以獲得溫度測量數(shù)值和48位ID值。CPU、FPGA及DS18B20的連接原理如圖4所示。5結(jié)束語在系統(tǒng)中,F(xiàn)PGA可以分擔(dān)許多主處理器的工作,提高整體實時性,降低CPU處理的嚴(yán)格實時約束,從而降低CPU軟件處理的難度。同時,由于ACTEL公司的ProASICplus系列FPGA的保密特性,可以增強產(chǎn)品知識產(chǎn)權(quán)的保護。本設(shè)計應(yīng)用在電力監(jiān)控產(chǎn)品中。測量出的裝置內(nèi)部溫度用于電量測量精度補償和報警,對保證產(chǎn)品測量精度和可靠運行具有重要意義。48位ID值用于產(chǎn)品的惟一編碼標(biāo)識和以太網(wǎng)MAC地址,便于產(chǎn)品生產(chǎn)、維護和管理。采用AT89C2051單片機的的溫濕度控制系統(tǒng)設(shè)計目前,國內(nèi)大中型庫房在倉儲管理中由于技術(shù)和資金上的原因,多數(shù)僅限于只對溫度進行監(jiān)測,當(dāng)溫度超標(biāo)時進行強制通風(fēng)和翻倉,即使如此,處理不及時或因設(shè)備人力條件有限仍會造成大量損失。實現(xiàn)庫房儲藏物的溫升主要是由于濕度引起的,庫房儲藏物本身的水分過高或連續(xù)的高濕天氣將導(dǎo)致儲藏物新陳代謝加快而放出熱量,放熱引起的溫升又使代謝進一步加劇以至發(fā)霉變質(zhì)。這種惡性循環(huán)一旦形成很難進行有效控制。因此,庫房在進行溫度監(jiān)測的同時,必須重視對空氣濕度的檢測,以利于提前采取有效措施控制庫房儲藏物升溫而霉變。本文所介紹的溫濕度控制系統(tǒng)以AT89C2051單片機為控制核心,結(jié)合傳感器、通訊和數(shù)字電子電路技術(shù),實現(xiàn)了溫度和濕度檢測與庫房溫度和濕度的有效控制,降低經(jīng)濟損失和勞動強度。系統(tǒng)總體結(jié)構(gòu)應(yīng)用戶要求對若干個地理位置分散的庫房的溫濕度進行實時的監(jiān)測與控制,為了適應(yīng)對多個測控點的*與管理,經(jīng)分析采用了分布式系統(tǒng)的控制方式,即在每個測控點配置能獨立工作的從機,多個從機由1個上位機進行*管理,上下采用主從式*管理形式,系統(tǒng)總體結(jié)構(gòu)如圖1所示。系統(tǒng)的各個部分功能和關(guān)系如下:·主機為管理機,完成參數(shù)設(shè)置、數(shù)據(jù)存儲、處理及管理功能?!臋C為控制機,采用單片機2051,直接實現(xiàn)各個模塊的控制功能,并能在主機關(guān)機的條件下實現(xiàn)所有的控制功能?!ねㄓ嵔涌趯崿F(xiàn)RS232信號和RS485信號的轉(zhuǎn)換,主機通過其向從機發(fā)送控制參數(shù),從機將現(xiàn)場采集數(shù)據(jù)通過其傳給主機?!?shù)據(jù)采集實現(xiàn)對傳感器及運行設(shè)備的檢測?!た刂破骷捌湓O(shè)備根據(jù)系統(tǒng)輸出的信號對現(xiàn)場設(shè)備進行控制?!ぽ斎胼敵霾糠职ㄝ斎肽K和輸出模塊,輸入模塊將采集的信號轉(zhuǎn)換后輸入到從機,輸出模塊將系統(tǒng)的控制信號輸出到控制器及其設(shè)備。系統(tǒng)以溫濕度*為核心,溫濕度參數(shù)和設(shè)備運行狀態(tài)由主機根據(jù)用戶要求定時向從機查詢,各控制模塊的設(shè)置參數(shù)修改時,將新的參數(shù)發(fā)送到從機。主機可以對從機進行參數(shù)設(shè)置及控制,從機也可以獨立工作。從機通過數(shù)據(jù)采集裝置不間斷地采集溫濕度數(shù)據(jù),根據(jù)控制模塊的設(shè)置參數(shù)做出控制決策,驅(qū)動設(shè)備運行,并隨時準(zhǔn)備接受主機的指令,當(dāng)受到詢問時,將庫房的各項數(shù)據(jù)編碼通過串行通信方式傳輸?shù)街鳈C。主機接收到數(shù)據(jù)后,進行數(shù)據(jù)處理,在*界面上顯示當(dāng)前的狀態(tài)信息,并將此信息實時地存儲到數(shù)據(jù)庫中,為用戶維護和管理準(zhǔn)備數(shù)據(jù)。對數(shù)據(jù)可以進行查詢,也可以將一段時期的數(shù)據(jù)信息匯集成報表,報表包括各項統(tǒng)計數(shù)據(jù),還可以將數(shù)據(jù)處理繪制成圖形曲線,實現(xiàn)對數(shù)據(jù)的分析與管理。系統(tǒng)硬件設(shè)計控制系統(tǒng)的主機采用一般的PC(64M以上即可),就完全可以滿足系統(tǒng)對數(shù)據(jù)處理、運行速度的要求。從機部分以2051單片機為核心,外接數(shù)據(jù)采集輸入電路、輸出電路、狀態(tài)監(jiān)測電路等部分組成。本系統(tǒng)對多個測控點進行*,1臺主機與多臺從機實現(xiàn)主從式通信,通過通訊接口機實現(xiàn)RS485標(biāo)準(zhǔn)總線通訊,系統(tǒng)的數(shù)據(jù)檢測是由各類傳感器來承擔(dān),圖2所示為單片機控制平臺1系統(tǒng)原理圖。此控制平臺主要實現(xiàn)現(xiàn)場數(shù)據(jù)采集,并將采集數(shù)據(jù)處理、存儲、發(fā)送給主機。2051是控制平臺的核心,溫濕度數(shù)據(jù)的采集通過多路傳感器獲得,采集的信號經(jīng)ADS1286實現(xiàn)轉(zhuǎn)換。為有效控制多路傳感器,在系統(tǒng)設(shè)計中使用4051實現(xiàn)擴展,使控制平臺可以控制多路傳感器,采集的數(shù)據(jù)存放于24LC04。在控制平臺的驅(qū)動上,使用CMOS管1120提高2051的驅(qū)動能力,使控制平臺每路可以控制多個傳感器(主要是提高控制平臺對18B20、溫濕度采集器的驅(qū)動能力)。在與主機通訊時,為達到電平一致,控制平臺通過RS485芯片實現(xiàn)2051的引腳RXD、TXD的TTL電平與RS485的引腳A、B的485電平之間的轉(zhuǎn)換。把主機通過通訊接口送來的RS485標(biāo)準(zhǔn)電平轉(zhuǎn)換為TTL電平傳送給2051,把2051送出的TTL電平轉(zhuǎn)換成RS485標(biāo)準(zhǔn)電平通過通訊接口傳送給主機。圖3所示為單片機控制平臺2接口電路,主要實現(xiàn)對現(xiàn)場設(shè)備(現(xiàn)場設(shè)備主要指通用空調(diào)、加/除濕機等)的控制,并將設(shè)備狀態(tài)情況發(fā)送給主機。該控制平臺的主要部分如下:·2051單片機2051是控制平臺的核心?!?4LC16存儲器擴展24LC16用于存放現(xiàn)場設(shè)備的狀態(tài)數(shù)據(jù)?!みb控控制平臺通過HS0038和紅外發(fā)光管實現(xiàn)對現(xiàn)場設(shè)備的遙控??筛鶕?jù)現(xiàn)場設(shè)備的不同,選用HS0038或紅外發(fā)光管遙控現(xiàn)場設(shè)備?!S232通訊控制平臺把80C196的串口引腳RXD、TXD和GND接到光電耦合電路,把80C196串行口輸出的TTL電平轉(zhuǎn)換為RS232標(biāo)準(zhǔn)電平,把其它微機送來的RS232標(biāo)準(zhǔn)電平轉(zhuǎn)換為TTL電平給80C196,并實現(xiàn)RS232電平與TTL電平的隔離,在實現(xiàn)RS232電平與TTL電平轉(zhuǎn)換的同時保護計算機串口?!S485通訊控制平臺通過RS485芯片實現(xiàn)2051的引腳RXD、TXD的TTL電平與RS485的引腳A、B的485電平之間的轉(zhuǎn)換。把主機通過通訊接口機送來的RS485標(biāo)準(zhǔn)電平轉(zhuǎn)換為TTL電平傳送給2051,把2051送出的TTL電平轉(zhuǎn)換成RS485標(biāo)準(zhǔn)電平通過通訊接口機傳送給主機。系統(tǒng)軟件設(shè)計軟件系統(tǒng)由兩個相對獨立的上位機軟件和下位機軟件部分組成,采用基于Smith-Fuzzy控制器的糧庫溫濕度測控算法,上位機*軟件模塊結(jié)構(gòu)圖如圖4所示。圖4上位機軟件模塊結(jié)構(gòu)圖上位機*軟件主要實現(xiàn)以下功能:·串行通信:完成上位機的通信配置,實現(xiàn)上位機與下位機之間通信。·數(shù)據(jù)顯示:提供三維立體圖、曲線走勢圖和表格三種方式顯示?!?shù)據(jù)存儲:對實時數(shù)據(jù)(包括最大值、最小值、平均值)按用戶要求存儲到數(shù)據(jù)庫的一張歷史數(shù)據(jù)表中;也可導(dǎo)出數(shù)據(jù)到文件,以文本方式保存到一個文本文件中?!?shù)據(jù)查詢:允許用戶根據(jù)情況對實時數(shù)據(jù)、歷史數(shù)據(jù)進行查詢或進行走勢曲線分析。·數(shù)據(jù)打?。焊鶕?jù)用戶要求,以表格方式打印實時數(shù)據(jù)和歷史數(shù)據(jù),亦可打印走勢曲線圖。·異常報警:當(dāng)實時溫濕度數(shù)據(jù)超越設(shè)定的上下限溫濕度數(shù)值時,報警鈴響?!は到y(tǒng)設(shè)置:為保證用戶在任何情況下,都能良好地運行,允許用戶對系統(tǒng)的測量時間間隔、溫濕度上下限、存盤時間間隔、登錄用戶名、口令等參數(shù)進行設(shè)置。系統(tǒng)的下位機主控模塊通過*模塊、人機交互模塊和通信模塊來完成實時*與管理任務(wù),并且所有工作又分解在報警處理、控制決策、信息顯示、命令處理、參數(shù)設(shè)置和信息輸出子模塊來運行。下位機應(yīng)用軟件包括主程序、數(shù)據(jù)采集子程序、數(shù)據(jù)處理子程序、發(fā)送子程序和顯示子程序等五個主要模塊。結(jié)語庫房溫濕度控制系統(tǒng),采用數(shù)字式的溫度傳感器和單片機,實現(xiàn)了對庫房內(nèi)溫濕度的自動測量和調(diào)節(jié),AT89C2051單片機因其指令系統(tǒng)豐富、小巧、低價、靈活易擴展等獨特的優(yōu)點,在所設(shè)計的庫房溫濕度控制系統(tǒng)中使整個系統(tǒng)的性價比得以大幅度的提高。本文所介紹的系統(tǒng)已廣泛應(yīng)用在糧庫、食品庫、蔬菜冷藏庫、檔案庫等行業(yè)中,系統(tǒng)運行良好,穩(wěn)定可靠,受到用戶的一致好評。1引言單線數(shù)字溫度傳感器(例如DS18B20)因其體積小、系統(tǒng)結(jié)構(gòu)簡單等優(yōu)點得到越來越廣泛的應(yīng)用。DS18B20是美國Dallas半導(dǎo)體公司研制的一款單總線可編程智能溫度傳感器。它將A/D轉(zhuǎn)換器、寄存器、接口電路集成在一個芯片中,可以直接輸出數(shù)字信號。與單片機的接口電路也很簡單,具有控制功能強、傳輸距離遠、抗干擾能力強等特點,非常適用于微型、低功耗的溫度測量器件。2DS18B20的性能特點DS18B20在-10℃~+85℃范圍內(nèi).可確保測量誤差不超過±0.5℃;在-55℃~+125DS18B20內(nèi)置64位經(jīng)過激光修正的ROM.出廠前作為唯一的產(chǎn)品序號存入ROM中。構(gòu)成大型溫控系統(tǒng)時,允許在單總線上掛接多個DS18B20,理論上可掛接264個。DS18B20可分別設(shè)定各路溫度的上、下限并寫入RAM中.并能迅速識別出溫度越限的器件。采用Dallas公司獨特的“單總線(1-Wire)”專有技術(shù),通過串行口(I/O)直接輸出所測溫度值。內(nèi)含寄生電源。既可由單總線供電,亦可采用外部5V電源供電。3系統(tǒng)簡介KJ05溫度傳感器系統(tǒng)包括:單總線DS18B20溫度傳感器。ATmega8單片機及其接口電路構(gòu)成的溫度數(shù)據(jù)采集模塊;由數(shù)碼管,鍵盤和遙控電路構(gòu)成友好的人機界面;報警燈和報警蜂鳴器電路,以及標(biāo)準(zhǔn)的4mA~20mA電流輸出模塊。其結(jié)構(gòu)框圖如圖1所示。圖1系統(tǒng)結(jié)構(gòu)框圖4利用測溫原理降低非線性誤差首先.由于DS18B20的分辨率為9~12位可編程,為了得到較高精度的溫度,可采用l2位模式,理論上最小溫度分辨率為0.0625℃.但由于受各種因素影響,DS18B20測量溫度的分辨率真實值只有0.5℃圖2DSI8B20的內(nèi)部結(jié)構(gòu)框圖圖2中,高溫度系數(shù)振蕩器確定一個門控周期,然后在此門控周期內(nèi)通過對低溫度系數(shù)振蕩器的時鐘個數(shù)進行計數(shù)便可測量溫度。在計數(shù)器和溫度寄存器內(nèi)均預(yù)置了對應(yīng)于-55℃的初值,如果在門控周期結(jié)束前,計數(shù)器的值沒有減到零,就表明當(dāng)前測量溫度高于-55利用下式可計算出高分辨率的溫度值:T=temp_read-0.25+(count-per_degree-count_remain)/count_per_degree其中,temp_read:DS18B20中讀出的溫度讀數(shù);count_per_degree:每攝氏度的計數(shù)值;countremain:門控周期結(jié)束時計數(shù)器中的余數(shù)。為了提高溫度分辨率,必須從DS18B20中讀出count_per_degree和count_remain.這兩個值存儲在便箋RAM的第6、7個字節(jié)中。從DS18B20中讀出count_per_degree和count_remain的C語言程序如下:voidreadtm{unsignedchartmp;reset();/*復(fù)位DS18B20*/sendcmd();/*發(fā)讀DS18B20RAM命令*/templ=read_tmp();/*讀溫度低字節(jié)*/temph=read_tmp();/讀溫度高字節(jié)/tmp=read_tmp();tmp=read_tmp();tmp=read_tmp();Count_remain=read_tmp();Count_per_degree=read_tmp();}RS232接口轉(zhuǎn)USB接口的通信方法摘要:USB通用串行總線是計算機外設(shè)接口的發(fā)展趨勢,將逐漸取代PC機上的RS232協(xié)議串口,因此很多傳統(tǒng)的RS232接口設(shè)備都將面臨一個向USB接口轉(zhuǎn)換的問題。本文以IC卡門禁考勤系統(tǒng)為例,提出一種方案,使傳統(tǒng)的RS232接口轉(zhuǎn)化為USB接口后直接通過USB總線接入PC,同時使IC卡門禁考勤設(shè)備增加了USB總線具有的熱插拔、自動配置和智能電源管理等功能;著重剖析USB通信內(nèi)核,探討系統(tǒng)軟硬件設(shè)計方案。關(guān)鍵詞:USB終端人機接口設(shè)備(HID)列舉引言USB作為一種新的PC機互連協(xié)議,使外設(shè)到計算機的連接更加高效、便利。這種接口適合于多種設(shè)備,不僅具有快速、即插即用、支持熱插拔的特點,還能同時連接多達127個設(shè)備,解決了如資源沖突、中斷請求(IRQs)和直接數(shù)據(jù)通道(DMAs)等問題。因此,越來越多的開發(fā)者欲在自己的產(chǎn)品中使用這種標(biāo)準(zhǔn)接口。而RS232是單個設(shè)備接入計算機時,常采用的一種接入方式,其硬件實現(xiàn)簡單,因此在傳統(tǒng)的設(shè)備中有很多采用了這種通信方式。一般的IC卡門禁考勤系統(tǒng)也使用RS232接口與PC機通信。如果將USB技術(shù)應(yīng)用于IC卡門禁考勤系統(tǒng)與PC機之間的數(shù)據(jù)通信,這樣,不僅能使IC卡門禁考勤設(shè)備具備USB通信的諸多優(yōu)點,而且對PC機而言還可以節(jié)余1個RS232串口為其它通信所用。1USB系統(tǒng)概述USB規(guī)范描述了總線特性、協(xié)議定義、編程接口以及其它設(shè)計和構(gòu)建系統(tǒng)時所要求的特性。USB是一種主從總線,工作時USB主機處于主模式,設(shè)備處于從模式。USB系統(tǒng)所需要的唯一的系統(tǒng)資源是,USB系統(tǒng)軟件所使用的內(nèi)存空間、USB主控制器所使用的內(nèi)存地址空間(I/O地址空間)和中斷請求(IRQ)線。USB設(shè)備可以是功能性的,如顯示器、鼠標(biāo)或者集線器之類。它們可以作低速或者高速設(shè)備實現(xiàn)。低速設(shè)備最大速率限制在1.5Mb/s,每一個設(shè)備有一些專有寄存器,也就是端點(endpoint)。在進行數(shù)據(jù)交換時,可以通過設(shè)備驅(qū)動間接訪問它。每一個端點支持幾種特殊的傳輸類型,并且有一個唯一的地址和傳輸方向。不同的是端點0僅用作控制傳輸,并且其傳輸可以是雙向的。系統(tǒng)上電后,USB主機負(fù)責(zé)檢測設(shè)備的連接與拆除、初始化設(shè)備的列舉過程,并根據(jù)設(shè)備描述表安裝設(shè)備驅(qū)動后自動重新配置系統(tǒng),收集每個設(shè)備的狀態(tài)信息。設(shè)備描述表標(biāo)識了設(shè)備的屬性、特征并描述了設(shè)備的通信要求。USB主機根據(jù)這些信息配置設(shè)備、查找驅(qū)動,并且與設(shè)備通信。典型的USB數(shù)據(jù)傳輸是由設(shè)備驅(qū)動開始的,當(dāng)它需要與設(shè)備通信時,設(shè)備驅(qū)動提供內(nèi)存緩沖區(qū),用來存放設(shè)備收到或者即將發(fā)送的數(shù)據(jù)。USB驅(qū)動提供USB設(shè)備驅(qū)動和USB主控制器之間的接口,并將傳輸請求轉(zhuǎn)化為USB事務(wù),轉(zhuǎn)化時需要與帶寬要求及協(xié)議結(jié)構(gòu)保持一致。某些傳輸是由大塊數(shù)據(jù)構(gòu)成的,這時需要先將它劃分為幾個事物再進行傳輸。具有相似功能的設(shè)備可以組成一類,這樣便于分享共有的特性和使用共同的設(shè)備驅(qū)動程序。每個類可以定義其自己的描述符,如:HID類描述符和Report描述符。HID類是由人控制計算機系統(tǒng)的設(shè)備組成的,它定義了一個描述HID設(shè)備的結(jié)構(gòu),并且表明了設(shè)備的通信要求。HID設(shè)備描述符必須支持端點輸入中斷,固件也必須包括一個報告描述符,表明接收和發(fā)送數(shù)據(jù)的格式。在IC卡門禁考勤系統(tǒng)引入RS232到USB的接口轉(zhuǎn)換模塊后,從系統(tǒng)所具有的特性來看,應(yīng)該屬于HID設(shè)備。因此,兩種特殊的HID類請求必須被支持:SetReport和GetReport。這些請求使設(shè)備能接收和發(fā)送一般的設(shè)備信息給主機。在沒有中斷輸出終端時,SetReport是主機發(fā)送數(shù)據(jù)給HID設(shè)備的唯一方式。2系統(tǒng)要求為了實現(xiàn)IC卡門禁考勤系統(tǒng)中RS232-USB的接口轉(zhuǎn)換,需要1臺支持USB的主機,同時還要提供主機上用于與外設(shè)通信的驅(qū)動,一般由操作系統(tǒng)提供。此外,還需開發(fā)在主機上執(zhí)行的客戶端應(yīng)用程序。在設(shè)備端,需要提供具有USB接口的主控制器芯片,以及編寫主控制器上執(zhí)行的USB通信代碼和用于執(zhí)行外設(shè)功能的相關(guān)代碼。2.1主機要求主機必須能夠通過設(shè)備驅(qū)動接收USB數(shù)據(jù),并且使這些數(shù)據(jù)對處理這些請求的應(yīng)用程序有效。在主機中必須有一個驅(qū)動負(fù)責(zé)處理USB傳輸、辨識設(shè)備、向USB設(shè)備收發(fā)數(shù)據(jù);同時,還需要有一個設(shè)備驅(qū)動-虛擬化串行口,仿效真實的串口。這個驅(qū)動必須能夠像真實的串口接收和發(fā)送USB數(shù)據(jù)。從應(yīng)用的觀點,設(shè)備驅(qū)動必須能收發(fā)數(shù)據(jù),可以通過使用一個虛擬化的串口或通過轉(zhuǎn)化為USB數(shù)據(jù)實現(xiàn)。微軟提供了一個叫作USBPOS的設(shè)備驅(qū)動,它允許應(yīng)用程序訪問USB設(shè)備時,好像它們連接到標(biāo)準(zhǔn)串口上一樣。系統(tǒng)大致結(jié)構(gòu)方框圖如圖1所示。2.2設(shè)備要求在定義即將使用的微控制器時,必須說明一些通信要求,如:通信速率、頻率、傳輸?shù)臄?shù)據(jù)量等??紤]到IC卡門禁考勤系統(tǒng)有效的通信速率,可以把轉(zhuǎn)換器作為一個低速的設(shè)備使用,低速設(shè)備通信速度可以在10~100Kb/s的范圍變化??紤]到傳輸?shù)臄?shù)據(jù)量和傳輸?shù)念l率,此系統(tǒng)中使用中斷的傳輸類型。中斷傳輸可以在2個方向進行,但不能同時進行,這種類型的傳輸要求在規(guī)定的時間里完成相當(dāng)大數(shù)據(jù)量的傳輸任務(wù)。對于轉(zhuǎn)換模塊,它可以用于PC機的數(shù)據(jù)收發(fā),操作系統(tǒng)提供了HID驅(qū)動,允許使用中斷傳輸模式。對于低速設(shè)備的一個事務(wù),中斷傳輸最大的包容量是8字節(jié),如果需要發(fā)送大量的數(shù)據(jù),則必須把它分割為很多事務(wù)。轉(zhuǎn)換模塊要定義的另一個特性是所需端點數(shù)。如上所述,端點是微控制器在USB通信過程中所用來發(fā)送和接收數(shù)據(jù)的緩沖區(qū)。此系統(tǒng)中,該轉(zhuǎn)換器定義了2個端點:一個端點(端點0)用來控制傳輸,另一個端點是中斷輸入端點,定義為發(fā)數(shù)據(jù)給PC機。根據(jù)以上要求,通過研究比較現(xiàn)有的微控制器,考慮到如內(nèi)存空間、價格和開發(fā)包等因素,我們選用Cypress家族的一種8位RISC微控制器CY7C634XX/5XX。它使用哈佛總線結(jié)構(gòu),是對較高I/O要求的低速應(yīng)用設(shè)備的低價解決方案。圖2為IC卡門禁考勤系統(tǒng)USB通信實現(xiàn)硬件方框原理圖。3軟件設(shè)計和執(zhí)行系統(tǒng)軟件由6部分組成:定義描述符、設(shè)備檢測和列舉、端點中斷服務(wù)程序、USB數(shù)據(jù)交換模塊、串行口數(shù)據(jù)交換模塊、USB/Serial模塊接口。下面簡要描述其中部分模塊程序的功能和實現(xiàn)思想。3.1描述符定義描述符是數(shù)據(jù)結(jié)果或信息的格式化塊,它可以使主機知道這個設(shè)備。每個描述符包含了這個設(shè)備整體的信息或者某個元素的信息。所有的USB外設(shè)必須響應(yīng)對標(biāo)準(zhǔn)的USB描述符的請求。該系統(tǒng)中使用了1個接口和2個終端(控制和中斷輸入)。由于受Win98的限制還不能使用中斷輸出終端,因此為了解決這個問題,我們通過在端點0中使用SetReport傳輸PC機欲送往IC卡門禁考勤設(shè)備的數(shù)據(jù)。數(shù)據(jù)接收是在OutputReports中完成的。它根據(jù)送往IC卡門禁考勤設(shè)備最大的數(shù)據(jù)量,系統(tǒng)定義為16K個8位域。發(fā)送數(shù)據(jù)給主機是在輸入報告中完成的,它是8K個8位域。3.2設(shè)備檢測和列舉當(dāng)1個USB人機接口類(HID)設(shè)備第一次連接到總線,它將被總線供電但仍然非功能性等待1個總線復(fù)位。D-端的上拉電阻通知Hub連接上了新的設(shè)備,主機也同時知道了新連接的USB設(shè)備,并將它復(fù)位。緊跟輸入包之后,主機發(fā)送1個配置包,從缺省地址0處讀取設(shè)備描述符。讀到描述符后,主機將分配一個新的地址給設(shè)備,并繼續(xù)查詢關(guān)于設(shè)備描述、配置描述、人機報告描述的信息,設(shè)備將開始對新分配的地址作出反應(yīng)。根據(jù)從設(shè)備處返回的信息,主機知道了被設(shè)備支持的數(shù)據(jù)終端的數(shù)量,完成列舉過程。列舉結(jié)束后,Windows將把新的設(shè)備加入到控制面板的設(shè)備管理器中顯示。為此,在微控制器中必須寫入訪問描述符的代碼,這樣便于對主機在列舉設(shè)備時發(fā)送的請求作出有效的辨識和響應(yīng)。在設(shè)備方面需要創(chuàng)建一個INF文件,使Windows能夠辨識設(shè)備,并且為設(shè)備找到其驅(qū)動。由于操作系統(tǒng)提供了簡單的INF文件,因此,開發(fā)中只需要編寫寫入到微控制器中的程序。3.3數(shù)據(jù)發(fā)送和接收過程發(fā)送數(shù)據(jù)到門禁考勤系統(tǒng)是通過控制端點0中使用SetReport來完成的。主機先向門禁考勤系統(tǒng)請求發(fā)送數(shù)據(jù),設(shè)備響應(yīng)請求后,主機便開始執(zhí)行。當(dāng)有數(shù)據(jù)到達設(shè)備的終端0時,將對設(shè)備產(chǎn)生一個中斷。此時,相應(yīng)的中斷服務(wù)程序便將數(shù)據(jù)復(fù)制到數(shù)據(jù)緩沖區(qū)。一旦進入端點0的中斷服務(wù)程序,所有的中斷必須關(guān)閉,確保能夠正確地復(fù)制數(shù)據(jù)。微處理器的數(shù)據(jù)緩沖區(qū)編程為可以接收64個字節(jié),這個值是存放在設(shè)置包的包頭請求信息中。從主機處接收到的最大包大小,是根據(jù)它將發(fā)送給門禁考勤系統(tǒng)的最大數(shù)據(jù)量來決定的。系統(tǒng)還使用了Put_command線程,通過1個I/O端口引腳,向門禁考勤系統(tǒng)串口發(fā)送數(shù)據(jù)。在執(zhí)行此線程時,根據(jù)串口通信協(xié)議插入了起始位、停止位以及相應(yīng)的延時。從門禁考勤系統(tǒng)接收數(shù)據(jù)的過程是利用端點1完成的。端點1配置為1個中斷輸入端點,當(dāng)有1個起始位到達引腳時,GPIO中斷必須打開,并關(guān)閉所有其它類型中斷。設(shè)計中通過使用1個Get_Serial線程來收集I/O引腳發(fā)出的串行數(shù)據(jù),并把它存入數(shù)據(jù)緩沖區(qū)。同時該線程負(fù)責(zé)檢驗接收到的起始位和停止位的正確性。當(dāng)收到8個字節(jié)時,將接收緩沖區(qū)中的數(shù)據(jù)復(fù)制到終端1的緩沖區(qū),并且允許微處理器響應(yīng)中斷輸入請求??紤]到一般串行口的有效波特率的范圍在300~19200bps,我們按處于最大波特率19200bps的情況來考慮,傳輸1個字符需要時間接近0.75ms;而1個輸入中斷大約每10ms送1個8字節(jié)的數(shù)據(jù)包,因此,設(shè)計1個128字節(jié)的快速數(shù)據(jù)緩沖區(qū)便可以保證不會丟失數(shù)據(jù)。RS232-USB接口轉(zhuǎn)換模塊用于改進我們的IC卡門禁考勤系統(tǒng),使用效果良好。RS-232串口信號線接法一個完整的RS-232C接口有22根線,采用標(biāo)準(zhǔn)的25芯插頭座(或者9芯插頭座)。25芯和9芯的主要信號線相同。以下的介紹是以25芯的RS-232C為例。1、主要信號線定義:引腳1:保護地;引腳2:發(fā)送數(shù)據(jù)TXD;引腳3:接收數(shù)據(jù)RXD;引腳4:請求發(fā)送RTS;引腳5:清除發(fā)送CTS;引腳6:數(shù)據(jù)設(shè)備就緒DSR;引腳7:信號地;引腳8:數(shù)據(jù)載波檢測DCD;引腳20:數(shù)據(jù)終端就緒DTR;2、電氣特性:數(shù)據(jù)傳輸速率最大可到20Kbps,最大距離僅15m。注:看了微軟的MSDN6.0,其WindowsAPI中關(guān)于串行通訊設(shè)備(不一定都是串口RS-232C或RS-422或RS-449)速率的設(shè)置,最大可支持到RS_256000,即256Kbps!也不知道到底是什么串行通訊設(shè)備?但不管怎樣,一般主機和單片機的串口通訊大多都在9600bps,可以滿足通訊需求。3、接口的典型應(yīng)用:大多數(shù)計算機應(yīng)用系統(tǒng)與智能單元之間只需使用3到5根信號線即可工作。這時,除了TXD、RXD以外,還需使用RTS、CTS、DCD、DTR、DSR等信號線。(當(dāng)然,在程序中也需要對相應(yīng)的信號線進行設(shè)置。)圖最簡單的RS232-C信號線接法以上接法,在設(shè)計程序時,直接進行數(shù)據(jù)的接收和發(fā)送就可以了,不需要對信號線的狀態(tài)進行判斷或設(shè)置。(如果應(yīng)用的場合需要使用握手信號等,需要對相應(yīng)的信號線的狀態(tài)進行監(jiān)測或設(shè)置。SPMC65P2404A在智能測溫中的應(yīng)用本文簡要介紹了溫度傳感器DS18B20的特點,分析了智能測溫的應(yīng)用,設(shè)計了以凌陽SPMC65P2404A單片機為核心的溫度采集系統(tǒng)。1.1引言智能溫度傳感器(亦稱數(shù)字溫度傳感器)產(chǎn)生于20世紀(jì)90年代。它是微電子技術(shù)、計算機技術(shù)和自動測試技術(shù)(ATE)的結(jié)晶。目前,國際上已開發(fā)出多種智能溫度傳感器系列產(chǎn)品。智能溫度傳感器內(nèi)部都包含溫度傳感器、A/D轉(zhuǎn)換器、信號處理器、存儲器(或寄存器)和接口電路。有的產(chǎn)品還帶多路選擇器、中央控制器(cpu)、隨機存取存儲器(RAM)和只讀存儲器(ROM)。智能溫度傳感器的特點是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU);并且它是在硬件的基礎(chǔ)上通過軟件來實現(xiàn)測試功能的,其智能化程度也取決于軟件的開發(fā)水平。1.2智能測溫應(yīng)用1.2.1智能測溫在農(nóng)業(yè)大棚溫控系統(tǒng)中的應(yīng)用溫度的*和控制可以說是在現(xiàn)在農(nóng)業(yè)最常用的技術(shù),目前農(nóng)村幾乎每家都有離房屋一定距離的室外育秧棚,但大部分使用的是普通溫度計,且溫度計智能放在育秧棚內(nèi),棚內(nèi)有露水,不易看清溫度,需多次來回察看,很不方便,稍微不注意,便會出現(xiàn)溫度偏高,秧苗壞死的情況。隨著現(xiàn)在信息技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)的逐步改造的實現(xiàn),能夠獨立工作的溫度檢測、顯示及報警系統(tǒng),迫切需求于現(xiàn)代農(nóng)業(yè)技術(shù)。1.2.2智能測溫在化學(xué)工業(yè)上的應(yīng)用在化工領(lǐng)域中,經(jīng)常需要檢測和控制反應(yīng)釜中的液體的溫度,使之能夠穩(wěn)定在一定的范圍之內(nèi)。只有這樣才能得到可靠的試驗數(shù)據(jù)或者得到合格的產(chǎn)品,這就要求系統(tǒng)對溫度的檢測,具有足夠的精度和真實性,控制要有足夠的精度,并且盡可能具有較低的成本,這樣的產(chǎn)品才具有真實價值。本智能測溫恰具有這樣的優(yōu)勢,由于其可直接輸出數(shù)字量,不需要A/D轉(zhuǎn)換,與單片機接口容易,成為原來傳統(tǒng)使用的熱電偶、熱電阻理想的替代品。1.2.3智能測溫在糧庫溫度監(jiān)測系統(tǒng)中的應(yīng)用保證糧庫中儲藏糧食的安全,一個十分重要的條件就是要求糧食儲藏溫度保持在18℃~20℃之間。對于出現(xiàn)不正常升溫,要求能夠迅速的監(jiān)測到,并且報警,使工作人員可以馬上采取措施降溫,如打開通排風(fēng)設(shè)備等。本智能測溫系統(tǒng),可以程序設(shè)定9~12位的分辨率,測量溫度范圍為-55℃~+125℃,在-10℃~+851.2.4智能測溫在中央空調(diào)上的應(yīng)用隨著人們生活水平的提高,住房條件的改善,人們對空調(diào)的舒適性和空氣品質(zhì)的要求越來越高.分體式空調(diào)已不能滿足人們的要求,戶式中央空調(diào)得到了迅猛的發(fā)展.目前它的控制技術(shù)較多借鑒中央空調(diào)系統(tǒng),靠設(shè)置機械溫控開關(guān)來實現(xiàn)房間的恒溫控制.這種控制方法,一方面操作不便,另一方面因溫度波動范圍大,影響人的舒適感,而且會造成一定的能量損耗.在我們設(shè)計的智能測溫系統(tǒng)中,測量精度高,熱慣性小,硬件連線簡單,可靠性強。另外,只能測溫系統(tǒng)還可廣泛應(yīng)用于火災(zāi)報警系統(tǒng)、土木工程、煤礦等農(nóng)業(yè)和工業(yè)的各個行業(yè),應(yīng)用前景非常廣泛。1.4SPMC65P2404A芯片簡介1.5DS18B20單線數(shù)字溫度傳感器由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測量及控制儀器、測控系統(tǒng)和大型設(shè)備中。它具有體積小,接口方便,傳輸距離遠等特點。DS18B20的性能特點:◆采用單總線專用技術(shù),既可通過串行口線,也可通過其它I/O口線與微機接口,無須經(jīng)過其它變換電路,直接輸出被測溫度值(9位二進制數(shù),含符號位)◆測溫范圍為-55℃~~~+125℃,測量分辨率為◆內(nèi)含64位經(jīng)過激光修正的只讀存儲器ROM◆適配各種單片機或系統(tǒng)機◆用戶可分別設(shè)定各路溫度的上、下限◆內(nèi)含寄生電源。DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報警觸發(fā)器TH和TL,高速暫存器。DS18B20的管腳排列如圖2所示。顯示器是人類與應(yīng)用設(shè)備溝通的重要界面,近年來,隨著電子技術(shù)的飛速發(fā)展,液晶顯示技術(shù)在實際生活中得到了廣泛應(yīng)用。液晶顯示模塊以其微功耗、體積小、顯示內(nèi)容豐富、模塊化以及接口電路簡單等諸多優(yōu)點在科研、生產(chǎn)和產(chǎn)品設(shè)計等領(lǐng)域中發(fā)揮著越來越重要的作用。LM3033B系列液晶顯示模塊是深圳TOPWAY公司生產(chǎn)的中文顯示模塊中的一員。采用了臺灣的ST7920控制芯片,并提供了中文字庫,為中文顯示開發(fā)方面帶來了更多的方便。本文以LM3033B-0BR3為例介紹了12864點陣液晶顯示模塊的引腳、結(jié)構(gòu)、功能,詳述了與AT89S52單片機的硬件接口電路及有關(guān)軟件編程方法。1LM3033B-0BR3特點及操作1.1字符顯示每屏可顯示4行8列共32個16×16點陣的漢字,每個顯示RAM可顯示1個中文字符或2個16×8點陣全高ASCII碼字符,即每屏最多可實現(xiàn)32個中文字符或64個ASCII碼字符的顯示。內(nèi)部提供128×2字節(jié)的字符顯示RAM緩沖區(qū)(DDRAM)。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實現(xiàn)的。根據(jù)寫入內(nèi)容的不同,可分別在液晶屏上顯示CGROM(中文字庫)、HCGROM(ASCII碼字庫)及CGRAM(自定義字形)的內(nèi)容。三種不同字符/字型的選擇編碼范圍為:顯示自定義字型其代碼分別是0000H、0002H、0004H和0006H共4個,顯示半寬ASCII碼字符為02H~7FH,A1A0H~F7FFH顯示8192種GB2312中文字庫字形。字符顯示RAM在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個字符顯示區(qū)域有著一一對應(yīng)的關(guān)系,其對應(yīng)關(guān)系如表1所示。表1字符顯示的RAM地址與32個中文字符顯示區(qū)域的對應(yīng)關(guān)系、80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH.2圖形顯示繪圖顯示RAM提供64x32個位元組的記憶空間(由擴充指令設(shè)定繪圖RAM位址),在更改繪圖RAM時,由擴充指令設(shè)定GDRAM位址先設(shè)置垂直位址,再設(shè)置水平位址(連續(xù)寫入兩個位元組的資料來完成垂直與水平的坐標(biāo)位址),再寫入兩個8位的資料到繪圖RAM,而位址計數(shù)器(AC)會自動加一,整個寫入繪圖RAM的步驟如下:a.關(guān)閉繪圖顯示功能(在寫入繪圖RAM期間,繪圖顯示必須關(guān)閉);b.先將垂直的位元組(Y)寫入繪圖RAM位址;c.再將水平的位元組(X)寫入繪圖RAM位址;d.將D15~D8寫入到RAM中;e.將D7~D0寫入到RAM中。單片機與RS232串口通信C51程序/*************************************************************************/#include"iom16v.h"#include<macros.h>#definebaud9600//波特率#definefosc8000000//晶振8MHZ/*************************初始化函數(shù)**********************/voidUSART_Init(void){/*設(shè)置波特率*///UBRR=51;//UBRRH=(unsignedchar)(baud>>8);//UBRRL=(unsignedchar)(baud);UBRRL=(fosc/16/baud-1)%256;UBRRH=(fosc/16/baud-1)/256;/*接收器和發(fā)送器使能*/UCSRB=(1<<RXEN)|(1<<TXEN);/*設(shè)置數(shù)據(jù)幀格式*/UCsrc="/blog/(1<";<URSEL)|(1<<USBS)|(3<<UCSZ0);//8個數(shù)據(jù)位,2個停止位}/********************數(shù)據(jù)發(fā)送函數(shù)(5~8位)*********************/voidUSAR

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論