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