高波 胡建楠
【摘要】本設(shè)計(jì)是基于FPGA硬件平臺(tái)進(jìn)行多路開關(guān)量和模擬量實(shí)時(shí)光纖遠(yuǎn)傳系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)了32路開關(guān)量和8路模擬量通過光纖,以100Mbps的速度進(jìn)行雙全工傳輸?shù)墓δ埽撓到y(tǒng)具有實(shí)時(shí)性、抗干擾性、靈活性等特點(diǎn)。
【關(guān)鍵詞】FPGA;光纖傳輸;編解碼;開關(guān)量;模擬量
1.引言
目前,隨著工業(yè)系統(tǒng)的不斷擴(kuò)大,多路的開關(guān)量和模擬量需要遠(yuǎn)傳的需求越來越大,并且對(duì)實(shí)時(shí)性和抗干擾性要求也越來越高。如果采用單片機(jī)或ARM實(shí)現(xiàn)多路傳輸功能,都有路數(shù)少,不能實(shí)時(shí)傳輸?shù)热秉c(diǎn)。而FPGA的I/O引腳數(shù)量大,處理效率高,能夠滿足多路開關(guān)量和模擬量實(shí)時(shí)的傳輸,并且在FPGA中實(shí)現(xiàn)編解碼效率非常高,所以本系統(tǒng)采用基于FPGA進(jìn)行設(shè)計(jì)。本系統(tǒng)采用ACTEL Proasic3系列FPGA芯片,以Libero IDE為軟件開發(fā)環(huán)境對(duì)系統(tǒng)平臺(tái)進(jìn)行控制和處理。
2.光纖遠(yuǎn)傳系統(tǒng)硬件平臺(tái)的設(shè)計(jì)
2.1 光纖遠(yuǎn)傳系統(tǒng)硬件平臺(tái)的總體構(gòu)架
該光纖遠(yuǎn)傳系統(tǒng)硬件平臺(tái)分為模擬量采集、模擬量輸出、開關(guān)量采集、開關(guān)量輸出和通信控制傳輸五個(gè)部分。
本系統(tǒng)的基本構(gòu)架:將32路9~24V的開關(guān)量信號(hào)通過開關(guān)量采集模塊轉(zhuǎn)換成5VTTL電平輸出到通信控制傳輸模塊;8路0~10V模擬量信號(hào)通過模擬量采集模塊進(jìn)行采集,通過SPI總線輸出到通信控制傳輸模塊。通信控制傳輸模塊由ACTEL Proasic3的FPGA芯片作為控制處理器,將接收到的開關(guān)量數(shù)據(jù)和模擬數(shù)據(jù)進(jìn)行編碼通過光纖的方式進(jìn)行傳輸,同時(shí),通信控制傳輸模塊也可以將接收到的數(shù)據(jù)信息進(jìn)行解碼,將解碼完成的開關(guān)量通過開關(guān)量輸出模塊進(jìn)行輸出,模擬量通過SPI總線發(fā)送到模擬量輸出模塊中進(jìn)行輸出。系統(tǒng)硬件平臺(tái)總體構(gòu)架圖如圖1所示。
圖1 系統(tǒng)硬件平臺(tái)總體構(gòu)架圖
2.2 模擬量采集和輸出硬件構(gòu)架
模擬量采集模塊是基于AD7792為核心進(jìn)行設(shè)計(jì)的,AD7792集成了片內(nèi)低噪聲儀表放大器,16為分辨率,均方根噪聲為40nV,并且具有SPI、QSPI、MICROWIRE串行接口,適合應(yīng)用于低功耗、低噪聲的環(huán)境[1]。在模擬量采集模塊中,采用ADR441ARMZ作為AD7792的電壓基準(zhǔn);采用ADG5409作為控制前端4路模擬量輸入的時(shí)序。
模擬量采集模塊完成了8路0~10V電壓信號(hào)或者0~20mA電流信號(hào)的采集,并通過SPI總線將采集到的結(jié)果發(fā)送到FPGA中,其中采集的順序由FPGA控制。AD7792周圍電路如圖2所示。
模擬量輸出模塊式基于AD5412為核心進(jìn)行設(shè)計(jì)的,AD5412是低成本、精密、完全集成、12位數(shù)模轉(zhuǎn)換器(DAC),內(nèi)置可編程電流源和可編程電壓輸出,設(shè)計(jì)用于滿足工業(yè)過程控制應(yīng)用的需要。其輸出可通過編程設(shè)置為電流0mA至20mA、0mA至24mA和電壓0V至10V、±5V或±10V輸出范圍,具有SPI、QSPI、MICROWIRE串行接口[2]。
模擬量輸出模塊完成了8路0~10V電壓信號(hào)或者0~20mA電流信號(hào)的輸出。AD5412周圍電路如圖3所示。
2.3 開關(guān)量采集和輸出硬件構(gòu)架
開關(guān)量采集模塊采用TLP521光耦隔離模塊,TLP521使前端與負(fù)載完全隔離,目的在于增加安全性,減小電路干擾,減化電路設(shè)計(jì)。本模塊用于對(duì)9~24V的開關(guān)量信號(hào)輸入可進(jìn)行隔離輸出5VTTL電壓,直接將輸出的開關(guān)電壓信號(hào)輸入到FPGA上,其原理如圖4所示。
開關(guān)量輸出模塊設(shè)計(jì)主要采用了ULN2803芯片和24V繼電器。ULN2803是是高耐壓、大電流達(dá)林頓陳列,由七個(gè)硅NPN達(dá)林頓管組成。本模塊將FPGA輸出的5VTTL電平開關(guān)信號(hào)通過ULN2803驅(qū)動(dòng)24V繼電器,最終將24V開關(guān)信號(hào)對(duì)外輸出。其原理如圖5所示。
2.4 通信傳輸控制硬件構(gòu)架
通信傳輸控制模塊是基于ACTEL Proasic3的FPGA芯片為核心設(shè)計(jì)的。通過SPI總線,采用連續(xù)讀寫方式和中值濾波,分別對(duì)模擬量采集模塊和模擬量輸出模塊控制;通過對(duì)I/O引腳進(jìn)行防抖動(dòng)處理的讀取和輸出,分別對(duì)開關(guān)量采集模塊和開關(guān)量輸出模塊控制;通過采用LVPECL差分信號(hào)轉(zhuǎn)換為光纖信號(hào)傳輸方式,兩個(gè)通信傳輸控制模塊進(jìn)行雙全工通信,通過組包、解碼和編碼方式,將采集到的模擬量和開關(guān)量的信息進(jìn)行傳輸和接收。
3.光纖遠(yuǎn)傳系統(tǒng)軟件平臺(tái)的設(shè)計(jì)
光纖遠(yuǎn)傳系統(tǒng)軟件平臺(tái)主要采用了8B/10B完美編解碼、(2,2,3)卷積碼編碼、Viterbi最大似然估計(jì)硬解碼算法處理,主要提高了系統(tǒng)的抗干擾性,其設(shè)計(jì)流程圖如圖6所示。
3.1 8B/10B編解碼
在光纖傳輸協(xié)議的終端采用給了8B/10B編解碼,主要是由于8B/10B編碼保證了1和0的相對(duì)平衡組合,而與數(shù)據(jù)值無關(guān),簡(jiǎn)化了時(shí)鐘恢復(fù),降低了接收機(jī)成本。編碼提供的其它位還促進(jìn)了誤碼檢測(cè)。8B/10B編碼提供了構(gòu)建串行通信使用的一套基礎(chǔ)數(shù)據(jù)和控制字符[3]。其主要功能如下:
(1)轉(zhuǎn)換密度:保證數(shù)據(jù)流中有足夠的信號(hào)轉(zhuǎn)換。采用8B/10B編碼方法,數(shù)據(jù)流中連續(xù)的“1”或連續(xù)的“0”不超過5個(gè),使接收端鎖相環(huán)(PLL)能正常工作,避免接收端時(shí)鐘漂移或同步丟失而引起數(shù)據(jù)丟失。
(2)DC補(bǔ)償:在高速的數(shù)據(jù)傳輸線路中,一般采用差分信號(hào),需要直流分量盡量小,而8B/10B有DC補(bǔ)償功能,即鏈路中不會(huì)隨著時(shí)間推移而出現(xiàn)DC偏移。
(3)檢錯(cuò):8B/10B編碼采用冗余方式,將8位的數(shù)據(jù)和一些特殊字符按照特定的規(guī)則編碼成10位的數(shù)據(jù),根據(jù)這些規(guī)則,能檢測(cè)出傳輸過程中發(fā)生錯(cuò)誤的信息。
(4)特殊字符:8B/10B編碼規(guī)定了一些特殊字符,可用作幀同步字符和其他的分隔符或控制字符。
3.2 卷積碼和Viterbi譯碼
本設(shè)計(jì)采用了卷積編碼和Viterbi譯碼,在通信方面上極大的提高了可靠性和穩(wěn)定性。
卷積碼將k個(gè)信息比特編成n個(gè)比特,但k和n通常很小,特別適合以串行形式進(jìn)行傳輸,時(shí)延小。實(shí)現(xiàn)方式是與前m個(gè)前相關(guān)狀態(tài)的沖擊響應(yīng)做卷積計(jì)算。
若以(n,k,m)來描述卷積碼,其中k為每次輸入到卷積編碼器的bit數(shù),n為每個(gè)k元組碼字對(duì)應(yīng)的卷積碼輸出n元組碼字,m為編碼存儲(chǔ)度,也就是卷積編碼器的k元組的級(jí)數(shù),稱m+1= K為編碼約束度m稱為約束長(zhǎng)度。卷積碼將k元組輸入碼元編成n元組輸出碼元,但k和n通常很小,特別適合以串行形式進(jìn)行傳輸,時(shí)延小。與分組碼不同,卷積碼編碼生成的n元組元不僅與當(dāng)前輸入的k元組有關(guān),還與前面m-1個(gè)輸入的k元組有關(guān),編碼過程中互相關(guān)聯(lián)的碼元個(gè)數(shù)為n*m。卷積碼的糾錯(cuò)性能隨m的增加而增大,而差錯(cuò)率隨N的增加而指數(shù)下降。本設(shè)計(jì)采用(2,2,3)卷積碼[3]。
Viterbi譯碼是一種對(duì)無記憶信道卷積碼進(jìn)行譯碼的算法。它充分發(fā)揮了卷積碼的特點(diǎn),因而自Viterbi算法提出以來,無論在理論上還是在實(shí)踐上都得到了極其迅速的發(fā)展,并廣泛的應(yīng)用于各種數(shù)據(jù)傳輸系統(tǒng),特別是無線通信和衛(wèi)星通信系統(tǒng)中。本設(shè)計(jì)選擇似然概率函數(shù)的對(duì)數(shù)作為似然函數(shù),硬判決的最大似然譯碼實(shí)際上是尋找與接收序列Hamming距離最小的編碼序列。
4.光纖遠(yuǎn)傳系統(tǒng)的驗(yàn)證
多路開關(guān)遠(yuǎn)傳模塊可實(shí)現(xiàn)全雙工同步、異步實(shí)時(shí)傳輸32路開關(guān)量、8路模擬量,速度為100M/bit,開關(guān)量響應(yīng)時(shí)間最大為2us,通過加入高斯噪聲,同步誤碼率為0.00013%,糾碼率為0.00005%,異步誤碼率為0.017%,糾碼率為0.02%,信道冗余度為0.25。AD模塊和DA模塊實(shí)現(xiàn)了工業(yè)隔離本安的8路AD轉(zhuǎn)換和8路DA轉(zhuǎn)換功能,可實(shí)現(xiàn)0-10V電壓和0-20MA電流的傳輸,電壓精度大于0.1%,電流精度大于0.01%,更新速度為9ms。
5.結(jié)論
本系統(tǒng)是基于FPGA對(duì)8路模擬信號(hào)和32路開關(guān)信號(hào)進(jìn)行傳輸和控制,具有很好的靈活性、高精度、實(shí)時(shí)性和抗干擾性,并且電路全部符合本安要求,在工業(yè)系統(tǒng)中可以得到很好的應(yīng)用。
參考文獻(xiàn)
[1]Analog.AD7792_7793.pdf.2009-4.
[2]Analog.AD5412_5413.pdf.2007-3.
[3]http://www.actel.com/documents/5192650-0.pdf.2004-1.
[4]張立軍等.數(shù)字通信(第四版)[M].北京:電子工業(yè)出版社,2003:1-345.
作者簡(jiǎn)介:高波(1968—),男,山西太原人,工程師,主要從事煤礦自動(dòng)化控制與通訊的研究工作。