基于單片機和FPGA的遠程溫度監(jiān)控系統(tǒng)
單片機與上位機的通信電路如圖3所示。8051單片機本身提供了一組全雙工串行傳輸接口,由TXD引腳來傳送串行數據而由RXD引腳來接收數據,可是其工作邏輯電平皆為TTL電平(0 V,5 V)。所以單片機與PC之間的數據通信必須經過RS 232信號(+12 V,-12 V)電平的轉換。本系統(tǒng)使用MAX232電平轉換芯片,只要加4只電容就能完成接口電平的轉換。單片機的11腳(TXD)接232的10腳,單片機的10腳(RXD)接232的9腳。與上位機連接的RS 232-C接口采用DB-9的9芯插頭座,傳輸線采用屏蔽雙絞線。電源部分采用市售的9 V直流穩(wěn)壓電源,經7805后濾波穩(wěn)壓得到穩(wěn)定的5 V電源。

2.3.3 基于NiosⅡ嵌入式上位機
系統(tǒng)主要包括以下幾個部分:包括NiosⅡ軟核CPU、操作系統(tǒng)使用的定時器、網絡協議棧使用的定時器、CPU同外圍設備的接口(Avlaon總線);EPCS4用來在上電時對FPGA進行配置;FLASH主要用來存放軟件代碼以及一些需要保存的參數;SRAM用來在系統(tǒng)運行時的代碼和數據存儲;網絡接口芯片采用Smsc公司的LAN91C111芯片作為網絡接口。該器件是一個以太網控制器,實現了網絡7層協議棧中的傳輸層和MAC層的功能。另外,它具有10/100 Mb/s自適應、雙工/半工自適應等功能,有很好的網絡兼容性。采用串口UART和單片機通信。利用QuartusⅡ中的SOPC Builde構建的CPU如圖4所示。

3 監(jiān)控系統(tǒng)的軟件系統(tǒng)設計
單片機控制程序設計框圖如圖5和圖6所示。
串口中斷程序功能為接收由上位機發(fā)送的數據采集周期以及開始、停止指令。溫度信號濾波通過軟件實現。濾波算法采用加權平均值法,即對最新檢測到的N個溫度信號序列去除最大值和最小值,并取加權平均運算。

4 基于NiosⅡ的Web服務器的實現
把構建好的CPU及相應的模塊進行分析引腳分配、綜合后再進行編譯,用NiosⅡIDE(集成開發(fā)環(huán)境)通過移植實時操作系統(tǒng)μCLinux來實現嵌入式實時多任務控制系統(tǒng),開發(fā)相應的網頁并進行服務器移植和配置。本系統(tǒng)采用μCLinux下的Boa。Boa是一個單線程的HTTP服務器,它不同于其它傳統(tǒng)的Web服務器,不為每個連接創(chuàng)建一個進程,只有當CGI程序運行時才創(chuàng)建一個新的進程。通過移植Boa來實現智能監(jiān)控系統(tǒng)的Web服務器功能,最后通過編寫CGI程序并結合Flash動畫實現了動態(tài)Web交互功能。
評論