999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于RTW的驅動代碼快速生成技術研究

2016-09-26 07:20:27馮輝宗蔣建春
計算機應用與軟件 2016年3期
關鍵詞:模型設計

馮輝宗 朱 澎 蔣建春

(重慶郵電大學重慶高校汽車電子與嵌入式系統工程研究中心 重慶 400065)

?

基于RTW的驅動代碼快速生成技術研究

馮輝宗朱澎蔣建春

(重慶郵電大學重慶高校汽車電子與嵌入式系統工程研究中心重慶 400065)

雖然基于模型的設計逐步取代基于文本規范的傳統的嵌入式軟件開發模式,但是目前RTW(Real-TimeWorkshop)代碼生成工具僅僅將控制算法模型自動轉換為源代碼,對于實時系統的開發來說,目標芯片的驅動代碼還需要用戶手動編寫,然后添加到控制算法的模型源代碼中。針對上述問題,提出基于RTW的驅動代碼快速生成技術,它能有效地實現在生成代碼的同時將驅動程序嵌入到控制模型的源代碼中,真正實現由仿真模型到目標芯片應用程序的代碼自動生成。最后以汽車電子主流芯片MPC5634的代碼生成為例,結果表明了該技術的實用性和高效性。

實時工作間驅動代碼生成快速原型

0 引 言

日漸復雜的電控系統的需求對傳統的開發模式提出了挑戰,催生了快速控制原型的開發方法。它的基本原理是利用快速原型控制器硬件來代替產品的控制器硬件,在建模仿真平臺上搭建并修改系統模型,通過自動代碼生成工具自動生成模型源代碼并將其經過編譯鏈接后下載到快速原型控制器中,進行算法仿真和驗證,快速原型技術能縮短研發周期,降低研發成本,提高電控系統的質量。自動代碼生成技術是快速原型開發中的關鍵環節,控制模型源代碼通過代碼生成工具自動生成,無需手動編寫系統的控制程序,雖然目前成熟的技術是利用RTW工具自動生成控制模型源代碼[1],但是對于實時系統的開發來說,用來與目標芯片展開通信的設備驅動模塊程序還需要用戶手動編寫,然后添加到控制算法的模型源代碼中,這樣勢必導致控制系統的開發[2]、調試及測試難度大以及控制算法維護成本高。針對這一問題,本文提出一種驅動代碼快速生成的方法,在RTW程序創建過程中,將驅動代碼嵌入到算法模型源代碼中,真正實現電控系統從仿真模型到應用程序的一步生成[8]。

1 RTW體系架構

圖1 RTW體系架構

RTW是一個開放式體系架構,它所生成的代碼支持多種不同的操作系統和目標芯片。許多方式都能實現配置和豐富RTW功能的目的,RTW的體系架構如圖1所示。

RTW的程序創建過程[3]包括:分析Simulink模型、使用目標語言編譯器自動生成模型源代碼、編譯鏈接源代碼。如圖1所示,模型分析階段將模型框圖轉換為中間描述文件model.rtw,目標語言編譯器會根據中間描述文件來轉換C代碼,由系統tlc(targetlanguagecompiler)文件來控制整個轉換過程,對于模型中的模塊,會根據模塊對應的tlc文件來生成相應的C代碼。RTW支持將用戶自行編寫的S函數模塊加入Simulink模型,從而在RTW的程序創建過程中將自定義的模塊程序嵌入到Simulink的模型源代碼中,在編譯鏈接階段,創建訪問實例控制編譯器執行。

2 驅動代碼快速生成技術

在RTW的基礎上,為了實現驅動代碼快速生成,須完成兩方面的工作,針對特定目標硬件設計它的目標系統、針對各驅動函數接口設計設備驅動模塊,總體方案流程如圖2所示。

圖2 總體方案流程圖

2.1實時目標系統設計

實時目標系統用于配置RTW的程序創建過程,它主要包括三部分:系統目標文件、腳本文件及Hook文件。

1) 系統目標文件用于設置代碼生成的參數及目標硬件相關的專用數據。

該文件由四部分組成:瀏覽器注釋行、tlc配置變量、目標語言編譯器程序的入口點、RTW_OPTIONS部分。瀏覽器注釋行為系統目標瀏覽器和程序的創建過程提供了必要的信息,tlc配置變量部分配置了影響代碼生成過程的tlc全局變量,入口點允許修改從而調用自己的tlc文件,RTW_OPTIONS部分定義了rtwoptions結構體數組和rtwgensettings結構體,rtwoptions結構體數組控制RTW選項卡中的顯示效果,rtwgensettins結構體存放寫入中間文件中的信息,同時聲明程序創建過程中的其他設置。

