周樑 吳浩偉 姜波 陳濤
(武漢第二船舶設計研究所,武漢 430064)
本文研究了一種基于 FPGA+DSP技術的艦船監控單元。將其與斷路器等配合構成的智能化開關柜。其與傳統開關柜的主要區別在于數據處理與信息取樣、控制的通訊方式上。傳統開關柜是將系統電壓、支路電流、開關狀態量以控制電纜傳送到集中監控臺,由集中監控臺統一實現保護控制功能[1]。智能開關柜采用監控單元直接進行電流、電壓及開關狀態信息的采集,并能夠獨立進行數據處理,實現保護、控制、測量等功能,同時通過標準接口上傳。能實現數據采集與監控、事故報警、事故追憶等功能。
該監控單元安裝在智能配電柜中,不但要求多路采集大量數據,同時還要求通過通信網絡與監控臺實時通信,對控制芯片提出了很高的要求。
當前常用的控制芯片主要有三種,分別為FPGA[2]、DSP[3]及 ARM[4]。FPGA 是專用集成電路中集成度最高的一種,用戶可對內部的邏輯模塊和模塊重新配置,以實現用戶的邏輯,目前FPGA同時具有軟件編程的靈活性和 ASIC電路的快速性等優點,適合高速數字信號處理。DSP是一種集成高速乘法器,具有多組內部總線,能進行快速乘法和加法運算,具有處理精度高、處理數據量大等優勢,同時集成有各種外設接口。特別適用于數據處理和數據通信。ARM支持雙指令集,具有很好的兼容性,適用于界面以及應用程序等方面,因此該處理器主要用于與人機接口顯示和數據接口等控制方面。
綜合考慮以上控制芯片各自的優缺點,本裝置采用了DSP+FPGA雙控制器的方案。
DSP 選用 TI公司 TMS320LF28335[5~6],該芯片采用高性能的靜態 CMOS技術,低功耗設計。具有高性能的 32位 CPU。采用哈佛總線結構,實現了片內、片外尋址的統一。且芯片內部集成了多種功能模塊,其中包括 ADC,PWM,eCAP等芯片提供了多種通信接口,其中包括SPI,SCI,I2c等,且同一種通信接口的數量不止一個,只需增加外圍器件即可實現擴展功能。
FPGA選用Altera公司的超大規模可編程邏輯器件 Cyclone系列的 EP1C6PQ240[7]作為輔控制芯片,該芯片有5980個邏輯單元,嵌入式存儲塊有一列M4K塊,每個M4K塊可以組成各種存儲器,包括雙端口、單端口RAM、ROM和FIFO等,I/O單元包含一個雙向I/O緩沖器和三個寄存器,具有2個鎖相環和8個獨立系統時鐘,芯片管腳數為240個,可用管腳數為185個。
在監控單元中,大量的現場實時數據需要采集和處理,并及時、迅速地向集中監控臺傳輸,即向集中監控臺提供整個控制過程的具體數據,同時還要完成判斷處理并通過輸出模塊發送各種控制命令。其硬件結構原理參見圖1。
圖1 監控單元硬件結構圖
1) A/D芯片。該系統采用AD7865作為A/D芯片,它的主要特性有:高速14位A/D轉換器,同時采樣4個輸入通道,并具有4個采樣、保持放大器。其優點在于能夠真正實現多路信號的同步采樣,并保持各通道信號的相位關系。本系統共配置了4片AD7865,能同步采樣多達16路模擬量數據。
2) 磁隔離。所有開關量的輸入輸出均采用磁隔離技術,可有效提高抗干擾能力,本系統選擇了16片4路集成磁隔離芯片ADUM1410,使得該模塊能同時完成多達32輸入,32路輸出的數據采集。
3) FPGA主要完成數據輸入輸出控制及數據預處理功能。所有的開關量信號經過光耦輸出將送入FPGA,所有的模擬量信號經A/D芯片轉換為數字信號后也送入FPGA,因此FPGA需要向A/D芯片提供控制信號來控制A/D芯片的讀寫,所有的數據將在FPGA內進行預處理以供DSP讀取。
通過干預的不合理醫囑分析發現,中心審方藥師在重復用藥、適應癥、超說明書用藥等方面把控較好,而在溶媒用量、配伍禁忌、給藥途徑等方面把關不嚴,仍由PIVAS藥師糾正此類不合理醫囑。如萬古霉素1.5 g加入100 mL 0.9%氯化鈉注射液;多巴胺與呋塞米配伍;前列地爾注射液靜脈滴注等。雙重審方給患者用藥安全上了雙保險。
4) DSP主要完成數據處理、邏輯控制及通訊功能。由于FPGA已經將大量數據做了預處理,而且本系統中DSP與FPGA的16位地址線和16位數據線均相連,采用并行數據傳輸,因此DSP只要通過簡單的指令即可快速讀取所需要的開關量和模擬量值,為狀態監測及故障診斷功能提供基礎。
5) 數據存儲器。由于本系統具有能掉電保持要求,故本系統外擴數據存儲器采用掉電不丟失SRAM IS61LV25616。
6) CAN通信。大多數嵌有CAN控制器的控制芯片只有一個 CAN控制器,如果希望系統具有雙CAN接口,則需要外接一個CAN控制芯片,增加了硬件成本,電路結構更復雜[6~7]。而本系統使用的DSP芯片中嵌有兩個CAN控制器,因此只要將兩個CAN控制器分別外接CAN驅動器就可以實現與兩條獨立的CAN總線連接。
7) 以太網通信 本系統選用了W5100作為以太網接入芯片[8]。W5100包含了 TCP/IP、UDP等網絡協議和 DLC、MAC以太網協議。它提供多種總線,包括兩種并行總線以及SPI串行總線等接口方式。內置16KB數據緩沖雙口RAM,可快速進行數據交換。
DSP具有純軟件實現的靈活性,適用于流程復雜的算法。因此本系統利用DSP主要完成數據處理、邏輯控制及通訊功能。但是用 DSP完成FFT運算需占用大量DSP的運算時間,使整個系統的數據吞吐率降低。而FPGA資源豐富,易于組織流水和并行結構,因此利用FPGA完成所有信號的預處理,主要是進行FFT運算。
FFT實現的設計方案有順序處理、級聯處理、并行處理和陣列處理[8]。順序處理每次運算僅用一個蝶形單元,處理方式簡單,運算速度較慢。級聯處理、并行處理和陣列處理的速度較快,但占用資源較多。本設計采用改進的順序處理方案,在原有順序處理的基礎上對FFT處理過程中數據傳輸進行控制,使得該結構在繼承原有順序處理電路簡單、占用資源較少優點同時又兼有級聯處理運算速度較快的優點。采用自頂向下的方法對處理器模塊化,其結構框圖如圖2。
圖2 FFT處理器結構框圖
蝶形運算單元是整個FFT處理單元的重要部分,直接影響整個FFT單元性能。基2時間抽取的蝶形信號流程圖如圖3所示,p和q為數據序號,xm(p)和xm(q)是第m級蝶形運算的輸入,xm+1(p)和xm+1(q)是該蝶形運算的輸出,WrN為相應的旋轉因子。
圖3 第m級蝶形信號流程圖
圖3的算法表示為:
由上式看出,一個基2蝶形運算要進行1次復乘、2次復加。為了提高運算速度采用并行運算,采用 4個實數乘法器、3個實數加法器和 3個實數減法器組成。如圖4所示。設蝶形運算單元的輸入數據為 x1=x1_re+jx1_im 和x2=x2_re+jx2_im,旋轉因子為WrN=c-jd,則輸出為y1=y1_re+jy1_im和y2=y2_re+jy2_im。
存儲單元在FFT處理單元中存儲器是必不可少的單元,蝶形運算數據的輸入輸出和中間結果的存儲都要經過存儲器,圖2中存儲器A接收外部輸入數據,存儲器B是中間結果單元,除第一級蝶形運算外每級數據的輸入輸出均經過該存儲器。在兩塊存儲器和蝶形運算模塊之間加入兩個數據控制器配合工作,可以在寫入上一組中間結果的同時讀取下一組蝶形運算數據,從而提高FFT的處理速度。
圖4 蝶形運算單元
旋轉因子單元是存儲FFT運算所需的旋轉因子WrN=exp(-j2πr/N)。旋轉因子分為實部和虛部,由于它們是小于1的小數,故在設計中需將其定點化。其過程是將旋轉因子擴大214倍,取整數部分轉化為16位定點數保存。根據旋轉因子的對稱性和周期性,在利用 ROM存儲旋轉因子時,可以只存儲旋轉因子表的一部分,通過地址的改變查詢出每級蝶形運算所需的旋轉因子。
控制單元用于協調驅動各模塊,在FFT運算中具有關鍵作用。旋轉因子單元數據控制器的讀信號,存儲器A、B的讀寫信號都是由控制單元產生。控制單元具有單獨的輸入時鐘,可產生相應的控制信號。
圖5 監控單元程序流程
DSP軟件結構采取的是模塊化設計,使用C++語言編寫。程序流程如圖 5,主要完成的功能有信號檢測、數據處理、數據傳輸以及邏輯控制。因此按照功能分為以下三個模塊:數據處理模塊、狀態監測模塊、通信模塊。
數據處理模塊的主要功能為實時接收來自FPGA的電流、電壓量,通過計算轉換成相應的電壓、電流、有功功率、無功功率、功率因數及頻率等工程信息,實時接收斷路器、隔離開關的分合位置信號。
狀態監測模塊的主要功能為通過實時監測采集的模擬量、開關量的數值和狀態,與模擬量所設上限、下限等限值比較,當測量值越限時向集中監控臺發出報警,并作相應處理。當發生故障開關跳閘時將設備動作的所有信息記錄,保護信息以文件形式保存。
通信模塊主要功能為實現與集中監控臺建立聯系,對所有采集的信息數據進行匯總和綜合處理,并把各類信息上送給集中監控臺。其按功能又分為 CAN通信模塊、以太網通信模塊兩個部分。
CAN通信模塊分為三個層次,硬件抽象層文件、功能函數層文件、應用程序接口層。其中硬件抽象層文件定義了各 CAN控制器的寄存器數據格式及讀寫訪問的方法。功能函數層文件包括CAN控制器各種控制功能的實現函數和CAN總線異常中斷處理函數。應用程序接口層的文件包括3個函數。
①初始化CAN控制器,包括使能CAN模塊,CAN時鐘設置、配置CAN管腳等。②發送數據,使發送報文按協議打包或解析后在總線上傳輸,可通過本點把本設備檢測參數和狀態向 CAN網絡上上位機發送,實現遠程網絡監控和管理。③接收數據,接收上位機發送的與本節點標識符相匹配的報文來對本節點檢測和運行控制。
如圖6所示太網通信模塊分為6個子模塊:初始化模塊(主要功能為對W5100內部寄存器初始化)、創建socket模塊、網絡連接模塊、數據發送模塊、數據接收模塊、關閉socket模塊。其中socket是應用程序與網絡協議的接口,在用戶進程和網絡協議之間起到橋梁作用。
本文設計的基于 FPGA+DSP技術的監控單元,已應用在某船的配電柜中。應用結果表明該單元具有實時性高、可靠性好、通信接口豐富的特點。實現了上位機監控終端與現場設備的雙網絡遠程監控。為整個監控系統采取靈活而可靠的網絡拓撲結構提供基礎,具有很好的推廣應用價值。
圖6 以太網通信程序流程
[1] 李勇. 低壓配電開關柜智能監控單元設計[D]. 成都理工大學, 2010.
[2] 彭堅, 何渝. 基于 FPGA 的交通信息采集系統的設計與應用[J]. 計算機應用與軟件, 2011, 28(1): 82~84.
[3] 崔學深, 張建華, 肖剛. DSP技術在電力系統中的應用和硬件實現方式[J]. 現代電力, 2002, 19(2): 36~42.
[4] 崔秀芳, 喻方平, 常勇. 基于ARM的船舶現場監控模塊的設計[J]. 微計算機信息, 2007, 23(11):159,166~167.
[5] 蘇奎峰, 呂強, 鄧志東, 湯霞等. TMS320x28xxx原理與開發[M]. 北京:電子工業出版社, 2009.
[6] 樓曉春, 何麗莉. 基于DSP28335的電能質量監測儀器設計[J]. 杭州電子科技大學學報, 2010, 30(4):146~152.
[7] 張晶. 基于 USB2.0接口的數字圖像通信模塊設計[D]. 南京理工大學, 2008.
[8] 鄒依依等. W5100在DSP以太網數據通信系統中應用[J]. 工業控制計算機, 2008, 21(8): 20~21, 23.