交互式應用一舉兩得 實(shí)時(shí)仿真與嵌入式系統并構
1、前言
本文引用地址:http://dyxdggzs.com/article/226554.htm對于程序開(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à)框中的參數:

評論