2) 腳本文件用于創建訪問實例,通過COM(ComponentObjectModel)組件[4]在MATLAB中實現對編譯器的操作。為了在模型代碼生成完畢后,指定編譯器對其進行編譯鏈接操作,腳本文件需要實現的功能有:復制編譯器文件夾到模型源代碼文件夾中、在工程中添加模型源代碼、編譯目標工程文件。

3)Hook文件的設計是實時目標系統設計的重要環節,用于在代碼生成過程中調用腳本文件將自動生成的模型源代碼鏈接到編譯器中,經過編譯鏈接下載到目標板中執行。Hook文件的執行分為六個階段,貫穿了整個RTW的程序創建過程,分別是:

①entry階段開始RTW的程序創建過程,檢查模型中的各模塊;②before_tlc階段生成模型的中間描述文件,同時RTW調用目標語言編譯器TLC自動生成模型源代碼;③after_tlc階段自動生成創建目錄的信息文件,并將其存放到創建的文件夾中;④before_make階段生成程序創建過程必須的庫文件;⑤after_make階段更新創建信息對象;⑥exit階段根據腳本文件com組件調用編譯器對模型源代碼進行編譯鏈接及下載。前五個階段都可以由RTW自動執行,只有exit階段的執行是需要設計的。

為了減少RTW程序創建過程的風險,需要將定制的目標硬件的目標系統存放在一個單獨的文件夾中,并將其添加到MATLAB的工作路徑。

2.2設備驅動模塊設計

設備驅動模塊的設計是實現驅動代碼快速生成的關鍵,設備驅動模塊的功能是在RTW程序創建過程中將驅動程序內嵌到模型源代碼中,其中生成的驅動模塊程序與模塊tlc文件有關,模型源代碼的功能與原始的目標硬件驅動程序有關。驅動模塊的設計包括以下階段:將目標硬件驅動程序封裝成靜態庫、根據模塊參數及輸入輸出端口數來設計模塊的S函數[5],并對其進行封裝和加入Simulink模塊庫,通過編寫S-Function使得在RTW的程序創建過程中能將自定義的模塊程序嵌入到模型源代碼中、設計模塊tlc文件用于定制模塊程序,tlc文件通過獲取模塊中的參數值來定制驅動程序并將其嵌入到自動生成的模型源代碼中,全程不需要人為對代碼做任何修改,如果不設計模塊tlc文件,創建的S函數模塊只能用于仿真而不能用于生成代碼。

以MPC5634的模數轉換模塊和通用定時器模塊為例,介紹驅動模塊設計方法。

模數轉換驅動模塊的設計分成兩步:① 設計S-function,S-Function通常由定義與包含、回調函數、Simulink/RTW接口三部分組成。定義與包含和最后的接口部分是固定的,不同特征模塊的差異體現在回調函數中。該模塊無需設置輸入端口,設置一個輸出端口,用于將轉換結果傳遞給下一級模塊,另外設置兩個參數,分別用于獲取通道號和轉換精度。② 設計模塊tlc文件,在程序創建過程中獲取模塊參數,并對指定通道進行模數轉換,最后將結果傳遞給下一級模塊。在tlc文件中設計各個函數實現需要的功能。模數轉換模塊tlc文件中包含四個函數:BlockTypeSetup實現符合標準的原型聲明;Start函數用來實現Adc_Init并添加到模型的初始化函數initialize中;Outputs函數獲取模塊通道號和轉換精度進行轉換且把轉換結果傳給下一模塊,最后把代碼添加到自動生成的模型step函數中;Terminate函數中的代碼在經過程序創建過程后會存放到模型的terminate函數中。

通用定時器(GPT)用來實現系統和應用軟件的定時功能,MPC5634的GPT模塊包含一個32位的增量計數器和四個32位的比較通道,每個比較通道都有一個單獨的中斷源,因此MPC5634的GPT模塊由四路GPT所組成。通用定時器驅動模塊的設計分成兩步:① 設計S-function,該模塊需要設置一個輸出端口,該端口用來連接函數調用子系統(Function-Call)模塊,每個定時周期內執行一次該Function-Call模塊,同時還需要設置三個參數實現GPT模塊的定時功能,這三個參數分別為:GPT通道、定時周期和模塊分頻值。為了允許連接Function-Call模塊,需要在S-Function中對其進行相應的設置,GPT模塊沒有輸入端口,為了保證仿真結果的正確性,必須設置模塊的采樣時間為無窮大。② 設計模塊tlc文件,在程序創建過程中獲取模塊通道號、定時周期和預分頻值,執行GPT模塊的定時功能,每個定時周期執行一次GPT中斷處理程序,用于調用Fucntion-Call模塊中自動生成的代碼。在tlc文件中設計各個函數實現需要的功能,通用定時器模塊tlc文件包含三個函數:函數BlockTypeSetup和函數Start實現的功能跟模數轉換模塊類似,進行聲明和初始化;Outputs函數用來將Fucntion-Call模塊中生成的代碼添加到GPT的任務函數中,然后再將該任務函數創建在RTW自動生成的源文件中。由于涉及到定時器中斷,必須設計中斷函數tlc文件,其主要功能是在中斷函數中調用GPT的任務函數,具體操作如下:檢查Simuink模塊中的GPT模塊,獲取通道號;根據模塊通道號,生成相應的中斷函數;在主函數中裝載中斷函數。

