在眾多組合導般系統中,INS/GPS組合導航系統更是發展迅速,在軍用和民用領域均已獲得廣泛應用,而且愈來愈受到重視。就INS/GPS組合導航系統而言,除了要完成大量的導航解算工作外,還要完成控制、人機接口、與外部系統的通信等功能。由于導航系統對實時性要求較高,采用單片CPU來實現上述功能是不現實的。在研制某彈載INS/GPS組合導航系統時,針對彈載導航系統體積小、重量輕、功耗小的特點,設計了一種嵌入式高速處理系統。該系統采用TI公司的TMS320VC33和TMS320F240組成雙DSP系統,即由兩個DSP構成一個主從式系統完成相應功能。主從式系統設計的關鍵是主機與從機之間的數據通信。主從機之間的數據通信主要有串行、并行、DMA及雙口RAM四種方式。綜合各種通信方式的優缺點,考慮到導航系統實時性高、數據量大的特點,筆者以雙口RAM器件CY7C028作為共享存儲器,筆者以雙口RAM器件CY7C028作為共享存儲器,通過獨特的軟件分區處理設計有效地實現了導航系統中的主計算機與從微型計算機之間的通信。
CY7C028是CYPRESS公司研制的64K×16低功耗CMOS型靜態雙口RAM,最大訪問時間為12/15/20ns,可與大多數高速處理器配合使用,無需插入等待狀態。采用主從模式可以方便地將數據總線擴展成32位或更寬。其內部功能框圖如圖1所示。
雙口RAM芯片CY7C028作為一種性能優越的快速通信器件,大多CPU的高速數字系統中非常適用。其特點是:提供兩套完全獨立的數據線、地址線、讀寫控制線,允許兩個CPU對雙端口存儲器同時進行操作;具有兩套完全的中斷邏輯,用于實現兩個CPU之間的握手信號;具有完全獨立的忙邏輯,可保護兩個CPU對同一地址單元進行正確的讀寫操作。當兩個CPU對雙口RAM存取時,存在以下四種情況。
(1)兩個CPU不同時對同一地址單元存取數據。
(2)兩個CPU同時對同一地址單元讀出數據。
(3)兩個CPU同時對同一地址單元寫入數據。
(4)兩個CPU同時對同一地址單元操作,一個寫入數據,另一個讀出數據。
不難看出,在第一和第二種情況下,兩個端口的存取不會出現錯誤,而第三種情況會出現寫入錯誤,第四種情況會出現讀出錯誤。為了避免兩個CPU對同一地址單元進行訪問時由于地址數據爭用而造成的數據讀寫錯誤,CY7C028主要提供了以下幾種工作方式,下面逐一介紹。
1.1 硬件判優方式
雙口RAM CY7C028具有解決兩個處理器同時訪問同一地址單元的硬件仲裁邏輯。在雙口RAM的兩套控制線中,各有一個BUSY引腳。當兩端的CPU不對雙口RAM的同一地址單元存取時,BUSYL=H、BUSYR=H,可正常存儲;當兩端的CPU對雙口RAM同一地址單元存取時,哪個端口的存取請求信號出現后,則其對應的BUSY=L,禁止其存取數據;在無法判定兩個端口存取請求信號出現的先后順序時,控制線BUSYL、BUSYR只有一個為低電平。這樣,就能夠保證對應于BUSY=H的端口能進行正常存取,對應于BUSY=L的端口不能存取,從而避免了兩個CPU同時競爭地址資源而引發錯誤的可能。
1.2 中斷判優方式
中斷判優方式又稱郵箱判優方式。CY7C028具有兩套中斷邏輯,通過兩個INT引腳分別接收到兩個CPU的中斷引腳上,以實現CPU的握手。在雙口RAM的數據傳送中,兩端的CPU都把雙口RAM作為自己存儲器的一部分。當兩個CPU需要數據傳送時,假設左端CPUL向右端CPUR傳送,首先CPUL將需要傳送的數據存放到雙口RAM某段約定的地址單元中,然后向雙口RAM的最高奇地址單元0xFFFF即右端口的郵箱進行寫操作,用以向CPUR發出一個中斷,這樣CPUR就進入其相應的中斷服務子程序,將約定地址單元的數據讀出,然后對雙口RAM右端口的郵箱進行寫操作,用以清除該中斷。
1.3 令牌判優方式
令牌判優方式是一種快速數據交換方式。在此方式中有信令鎖存邏輯,CY7C028內部提供了八個相互獨立的鎖存邏輯單元,最多可將RAM空間分成八個區段。這些鎖存邏輯單元獨立于雙口RAM存儲區,并不能控制RAM區、封鎖兩端CPU的讀/寫操作,而是被作為命令,只提供指示邏輯,由兩端CPU按約定的規則,輪流地占用它們劃定的RAM區,各區的大小及地址由軟件自由設定,且左右端操作完全一樣,只要不超過令牌的限制次數即可。當左右端同時申請同一令牌時,令牌邏輯裁定誰先占用,從而保證只有一個端口獲取令牌。而在占用令牌期間,CPU可以按最高速無等待存取數據,這對實現高速、多CPU數據采集與處理系統無疑是非常有利的。但是,為了避免令牌方式爭用出錯,應盡可能使兩端CPU分時占用同一RAM區。
2 雙口RAM在組合導航系統中的應用
2.1 系統總體設計
導航系統的主要任務是測量飛行載體的即時位置速度、航向等導航參數,具有實時性高、運算量大等待點。因此在導航系統中,計算機設計是系統設計的關鍵之一。在INS/GPS組合導航系統中,導航計算機的任務主要有三類:
(1)數據采集,包括采集慣性測量單元元件輸出信號,接收外部系統校正信息,如GPS輸出信息、初始位置信息等。
(2)數據處理與運算,包括慣性測量元件的誤差補償、初始對準、導航參數解算、組合導航算法實現等。
(3)輸出導航數據及系統狀態量,包括輸出導航參數以及與其它設備交換信息等。
所有這些任務,如果都由一個CPU來完成,那么CPU在進行運算的同時,還要兼顧系統控制和數據輸入輸出,并響應頻繁的中斷,必然降低系統運行效率。所以,為了兼顧系統運行效率,減輕導航計算機負擔,設計一種以TMS320VC33為主機和以TMS320F240為接口機的雙DSP主從式系統。系統總體結構如圖2所示。
主機TMS320VC33主要用來定時采樣陀螺、加速度計的數據,并完成姿態陣計算、組合系統卡爾曼濾波器計算等導航解算。接口機TMS320F240主要完成系統相關狀態的檢測/控制,與GPS接收機、彈載計算機及其它外設的通信等任務。主機和接口機之間的通信利用雙口RAM CY7C028實現。量化器模塊主要是將加速度計輸出的電流信號轉換成主機可直接讀取的數字量。此外,由于TMS320VC33和TMS320F240的串口資源有限,無法滿足系統需要,系統中采用EXAR公司的ST16C554進行相應的串口擴展。
2.2 DSP與雙口RAM的接口設計
在組合導航系統中,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=DS&A15#PS& A15;
R/WL=R/W&STRB;
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為火控系統數據接收緩沖區數據存取基地址。
從圖4和圖5的流程圖可以看出,采用地址分區方式后,主從微型計算機對雙口RAM的軟件控制變得較為簡單。同時,為了驗證地址分區方式避免雙口RAM地址爭用現象的有效性,在系統的數據傳輸過程中,用示波器監測雙口RAM左口端口BUSY引腳的電平,發現無等待狀態信號出現,這表明對雙口RAM的軟件分區處理模式的確是一種比較理想的處理方法。
本文結合組合導航系統設計,介紹了利用又口RAM實現導航計算機主從機之間通信的一種實用、高效的系統設計方法。該方法不僅簡化了系統的硬件配置和軟件編程,而且使系統具有較高的通信速度,保證了系統的實時性。此外,系統中所設計的DSP與雙口RAM之間的接口電路,簡單實用且邏輯控制可編程實現,對其它應用系統具有較好的可移植性。
評論
查看更多