基于CPLD的并口數據的采集和存儲
需要輸出的并口數據從存儲器讀出后應先于握手信號放置在輸出口上并進行保持,待并口數據穩定后才能輸出握手信號。握手信號的延遲時間及握手信號的寬度可以進行設定以增強系統的適應性。并口發送數據示意圖如圖3所示。
2.3數據存儲及與交換
本系統中由雙口RAM作為系統輸入和輸出數據的緩沖區,由CPLD和總線接口PCI9054共同使用。由于系統輸入輸出數據量較大,輸入輸出操作頻繁,因此可將雙口RAM的存儲空間平均分割成長度相同的兩半,輸入輸出數據占用一半存儲空間。這樣當CPLD向第一塊存儲空間寫入數據時,PCI9054既可以從這塊存儲空間讀出數據,同時還可以向另外一塊存儲空間寫入數據,這樣可以幾乎節約一半的操作時間。但是當雙口RAM的兩端同時對同一個地址單元分別進行讀數據和寫數據的操作時,讀出的數據會是錯誤的。為了防止發生這種錯誤,可以使用雙口RAM內部的仲裁機制,利用BUSY信號進行判斷。當讀取一個地址單元中的數據時首先判斷BUSY信號是否為低電平,如果BUSY信號為低電平時表示雙口RAM的另外一邊正在對該地址單元進行寫操作。使用仲裁機制可以有效消除讀寫沖突,但是也需要系統不斷的對雙口RAM的BUSY信號進行判斷。這會嚴重的占用系統資源,同時也影響了數據的傳輸速度。本系統中,再次利用乒乓結構將接收和發送數據的存儲空間各分為長度相等的兩部分。存儲空間最終分配示意圖如圖4所示。
接收數據時,當CPLD將一塊出處空間寫滿數據以后向PCI9054產生中斷信號并產生一個標志信息,PCI9054接收到中斷信號以后首先查詢標志信息判斷是哪一塊存儲區域已經寫滿,然后將這一存儲空間中的數據讀出并發送給系統。此時CPLD可以繼續向另一塊存儲空間寫入數據。同樣地,當PCI9054向其中一塊發送區寫入數據時,CPLD可以從另一塊區域中讀出數據。
乒乓結構存儲形式使得數據交換和數據處理可以并行進行,極大地節約了處理時間,對系統滿足實時性要求具有及其重要的意義。
2.4 接口時序控制
當雷達的回波數據與雙口RAM中的數據同時淮備好時,由于PCI9054局部總線讀寫速度較快,如果先接收數據,則雙口RAM中的數據有可能溢出,而如果先將雙口RAM中準備好的數據發送出去則接收的數據需要等待一段時間,影響了系統的實時性。因此CPLD必須控制雙口RAM的讀寫時序,既使發送區的數據不會溢出同時又不影響系統的實時性。由于雙口數據速率相對于系統來說速度相對比較慢,因此本系統采用分時處理的辦法解決。首先判斷握手信號是否有效,如果握手信號有效則表明并口正在將接收數據寫入雙口RAM,否則并口正處于接收間隔時間,CPLD對雙口RAM沒有寫操作。由于每組并口數據的傳輸速率比較固定,因此間隔時間可以預知。在此間隔時間將雙口RAM中的數據讀出并發送,通過這種方法可以進一步提高數據的收發速率,減少數據在雙口中的滯留時間,更加提高了系統的實時性。
3 結 語
本文采用單片CPLD完成了以往需要大量外圍器件來完成的雷達并口數據收發及存儲功能,所設計的CPLD已應用于雷達系統中,其應用結果表明:
(1)采用CPLD極大的簡化了系統結構,減少了板卡體積,降低了系統的發熱量和干擾,提高了系統的可靠性,也給調試維修帶來了極大的方便。
(2)使用QuartusⅡ使得硬件“軟件化”自動設計,更新了傳統的電路設計和調試方式,大大縮短了開發周期,特別是其設計仿真和定時分析使得設計更可靠,確保了系統邏輯的正確性。
評論