《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA片上系統(tǒng)和嵌入式系統(tǒng)的遠程監(jiān)控系統(tǒng)
基于FPGA片上系統(tǒng)和嵌入式系統(tǒng)的遠程監(jiān)控系統(tǒng)
維庫開發(fā)網(wǎng)
摘要: 本系統(tǒng)立足于利用Intemet實現(xiàn)核環(huán)境信息的遠程采集,。在實現(xiàn)上,采用了基于SOPC技術(shù)的嵌入式解決方案,,通過在FPGA中嵌入NioslI軟核處理器和所需外設的IPCore(硅知識產(chǎn)權(quán)核),,然后再配備相應的網(wǎng)絡接口,,實現(xiàn)利用互聯(lián)網(wǎng)進行信息的傳輸。另外,,通過開發(fā)用于控制信息采集子系統(tǒng)的IP核,,利用FPGA固有的硬件并行特性,本系統(tǒng)做到了對多個信息源進行真正意義上的并行監(jiān)控,,即在進行α射線探測的同時也可以進行γ射線和溫濕度等信息的獲取,。
Abstract:
Key words :

本系統(tǒng)立足于利用Intemet實現(xiàn)核環(huán)境信息的遠程采集,。在實現(xiàn)上,采用了基于SOPC技術(shù)的嵌入式解決方案,,通過在FPGA中嵌入NioslI軟核處理器和所需外設的IPCore(硅知識產(chǎn)權(quán)核),,然后再配備相應的網(wǎng)絡接口,實現(xiàn)利用互聯(lián)網(wǎng)進行信息的傳輸,。另外,,通過開發(fā)用于控制信息采集子系統(tǒng)的IP核,利用FPGA固有的硬件并行特性,,本系統(tǒng)做到了對多個信息源進行真正意義上的并行監(jiān)控,,即在進行α射線探測的同時也可以進行γ射線和溫濕度等信息的獲取。
1 系統(tǒng)硬件設計及實現(xiàn)
在本系統(tǒng)的設計中,,硬件上為了做到通用性,,在結(jié)構(gòu)上劃分為兩部分,,即用于完成現(xiàn)場監(jiān)控和數(shù)據(jù)遠程傳輸?shù)耐ㄓ镁W(wǎng)絡平臺和用于完成溫濕度,、液位、α及γ輻射總量測量等工作的環(huán)境信息采集子系統(tǒng),。其結(jié)構(gòu)分別如圖l,、圖2所示。兩個子系統(tǒng)通過一條40芯扁平電纜連接,。在軟件上,,考慮到利用互聯(lián)網(wǎng)進行遠程數(shù)據(jù)傳輸?shù)膹碗s性,使用嵌入式操作系統(tǒng)和TCP/IP協(xié)議棧是必然的選擇,,因此硬件上也圍繞這個關(guān)鍵點進行設計,。

