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