《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 業(yè)界動(dòng)態(tài) > 基于SOPC技術(shù)的核信息遠(yuǎn)程采集系統(tǒng)

基于SOPC技術(shù)的核信息遠(yuǎn)程采集系統(tǒng)

2008-06-17
作者:吳 婷, 王 敏, 周 程, 曾

  摘 要: 介紹了一種利用互聯(lián)網(wǎng)進(jìn)行核環(huán)境信息遠(yuǎn)程采集的系統(tǒng)。闡述了該系統(tǒng)的功能和應(yīng)用場合,詳細(xì)分析了以NiosII為核心構(gòu)成的SOPC(可編程片上系統(tǒng))的硬件結(jié)構(gòu)和用于并行測量的總量計(jì)數(shù)IP核的設(shè)計(jì),最后給出了軟件系統(tǒng)的框架、MicroC/OS2和LWIP針對目標(biāo)系統(tǒng)進(jìn)行移植所需的相關(guān)知識(shí)點(diǎn)及測量應(yīng)用程序。
  關(guān)鍵詞: SOPC NiosII Internet 遠(yuǎn)程 信息采集


  當(dāng)今對核環(huán)境信息的監(jiān)測具有重要的社會(huì)意義。傳統(tǒng)的方法是工作人員進(jìn)行現(xiàn)場操作以獲取核數(shù)據(jù)。但這種方法存在環(huán)境適應(yīng)能力差、測量周期短等諸多弊端,使得應(yīng)用場合受到很大限制。例如,在放射性樣品儲(chǔ)藏室中,需對α及γ輻射總量進(jìn)行長期監(jiān)測與控制。由于環(huán)境惡劣,工作人員無法長期停留在現(xiàn)場,因此研制一種具有遠(yuǎn)程信息采集" title="信息采集">信息采集能力的系統(tǒng)具有很強(qiáng)的現(xiàn)實(shí)意義。Internet現(xiàn)已覆蓋全球,通過Internet可以方便地傳送信息,因此,本系統(tǒng)立足于利用Internet實(shí)現(xiàn)核環(huán)境信息的遠(yuǎn)程采集。在實(shí)現(xiàn)上,采用了基于SOPC技術(shù)的嵌入式解決方案,通過在FPGA中嵌入NiosII軟核處理器和所需外設(shè)" title="外設(shè)">外設(shè)的IP Core(硅知識(shí)產(chǎn)權(quán)核),然后再配備相應(yīng)的網(wǎng)絡(luò)接口,實(shí)現(xiàn)利用互聯(lián)網(wǎng)進(jìn)行信息的傳輸。
  另外,通過開發(fā)用于控制信息采集子系統(tǒng)的IP核,利用FPGA固有的硬件并行特性,本系統(tǒng)做到了對多個(gè)信息源進(jìn)行真正意義上的并行監(jiān)控,即在進(jìn)行α射線探測的同時(shí)也可以進(jìn)行γ射線和溫濕度等信息的獲取。
1系統(tǒng)硬件設(shè)計(jì)及實(shí)現(xiàn)
  在本系統(tǒng)的設(shè)計(jì)中,硬件上為了做到通用性,在結(jié)構(gòu)上劃分為兩部分,即用于完成現(xiàn)場監(jiān)控和數(shù)據(jù)遠(yuǎn)程傳輸?shù)耐ㄓ镁W(wǎng)絡(luò)平臺(tái)和用于完成溫濕度、液位、α及γ輻射總量測量等工作的環(huán)境信息采集子系統(tǒng)。其結(jié)構(gòu)分別如圖1、圖2所示。兩個(gè)子系統(tǒng)通過一條40芯扁平電纜連接。在軟件上,考慮到利用互聯(lián)網(wǎng)進(jìn)行遠(yuǎn)程數(shù)據(jù)傳輸?shù)膹?fù)雜性,使用嵌入式操作系統(tǒng)和TCP/IP" title="TCP/IP">TCP/IP協(xié)議棧" title="協(xié)議棧">協(xié)議棧是必然的選擇,因此硬件上也圍繞這個(gè)關(guān)鍵點(diǎn)進(jìn)行設(shè)計(jì)。

