基于FPGA的34位串行編碼設計
新型艦艇或航空系統(tǒng)中所裝電子設備數量較多,布局緊湊,易造成系統(tǒng)內部電磁干擾,普通數字信號不能夠滿足可靠傳輸的要求,對普通串行碼進行調制后傳輸信息,可使信號的抗干擾性能大大增加。RS232、RS422、RS485以及ARINC429等都是電子設備中常用的串行數據傳輸標準。
某專用接口裝置采用一種點對點的34位串行編碼數據傳輸標準,34位串行編碼經耦合變壓器調制后進行信息傳輸,能夠在惡劣的電磁環(huán)境下可靠傳輸數據。為實現對該接口裝置的測試,研制了針對該裝置的檢測設備,可用于該裝置接口功能的檢查和故障排除。
與其他常用的串行編碼(如異步串行碼等)相比,專用接口裝置所采用的34位串行編碼的格式有所不同,常用串行編碼的收發(fā)大都有專用的芯片來完成,而該類型的34位串行編碼沒有相應的號用收發(fā)芯片直接應用,因此在該專用接口裝置檢測設備研制中,基于FPGA芯片設計了34位串行編碼信號的檢測電路,實現了34位串行編碼信號的可靠收發(fā)。
1 34位串行編碼的格式
專用接口裝置收發(fā)信息使用的34位串行編碼為歸零碼,解決了數位難以分辨的問題,接收端可以利用編碼自身攜帶的時鐘信息。34位串行編碼的收發(fā)采用耦合變壓器方式,加大了高電平和低電平之間的電位差,有利于提高傳輸的可靠性。串行編碼信號高低電平幅度分別為4 V和0 V,一個碼位的高電平脈沖寬度為0.5μs,歸零時間為0.75μs,傳輸速率為800 kbps。為進一步增強通信的可靠性,串行數據采用雙線傳輸。傳輸信息時,信息“1”和信息“0”分別由兩個電纜傳輸,稱為信息“1”線和信息“0”線。
對于信息“1”線,數據位為“1”時,發(fā)送一個歸零脈沖,數據位為“0”時,發(fā)送低電平;信息“0”線則正好相反,數據位為“0”時,發(fā)送一個歸零脈沖,數據位為“1”時,發(fā)送低電平。連續(xù)發(fā)送兩個34位串行數據時,時間間隔最短不得小于4個歸零脈沖周期。
34位串行編碼的前兩位為校驗位,后32位為數據位,均是先傳輸低位。校驗位的計算方法為:32位串行數據經過模3運算后,取反碼的值即為校驗位。以圖1說明34位串行碼的格式。圖1中要傳輸的32位數據為0X8000FF7E,該數值經過模3運算后,值為0X10,該值取反碼后為0x01,即是校驗位。
2 34位串行編碼收發(fā)模塊的設計與實現
專用接口裝置的檢測設備能夠實現34位串行編碼的收發(fā),用以驗證專用裝置的接口功能是否正常,檢測設備的總體結構圖見圖2。實現34位串行編碼的可靠收發(fā)是研制檢測設備的關鍵技術。在分析34位串行編碼格式的基礎上,基于FPGA芯片EP2C8研制了核心模塊,模塊可以接收上位控制計算機的命令,完成34位串行編碼數據的收發(fā)。核心模塊前端的信號調理電路包括發(fā)送信號時的電流驅動電路、接收信號時的高速比較器電路以及雙耦合變樂器。
實現34位串行編碼的收發(fā)需要設計34位串行碼的同步時鐘提取電路,通過移位寄存器進行收發(fā),發(fā)送數據校驗位的產生和接收數據校驗位的驗證需要用到運算模塊,電路設計比較復雜,所需硬件較多,而且由于34位編碼傳輸速率較高,為了保證收發(fā)可靠、不漏碼,從功能和實現成本上考慮,在電路設計上,采用了大規(guī)??删幊踢壿嬓酒瑢崿F34位串行編碼信號的接收和發(fā)送。所用FPGA芯片為Altera公司的CvcloneⅡ系列中的EP2C8,該芯片內核電壓為1.2 V,輸入輸出口為3.3 V邏輯電平,功耗很低。核心模塊設計采用原理圖輸入和VHDL語言相結合的方式,利用OuartusⅡ軟件和SignalTap功能進行邏輯電路的開發(fā)和調試。
2.1 34位串行編碼的接收
34位串行編碼接收模塊結構圖見圖3。在接收34位串行碼時,首先要對接收信號進行解調,來自耦合變壓器的34位串行碼經過高速比較器CMP401電路進行整形處理,轉變成普通數字電路容易處理的單極性歸零碼。
接收34位串行編碼信息需利用串行碼自身攜帶的時鐘信息,將信息“1”和信息“0”的脈沖相或,即可得到移位時鐘(Shift-clk)。接收模塊各節(jié)點信號時序圖如圖4所示。
在單極性歸零碼合成模塊中,信息“1”和信息“0”分別送到D觸發(fā)器的預置端和清零端,經過D觸發(fā)器處理后,產生單極性歸零碼信號(Sd)。將單極性歸零碼信號送入到34位串入并出移位寄存器模塊中,在移位時鐘的作用下,單極性歸零碼信號在串入并出移位寄存器模塊內逐位移動,形成34位并行碼,并由鎖存脈沖(Latch)鎖存并行數據,校驗位驗證模塊對并行數據進行模3校驗位驗證,當校驗位正確時,產生確認脈沖,作為嵌入式控制器SPOC模塊的中斷信號,SOPC模塊響應中斷并執(zhí)行中斷服務程序,讀出并行數據,存儲在存儲器中。
串入并出移位寄存器模塊由FPGA芯片的LPM_SHIFT-REG(移位寄存器)兆功能實現。校驗位驗證模塊用到了LPM_DIVIDE(除法)和LPM_COMPA RE(比較器)兆功能。
SOPC模塊設計基于NiosⅡ軟核嵌入式微處理器,利用FPGA 中的可編程邏輯資源和IP軟核可以方便地構成嵌入式微處理器的接口功能模塊,SOPC模塊包括NiosⅡ處理器、Avalon交換式總線、片內外存儲器以及外設模塊等。根據需要,可對NiosⅡ嵌入式系統(tǒng)裁剪,進行自己定制。SOPCBuilder軟件自動生成Avalon總線,用戶可以將處理器、存儲器和其他外設模塊連接起來,形成一個完整的系統(tǒng)。在本部分電路設計中,用到了NiosⅡ嵌入式處理器的片內存儲器和中斷功能。
在接收模塊設計中,應著重考慮如何找到34位串行編碼的起始位,這也是保證接收模塊可靠性的關鍵。由于兩個相鄰碼位的時間間隔為一個碼位周期,所以可以采用計數超時方法對移位脈沖進行串行編碼起始位檢測,尋找起始位。起始位檢測模塊主要由計數器構成。超時門限的設定原則上應大于一個碼位周期,而小于兩個碼位周期。該模塊的輸入時鐘來自分頻模塊的32 MHz高穩(wěn)定晶振。分頻后的輸入時鐘為16 MHz,即以串行編碼傳輸速率20倍的頻率進行超時計數檢測。
具體電路實現還要考慮串行信號傳輸時產生的信號畸變等因素,上述門限設定原則應有所冗余。從接收到一個碼位到設定的時間門限之間,如果沒有接收到其他碼位,則可認為即將到來的下一個碼位就是一個34位編碼的起始位,此時將串入并出移位寄存器做清零處理,每接收完一個34位串行編碼都應重新找一次起始位。從可靠性考慮,設計了移位時鐘脈沖完整性檢測電路,這樣,即使接收偶爾出現誤碼,也不會影響其他34位串行編碼的接收。
2.2 34位串行編碼的發(fā)送
進行34位編碼發(fā)送時,需要將所發(fā)送的32位并行數據轉換為帶有校驗位的34位并行數據。SOPC模塊將32位并行數據送入到校驗位運箅模塊,計算出兩位校驗位,32位并行數據與兩位校驗位送入34位并行編碼合成模塊,合并成34位并行編碼。SOPC模塊發(fā)出使能信號(Enable),使能移位時鐘產生模塊,該模塊產乍移位時鐘脈沖(Shift-clk),移位時鐘脈沖經過時延電路后,產生歸零同步時鐘脈沖(Rz-clk)。
在移位時鐘脈沖的作用下,34位并行數據在并入串出移位寄存器中逐位移出,形成兩路極性相反的非歸零串行編碼(Nrz-code),與34個歸零同步時鐘脈沖相或后,即產生信息“1”和信息“0”的單檄性歸零脈沖。單極性歸零脈沖經電流驅動電路后,送入耦合變壓器輸出。在編碼發(fā)送模塊設計時,需要注意歸零同步時鐘脈沖與非歸零串行編碼的時序控制,防止出現“毛刺”信號,這可以采用觸發(fā)器延時的方法實現。34位串行編碼發(fā)送模塊結構圖如圖5所示。
3 結束語
某專用接口裝置采用34位串行編碼與外部設備進行信息交換,該編碼具有抗干擾性強,可靠性高的特點,適用于電磁環(huán)境惡劣情況下的信號傳輸。在該專用接口裝置檢測設備研制中,采用以FPGA芯片為核心的可編程邏輯設計以及SOPC軟核設計技術實現了該類型編碼的接收、發(fā)送電路。試驗表明:設計的34位串行編碼收發(fā)模塊可靠性高,即使在文際測試信號有比較明顯畸變的情況下,收發(fā)也未出現錯誤,功能完全滿足要求,能夠實現專用接口裝置的接口功能檢測。
評論