一種34位串行編碼方法的設計及其FPGA實現
在單極性歸零碼合成模塊中,信息“1”和信息“0”分別送到D觸發器的預置端和清零端,經過D觸發器處理后,產生單極性歸零碼信號(Sd)。將單極性歸零碼信號送入到34位串入并出移位寄存器模塊中,在移位時鐘的作用下,單極性歸零碼信號在串入并出移位寄存器模塊內逐位移動,形成34位并行碼,并由鎖存脈沖(Latch)鎖存并行數據,校驗位驗證模塊對并行數據進行模3校驗位驗證,當校驗位正確時,產生確認脈沖,作為嵌入式控制器SPOC模塊的中斷信號,SOPC模塊響應中斷并執行中斷服務程序,讀出并行數據,存儲在存儲器中。
串入并出移位寄存器模塊由FPGA芯片的LPM_SHIFT-REG(移位寄存器)兆功能實現。校驗位驗證模塊用到了LPM_DIVIDE(除法)和LPM_COMPA RE(比較器)兆功能。
SOPC模塊設計基于NiosⅡ軟核嵌入式微處理器,利用FPGA 中的可編程邏輯資源和IP軟核可以方便地構成嵌入式微處理器的接口功能模塊,SOPC模塊包括NiosⅡ處理器、Avalon交換式總線、片內外存儲器以及外設模塊等。根據需要,可對NiosⅡ嵌入式系統裁剪,進行自己定制。SOPCBuilder軟件自動生成Avalon總線,用戶可以將處理器、存儲器和其他外設模塊連接起來,形成一個完整的系統。在本部分電路設計中,用到了NiosⅡ嵌入式處理器的片內存儲器和中斷功能。
在接收模塊設計中,應著重考慮如何找到34位串行編碼的起始位,這也是保證接收模塊可靠性的關鍵。由于兩個相鄰碼位的時間間隔為一個碼位周期,所以可以采用計數超時方法對移位脈沖進行串行編碼起始位檢測,尋找起始位。起始位檢測模塊主要由計數器構成。超時門限的設定原則上應大于一個碼位周期,而小于兩個碼位周期。該模塊的輸入時鐘來自分頻模塊的32 MHz高穩定晶振。分頻后的輸入時鐘為16 MHz,即以串行編碼傳輸速率20倍的頻率進行超時計數檢測。
具體電路實現還要考慮串行信號傳輸時產生的信號畸變等因素,上述門限設定原則應有所冗余。從接收到一個碼位到設定的時間門限之間,如果沒有接收到其他碼位,則可認為即將到來的下一個碼位就是一個34位編碼的起始位,此時將串入并出移位寄存器做清零處理,每接收完一個34位串行編碼都應重新找一次起始位。從可靠性考慮,設計了移位時鐘脈沖完整性檢測電路,這樣,即使接收偶爾出現誤碼,也不會影響其他34位串行編碼的接收。
2.2 34位串行編碼的發送
進行34位編碼發送時,需要將所發送的32位并行數據轉換為帶有校驗位的34位并行數據。SOPC模塊將32位并行數據送入到校驗位運箅模塊,計算出兩位校驗位,32位并行數據與兩位校驗位送入34位并行編碼合成模塊,合并成34位并行編碼。SOPC模塊發出使能信號(Enable),使能移位時鐘產生模塊,該模塊產乍移位時鐘脈沖(Shift-clk),移位時鐘脈沖經過時延電路后,產生歸零同步時鐘脈沖(Rz-clk)。
在移位時鐘脈沖的作用下,34位并行數據在并入串出移位寄存器中逐位移出,形成兩路極性相反的非歸零串行編碼(Nrz-code),與34個歸零同步時鐘脈沖相或后,即產生信息“1”和信息“0”的單檄性歸零脈沖。單極性歸零脈沖經電流驅動電路后,送入耦合變壓器輸出。在編碼發送模塊設計時,需要注意歸零同步時鐘脈沖與非歸零串行編碼的時序控制,防止出現“毛刺”信號,這可以采用觸發器延時的方法實現。34位串行編碼發送模塊結構圖如圖5所示。

3 結束語
某專用接口裝置采用34位串行編碼與外部設備進行信息交換,該編碼具有抗干擾性強,可靠性高的特點,適用于電磁環境惡劣情況下的信號傳輸。在該專用接口裝置檢測設備研制中,采用以FPGA芯片為核心的可編程邏輯設計以及SOPC軟核設計技術實現了該類型編碼的接收、發送電路。試驗表明:設計的34位串行編碼收發模塊可靠性高,即使在文際測試信號有比較明顯畸變的情況下,收發也未出現錯誤,功能完全滿足要求,能夠實現專用接口裝置的接口功能檢測。
評論