李亞龍,張彩珍
(蘭州交通大學(xué) 電子與信息工程學(xué)院,甘肅 蘭州 730070)
基于SOPC與嵌入式以太網(wǎng)的溫濕度監(jiān)測(cè)系統(tǒng)
李亞龍,張彩珍
(蘭州交通大學(xué) 電子與信息工程學(xué)院,甘肅 蘭州 730070)
為了實(shí)現(xiàn)對(duì)溫濕度數(shù)據(jù)的實(shí)時(shí)遠(yuǎn)程監(jiān)測(cè),提出了基于SOPC與嵌入式以太網(wǎng)接口的溫濕度監(jiān)測(cè)系統(tǒng)設(shè)計(jì)方案,本系統(tǒng)充分利用了 SOPC系統(tǒng)資源的豐富性,在QuartusⅡ軟件的Qsys中構(gòu)建以NiosⅡ軟核CPU和所需外設(shè)IP為核心的硬件架構(gòu),通過移植μC/OSⅡ操作系統(tǒng)作為軟件平臺(tái),以LwIP為網(wǎng)絡(luò)通信協(xié)議,采用LAN91C111與FPGA相結(jié)合構(gòu)成嵌入式以太網(wǎng)接口進(jìn)行對(duì)溫濕度數(shù)據(jù)的傳輸和控制。由于其具有設(shè)計(jì)靈活、可擴(kuò)展升級(jí)、占用資源少、節(jié)約成本等優(yōu)勢(shì),大幅簡(jiǎn)化了系統(tǒng)的電路結(jié)構(gòu),使設(shè)計(jì)變的簡(jiǎn)單,易于實(shí)現(xiàn)。
SOPC;溫濕度采集;嵌入式以太網(wǎng)接口;實(shí)時(shí)遠(yuǎn)程監(jiān)測(cè)
現(xiàn)代工業(yè)的發(fā)展,實(shí)時(shí)監(jiān)控系統(tǒng)應(yīng)用廣泛,提高了對(duì)數(shù)據(jù)信號(hào)處理系統(tǒng)的標(biāo)準(zhǔn)[1],同時(shí)對(duì)溫濕度等參數(shù)的遠(yuǎn)程監(jiān)測(cè)提出了更高的要求。傳統(tǒng)的設(shè)計(jì)中,通常采用單片機(jī)和低速網(wǎng)卡的設(shè)計(jì)方案,但在實(shí)際應(yīng)用中,由于網(wǎng)絡(luò)速度相對(duì)較慢,阻礙了網(wǎng)絡(luò)數(shù)據(jù)處理的能力,已不能滿足對(duì)溫濕度數(shù)據(jù)實(shí)時(shí)測(cè)量的需求。
系統(tǒng)設(shè)計(jì)選用高速以太網(wǎng)控制芯片LAN91C111和高速的FPGA(Field Programmable Gate Array),將以太網(wǎng)技術(shù)和嵌入式技術(shù)有機(jī)結(jié)合應(yīng)用到對(duì)溫濕度數(shù)據(jù)的處理和傳輸。系統(tǒng)主要基于FPGA開發(fā)板在QuartusⅡ 軟件平臺(tái)上構(gòu)建SOPC嵌入式系統(tǒng),該系統(tǒng)是Altera公司提出的一種靈活、高效的Soc(System on Chip)解決方案[2]。由于其設(shè)計(jì)靈活、可擴(kuò)展升級(jí)、占用資源少、節(jié)約成本等優(yōu)勢(shì),大幅簡(jiǎn)化了系統(tǒng)的電路結(jié)構(gòu),使設(shè)計(jì)變的簡(jiǎn)單,易于實(shí)現(xiàn)。
為方便系統(tǒng)的操作和調(diào)試以及后期的維護(hù)和升級(jí),采用模塊化的設(shè)計(jì)思想[3],這樣能使系統(tǒng)的設(shè)計(jì)變得更加直觀、易于理解。
系統(tǒng)總體設(shè)計(jì)如圖1所示,整個(gè)系統(tǒng)由溫濕度采集模塊進(jìn)行前端溫濕度數(shù)據(jù)的采集和初步處理;基于NiosⅡ處理器的FPGA模塊為系統(tǒng)核心,用于存儲(chǔ)、處理接收到的數(shù)據(jù);數(shù)據(jù)傳輸模塊負(fù)責(zé)在系統(tǒng)CPU的調(diào)度下將溫濕度數(shù)據(jù)傳輸?shù)缴衔粰C(jī);數(shù)據(jù)監(jiān)測(cè)模塊一般由一臺(tái)PC或多臺(tái)計(jì)算機(jī)組成,完成對(duì)溫濕度采集命令的發(fā)送和對(duì)接收到的數(shù)據(jù)實(shí)時(shí)顯示和監(jiān)測(cè)。
圖1 系統(tǒng)總體設(shè)計(jì)框圖
系統(tǒng)利用SOPC技術(shù)實(shí)現(xiàn)溫濕度數(shù)據(jù)采集并與上位機(jī)交換數(shù)據(jù),其工作原理是:上位機(jī)通過以太網(wǎng)對(duì)系統(tǒng)發(fā)送溫濕度數(shù)據(jù)采集命令[4],系統(tǒng)響應(yīng)后通過溫濕度傳感器對(duì)待測(cè)量進(jìn)行調(diào)理、A/D轉(zhuǎn)換后由FPGA存儲(chǔ)到SDRAM中,通過以太網(wǎng)LAN91C111將數(shù)據(jù)傳送到PC進(jìn)行顯示、診斷和處理等。
系統(tǒng)設(shè)計(jì)環(huán)境是在Altera公司的EDA工具QuartusⅡ中,在其Qsys平臺(tái)上進(jìn)行系統(tǒng)硬件架構(gòu),在NiosⅡ集成開發(fā)環(huán)境IDE(Integrated Development Environment)中進(jìn)行系統(tǒng)軟件部分的設(shè)計(jì),包括μC/OSⅡ操作系統(tǒng)的移植和輕量級(jí)網(wǎng)絡(luò)協(xié)議LwIP的嵌入。
系統(tǒng)硬件設(shè)計(jì)以SOPC系統(tǒng)為核心,在FPGA的基礎(chǔ)上構(gòu)建基于NiosⅡ的SOPC系統(tǒng),來完成對(duì)溫濕度采集和網(wǎng)絡(luò)傳輸模塊的控制。溫濕度監(jiān)測(cè)系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)硬件結(jié)構(gòu)
2.1 LCD顯示控制器和存儲(chǔ)控制器
由于考慮到設(shè)計(jì)LCD顯示控制器IP的復(fù)雜性,因此采用TFT16位色的LCD顯示器。NiosⅡ處理器與LCD控制器連接原理如圖3所示。
圖3 LCD控制器與NiosⅡ處理器連接原理圖
LCD顯示器控制器包括一個(gè)Avalon Slave端口和3個(gè)Avalon Master端口NiosⅡ處理器通過Avalon Slave端口讀/寫該顯示器控制器IP核的各個(gè)寄存器,從而對(duì)顯示器的顯示過程和模式進(jìn)行控制。工作過程是:在軟件程序的操作下,通過NiosⅡ處理器核,先對(duì)slave端口的寄存器進(jìn)行配置,然后3個(gè)Master端口,根據(jù)寄存器中已設(shè)置的模式和地址值,通過Avalon總線,自動(dòng)從SDRAM中讀取要顯示的圖形數(shù)據(jù)。讀取數(shù)據(jù)后,數(shù)據(jù)流經(jīng)過data_Mixer運(yùn)算邏輯的混合,再經(jīng)過FIFO和Timing Enging兩個(gè)模塊的處理,實(shí)現(xiàn)數(shù)據(jù)的正確傳輸和分配。最終使得圖形像素?cái)?shù)據(jù)按照需要的格式輸出到LCD屏上。
為降低設(shè)計(jì)成本和電路的復(fù)雜性,采用基于FPGA的通用SDRAM控制器設(shè)計(jì)方法[5],這種設(shè)計(jì)方法不但可靠性高、可移植性強(qiáng)、而且易于集成。SDRAM控制器與FPGA連接如圖4所示。
圖4 SDRAM控制器接口原理圖
系統(tǒng)的NiosⅡ程序和FPGA的配置數(shù)據(jù)都存放在EPCS器件中,但處理器不能直接執(zhí)行EPCS器件內(nèi)的程序,實(shí)際上將EPCS控制器片內(nèi)ROM中的代碼搬到RAM中執(zhí)行。EPCS是一種串行Flash,存放FPGA配置數(shù)據(jù)是其主要功能,代替并行Flash存儲(chǔ)程序需要使用在存儲(chǔ)配置文件后的剩余空間,因此配置數(shù)據(jù)優(yōu)先存儲(chǔ)。EPCS存儲(chǔ)器的優(yōu)點(diǎn)在于節(jié)省IO口,節(jié)約資源并降低了系統(tǒng)復(fù)雜性,EPCS組件原理如圖5所示。
圖5 EPCS組件原理圖
2.2 溫濕度采集模塊
系統(tǒng)前端溫濕度數(shù)據(jù)采集模塊主要由溫濕度傳感器和用于處理器接收數(shù)據(jù)的GPIO(General Purpose Input Output)組成。溫濕度傳感器是廣州奧松電子有限公司的DHT11數(shù)字溫濕度傳感器。DHT11是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器,系統(tǒng)工作時(shí)可以同時(shí)采集溫濕度數(shù)據(jù)并自動(dòng)轉(zhuǎn)換成數(shù)字信號(hào)直接輸出。
DHT11的工作電壓是3~5.5 V,濕度測(cè)量范圍是20~90%RH,溫度測(cè)量范圍是0~50 ℃,測(cè)濕精度是±5%RH,測(cè)溫精度是±2%℃。與FPGA的數(shù)據(jù)傳輸是通過DATA數(shù)據(jù)線進(jìn)行連接,DATA用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時(shí)間約4 ms,數(shù)據(jù)分為小數(shù)部分和整數(shù)部分,一次完整的數(shù)據(jù)傳輸為40 bit。
DHT11作為一種新型的單總線數(shù)字溫濕度傳感器,與模擬信號(hào)傳感器相比,減少了額外的模數(shù)轉(zhuǎn)換開銷,具有品質(zhì)好、功耗低、響應(yīng)速度快、抗干擾能力強(qiáng)、控制簡(jiǎn)單、性價(jià)比高等優(yōu)點(diǎn)。
圖6 DHT11與FPGA連接電路圖
當(dāng)DHT11與FPGA的連接線短于20 m時(shí),上拉電阻采用5 kΩ,當(dāng)連線長(zhǎng)度>20 m時(shí),可以根據(jù)實(shí)際情況調(diào)節(jié)上拉電阻的阻值。
2.3 嵌入式以太網(wǎng)接口設(shè)計(jì)
網(wǎng)絡(luò)傳輸模塊中,采用嵌入式以太網(wǎng)接口設(shè)計(jì),以太網(wǎng)接口芯片選用SMSC公司的LAN91C111芯片,該芯片通過FPGA內(nèi)的適配器模塊連接到芯片內(nèi)部Avalon總線上,Avalon 總線協(xié)議規(guī)定了主、從部件的端口連接和通信方式[6]。時(shí)序 LAN91C111是專門為嵌入式系統(tǒng)設(shè)計(jì)的高速以太網(wǎng)控制芯片,由于在FPGA芯片中嵌入了32位的NiosⅡ處理器,因此其外圍電路連接相對(duì)簡(jiǎn)單,簡(jiǎn)化了設(shè)計(jì)、節(jié)約了資源。
以太網(wǎng)芯片的數(shù)據(jù)線、地址線和控制線通過IO口與FPGA相連。其具體引腳連接如圖7所示,LAN91C111芯片剩余的引腳和TG100-S050N2的CMT端均與1 kΩ的上拉電阻相連接且TG100-S050N2的TCT和RCT端接一個(gè)75 Ω的電阻和一個(gè)11 nF的濾波電容[7]。
圖7 嵌入式以太網(wǎng)接口硬件連接圖
2.4 SOPC系統(tǒng)設(shè)計(jì)
SOPC硬件系統(tǒng)的設(shè)計(jì)是基于Altera公司的QuartusII開發(fā)環(huán)境,在其硬件設(shè)計(jì)工具Qsys上進(jìn)行設(shè)計(jì)。由于設(shè)計(jì)工具中提供了許多IP核供用戶直接調(diào)用[8],且支持用戶自定義邏輯,這使得SOPC硬件設(shè)計(jì)變得靈活、方便。根據(jù)本系統(tǒng)需求,將NiosII處理器、JTAG UART調(diào)試接口模塊、GPIO接口、PLL模塊、存儲(chǔ)器SDRAM、EPCS控制器、串行接口UART、以太網(wǎng)接口模塊和系統(tǒng)所需時(shí)鐘等添加到Qsys中生成SOPC系統(tǒng)。系統(tǒng)的SOPC硬件設(shè)計(jì)如圖8所示。
圖8 SOPC硬件設(shè)計(jì)圖
系統(tǒng)軟件設(shè)計(jì)主要包括嵌入式操作系統(tǒng)μC/OSⅡ的移植、網(wǎng)絡(luò)協(xié)議的開發(fā)、溫濕度數(shù)據(jù)采集、接收和發(fā)送過程。
3.1 μC/OSⅡ的移植和LwIP的實(shí)現(xiàn)
μC/OS-II是由Jean J.Labrosse于1992年編寫,完全免費(fèi)、源代碼公開、性能優(yōu)異的多任務(wù)嵌入式實(shí)時(shí)操作系統(tǒng)[9]。很方便的在NiosⅡIDE環(huán)境中進(jìn)行移植。LwIP是輕量級(jí)網(wǎng)絡(luò)協(xié)議,和μC/OSⅡ一起集成在開發(fā)環(huán)境中且在該操作系統(tǒng)的支持下使用。在進(jìn)行網(wǎng)絡(luò)傳輸數(shù)據(jù)之前首先調(diào)用lwip_stack_init()函數(shù)來對(duì)以太網(wǎng)協(xié)議堆棧進(jìn)行初始化,調(diào)用lwip_devices_init()函數(shù)對(duì)在system.h中定義的所有已安裝的以太網(wǎng)設(shè)備驅(qū)動(dòng)程序進(jìn)行注冊(cè),即對(duì)設(shè)備驅(qū)動(dòng)進(jìn)行初始化操作。其次用HAL系統(tǒng)代碼調(diào)用init_done_func()、get_mac_addr()和get_ip_addr()函數(shù)來設(shè)置系統(tǒng)的MAC和IP地址。本設(shè)計(jì)中將MAC和IP地址放置在EPCS配置芯片中。最后當(dāng)所有的初始化完成之后,就可以調(diào)用OSStart()函數(shù)來啟動(dòng)μC/OSⅡ操作系統(tǒng),進(jìn)而進(jìn)行任務(wù)調(diào)度。
3.2 LAN91C111的初始化、數(shù)據(jù)的接收和發(fā)送
溫濕度數(shù)據(jù)的接收和發(fā)送通過中斷的方式實(shí)現(xiàn),在軟件設(shè)計(jì)中建立中斷服務(wù)程序,通過檢查L(zhǎng)AN91C111的中斷寄存器狀態(tài)來判斷接收或發(fā)送中斷請(qǐng)求。LAN91C111的內(nèi)存組成是由訪問寄存器的IO空間和暫時(shí)存放接收、發(fā)送數(shù)據(jù)的內(nèi)部RAM空間構(gòu)成,其中IO空間可直接訪問,RAM通過IO空間指針訪問。訪問寄存器則是先選擇BANK再選擇偏移量[10]。
本文對(duì)基于SOPC系統(tǒng)和嵌入式以太網(wǎng)接口的溫濕度監(jiān)測(cè)系統(tǒng)軟、硬件構(gòu)架進(jìn)行設(shè)計(jì)和研究,最后通過開發(fā)板實(shí)驗(yàn)驗(yàn)證,表明該系統(tǒng)能滿足溫濕度實(shí)時(shí)、遠(yuǎn)程的采集和監(jiān)測(cè)任務(wù),具有較好的適應(yīng)性和應(yīng)用前景。如果加入路由器等中間設(shè)備可以實(shí)現(xiàn)遠(yuǎn)程溫濕度數(shù)據(jù)的多機(jī)共享。
[1] 張慧.基于SOPC技術(shù)的多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].蘭州:蘭州大學(xué),2013.
[2] 王俊山.基于SOPC的多點(diǎn)溫濕度檢測(cè)系統(tǒng)[D].鄭州:鄭州大學(xué),2010.
[3] 張松,李筠.FPGA的模塊化設(shè)計(jì)方法[J].電子測(cè)量與儀器學(xué)報(bào),2014,28(5):1-3.
[4] 丁曉貴,劉桂江.基于SOPC的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(1):229-231.
[5] 劉云清,佟首峰,姜會(huì)林.利用FPGA實(shí)現(xiàn)SDRAM控制器的設(shè)計(jì)[J].長(zhǎng)春理工大學(xué)學(xué)報(bào),2005,28(2):47-50.
[6] 陸健鋒,李曉峰,胡瑋.基于SOPC的遠(yuǎn)程多通道數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].信息與電子工程,2010(2):227-230.
[7] 劉巖,王曉君.基于FPGA和LAN91C111的嵌入式以太網(wǎng)接口設(shè)計(jì)[J].新特器件應(yīng)用,2010(12):1-3.
[8] 馬駿.基于SOPC的以太網(wǎng)遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012(20):69-72.
[9] 徐康.基于SOPC溫濕度遠(yuǎn)程監(jiān)測(cè)系統(tǒng)的研究與設(shè)計(jì)[D].武漢:武漢理工大學(xué),2012.
[10]王亮,陳文藝.基于SOPC的嵌入式以太網(wǎng)LAN91C111控制器的開發(fā)應(yīng)用[J].西安郵電學(xué)院學(xué)報(bào),2010,15(3):96-100.
Temperature and Humidity Monitoring System Based on SOPC and Embedded Ethernet
LI Yalong,ZHANG Caizhen
(School of Electronic and Information Engineering,Lanzhou Jiaotong University,Lanzhou 730070,China)
In order to realize the real-time remote monitoring of temperature and humidity data,this paper puts forward the design scheme of a temperature and humidity monitoring system based on the SOPC and embedded Ethernet interface.The system makes full use of the rich resources of the SOPC system.The hardware architecture of the building has Nios II soft core CPU and the peripheral IP as the core in the software of Quartus Qsys.By porting the μ C/OS Ⅱ operating system as a software platform,using LwIP as the network communication protocol,and combining LAN91C111 with FPGA to constitute an embedded Ethernet interface,the temperature and humidity data is transmitted and controlled.Due to its flexible design,extendibility,resource-effectiveness,and cost-effectiveness,the circuit structure is greatly simplified,making the design simple and easy to implement.
SOPC;temperature and humidity data acquisition;the embedded ethernet interface;real time remote monitoring
2014- 08- 23
李亞龍(1989—),男,碩士研究生。研究方向:EDA,嵌入式系統(tǒng)設(shè)計(jì)。E-mail:1062744799@qq.com。張彩珍(1974—),女,博士,教授。研究方向:電子設(shè)計(jì)自動(dòng)化。
10.16180/j.cnki.issn1007-7820.2015.04.025
TP277
A
1007-7820(2015)04-091-04