俞慶,姜文剛
(江蘇科技大學(xué) 電子信息學(xué)院,江蘇 鎮(zhèn)江 212003)
船舶電網(wǎng)屬于微電網(wǎng),其電站容量小,電壓變化頻繁[1,2],為掌握船舶電網(wǎng)實(shí)時(shí)運(yùn)行狀況,分析船舶電網(wǎng)電能質(zhì)量[1,3],實(shí)現(xiàn)船電設(shè)備及配電支路的功率監(jiān)測(cè)[4,5],保證全船生產(chǎn)和生活的用電需要,故需要對(duì)船舶電網(wǎng)展開實(shí)時(shí)監(jiān)測(cè)。
本文設(shè)計(jì)了一種基于FPGA和ARM的船舶電網(wǎng)參數(shù)監(jiān)測(cè)裝置。該裝置將FPGA的并行運(yùn)算能力和ARM芯片的多任務(wù)處理能力相結(jié)合,可以實(shí)時(shí)在線監(jiān)測(cè)電網(wǎng)電壓、電流、頻率、30次內(nèi)的電壓和電流諧波、有功功率、無功功率等電力參數(shù),對(duì)進(jìn)一步提高船舶電網(wǎng)的自動(dòng)化水平、提高供電的安全性和可靠性具有一定意義。
監(jiān)測(cè)裝置主要由信號(hào)調(diào)理電路、過零檢測(cè)電路、鎖相倍頻電路、模數(shù)轉(zhuǎn)換器、FPGA處理器、ARM處理器以及相關(guān)外圍電路構(gòu)成。監(jiān)測(cè)裝置的核心是FPGA和ARM處理器,兩者各司其職,F(xiàn)PAG實(shí)現(xiàn)數(shù)據(jù)采集和諧波計(jì)算,ARM處理器則完成通訊、顯示、人機(jī)交互等任務(wù)層的功能。諧波參數(shù)的計(jì)算采用了目前主流的快速傅里葉變換算法(FFT)實(shí)現(xiàn)[6,7],不同的是該監(jiān)測(cè)裝置在FPGA內(nèi)部建立了一個(gè)硬件FFT處理機(jī)。該處理機(jī)在50 MHz的時(shí)鐘下,完成一次512點(diǎn)的FFT運(yùn)算只需65.7 μs,因而可實(shí)時(shí)在線計(jì)算六路電網(wǎng)信號(hào)的諧波。采用FPGA+ARM雙處理器的結(jié)構(gòu)比采用單處理器如ARM或DSP擁有更快的處理速度,提高了檢測(cè)裝置的實(shí)時(shí)性。監(jiān)測(cè)裝置的總體結(jié)構(gòu)如圖1所示。
圖1 監(jiān)測(cè)裝置總體結(jié)構(gòu)框圖
監(jiān)測(cè)裝置設(shè)計(jì)了RS232接口模塊和CAN接口模塊,可以同時(shí)用于本地通訊和組建CAN網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程通訊。另外監(jiān)測(cè)裝置擴(kuò)展了溫濕度傳感器、開關(guān)量輸入輸出模塊,分別可用于環(huán)境溫濕度的監(jiān)測(cè),船舶配電板開關(guān)量信號(hào)的輸入以及船舶配電板開關(guān)量信號(hào)的控制。
該部分電路主要功能是將互感器輸出的交流信號(hào)轉(zhuǎn)換成ADS7864可以接受的電壓范圍,并進(jìn)行抗混疊濾波,單路信號(hào)調(diào)理電路如圖2所示。
電路從左到右依次分為電流采樣、抗混疊濾波、電平提升三個(gè)部分。文中使用的電壓互感器型號(hào)為TV16E,電流互感器型號(hào)為TA1100,二者將電網(wǎng)電壓和電流均線性轉(zhuǎn)換成電流信號(hào)輸出,故需先將該電流信號(hào)通過取樣電阻轉(zhuǎn)換為電壓信號(hào)。在設(shè)計(jì)硬件時(shí),文中采用了監(jiān)測(cè)裝置與互感器分離的設(shè)計(jì),這樣不僅隔開了強(qiáng)電與弱電,減少了干擾,并且可以針對(duì)不同容量的電網(wǎng),可方便更換不同型號(hào)的互感器。
圖2 信號(hào)調(diào)理電路
圖中MAX291對(duì)采樣前的信號(hào)進(jìn)行抗混疊濾波,防止使用FFT算法計(jì)算諧波時(shí)出現(xiàn)頻譜混疊。MAX291是一種基于開關(guān)電容原理的八階巴特沃斯型低通濾波器,其3dB截止頻率可在0.1~25kHz之間選擇,且擁有陡斜的過渡帶和很高平坦度的通帶[8]。MAX291只需一個(gè)時(shí)鐘驅(qū)動(dòng)電路工作,該時(shí)鐘的頻率應(yīng)為3dB截止頻率的100倍。
圖2右端部分電路為電平提升電路。由運(yùn)放的虛短、虛斷特性可以計(jì)算出該部分電路的輸出為。根據(jù)圖中參數(shù)即可得UAS=Ui+Vref,其中Ui為濾波器輸出電壓,Vref為2.5 V參考電壓,故模數(shù)轉(zhuǎn)換器可接受-2.5~+2.5 V的雙極性電壓輸入。
考慮到三相電網(wǎng)的缺相可能會(huì)造成采樣觸發(fā)信號(hào)丟失,使監(jiān)測(cè)裝置無法工作,故將電網(wǎng)三相電壓信號(hào)疊加,再對(duì)疊加后的信號(hào)進(jìn)行過零檢測(cè)。
圖3 過零檢測(cè)電路
由圖3可知,U4的輸出電壓為Uo=UA+UB-UC,對(duì)于三相電網(wǎng)有UA+UB+UC=0,故Uo=-2UC,即輸出信號(hào)的頻率與電網(wǎng)信號(hào)的頻率是一致的。根據(jù)三相電網(wǎng)的矢量運(yùn)算規(guī)則,進(jìn)一步可以看出無論缺哪一相或者哪兩相,Uo輸出信號(hào)的頻率與電網(wǎng)頻率均保持一致。所以即使在缺相的情況下,該電路均能產(chǎn)生觸發(fā)信號(hào),保證了監(jiān)測(cè)裝置的可靠運(yùn)行。U4的輸出經(jīng)比較器和光耦電路,輸出0~5 V的方波信號(hào),作為鎖相倍頻電路的輸入。
在使用FFT算法計(jì)算諧波時(shí),為了減少頻譜泄露,提高檢測(cè)精度,需要對(duì)電網(wǎng)信號(hào)進(jìn)行同步采樣。實(shí)現(xiàn)同步采樣最方便的方法是使用硬件鎖相環(huán)對(duì)電網(wǎng)信號(hào)進(jìn)行倍頻,產(chǎn)生同步于電網(wǎng)信號(hào)的采樣觸發(fā)信號(hào),圖4的電路即實(shí)現(xiàn)了該功能。
過零比較電路產(chǎn)生的方波信號(hào)輸出到由CD4046和CD4020構(gòu)成的鎖相倍頻電路的輸入端,而鎖相倍頻電路的輸出是與電網(wǎng)頻率同步的倍頻信號(hào),用以觸發(fā)AD同步采樣。這里鎖相倍頻電路的輸出信號(hào)沒有直接連接到模數(shù)轉(zhuǎn)換器的采樣觸發(fā)引腳,而是輸入到FPGA,由FPGA控制其完成數(shù)據(jù)采集。
圖4 鎖相倍頻電路
采樣多路信號(hào)大多是通過模擬開關(guān)公用一個(gè)AD轉(zhuǎn)換器,分時(shí)對(duì)各路信號(hào)進(jìn)行采樣和轉(zhuǎn)換。這樣不僅電路復(fù)雜,而且難以避免采樣的孔徑時(shí)間以及器件間的影響引起的誤差。因此該監(jiān)測(cè)裝置選用了可以同步采樣六個(gè)通道信號(hào)的模數(shù)轉(zhuǎn)換器——ADS7864,在硬件上杜絕了分時(shí)采樣造成各相信號(hào)之間不同步的問題,因而該器件非常適合于電機(jī)、三相電網(wǎng)的監(jiān)控[9]。
ADS7864的工作電源分為模擬電源和數(shù)字電源,為減少轉(zhuǎn)換噪聲,提高轉(zhuǎn)換精度,模擬電源和數(shù)字電源需單點(diǎn)共地。ADS7864數(shù)字電源為5V,而FPGA的IO輸出電壓最高為3.3 V,為避免使用電平轉(zhuǎn)換芯片,將AD輸出給FPGA的信號(hào)串入470 ?的限流電阻,防止損壞FPGA端口,同時(shí)FPGA經(jīng)過100 ?電阻將相關(guān)信號(hào)輸出給AD芯片。經(jīng)樣機(jī)實(shí)際驗(yàn)證,電路工作正確可靠。
圖5 FPGA電路圖
圖5顯示了FPGA內(nèi)部需要實(shí)現(xiàn)的功能框圖。根據(jù)ADS7864工作時(shí)序所設(shè)計(jì)的AD采樣控制器,在倍頻信號(hào)的觸發(fā)下控制AD芯片完成三相電壓和三相電流六個(gè)電網(wǎng)信號(hào)數(shù)據(jù)的采集任務(wù)。傳統(tǒng)上采樣控制是基于微處理器的中斷方式實(shí)現(xiàn)的,由于進(jìn)入中斷服務(wù)程序時(shí)間的不確定,會(huì)造成采樣間隔的微小變化,并且需要不停地打斷處理器原有程序的執(zhí)行,降低了程序的執(zhí)行效率。該監(jiān)測(cè)裝置使用FPGA以硬件的方式控制AD采樣,相對(duì)于傳統(tǒng)方式,可以做到嚴(yán)格的實(shí)時(shí)采樣,解放了后級(jí)處理器,使其專注于完成更高級(jí)的系統(tǒng)任務(wù),大大提高了監(jiān)測(cè)裝置的實(shí)時(shí)性。
在內(nèi)部讀寫控制邏輯模塊的協(xié)調(diào)和控制下,通過AD采集到的數(shù)據(jù)被寫入到FPGA內(nèi)部定制的輸入數(shù)據(jù)雙口RAM中,同時(shí)FFT處理機(jī)從該RAM中讀取數(shù)據(jù),經(jīng)過FFT處理機(jī)運(yùn)算后,結(jié)果數(shù)據(jù)再寫入到輸出數(shù)據(jù)雙口RAM中,以供后繼的ARM處理器讀取。另外采樣到的原始數(shù)據(jù)也會(huì)通過一個(gè)數(shù)據(jù)通道傳送給輸出數(shù)據(jù)雙口RAM。
ARM處理器通過其特有的靜態(tài)存儲(chǔ)器控制器(FSMC)接口,以總線的方式訪問輸出數(shù)據(jù)雙口RAM。這種方式相對(duì)使用基于程序控制普通IO口模擬總線信號(hào)讀寫數(shù)據(jù)的方式要高效得多。圖中FSMC_NE3、FSMC_NWE、FSMC_NOE、FSMC_A[0..12]、FSMC_D[0..15]組成了FSMC接口的信號(hào)線。DataRdy作為一個(gè)輸出信號(hào),用以指示FPGA內(nèi)部是否有已經(jīng)處理好的數(shù)據(jù),該信號(hào)連接到ARM處理器的外部中斷引腳。
監(jiān)測(cè)裝置選用了一款Cortex-M3內(nèi)核的ARM芯片——STM32F103ZET6。該處理器最高可工作在72 MHz的主頻下,同時(shí)內(nèi)部擁有512KB的Flash和64KB的RAM。除此之外,處理器內(nèi)部還集成了多達(dá)5個(gè)USART控制器、一個(gè)bxCAN控制器、一個(gè)全速的USB2.0 接口、3個(gè)SPI接口、2個(gè)I2C接口以及AD、DA等豐富的外設(shè)[10],使其滿足工業(yè)領(lǐng)域的一般應(yīng)用需要。
監(jiān)測(cè)裝置設(shè)計(jì)了RS232和CAN兩種通訊接口。RS232接口主要用于本地通訊,而CAN接口則用于遠(yuǎn)程監(jiān)控。船舶上CAN總線是一種使用非常廣泛的現(xiàn)場(chǎng)總線[11,12],故監(jiān)測(cè)裝置選擇了CAN總線作為遠(yuǎn)程通訊方式。STM32F103ZET6內(nèi)部已經(jīng)集成了支持CAN2.0A和CAN2.0B協(xié)議的bxCAN控制器,因此要實(shí)現(xiàn)CAN通訊,只需再外接一個(gè)CAN收發(fā)器??紤]到需要工作在3.3V電壓下,這里選用了與常用的PCA82C250引腳兼容的VP230來實(shí)現(xiàn)CAN收發(fā)器的功能。
除此之外,監(jiān)測(cè)裝置還有電源模塊、LCD接口電路、溫濕度傳感器電路、開關(guān)量輸入、開關(guān)量輸出、用戶按鍵輸入、JTAG下載等電路模塊,在此不再做一一介紹。
監(jiān)測(cè)裝置的程序包含F(xiàn)PGA程序和ARM程序。FPGA程序的開發(fā)是在ISE10.1集成開發(fā)環(huán)境下,使用VHDL硬件描述語言實(shí)現(xiàn)的。程序分為AD采樣控制器模塊、FFT處理機(jī)模塊、雙口RAM讀寫控制模塊以及協(xié)調(diào)這些模塊工作的控制邏輯模塊,這些電路模塊在系統(tǒng)時(shí)鐘的作用下,并行工作,大大提高了監(jiān)測(cè)裝置的實(shí)時(shí)性。
FPGA采集到的原始數(shù)據(jù)以及FFT運(yùn)算結(jié)果以中斷的方式通知ARM處理器讀取,以實(shí)時(shí)計(jì)算電壓電流有效值、各次諧波幅值、電網(wǎng)頻率、有功功率、無功功率、功率因數(shù)等測(cè)量參數(shù)。所得結(jié)果通過CAN總線發(fā)送到監(jiān)控主機(jī),同時(shí)也可在本地液晶屏上實(shí)時(shí)顯示。ARM處理器工作在任務(wù)層,其程序結(jié)構(gòu)總體上劃分為設(shè)置功能模塊、測(cè)量功能模塊,分析功能模塊、統(tǒng)計(jì)功能模塊,通訊模塊以及前臺(tái)中斷程序模塊,各大模塊又由若干子模塊構(gòu)成。圖6是ARM處理器的程序結(jié)構(gòu)圖。
圖6 ARM處理器程序結(jié)構(gòu)圖
文本詳細(xì)介紹了采用FPGA和ARM雙處理器技術(shù)的一種船舶電網(wǎng)參數(shù)監(jiān)測(cè)與分析裝置的設(shè)計(jì)與實(shí)現(xiàn)。基于該監(jiān)測(cè)裝置,可以實(shí)時(shí)在線監(jiān)測(cè)船舶電力系統(tǒng)三相電網(wǎng)的電壓、電流、頻率、諧波、有功功率、無功功率等電力參數(shù),滿足船舶電網(wǎng)的實(shí)時(shí)監(jiān)測(cè)需要,為生產(chǎn)和生活用電提供保障。
[1] 壽海明, 冀路明, 回志澎. 船舶電力系統(tǒng)的電能質(zhì)量問題[J]. 船電技術(shù), 2006,26(6): 19-21.
[2] 許曉彥, 何敏, 吳衛(wèi)民. 船舶電力推進(jìn)系統(tǒng)電壓質(zhì)量監(jiān)測(cè)研究[J]. 儀器儀表學(xué)報(bào), 2010,31(8): 155-158.
[3] 許曉彥, 石晴晴. 電力推進(jìn)船舶電網(wǎng)提高電能質(zhì)量方法研究[J]. 電氣技術(shù), 2010,8: 54-57.
[4] 龔喜文, 鄭元璋, 石林龍. 船舶PMS控制器設(shè)計(jì)及關(guān)鍵技術(shù)研究[J]. 上海船舶運(yùn)輸科學(xué)研究所學(xué)報(bào),2010, 33(2): 83-87.
[5] 李建. 基于ARM的能量管理系統(tǒng)顯示終端[J]. 上海船舶運(yùn)輸科學(xué)研究所學(xué)報(bào), 2008,31(1): 35-44.
[6] 介海民, 鄢圣茂, 宋立忠等基于DSP的船舶電力監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J]. 艦船電子工程, 2007,27(2): 186-187.
[7] 周襟,徐正喜,姜波等. 一種新型多路三相無中線電力參數(shù)測(cè)量裝置[J]. 船電技術(shù), 2009,29: 34-38.
[8] MAX291數(shù) 據(jù) 手 冊(cè). [EB/OL]. http: //datasheets.maximintegrated. com/en/ds/MAX291-MAX296. pdf
[9] ADS7864數(shù)據(jù)手冊(cè). [EB/OL]. http: //www. ti. com.cn/cn/lit/ds/sbas141a/sbas141a. pdf
[10] STM32F103ZET6數(shù)據(jù)手冊(cè). [EB/OL]. http: //www.st.com/internet/com/TECHNICAL_RESOURCES/TECH NICAL_LITERA-TURE/DATASHEET/CD00191185.pdf
[11] 楊澤宇, 蔡冬林. 基于CAN總線機(jī)艙智能監(jiān)控儀表的設(shè)計(jì)[J]. 中國(guó)造船, 2009,50(4): 135-140.
[12] 黃瑋. 基于CAN總線技術(shù)的機(jī)艙報(bào)警系統(tǒng)[J]. 儀表技術(shù), 2009,9: 58-59.