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

嵌入式軟件自動代碼生成和代碼整合方法研究

2013-09-13 13:07:26任佳麗曹海燕
太原理工大學學報 2013年4期
關鍵詞:信號模型

任佳麗,曹海燕

(1.山西交通職業技術學院 信息工程系,太原030031;2.太原理工大學 物理與光電工程學院,太原030024)

隨著嵌入式系統日益廣泛的應用,越來越短的產品周期與不斷增加的客戶需求,使得手工編程的嵌入式軟件設計很難勝任新的開發需求。手工編寫的代碼容易產生bug,查找和解決這些問題不僅要花費大量的人力和時間,有時甚至會導致軟件的重新開發。對于安全性要求較高的產品,出現bug甚至會關系到人身安全。因此,近年來汽車電子行業的一些龍頭企業已經用代碼自動生成的方法逐步取代傳統開發模式下的手工編程,收到了良好的效果[1]。但是目前的工具僅對少數型號的微控制器提供完整支持,如TIC2000微控制器[2],而實際應用中由于客觀需要微控制器的品種繁多,不同型號微控制器在功能、性能、封裝等方面很少兼容,給眾多用戶使用自動代碼生成的開發方法帶來了不便。本文通過汽車天窗控制器的設計,探索了用自動代碼生成和手工代碼整合進行嵌入式軟件開發的方法,適用于各種型號微控制器嵌入式控制軟件的開發。

1 汽車天窗控制器的電路結構及原理

天窗控制器主要有微控制器、按鍵、電機驅動、霍爾傳感器等電路組成,電路框圖如圖1所示。瑞薩電子的μPD78F0881單片機作為主控芯片,通過運行嵌入式控制軟件,檢測按鍵和霍爾傳感器的信號,控制電機轉動,完成天窗水平開、水平關、斜升、斜降等動作;按鍵按下的時長控制電機電動或自動運行;霍爾傳感器用于檢測天窗運行過程中是否遇到障礙物,是否需要停止天窗運行或使其反向運行,以實現防夾功能;LED燈指示天窗的位置狀態和運行狀態。

圖1 天窗控制器電路框圖

2 建立控制器模型

系統仿真模型包括控制器模型和被控對象模型。控制器模型是電子控制單元ECU中所有控制算法的抽象[3],它的輸入、輸出與ECU的輸入、輸出一一對應,這樣才能保證從模型生成的控制算法在ECU中正常運行,以便于在完成仿真調試后用硬件實物快速替換控制模型,從而加快開發進程。

2.1 仿真模型框架

在Simulink環境下建立的天窗控制器仿真模型框架分為信號輸入、邏輯控制和信號輸出三部分,如圖2所示,其中核心是仿真微控制器的邏輯控制部分,輸入、輸出部分用于邏輯控制模型的調試。根據仿真需要創建多組和實際電路相對應的輸入信號,并且滿足時序要求,圖3所示的就是將點火信號ignition、點動運行信號SO_TD Switch、自動運行信號SO_TU Switch、水平滑動脈沖計數信號Slide-PulseCount、斜向滑動脈沖計數信號TiltPulseC-ount、遇阻信號Obstacle和定時器信號timerCfg按照一定的時間和邏輯關系進行組合的一組輸入信號,仿真時就將選中的一組輸入信號輸入到邏輯控制模型中。通過Display、Scope等模塊可以仿真觀察輸出,其中Scope模塊即示波器模塊,是將邏輯控制模型輸出的控制信號及其時序以二維圖形顯示出來,其中橫坐標表示時間軸,縱坐標表示信號。打開Scope輸出窗口,模型仿真運行時就可以看到如圖4所示信號波形。圖中信號為1時表示燈被點亮,為0時表示燈熄滅。

圖2 天窗控制器仿真模型框架

圖3 一組輸入信號的邏輯時序圖

圖4 通過Scope模塊觀察輸出信號波形圖

2.2 建立邏輯控制模型

圖5 汽車電動天窗電機轉動狀態圖

邏輯控制模型是仿真嵌入式系統中的微控制器。建立邏輯控制的狀態圖,各種復雜的邏輯控制關系都能夠通過狀態圖完整地表示出來。如汽車天窗控制系統中對電機轉動控制的邏輯狀態圖如圖5所示,所實現的邏輯控制是根據按下按鍵的持續時間判斷應該進入的執行狀態。按鍵按下時間小于1 s進入點動狀態(車窗移動一下就會停止);按鍵按下時間在1~2.3s之間進入自動平移狀態(在無障礙物的情況下,天窗會自動平移至全部打開);按鍵按下的時間超過2.3s進入手動平移模式(按鍵按下時車窗開始移動,釋放按鍵時車窗停止移動)。

