一個(gè)大型的船舶輪機模擬器蘊含著(zhù)30多個(gè)全物理過(guò)程的數學(xué)模型,涉及千余個(gè)實(shí)時(shí)參變量,通常采用功能分散的DCS網(wǎng)絡(luò )來(lái)實(shí)現。即便如此,個(gè)別仿真工作站由于模型復雜、任務(wù)繁重,難以滿(mǎn)足實(shí)時(shí)仿真的要求。例如,動(dòng)力推進(jìn)系統的仿真是一個(gè)半實(shí)物在環(huán)的仿真系統,其中既有虛擬的動(dòng)力裝置即仿真計算機上運行的數學(xué)模型,又有真實(shí)的控制盤(pán)臺、物理顯示設備,是一種集實(shí)時(shí)控制和高速運算功能于一體的典型系統。 早期開(kāi)發(fā)成功的SMSC2000型輪機模擬器采用工控機作為仿真計算機,所有數據的處理和輸入輸出的控制都經(jīng)過(guò)它的數據采集卡來(lái)完成。推進(jìn)系統仿真的精確度與實(shí)時(shí)性無(wú)法兩全。近期航運仿真中心在開(kāi)展多模式機艙仿真實(shí)驗的同時(shí),針對I/O點(diǎn)最多(200多個(gè))、半實(shí)物環(huán)境最復雜的船舶推進(jìn)系統進(jìn)行了剖析,研制了嵌入式微機的新穎仿真平臺。 船舶推進(jìn)系統仿真平臺的選取 船舶推進(jìn)系統仿真平臺需要有很強的控制接口(輸入輸出)能力和高速的數字運算處理能力。TI公司的DSPC2000系列率先為電機的實(shí)時(shí)控制開(kāi)拓了應用領(lǐng)域,但并不適合于具有眾多I/O的復雜機電模型的仿真。由于市場(chǎng)上無(wú)現成的仿真裝置可購,只能針對機艙模擬器的對象自行探索。實(shí)際上,當代嵌入式芯片既提供了高速的數字信號處理器(DSP),也提供了有強大控制功能的微控制器(MCU)。采用MCU+DSP架構,就可兼備兩者的長(cháng)處。 基于ARM核的32位RISC微控制器在監視控制、人機接口方面的功能非常完善,數字信號處理器(DSP)對各種數字信號或數據處理的能力十分強大。因此,許多嵌入式實(shí)時(shí)應用系統采用ARM+DSP的結構組合來(lái)充分發(fā)揮兩種處理器的優(yōu)勢,從每個(gè)處理器中獲得最大益處,以獲得更高性能。其中,ARM作為主處理器,負責任務(wù)管理、輸入輸出接口、對外部設備的控制,甚至運行嵌入式操作系統;而DSP作為從處理器,僅僅負責快速的數據運算處理。兩個(gè)處理器核之間通過(guò)共用一部分存儲器等方式進(jìn)行通信。 以ARM+DSP為核心的嵌入式系統具有很強的控制接口能力和高速數字處理能力,用來(lái)代替以工控機為核心的仿真系統,可以達到實(shí)時(shí)運行精確的船舶推進(jìn)系統的數學(xué)模型、實(shí)時(shí)控制外圍物理設備的目的,從而實(shí)現精確實(shí)時(shí)的半物理實(shí)物在環(huán)的船舶推進(jìn)仿真系統。 ARM+DSP嵌入式船舶推進(jìn)系統仿真平臺的硬件結構 ARM+DSP嵌入式仿真平臺主要由以ARM,C5000DSP,C2000DSP3個(gè)處理器為中心的功能部分構成。其中ARM部分的ARM核微控制器是主處理器,是整個(gè)系統的控制中心。ARM部分帶有自己的FLASH,RAM,A/D,D/A轉換器等外圍設備,主要負責上電后完成整個(gè)系統的自舉加載和系統的任務(wù)分配、從物理設備輸入和向物理設備輸出信號、通過(guò)CAN總線(xiàn)與上位計算機通信等。C5000DSP部分主要運行船舶推進(jìn)系統的數學(xué)模型,并將仿真所得的轉速和轉矩的數據傳遞給C2000DSP部分的電機控制單元,以在電動(dòng)機上表達出推進(jìn)系統的實(shí)時(shí)狀態(tài),即用電動(dòng)機來(lái)模擬推進(jìn)主機。 C2000DSP部分的功能是接收C5000DSP部分數學(xué)模型的運算結果,按照該結果控制電動(dòng)機達到仿真的轉速和轉矩,最終實(shí)現用電動(dòng)機來(lái)模擬推進(jìn)主機。這3個(gè)部分按一定的方式組合在一起,構成一個(gè)整體,共同完成推進(jìn)系統仿真的任務(wù)。其基本組織結構如圖1所示。 圖1 ARM+DSP嵌入式微機系統的基本組成 [next]實(shí)際上,從可靠性角度考慮,對于A(yíng)RM部分和C5000DSP部分,采用一塊ARM7+C54x的雙核芯片(TI的TMS320VC5470)把兩部分的核心集成到一起。這兩部分的主要外圍設備有ARM側的FLASH,SRAM,SDRAM,鍵盤(pán),LCD,CAN總線(xiàn)接口,A/D,D/A轉換器(用于模擬量的輸入輸出),光耦電路(用于數字量或開(kāi)關(guān)量的輸入輸出),用于編程調試用的JTAG接口及DSP側的程序空間外擴SRAM,數據空間外擴SRAM,及I/O空間的FIFO(用于向C2000DSP部分傳遞數據)。這兩部分的硬件組織結構如圖2所示。 圖2 ARM和C5000DSP的硬件結構 C2000DSP部分為任選部分。若省略這部分,則仿真結果僅顯示在LCD,LED狀態(tài)指示燈上。加上這部分后,仿真推進(jìn)系統的各種動(dòng)靜態(tài)轉速及轉矩特性可在C2000DSP部分控制的仿真電機上反映出來(lái),達到用電機模擬推進(jìn)系統主機的目的。圖3所示的C2000DSP子系統實(shí)際上是一個(gè)電機的閉環(huán)控制系統,由DSP控制器、功率驅動(dòng)放大電路、電機和轉速檢測環(huán)節(光電編碼盤(pán))4個(gè)子部分構成?梢(jiàn),ARM+DSP嵌入式船舶推進(jìn)系統仿真平臺的硬件資源豐富,且有很大的可擴展空間。該系統平臺在硬件方面有以下一些特點(diǎn)。 (1)從處理器的速度上看,ARM最大為47.5MHz,C5000DSP最大為100MHz,C2000DSP最大為40MHz,屬于較高速處理器。 圖3 C2000DSP部分的硬件結構 [next](2)FLASH的容量很大。在A(yíng)RM和C5000DSP(即TMS320VC5470)部分有8MB的外部FLASH;在C2000DSP(TMS320LF2407)部分有32KW的在片FLASH,而且還可以進(jìn)行外擴。這樣,該系統就可以固化大量的程序代碼,適合開(kāi)發(fā)大型的程序。 (3)SRAM的容量也很大。在A(yíng)RM部分有16KB的在片高速SRAM和2MB的外部SRAM;在C5000DSP部分有72KW高速在片SRAM和64KW外擴程序SRAM和64KW外擴數據SRAM;在C2000DSP(TMS320LF2407)部分有2.5KW的在片SRAM,而且還有64KW外擴程序SRAM和64KW外擴數據SRAM。這樣,大量的SRAM可以保證處理器在SRAM中讀取程序,以保證程序快速運行。 (4)系統的I/O端口資源豐富。既有數字量的輸入輸出,也有模擬量的輸入輸出;既提供了串行方式,也提供了并行方式。為數據采集、控制指令輸出、與上位機通信等奠定了硬件基礎。 (5)C2000DSP的處理器TMS320LF2407是專(zhuān)用來(lái)進(jìn)行電機控制的芯片,用來(lái)產(chǎn)生PWM信號和捕獲轉速反饋信號很容易,而且運算速度快,可以實(shí)現對電機的各種高效復雜的控制。 (6)各部分間需要實(shí)時(shí)交換數據,其硬件上都采用了共享存儲器的方式(ARM與C5000DSP之間的ARMPortInterface,簡(jiǎn)稱(chēng)API,C5000DSP與C2000DSP之間的FIFO)。這樣,通信速度很快,從硬件上滿(mǎn)足了實(shí)時(shí)要求。 (7)因為器件數量較多且速度相對較高,有些芯片采用的是先進(jìn)的BGA(BallGridArray)封裝技術(shù),所以在設計印刷電路板時(shí),采用了6層板,布線(xiàn)充分考慮了器件的高速性和封裝技術(shù)。 (8)該系統平臺提供了很多可擴展的接口,用戶(hù)可針對具體對象擴充硬件、添加新的功能。對于構成SMSC2000輪機模擬器的其他工作站,無(wú)須擴展任何I/O接口,可見(jiàn)該系統具有通用性。 ARM+DSP嵌入式仿真平臺的軟件結構 ARM部分中的軟件 ARM部分是整個(gè)系統的控制中心,其運行的主要是系統軟件,包括自舉加載程序、指令響應程序、鍵盤(pán)掃描程序、LCD顯示驅動(dòng)程序、A/D與D/A轉換控制程序、直接數字量/開(kāi)關(guān)量輸入輸出程序、CAN總線(xiàn)通信控制程序及與C5000DSP部分進(jìn)行內部實(shí)時(shí)數據交換的控制程序。 自舉加載程序是上電或復位后首要實(shí)現的任務(wù)。它先對ARM的一些關(guān)鍵寄存器(如時(shí)鐘、中斷等)進(jìn)行初始化(即部分初始化);之后將ARM部分中要運行的主程序和各個(gè)子程序(如指令響應程序、鍵盤(pán)掃描、LCD顯示驅動(dòng)等)從片外的非易失性存儲器FLASH中加載到片內或片外的SRAM中,以增加程序的運行速度;接著(zhù),開(kāi)始負責對C5000DSP部分進(jìn)行復位初始化,再把數學(xué)模型程序通過(guò)API控制加載到C5000DSP中。這樣,自舉加載程序就完成了兩個(gè)部分的自舉加載工作。 自舉加載完成后,ARM部分開(kāi)始執行系統的全部初始化,然后便進(jìn)入系統的主程序(該主程序是一個(gè)無(wú)限循環(huán)等待程序),在主程序中再以中斷方式反復運行鍵盤(pán)掃描、LCD顯示驅動(dòng)、指令解釋響應、A/D與D/A轉換控制、數字量/開(kāi)關(guān)量的輸入輸出及與C5000DSP部分通訊的程序。其中,指令解釋的響應程序是一個(gè)核心程序,類(lèi)似于操作系統的內核程序,接受來(lái)自輸入處理子程序(鍵盤(pán)掃描、數字量/開(kāi)關(guān)量的輸入等)的接口數據,并根據它們的值啟動(dòng)相應的任務(wù),如果需要將任務(wù)執行的結果作為接口數據(指令)輸出給顯示或控制處理子程序,則經(jīng)由各輸出子程序再進(jìn)行處理。該部分的軟件組織結構如圖4所示。[next] 圖4 ARM部分的軟件組織結構 C5000DSP部分的軟件 C5000DSP部分主要用來(lái)運行推進(jìn)系統的數學(xué)模型,該推進(jìn)系統可以是傳統的柴油主機推動(dòng)系統,也可以是新型的電力推動(dòng)系統,關(guān)鍵在于不同的推動(dòng)類(lèi)型對應不同的數學(xué)模型。 C5000DSP程序實(shí)質(zhì)上是以實(shí)時(shí)循環(huán)迭代求解微分方程組為主的程序,該微分方程組即推進(jìn)系統的數學(xué)模型,并且每循環(huán)求解一次,要確定有沒(méi)有從ARM部分傳遞來(lái)的指令及參數更改的信息。如果有,就改變相應狀態(tài)及參數再求解微分方程組;如果沒(méi)有,則仍按上一次的狀態(tài)和參數求解。在每個(gè)循環(huán)中,方程組完整求解一次,從而得到推動(dòng)系統在該時(shí)刻的仿真數據。在每個(gè)循環(huán)的最后,把仿真數據結果傳送給ARM部分及C2000DSP部分(通過(guò)FIFO),用于顯示和控制。這部分的軟件程序結構如圖5所示。 圖5 C5000DSP部分的軟件組織結構 [next]C2000DSP部分的軟件結構 C2000DSP部分的主要任務(wù)就是讀取FIFO接收來(lái)自C5000DSP部分的仿真結果中的轉速和轉矩信號,并將之表達為電動(dòng)機的相應轉速和轉矩。該部分實(shí)際上是獨立構成的一個(gè)專(zhuān)門(mén)控制交流電機的子系統。 其中,C2000DSP處理器TMS320LF2407為該控制子系統的核心。它首先采用查詢(xún)的工作方式,檢測主控指令位是否指示打開(kāi)該進(jìn)程,檢查系統與主電路是否正常。如果主控指令位指示“關(guān)閉”,則切斷主電路,封鎖輸入輸出,再關(guān)閉系統;如果不正常,則切斷主電路,封鎖輸入輸出,再關(guān)閉系統,并發(fā)出警報;如果一切正常且主控指令位指示“打開(kāi)”,則讀取此子系統的給定信號(由通信中斷服務(wù)程序從FIFO中讀出并存入相應地址的存儲器中),即轉速和轉矩仿真結果數據的接收,再調用捕獲子程序從相應接口輸入實(shí)際轉速和轉矩的反饋值。給定值和反饋值準備完畢,系統才開(kāi)始使用某種控制算法對給定數據和反饋數據進(jìn)行處理。 完成了一個(gè)電機閉環(huán)恒轉速控制算法后,產(chǎn)生相應的PWM信號輸出給電機功率驅動(dòng)電路,再由驅動(dòng)電路控制電機跟隨仿真給定轉速和轉矩信號,完成對推動(dòng)系統轉速和轉矩的物理模擬。這里使用的控制算法可以是交流電機控制的各種算法,有要求較低的恒壓頻比、恒電動(dòng)勢頻比算法,也有要求高的矢量控制算法和直接轉矩控制算法。完成此步控制算法輸出PWM信號后,再返回到開(kāi)頭處。如此循環(huán),直到出現不正;駻RM主控程序結束該任務(wù)進(jìn)程。該部分程序的主要結構如圖6所示。 圖6 C2000DSP部分的軟件組織結構 芯片間的通信控制 該系統由3大部分構成,各部分之間的通信關(guān)系如圖1所示。ARM與C5000DSP之間相互通信,C5000DSP與C2000DSP之間相互通信,ARM與C2000DSP之間也相互通信。其中,前兩者是通過(guò)中斷方式來(lái)完成的,而后者是通過(guò)直接傳送的方式完成的。 ARM與C5000DSP之間通過(guò)ARM向C5000發(fā)出中斷信號,告知C5000要準備接收數據。然后ARM將數據放到兩方共享的API中。DSP接收到中斷信號后,開(kāi)始中斷服務(wù)程序,從API的相應位置取出數據,之后向ARM發(fā)出回復信號,以表示數據被取走,而后繼續準備開(kāi)始接收新的數據。ARM接收到來(lái)自C5000的回復信號,開(kāi)始發(fā)送新的數據。如此反復,直到傳遞完所有數據。反過(guò)來(lái),由C5000DSP向ARM發(fā)送數據,其過(guò)程與上面相同,只是收發(fā)方互換位置。[next] C5000DSP與C2000DSP之間的通信是單向的,即C5000只進(jìn)行發(fā)送而C2000只進(jìn)行接收。它們之間是通過(guò)FIFO進(jìn)行緩沖的。C5000首先將仿真運算的轉速和轉矩數據通過(guò)總線(xiàn)放入接在其IO空間的FIFO中,再向C2000發(fā)送中斷請求。C2000收到后,響應中斷,進(jìn)行中斷服務(wù),從FIFO的相應位置取出數據并存入特定地址的存儲器中,再回復C5000告知數據已經(jīng)被取出。如此周而復始,不斷進(jìn)行數據的收發(fā)。 ARM與C2000DSP之間的通信主要是ARM主控打開(kāi)或關(guān)閉C2000系統,采用單向直接傳送方式。它們之間通過(guò)各自的一個(gè)GPIO(通用IO口)相連,ARM發(fā)送,C2000接收。ARM要打開(kāi)C2000系統時(shí),只需向其對應的GPIO寫(xiě)1,而ARM要關(guān)閉C2000系統時(shí),只需向其對應的GPIO寫(xiě)0。在C2000部分,在主體循環(huán)程序中每次查詢(xún)C2000的對應GPIO口,讀為1則表示繼續其進(jìn)程,而讀為0則表示關(guān)斷其進(jìn)程。 ARM+DSP嵌入式仿真平臺與以工控機為核心的仿真平臺的比較 以ARM+DSP為核心的嵌入式仿真平臺系統與以工控機為核心的仿真平臺系統相比在仿真的實(shí)時(shí)性和精確度方面具有很多優(yōu)勢。 (1)使用專(zhuān)用的DSP完成運算,相比通用PC處理器8086的精確度更高。 (2)ARM和DSP分工明確,各司其職,比單一的PC處理器完成仿真任務(wù)要快很多。SMSC2000在進(jìn)行主機仿真時(shí),由于處理器、操作系統和VB開(kāi)發(fā)工具的限制,每求解一次數學(xué)模型需要的時(shí)間在ms級,其采樣周期也在ms級以上;而以ARM+DSP為核心的嵌入式仿真平臺系統,由于采用功能強大的雙核構架,每求解一次數學(xué)模型需要的時(shí)間在μs級,采樣周期也相應減小很多,即仿真的步長(cháng)更小,大幅度提高了仿真的精確度。 (3)軟件系統是在裸機的基礎上建立的,實(shí)時(shí)性完全由開(kāi)發(fā)人員決定,不受非實(shí)時(shí)操作系統限制。 結束語(yǔ) 針對船舶推進(jìn)系統研制的新穎ARM+DSP嵌入式仿真平臺揚長(cháng)了ARM與DSP兩種嵌入式處理器的特點(diǎn),集豐富的控制接口和高速運算處理能力于一體。該仿真平臺系統結構清晰,各部分專(zhuān)用功能強大,任務(wù)分配明確,相互之間都有通信交互。該系統存儲器容量大,各器件速度快,集成度高。軟件編程從系統和應用的角度出發(fā),密切結合實(shí)際情況,軟件結構適合嵌入式系統運行。系統的軟硬件都有較大擴展空間。用該仿真平臺代替傳統的基于工控計算機的仿真模式真正達到了實(shí)時(shí)要求,其運行的數學(xué)模型更精確,控制物理設備的能力更強。 該仿真平臺同樣可用于船舶電站、船舶輔機、機艙報警等系統的仿真,并通過(guò)CAN總線(xiàn)與主控站聯(lián)絡(luò )。它不光強化了單一工作站的功能,而且使整個(gè)DCS網(wǎng)絡(luò )演化為FCS網(wǎng)絡(luò ),大大提高了系統的實(shí)時(shí)性。 |