實(shí)時(shí)仿真與嵌入式系統

發(fā)布時(shí)間:2010-3-16 18:43    發(fā)布者:嵌入式公社
關(guān)鍵詞: 嵌入式 , 實(shí)時(shí)仿真 , 系統
1、前言

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

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

RTW提供了幾個(gè)快速原型化的目標,其中包括提供了從Simulink模型到VxWorks應用代碼的自動(dòng)轉換接口Tornado Real-Time Target,可以讓用戶(hù)的模型在VxWorks上執行。

2、Tornado(VxWorks)實(shí)時(shí)目標運行時(shí)結構

開(kāi)發(fā)VxWorks實(shí)時(shí)應用系統的典型配置,如圖1所示:


圖1 VxWorks實(shí)時(shí)應用開(kāi)發(fā)的經(jīng)典配置

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

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

3、Tornado(VxWorks)實(shí)時(shí)目標的實(shí)現過(guò)程

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

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

表1 實(shí)驗環(huán)境


3.2 實(shí)時(shí)目標的具體實(shí)現步驟

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

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


圖2 實(shí)驗所采用的經(jīng)典PID模型

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


圖3 仿真參數Solver設置


圖4 仿真參數Real-Time Workshop設置


圖5 仿真參數code generation options設置

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

    #------------ 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) 程序的生成、編譯、連接

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

(4) 手動(dòng)下載和運行可執行文件

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

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

在WindSh窗口中調用rt_main函數,開(kāi)始運行程序:sp(rt_main,vxmodel,"-tf 100 -w ","*",0,30,17725)

參數的含義分別是:

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

運行后我們可以看到目標機上的屏幕上顯示:

    waiting for start message from host

(5) 建立連接

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


圖6 External Target Interface對話(huà)框設置

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


圖7 External Mode Control Panel對話(huà)框

4、結論

針對Matlab的仿真特性和VxWorks操作系統的實(shí)時(shí)特點(diǎn),本文介紹了RTW面向Tornado(VxWorks)實(shí)時(shí)目標的運行結構,并且較為詳細的闡述了Tornado(VxWorks)實(shí)時(shí)目標的具體實(shí)現流程,實(shí)現了Simulink在Tornado(VxWorks)實(shí)時(shí)目標下的仿真。

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

作者: 田霖 李正熙 童朝南 來(lái)源:微計算機信息 2005 第21卷第8-2期
本文地址:http://selenalain.com/thread-9461-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页