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