Stateflow采用時間調度機制,這樣就可以為時間驅動系統生成準確高效的代碼[4]。在狀態轉移時使用時間運算符before,after,實現對轉移后狀態的激活指定調度邏輯。在模型中使用時間運算符,降低了手工編程時相對容易出錯的定時器和計數器任務調度編排的難度。在Simulink環境下仿真運行時,正在運行的狀態或發生轉移時的轉移箭頭會高亮顯示,非常便于動態觀察模型運行。

3 代碼自動生成及代碼整合

3.1 代碼自動生成

代碼自動生成是將Simulink環境下建立的模型通過RTWEC轉換成C程序代碼,生成的代碼結構緊湊,運行效率高[3]。首先模型經過Simulink的編譯器生成rtw中間文件;rtw文件經過TLC編譯器生成C語言代碼,最后通過C編譯器得到最終的可執行程序。rtw文件包含了模型中的有用信息,包括模型中的參數、變量、模塊名稱等。TLC編譯器編譯過程中將控制代碼用Simulink模型中的變量和參數代替,與原有的文本一起生成C代碼。但是對于RTWEC沒有提供完全支持的單片機而言,就無法對單片機底層(如I/O端口等)有關的一些模型進行代碼生成,如天窗控制模型中的信號輸入、輸出部分??捎肦TWEC只對控制邏輯最為復雜的控制器模型進行代碼自動生成,而手工編寫輸入、輸出模型的底層驅動代碼,最后整合這兩部分代碼。

控制器模型仿真調試完成后還需要在Simulink環境中進行有關參數設置。最主要的設置有:

1)設置模型中輸入、輸出的變量名和屬性,在編寫底層驅動代碼時這些變量要和微控制器的輸入輸出硬件相對應。

2)在Configuration Parameters選項下選擇求解器為離散型(discrete),目標系統文件選ert.tlc文件,其它參數一般情況下可用默認選項。自動生成的源代碼文件存放在默認路徑Sunroof_ert_rtw下,其中Sunroof.c文件中包含了Sunroof_initialize子函數(初始化函數)和Sunroof_step子函數(實現模型在一個步長時間內所有的控制算法),Sunroof.h、Sunroof-private.h、Sunroof-types.h、rtwtypes.h等文件是對參數、變量、數據結構的定義和聲明。

3.2 代碼整合

由于自動代碼生成軟件只完整支持少數型號的微控制器,而在實際應用中由于性能、成本等的不同要求,使得微控制器的品種繁多,不同型號微控制器在功能、性能、封裝等方面很少兼容。針對這一問題,手工編寫程序框架和硬件系統的初始化代碼,然后和自動生成的代碼進行有機整合后的程序,就是適用于所設計硬件的嵌入式控制軟件。使用控制模型實現自動代碼生成時,手工編程者只需要考慮模型的接口,在模型中加入對應的模塊即可。整合完成就可以編譯代碼并下載到目標板。

整合后的嵌入式代碼的框架為一個循環程序,不斷循環執行自動生成的邏輯控制代碼。整合過程中要保證定時器的時鐘周期與模型仿真時的固定步長一致,模型中的輸入、輸出變量名與所用單片機的端口要對應。在整合后的源代碼文件Controlmain.c中,斜體代碼表示和自動生成代碼有關的內容。Control-main.c 和 Sunroof.c、Sunroof.h、Sunroof-private.h、Sunroof-types.h、rtwtypes.h一起編譯后就生成了可執行的天窗控制器的嵌入式控制軟件。

Control-main.c的部分源代碼如下:

#include"Sunroof.h" /*自動生成的頭文件*/

#include"Sunroof-private.h" /*自動生成的頭文件*/

#include"rtwtypes.h" /*自動生成的頭文件*/

#include"Sunroof-types.h" /*自動生成的頭文件*/

…(此處省略中斷初始化程序、脈寬定時器中斷程序以及端口初始化程序)

/*定時器中斷程序,需放入自動生成的代碼*/

--interrupt void MD-INTTMH0(void)

Sunroof-U.SO-TD-Switch=~P8.5;/*WU1*/

Sunroof-U.SC-TU-Switch=~P8.3;/*WU2*/

Sunroof-U.SlidePulseCount=503;

Sunroof-U.TiltPulseCount=94;

Sunroof-step();/*自動生成的Sunroof.c文件中的函數*/

P3.2=Sunroof-Y.MotorPort32;

P6.1=Sunroof-Y.MotorPort61;

P1.2=~Sunroof-Y.LightYellow;

P1.1=~Sunroof-Y.LightGreen;

P1.0=~Sunroof-Y.LightRed;