1.1 Niosii軟核CPU
NiosII軟核CPU是A137ERA公司推出的一種通用32位RISC嵌入式處理器,它特別為可編程邏輯進行了優(yōu)化設計,,并配備有功能完善的開發(fā)套件,,包括C/C++編譯器、集成開發(fā)環(huán)境(IDE),、JTAG調(diào)試器等,,是ALTERA公司可編程單芯片系統(tǒng)解決方案的核心。
作為一個軟核處理器,,NiosII提供了可配置的硬件及軟件調(diào)試特性,,包括基本的JTAG的運行控制(運行、停止,、單步,、存儲器等)、硬件斷點,、數(shù)據(jù)觸發(fā),、片內(nèi)和片外跟蹤,、嵌入式邏輯分析儀。這些強大的工具可以在開發(fā)階段使用,,調(diào)試通過后便可以去掉,,節(jié)省資源。NiosII處理器還提供了高,、中,、低三種不同性能的內(nèi)核,通過與ALTERA提供的超過60種IP核(UART,、時鐘,、DMA、SDRAM,、并行I/0等)結(jié)合使用,,設計師可以方便地針對特定的應用創(chuàng)建一個在處理器、外設,、存儲器和I/O接口方面都完美的方案,。除此以外,NiosII還有很多其他優(yōu)秀的特性,,如指令定制,、硬件加速器等。
1.2 網(wǎng)絡接口單元
以太網(wǎng)接口芯片采用了SMSC公司專門用于嵌入式產(chǎn)品的LAN91C111快速以太網(wǎng)控制器,。該芯片內(nèi)部同時集成了以太網(wǎng)介質(zhì)訪問控制器(MAC)及物理層收發(fā)器(PHY),,支持10/100M全雙工傳輸模式、自動協(xié)商及流控等功能,。其主機接口具有同步總線,、異步總線等多種工作模式,可以方便地與各種體系的CPU連接,。本設計中使用了異步總線接口模式,,并與FLASH共用地址線和數(shù)據(jù)線,通過FPGA上的適配模塊連接到Avalon片內(nèi)總線,。
1.3 存儲器單元
由于存儲操作系統(tǒng)內(nèi)核,、應用程序代碼、程序數(shù)據(jù)等的需要,,本系統(tǒng)使用了一片型號為AM29LV320D的FLASH芯片,。該芯片由AMD公司推出,容量為4MB,,支持CFI接口,,其與AvMon總線的連接需要FPGA內(nèi)部的總線適配模塊進行時序匹配。SDRAM用于存儲運行期的程序代碼和數(shù)據(jù),,HY57V563220B(L)T為現(xiàn)代公司推出的容量達16MB的SDRAM,,由于該芯片端口寬度可達32位,,因此系統(tǒng)中使用單芯片即可。SDRAM讀寫時序比較復雜,,需要在FPGA中集成專用的SDRAM控制器IP核與其對接,。
2 總量計數(shù)IP核
如圖2所示,α或γ探測器獲得的信號經(jīng)由兩級放大器串接組成的線性脈沖放大器放大后送至以LM393為核心的甄別電路進行比較,,濾掉噪聲,,輸出矩形的脈沖信號。對于這個信號的處理,,以MCU(微控制器)為核心的傳統(tǒng)核探測儀只能通過MCU上已有的硬件資源(如定時器)結(jié)合軟件來實現(xiàn),。
這種方法受制于硬件資源和MCU的速度,難以對多通道信號源進行并行處理,。本系統(tǒng)中,,總量計數(shù)IP核即是針對此問題而專門設計的硬件,使用VHDL語言設計實現(xiàn),,其內(nèi)部接口符合Avalon片內(nèi)總線從設備接口規(guī)范,,可以方便地掛接在Avalon總線上,作為NiosII軟核cPu的一個專用外設,。
總量計數(shù)IP核是網(wǎng)絡平臺FPGA中子板接口的一部分,,其結(jié)構(gòu)如圖3所示。α輻射總量測量與γ輻射總量測量原理類似,,下面以α測量為例介紹其工作原理。時鐘源模塊通過對主時鐘分頻產(chǎn)生一個O.1秒的脈沖信號,,作為定時器計時的基準源,。定時器則按照命令寄存器傳過來的采集時間產(chǎn)生所需的定時信息。
根據(jù)定時器的定時信息和命令寄存器的命令,,控制計數(shù)器對α測量模塊傳過來的脈沖信號進行計數(shù),,從而獲得輻射總量的計數(shù)值,該計數(shù)值被存進FIFO中,;而在另一側(cè),,NiosIICPU通過Avalon總線向IP核的命令寄存器寫入相應的命令字實現(xiàn)對各通道的控制,例如啟動總量計數(shù),、關(guān)閉總量計數(shù),、設置采集時間及清空FIFO等。
值得注意的是,,來自甄別電路的α或γ計數(shù)脈沖是與本IP核工作時鐘異步的信號,,而計數(shù)器的值最終是需要存人。FIF0的,,因此對α或γ計數(shù)脈沖都以主時鐘進行二次鎖存并整形,,使每個異步計數(shù)脈沖產(chǎn)生一個只持續(xù)一個主時鐘周期的同步脈沖,。以該脈沖進行計數(shù),不僅解決了異步信號同步的問題,,而且有效地濾除了干擾脈沖,,使計敦值準確。
3 系統(tǒng)的軟件結(jié)構(gòu)
為了實現(xiàn)利用Intemet進行遠程數(shù)據(jù)傳輸,,本系統(tǒng)在NiosII上移植了MicroC/OS2實時操作系統(tǒng)和LWIP(輕量級IP協(xié)議棧)進而在其上開發(fā)信息采集軟件,。
3.1 MicroC/OS2及LWIP的移植
此部分工作主要是針對本系統(tǒng)的特定硬件進行移植并編寫如溫濕度傳感器SHT75、總量計數(shù)IP核等所需的各種驅(qū)動,,因此深入了解軟件的各層結(jié)構(gòu)和細節(jié)是移植成功的關(guān)鍵,。
HAL即硬件抽象層,是NiosII開發(fā)套件的一部分,,由ALTERA公司提供,,它封裝了系統(tǒng)中硬件操作的相關(guān)細節(jié),驅(qū)動程序也作為它的一部分,。HAL共抽象了六種器件模型,,包括字符模式器件、定時器件,、文件子系統(tǒng),、以太網(wǎng)器件、DMA器件和Flash器件,,并為每一類器件提供一系列的統(tǒng)一的初始化函數(shù)和訪問函數(shù)接口,,通過這種方式,HAL向上一層提供了一個類POSIX的API接口,,即硬件抽象層應用編程界面,。
針對NiosII的軟件開發(fā),其實是建立在HAL之上,,而非直接面向NiosII硬件本身,。本系統(tǒng)測量模塊所對應的各個接口IP核均屬于字符模式器件,因此驅(qū)動程序需按HAL中字符模式器件模型來進行編寫,。
MicroC/OS2是一個適合于小型,、微控制器的可剝奪實時操作系統(tǒng)。它支持56個用戶任務,,其內(nèi)核為占先式,,支持信號量、郵箱,、消息隊列等多種常用的進程間通信機制,,通過它為應用程序提供所需的多任務環(huán)境。由于MicroC/OS2自身并沒帶有協(xié)議棧,,因此需要移植一個TCP/IP協(xié)議棧LWIP,,從而向上層提供了一個類似UNIX套接字的接口,。LWIP支持以下一些網(wǎng)絡協(xié)議:IP、ARP,、ICMF,、UDP、TCP,。該協(xié)議棧需要20KB的代碼存儲空間及4KB的數(shù)據(jù)存儲空問,,同時在構(gòu)建系統(tǒng)時還需要添加一個專供其使用的定時器。
圖4為分析得到的系統(tǒng)軟件的啟動流程,。在該流程圖中,,alt_sys_init()用于初始化系統(tǒng)中的設備,在這個過程中會調(diào)用設備驅(qū)動程序提供的初始化程序,。Lwip_stack_init()用于初始化TCP/IP協(xié)議棧,。而tcpip_init_done()是一個在協(xié)議棧初始化后被調(diào)用的函數(shù),通信服務器的任務也在其中創(chuàng)建,。有一點需要注意的是,。所有基于LWIP的任務,都應該使用sys_thread_new()函數(shù)來創(chuàng)建,,而不是直接使用OSTaskCreate(),。最后,所有的初始化都準備好后,,即調(diào)用OSStart()來啟動RTOS進行任務調(diào)度,。

