<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 以ARM和DSP為核心的實時仿真平臺的開發(fā)

          以ARM和DSP為核心的實時仿真平臺的開發(fā)

          作者: 時間:2008-11-26 來源:網(wǎng)絡 收藏

            

            摘 要:針對復雜的系統(tǒng)仿真實時性的提高和精確度的需要,設計了以+DSP系統(tǒng)為核心的實時仿真平臺,并分別詳細論述了仿真平臺的硬件結構和技術特點,介紹了,C5000和C2000核心軟件結構以及芯片之間的內(nèi)部通信,提供了具體實現(xiàn)高速運算和實時精確控制的新穎技術方案以及通用的仿真平臺。

            關鍵詞:仿真;+DSP;核心軟件;內(nèi)部通信

            引 言

            一個大型的船舶蘊含著30多個全物理過程的數(shù)學模型,涉及千余個實時參變量,通常采用功能分散的DCS網(wǎng)絡來實現(xiàn)。即便如此,個別仿真工作站由于模型復雜、任務繁重,難以滿足實時仿真的要求。例如,動力推進系統(tǒng)的仿真是一個半實物在環(huán)的仿真系統(tǒng),其中既有虛擬的動力裝置即仿真計算機上運行的數(shù)學模型,又有真實的控制盤臺、物理顯示設備,是一種集實時控制和高速運算功能于一體的典型系統(tǒng)。

            早期開發(fā)成功的SMSC2000型采用工控機作為仿真計算機,所有數(shù)據(jù)的處理和輸入輸出的控制都經(jīng)過它的數(shù)據(jù)采集卡來完成。推進系統(tǒng)仿真的精確度與實時性無法兩全。近期航運仿真中心在開展多模式機艙仿真實驗的同時,針對I/O點最多(200多個)、半實物環(huán)境最復雜的系統(tǒng)進行了剖析,研制了微機的新穎仿真平臺。

            系統(tǒng)仿真平臺的選取

            船舶推進系統(tǒng)仿真平臺需要有很強的控制接口(輸入輸出)能力和高速的數(shù)字運算處理能力。TI公司的DSPC2000系列率先為電機的實時控制開拓了應用領域,但并不適合于具有眾多I/O的復雜機電模型的仿真。由于市場上無現(xiàn)成的仿真裝置可購,只能針對機艙模擬器的對象自行探索。實際上,當代嵌入式芯片既提供了高速的數(shù)字信號處理器(DSP),也提供了有強大控制功能的微控制器(MCU)。采用MCU+DSP架構,就可兼?zhèn)鋬烧叩拈L處。

            基于ARM核的32位RISC微控制器在監(jiān)視控制、人機接口方面的功能非常完善,數(shù)字信號處理器(DSP)對各種數(shù)字信號或數(shù)據(jù)處理的能力十分強大。因此,許多嵌入式實時應用系統(tǒng)采用ARM+DSP的結構組合來充分發(fā)揮兩種處理器的優(yōu)勢,從每個處理器中獲得最大益處,以獲得更高性能。其中,ARM作為主處理器,負責任務管理、輸入輸出接口、對外部設備的控制,甚至運行嵌入式操作系統(tǒng);而DSP作為從處理器,僅僅負責快速的數(shù)據(jù)運算處理。兩個處理器核之間通過共用一部分存儲器等方式進行通信。

            以ARM+DSP為核心的嵌入式系統(tǒng)具有很強的控制接口能力和高速數(shù)字處理能力,用來代替以工控機為核心的仿真系統(tǒng),可以達到實時運行精確的船舶推進系統(tǒng)的數(shù)學模型、實時控制外圍物理設備的目的,從而實現(xiàn)精確實時的半物理實物在環(huán)的船舶推進仿真系統(tǒng)。

            ARM+DSP嵌入式船舶推進系統(tǒng)仿真平臺的硬件結構  

            ARM+DSP嵌入式仿真平臺主要由以ARM,C5000DSP,C2000DSP3個處理器為中心的功能部分構成。其中ARM部分的ARM核微控制器是主處理器,是整個系統(tǒng)的控制中心。ARM部分帶有自己的FLASH,RAM,A/D,D/A轉(zhuǎn)換器等外圍設備,主要負責上電后完成整個系統(tǒng)的自舉加載和系統(tǒng)的任務分配、從物理設備輸入和向物理設備輸出信號、通過CAN總線與上位計算機通信等。C5000DSP部分主要運行船舶推進系統(tǒng)的數(shù)學模型,并將仿真所得的轉(zhuǎn)速和轉(zhuǎn)矩的數(shù)據(jù)傳遞給C2000DSP部分的電機控制單元,以在電動機上表達出推進系統(tǒng)的實時狀態(tài),即用電動機來模擬推進主機。

            C2000DSP部分的功能是接收C5000DSP部分數(shù)學模型的運算結果,按照該結果控制電動機達到仿真的轉(zhuǎn)速和轉(zhuǎn)矩,最終實現(xiàn)用電動機來模擬推進主機。這3個部分按一定的方式組合在一起,構成一個整體,共同完成推進系統(tǒng)仿真的任務。其基本組織結構如圖1所示。

            

            圖1 ARM+DSP嵌入式微機系統(tǒng)的基本組成

            [next]實際上,從可靠性角度考慮,對于ARM部分和C5000DSP部分,采用一塊ARM7+C54x的雙核芯片(TI的TMS320VC5470)把兩部分的核心集成到一起。這兩部分的主要外圍設備有ARM側的FLASH,SRAM,SDRAM,鍵盤,LCD,CAN總線接口,A/D,D/A轉(zhuǎn)換器(用于模擬量的輸入輸出),光耦電路(用于數(shù)字量或的輸入輸出),用于編程調(diào)試用的JTAG接口及DSP側的程序空間外擴SRAM,數(shù)據(jù)空間外擴SRAM,及I/O空間的FIFO(用于向C2000DSP部分傳遞數(shù)據(jù))。這兩部分的硬件組織結構如圖2所示。

              圖2 ARM和C5000DSP的硬件結構

            C2000DSP部分為任選部分。若省略這部分,則仿真結果僅顯示在LCD,LED狀態(tài)指示燈上。加上這部分后,仿真推進系統(tǒng)的各種動靜態(tài)轉(zhuǎn)速及轉(zhuǎn)矩特性可在C2000DSP部分控制的仿真電機上反映出來,達到用電機模擬推進系統(tǒng)主機的目的。圖3所示的C2000DSP子系統(tǒng)實際上是一個電機的,由放大電路、電機和轉(zhuǎn)速檢測環(huán)節(jié)(光電編碼盤)4個子部分構成??梢姡珹RM+DSP嵌入式船舶推進系統(tǒng)仿真平臺的硬件資源豐富,且有很大的可擴展空間。該系統(tǒng)平臺在硬件方面有以下一些特點。

            (1)從處理器的速度上看,ARM最大為47.5MHz,C5000DSP最大為100MHz,C2000DSP最大為40MHz,屬于較高速處理器。

              圖3 C2000DSP部分的硬件結構

            [next](2)FLASH的容量很大。在ARM和C5000DSP(即TMS320VC5470)部分有8MB的外部FLASH;在C2000DSP(TMS320LF2407)部分有32KW的在片F(xiàn)LASH,而且還可以進行外擴。這樣,該系統(tǒng)就可以固化大量的程序代碼,適合開發(fā)大型的程序。

            (3)SRAM的容量也很大。在ARM部分有16KB的在片高速SRAM和2MB的外部SRAM;在C5000DSP部分有72KW高速在片SRAM和64KW外擴程序SRAM和64KW外擴數(shù)據(jù)SRAM;在C2000DSP(TMS320LF2407)部分有2.5KW的在片SRAM,而且還有64KW外擴程序SRAM和64KW外擴數(shù)據(jù)SRAM。這樣,大量的SRAM可以保證處理器在SRAM中讀取程序,以保證程序快速運行。

            (4)系統(tǒng)的I/O端口資源豐富。既有數(shù)字量的輸入輸出,也有模擬量的輸入輸出;既提供了串行方式,也提供了并行方式。為數(shù)據(jù)采集、控制指令輸出、與上位機通信等奠定了硬件基礎。

            (5)C2000DSP的處理器TMS320LF2407是專用來進行電機控制的芯片,用來產(chǎn)生PWM信號和捕獲轉(zhuǎn)速反饋信號很容易,而且運算速度快,可以實現(xiàn)對電機的各種高效復雜的控制。

            (6)各部分間需要實時交換數(shù)據(jù),其硬件上都采用了共享存儲器的方式(ARM與C5000DSP之間的ARMPortInterface,簡稱API,C5000DSP與C2000DSP之間的FIFO)。這樣,通信速度很快,從硬件上滿足了實時要求。

            (7)因為器件數(shù)量較多且速度相對較高,有些芯片采用的是先進的BGA(BallGridArray)封裝技術,所以在設計印刷電路板時,采用了6層板,布線充分考慮了器件的高速性和封裝技術。

            (8)該系統(tǒng)平臺提供了很多可擴展的接口,用戶可針對具體對象擴充硬件、添加新的功能。對于構成SMSC2000的其他工作站,無須擴展任何I/O接口,可見該系統(tǒng)具有通用性。

            ARM+DSP嵌入式仿真平臺的軟件結構

            ARM部分中的軟件

            ARM部分是整個系統(tǒng)的控制中心,其運行的主要是系統(tǒng)軟件,包括自舉加載程序、指令響應程序、鍵盤掃描程序、LCD顯示驅(qū)動程序、A/D與D/A轉(zhuǎn)換控制程序、直接數(shù)字量/輸入輸出程序、CAN總線通信控制程序及與C5000DSP部分進行內(nèi)部實時數(shù)據(jù)交換的控制程序。

            自舉加載程序是上電或復位后首要實現(xiàn)的任務。它先對ARM的一些關鍵寄存器(如時鐘、中斷等)進行初始化(即部分初始化);之后將ARM部分中要運行的主程序和各個子程序(如指令響應程序、鍵盤掃描、LCD顯示驅(qū)動等)從片外的非易失性存儲器FLASH中加載到片內(nèi)或片外的SRAM中,以增加程序的運行速度;接著,開始負責對C5000DSP部分進行復位初始化,再把數(shù)學模型程序通過API控制加載到C5000DSP中。這樣,自舉加載程序就完成了兩個部分的自舉加載工作。

            自舉加載完成后,ARM部分開始執(zhí)行系統(tǒng)的全部初始化,然后便進入系統(tǒng)的主程序(該主程序是一個無限循環(huán)等待程序),在主程序中再以反復運行鍵盤掃描、LCD顯示驅(qū)動、指令解釋響應、A/D與D/A轉(zhuǎn)換控制、數(shù)字量/的輸入輸出及與C5000DSP部分通訊的程序。其中,指令解釋的響應程序是一個核心程序,類似于操作系統(tǒng)的內(nèi)核程序,接受來自輸入處理子程序(鍵盤掃描、數(shù)字量/開關量的輸入等)的接口數(shù)據(jù),并根據(jù)它們的值啟動相應的任務,如果需要將任務執(zhí)行的結果作為接口數(shù)據(jù)(指令)輸出給顯示或控制處理子程序,則經(jīng)由各輸出子程序再進行處理。該部分的軟件組織結構如圖4所示。[next]

            

            圖4 ARM部分的軟件組織結構

            C5000DSP部分的軟件

            C5000DSP部分主要用來運行推進系統(tǒng)的數(shù)學模型,該推進系統(tǒng)可以是傳統(tǒng)的柴油主機推動系統(tǒng),也可以是新型的電力推動系統(tǒng),關鍵在于不同的推動類型對應不同的數(shù)學模型。

            C5000DSP程序?qū)嵸|(zhì)上是以實時循環(huán)迭代求解微分方程組為主的程序,該微分方程組即推進系統(tǒng)的數(shù)學模型,并且每循環(huán)求解一次,要確定有沒有從ARM部分傳遞來的指令及參數(shù)更改的信息。如果有,就改變相應狀態(tài)及參數(shù)再求解微分方程組;如果沒有,則仍按上一次的狀態(tài)和參數(shù)求解。在每個循環(huán)中,方程組完整求解一次,從而得到推動系統(tǒng)在該時刻的仿真數(shù)據(jù)。在每個循環(huán)的最后,把仿真數(shù)據(jù)結果傳送給ARM部分及C2000DSP部分(通過FIFO),用于顯示和控制。這部分的軟件程序結構如圖5所示。

            

            圖5 C5000DSP部分的軟件組織結構

            [next]C2000DSP部分的軟件結構

            C2000DSP部分的主要任務就是讀取FIFO接收來自C5000DSP部分的仿真結果中的轉(zhuǎn)速和轉(zhuǎn)矩信號,并將之表達為電動機的相應轉(zhuǎn)速和轉(zhuǎn)矩。該部分實際上是獨立構成的一個專門控制交流電機的子系統(tǒng)。

            其中,C2000DSP處理器TMS320LF2407為該控制子系統(tǒng)的核心。它首先采用查詢的工作方式,檢測主控指令位是否指示打開該進程,檢查系統(tǒng)與主電路是否正常。如果主控指令位指示“關閉”,則切斷主電路,封鎖輸入輸出,再關閉系統(tǒng);如果不正常,則切斷主電路,封鎖輸入輸出,再關閉系統(tǒng),并發(fā)出警報;如果一切正常且主控指令位指示“打開”,則讀取此子系統(tǒng)的給定信號(由通信中斷服務程序從FIFO中讀出并存入相應地址的存儲器中),即轉(zhuǎn)速和轉(zhuǎn)矩仿真結果數(shù)據(jù)的接收,再調(diào)用捕獲子程序從相應接口輸入實際轉(zhuǎn)速和轉(zhuǎn)矩的反饋值。給定值和反饋值準備完畢,系統(tǒng)才開始使用某種控制算法對給定數(shù)據(jù)和反饋數(shù)據(jù)進行處理。

            完成了一個電機閉環(huán)恒轉(zhuǎn)速控制算法后,產(chǎn)生相應的PWM信號輸出給電機電路,再由驅(qū)動電路控制電機跟隨仿真給定轉(zhuǎn)速和轉(zhuǎn)矩信號,完成對推動系統(tǒng)轉(zhuǎn)速和轉(zhuǎn)矩的物理模擬。這里使用的控制算法可以是交流電機控制的各種算法,有要求較低的恒壓頻比、恒電動勢頻比算法,也有要求高的矢量控制算法和直接轉(zhuǎn)矩控制算法。完成此步控制算法輸出PWM信號后,再返回到開頭處。如此循環(huán),直到出現(xiàn)不正?;駻RM主控程序結束該任務進程。該部分程序的主要結構如圖6所示。

            

            圖6 C2000DSP部分的軟件組織結構

            芯片間的通信控制

            該系統(tǒng)由3大部分構成,各部分之間的通信關系如圖1所示。ARM與C5000DSP之間相互通信,C5000DSP與C2000DSP之間相互通信,ARM與C2000DSP之間也相互通信。其中,前兩者是通過來完成的,而后者是通過直接傳送的方式完成的。

            ARM與C5000DSP之間通過ARM向C5000發(fā)出中斷信號,告知C5000要準備接收數(shù)據(jù)。然后ARM將數(shù)據(jù)放到兩方共享的API中。DSP接收到中斷信號后,開始中斷服務程序,從API的相應位置取出數(shù)據(jù),之后向ARM發(fā)出回復信號,以表示數(shù)據(jù)被取走,而后繼續(xù)準備開始接收新的數(shù)據(jù)。ARM接收到來自C5000的回復信號,開始發(fā)送新的數(shù)據(jù)。如此反復,直到傳遞完所有數(shù)據(jù)。反過來,由C5000DSP向ARM發(fā)送數(shù)據(jù),其過程與上面相同,只是收發(fā)方互換位置。[next]

            C5000DSP與C2000DSP之間的通信是單向的,即C5000只進行發(fā)送而C2000只進行接收。它們之間是通過FIFO進行緩沖的。C5000首先將仿真運算的轉(zhuǎn)速和轉(zhuǎn)矩數(shù)據(jù)通過總線放入接在其IO空間的FIFO中,再向C2000發(fā)送中斷請求。C2000收到后,響應中斷,進行中斷服務,從FIFO的相應位置取出數(shù)據(jù)并存入特定地址的存儲器中,再回復C5000告知數(shù)據(jù)已經(jīng)被取出。如此周而復始,不斷進行數(shù)據(jù)的收發(fā)。

            ARM與C2000DSP之間的通信主要是ARM主控打開或關閉C2000系統(tǒng),采用單向直接傳送方式。它們之間通過各自的一個GPIO(通用IO口)相連,ARM發(fā)送,C2000接收。ARM要打開C2000系統(tǒng)時,只需向其對應的GPIO寫1,而ARM要關閉C2000系統(tǒng)時,只需向其對應的GPIO寫0。在C2000部分,在主體循環(huán)程序中每次查詢C2000的對應GPIO口,讀為1則表示繼續(xù)其進程,而讀為0則表示關斷其進程。

            ARM+DSP嵌入式仿真平臺與以工控機為核心的仿真平臺的比較  

            以ARM+DSP為核心的嵌入式仿真平臺系統(tǒng)與以工控機為核心的仿真平臺系統(tǒng)相比在仿真的實時性和精確度方面具有很多優(yōu)勢。

            (1)使用專用的DSP完成運算,相比通用PC處理器8086的精確度更高。

            (2)ARM和DSP分工明確,各司其職,比單一的PC處理器完成仿真任務要快很多。SMSC2000在進行主機仿真時,由于處理器、操作系統(tǒng)和VB開發(fā)工具的限制,每求解一次數(shù)學模型需要的時間在ms級,其也在ms級以上;而以ARM+DSP為核心的嵌入式仿真平臺系統(tǒng),由于采用功能強大的雙核構架,每求解一次數(shù)學模型需要的時間在μs級,也相應減小很多,即仿真的步長更小,大幅度提高了仿真的精確度。

            (3)軟件系統(tǒng)是在裸機的基礎上建立的,實時性完全由開發(fā)人員決定,不受非實時操作系統(tǒng)限制。

            結束語

            針對船舶推進系統(tǒng)研制的新穎ARM+DSP嵌入式仿真平臺揚長了ARM與DSP兩種嵌入式處理器的特點,集豐富的控制接口和高速運算處理能力于一體。該仿真平臺系統(tǒng)結構清晰,各部分專用功能強大,任務分配明確,相互之間都有通信交互。該系統(tǒng)存儲器容量大,各器件速度快,集成度高。軟件編程從系統(tǒng)和應用的角度出發(fā),密切結合實際情況,軟件結構適合嵌入式系統(tǒng)運行。系統(tǒng)的軟硬件都有較大擴展空間。用該仿真平臺代替?zhèn)鹘y(tǒng)的基于工控計算機的仿真模式真正達到了實時要求,其運行的數(shù)學模型更精確,控制物理設備的能力更強。

            該仿真平臺同樣可用于船舶電站、船舶輔機、機艙報警等系統(tǒng)的仿真,并通過CAN總線與主控站聯(lián)絡。它不光強化了單一工作站的功能,而且使整個DCS網(wǎng)絡演化為FCS網(wǎng)絡,大大提高了系統(tǒng)的實時性。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();