需要注意的是,上述模塊tlc文件必須和對應的模塊S函數文件同名。

3 MPC5634芯片驅動代碼快速生成實例驗證

MPC5634微處理器因其優越的性能被汽車電子領域、航空航天等高端嵌入式控制領域廣泛使用。對驅動代碼快速生成技術進行功能驗證及實際應用實例測試,將其應用于MPC5634芯片模數轉換模塊和通用定時器模塊等驅動程序的開發,設計功能驗證實例通過RTW程序創建過程之后能夠自動后臺調用CodeWarrior編譯器對所生成的模型源代碼進行編譯鏈接,下載到目標板中,驗證驅動代碼的功能正確性[6]。

首先按上述方法設計MPC5634芯片的實時目標系統,其中腳本文件調用的是CodeWarrior編譯器,然后分別開發各功能模塊。MPC5634硬件驅動程序靜態庫是已有的。將驅動模塊加入Simulink模塊庫,用示波器、下載器、開發板搭建好硬件平臺,并創建如圖3所示的功能驗證實例模型。

圖3 驗證模型,其中K=0.0001

通過RTW生成模型源代碼,經過自動編譯鏈接下載到目標板MPC5634中之后,對其進行功能測試,將Adc21號通道連接到開發板的1.2V參考電壓上,將Adc22號通道連接到開發板的3.3V參考電壓上,用示波器觀測Pwm8號和14號通道的輸出波形如圖4所示。示波器上方波形代表Pwm8號通道的輸出,其波形頻率為1.26kHz,占空比0.126。示波器下方波形代表Pwm14號通道的輸出,其波形頻率為3.3kHz,占空比0.5。

該結果與模型期望的的輸出信號一致,經以上驗證可知本文驅動代碼快速生成技術是實用的。

快速驅動代碼生成技術是與長安汽車合作項目的中間關鍵技術,已成功應用到長安汽車公司車身控制系統的實際應用開發中,針對車身控制需求,開發車身控制BCM(BodyControlModel)模塊,包括車窗、車燈、雨刮等。利用控制模塊搭建控制模型,經仿真后添加已開發的驅動模塊和操作系統模塊,自動生成代碼編譯下載到STM8目標控制芯片,經實車反復測試代碼能正確控制車身部件后,現已應用于實際量產過程,體現了其實際生產應用價值。

4 結 語

RTW是開放式架構,許多方式都能實現配置和豐富RTW功能的目的。控制算法模型的代碼生成已經不能滿足電控系統快速開發[7]的要求,本文介紹的快速生成驅動代碼的技術大大提高了快速控制原型的效率,經驗證,該方法確實高效可行,簡單易學,對各種芯片通用,對快速控制原型系統開發具有指導意義。

[1] 楊滌,李立濤,楊旭,等.系統實時仿真開發環境與應用[M].北京:清華大學出版社,2002:1-37.

[2] 陳婷,張烈平.基于MATLAB/RTW的實時控制器快速開發方法的研究[J].科學技術與工程,2008,8(17):5071-5074.

[3] 張曉輝.基于RTW的AMT代碼自動生成技術研究[D].濟南:山東大學機械工程學院,2012.

[4] 田麗華,曾航.基于COM組件的MATLAB與VC++混合編程[J].科技創新導報,2009(31):27-28.

[5] 北京恒潤科技公司.S-Function的編寫[M].北京:北京恒潤科技公司,2010:33-53.

[6] 齊振恒,孫中杰,李濤.RTW嵌入式代碼自動生成機制與代碼結構分析[J].計算機測量與控制,2010,18(3):639-642.

[7]HuJinhui,HuDabin,XiaoJianbo.StudyofReal-TimeSimulationSystemBasedonRTWandItsApplicationinWarshipSimulator[C].TheNinthInternationalConferenceonElectronicMeasurement&Instruments,2009:966-970.