3.2 信息采集程序的設計
本模塊作為一個任務,運行于MicroC/OS2實時操作系統(tǒng)之上,,完成對各個探測子系統(tǒng)基于策略或遠程指令的測量控制,,獲取的信息被保存到指定的內(nèi)存緩沖區(qū),并根據(jù)要求將結(jié)果返回到遠程主機上,。對于溫濕度測量,由于SHT75傳感器的濕度輸出呈一定的非線性,,為了獲取準確數(shù)據(jù),,需要根據(jù)給定的公式對所獲得的數(shù)據(jù)進行修正,而溫度輸出則不需進行補償,,將數(shù)字輸出轉(zhuǎn)換為實際溫度值即可,,詳見SHT75數(shù)據(jù)手冊。對于總量計數(shù)的處理,,本模塊只是簡單地將數(shù)據(jù)打包后交給通信服務器傳回遠程主機,。
3.3 通信服務器
本任務通過sys_thread_new()函數(shù)創(chuàng)建,作為一個服務器*約定的端口,,等待遠程主機的連接,,提取遠程主機的命令,,通過消息隊列將所獲得的命令發(fā)送到信息采集任務;同時也根據(jù)要求將信息采集任務獲得的各種數(shù)據(jù)分類發(fā)回遠程主機,。
LWP提供了標準的Berkeley套接字編程界面,,這個界面提供了三種類型的套接字,在這里使用了流式套接字,,這是一個面向連接的可靠的數(shù)據(jù)傳輸服務,,也就是說使用的是TCP協(xié)議。通常,,服務器接收到并發(fā)服務請求,,要激活一新進程來處理這個客戶請求,但出于系統(tǒng)資源和簡化設計的考慮,,在這里服務器同一時刻只能接受一個連接請求,,而這種簡化事實上也是可以滿足設計需要的。
本系統(tǒng)應用基于FPGA的片上系統(tǒng)技術(shù)和嵌入式系統(tǒng)技術(shù)實現(xiàn)了智能核儀器與互聯(lián)網(wǎng)的連接,,同時也實現(xiàn)了硬件上的部分可重構(gòu),,根據(jù)需要增加或刪除FPGA中的外設IP核即可實現(xiàn)系統(tǒng)在功能和性能上的改變。目前本系統(tǒng)已經(jīng)在放射性樣品儲藏室中應用,,其功能和性能均滿足實際環(huán)境的要求,。由于本系統(tǒng)的網(wǎng)絡平臺被設計成一個相對獨立的子系統(tǒng),因此只需開發(fā)特定的探測子系統(tǒng)即可應用于各種相應的需要遠程監(jiān)控的領域,。
此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。