<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團(tuán)論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  VxWorks 應(yīng)用開發(fā)  (http://www.hufushizhe.com/bbs/list.asp?boardid=38)
    ----  實(shí)時仿真與嵌入式系統(tǒng)  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=38&id=1958)

    --  作者:wangxinxin
    --  發(fā)布時間:2010-12-1 11:33:30
    --  實(shí)時仿真與嵌入式系統(tǒng)
    1、前言

        對于程序開發(fā)和許多交互式應(yīng)用來說,UNIX和Windows可以算是優(yōu)秀的操作系統(tǒng)。然而,它們都不適于實(shí)時應(yīng)用。Tornado是美國WindRiver公司為用戶提供的嵌入式開發(fā)平臺,VxWorks是Tornado的運(yùn)行期組件,也是嵌入式行業(yè)應(yīng)用最為廣泛的實(shí)時操作系統(tǒng)。VxWorks的實(shí)時性做的非常好,其系統(tǒng)本身的開銷很小,任務(wù)調(diào)度、任務(wù)間通信和中斷處理等系統(tǒng)公用程序精煉而高效,他們造成的延遲很短。VxWorks提供的多任務(wù)機(jī)制對任務(wù)的控制采用了優(yōu)先級搶占調(diào)度和輪轉(zhuǎn)調(diào)度機(jī)制,也充分保證了可靠的實(shí)時性,使同樣的硬件配置能夠滿足更強(qiáng)的實(shí)時性要求,為應(yīng)用的開發(fā)留下更大的余地。

        RTW(Real-Time Workshop)是Matlab圖形建模和仿真環(huán)境Simulink的一個重要的補(bǔ)充功能模塊,它是一個基于Simulink的代碼自動生出環(huán)境,它能直接從Simulink的模型中產(chǎn)生優(yōu)化的、可移植的和個性化的代碼,并根據(jù)目標(biāo)配置自動生成多種環(huán)境下的程序。

        RTW提供了幾個快速原型化的目標(biāo),其中包括提供了從Simulink模型到VxWorks應(yīng)用代碼的自動轉(zhuǎn)換接口Tornado Real-Time Target,可以讓用戶的模型在VxWorks上執(zhí)行。

        2、Tornado(VxWorks)實(shí)時目標(biāo)運(yùn)行時結(jié)構(gòu)

        開發(fā)VxWorks實(shí)時應(yīng)用系統(tǒng)的典型配置,如圖1所示:

    圖片點(diǎn)擊可在新窗口打開查看
    圖1 VxWorks實(shí)時應(yīng)用開發(fā)的經(jīng)典配置

        實(shí)時代碼在主機(jī)上,用Tornado提供的交叉編譯器編譯。通過RTW的Tornado實(shí)時目標(biāo)生成目標(biāo)文件(vxmodel.lo),可通過Tornado集成開發(fā)環(huán)境的WindSh下載到VxWorks目標(biāo)機(jī)。實(shí)時程序在VxWorks目標(biāo)機(jī)上執(zhí)行,通過IO設(shè)備和外部硬件交換數(shù)據(jù),并保持和主機(jī)之間的相互通信。

        實(shí)時程序運(yùn)行在VxWorks目標(biāo)機(jī)上,而Simulink運(yùn)行在主機(jī)上。Simulink需要VxWorks目標(biāo)機(jī)上運(yùn)行的任務(wù)來處理通信過程。Tornado(VxWorks)Real-Time Tartget生成如下VxWorks任務(wù):一個用于和Simulink通信,其他用于完成模型功能[2]。

        3、Tornado(VxWorks)實(shí)時目標(biāo)的實(shí)現(xiàn)過程

        3.1 實(shí)驗環(huán)境

        我的實(shí)驗環(huán)境如下表:

    表1 實(shí)驗環(huán)境
    圖片點(diǎn)擊可在新窗口打開查看

        3.2 實(shí)時目標(biāo)的具體實(shí)現(xiàn)步驟

        為了通過Real-Time Workshop實(shí)現(xiàn)和運(yùn)行一個基于VxWorks的實(shí)時程序,用戶可按如下的步驟進(jìn)行:

        (1) 在Matlab/Simulink下建立一個模型,這里以一個經(jīng)典的PID模型為例:

    圖片點(diǎn)擊可在新窗口打開查看
    圖2 實(shí)驗所采用的經(jīng)典PID模型

        模型采用外部工作模式(External Mode),并設(shè)置Simulink Parameters對話框中的參數(shù):

    圖片點(diǎn)擊可在新窗口打開查看
    圖3 仿真參數(shù)Solver設(shè)置

    圖片點(diǎn)擊可在新窗口打開查看
    圖4 仿真參數(shù)Real-Time Workshop設(shè)置

    圖片點(diǎn)擊可在新窗口打開查看
    圖5 仿真參數(shù)code generation options設(shè)置

    (2) 配置模板聯(lián)編連文件tornado.tmf,該文件位于%matlabroot%/rtw/c/tornado目錄下,要對這個文件作如下修改:

        #------------ Macros read by make_rtw -------------
        MAKECMD = C:Tornado2.2hostx86-win32 inmake
        HOST = PC
        #-------------Tool Locations-----------------------------
        WIND_BASE= C:Tornado2.2
        WIND_REGISTRY=$(COMPUTERNAME)
        WIND_HOST_TYPE=x86-win32
        #------------Vxworks Configuration------------------
        VX_TARGET_TYPE = pentium
        CPU_TYPE = PENTIUM2
        #-------------Macros for Downloading to Target-----
        TARGET=target
        TGTSVR_HOST=host
        VX_CORE_LOC    = $(WIND_BASE)/target/config/ pcPentium3/vxWorks

        (3) 程序的生成、編譯、連接

        設(shè)置完參數(shù),保存后,開始創(chuàng)建程序,單擊上圖中的Build按鈕,開始編譯程序,成功后可在當(dāng)前的目錄中產(chǎn)生了一個vxmodel_tornado_rtw的文件夾和一個目標(biāo)文件vxmodel.lo。

        (4) 手動下載和運(yùn)行可執(zhí)行文件

        現(xiàn)在可以將實(shí)時程序下載到目標(biāo)機(jī)中,具體的方法是在Tornado集成開發(fā)環(huán)境中啟動WindSh,在WindSh窗口執(zhí)行如下命令:

        ld<vxmodel.lo

        請注意要保證lo文件在WindSh的工作路徑下。VxWorks實(shí)時程序定義了一個函數(shù)rt_main(),用來創(chuàng)建和執(zhí)行模型代碼、完成與Simulink的通信(如果選擇了外部模式方式)。rt_main函數(shù)在文件rt_main.c中定義,這個文件位于目錄%matlabroot% twc ornado中。

        在WindSh窗口中調(diào)用rt_main函數(shù),開始運(yùn)行程序:sp(rt_main,vxmodel,"-tf 100 -w ","*",0,30,17725)

        參數(shù)的含義分別是:

        rt_main()是實(shí)時程序定義的函數(shù),用來產(chǎn)生任務(wù)執(zhí)行代碼和與Simulink進(jìn)行通信;?
        -tf用于指定仿真時間,此處設(shè)為100秒;?
        -w表示在外部模式時,運(yùn)行前等待來自Simulink消息的觸發(fā);?
        “*”為安裝所有的信號;?
        0表示使用各自的模塊名;?
        30表示使用默認(rèn)作為tBaseRate優(yōu)先級;?
        17725為TCP默認(rèn)端口號(可以設(shè)置在256~65535之間)。?

        運(yùn)行后我們可以看到目標(biāo)機(jī)上的屏幕上顯示:
        waiting for start message from host

        (5) 建立連接

        在External Target Interface對話框中的MEX-file arguments指定目標(biāo)機(jī)的IP、冗長度和TCP端口號,如圖6所示,就可以建立連接了。

    圖片點(diǎn)擊可在新窗口打開查看
    圖6 External Target Interface對話框設(shè)置

        打開External Mode Control Panel,如圖7所示。點(diǎn)擊Connect按鈕,執(zhí)行Start real-time code,可以看到Scope上的圖形輸出。此時,可以改變模型的參數(shù)(如增益的數(shù)值),參數(shù)下載后Scope的曲線將隨之改變。仿真時間結(jié)束以后,可以看到產(chǎn)生了一個external.mat文件,由目標(biāo)機(jī)會傳到主機(jī),放在Tornado的安裝根目錄下。

    圖片點(diǎn)擊可在新窗口打開查看
    圖7 External Mode Control Panel對話框

        4、結(jié)論

        針對Matlab的仿真特性和VxWorks操作系統(tǒng)的實(shí)時特點(diǎn),本文介紹了RTW面向Tornado(VxWorks)實(shí)時目標(biāo)的運(yùn)行結(jié)構(gòu),并且較為詳細(xì)的闡述了Tornado(VxWorks)實(shí)時目標(biāo)的具體實(shí)現(xiàn)流程,實(shí)現(xiàn)了Simulink在Tornado(VxWorks)實(shí)時目標(biāo)下的仿真。

        在結(jié)合相關(guān)文檔的同時,筆者加入了親身實(shí)驗的經(jīng)驗,增補(bǔ)了一些必要的內(nèi)容,完善了實(shí)驗的具體步驟,降低了為讀者今后實(shí)驗的調(diào)試難度


    主站蜘蛛池模板: 中文字幕の友人北条麻妃| 达达兔欧美午夜国产亚洲| 九月婷婷人人澡人人添人人爽| 亚洲综合色网站| 亚洲黄色片一级| 伊人色综合久久天天网| 免费黄色一级毛片| 偷自拍亚洲视频在线观看99| 久久免费动漫品精老司机| 久久99精品九九九久久婷婷| 日本中文字幕在线视频| 直接进入免费看黄的网站| 精品国产男人的天堂久久| 视频黄页在线观看| 色之综合天天综合色天天棕色| 精品视频一区二区三区| 男生插入女生下面视频| 男人j放进女人p全黄| 波多野结衣欲乱上班| 欧美亚洲国产成人高清在线| 泰国一级淫片免费看| 精品国产一区二区三区色欲| 4444亚洲国产成人精品| 37大但人文艺术a级| 黄页网站在线视频免费| 黄色一级片免费看| 高清国语自产拍免费视频| 老司机天堂影院| 欧美亚洲国产视频| 免费观看欧美一级特黄| 翁熄性放纵交换| 国产特黄特色一级特色大片| www五月婷婷| 成人欧美一区二区三区的电影| 国产成人高清视频| 国产在线观看精品一区二区三区91 | 小信的干洗店1~4| 尤物视频193.com| 天堂在线中文字幕| 国模杨依粉嫩蝴蝶150P| 国产第一页屁屁影院|