王許浦 孫曉紅 薛琦
摘? 要: 根據(jù)OOK(開關(guān)鍵控)的原理,基于FPGA開發(fā)板用Verilog HDL語言實現(xiàn)OOK調(diào)制、解調(diào)和同步模塊,并通過邏輯分析儀進行仿真。配合驅(qū)動電路、光電探測電路和放大電路等實現(xiàn)了整套可見光通信系統(tǒng)的設(shè)計,最后通過搭建實驗平臺進行測試,測試結(jié)果表明,收發(fā)電路通信距離達到12 cm,系統(tǒng)傳輸速率達到3.125 Mb/s。
關(guān)鍵詞: 可見光通信; FPGA; OOK; 驅(qū)動電路; 光電探測器; 位同步
中圖分類號: TN929.1?34? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2020)17?0025?04
Abstract: According to the principle of OOK (on?off keying), the modules of modulation, demodulation and synchronization are realized by using Verilog HDL language and FPGA board, and simulated by logic analyzer. The whole set of visible light communication system is designed with driving circuit, photoelectric detection circuit and amplification circuit. The experiment platform was built to test the system. The test result shows that the communication distance of the transceiving circuit can reach 12 cm, and the transmission rate can reach 3.125 Mb/s.
Keywords: visible light communication; FPGA; OOK; drive circuit; photo detector; bit synchronization
0? 引? 言
可見光通信技術(shù)可以解決傳統(tǒng)無線通信存在頻譜資源緊缺、信息不安全以及電磁干擾等問題,同時,它在高速通信的同時又具備節(jié)能照明的特點而被廣泛關(guān)注和研究[1?3]。目前研究可見光通信的很多,但是基于FPGA的可見光通信系統(tǒng)研究還并不多,由于FPGA具備運行速度快、管腳多和設(shè)計靈活等優(yōu)點,因此,將可見光通信技術(shù)與FPGA相結(jié)合可以大大提高系統(tǒng)的性能[4?5]。本文基于FPGA開發(fā)板,運用Verilog HDL語言并結(jié)合電路設(shè)計搭建起一套可見光通信系統(tǒng)并進行驗證。
1? 可見光通信系統(tǒng)整體設(shè)計
本系統(tǒng)發(fā)射端采用Alter公司Cyclone系列芯片,型號為EP4CE15F23C8的FPGA開發(fā)板對信號進行數(shù)字處理及時序控制,接收端采用Alter公司Cyclone系列芯片,型號為EP4CE30F23C8的FPGA開發(fā)板對接收的信號進行處理。重點在于OOK(On?Off Keying)的調(diào)制解調(diào)、同步等算法與Verilog HDL語言實現(xiàn),以及發(fā)送電路設(shè)計和接收電路中互阻放大電路、同相積分器等電路的設(shè)計。其中,系統(tǒng)發(fā)射端的信號為FPGA產(chǎn)生的0,1周期符號序列,通過OOK調(diào)制到白光LED驅(qū)動電路中;系統(tǒng)接收端包括光電轉(zhuǎn)換模塊、放大電路模塊和FPGA解調(diào)模塊等,如圖1所示。
2? 基于OOK的可見光通信系統(tǒng)發(fā)射端的設(shè)計
2.1? 基于Verilog的OOK調(diào)制
OOK是二進制振幅鍵控(2ASK)的一個特例。振幅鍵控是利用載波的幅度變化來傳遞數(shù)字信息,其頻率和初始相位保持不變。載波可以是正弦波,也可以是方波,本文傳輸碼元用的是方波。對于2ASK,當發(fā)送碼元1時,載波振幅取[A1];當發(fā)送碼元為0時,碼元振幅取[A2]。根據(jù)載波的幅值區(qū)分碼元信息,可表示為:
OOK調(diào)制即將2ASK中一個振幅取0,另一個非0。OOK調(diào)制后波形示意圖如圖2所示。
基于上述原理,OOK調(diào)制本質(zhì)上為載波信號與輸入信源相乘。因此在設(shè)計的過程中,需要解決以下問題:信源如何產(chǎn)生,載波如何產(chǎn)生,合適參數(shù)的設(shè)置。
調(diào)制信號是通過FPGA內(nèi)部自帶的時鐘信號的上升沿進行觸發(fā)來產(chǎn)生的,所用的FPGA開發(fā)板內(nèi)部的時鐘頻率為50 MHz,程序中定義了一個寄存器將調(diào)制信號的頻率降低到光電轉(zhuǎn)換器識別范圍內(nèi)。程序中設(shè)置00100111為一個周期信號。
載波信號是方波,用“0”和“1”的高低電平來表示,所以它直接和調(diào)制信號相乘得到已調(diào)信號。它是由AX515開發(fā)板50 MHz的時鐘頻率16分頻得到,也就是方波的一個周期需要16個時鐘信號的觸發(fā),即方波頻率為3.125 MHz。
2.2? 驅(qū)動電路的設(shè)計
根據(jù)發(fā)光二極管的放電特性,LED上升沿不是垂直的,而是有一個慢慢上升的過程,所以傳輸方波信號的速率受到一定限制。實驗過程中通過電路修改嘗試補償存在的問題,結(jié)果表明需要選擇合適的電容值對LED限流,才能使發(fā)光二極管發(fā)射出比較完美的方波信號。電路圖如圖3所示。
圖3是發(fā)送電路,主要由電容和SI2300MOS型三極管構(gòu)成,選用此三極管放大功率驅(qū)動LED發(fā)光,雖然有較大的功耗,但是抗干擾能力強,同時電路簡單。
3? OOK可見光通信系統(tǒng)接收端的設(shè)計
3.1? 接收電路設(shè)計
圖4是接收電路硬件電路圖,主要由光電探測器、運放OPA847構(gòu)成的互阻放大器、運放OPA335構(gòu)成的同相積分器、芯片TLV3501構(gòu)成的判決電路等模塊構(gòu)成。
圖4中,[R1],[C1],Z1用于提供一個2.7 V穩(wěn)定的參考地電壓;運放芯片U1,[R2]構(gòu)成互阻放大器,U1采用OPA847,反饋電阻的取值決定了模擬部分的增益,[R2]采用0402封裝,以盡可能減小寄生電容。依靠此電阻存在的寄生電容可以抑制振蕩,同時,較小的寄生電容有利于提升系統(tǒng)高頻特性。運放U2,[R3],[R4],[R5],[R6],[C2]構(gòu)成同相積分器。對于一般的互阻放大電路往往難以兼顧高靈敏度和寬動態(tài)范圍:若電路的增益高、靈敏度高,則放大電路在強光下容易飽和;反之,若要求能夠在強背景光下檢測信號,則電路增益必須減小。本電路增加了此積分器設(shè)計兼顧了高增益和高抗飽和能力,使得系統(tǒng)也能夠在室外環(huán)境下正常工作。同時,此積分器也使得整個電路具有高通特性,常見的50 Hz工頻干擾光(如日光燈光)能夠得到比較有效的抑制。VR1,VR2,VR3是穩(wěn)壓器,保證電路電壓穩(wěn)定,U3構(gòu)成判決電路,通過TLV3501能有效進行高低電平的判決,為解調(diào)作準備。
3.2? 基于Verilog的OOK解調(diào)
光電探測器把光信號轉(zhuǎn)換成電流的形式傳輸,經(jīng)過互阻放大器后轉(zhuǎn)變?yōu)殡妷旱男问?,然后?jīng)過判決等模塊后將得到的信號送入型號為AX530的FPGA開發(fā)板中,利用數(shù)字鎖相環(huán)實現(xiàn)位同步,得到每一位信號的判決時刻,把位同步信號作為解調(diào)用的工作時鐘解調(diào)出原信息。本文的解調(diào)原理框圖如圖5所示。
本文采用數(shù)字鎖相環(huán)實現(xiàn)采樣頻率的同步。解調(diào)的思想是根據(jù)OOK調(diào)制信號的特點,即在高電平調(diào)制的地方有載波,而低電平調(diào)制的地方?jīng)]有載波。所以通過載波同步信號采樣恢復出調(diào)制信號,但是采樣時刻要和數(shù)據(jù)位同步,在這里通過數(shù)字鎖相環(huán)實現(xiàn)與載波信號鎖相后,再利用鎖相后信號的下降沿采樣已調(diào)信號來實現(xiàn)OOK的解調(diào),數(shù)字鎖相環(huán)Netlist視圖如圖6所示。
為了提高解調(diào)采樣數(shù)據(jù)的準確性,圖6是解調(diào)時設(shè)計的鎖相環(huán)Netlist視圖,這里用數(shù)字鎖相環(huán)對載波相位鎖定后,其下降沿是數(shù)據(jù)比特(modata)的中心采樣來減小解調(diào)的誤碼率。數(shù)字鎖相環(huán)由異或門鑒相器(XOR_pd:u1)、加減脈沖計數(shù)器(Kcounter:u2)、脈沖增減模塊(idcounter:u3)、控制器(利用clk對fin脈沖的測量并給出[N]值模塊counter_[N]:u4)、分頻器([N]分頻模塊div_[N]:u5)等5個模塊組成。輸入信號與分頻信號通過鑒相器模塊后,鑒相器根據(jù)輸出信號相位是否超前(滯后)于輸入信號,從而產(chǎn)生加減脈沖計數(shù)器的計數(shù)方向用來控制信號,加減脈沖計數(shù)器根據(jù)計數(shù)方向控制信號來調(diào)整計數(shù)值。當控制信號為高電平時進行減計數(shù),當計數(shù)值到達0時,就可以輸出借位脈沖信號;反之,當控制信號為低電平時進行加計數(shù),當計數(shù)值達到預設(shè)的[K]模值時,此時輸出進位脈沖信號,脈沖增減電路則根據(jù)借位脈沖和進位脈沖信號在輸出電路信號中進行脈沖的增加和減少操作,調(diào)整輸出信號的頻率持續(xù)進行上面的過程進行調(diào)整,則分頻器最終輸出信號與輸入信號頻率一樣,即作為解調(diào)使用的位同步信號。
4? 調(diào)制解調(diào)仿真分析
編寫一個頂層文件例化調(diào)制、解調(diào)模塊后生成的RTL視圖,如圖7所示。圖7中,two_ASK:U_mo為生成的調(diào)制模塊,ASK_two:U_demo為生成的解調(diào)模塊。
Quartus Ⅱ中的邏輯分析儀觀察到的調(diào)制解調(diào)的整個過程如圖8所示。其中,sig_S為基帶信號,carriers為載波(頻率為3.125 MHz),modata為調(diào)制信號,pll_carriers為采樣頻率(和載波同步),demodata為解調(diào)信號。從圖8中可以看出,基帶信號00100111為一個符號周期,解調(diào)出來的依然是00100111,解調(diào)結(jié)果正確。
5? 實驗測試及分析
本節(jié)主要對搭建的基于OOK的可見光通信系統(tǒng)進行測試,包括發(fā)送電路、接收電路和調(diào)制解調(diào)過程的測試以及收發(fā)電路通信距離、通信速率的測試,目的是在通信距離范圍內(nèi)測試搭建系統(tǒng)的最大傳輸速率。
圖9a)為搭建起來的可見光通信系統(tǒng)實驗平臺,包括發(fā)射端、接收端、信號發(fā)生器以及示波器,值得說明的是,程序主要用USB?Blaster由FPGA開發(fā)板的JTAG口燒錄開發(fā)板。圖9b)主要是系統(tǒng)模塊介紹,發(fā)射端包括發(fā)送板與驅(qū)動電路,接收端包括接收板與接收電路。
5.1? 收發(fā)端電路測試
如圖10所示,此次接收電路的測試主要由信號發(fā)生器和示波器完成,驅(qū)動電路上的LED燈由直流偏置電流和信號發(fā)生器產(chǎn)生的信號加載到LED燈上共同驅(qū)動發(fā)光,經(jīng)過接收電路中光電探測器探測到的信息并且經(jīng)過放大等處理后輸出在示波器上顯示。
圖11是根據(jù)圖10方式測試的結(jié)果,圖11a)是信號發(fā)生器產(chǎn)生的頻率1 MHz未經(jīng)過發(fā)送、接收電路板處理和經(jīng)過發(fā)送、接收電路板處理的信號,其中,上方的黃線是發(fā)送端信號,電壓為60 mV,下方的藍線是接收端信號,經(jīng)過電路處理放大后電壓為1 V。圖11b)是信號發(fā)生器產(chǎn)生的頻率4 MHz未經(jīng)過發(fā)送、接收電路板處理和經(jīng)過發(fā)送、接收電路板處理后的信號,其中,上方的黃線是發(fā)送端信號,電壓為280 mV,下方的藍線是接收端信號經(jīng)過電路處理放大后的信號,電壓為1 V,經(jīng)過測試表明,接收電路板可以達到系統(tǒng)需求。
圖12是根據(jù)圖10方式測試的結(jié)果,用信號發(fā)生器產(chǎn)生頻率4 MHz的方波信號來測試收發(fā)電路通信距離。圖12a)~圖12d)是通信距離分別為5 cm,12 cm,15 cm,22 cm時信號發(fā)生器產(chǎn)生的信號波形和經(jīng)過收發(fā)電路處理后接收到的信號波形。其中,上方的黃線是信號發(fā)生器產(chǎn)生的信號波形,下方的紫線是經(jīng)過收發(fā)電路處理后接收到的信號波形,可以看出,收發(fā)端電路的距離在12 cm范圍內(nèi)能很好地實現(xiàn)信號的接收,超過12 cm接收端接收到的信號波形會出現(xiàn)錯誤信息,發(fā)生誤碼,當收發(fā)端電路的距離為22 cm時,接收到的信號波形發(fā)生變化,顯然不是要接收的信息。
5.2? 系統(tǒng)測試
通過前面收發(fā)電路通信速率和通信距離的測試,本次主要在最佳通信距離12 cm范圍內(nèi)進行測試。圖13中,上方的黃色線為FPGA產(chǎn)生的載波為3.125 MHz的OOK已調(diào)信號,電壓值為220 mV,經(jīng)過發(fā)送板電路的處理后驅(qū)動LED發(fā)光,下方的紫色線是光電探測器將探測到的光信號轉(zhuǎn)變成電流信號,經(jīng)過互阻放大器、同相積分器處理和TLV3501判決輸出的信號作為接收端FPGA開發(fā)板要解調(diào)的信號,電壓值為3.3 V。其中,每8個數(shù)據(jù)符號(00100111)為一個周期,可以看出只有輸入信號“1”時載波才會與OOK理論仿真圖8一致,能夠?qū)崿F(xiàn)很好地發(fā)射和接收,此系統(tǒng)驗證成功。
6? 結(jié)? 語
本文主要通過FPGA設(shè)計了一個OOK的可見光通信系統(tǒng)進行實驗驗證。首先運用Verilog HDL語言進行調(diào)制解調(diào)以及同步模塊的編寫,并借助軟件Quartus Ⅱ中的邏輯分析儀連接FPGA開發(fā)板進行仿真驗證,然后對收發(fā)電路的傳輸速率和通信距離進行測試,系統(tǒng)測試結(jié)果表明,傳輸速率達到3.125 Mb/s,收發(fā)電路在12 cm范圍內(nèi)能很好地完成信號接收。
注:本文通訊作者為孫曉紅。
參考文獻
[1] 王永進,王金元,朱秉誠.可見光通信最新研究進展[J].郵電設(shè)計技術(shù),2017(8):1?6.
[2] 遲楠.讓Li?Fi點亮你的網(wǎng)絡(luò)[J].中國經(jīng)濟報告,2016(1):116?118.
[3] 鄔江興.可見光通信在中國[J].中國科技產(chǎn)業(yè),2014(10):32?34.
[4] 梁景熙,劉宏展.2ASK可見光通信系統(tǒng)的硬件設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2015,38(21):56?59.
[5] 梁景熙,張劍鳴,劉宏展.基于FPGA的PPM可見光通信系統(tǒng)的仿真與實現(xiàn)[J].光通信技術(shù),2015,39(9):57?59.
[6] 李茹,張濤,朱秋煜,等.基于FPGA的OOK可見光通信系統(tǒng)設(shè)計與實現(xiàn)[J].工業(yè)控制計算機,2016,29(12):106?107.
[7] 武夢龍,郭佳,劉文楷,等.LED作為收發(fā)元件的雙向可見光通信系統(tǒng)方案及實現(xiàn)[J].光學學報,2018,38(4):62?68.
[8] 楊宇,劉博,張建昆,等.一種基于大功率LED照明燈的可見光通信系統(tǒng)[J].光電子激光,2011,22(6):803?807.
[9] 畢成軍,陳利學,孫茂一.基于FPGA的位同步信號提取[J].現(xiàn)代電子技術(shù),2006,29(20):121?123.
[10] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學出版社,2008.