[8] 劉杰.基于模型的設計—MCU篇[M].北京:北京航空航天大學出版社,2011:152-218.

RESEARCHONDRIVERCODEQUICKGENERATIONTECHNIQUEBASEDONREAL-TIMEWORKSHOP

FengHuizongZhuPengJiangJianchun

(Engineering Research Center of Automotive Electronic and Embedded System,Chongqing University of Posts and Telecommunication,Chongqing 400065,China)

Althoughthemodel-baseddesigntechniqueisgraduallysubstitutingthetextspecification-basedtraditionalembeddedsoftwaredevelopmentpattern,butatpresent,RTWcodegenerationtoolonlytransformsthecontrolalgorithmmodelintomodelsourcecode.Astothedevelopmentofreal-timesystem,usershavetoprogramdrivercodefortargetchip,thenappendtomodelsourcecodeofcontrolalgorithm.Inviewoftheabovequestions,weputforwardtheRTW-baseddrivercodequickgenerationtechnique,whichcaneffectivelyrealisetoembedthedriverprogramtosourcecodesofcontrolmodelwhilegeneratingcode,thusrealisestrulytheautomaticcodegenerationfromsimulationmodeltoapplicationsoftargetchips.InendofthepaperweusethecodegenerationofmainstreamchipMPC5634ofautomotiveelectronicsasinstance,resultshaveverifiedthepracticalityandefficiencyofthetechnique.

Real-timeworkshopDrivercodegenerationRapidprototype

2014-08-07。“核高基”重大專項(2009ZX01038-002-002)。馮輝宗,教授,主研領域:汽車電子控制系統,發動機控制。朱澎,碩士生。蔣建春,副教授。

TP391

ADOI: 10.3969/j.issn.1000-386x.2016.03.052

猜你喜歡
模型設計
一半模型
重要模型『一線三等角』
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
重尾非線性自回歸模型自加權M-估計的漸近分布
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 色妞永久免费视频| 91探花国产综合在线精品| 日韩一区二区三免费高清 | 一级在线毛片| 国产丝袜一区二区三区视频免下载| 一级毛片网| 国产理论一区| 91麻豆精品国产高清在线| 国产91高跟丝袜| 久久综合九色综合97婷婷| 亚洲嫩模喷白浆| 亚洲中文字幕在线观看| 国产成人AV综合久久| 国产成人av大片在线播放| 国产成人亚洲精品色欲AV| 黄片在线永久| 久久精品中文字幕少妇| 亚洲欧洲自拍拍偷午夜色| 综合久久久久久久综合网| 区国产精品搜索视频| 久久这里只精品国产99热8| 人人91人人澡人人妻人人爽| 视频一本大道香蕉久在线播放 | 亚洲开心婷婷中文字幕| 日韩一区精品视频一区二区| 久久免费精品琪琪| 亚洲色图欧美视频| 色国产视频| 国产精品久线在线观看| 全午夜免费一级毛片| 国产成人乱无码视频| 亚国产欧美在线人成| 日韩精品欧美国产在线| 国产激爽大片高清在线观看| a级毛片网| 日韩中文字幕亚洲无线码| 4虎影视国产在线观看精品| 国产网站免费看| 亚洲激情区| 国产日本欧美在线观看| 国产91麻豆免费观看| 操操操综合网| 国产18在线播放| 亚洲天堂.com| 欧美日韩在线成人| 尤物亚洲最大AV无码网站| 91精品啪在线观看国产60岁| 久久国产香蕉| 国产三级国产精品国产普男人| 五月丁香伊人啪啪手机免费观看| 亚洲高清日韩heyzo| 国产Av无码精品色午夜| 欧美人人干| 特级毛片8级毛片免费观看| 亚洲综合色婷婷| 亚洲系列无码专区偷窥无码| 国产成人精品高清在线| 色有码无码视频| 亚洲一级色| 国产99久久亚洲综合精品西瓜tv| 国产第二十一页| 婷婷色在线视频| 日日噜噜夜夜狠狠视频| jijzzizz老师出水喷水喷出| 久久人人爽人人爽人人片aV东京热 | 婷婷六月天激情| 少妇人妻无码首页| 广东一级毛片| 亚洲色精品国产一区二区三区| 国产91成人| 国语少妇高潮| 不卡午夜视频| 亚洲乱强伦| 久久公开视频| 国产女人爽到高潮的免费视频| 一级不卡毛片| 国产毛片不卡| 亚洲欧美自拍视频| 自慰高潮喷白浆在线观看| 国产91无毒不卡在线观看| 国产午夜小视频| 国产一级毛片yw|