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幾何模型轉換方法初步研究
主站蜘蛛池模板: 人妻中文久热无码丝袜| 无码福利日韩神码福利片| 日韩欧美视频第一区在线观看| 国产一级一级毛片永久| 亚洲欧美一区二区三区图片| 欧美一区精品| 中文字幕亚洲乱码熟女1区2区| 啦啦啦网站在线观看a毛片| 国产美女久久久久不卡| 狠狠色丁香婷婷综合| 国产91高跟丝袜| 精品视频在线观看你懂的一区| 日韩国产亚洲一区二区在线观看| 亚洲国产中文精品va在线播放| 国产高清国内精品福利| 国产丰满大乳无码免费播放| 国产黄网永久免费| 国产成人91精品| 国产呦精品一区二区三区下载| 麻豆国产在线观看一区二区| 成人久久18免费网站| 在线无码九区| 久久综合九九亚洲一区 | 午夜精品国产自在| 欧美午夜理伦三级在线观看| 亚洲一级色| 成人一区在线| 欧美激情,国产精品| 人妻少妇久久久久久97人妻| 内射人妻无套中出无码| 亚洲综合亚洲国产尤物| 成人亚洲天堂| 2021亚洲精品不卡a| 国产美女91视频| 亚洲最大综合网| 国产一二视频| 欧美激情视频一区二区三区免费| 欧美一级专区免费大片| 国产第一色| 99尹人香蕉国产免费天天拍| 午夜福利在线观看成人| 国产精品深爱在线| 国产日韩丝袜一二三区| 国产系列在线| 人妻精品久久久无码区色视| 不卡视频国产| 亚洲欧美日韩综合二区三区| 免费毛片a| 国产综合无码一区二区色蜜蜜| 中文字幕久久亚洲一区 | 四虎影院国产| 成人国内精品久久久久影院| 成色7777精品在线| 精品一区国产精品| 亚洲综合在线最大成人| 女同国产精品一区二区| 成人夜夜嗨| 91啦中文字幕| 成人一级黄色毛片| 久久99国产乱子伦精品免| 91在线免费公开视频| 亚洲av综合网| 国产迷奸在线看| 亚洲色图欧美在线| 精品国产一二三区| 99成人在线观看| 欧美精品v欧洲精品| 国产成人综合亚洲网址| 亚洲国产AV无码综合原创| 亚洲成人播放| 亚洲综合中文字幕国产精品欧美| 亚洲日韩第九十九页| 精品午夜国产福利观看| 天堂av综合网| 久久国产精品电影| 全午夜免费一级毛片| 国产99热| 色窝窝免费一区二区三区| 国产高清毛片| 日本国产精品| 四虎永久免费地址在线网站| 欧日韩在线不卡视频|