控制模型的構(gòu)建
2004年5月A版
高級(jí)圖形建模工具已在電子業(yè)使用了相當(dāng)長(zhǎng)的時(shí)間,問(wèn)題在于框圖只在設(shè)計(jì)的初始階段起作用,之后就深藏不露了。然而,軟件工具卻利用框圖來(lái)完成差不多全部的算法建模,甚至系統(tǒng)的圖形建模,然后生成可自動(dòng)實(shí)現(xiàn)該系統(tǒng)的代碼。
航天和汽車等工業(yè)已在控制和信號(hào)處理系統(tǒng)中充分利用軟件工具,它們采用工具作系統(tǒng)建模和產(chǎn)生原型硬件的代碼,有些甚至使用工具來(lái)生成適合生產(chǎn)系統(tǒng)的軟件。最初,自動(dòng)生成的代碼用于原型機(jī)平臺(tái)或者PC,近年來(lái)的代碼生成變成一種更實(shí)用的為嵌入式硬件生成產(chǎn)品質(zhì)量代碼的方法。現(xiàn)在,幾十萬(wàn)輛汽車的量產(chǎn)借助于這種方法生成的生產(chǎn)代碼。
除了汽車業(yè),航天應(yīng)用亦獲得成功的佐證。在這些工業(yè)部門內(nèi),安全因素處于絕對(duì)優(yōu)先的地位。有了機(jī)器生成代碼的保證,才有可能在從每行C或Ada語(yǔ)言的翻譯過(guò)程中避免軟件編程人員的人為影響。
目前使用的這類工具有Mathworks公司的Matlab和國(guó)家儀器(NI)公司的Matrixx等。它們?yōu)殚_(kāi)發(fā)人員提供一種使用互連函數(shù)塊構(gòu)建系統(tǒng)圖形模型的方法。每個(gè)函數(shù)塊可代表一項(xiàng)數(shù)學(xué)運(yùn)算,例如乘法或加法,或者更復(fù)雜的函數(shù)例如快速傅里葉變換,甚至一種由某些結(jié)構(gòu)組成的許多低級(jí)塊構(gòu)建的函數(shù)。這種環(huán)境支持各種類型的框圖,某些框圖在動(dòng)態(tài)模擬物理系統(tǒng)和機(jī)械系統(tǒng)時(shí)處理連續(xù)時(shí)間的建模,而在數(shù)字控制設(shè)計(jì)中用分立時(shí)間建模。在這類工具中還有一種Stateflow工具,可讓用戶綜合各種狀態(tài)的機(jī)械框圖。
面向控制的系統(tǒng)需要來(lái)自實(shí)際環(huán)境的數(shù)據(jù),它有助于在單一環(huán)境下處理算法推導(dǎo)和系統(tǒng)建模時(shí)的數(shù)據(jù),甚至這是一個(gè)可執(zhí)行的規(guī)范。Mathworks公司的發(fā)言人認(rèn)為,這正是使用這些工具的最積極因素。
使用帶有代碼生長(zhǎng)的高級(jí)建模工具在設(shè)計(jì)控制系統(tǒng)時(shí)往往遵循一種常用方法。典型地,開(kāi)發(fā)過(guò)程先從高級(jí)模型的脫機(jī)模擬開(kāi)始,接著是在特殊原型化硬件上開(kāi)發(fā)原型,并且由有關(guān)供應(yīng)商提供軟件,例如dSpace公司提供這種支持,而Mathworks公司允許在實(shí)際環(huán)境數(shù)據(jù)下對(duì)模型作微調(diào)。在某種情況下,還可在運(yùn)行過(guò)程中對(duì)取樣率和控制參數(shù)等作調(diào)整。
開(kāi)發(fā)隊(duì)伍下一步要處理目標(biāo)硬件的問(wèn)題,往往它在存儲(chǔ)器和處理器功耗方面,具有比原型硬件更多的限制。在此階段應(yīng)該將高級(jí)模型交給工程師進(jìn)行代碼手編,或者采用dSpace公司的TargetLink、Mathwork公司的或NI公司的代碼發(fā)生器等工具來(lái)自動(dòng)生成生產(chǎn)質(zhì)量的代碼。
dspace公司認(rèn)為這種生產(chǎn)代碼的質(zhì)量與正規(guī)軟件工程師編寫的相同。
由Visual Solutions公司提供的VisSim是另一種建模和模擬環(huán)境,它的概念與Simulink相類似,但著重不同的市場(chǎng)范圍,主要面向工業(yè)控制。該公司認(rèn)為,自動(dòng)生成的代碼容易安裝到工業(yè)控制用的DSP中容量有限的片上存儲(chǔ)器中。對(duì)于采用脈寬調(diào)制(PWM)技術(shù)的馬達(dá)用定點(diǎn)閉環(huán)控制器的實(shí)例,一個(gè)正交編碼的位置讀出系統(tǒng)代碼量,只占TI公司的TM320F2812工業(yè)控制DSP內(nèi)1.8KB指令存儲(chǔ)器空間和1.4KB數(shù)據(jù)空間。還有,控制器可在幾分鐘內(nèi)移植到F243或F2407芯片內(nèi),只有PWM的I/O塊,編碼器和數(shù)字I/O需要變動(dòng)。
總的來(lái)說(shuō),自動(dòng)代碼生長(zhǎng)只用到應(yīng)用層,對(duì)于操作系統(tǒng)和硬件抽象層要用手編代碼。此外,用戶界面和協(xié)議棧等單元往往留作手編代碼或使用其它工具。然而,生成的代碼與操作系統(tǒng)的交互是一種需要留意或要有經(jīng)驗(yàn)的作業(yè)。dSpace公司的工作很有效,可將生成的代碼與遵從OSEK汽車標(biāo)準(zhǔn)的任何商業(yè)操作系統(tǒng)的集成量減至最小。工具供應(yīng)商Sheet Dynamics公司的DSP開(kāi)發(fā)工具,提供自行設(shè)計(jì)的操作系統(tǒng)來(lái)運(yùn)行RTW(Real Time Workshop)工具生成的代碼,RTW是Mathworks公司的代碼發(fā)生器,用于Simulink模型以及Analog Devices公司的Sharc系列DSP。
生產(chǎn)代碼自動(dòng)生成對(duì)一個(gè)項(xiàng)目的貢獻(xiàn),同樣跟設(shè)計(jì)所需的安全性級(jí)別有關(guān)。NI公司的Greg Wempe稱“當(dāng)您進(jìn)入安全性很重要的部分時(shí),您必須有更多的膠粘代碼來(lái)固定全部可能出現(xiàn)的問(wèn)題”。
NI公司的Matrixx工具庫(kù)與Matlab有許多相似的地方,它廣泛用于美國(guó)國(guó)防項(xiàng)目。洛克希德馬丁公司用它開(kāi)發(fā)概念演示飛機(jī)X35的飛行控制算法和自動(dòng)代碼生成,X35聯(lián)合攻擊殲擊機(jī)是美、英兩國(guó)空軍共同合作的幾十億美元?dú)灀魴C(jī)項(xiàng)目。NI作為數(shù)據(jù)采集的專業(yè)公司,打算將Matrixx擴(kuò)展到數(shù)據(jù)采集和過(guò)程控制系統(tǒng)的客戶,該公司的虛擬儀器工具在這方面不能滿足客戶的要求。據(jù)稱LabVIEW目前可處理許多PID控制,但是當(dāng)你要解決宇航控制器或過(guò)程控制的多路輸入和輸出系統(tǒng)時(shí),就需要Matrixx。
當(dāng)降低性能和算法復(fù)雜性所要求的規(guī)模時(shí),就有更多機(jī)會(huì)將高級(jí)模型與目標(biāo)平臺(tái)特性配合,從而生成更有效的高性能代碼。例如,TargetLink工具庫(kù)與編譯器,擴(kuò)充專用處理器語(yǔ)言、以及專為現(xiàn)今使用的多種處理器作優(yōu)化的匯編宏功能一起,即可使問(wèn)題迎刃而解。有專家稱:跨平臺(tái)獨(dú)立性只要簡(jiǎn)單選擇所需的目標(biāo)優(yōu)化模塊和結(jié)合目標(biāo)的處理器編譯器即可獲得。
人們一直努力為各種DSP定義最佳的軟件庫(kù),以便代碼的生成。結(jié)果是,這些工具通常產(chǎn)生可移植的C代碼,而不是通用的代碼,并稱它為人工優(yōu)化的特定平臺(tái)的匯編代碼函數(shù)工具庫(kù),綽號(hào)叫做“本征代碼”。例如,幾家模型工具供應(yīng)商的代碼生成工具組成專為TI公司的C6X DSP開(kāi)發(fā)的本征代碼工具庫(kù)。
與DSP相似,使用FPGA作信號(hào)處理也越來(lái)越多,因?yàn)镕PGA的速度要比DSP快得多,而且對(duì)于某種類型的算法FPGA更快且效率更高。由于信號(hào)處理的工程技術(shù)人員并不熟悉Verilog和VHDL等硬件描述語(yǔ)言,從高級(jí)模型自動(dòng)生成這種代碼就十分重要了。
跨平臺(tái)方案
當(dāng)試圖在同一系統(tǒng)內(nèi)的不同硬件平臺(tái)之間擴(kuò)大算法模型的實(shí)現(xiàn)時(shí),往往會(huì)出現(xiàn)問(wèn)題。例如,軟件無(wú)線電系統(tǒng)經(jīng)常由多種FPGA、DSP和通用處理器構(gòu)成。設(shè)計(jì)流程需要先從統(tǒng)一的高級(jí)模型再進(jìn)入完全分散的環(huán)境,它們每個(gè)都是特定的平臺(tái)。應(yīng)該注意,除非建立物理協(xié)議,完成系統(tǒng)測(cè)試是不可能的,而且費(fèi)用昂貴。一種由Mathworks提供的解決方案是對(duì)不同硬件單元的定時(shí)和同步特性進(jìn)行建模,包括嵌入式處理器和數(shù)字邏輯等單元的高級(jí)系統(tǒng)模型。此外,還要充分利用芯片或板卡供應(yīng)商提供的接口規(guī)范,它們是總線I/O定時(shí)和其它特性、并且可‘包裝’入系統(tǒng)模型的方塊內(nèi)用作模擬和生成代碼的自動(dòng)調(diào)用。
Sheet Dynamics公司認(rèn)為,不同類型目標(biāo)之間的分區(qū)需要工程判斷和反復(fù)嘗試,特別是系統(tǒng)芯片(SoC)目標(biāo)。目前的辦法幾乎都是在對(duì)硬件和軟件采用獨(dú)立的設(shè)計(jì)流程前借助“紙上”分區(qū)。它對(duì)單一環(huán)境下的代碼生成、測(cè)試和驗(yàn)證人工硬件和軟件分區(qū)的價(jià)值,大于對(duì)該過(guò)程自動(dòng)化的價(jià)值。下一步是用能夠生成代碼和具有驗(yàn)證接口的系統(tǒng)級(jí)模型代替紙上規(guī)范。Sheet Dynamics公司正著手解決此問(wèn)題,有關(guān)分區(qū)的主要辦法將在DSP開(kāi)發(fā)者的新版本提出,特點(diǎn)是讓開(kāi)發(fā)人員對(duì)每個(gè)Simulink塊指定一個(gè)電子數(shù)據(jù)表,它將包含每個(gè)塊內(nèi)所需的資源模型,如存儲(chǔ)器需求、執(zhí)行速度等的詳細(xì)數(shù)據(jù),以便估計(jì)硬件的需求。
一種還不夠完善的可能解決辦法是:在系統(tǒng)級(jí)模型的環(huán)境下允許構(gòu)建和維護(hù)有關(guān)驗(yàn)證和評(píng)估的工具。結(jié)果是對(duì)于任何自動(dòng)生成的代碼都具有相似的可信度。這種概念是“頂級(jí)”的參考設(shè)計(jì),同樣含有“頂級(jí)”的測(cè)試基準(zhǔn)?,F(xiàn)今,不少供應(yīng)商提供可再用的模型級(jí)測(cè)試基準(zhǔn)工具來(lái)解決該問(wèn)題,工具可驗(yàn)證在目標(biāo)平臺(tái)上生成的代碼,甚至驗(yàn)證其它方法開(kāi)發(fā)的代碼。
從事建模和代碼生成的公司正在審視汽車和航天以外的業(yè)界。還有不少面臨復(fù)雜競(jìng)爭(zhēng)的部門,它們需要注意帶有代碼生成功能的系統(tǒng)級(jí)建模工具。取得的效果取決于代碼生成技術(shù)是否符合應(yīng)用所要求的性能。需要把它看成是連續(xù)的統(tǒng)一體,因?yàn)槲覀儾粩喔倪M(jìn)使代碼達(dá)到“足夠”好。當(dāng)程序達(dá)到幾十萬(wàn)行C語(yǔ)言時(shí),工程師不能繼續(xù)手寫代碼了,需要去接受C編譯器和硬件綜合?!?馬詩(shī),李?yuàn)W)
評(píng)論