void SystemInit()

DI(); //關中斷

PortInit();

TMH0-Init();

init-INTP6();

init-INTP7();

init-INTP4();

EI();∥開中斷

void main(void)

SystemInit();

Sunroof-initialize();/*自動生成的 Sunroof.c文件中的函數*/

while(1);

4 結束語

在汽車天窗控制器的設計中采用基于模型的開發方法收到了良好的效果。通過對模型充分調試后,自動生成邏輯控制部分的代碼,然后手工編寫底層硬件初始化和驅動程序,將兩部分代碼合理整合,完成后的天窗控制軟件運行正確可靠,提高了開發的效率和正確性。特別是針對使用RTWEC不提供支持的微控制器芯片,通過這種代碼自動生成和整合的方法,為廣泛采用基于模型的嵌入式軟件開發進行了有意義的嘗試。

[1] Jimming Yang,Jason Bauman,Al Beydoun.Implementation of Auto-Code Generation in Legacy Code for Body Control Software Applications[C]∥SAE World Congress,2008.

[2] 陳金干,魏學哲.基于DSP的自動代碼生成及其在電池管理系統中的應用[J].電子技術應用,2008:43-46.

[3] 陳永春.從Matlab/Simulink模型到代碼實現[M].北京.清華大學出版社,2002.

[4] 杭勇,劉學瑜.利用代碼自動生成技術實現柴油機電控系統控制算法的開發[J].內燃機工程,2005,26(2):9-12.

[5] Jinsong Zhang,Qiqiang Li,Qingqiang Guo.A Simulation Method of Controlled Hybrid Petri Nets Based on Matlab Simulink/Stateflow[C]∥Proceedings of the IEEE International Conference on Automation and Logistics,2007(18-21):2432-3426.

猜你喜歡
信號模型
一半模型
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
重要模型『一線三等角』
完形填空二則
重尾非線性自回歸模型自加權M-估計的漸近分布
孩子停止長個的信號
3D打印中的模型分割與打包
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 91久久精品日日躁夜夜躁欧美| 精品国产91爱| 国国产a国产片免费麻豆| 午夜无码一区二区三区| 欧美啪啪视频免码| 亚洲日本中文字幕乱码中文| 欧美国产综合色视频| 亚洲中文精品久久久久久不卡| 亚洲成AV人手机在线观看网站| 一区二区三区成人| 国产亚洲精品无码专| 亚洲成人一区二区| 综合亚洲色图| 波多野结衣二区| 天天综合网站| 欧美日本在线一区二区三区| 亚洲va在线观看| 精品国产成人高清在线| 日a本亚洲中文在线观看| 日韩天堂在线观看| 日本在线免费网站| 亚洲日韩日本中文在线| 国产乱码精品一区二区三区中文| 国产97视频在线观看| 99无码熟妇丰满人妻啪啪| 免费中文字幕一级毛片| 国产欧美视频在线观看| 亚洲一区无码在线| 亚洲欧美综合另类图片小说区| 美女一级毛片无遮挡内谢| 亚洲五月激情网| 天天操精品| 亚洲国产精品无码AV| 思思热精品在线8| 国产精品吹潮在线观看中文| 午夜欧美理论2019理论| 亚洲精品视频免费观看| 中文字幕av一区二区三区欲色| 国产91小视频| 国产视频一区二区在线观看 | 国产香蕉在线| 青青草国产在线视频| 中文无码毛片又爽又刺激| 国产成本人片免费a∨短片| 亚洲最猛黑人xxxx黑人猛交| 好久久免费视频高清| 中国美女**毛片录像在线| 好久久免费视频高清| 亚洲h视频在线| www.国产福利| 国产无码制服丝袜| 性欧美久久| 中文字幕亚洲另类天堂| 国产综合在线观看视频| 国产后式a一视频| 欧美成人精品一级在线观看| 欧美三級片黃色三級片黃色1| 一级黄色欧美| 日本三级欧美三级| 日韩专区欧美| 1769国产精品视频免费观看| 免费无码在线观看| 在线国产资源| 欧美亚洲第一页| 亚洲人成在线免费观看| 日韩中文无码av超清| 97人人模人人爽人人喊小说| 国产区人妖精品人妖精品视频| 国产手机在线ΑⅤ片无码观看| 国产精品性| 青青草一区| 乱码国产乱码精品精在线播放| 婷婷五月在线| 热99re99首页精品亚洲五月天| 久久国产免费观看| 亚洲无码精品在线播放| 日韩资源站| 成人精品视频一区二区在线| 最新国产成人剧情在线播放| 日韩福利视频导航| 欧美日韩亚洲综合在线观看| 日韩视频免费|