雙口RAM芯片CY7C028的INS/GPS組合導航系統
在組合導航系統中,CY7C028與兩個DSP芯片TMS320VC33和TMS320F240之間的接口電路如圖3所示。TMS320VC33的數據線寬度為32位,而CY7C028的數據位寬為16位,因此采用將TMS320VC33數據總線的低16位與雙口RAM的數據總線相連。TMS320VC33在發送32位的數據至又口RAM時,分兩次完成,先寫低16位,再寫高16位。從雙口RAM讀取數據操作與發送類似。如前所述,使用雙口RAM的關鍵是解決左右端口同時操作同一RAM單元的競爭問題。圖3中采用了硬件判優的方法,即將左右端口的BUSY信號經相應處理后分別引至支持插入等待時序的TMS320VC33和TMS320F240的對應引腳,以解決左右端口對同一單元的爭用問題。

為了使整個系統成為完全可編程系統,增加系統的靈活性,系統中邏輯控制選用可編程的邏輯器件GAL實現,GAL選用Lattice公司的GAL20V8B芯片,并采用Lattice公司提供的ispDesignEXPERT集成開發軟件對其進行邏輯編程。IspDesignEXPERT支持多種硬件編程語言,系統中采用ABEL語言進行編程。左、右兩端GAL的輸入管腳信號定義如圖3中所示。
左端譯碼電路的邏輯方程為:
CE0L=DSA15#PS A15;
R/WL=R/WSTRB;
OEL=R/W STRB;
BUSYL=READY;
CE0L、R/WL、OEL分別為雙口RAM左端口的片選、讀/寫及輸出使能控制信號。BUSYL為引至
TMS320F240 READY引腳的信號。
在右端譯碼電路中,引至TMS320VC33 RDY引腳的信號為雙口RAM右端口輸出信號BUSYR,其余邏輯控制信號編程與左端類似,不再多述。
CY7C028具有64K字的存儲空間,存儲資源較為豐富。系統設計時,根據實際需要將其前32K字存儲空間作為TMS320F240仿真程序的存儲空間,將其后32K字的存儲空間作為雙DSP的共享數據存儲空間。這樣設計,既減小了電路板面積又簡化了系統的構成。在本系統中,CY7C028共享數據存儲區的數據確定如下:TMS320F240端為0x8000~0xFFFF,TMS320VC33端為0xC88000~0xC8FFFF。
采用上述接口電路,使得導航計算機系統電路簡單、可靠性高,同時使主從計算機之間具有很高的通信速度。經實驗測試,在傳輸4K字節的系統數據過程中,其傳輸速率高達6.6M字節/秒,能很好地滿足系統導航解算周期為5ms的實時性要求。
2.3 雙口RAM的分區處理及軟件設計
利用雙口RAM的BUSY信號線,雖然可以保證左右兩個端口能可行地完成數據的傳送,但當兩個端口對同一地址單元同時存取數據時,其中一個端口要處于等待狀態。對于導航系統來說,插入等待狀態會降低數據交換率,這在一定程度上會影響系統的實時性。為了盡可能地避免出現等待狀態,結合系統中的數據總以幀的方式進行數據處理的特點,在對雙口RAM編程時,采用了地址分區方式。即將共享數據區按一定的標準劃分成若干個數據并制定相應的軟件協議,使得主、從機以適當的時序讀寫數據,從而避免對同一單元的競用,提高實時性。
在本系統中,主、從機之間需要交換的數據主要是與GPS接收機、彈載計算機、火控系統、地面檢測系統進行雙向通信的數據。軟件分區處理時,按照交換數據的類型將雙口RAM的共享存儲區從起始單元開始分成四個大的數據區,數據區大小由實際的數據幀長度確定。每個大數據區又細分為一個數據接收緩沖區和一個數據發送緩沖區,且每個緩沖區都定義有相應的數據存取基地址和讀、寫指針。主、從機根據緩沖區數據存取基地址及讀、寫指針,對相應單元進行讀、寫操作,整個緩沖區等效于一個環形數據。若緩沖區大小設置合理,當新數據覆蓋舊數據時,舊數據已經處理,既不會遺漏數據又節省了存儲單元。
在本系統中,所有對外部系統的通信工作均由從機TMS320F240通過擴展串口ST16C554來完成。考慮到整個系統的數據處理流程及時序要求,在TMS320F240的軟件設計中,數據接收采用中斷方式,數據發送則是在軟件的主流程內部維持一個無限循環,將發送程序駐留在此循環中,通過查詢發送緩沖區的讀、寫指針,實時發送數據。ST16C554共有四個串口,分別負責與前述四個外部系統的數據通信。主機TMS320VC33只需對雙口RAM中相應的數據緩沖區寫入要發送的數據或讀取需要的數據即可。鑒于主、從機對這四種類型數據的存取操作程序類似,在此只給出TMS320F240接收火控系統數據和TMS320VC33讀取火控系統數據的程序流程圖,分別如圖4和圖5所示。其中,Base為火控系統數據接收緩沖區數據存取基地址。
評論