吳鵬飛,柯熙政,袁泉
(西安理工大學(xué) 自動(dòng)化與信息工程學(xué)院,陜西 西安 710048)
無(wú)線激光通信(Wireless Laser Communication;WLC)是以激光作為信息的載體進(jìn)行數(shù)據(jù)、聲音、圖像傳輸?shù)耐ㄐ偶夹g(shù)。目前,美國(guó)Terabeam及Airfiber等公司已將WLC系統(tǒng)應(yīng)用于商業(yè)服務(wù)網(wǎng)絡(luò)。美國(guó)的戰(zhàn)略導(dǎo)彈防御組織(BMDO)研制出激光通信終端設(shè)備,并進(jìn)行了作用距離42 km、速率1 Gbit/s的全天候跟蹤掃瞄試驗(yàn)[1]。本文設(shè)計(jì)了一種新型無(wú)線光通信機(jī),該系統(tǒng)具有傳輸速率高、耗能小、人眼安全、使用靈活等特點(diǎn),適用于多種場(chǎng)合進(jìn)行數(shù)據(jù)傳輸。
無(wú)線激光通信系統(tǒng),由同時(shí)含有接收和發(fā)送功能的兩套激光通信機(jī)組成,它們彼此向?qū)Ψ桨l(fā)射已調(diào)制的光信號(hào)(數(shù)據(jù)、圖像、聲音),并接收和解調(diào)接收到對(duì)方的光信號(hào),實(shí)現(xiàn)雙工通信[2]。無(wú)線光通信機(jī)的系統(tǒng)框圖如圖1所示。
圖1 無(wú)線激光綜合業(yè)務(wù)通信機(jī)系統(tǒng)框圖
無(wú)線光通信機(jī)主要由FPGA主控單元、用戶發(fā)送單元和用戶接收單元三部分組成。用戶發(fā)送部分包括DM9000驅(qū)動(dòng)程序和FPGA處理單元,DM9000驅(qū)動(dòng)程序?qū)⒂脩魯?shù)據(jù)從網(wǎng)口接收進(jìn)來(lái),存儲(chǔ)在FPGA的FIFO內(nèi),F(xiàn)PGA處理單元將FIFO里的用戶數(shù)據(jù)進(jìn)行編碼,然后發(fā)送至激光驅(qū)動(dòng)電路,驅(qū)動(dòng)激光器進(jìn)行傳送數(shù)據(jù);用戶接收部分包括時(shí)鐘恢復(fù)單元,F(xiàn)PGA處理單元和DM9000驅(qū)動(dòng)程序,時(shí)鐘恢復(fù)單元將激光接收電路的數(shù)字信號(hào)進(jìn)行過(guò)采樣,然后恢復(fù)出原始的數(shù)據(jù),存儲(chǔ)于FPGA的FIFO內(nèi),F(xiàn)PGA處理單元將FIFO里的用戶數(shù)據(jù)進(jìn)行解碼,再通過(guò)DM9000驅(qū)動(dòng)程序?qū)⒂脩魯?shù)據(jù)從網(wǎng)口發(fā)送至用戶設(shè)備。
本文所采用的調(diào)制方法為OOK直接調(diào)制[2]。將數(shù)字編碼過(guò)的視頻信號(hào)和語(yǔ)音信號(hào)作為調(diào)制信號(hào),通過(guò)主控芯片F(xiàn)PGA送入半導(dǎo)體激光器驅(qū)動(dòng)電路,產(chǎn)生調(diào)制的光信號(hào)。調(diào)制光信號(hào)耦合進(jìn)光纖中[3],光學(xué)發(fā)射天線壓縮光束發(fā)散角,使其達(dá)到系統(tǒng)要求的指標(biāo),然后將光束發(fā)射出去。調(diào)制電路分為控制偏置電流和調(diào)制電流兩部分。
控制偏置電流電路設(shè)計(jì)主要采用LM358兩路通用運(yùn)算放大器。運(yùn)算放大器是通過(guò)負(fù)反饋提高調(diào)制電流的穩(wěn)定性。電路中三極管使用的是SS8050,該三極管是一種低電壓、大電流、小信號(hào)的PNP型硅二極管。它構(gòu)成了共射極放大電路,為驅(qū)動(dòng)激光器提供足夠大的偏置電流。通過(guò)可調(diào)精密電位器可以調(diào)節(jié)偏置電流的大小。
恒流源電路如圖2所示,主要提供調(diào)制電流。Q4為恒流源,加入到晶體管Q1、Q2發(fā)射極的負(fù)載是晶體管Q4的恒流源。因此在負(fù)載變重的情況下,即使由輸出端吸進(jìn)大量電流(在電源的設(shè)定值以下),也不會(huì)出現(xiàn)輸出波形負(fù)側(cè)被切去的情況。用電流源代替發(fā)射極電阻,即使輸出振幅變化,發(fā)射極電阻值也能保持一定,所以就能夠吸進(jìn)大到電流源設(shè)定值的電流。
圖2 控制調(diào)制電流的電路
在圖2的電路中,組成恒流電路的三極管Q4的基極電位是由R9進(jìn)行限流來(lái)獲得的。所以,基極電位與輸入信號(hào)無(wú)關(guān),而通過(guò)R6固定在一定的電壓上。因此,加在Q4發(fā)射極電阻R14的電壓也為一恒定值,發(fā)射極電流被固定在一恒定值。如認(rèn)為發(fā)射極電流等于集電極電流,則Q4的集電極電流與輸入信號(hào)沒(méi)有關(guān)系。所以,由集電極一側(cè)看,則可以認(rèn)為Q4為恒流源。Q1用作開(kāi)關(guān)激光調(diào)制電流,Q2在調(diào)制電流關(guān)斷時(shí)作為假負(fù)載。假負(fù)載是為了加快恒流調(diào)制過(guò)程,減少開(kāi)啟瞬間的過(guò)沖。R1作為假負(fù)載阻值要和激光管的阻抗匹配,激光管的自身電容值也會(huì)影響波形。
網(wǎng)卡采用DM9000,該網(wǎng)卡是一款完全集成和符合成本效益的單芯片快速以太網(wǎng)MAC控制器,內(nèi)部有一個(gè)10/100M自適應(yīng)的PHY和4K DWORD值的SRAM。它是低功耗和高性能的一款芯片,支持3.3V或5V電壓[4-6],支持8位,13位和32位接口訪問(wèn)內(nèi)部存儲(chǔ)器,以使支持不同的處理器。
1)DM9000工作方式
DM9000提供兼容ISA總線的LOCALBUS模式的主機(jī)接口,該主機(jī)接口有兩個(gè)端口地址,分別是INDEX端口和DATA端口。引腳CMD輸入“0”時(shí)進(jìn)入INDEX端口,輸入“1”時(shí)進(jìn)入DATA端口。DATA端口的DM9000內(nèi)部寄存器的地址由INDEX寫(xiě)入。要對(duì)DM9000寄存器進(jìn)行讀寫(xiě),則必須先把寄存器的地址存入INDEX端口。
DM9000包含index Ⅰ和indexⅡ兩個(gè)發(fā)送包,這兩個(gè)包可以同時(shí)存儲(chǔ)在DM9000內(nèi)部的發(fā)送緩存里面。CRC的插入和打包由發(fā)送控制寄存器(TX Control Register)控制,發(fā)送狀態(tài)寄存器TX Status RegisterⅠ和TX Status RegisterⅡ分別存儲(chǔ)著兩個(gè)發(fā)送包的狀態(tài)[7]。
2)DM9000初始化
設(shè)計(jì)中通過(guò)兩個(gè)步驟來(lái)完成對(duì)DM9000的初始化以及對(duì)其發(fā)送和接收數(shù)據(jù)的控制。
對(duì)DM9000器件里的寄存器寫(xiě)入初始值即為初始化,目的是用來(lái)設(shè)定DM9000的工作模式。DM9000初始化程序是固定不變的,且在正常工作之前必須進(jìn)行初始化[8]。對(duì)DM9000的初始化步驟,如圖3所示。
圖3 DM9000初始化流程圖
3)DM9000發(fā)送數(shù)據(jù)
將FPGA從光路接收來(lái)的音視頻數(shù)據(jù)通過(guò)DM9000傳送到PC端,即為發(fā)送數(shù)據(jù),發(fā)送過(guò)程如下。
將硬件或軟件復(fù)位之后即可開(kāi)始發(fā)送,發(fā)送的起始地址為00h、起始發(fā)送包為indexⅠ。先通過(guò)DMA端口將發(fā)送的數(shù)據(jù)寫(xiě)入TX SRAM,再將數(shù)據(jù)包indexⅠ長(zhǎng)度字節(jié)數(shù)寫(xiě)入字節(jié)數(shù)寄存器。DM9000對(duì)發(fā)送控制寄存器的第零位置“1”開(kāi)始發(fā)送數(shù)據(jù)包indexⅠ。在發(fā)送結(jié)束之前,下一個(gè)數(shù)據(jù)即可移入TX SRAM,發(fā)送結(jié)束后,再寫(xiě)入數(shù)據(jù)包indexⅡ的長(zhǎng)度字節(jié)數(shù)。發(fā)送過(guò)程以此規(guī)則依次進(jìn)行。
對(duì)DM9000控制的程序流程如圖4所示。
圖4 數(shù)據(jù)發(fā)送流程圖
4)接收數(shù)據(jù)包
在每一個(gè)封包中,會(huì)有4個(gè)Bytes存放一些封包的相關(guān)資料。第1個(gè)Byte是查看封包是否已正確存放在接收內(nèi)存之中,如果值為“01h”表明封包已經(jīng)正確存放于接收內(nèi)存之中。如果為“00h”則表明接收內(nèi)存尚未有正確封包存放。DM9000接收內(nèi)存數(shù)據(jù)格式如圖5所示。
圖5 DM9000接收內(nèi)存數(shù)據(jù)格式
要接收一個(gè)封包必須先檢查MRCMDX寄存器值是否為01,若是則有封包進(jìn)入內(nèi)存,可以進(jìn)行讀取。然后讀取MRCMD,將前4個(gè)Byte封包信息讀入。
最后,由前4個(gè)Byte封包信息取得封包長(zhǎng)度(以Byte為單位),連續(xù)讀取MRCMD,將封包數(shù)據(jù)移到FPGA中。若讀取位置超過(guò)3FFFh時(shí),DM9000會(huì)自動(dòng)移到0C00h。
從網(wǎng)口傳來(lái)的視頻或音頻數(shù)據(jù)一般速率較高,在實(shí)時(shí)視頻監(jiān)控或語(yǔ)音系統(tǒng)中,為了能夠很好地保證數(shù)據(jù)的穩(wěn)定和連續(xù)性,通常采用的方法是對(duì)兩個(gè)FIFO進(jìn)行乒乓操作[9]。乒乓操作是有效處理高速數(shù)據(jù)流的方式之一,其基本思想就是以面積換取速度。典型的乒乓操作方法如圖6所示。數(shù)據(jù)緩沖模塊可以為任何存儲(chǔ)模塊,在本文中使用的是FIFO。
圖6 乒乓FIFO典型操作框圖
采用圖6所示進(jìn)行乒乓操作,數(shù)據(jù)流會(huì)等時(shí)地進(jìn)入兩個(gè)數(shù)據(jù)緩沖模塊中。等時(shí)處理帶來(lái)的是每一路數(shù)據(jù)處理的頻率相當(dāng)于輸入頻率的一半,不僅降低了數(shù)據(jù)處理的速度,而且可以完整地進(jìn)行數(shù)據(jù)采樣。
接收端提取出正確的數(shù)據(jù)信息需要進(jìn)行時(shí)鐘恢復(fù)。時(shí)鐘恢復(fù)使用過(guò)采樣法,該方法具有較大的頻率捕捉范圍和較快的捕捉速度。本系統(tǒng)中,通過(guò)采用本地晶振倍頻得到80M的高速時(shí)鐘,對(duì)信號(hào)作8倍過(guò)采樣,通過(guò)對(duì)采樣數(shù)據(jù)的分析判斷出數(shù)據(jù)跳變沿的位置,實(shí)時(shí)尋找并切換到最佳采樣時(shí)鐘,從而恢復(fù)出數(shù)據(jù)。
最佳采樣相位判斷是通過(guò)檢測(cè)采樣數(shù)據(jù)中跳變沿的位置,判決當(dāng)前數(shù)據(jù)最佳采樣相位。在T-1到T+1采樣周期所采樣的所有比特,在滑動(dòng)窗口中通過(guò)數(shù)據(jù)匹配,尋找采樣周期T內(nèi)發(fā)生的邊沿跳變位置,然后生成跳變沿圖樣。在兩個(gè)跳變沿的中間時(shí)刻,即是所要尋找的最佳采樣相位,通過(guò)在最佳采樣相位采樣,就可判斷出數(shù)據(jù)的高低電平,恢復(fù)出正確數(shù)據(jù)。8倍過(guò)采樣的數(shù)據(jù)因?yàn)槭褂昧嘶瑒?dòng)窗口進(jìn)行濾波,所以就避免了數(shù)據(jù)毛刺對(duì)判決的干擾,而且窗口寬度越大,抑制毛刺的性能越好。但是對(duì)于一個(gè)8倍過(guò)采樣系統(tǒng)而言,時(shí)鐘周期與采樣時(shí)鐘要能夠滿足每個(gè)接收數(shù)據(jù)的周期最少應(yīng)有7個(gè)采樣點(diǎn),所以最大窗口寬度只能為14。
系統(tǒng)所用實(shí)驗(yàn)儀器有示波器(Tektronix TDS2024及Agilent ADS7062CA)、邏輯分析儀(Tektronix TLA5201)、激光功率計(jì)、萬(wàn)用表(VICTOR VC8900)和PC機(jī)等。
為了驗(yàn)證該系統(tǒng)能否工作正常,先去掉無(wú)線激光傳輸部分,把兩塊FPGA板直接相連。如果能實(shí)現(xiàn)兩臺(tái)計(jì)算機(jī)之間通信,就說(shuō)明系統(tǒng)以太網(wǎng)模塊工作正常。實(shí)驗(yàn)中用兩臺(tái)PC機(jī)分別作為信源和信宿,一臺(tái)負(fù)責(zé)發(fā)送數(shù)據(jù),通過(guò)兩塊以太網(wǎng)模塊將信息傳輸?shù)搅硪慌_(tái)上,對(duì)比檢驗(yàn)數(shù)據(jù)的正確性。實(shí)驗(yàn)框圖如圖7所示。
圖7 PC機(jī)實(shí)驗(yàn)
使用TCP/UDP Socket調(diào)試工具檢驗(yàn)以太網(wǎng)接入系統(tǒng)功能的完整性和正確性。創(chuàng)建TCP服務(wù)器端和TCP客戶端。TCP服務(wù)器端用來(lái)發(fā)送數(shù)據(jù),TCP客戶端用來(lái)接收數(shù)據(jù)。開(kāi)始調(diào)試階段發(fā)現(xiàn)接收到的數(shù)據(jù)包有嚴(yán)重的丟包現(xiàn)象,而且發(fā)送次數(shù)越多丟包越明顯、一次發(fā)送數(shù)據(jù)量越大丟包率越高。經(jīng)分析是由于接收緩沖區(qū)空間不夠、接收數(shù)據(jù)的速率過(guò)慢或者主機(jī)處理數(shù)據(jù)過(guò)慢引起的。解決辦法:①DM9000支持DMA模式,可以和I/O模式自動(dòng)轉(zhuǎn)換,DMA模式可使DM9000減少丟包; ②適當(dāng)?shù)卣{(diào)整數(shù)據(jù)存取速率,使下一個(gè)數(shù)據(jù)包到來(lái)之前數(shù)據(jù)緩沖區(qū)空間充足。
激光鏈路組建以后,用視頻編碼器代替PC機(jī)進(jìn)行數(shù)據(jù)的發(fā)送,用另一臺(tái)PC機(jī)進(jìn)行數(shù)據(jù)接收并驗(yàn)證數(shù)據(jù)的正確性,如圖8所示。圖9為無(wú)線激光通信機(jī)外觀。
圖8 激光鏈路實(shí)驗(yàn)框圖
圖9 無(wú)線激光綜合業(yè)務(wù)通信機(jī)樣機(jī)
本系統(tǒng)可以實(shí)現(xiàn)雙工通信,可在10 Mb/s速率下傳輸2路標(biāo)清視頻信號(hào)和150路語(yǔ)音信號(hào),協(xié)議數(shù)據(jù)透明傳輸,具有較好的穩(wěn)定性和實(shí)時(shí)性,具備了基本的實(shí)用性。
參考文獻(xiàn):
[1] 易成林.自由空間光通信技術(shù)的發(fā)展現(xiàn)狀與未來(lái)趨勢(shì)[J].現(xiàn)代商貿(mào)工業(yè),2007,19(9):263-264.
Yi Chenlin. The current situation of the development and future trends of free space optical communication technology[J].Modern Business Trade Industry, 2007,19(9):263-264.
[2] 柯熙政,殷致云.無(wú)線激光通信系統(tǒng)中的編碼理論[M].北京:科學(xué)出版社,2008.
[3] 陳錦妮,柯熙政.弱湍流狀態(tài)下空間光-多模光纖耦合效率分析[J].西安理工大學(xué)學(xué)報(bào),2014,30(3):327-330.
Chen Jinni,Ke Xizheng.Analysis of space optical-multimode fiber coupling efficiency in weak turbulenc[J]. Journal of Xi’an University of Technology,2014,30(3):327-330.
[4] 柳玉仙.基于FPGA的設(shè)備狀態(tài)信號(hào)采集傳輸系統(tǒng)研究[D].重慶:重慶大學(xué),2008.
Liu Yuxian.Study on data acquisition and transmission system of equipment status based on FPGA[D].Chongqing: Chongqing University,2008.
[5] 郝云峰.基于FPGA的網(wǎng)絡(luò)化數(shù)據(jù)采集系統(tǒng)[D].重慶:重慶大學(xué),2008.
Hao Yunfeng.Networked data acquisition system based on FPGA [D].Chongqing: Chongqing University,2008.
[6] 胡應(yīng)鵬.基于FPGA的振動(dòng)信號(hào)采集和網(wǎng)絡(luò)化傳輸關(guān)鍵技術(shù)的研究[D].重慶:重慶大學(xué),2006.
Hu Yingpeng. Key technical study on FPGA-based mechanical vibration signals collection and network transmission[D].Chongqing: Chongqing University, 2006.
[7] Yang C K K, Tu S H L.A pipelined serial data receiver with over sampling techniques for high-speed data communications[C]//Hong Kong:IEEE Conference on Electron Devices and Solid-State Circuits,2003:167-170.
[8] 褚振勇,翁木云.FPGA設(shè)計(jì)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2002.
[9] 吳自信,張嗣忠.異步FIFO結(jié)構(gòu)及FPGA設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003,8:25-26.
Wu Zixin,Zhang Sizhong. Asynchronous FIFO structure and FPGA design[J].Microcontrollers and Embedded System, 2003,8:25-26.