溫度對(duì)工農(nóng)業(yè)生產(chǎn)和國(guó)防事業(yè)均有不同程度的影響。電力設(shè)備的故障有多種多樣,但大多數(shù)都伴有發(fā)熱的現(xiàn)象,一次事故損失巨大;紡織、食品、煙草等工業(yè)中,溫度過(guò)高容易使產(chǎn)品變質(zhì),電子儀器也容易出故障;溫室栽培和工業(yè)生產(chǎn)中,若不控制溫度,將嚴(yán)重影響產(chǎn)量和質(zhì)量。還有很多領(lǐng)域的溫度可能較高或較低,人無(wú)法靠近或現(xiàn)場(chǎng)無(wú)需人力來(lái)監(jiān)控。傳統(tǒng)的溫度測(cè)量方式周期長(zhǎng),不能實(shí)時(shí)監(jiān)測(cè),而且測(cè)量員必須到現(xiàn)場(chǎng)進(jìn)行測(cè)量和啟動(dòng)功率設(shè)備來(lái)調(diào)整溫度,工作效率非常低,且不便于管理。為此設(shè)計(jì)了這套遠(yuǎn)程測(cè)控系統(tǒng),坐在辦公室里就可以對(duì)現(xiàn)場(chǎng)進(jìn)行監(jiān)控,又方便又節(jié)省人力。
1 系統(tǒng)的總體設(shè)計(jì)
本設(shè)計(jì)是基于單片機(jī)和NiosⅡ軟核的溫度監(jiān)控系統(tǒng),其系統(tǒng)框圖如圖1所示。本系統(tǒng)采用Dallas單線數(shù)字溫度傳感器DS18B20采集溫度數(shù)據(jù),打破了傳統(tǒng)的熱電阻、熱電偶再通過(guò)A/D轉(zhuǎn)換采集溫度的思路。用Atmel公司的FLASH單片機(jī)AT89S51對(duì)數(shù)字信號(hào)進(jìn)行處理和控制,通過(guò)RS 232串口傳到以NiosⅡ構(gòu)成的嵌入式處理機(jī)中對(duì)溫度進(jìn)行監(jiān)視與報(bào)警。Nios II的嵌入式Web服務(wù)器使用戶可以通過(guò)IE瀏覽器瀏覽存儲(chǔ)在FLASH芯片中的網(wǎng)頁(yè),由于CPU本身是以軟核的方式實(shí)現(xiàn),其功能可根據(jù)需要進(jìn)行定制,非常靈活。
2 監(jiān)控系統(tǒng)的硬件系統(tǒng)設(shè)計(jì)
2.1 對(duì)DS18B20的簡(jiǎn)單介紹和使用說(shuō)明
DS18B20是美國(guó)DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),特別適合于構(gòu)成多點(diǎn)溫度測(cè)控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)供微機(jī)處理,而且每片DS18B20都有惟一的產(chǎn)品號(hào)并可存入其ROM中,在構(gòu)成大型溫度測(cè)控系統(tǒng)時(shí)單線上可掛多個(gè)DS18B20芯片。從DS18B20讀出或?qū)懭隓S18B20信息僅需要一根口線,共讀寫及溫度變換的功率來(lái)源于數(shù)據(jù)總線,該總線本身也可以向所掛接的DS18B20供電,而無(wú)需額外電源。DS18B20能提供9位溫度讀數(shù),它無(wú)需任何外圍硬件即可方便地構(gòu)成溫度檢測(cè)系統(tǒng)。DS18B20體積更小、適用電壓更寬、更經(jīng)濟(jì)。測(cè)量溫度范圍為-55~+125℃,在-10~+85℃范圍內(nèi),精度為±0.5℃。單片機(jī)控制DS18B20完成溫度的采集過(guò)程必須經(jīng)過(guò)初始化、寫操作、讀操作3個(gè)步驟,而且必須有嚴(yán)格的時(shí)間間隙。
2.2 NiosⅡ處理器的說(shuō)明
Altera公司的NiosⅡ處理器是一種用戶可隨時(shí)配置和構(gòu)建的32位指令集和數(shù)據(jù)通道的嵌入式系統(tǒng)微處理器IP核,采用Avalon總線結(jié)構(gòu)通信接口,帶有增強(qiáng)的內(nèi)存調(diào)試和軟件功能。LWIP是一種專門針對(duì)嵌入式系統(tǒng)應(yīng)用而設(shè)計(jì)的網(wǎng)絡(luò)通信協(xié)議,支持因特網(wǎng)信息控制協(xié)議(ICMP),用戶數(shù)據(jù)報(bào)協(xié)議(UDP),動(dòng)態(tài)主機(jī)分配協(xié)議(DHCP),地址解析協(xié)議(ARP)以及對(duì)應(yīng)用程序提供的標(biāo)準(zhǔn)Socket接口,因而可以完成傳統(tǒng)的TCP/IP協(xié)議的大部分功能,資源占用卻比TCP/IP協(xié)議小,所以非常適合以NiosⅡ處理器為核心的系統(tǒng)?;谝陨峡紤],嵌入式Web服務(wù)器以NiosⅡ處理器為核心,LWIP為網(wǎng)絡(luò)通信協(xié)議,實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)頁(yè)瀏覽功能。用戶可以通過(guò)網(wǎng)絡(luò)瀏覽存儲(chǔ)在FLASH中的網(wǎng)頁(yè)。
2.3 硬件電路設(shè)計(jì)說(shuō)明
本系統(tǒng)硬件電路包括單片機(jī)溫度采集電路、電平轉(zhuǎn)換電路及基于NiosⅡ嵌入式上位機(jī)系統(tǒng)。
2.3.1 溫度采集電路
溫度采集電路主要由DS18B20和單片機(jī)構(gòu)成,如圖2所示。系統(tǒng)以8051單片機(jī)(U1)作為核心;C1,C2和Y1組成時(shí)鐘電路,晶振為12 MHz;S1,C12和R3組成復(fù)位電路;U1的P1.0接一個(gè)發(fā)光二極管,用于程序執(zhí)行指示燈;R5為限流電阻;DQ接到8051的P2.1端;R1為信號(hào)和5 V電源之間的上拉電阻。
2.3.2 電平轉(zhuǎn)換電路[!--empirenews.page--]
單片機(jī)與上位機(jī)的通信電路如圖3所示。8051單片機(jī)本身提供了一組全雙工串行傳輸接口,由TXD引腳來(lái)傳送串行數(shù)據(jù)而由RXD引腳來(lái)接收數(shù)據(jù),可是其工作邏輯電平皆為TTL電平(0 V,5 V)。所以單片機(jī)與PC之間的數(shù)據(jù)通信必須經(jīng)過(guò)RS 232信號(hào)(+12 V,-12 V)電平的轉(zhuǎn)換。本系統(tǒng)使用MAX232電平轉(zhuǎn)換芯片,只要加4只電容就能完成接口電平的轉(zhuǎn)換。單片機(jī)的11腳(TXD)接232的10腳,單片機(jī)的10腳(RXD)接232的9腳。與上位機(jī)連接的RS 232-C接口采用DB-9的9芯插頭座,傳輸線采用屏蔽雙絞線。電源部分采用市售的9 V直流穩(wěn)壓電源,經(jīng)7805后濾波穩(wěn)壓得到穩(wěn)定的5 V電源。
2.3.3 基于NiosⅡ嵌入式上位機(jī)
系統(tǒng)主要包括以下幾個(gè)部分:包括NiosⅡ軟核CPU、操作系統(tǒng)使用的定時(shí)器、網(wǎng)絡(luò)協(xié)議棧使用的定時(shí)器、CPU同外圍設(shè)備的接口(Avlaon總線);EPCS4用來(lái)在上電時(shí)對(duì)FPGA進(jìn)行配置;FLASH主要用來(lái)存放軟件代碼以及一些需要保存的參數(shù);SRAM用來(lái)在系統(tǒng)運(yùn)行時(shí)的代碼和數(shù)據(jù)存儲(chǔ);網(wǎng)絡(luò)接口芯片采用Smsc公司的LAN91C111芯片作為網(wǎng)絡(luò)接口。該器件是一個(gè)以太網(wǎng)控制器,實(shí)現(xiàn)了網(wǎng)絡(luò)7層協(xié)議棧中的傳輸層和MAC層的功能。另外,它具有10/100 Mb/s自適應(yīng)、雙工/半工自適應(yīng)等功能,有很好的網(wǎng)絡(luò)兼容性。采用串口UART和單片機(jī)通信。利用QuartusⅡ中的SOPC Builde構(gòu)建的CPU如圖4所示。
3 監(jiān)控系統(tǒng)的軟件系統(tǒng)設(shè)計(jì)
單片機(jī)控制程序設(shè)計(jì)框圖如圖5和圖6所示。
串口中斷程序功能為接收由上位機(jī)發(fā)送的數(shù)據(jù)采集周期以及開始、停止指令。溫度信號(hào)濾波通過(guò)軟件實(shí)現(xiàn)。濾波算法采用加權(quán)平均值法,即對(duì)最新檢測(cè)到的N個(gè)溫度信號(hào)序列去除最大值和最小值,并取加權(quán)平均運(yùn)算。
4 基于NiosⅡ的Web服務(wù)器的實(shí)現(xiàn)
把構(gòu)建好的CPU及相應(yīng)的模塊進(jìn)行分析引腳分配、綜合后再進(jìn)行編譯,用NiosⅡIDE(集成開發(fā)環(huán)境)通過(guò)移植實(shí)時(shí)操作系統(tǒng)μCLinux來(lái)實(shí)現(xiàn)嵌入式實(shí)時(shí)多任務(wù)控制系統(tǒng),開發(fā)相應(yīng)的網(wǎng)頁(yè)并進(jìn)行服務(wù)器移植和配置。本系統(tǒng)采用μCLinux下的Boa。Boa是一個(gè)單線程的HTTP服務(wù)器,它不同于其它傳統(tǒng)的Web服務(wù)器,不為每個(gè)連接創(chuàng)建一個(gè)進(jìn)程,只有當(dāng)CGI程序運(yùn)行時(shí)才創(chuàng)建一個(gè)新的進(jìn)程。通過(guò)移植Boa來(lái)實(shí)現(xiàn)智能監(jiān)控系統(tǒng)的Web服務(wù)器功能,最后通過(guò)編寫CGI程序并結(jié)合Flash動(dòng)畫實(shí)現(xiàn)了動(dòng)態(tài)Web交互功能。
5 結(jié)語(yǔ)
采用AT89S51系列單片機(jī)、傳感器DS18B20和NiosⅡ設(shè)計(jì)的遠(yuǎn)程溫度控制系統(tǒng)具有結(jié)構(gòu)新穎、電路簡(jiǎn)單、體積小和控制方便等優(yōu)點(diǎn)??梢詮V泛用于電站、學(xué)校、醫(yī)院等相關(guān)重點(diǎn)設(shè)備的溫度遠(yuǎn)程監(jiān)控。也適用于人體無(wú)法接近的高溫或危險(xiǎn)場(chǎng)所的溫度監(jiān)控。如果變換傳感器稍加改變也可以成為其他參數(shù)的遠(yuǎn)程監(jiān)控系統(tǒng),如壓力、濕度或瓦斯等。