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