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