?


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


3 系統(tǒng)的軟件結(jié)構(gòu)
  為了實(shí)現(xiàn)利用Internet進(jìn)行遠(yuǎn)程數(shù)據(jù)傳輸,本系統(tǒng)在NiosII上移植了MicroC/OS2實(shí)時(shí)操作系統(tǒng)和LWIP(輕量級(jí)IP協(xié)議棧)進(jìn)而在其上開發(fā)信息采集軟件。
3.1 MicroC/OS2及LWIP的移植
  此部分工作主要是針對本系統(tǒng)的特定硬件進(jìn)行移植并編寫如溫濕度傳感器SHT75、總量計(jì)數(shù)IP核等所需的各種驅(qū)動(dòng),因此深入了解軟件的各層結(jié)構(gòu)和細(xì)節(jié)是移植成功的關(guān)鍵。
  HAL即硬件抽象層,是NiosII開發(fā)套件的一部分,由ALTERA公司提供,它封裝了系統(tǒng)中硬件操作的相關(guān)細(xì)節(jié),驅(qū)動(dòng)程序也作為它的一部分。HAL共抽象了六種器件模型,包括字符模式器件、定時(shí)器件、文件子系統(tǒng)、以太網(wǎng)器件、DMA器件和Flash器件,并為每一類器件提供一系列的統(tǒng)一的初始化函數(shù)和訪問函數(shù)接口,通過這種方式,HAL向上一層提供了一個(gè)類POSIX的API接口,即硬件抽象層應(yīng)用編程界面。針對NiosII的軟件開發(fā),其實(shí)是建立在HAL之上,而非直接面向NiosII硬件本身。本系統(tǒng)測量模塊所對應(yīng)的各個(gè)接口IP核均屬于字符模式器件,因此驅(qū)動(dòng)程序需按HAL中字符模式器件模型來進(jìn)行編寫。
  MicroC/OS2是一個(gè)適合于小型、微控制器的可剝奪實(shí)時(shí)操作系統(tǒng)。它支持56個(gè)用戶任務(wù),其內(nèi)核為占先式,支持信號(hào)量、郵箱、消息隊(duì)列等多種常用的進(jìn)程間通信機(jī)制,通過它為應(yīng)用程序提供所需的多任務(wù)環(huán)境。由于MicroC/OS2自身并沒帶有協(xié)議棧,因此需要移植一個(gè)TCP/IP協(xié)議棧LWIP,從而向上層提供了一個(gè)類似UNIX套接字" title="套接字">套接字的接口。LWIP支持以下一些網(wǎng)絡(luò)協(xié)議:IP、ARP、ICMP、UDP、TCP。該協(xié)議棧需要20KB的代碼存儲(chǔ)空間及4KB的數(shù)據(jù)存儲(chǔ)空間,同時(shí)在構(gòu)建系統(tǒng)時(shí)還需要添加一個(gè)專供其使用的定時(shí)器。
  圖4為分析得到的系統(tǒng)軟件的啟動(dòng)流程。在該流程圖中,alt_sys_init()用于初始化系統(tǒng)中的設(shè)備,在這個(gè)過程中會(huì)調(diào)用設(shè)備驅(qū)動(dòng)程序提供的初始化程序。Lwip_stack_init()用于初始化TCP/IP協(xié)議棧。而tcpip_init_done()是一個(gè)在協(xié)議棧初始化后被調(diào)用的函數(shù),通信服務(wù)器的任務(wù)也在其中創(chuàng)建。有一點(diǎn)需要注意的是,所有基于LWIP的任務(wù),都應(yīng)該使用sys_thread_new()函數(shù)來創(chuàng)建,而不是直接使用OSTaskCreate()。最后,所有的初始化都準(zhǔn)備好后,即調(diào)用OSStart()來啟動(dòng)RTOS進(jìn)行任務(wù)調(diào)度。


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

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。