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