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