亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式軟件自動(dòng)代碼生成和代碼整合方法研究

        2013-09-13 13:07:26任佳麗曹海燕
        關(guān)鍵詞:代碼生成微控制器天窗

        任佳麗,曹海燕

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

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

        1 汽車天窗控制器的電路結(jié)構(gòu)及原理

        天窗控制器主要有微控制器、按鍵、電機(jī)驅(qū)動(dòng)、霍爾傳感器等電路組成,電路框圖如圖1所示。瑞薩電子的μPD78F0881單片機(jī)作為主控芯片,通過運(yùn)行嵌入式控制軟件,檢測(cè)按鍵和霍爾傳感器的信號(hào),控制電機(jī)轉(zhuǎn)動(dòng),完成天窗水平開、水平關(guān)、斜升、斜降等動(dòng)作;按鍵按下的時(shí)長(zhǎng)控制電機(jī)電動(dòng)或自動(dòng)運(yùn)行;霍爾傳感器用于檢測(cè)天窗運(yùn)行過程中是否遇到障礙物,是否需要停止天窗運(yùn)行或使其反向運(yùn)行,以實(shí)現(xiàn)防夾功能;LED燈指示天窗的位置狀態(tài)和運(yùn)行狀態(tài)。

        圖1 天窗控制器電路框圖

        2 建立控制器模型

        系統(tǒng)仿真模型包括控制器模型和被控對(duì)象模型??刂破髂P褪请娮涌刂茊卧狤CU中所有控制算法的抽象[3],它的輸入、輸出與ECU的輸入、輸出一一對(duì)應(yīng),這樣才能保證從模型生成的控制算法在ECU中正常運(yùn)行,以便于在完成仿真調(diào)試后用硬件實(shí)物快速替換控制模型,從而加快開發(fā)進(jìn)程。

        2.1 仿真模型框架

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

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

        圖3 一組輸入信號(hào)的邏輯時(shí)序圖

        圖4 通過Scope模塊觀察輸出信號(hào)波形圖

        2.2 建立邏輯控制模型

        圖5 汽車電動(dòng)天窗電機(jī)轉(zhuǎn)動(dòng)狀態(tài)圖

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

        Stateflow采用時(shí)間調(diào)度機(jī)制,這樣就可以為時(shí)間驅(qū)動(dòng)系統(tǒng)生成準(zhǔn)確高效的代碼[4]。在狀態(tài)轉(zhuǎn)移時(shí)使用時(shí)間運(yùn)算符before,after,實(shí)現(xiàn)對(duì)轉(zhuǎn)移后狀態(tài)的激活指定調(diào)度邏輯。在模型中使用時(shí)間運(yùn)算符,降低了手工編程時(shí)相對(duì)容易出錯(cuò)的定時(shí)器和計(jì)數(shù)器任務(wù)調(diào)度編排的難度。在Simulink環(huán)境下仿真運(yùn)行時(shí),正在運(yùn)行的狀態(tài)或發(fā)生轉(zhuǎn)移時(shí)的轉(zhuǎn)移箭頭會(huì)高亮顯示,非常便于動(dòng)態(tài)觀察模型運(yùn)行。

        3 代碼自動(dòng)生成及代碼整合

        3.1 代碼自動(dòng)生成

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

        控制器模型仿真調(diào)試完成后還需要在Simulink環(huán)境中進(jìn)行有關(guān)參數(shù)設(shè)置。最主要的設(shè)置有:

        1)設(shè)置模型中輸入、輸出的變量名和屬性,在編寫底層驅(qū)動(dòng)代碼時(shí)這些變量要和微控制器的輸入輸出硬件相對(duì)應(yīng)。

        2)在Configuration Parameters選項(xiàng)下選擇求解器為離散型(discrete),目標(biāo)系統(tǒng)文件選ert.tlc文件,其它參數(shù)一般情況下可用默認(rèn)選項(xiàng)。自動(dòng)生成的源代碼文件存放在默認(rèn)路徑Sunroof_ert_rtw下,其中Sunroof.c文件中包含了Sunroof_initialize子函數(shù)(初始化函數(shù))和Sunroof_step子函數(shù)(實(shí)現(xiàn)模型在一個(gè)步長(zhǎng)時(shí)間內(nèi)所有的控制算法),Sunroof.h、Sunroof-private.h、Sunroof-types.h、rtwtypes.h等文件是對(duì)參數(shù)、變量、數(shù)據(jù)結(jié)構(gòu)的定義和聲明。

        3.2 代碼整合

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

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

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

        #include"Sunroof.h" /*自動(dòng)生成的頭文件*/

        #include"Sunroof-private.h" /*自動(dòng)生成的頭文件*/

        #include"rtwtypes.h" /*自動(dòng)生成的頭文件*/

        #include"Sunroof-types.h" /*自動(dòng)生成的頭文件*/

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

        /*定時(shí)器中斷程序,需放入自動(dòng)生成的代碼*/

        --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();/*自動(dòng)生成的Sunroof.c文件中的函數(shù)*/

        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(); //關(guān)中斷

        PortInit();

        TMH0-Init();

        init-INTP6();

        init-INTP7();

        init-INTP4();

        EI();∥開中斷

        void main(void)

        SystemInit();

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

        while(1);

        4 結(jié)束語(yǔ)

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

        [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] 陳金干,魏學(xué)哲.基于DSP的自動(dòng)代碼生成及其在電池管理系統(tǒng)中的應(yīng)用[J].電子技術(shù)應(yīng)用,2008:43-46.

        [3] 陳永春.從Matlab/Simulink模型到代碼實(shí)現(xiàn)[M].北京.清華大學(xué)出版社,2002.

        [4] 杭勇,劉學(xué)瑜.利用代碼自動(dòng)生成技術(shù)實(shí)現(xiàn)柴油機(jī)電控系統(tǒng)控制算法的開發(fā)[J].內(nèi)燃機(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.

        猜你喜歡
        代碼生成微控制器天窗
        Lustre語(yǔ)言可信代碼生成器研究進(jìn)展
        自制新款天窗固定器
        基于MoldFlow的汽車天窗注射模澆注系統(tǒng)分析
        模具制造(2019年3期)2019-06-06 02:10:56
        物聯(lián)網(wǎng)技術(shù)在微控制器實(shí)驗(yàn)教學(xué)中的應(yīng)用
        電子制作(2017年14期)2017-12-18 07:07:58
        邁騰車天窗無法關(guān)閉
        代碼生成技術(shù)在軟件開發(fā)中的應(yīng)用
        電子世界(2016年15期)2016-08-29 02:14:28
        基于XML的代碼自動(dòng)生成工具
        電子科技(2015年2期)2015-12-20 01:09:20
        2012款科魯茲車天窗滲水
        Atmel針對(duì)新一代物聯(lián)網(wǎng)應(yīng)用發(fā)布全新32位微控制器
        最新STM32設(shè)計(jì)工具增加對(duì)混合信號(hào)微控制器的支持
        精品黑人一区二区三区久久hd| 999久久久精品国产消防器材| 91情侣视频| 三级日本午夜在线观看| 亚洲午夜狼人综合影院| 欧美亚洲色综久久精品国产| 日韩亚洲欧美中文高清在线| 国内色精品视频在线网址| 国产一区二区三区视频地址| 蜜桃日本免费看mv免费版| 亚洲熟妇少妇任你躁在线观看| 日本护士一区二区三区高清热线| 人妻少妇中文字幕,久久精品| 少妇高潮无套内谢麻豆传| 亚洲国产区男人本色| 国产av一区二区凹凸精品| 成人av综合资源在线| 无码aⅴ免费中文字幕久久| 欧美成人小视频| 免费av在线视频播放| 国产精品国产三级第一集| 97精品国产手机| 午夜福利视频男同女同| 中文字幕日韩精品永久在线| 性按摩xxxx在线观看| 亚洲国产中文在线二区三区免 | 亚洲天堂成人av影院| 人人妻人人妻人人片av| 无码午夜剧场| 亚洲av成熟国产精品一区二区 | 夜先锋av资源网站| 久久青草国产精品一区| 国产精品麻豆一区二区三区| 久久综合狠狠综合久久综合88| 四虎国产精品永久在线无码| 日本成人免费一区二区三区| 国产一区二区视频在线免费观看| a级毛片成人网站免费看| av中文字幕少妇人妻| 国产精品毛片极品久久| 成人性生交大片免费|