摘要:結合現代發動機控制技術發展的特點,設計了一種基于386EX與TMS320F2812的雙CPU高速實時控制系統,使用雙口RAM IDT7024實現雙機之間的高速數據交流和通信。給出了386EX、TMS320F2812與雙口RAM IDT7024之間的接口電路。對雙口RAM操作中共享沖突的幾種方式進行了討論和分析。利用機載實時自適應模型進行了硬件在回路仿真實驗,并針對二者數據交換的仲裁方式,給出了軟件流程圖。
關鍵詞:雙CPU;雙口RAM;硬件在回路仿真;軟件流程
中圖分類號:TP332文獻標識碼:A文章編號:1009-3044(2008)11-20364-03
1 引言
目前航空發動機控制系統采用的多是集中式多余度全權限數字電子控制器(FADEC—Fully Authority Digital Electrical Control)結構。在集中式控制系統中,CPU除了完成所有的信號采集、處理、控制算法運算、控制信號輸出等主要任務以外,還要完成狀態監控、故障檢測、安全保護任務。筆者嘗試在發動機數控系統設計中采用與集中式單CPU系統完全不同的DSP和386EX相結合構成的主從式雙CPU系統,DSP芯片主要負責系統的高速度浮點計算,而CPU負責系統的外部通信和控制等功能。
2 采用雙口RAM解決CPU間的傳輸
一般實現雙機通信的方式主要有串行通信和并行通信。目前發動機數控系統中數據通訊采用的主要是串口通訊。這種方式相對簡單,通信速率不大,適合于雙機通信量不是很大的應用場合;考慮到發動機數控系統實時性要求高、數據量大(而且隨著發動機性能的提高數據量將越來越大)的特點,本文采用了由雙口RAM IDT7024構成的并行通信方式。與串行通訊相比,通過雙口RAM進行數據通信,傳輸速率更高。
在這種主從式系統中,CPU386 EX作為主機,而DSP2812則作為從機。主機將從外部獲得的數據交由從機處理,而從機則將處理后得到的有關結果交給主機,由主機根據結果進行相應的控制或把結果傳給其它系統。
3 DSP、雙口RAM與386EX接口電路設計
雙口IDT7024是一種高速4K*16位雙端口靜態RAM,具有兩套相互獨立、完全對稱的地址、數據和控制總線,最大訪問時間可為15/35/55ns。
TMS320F2812的數據總線寬度和地址總線寬度分別為16位、19位。386EX的數據總線寬度為16位,地址總線寬度為26位。考慮到IDT7024的數據總線寬度為16位,不須進行寬度擴展。接口電路如圖1所示。
386EX分配給IDT7024的地址空間是0X82000H~0X83FFFH。A0(BLE)用于選擇數據的高8位(BLE=H)或低8位(BLE=L),A1~A12用于芯片內部尋址,A13用于選擇對旗語鎖存器(A13=L)或RAM陣列(A14=H)進行讀/寫。該端的中斷請求信號INTL與386EX的外部中斷引腳INT1直接相連。
分配給IDT7024的地址空間是0X00003000H~0X00003FFFH。A0~A11用于芯片內部尋址,A12用于選擇對旗語鎖存器(A12=L)或RAM陣列(A13=H)進行讀/寫。該端的中斷請求信號INTR與F2812的外部中斷引腳XINT1直接相連。
4 雙口RAM的防突處理[1]
IDT7024允許兩個CPU同時讀取任何存儲單元(包括同時讀同一地址單元),但不允許同時寫或一讀一寫同一地址單元,否則就會發生錯誤。CPU對雙口RAM端口的操作等效于對它的外部RAM進行操作。雙口RAM在使用上要注意的問題是如何避免兩端CPU對同一RAM單元的爭用,IDT7024提供了以下三種防沖突方式來解決這個問題。
4.1 插入等待狀態的防沖突方式
當左右端口同時對同一地址的RAM存儲單元進行存取時,IDT7024芯片內部的仲裁單元將會給出BUSY信號。具體來說,BUSYL、BUSYR信號的正常狀態為高電平,當左端口386EX對某一存儲單元進行存取時,若右端口DSP2812也對該存儲單元進行操作,則芯片內部的仲裁單元會使信號BUSYR為低,直到左端口386EX操作完成后再將BUSYR恢復為高電平。設計中可以利用BUSY信號作為CPU的等待狀態輸入,并利用該信號使CPU在操作過程中插入等待狀態,避免兩端同時對雙口RAM進行操作。
4.2 令牌判優方式
令牌判優方式是一種快速數據交換方式。在此方式中有旗語鎖存邏輯,IDT7024內部提供了八個相互獨立的鎖存邏輯單元,最多可將RAM空間分成八個區段。這些鎖存邏輯單元被作為命令,提供指示邏輯,由兩端CPU按約定的規則,輪流地占用由它們劃定的RAM區,各區的大小及地址由軟件自由設定,且左右端操作完全一樣。當左右端同時申請同一令牌時,令牌邏輯裁定誰先占用,從而保證只有一個端口獲取令牌。不管是否取得對存儲單元的控制權,操作完成后都應向鎖存邏輯單元寫入“1”以釋放信號,從而避免資源的死鎖。
4.3 中斷防沖突方式
IDT7024左右兩端各有一個中斷信號,存儲陣列中最高的兩個單元FFEH和FFFH被用作通信的信令字和中斷源,左端口向FFFH寫入訪問的同時,右端口產生中斷信號。直到右端口進行讀取FFFH時清除,右端給左端的中斷方式與此一樣。這樣就可以有效的協調雙方的讀寫操作。使用中斷時,向FFFH和FFEH寫的內容由用戶自行定義,當不使用中斷功能時FFFH和FFEH作為雙口RAM的普通內存單元使用。使用中斷時一定注意要使兩端的BUSY為高電平否則不能正常地讀寫FFEH和FFFH,就不能正常使用中斷。
5 基于雙CPU系統的機載自適應模型實驗
為檢驗雙口RAM通訊的速度和可靠性,以及雙CPU系統在發動機數控系統的工程應用前景,本文采用機載實時自適應模型在控制器中進行了硬件在回路仿真實驗。
硬件平臺以模型機、FADEC(雙CPU系統)實物為核心建立。模型機為普通PC機,以非線性模型模擬發動機工作,模型機與FADEC之間采用RS-422A異步串行通訊,要求模型機通過串口向FADEC實時發送發動機運行參數,同時實時接收FADEC的控制參數,因此串行通訊為全雙工工作方式,通訊波特率為38400bit/s。在雙CPU系統中主CPU386 EX通過串口實時采集非線性模型提供的發動機可測參數,進行控制計算,并發給DSP,由DSP運行機載自適應模型,再通過雙口RAM輸出自適應模型計算的發動機性能蛻化量與不可測量參數,最后主CPU386 EX在把發動機控制參數與從DSP獲得的性能蛻化量與不可測量參數提供給非線性模型,形成一個完整仿真回路,工作原理見圖2。
6 硬件在回路實驗中雙口RAM的軟件設計
在雙口RAM的三種防突方式中,利用雙口RAM的BUSY信號線,雖然可以保證左右兩個端口能可行地完成數據的傳送,但當兩個端口對同一地址單元同時存取數據時,其中一個端口要處于等待狀態[2]。對于發動機數控系統來說,插入等待狀態會降低數據交換率。令牌判優方式主要用在兩個CPU共享內存空間時,而本系統雙口RAM主要用于兩個CPU之間交換數據,則交換的實時性很難用軟件來保證,而中斷方式則正好解決了這個問題。數據交換時,先將數據放入對應的雙口RAM存儲區,然后寫入對方信箱,以通知對方有數據發送;接收方在相應的中斷中對數據進行處理,同時讀自己的信箱以清除中斷信號,然后再寫入對方信箱以告知其數據已處理完畢。386EX和DSP的軟件流程分別如圖3和圖4所示。
從圖3和圖4的流程圖可以看出,386EX和DSP通過中斷方式進行數據交換,主從CPU對雙口RAM的控制變得十分簡單。經實驗測試,主從計算機之間具有很高的通信速度。其傳輸速率平均高達5M字節/秒,能很好地滿足發動機實時控制周期為20ms的實時性要求。數據傳輸可靠,抗干擾能力強。由此可以看出采用雙口RAM解決CPU間的數據傳輸,它既發揮了DSP的快速數據處理能力和CPU較強的控制功能。又實現數據運算處理與控制功能分離,使它們各司其職保證了系統的實時性、可靠性,有很強的工程應用價值。
5 結束語
本文結合航空發動機數控系統設計,介紹了利用雙口RAM實現主從機之間通信的一種實用、高效的系統設計方法。該方法較大地提高了數據傳輸的速度和可靠性, 縮短了系統對外部激勵源的響應時間, 滿足了航空發動機控制系統的實時性要求。此外,系統中所設計的386EX、DSP與雙口RAM之間的接口電路,簡單實用且邏輯控制可編程實現,具有較高的應用價值。
參考文獻:
[1] 韓鈞,康怡.雙口RAM在DSP與單片機數據通信中的應用[J].電力系統通信,2006,27(166):56-58.
[2] 黎玉剛,張英敏,付強文.雙口RAM在組合導航系統中的應用[J].電子技術應用,2005,9:71-74.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文