摘 要: 隨著電子技術的發展,嵌入式產品的豐富,消費者對嵌入式產品的功耗、性能、穩定性和安全性等方面提出了更高的要求,為了進一步縮短新產品的開發周期,減輕開發難度,提出基于VxWorks系統與Matlab/Simulink仿真工具的嵌入式系統軟件平臺,利用PCI總線與TMS320F2812控制的嵌入式接口箱相連,擴展了開發平臺的接口,并可自動生成嵌入式C代碼以及自定義模塊封裝。最后,利用搭建的嵌入式開發平臺設計了避雷器監測系統校驗平臺,進一步證明了嵌入式開發平臺的穩定性和可靠性,并利用模型化開發技術加快了嵌入式系統的開發速度。
關鍵詞: 嵌入式系統; 模型化開發; Matlab/Simulink; DSP; 泄漏電流
中圖分類號: TN919?34 文獻標識碼: A 文章編號: 1004?373X(2016)03?0146?05
Research on embedded system and model?based development technology
SA Rina
(School of Computer and Information, Hohhot Vocational College, Hohhot 010051, China)
Abstract: With the rapid development of electronic technology and increase of the embedded products, the high requirements for power consumption, performance, stability and security of the embedded products are proposed by the customer. To shorten the development cycle of new products and reduce the development difficulty, the embedded system software platform based on VxWorks system and Matlab/Simulink simulation tool is put forward. The connection of PCI bus and embedded interface controlled by TMS320F2812 is used to expand the interface of the development platform. The embedded C code and custom module packaging are generated automatically. The check platform of lightning arrester monitoring system was designed by the established embedded development platform, and the stability and reliability of the embedded development platform were verified further. The development rate of the embedded system can be speeded up by means of the model?based development technology.
Keywords: embedded system; model?based development; Matlab/Simulink; DSP; leakage current
0 引 言
隨著電子技術的飛速發展,特別是近些年通信、計算機、消費電子一體化的趨勢日益明顯,嵌入式技術已成為一個熱點研究對象, 而隨著“3G”、“物聯網”和“云計算”等概念的提出,更為嵌入式系統的應用及發展帶來了巨大的機遇與挑戰。
為了保證市場,一個新的嵌入式產品從研發到投放市場,要求的時間將越來越短,這對傳統的嵌入式開發方式和設計模式提出了挑戰。為了更好地利用現有積累的技術,避開嵌入式系統復雜煩瑣的底層設計,盡量減少在系統設計與開發上的時間和精力的浪費,縮短開發周期,人們開始把基于模型的開發方式引入到嵌入式開發與設計中[1]。
基于模型的設計方法是一種設計復雜系統的可視化數學方法,集成了良好的規范要求、仿真設計、代碼生成和軟件測試等工具,可以方便地修改模型設計,能夠在產品設計的早期階段就可以評估產品的工作性能,發現設計缺陷并能夠及時予以糾正,避免在開發后期發現問題而造成更大損失,該方法可以帶來更低的研發成本、更短的研發周期和更高的產品質量[2]。
通過介紹Matlab/Simulink的模型化開發技術、VxWorks實時操作系統,嵌入式開發平臺的操作系統和硬件構成,以及硬件板卡的軟件程序開發等,為提高嵌入式軟件開發的效率提供了經驗和方法,利用搭建的嵌入式開發平臺進行了避雷器泄漏電流監測設備校驗平臺的開發。通過此平臺的開發,進一步說明了基于模型的設計可以加快系統開發進程,縮短開發周期。
1 Matlab/Simulink模型化開發技術
Simulink提供了交互式的可視化圖形開發環境,用戶只需在Simulink模塊庫中用鼠標拖拽模塊并進行簡單的連接操作和參數設置即可實現建模、仿真和調試。
1.1 Real?time Workshop
Real?time Workshop(RTW)是Matlab圖形化建模仿真環境Simulink的一個重要功能模塊,是基于Simulink模塊的自動代碼生成工具。RTW提供了從系統設計到硬件實現的直接途徑,使用RTW進行實時硬件的設計測試,用戶可以縮短開發周期,降低成本。利用RTW進行自動代碼生成之前,需要根據不同的目標平臺指定不同的目標語言編譯器(Target Language Compiler,TLC)文件。在TLC文件中,包含了模型在目標平臺源代碼生成時特定的規則。RTW在自動代碼生成的過程中,還需指定Makefile模板文件(*.tmf),在Makefile模板文件中定義了目標代碼的編譯環境,如編譯器的路徑、Matlab庫的路徑等。RTW會根據Makefile模板文件生成具體的Makefile文件,以提供給make工具編譯時使用。
1.2 TMS320F2812開發環境CCS IDE
為了縮短TI DSP的軟件開發周期,TI公司提供了一套集成開發環境CCS IDE,CCS提供了非常良好的用戶界面、面向窗口,具有菜單、對話框式接口,具有豐富的圖形圖標,輔之以完整的可即時訪問的幫助,使開發人員不必記憶復雜命令就能夠輕松地掌握和使用CCS開發系統。
1.3 Simulink進行DSP的模型化開發
Mathworks公司和TI公司共同開發了Matlab Link for CCS Development Tools工具包用于將Matlab和TI的DSP集成開發環境CCS以及硬件平臺直接連接起來[3],以向TMS320F2812的外部存儲器的一個固定地址循環更新數據的模型為例,介紹Matlab/Simulink下的DSP模型化開發步驟及相應配置。
(1) 根據硬件DSP目標板和所使用的仿真器,在Setup CCS中對CCS開發環境進行配置。
(2) 雙擊Matlab圖標運行Matlab,在命令窗口輸入“ccsboardinfo”。
(3) 在命令窗口輸入“Simulink”,打開Simulink模塊庫瀏覽器,利用Simulink模塊搭建模型。由于生成代碼的目標硬件是TMS320F2812,因此需要將Target Support Package TC2下的F2812eZDSP模塊添加到模型中,如圖1所示。
(4) 在Target Support Package TC2中提供了將數據向任意地址寫的模塊,如圖2所示。需在此模塊中設置目的地址和數據格式,并將需要寫的數據接至此模塊的輸入端即可。在此模型中,設置目的地址為0x00100000,數據類型為unit8。
(5) 模型搭建完成后,為了生成與目標板卡相匹配的C代碼,還需設置RTW的目標語言編譯文件(TLC),與DSP相對應的TLC文件為ccslink_ert.tlc。
(6) 設置Real?Time Workshop在build時所執行的操作。選擇“Build_and_execute”即編譯連接,生成可執行代碼并加載到目標板然后開始運行。
(7) 在CCS開發環境中打開“watch”窗口,輸入地址0x100000,如圖3所示,不斷刷新窗口,看到地址0x00100000處的值在0~15之間變化,說明自動代碼生成正確。
2 嵌入式開發平臺
嵌入式開發平臺包括上位機操作系統和下位機接口機箱兩部分,上位機操作系統運行嵌入式操作系統——VxWorks;下位機接口機箱部分可以配置控制板卡和功能板卡兩種類型的板卡,其中控制板卡是以TMS320F2812為核心的DSP板,功能卡為模擬量輸入卡,模擬量輸出卡,數字量輸入卡,數字量輸出卡四種板卡,實現信號量的輸入輸出。上位機操作系統與下位機接口箱之間通過PCI總線和系統自定義總線進行通信。
2.1 嵌入式開發平臺的操作系統
VxWorks系統是由美國風河系統(Wind River System)于20世紀80年代推出的一款嵌入式實時操作系統,系統由一個體積很小的內核以及一些可以根據需要進行定制的系統模塊組成,可以根據用戶需求進行組合的實時操作系統,其開放式結構和對工業標準的支持使開發者只需做最少的工作即可設計出有效的適合于不同用戶要求的實時操作系統。
2.2 基于PCI的FPGA開發板
Red Cyclone開發平臺基于Altera Cyclone系列FPGA和PLX PCI9054橋接芯片,技術成熟、性能穩定并且具有良好的兼容性。
本嵌入式開發平臺所使用的PCI開發板中,PCI9054的PCI總線信號直接與工控機機箱內的PCI插槽相連接,包括系統定義信號,地址數據信號,接口控制信號,仲裁信號,錯誤報告信號和中斷信號等。
PCI9054的配置接口信號直接與E2PROM芯片的93LC56相連,在系統剛上電或者復位時通過E2PROM直接對PCI9054的寄存器進行初始化配置,主要包括設備標識、狀態寄存器、控制寄存器、中斷寄存器、局部總線上設備的地址、空間大小等。PCI9054端的本地總線信號與開發板上的FPGA相連,包括地址總線、數據總線字節使能信號,讀寫控制信號及其他的控制信號。PCI9054設有兩個專門的引腳(MODE0,MODE1)用于配置工作模式,在本開發板中,工作模式設置為C模式,見表1。
基于PCI的FPGA開發板中使用Altera公司出產的Cyclone系列EP1C6Q240 FPGA芯片。該FPGA芯片具有5 980個邏輯單元(約15萬門)和92 160位片內存儲器[4]。基于PCI的FPGA開發板結構如圖4所示。
2.3 以TMS320F2812為核心的DSP開發平臺
TMS320C28x系列是TI公司最新推出的DSP芯片, 它是目前國際市場上最先進、功能最強大的32位定點DSP芯片,最高處理能力可達到40 MIPS。
本嵌入式開發平臺共有模擬量輸入卡,模擬量輸出卡,數字量輸入卡,數字量輸出卡四種板卡。模擬量輸入卡和模擬量輸出卡全部采用多芯片架構實現,每個板卡上由一個FPGA芯片實現多個轉換芯片的功能控制。 模擬量輸入卡利用8個ADS8361作為模/數轉換芯片。ADS8361為 16位雙通道差分同步采樣模/數轉換器,最高采樣率為500 Kb/s,每個模擬量輸入卡具有16個相互獨立的通道輸入,可以實現16路模擬量的同步采樣[4]。模擬量輸入卡的架構如圖5所示。
模擬量輸出卡利用8個AD5545作為數/模轉換芯片。AD5545為16位雙通道數/模轉換器,最高更新率為500 Kb/s,每個模擬量輸出卡具有16個相互獨立的通道輸出,可以實現16路模擬量的輸出。
3 嵌入式開發平臺軟件設計
3.1 FPGA內部邏輯設計流程
FPGA主要實現PLX9054與TMS320F2812之間的數據交互,FPGA采用 “Top?down”方式進行開發,其內部的設計電路功能區分如圖6所示,包含以下三個部分:PCI控制模塊,雙口RAM模塊,DSP控制模塊。其中DSP控制模塊又利用“Top?down”分為FIFO模塊、讀寫控制模塊和中斷控制模塊三部分。
3.2 DSP+FPGA接口程序設計
MS320F2812的XINTF接口用于實現TMS320F2812對擴展的存儲器、外設及其他接口的連接。該接口不僅具有獨立的數據總線和程序總線,而且還具有各種訪問擴展存儲器或外設所需要的控制信號,利用這些控制信號,可以方便地實現TMS320F2812對外部數據的傳輸。TMS320F2812除了可以進行16位或32位格式的數據訪問,還支持利用特殊的字節訪問指令進行一個字的高字節訪問或低字節訪問。
TMS320F2812芯片不提供外部總線對其內部空間的直接讀/寫操作,因此,要實現外部總線對TMS320F2812的寄存器或者內部數據空間的讀/寫只能通過中斷或者查詢的方式讓TMS320F2812將相應的數據寫入到外部存儲器中或者將數據讀入到內部存儲空間內,但是查詢方式系統效率較低,因此采用中斷方式。
3.3 功能卡程序的封裝與驗證
利用Matlab/Simulink中的Matlab Link for CCS Development Tools可以方便地實現DSP的模型化開發。在Simulink模塊瀏覽器下找到Target Support Package for TC2,點擊C281x DSP Chip Support,在右側窗口中可以看到Mathworks已經編寫好的TMS320F2812的外設模塊,在使用某個外設功能時,只需將相應的模塊添加到Simulink模型中即可,相應的參數設置可以參考各個模塊的幫助文檔。
4 嵌入式開發平臺的應用實例
氧化鋅避雷器是20世紀70年代發展起來的一種新型避雷器,它主要由氧化鋅壓敏電阻構成。在運行過程中,氧化鋅避雷器會因老化和受潮等原因的影響,在各種環境下運行會出現一些故障,近年來提出了監測氧化鋅避雷器運行狀況的要求,監測氧化鋅避雷器運行狀況,可以在不停電情況下隨時了解避雷器的性能。本文提出一個監測氧化鋅避雷器設備的校驗平臺用來鑒定氧化鋅避雷器監測設備的優劣。開發的嵌入式校驗平臺可以通過上位機軟件設置泄漏電流的大小,通過專用的端子提供給氧化鋅避雷器監測裝置進行檢測,通過對比氧化鋅避雷器監測裝置的檢測結果和上位機的自檢值,可以檢驗待測避雷器監測裝置的性能。
4.1 避雷器泄漏電流的設計與實現
根據泄漏電流的相關理論[5?6]可知,將泄漏電流與全電壓的關系進行如下整理:
式中:[AC]為容性電流幅值;[ω]為工頻頻率;[C]為避雷器的實際電容值;[AR]為阻性電流幅值。因為在一般情況下,阻性電流幅值為容性電流幅值的5%~20%。在本設計中,設置阻性電流的幅值為容性電流幅值的10%,則[AR=0.1?AC,]同時假設[C=600×10-12 ]F,則式(3)和式(4)變為:
由于工頻頻率[ω]和避雷器的電容值都是已定的,因此在上位機端只要設置一下容性電流的幅值即可得到全電流[i]和加在避雷器上的參考電壓[u。]根據以上內容,在Matlab/Simulink下可以搭建相應的避雷器泄漏電流模型,該模型可以實現全電流的模擬和加在避雷器上參考電壓的模擬。模型如圖7所示。
設置容性電流幅值為20 mA,產生的全電流和阻性電流如圖8所示。
4.2 阻性電流提取算法的設計與實現
阻性電流提取算法步驟如下:
第一步:利用A/D采集參考電壓[U]信號和全電流信號[I;]
第二步:對參考電壓[U]信號進行FFT運算,得到[Uk]和[αk;]
第三步:利用[Uk]和[αk]還原出[iC1(t);]
第四步:根據公式[C=0TiC1(t)i(t)dt0Ti2C1(t)dt]得到避雷器實際的電容值[C;]
第五步:利用公式[iR(t)=i(t)-CiC1(t)]得到泄漏電流中的阻性電流。
根據以上介紹利用Matlab/Simulink搭建計算模型,如圖9所示。
其中,AnalogInputL模塊是A/D采集模塊,用于采集外部的參考電壓信號[U]和全電流信號[I;]FFT模塊用于對參考電壓信號[U]進行快速傅里葉變換,變換的結果輸入DataProcess模塊,此模塊是自己封裝的模塊,用于實現算法步驟的第三至第五步,計算出阻性電流后,通過TCP/IP模塊發送到上位機界面進行檢測結果的顯示。利用信號產生模型和阻性電流提取算法模型并進行Matlab/Simulink仿真,得到的結果如圖10所示。
從圖10可以看出,利用本文介紹的阻性電流提取算法,可以提取出全電流中的阻性電流部分成分,并且阻性電流的設置值與算法最終計算出的結果相差很小,最大誤差未超過2×10-6 A。
5 結 論
本文研究了嵌入式系統的模型化開發技術,并根據相關內容搭建了嵌入式系統開發平臺。該平臺利用Maltab/Simulink進行模型化開發,并將嵌入式機箱的多種功能卡的驅動程序封裝成為模塊提供給開發人員使用。同時,本文實現了上位機X86架構處理器與下位機處理器之間通過PCI的數據通信,為實驗室下一步有關異構多處理器相關課題的研究打下了基礎。
參考文獻
[1] 齊振恒,孫中杰,李濤.RTW嵌入式代碼自動生成機制與代碼結構分析[J].計算機測量與控制,2010,18(3):639?642.
[2] 章小強.嵌入式無線通信平臺設計[D].哈爾濱:哈爾濱工程大學,2009.
[3] 羅琳玲.航跡融合系統的研究與實現[D].成都:電子科技大學,2009.
[4] 鄭健,張國慶,田悅新,等.氧化鋅避雷器泄漏電流在線監測技術綜述[J].繼電器,2000,28(9):7?9.
[5] 鄧維,劉衛東,傅志揚,等.MOA泄漏電流網絡化在線監測系統[J].高電壓技術,2003,29(9):22?23.
[6] PINCETI P, GIANNETTONI M. A simplified model for zinc oxide surge arrester [J]. IEEE Transactions on Power Delivery, 1999, 14(2): 393?398.