摘 要: 介紹了雙口" title="雙口">雙口RAM器件CY7C028的內(nèi)部結(jié)構(gòu)及工作原理,,詳細討論了CY7C028在INS/GPS導航系統(tǒng)" title="導航系統(tǒng)">導航系統(tǒng)" title="組合導航系統(tǒng)" title="組合導航系統(tǒng)">組合導航系統(tǒng)">組合導航系統(tǒng)中的具體應(yīng)用,給出了CY7C028與TMS320F240和TMS320VC33之間的接口電路,,并對CY7C028的分區(qū)處理進行了獨特的軟件設(shè)計,,提高了實時性" title="實時性">實時性,。
關(guān)鍵詞: 雙口RAM TMS320VC33 TMS320F240 組合導航系統(tǒng) CY7C028
導航系統(tǒng)是負責將載體從起始點引導到目的地的系統(tǒng)裝置。近年來,,隨著計算機技術(shù)和衛(wèi)星通信技術(shù)的發(fā)展和實際應(yīng)用,,使得導航系統(tǒng)的精確性和可靠性達到了更高的要求,促使導航系統(tǒng)向綜合化和容錯化方向發(fā)展,進而發(fā)展了以慣性導航為主體的各種組合導航系統(tǒng),。在眾多組合導航系統(tǒng)中,,INS/GPS組合導航系統(tǒng)更是發(fā)展迅速,在軍用和民用領(lǐng)域均已獲得廣泛應(yīng)用,,而且愈來愈受到重視,。就INS/GPS組合導航系統(tǒng)而言,除了要完成大量的導航解算工作外,,還要完成控制,、人機接口、與外部系統(tǒng)的通信等功能,。由于導航系統(tǒng)對實時性要求較高,,采用單個CPU來實現(xiàn)上述功能是不現(xiàn)實的。在研制某彈載INS/GPS組合導航系統(tǒng)時,,針對彈載導航系統(tǒng)體積小,、重量輕、功耗小的特點,,設(shè)計了一種嵌入式高速處理系統(tǒng),。該系統(tǒng)采用TI公司的TMS320VC33和TMS320F240組成雙DSP系統(tǒng),即由兩個DSP構(gòu)成一個主從式系統(tǒng)完成相應(yīng)功能,。主從式系統(tǒng)設(shè)計的關(guān)鍵是主機與從機之間的數(shù)據(jù)通信,。主從機之間的數(shù)據(jù)通信主要有串行、并行,、DMA及雙口RAM四種方式,。綜合各種通信方式的優(yōu)缺點,考慮到導航系統(tǒng)實時性高,、數(shù)據(jù)量大的特點,,筆者以雙口RAM器件 CY7C028作為共享存儲器,,通過獨特的軟件分區(qū)處理設(shè)計有效地實現(xiàn)了導航系統(tǒng)中的主計算機與從計算機之間的通信,。
1 雙口RAM芯片CY7C028的內(nèi)部結(jié)構(gòu)及工作原理
CY7C028是CYPRESS公司研制的64K×16低功耗CMOS型靜態(tài)雙口RAM,最大訪問時間為12/15/20ns,,可與大多數(shù)高速處理器配合使用,,無需插入等待狀態(tài)。采用主從模式時可以方便地將數(shù)據(jù)總線擴展成32位或更寬,。其內(nèi)部功能框圖如圖1所示,。
雙口RAM芯片CY7C028作為一種性能優(yōu)越的快速通信器件,在多CPU的高速數(shù)字系統(tǒng)中非常適用,。其特點是:提供兩套完全獨立的數(shù)據(jù)線,、地址線、讀寫控制線,允許兩個CPU對雙端口存儲器同時進行操作,;具有兩套完全的中斷邏輯,,用于實現(xiàn)兩個CPU之間的握手信號;具有完全獨立的忙邏輯,,可保證兩個CPU對同一地址單元進行正確的讀寫操作,。當兩個CPU對雙口RAM存取時,存在以下四種情況:
(1) 兩個CPU不同時對同一地址單元存取數(shù)據(jù),。
(2) 兩個CPU同時對同一地址單元讀出數(shù)據(jù),。
(3) 兩個CPU同時對同一地址單元寫入數(shù)據(jù)。
(4) 兩個CPU同時對同一地址單元操作,,一個寫入數(shù)據(jù),,另一個讀出數(shù)據(jù)。
不難看出,,在第一和第二種情況下,,兩個端口的存取不會出現(xiàn)錯誤,而第三種情況會出現(xiàn)寫入錯誤,,第四種情況會出現(xiàn)讀出錯誤,。為了避免兩個CPU對同一地址單元進行訪問時由于地址數(shù)據(jù)爭用而造成的數(shù)據(jù)讀寫錯誤,CY7C028主要提供了以下幾種工作方式[1],,下面逐一介紹,。
1.1 硬件判優(yōu)方式
雙口RAM CY7C028具有解決兩個處理器同時訪問同一地址單元的硬件仲裁邏輯。在雙口RAM的兩套控制線中,,各有一個BUSY引腳,。當兩端的CPU不對雙口RAM的同一地址單元存取時,BUSYL=H,、BUSYR=H,,可正常存儲;當兩端的CPU對雙口RAM同一地址單元存取時,,哪個端口的存取請求信號出現(xiàn)在后,,則其對應(yīng)的BUSY=L,禁止其存取數(shù)據(jù),;在無法判定兩個端口存取請求信號出現(xiàn)的先后順序時,,控制線BUSYL、BUSYR只有一個為低電平,。這樣,,就能保證對應(yīng)于BUSY=H的端口能進行正常存取,對應(yīng)于BUSY=L的端口不能存取,,從而避免了兩個CPU同時競爭地址資源而引發(fā)錯誤的可能,。
1.2 中斷判優(yōu)方式
中斷判優(yōu)方式又稱郵箱判優(yōu)方式,。CY7C028具有兩套中斷邏輯,通過兩個INT引腳分別接到兩個CPU的中斷引腳上,,以實現(xiàn)CPU的握手,。在雙口RAM的數(shù)據(jù)傳送中,兩端的CPU都把雙口RAM作為自己存儲器的一部分,。當兩個CPU需要數(shù)據(jù)傳送時,,假設(shè)左端CPUL向右端CPUR傳送,首先CPUL將需要傳送的數(shù)據(jù)存放到雙口RAM某段約定的地址單元中,,然后向雙口RAM的最高奇地址單元0xFFFF即右端口的郵箱進行寫操作,,用以向CPUR發(fā)出一個中斷,這樣CPUR就進入其相應(yīng)的中斷服務(wù)子程序,,將約定地址單元的數(shù)據(jù)讀出,,然后對雙口RAM右端口的郵箱進行寫操作,用以清除該中斷,。
1.3 令牌" title="令牌">令牌判優(yōu)方式
令牌判優(yōu)方式是一種快速數(shù)據(jù)交換方式,。在此方式中有信令鎖存邏輯,CY7C028內(nèi)部提供了八個相互獨立的鎖存邏輯單元,,最多可將RAM空間分成八個區(qū)段,。這些鎖存邏輯單元獨立于雙口RAM存儲區(qū),并不能控制RAM區(qū),、封鎖兩端CPU的讀/寫操作,,而是被作為信令,只提供指示邏輯,,由兩端CPU按約定的規(guī)則,,輪流地占用它們劃定的RAM區(qū),各區(qū)的大小及地址由軟件自由設(shè)定,,且左右端操作完全一樣,,只要不超過令牌的限制次數(shù)即可。當左右端口同時申請同一令牌時,,令牌邏輯將裁定誰先占用,,從而保證只有一個端口獲取令牌。而在占用令牌期間,,CPU可以按最高速無等待存取數(shù)據(jù),,這對實現(xiàn)高速、多CPU數(shù)據(jù)采集與處理系統(tǒng)無疑是非常有利的,。但是,為了避免令牌方式爭用出錯,,應(yīng)盡可能使兩端CPU分時占用同一RAM區(qū),。
2 雙口RAM在組合導航系統(tǒng)中的應(yīng)用
2.1 系統(tǒng)總體設(shè)計
導航系統(tǒng)的主要任務(wù)是測量飛行載體的即時位置,、速度、航向等導航參數(shù),,具有實時性高,、運算量大等特點。因此在導航系統(tǒng)中,,計算機設(shè)計是系統(tǒng)設(shè)計的關(guān)鍵之一,。在INS/GPS組合導航系統(tǒng)中,導航計算機的任務(wù)主要有三類[6]:
(1) 數(shù)據(jù)采集,,包括采集慣性測量單元元件輸出信號,,接收外部系統(tǒng)校正信息,如GPS輸出信息,、初始位置信息等,。
(2) 數(shù)據(jù)處理與運算,包括慣性測量元件的誤差補償,、初始對準,、導航參數(shù)解算、組合導航算法實現(xiàn)等,。
(3) 輸出導航數(shù)據(jù)及系統(tǒng)狀態(tài)量,,包括輸出導航參數(shù)以及與其它設(shè)備交換信息等。
所有這些任務(wù),,如果都由一個CPU來完成,,那么CPU在進行運算的同時,還要兼顧系統(tǒng)控制和數(shù)據(jù)輸入輸出,,并響應(yīng)頻繁的中斷,,必然降低系統(tǒng)運行效率。所以,,為了兼顧系統(tǒng)運行效率,,減輕導航計算機負擔,設(shè)計一種以TMS320VC33為主機和以TMS320F240為接口機的雙DSP主從式系統(tǒng),。系統(tǒng)總體結(jié)構(gòu)如圖2所示,。
主機TMS320VC33主要用來定時采樣陀螺、加速度計的數(shù)據(jù),,并完成姿態(tài)陣計算,、組合系統(tǒng)卡爾曼濾波器計算等導航解算。接口機TMS320F240主要完成系統(tǒng)相關(guān)狀態(tài)的檢測/控制,,與GPS接收機,、彈載計算機及其它外設(shè)的通信等任務(wù)。主機和接口機之間的通信利用雙口RAM CY7C028實現(xiàn),。量化器模塊主要是將加速度計輸出的電流信號轉(zhuǎn)換成主機可直接讀取的數(shù)字量,。此外,,由于TMS320VC33和TMS320F240的串口資源有限,無法滿足系統(tǒng)需要,,系統(tǒng)中采用EXAR公司的ST16C554進行相應(yīng)的串口擴展,。
2.2 DSP與雙口RAM的接口設(shè)計
在組合導航系統(tǒng)中,CY7C028與兩個DSP芯片TMS320VC33和TMS320F240之間的接口電路如圖3所示[2~4],。TMS320VC33的數(shù)據(jù)線寬度為32位,,而CY7C028的數(shù)據(jù)位寬為16位,因此采用將TMS320VC33數(shù)據(jù)總線的低16位與雙口RAM的數(shù)據(jù)總線相連,。TMS320VC33在發(fā)送32位的數(shù)據(jù)至雙口RAM時,,分兩次完成,先寫低16位,,再寫高16位,。從雙口RAM讀取數(shù)據(jù)操作與發(fā)送類似。如前所述,,使用雙口RAM的關(guān)鍵是解決左右端口同時操作同一RAM單元的競爭問題,。圖3中采用了硬件判優(yōu)的方法,即將左右端口的BUSY信號經(jīng)相應(yīng)處理后分別引至支持插入等待時序的TMS320VC33和TMS320F240 的對應(yīng)引腳,,以解決左右端口對同一單元的爭用問題,。
為了使整個系統(tǒng)成為完全可編程系統(tǒng),增加系統(tǒng)的靈活性,,系統(tǒng)中邏輯控制選用可編程的邏輯器件GAL實現(xiàn)[5],。GAL選用Lattice公司的GAL20V8B芯片,并采用Lattice公司提供的ispDesignEXPERT集成開發(fā)軟件對其進行邏輯編程,。ispDesignEXPERT支持多種硬件編程語言,,系統(tǒng)中采用ABEL語言進行編程。左,、右兩端GAL的輸入管腳信號定義如圖3中所示,。
左端譯碼電路的邏輯方程為:
分別為雙口RAM左端口的片選、讀/寫及輸出使能控制信號,。為引至TMS320F240 READY引腳的信號,。
在右端譯碼電路中,引至TMS320VC33 引腳的信號為雙口RAM右端口輸出信號,,其余邏輯控制信號編程與左端類似,,不再贅述。
CY7C028具有64K字的存儲空間,,存儲資源較為豐富,。系統(tǒng)設(shè)計時,根據(jù)實際需要將其前32K字存儲空間作為TMS320F240仿真程序的存儲空間,,將其后32K字的存儲空間作為雙DSP的共享數(shù)據(jù)存儲空間,。這樣設(shè)計,,既減小了電路板面積又簡化了系統(tǒng)的構(gòu)成,。在本系統(tǒng)中,,CY7C028共享數(shù)據(jù)存儲區(qū)的地址確定如下:TMS320F240端為0x8000~0xFFFF,TMS320VC33端為0xC88000~0xC8FFFF,。
采用上述接口電路,,使得導航計算機系統(tǒng)電路簡單、可靠性高,,同時使主從計算機之間具有很高的通信速度,。經(jīng)實驗測試,在傳輸4K字節(jié)的系統(tǒng)數(shù)據(jù)過程中,,其傳輸速率高達6.6M字節(jié)/秒,,能很好地滿足系統(tǒng)導航解算周期為5ms的實時性要求。
2.3 雙口RAM的分區(qū)處理及軟件設(shè)計
利用雙口RAM的BUSY信號線,,雖然可以保證左右兩個端口能可靠地完成數(shù)據(jù)的傳送,,但當兩個端口對同一地址單元同時存取數(shù)據(jù)時,其中一個端口要處于等待狀態(tài),。對于導航系統(tǒng)來說,,插入等待狀態(tài)會降低數(shù)據(jù)交換率,這在一定程度上會影響系統(tǒng)的實時性,。為了盡可能地避免出現(xiàn)等待狀態(tài),,結(jié)合系統(tǒng)中的數(shù)據(jù)總以幀的方式進行數(shù)據(jù)處理的特點,在對雙口RAM編程時,,采用了地址分區(qū)方式,。即將共享數(shù)據(jù)區(qū)按一定的標準劃分成若干個數(shù)據(jù)塊并制定相應(yīng)的軟件協(xié)議,使得主,、從機以適當?shù)臅r序讀寫數(shù)據(jù),,從而避免對同一單元的競用,提高實時性,。
在本系統(tǒng)中,,主、從機之間需要交換的數(shù)據(jù)主要是與GPS接收機,、彈載計算機,、火控系統(tǒng)、地面檢測系統(tǒng)進行雙向通信的數(shù)據(jù),。軟件分區(qū)處理時,,按照交換數(shù)據(jù)的類型將雙口RAM的共享存儲區(qū)從起始單元開始分成四個大的數(shù)據(jù)區(qū),數(shù)據(jù)區(qū)大小由實際的數(shù)據(jù)幀長度確定,。每個大數(shù)據(jù)區(qū)又細分為一個數(shù)據(jù)接收緩沖區(qū)和一個數(shù)據(jù)發(fā)送緩沖區(qū),,且每個緩沖區(qū)都定義有相應(yīng)的數(shù)據(jù)存取基地址和讀,、寫指針。主,、從機根據(jù)緩沖區(qū)數(shù)據(jù)存取基地址及讀,、寫指針,對相應(yīng)單元進行讀,、寫操作,,整個緩沖區(qū)等效于一個環(huán)形數(shù)組。若緩沖區(qū)大小設(shè)置合理,,當新數(shù)據(jù)覆蓋舊數(shù)據(jù)時,,舊數(shù)據(jù)已經(jīng)處理,既不會遺漏數(shù)據(jù)又節(jié)省了存儲單元,。
在本系統(tǒng)中,,所有對外部系統(tǒng)的通信工作均由從機TMS320F240通過擴展串口ST16C554來完成??紤]到整個系統(tǒng)的數(shù)據(jù)處理流程及時序要求,,在TMS320F240的軟件設(shè)計中,數(shù)據(jù)接收采用中斷方式,,數(shù)據(jù)發(fā)送則是在軟件的主流程內(nèi)部維持一個無限循環(huán),,將發(fā)送程序駐留在此循環(huán)中,通過查詢發(fā)送緩沖區(qū)的讀,、寫指針,,實時發(fā)送數(shù)據(jù)。ST16C554共有四個串口,,分別負責與前述四個外部系統(tǒng)的數(shù)據(jù)通信,。主機TMS320VC33只需對雙口RAM中相應(yīng)的數(shù)據(jù)緩沖區(qū)寫入要發(fā)送的數(shù)據(jù)或讀取需要的數(shù)據(jù)即可。鑒于主,、從機對這四種類型數(shù)據(jù)的存取操作程序類似,,在此只給出TMS320F240接收火控系統(tǒng)數(shù)據(jù)和TMS320VC33讀取火控系統(tǒng)數(shù)據(jù)的程序流程圖,分別如圖4和圖5所示,。其中,,Base為火控系統(tǒng)數(shù)據(jù)接收緩沖區(qū)數(shù)據(jù)存取基地址。
?
從圖4和圖5的流程圖可以看出,,采用地址分區(qū)方式后,,主從計算機對雙口RAM的軟件控制變得較為簡單。同時,,為了驗證地址分區(qū)方式避免雙口RAM地址爭用現(xiàn)象的有效性,,在系統(tǒng)的數(shù)據(jù)傳輸過程中,用示波器監(jiān)測雙口RAM左右端口BUSY引腳的電平,發(fā)現(xiàn)無等待狀態(tài)信號出現(xiàn),,這表明對雙口RAM的軟件分區(qū)處理模式的確是一種比較理想的處理方法,。
本文結(jié)合組合導航系統(tǒng)設(shè)計,介紹了利用雙口RAM實現(xiàn)導航計算機主從機之間通信的一種實用,、高效的系統(tǒng)設(shè)計方法,。該方法不僅簡化了系統(tǒng)的硬件配置和軟件編程,而且使系統(tǒng)具有較高的通信速度,,保證了系統(tǒng)的實時性,。此外,,系統(tǒng)中所設(shè)計的DSP與雙口RAM之間的接口電路,,簡單實用且邏輯控制可編程實現(xiàn),對其它應(yīng)用系統(tǒng)具有較好的可移植性,。
參考文獻
1 CY7C028 DataSheet[Z].USA:Cypress Semiconductor Corporation,2000
2 TMS320F/C240 DSP Controllers Reference Guide[Z].USA:Texa Instruments,2002
3 TMS32OC3X User’s Guide[Z]. USA:Texa Instruments,2002
4 張雄偉,陳 亮,,徐光輝.DSP集成開發(fā)與應(yīng)用實例[M].北京:電子工業(yè)出版社,2002
5 徐惠民,安德寧.數(shù)字邏輯設(shè)計與VHDL描述[M].北京:機械工業(yè)出版社,2002
6 以光衢.慣性導航原理[M]. 北京:航空工業(yè)出版社,1987