唐文俊 李維波 賀洪 饒金
(海軍工程大學(xué)艦船綜合電力技術(shù)國防科技重點實驗室,武漢 430033)
隨著以太網(wǎng)朝著高速方向發(fā)展并借助交換技術(shù)、全雙工工作方式的融入以及嵌入式技術(shù)的步發(fā)展,極大地推動了以太網(wǎng)技術(shù)在工業(yè)控制領(lǐng)域中的廣泛應(yīng)用。由于嵌入式系統(tǒng)具有體積小、功耗低、可靠性高以及面向行業(yè)應(yīng)用的突出特點,大量應(yīng)用于國防軍事、消費電子、網(wǎng)絡(luò)通信、工業(yè)控制等多個領(lǐng)域。ARM和 FPGA是嵌入式領(lǐng)域應(yīng)用非常廣泛的微處理器,ARM在順序執(zhí)行和事務(wù)處理方面功能強(qiáng)大,F(xiàn)PGA的 I/O口豐富、處理數(shù)據(jù)的速度高能力強(qiáng),將它們有機(jī)結(jié)合起來構(gòu)建嵌入式采集系統(tǒng),就兼具各自的優(yōu)點[1]。
本文闡述一種基于ARM和FPGA的遠(yuǎn)程監(jiān)控系統(tǒng),分別從硬件選型和軟件編程兩方面進(jìn)行論述,并借助實驗驗證該系統(tǒng)的有效性和合理性。
圖1表示基于ARM和FPGA的監(jiān)控系統(tǒng)的總體框圖,它主要由信號采集處理板、交換機(jī)和上位機(jī)等幾個重要部分組成。
圖1 監(jiān)控網(wǎng)絡(luò)結(jié)構(gòu)圖
由于信號采集處理板是整個監(jiān)控系統(tǒng)的核心,起到了承上啟下的關(guān)鍵作用,一方面它將完成底層信號的獲取和預(yù)處理,另一方面它將對這些信號進(jìn)行后續(xù)處理并上傳給上位機(jī),本文將重點介紹這部分內(nèi)容。
信號采集處理板的硬件架構(gòu)如2所示,它由ARM 和 FPGA兩個微控制器構(gòu)建而成,其中ARM作為整個處理板的主控單元,完成讀取存儲器數(shù)據(jù)、A/D采樣、并與FPGA和上位機(jī)之間的通信等功能;FPGA則主要對來自光電轉(zhuǎn)換獲得的數(shù)字量進(jìn)行數(shù)字濾波、采集和存儲等重要操作。
圖2 信號采集處理板的硬件架構(gòu)圖
信號采集處理板的 ARM 選型為 TI公司的LM3S9B92。它是基于 ARM? Cortex-M3?技術(shù)的一款32位高性能的微控制器,在80 MHz的時鐘頻率時可以達(dá)到100 DMIPS(每秒百萬條指令)的處理能力,相對于當(dāng)前的 8位和16位微處理器(MCU)的水平,具有突出的優(yōu)勢,同時具有Cortex-M3和Thumb-2指令集。其中Thumb-2技術(shù)可以使16位和32位的指令并存,帶來了代碼密度和性能的最佳平衡,Thumb-2比純32位代碼占用少26%,同時使得性能提升25%,有效降低系統(tǒng)成本。
另外,LM3S9B92片內(nèi)資源非常豐富,它集成了高速外部并行總線接口(EPI接口),支持8位/16 位/32 位專用并行總線,便于連接片外設(shè)備或存儲器,并支持直接存儲器訪問控制器(DMA)、時鐘控制、片外 FIFO 緩沖等功能,可實現(xiàn)高效的數(shù)據(jù)傳輸;它集成了10/100M以太網(wǎng)的MAC和PHY模塊,只需要外接一個網(wǎng)絡(luò)變壓器芯片,就能實現(xiàn)以太網(wǎng)功能(目前一般的微處理器還不具備該功能),如圖2所示。與此同時支持 IEEE1588精確時間協(xié)議,為每個單獨的數(shù)據(jù)包提供高精度時間戳,該以太網(wǎng)控制器還支持DMA高效數(shù)據(jù)傳輸,能夠有效提高通信速率。
第三,LM3S9B92 微控制器內(nèi)置了一個DMA,該DMA控制器所提供的工作方式能夠降低Cortex-M3處理器參與數(shù)據(jù)傳輸任務(wù),從而更加高效地使用內(nèi)核以及總線帶寬,它還能夠自動執(zhí)行存儲器與外設(shè)之間的數(shù)據(jù)傳輸,片上每個支持DMA 功能的外設(shè)都有專用的DMA 通道,通過合理的編程配置,當(dāng)外設(shè)需要時能夠自動在外設(shè)和存儲器之間傳輸數(shù)據(jù);LM3S9B92 微控制器還集成了兩個10位的A/D模塊,支持16個I/O接口,并且內(nèi)置溫度傳感器,A/D模塊包含4個可編程的序列發(fā)生器,無需控制器干預(yù)即可自動完成多個模擬量的采樣,每個采樣序列發(fā)生器都可靈活配置其模擬量、觸發(fā)事件、中斷產(chǎn)生和序列發(fā)生器的優(yōu)先級[2]。
FPGA微控制器采用 Altera公司的 Cyclone系列的EP1C3T144I7N,它有接近3000個邏輯單元、13個M4k RAM模塊,共有104個用戶可用I/O接口,支持66MHz、32位PCI接口,它有兩個PLL模塊能夠提供時鐘倍頻和移相功能,它同時也支持外部的存儲器接口,可以外部擴(kuò)展SDRAM、SRAM、FLASH等存儲器,因此它是一款性價比較高的處理芯片[3]。
ARM作為主控制器,控制 FPGA完成信號的采集和存儲等功能,它們之間的通信效率會直接影響控制器的性能,本文特別采用總線形式,并在總線上掛一個SRAM緩存數(shù)據(jù),便于提高數(shù)據(jù)傳輸效率,它們之間的接口關(guān)系如圖3所示。
分析圖 3得知,該總線包括三種總線,即ARM與FPGA的總線,ARM與SRAM的總線以及FPGA與SRAM的總線。圖3中AB[0-19]表示20位地址總線;DB[0-7]表示 8位數(shù)據(jù)總線;CLK/OEn表示時鐘或使能信號,當(dāng)操作FPGA時,CLK/OEn配置為時鐘信號,當(dāng)操作 SRAM時,CLK/OEn配置為使能信號,作使能信號時是低電平有效;WRn為寫信號且低電平有效;RDn為讀信號且低電平有效;CS為片選信號且高電平有效;INT為FPGA向ARM發(fā)出的中斷請求信號,以應(yīng)對特殊情況時請求ARM進(jìn)行干預(yù)處理。
圖3 ARM、FPGA和SRAM的接口關(guān)系
由于該監(jiān)控系統(tǒng)需要處理模擬量和數(shù)字量,而數(shù)字信號的頻率又各不相同,為了與這種特點的數(shù)字量相適應(yīng),需要采用靈活的可編程方法來配置FPGA的接口和相應(yīng)的處理模塊,其配置功能如圖4所示,它包括以下幾個重要模塊:
1) 數(shù)字濾波模塊:對輸入量進(jìn)行濾波處理,本文采用了 FIR濾波方式;2)高頻數(shù)字信號采集模塊,完成高頻數(shù)字信號的分頻和采集功能;3)低頻信號采集模塊,用于采集頻率不高的數(shù)字信號;4)定時計數(shù)模塊,用于按照要求的頻率采集數(shù)據(jù);5)數(shù)據(jù)處理模塊,用于完成所有輸入數(shù)據(jù)的處理和控制數(shù)據(jù)塊的讀/寫前的操作;6)數(shù)據(jù)緩存模塊,用于對數(shù)據(jù)塊的存儲操作;7)SRAM的讀/寫模塊,完成數(shù)據(jù)的讀入和寫入 SRAM 功能;8)中斷產(chǎn)生模塊用于完成 FPGA的中斷申請;9)命令/數(shù)據(jù)分析處理模塊,完成 ARM 的控制響應(yīng)和與ARM的通信操作。
軟件設(shè)計主要包括ARM實現(xiàn)TCP/IP協(xié)議并與上位機(jī)通信,控制FPGA實現(xiàn)采集存儲等工作。FPGA程序設(shè)計采用Verilog語言編寫,在Quartus II 8.1環(huán)境下實現(xiàn),并在ModelSim-Altera 6.3環(huán)境下進(jìn)行了功能仿真和時序仿真。ARM程序設(shè)計在IAR6.1環(huán)境下實現(xiàn),主要包括以下三部分:一是TCP/IP協(xié)議棧的實現(xiàn);二是ARM完成模擬信號的采集;三是與FPGA和SRAM的通信。本文主要介紹ARM程序的實現(xiàn)方法。
圖4 FPGA的功能模塊的配置
TCP/IP協(xié)議棧實際上是一個協(xié)議族,主要由負(fù)責(zé)對不同網(wǎng)絡(luò)進(jìn)行互聯(lián)的 IP協(xié)議和檢測網(wǎng)絡(luò)傳輸中差錯的傳輸控制TCP協(xié)議組成,但是它的代碼體積龐大、CPU耗時多給處理器帶來了一定的困難,隨著嵌入式以太網(wǎng)技術(shù)的快速發(fā)展,國外推出了不少輕量級的TCP/IP協(xié)議,如LwIP、uIP等,針對工程的實際需要,本文選擇了LwIP協(xié)議。
LwIP是瑞士計算機(jī)科學(xué)院(Swedish Institute of Computer Science)的 Adam 、Dunkels等開發(fā)的一套用于嵌入式系統(tǒng)的開放源代碼 TCP/IP協(xié)議棧。LwIP的含義是Light Weight(輕型)IP協(xié)議。LwIP可以移植到操作系統(tǒng)上,也可以在無操作系統(tǒng)的情況下獨立運行。LwIP TCP/IP實現(xiàn)的重點是在保持 TCP協(xié)議主要功能的基礎(chǔ)上減少對RAM的占用,一般它只需要幾十kB的RAM和40kB左右的ROM就可以運行,這使LwIP協(xié)議棧非常適合嵌入式系統(tǒng)中使用。LwIP的主要特性有:
(1)支持多網(wǎng)絡(luò)接口下的IP轉(zhuǎn)發(fā)。
(2)支持網(wǎng)際間控制報文協(xié)議ICMP(Internet Control Messages Protocol)協(xié)議。
(3)包括實驗性擴(kuò)展的UDP協(xié)議(用戶數(shù)據(jù)報協(xié)議)。
(4)包括阻塞控制、RTT估算和快速恢復(fù)和快速轉(zhuǎn)發(fā)的TCP協(xié)議(傳輸控制協(xié)議)。
(5)提供專門的內(nèi)部回調(diào)接口(Raw API),用于提高應(yīng)用程序性能。
(6)多線程情況下,具有可選擇的 Berkeley接口API,支持動態(tài)主機(jī)配置協(xié)議(DHCP)和動態(tài)分配IP地址[4-6]。
由于系統(tǒng)傳輸?shù)臄?shù)據(jù)比較大,對速度也有一定的要求,對數(shù)據(jù)的準(zhǔn)確性和穩(wěn)定性要求很高,所以采用無操作系統(tǒng)的LwIP的TCP協(xié)議建立高效可靠的鏈接來保證數(shù)據(jù)傳輸?shù)馁|(zhì)量,上位機(jī)與信號采集處理板采用客戶機(jī)/服務(wù)器的模式進(jìn)行通信。軟件設(shè)計的主要工作是LwIP的移植和TCP協(xié)議處理后的數(shù)據(jù)處理,其流程如圖5所示,它為面向連接的客戶機(jī)/服務(wù)器通信流程圖,圖6表示處理數(shù)據(jù)包的流程圖[7-9]。
圖5 面向連接的客戶機(jī)/服務(wù)器通信流程
圖6 數(shù)據(jù)包的處理流程圖
針對溫度、電壓等模擬信號,采用 ARM自帶的16通道ADC進(jìn)行采集,本文選用的ARM能夠達(dá)到10位的轉(zhuǎn)換精度和1M次每秒的采集速率,完全能夠滿足采集要求,而且支持硬件過采樣技術(shù),能夠?qū)Σ杉Y(jié)果進(jìn)行多達(dá)64個采樣取平均值,能很好的提高采樣的精度。圖7表示模擬量采集的流程圖。
圖7 模擬量采集流程圖
圖8 ARM與FPGA的通信流程圖
FPGA在硬件處理方面具有獨特的優(yōu)勢,并且硬件實現(xiàn)是并行處理模式,配置50 MHz的時鐘能滿足很高的性能要求和時序要求,本文采用ARM控制 FPGA采集的處理方式,并且采用總線形式,同時數(shù)據(jù)存儲使用外部的SRAM作為存儲,減少了FPGA的負(fù)荷用時拓展了存儲空間,很好的提高了監(jiān)控的數(shù)量和質(zhì)量。圖8表示ARM與FPGA的通信流程,圖9表示FPGA對SRAM進(jìn)行讀操作的基本步驟。
圖9 ARM對SRAM進(jìn)行讀操作
按照上述硬件和軟件的設(shè)計,通過軟件調(diào)試成功后,并對軟硬件進(jìn)行實驗驗證,圖10表示本采集系統(tǒng)的實物圖,中間部分為信號采集處理板,它采集晶閘管的導(dǎo)電極溫度,并通過以太網(wǎng)的方式發(fā)送給上位機(jī),上位機(jī)采用網(wǎng)絡(luò)調(diào)試助手,通過設(shè)置協(xié)議類型、IP地址和端口號進(jìn)行網(wǎng)絡(luò)連接,圖11表示實驗測試結(jié)果[10]。
圖10 采集系統(tǒng)實物圖
對基于ARM+FPGA的遠(yuǎn)程監(jiān)測系統(tǒng),從硬件和軟件兩部分進(jìn)行了研究,由于該系統(tǒng)采用了無操作系統(tǒng)的精簡 TCP/IP協(xié)議,能夠?qū)崿F(xiàn)遠(yuǎn)程監(jiān)控,且該系統(tǒng)具有成本低、占用資源少、功能完善、操作方便、易于擴(kuò)展等特點,可用于現(xiàn)場遠(yuǎn)距離測試多種數(shù)據(jù)量,并易于通過網(wǎng)絡(luò)進(jìn)行快速級聯(lián),具有較強(qiáng)的推廣價值。
圖11 上位機(jī)測試結(jié)果圖
[1]陳積明, 王智, 孫優(yōu)賢. 工業(yè)以太網(wǎng)的研究現(xiàn)狀及展望 [J]. 化工自動化及儀表, 2001, 2(28): 7-10.
[2]Stellaris LM3S9B92 microcontroller datasheet. texas instruments incorporated.
[3]Cyclone device handbook, Volume 1. Altera Corporation.
[4]邱維寶, 傅星, 鄔泳. 基于以太網(wǎng)的信號發(fā)生與采集控制系統(tǒng)的研究[J]. 電子技術(shù)應(yīng)用, 2006, 11:77-79.
[5]Adam Dunkels. Design and Implementation of the LwIP TCP/IP Stack [M]. Swiss: Swedish Institute of Computer Science, 2001
[6]張海波, 胡大可. 低成本高速率傳感器網(wǎng)絡(luò)的設(shè)計實現(xiàn) [J]. 傳感技術(shù)學(xué)報, 2010, 23(5): 732-738.
[7]范建華.TCP/IP詳解卷 1: 協(xié)議 [M]. 北京: 機(jī)械工業(yè)出版社, 2000.
[8]Douglas E. Comer. 用 TCP/IP進(jìn)行國際互聯(lián) [M].第一卷:原理協(xié)議與結(jié)構(gòu)(第 5版), 北京: 電子工業(yè)出版社, 2007.
[9]Douglas E. Comer, David L. Stevents.用 TCP/IP 進(jìn)行國際互聯(lián)[M]. 第二卷:設(shè)計實現(xiàn)與內(nèi)核:第三版.北京:電子工業(yè)出版社, 2001.
[10]李維波,饒金,賀洪. 晶閘管脈沖功率開關(guān)保護(hù)參數(shù)優(yōu)化計算及其影響特性[J]. 高電壓技術(shù), 2009,35(12): 3099-30105.