于正永 錢(qián)建波 董進(jìn) 徐彤
摘要:可見(jiàn)光導(dǎo)覽系統(tǒng)終端設(shè)備一方面用于處理光接收機(jī)解析的VLID廣播幀,廣播幀經(jīng)過(guò)采樣、解碼、CRC校驗(yàn)后通過(guò)UART發(fā)送操作指令給PAD自動(dòng)播放音視頻文件。另一方面用于處理PAD經(jīng)UART向FGPA發(fā)送的管理類(lèi)型指令,F(xiàn)PGA接收并生成相應(yīng)的管理類(lèi)型幀,經(jīng)曼徹斯特編碼、CRC運(yùn)算,按照特定頻率發(fā)送給可見(jiàn)光發(fā)射機(jī)。最后采用FPGA開(kāi)發(fā)環(huán)境搭建了仿真平臺(tái),經(jīng)驗(yàn)證,終端設(shè)備所采用的軟件算法具有錯(cuò)誤檢測(cè)、災(zāi)難恢復(fù)、屏蔽重復(fù)VLID廣播幀的功能,其表現(xiàn)出的穩(wěn)定性和強(qiáng)壯性良好。
關(guān)鍵詞:可見(jiàn)光;導(dǎo)覽系統(tǒng);FPGA;終端設(shè)備;軟件設(shè)計(jì)
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)07-0201-03
伴隨著半導(dǎo)體工藝的改進(jìn)、成本的降低以及LED(LightEmitting Diode,LED)照明具有節(jié)能效果好、使用壽命長(zhǎng)、可控性能高等顯著優(yōu)點(diǎn),符合國(guó)家能源、環(huán)保政策的半導(dǎo)體照明技術(shù)正日益得到廣泛的應(yīng)用。另外,半導(dǎo)體LED器件具有高速點(diǎn)滅的發(fā)光響應(yīng)特性,使其還可在無(wú)線(xiàn)光通信等領(lǐng)域具有巨大的應(yīng)用前景。
在當(dāng)今這個(gè)信息時(shí)代,人們對(duì)海量信息的處理能力是永遠(yuǎn)沒(méi)有止境的。而隨著物聯(lián)網(wǎng)技術(shù)的日益受到重視,對(duì)信息的存儲(chǔ)、處理、傳送、保密等方面的要求,特別是信息的無(wú)線(xiàn)通信方面的要求,必將越來(lái)越高。因此,利用半導(dǎo)體照明器件,將信號(hào)調(diào)制到LED可見(jiàn)光上進(jìn)行傳輸,使可見(jiàn)光通信與LED照明相結(jié)合,構(gòu)建LED照明和通信兩用基站燈,可為光通信提供一種全新的寬帶接入方式,可為無(wú)線(xiàn)寬帶接入的快速部署提供一種靈活的解決方案。本文提出了一種可見(jiàn)光導(dǎo)覽系統(tǒng)終端設(shè)備的軟件設(shè)計(jì)方法,并運(yùn)用FPGA開(kāi)發(fā)平臺(tái)進(jìn)行仿真實(shí)現(xiàn),所得實(shí)驗(yàn)結(jié)果符合系統(tǒng)指標(biāo)要求。
1總體設(shè)計(jì)
1.1設(shè)計(jì)思路
可見(jiàn)光導(dǎo)覽系統(tǒng)終端設(shè)備程序設(shè)計(jì)主要包括數(shù)據(jù)接收端、主控程序、數(shù)據(jù)發(fā)送端三個(gè)部分。該軟件總體設(shè)計(jì)思路如圖1所示。
具體功能介紹如下:
(1)VLC接收模塊。按照總體設(shè)計(jì),VLC接收模塊主要功能為采樣數(shù)據(jù)、曼徹斯特解碼。
(2)VLC幀處理模塊。該模塊主要功能為解析VLC幀格式,CRC校驗(yàn)等。
(3)VLC發(fā)送模塊。該模塊主要功能為根據(jù)系統(tǒng)配置寄存器產(chǎn)生VLID廣播幀。
(4)UART收發(fā)、控制模塊。發(fā)送、接收串口數(shù)據(jù)已經(jīng)相關(guān)時(shí)鐘、控制程序。
(5)復(fù)位控制模塊。系統(tǒng)復(fù)位控制模塊,可以響應(yīng)復(fù)位幀進(jìn)行動(dòng)態(tài)復(fù)位操作。
(6)主控程序。管理系統(tǒng)時(shí)鐘信號(hào),協(xié)調(diào)各模塊之間信號(hào)傳輸。
1.2可見(jiàn)光導(dǎo)覽系統(tǒng)指令集設(shè)計(jì)
可見(jiàn)光導(dǎo)覽系統(tǒng)的幀通信格式(即稱(chēng);指令集)如圖2所示。該指令集約定了可見(jiàn)光導(dǎo)覽系統(tǒng)中設(shè)備間通信數(shù)據(jù)的幀格式基本要求,具有VLID廣播、亮度管理、VLID無(wú)線(xiàn)管理、密鑰管理以及強(qiáng)度管理等功能。在可見(jiàn)光導(dǎo)覽系統(tǒng)中,所有設(shè)備通信時(shí)發(fā)送的幀均由類(lèi)型位、指令位、校驗(yàn)位三個(gè)字段組成,其中類(lèi)型位由固定的4bit組成,定義了幀的數(shù)據(jù)類(lèi)型,指令位根據(jù)不同類(lèi)型的幀具有不同的長(zhǎng)度和意義,校驗(yàn)位為8bit的CRC校驗(yàn),只有通過(guò)CRC校驗(yàn)才能正確接收該幀信息,否則視為錯(cuò)誤數(shù)據(jù)丟棄。
1.3自動(dòng)導(dǎo)覽指令集設(shè)計(jì)
其中,Normal vie id標(biāo)識(shí)了PAD接收到的UART格式,offset字段為8bits,發(fā)送順序即為圖3所示的順序。例如收到外部器件請(qǐng)求播放id=1的視頻,則顯示在串口助手的數(shù)據(jù)為:0x0,0x0,0x0,0x0,0x0,0x1。
前兩個(gè)0x0,0x0為offset字段,后面0x0,0x0,0x0,0x1合一起即為16h01;作為擴(kuò)展,運(yùn)用offset字段最多可以支持256×216個(gè)VLID。目前本系統(tǒng)僅支持offset=0的指令格式;管理類(lèi)型的指令是PAD發(fā)給外面器件的格式,需要在app中的管理員模式中支持三種功能:
(1)是生成一個(gè)新的vlc id,在app中輸入要修改的id并封裝成上圖中vlc id management的格式發(fā)出去即可。例如,輸入十進(jìn)制15,確定后通過(guò)UART發(fā)送0x2,0x0,0x0,0x0,0對(duì)。第一個(gè)Ox2為control字段,后面的0x0,0x0,0x0,0xf表示16'hf。
(2)是密鑰管理,在密鑰管理界面中輸入一個(gè)新的密鑰,確認(rèn)后按照key management的格式發(fā)送出去即可。
(3)是照明管理。在照明管理界面中輸入一個(gè)零到十的數(shù)據(jù),按照brightness managment的格式發(fā)出去即可。例如,將照明設(shè)置一半,則發(fā)送0x4 0x5,其中第一個(gè)數(shù)據(jù)0x4位控制字段,0x5表示照明數(shù)值。
(4)extend operation為擴(kuò)展字段,目前尚未支持。
1.4系統(tǒng)強(qiáng)壯性設(shè)計(jì)
自由空間中充斥大量的干擾源可能錯(cuò)誤的觸發(fā)系統(tǒng)采樣、解析等操作。系統(tǒng)需要能夠檢測(cè)該類(lèi)型的錯(cuò)誤數(shù)據(jù)幀,并經(jīng)一段短暫的時(shí)間后自動(dòng)恢復(fù)到正常狀態(tài)??梢?jiàn)光導(dǎo)覽系統(tǒng)中的VLID由可見(jiàn)光發(fā)射機(jī)周期性廣播?;诖薞LID終端設(shè)備在產(chǎn)生自動(dòng)導(dǎo)覽指令之后能夠屏蔽具有相同VLID的廣播幀,如圖4所示。具體來(lái)說(shuō),在終端設(shè)備中設(shè)置老化計(jì)數(shù)器,當(dāng)收到VLID廣播幀后判斷該計(jì)數(shù)器是否為0,當(dāng)前vlid是否為記錄的vlid。
如果計(jì)數(shù)器為0,則發(fā)送自動(dòng)導(dǎo)覽指令;如果當(dāng)前vlid不等于記錄的vlid,則發(fā)送自動(dòng)導(dǎo)覽指令;如果上述都不滿(mǎn)足,則不發(fā)送自動(dòng)導(dǎo)覽指令,系統(tǒng)將初始化該計(jì)數(shù)器為1,并根據(jù)系統(tǒng)時(shí)鐘自加1。
2仿真結(jié)果與分析
2.1VLID廣播幀
本系統(tǒng)仿真設(shè)置的基本參數(shù)如表1所示。
在表1基本參數(shù)配置下,VLID廣播幀數(shù)值(vlidFramelByte)為0x110719,如圖5(a)所示,其中類(lèi)型位等于0xl,VLID長(zhǎng)度為0xl,VLID值為0x07,CRC8校驗(yàn)位為0x19,符合設(shè)計(jì)期望。根據(jù)VLC強(qiáng)度配置,在數(shù)據(jù)幀(dataOut)中表示高電平的值為10101111(二進(jìn)制)如圖5(b)所示,符合設(shè)計(jì)期望。
2.2VLLD管理幀
(1)VLLD管理類(lèi)型幀
仿真期望通過(guò)VLID管理類(lèi)型幀將RX端的VLID值設(shè)定為0x07。
從圖6可以看出,在VLC接收模塊收到經(jīng)曼徹斯特編碼后的串行數(shù)據(jù)(pinDatalnput),經(jīng)采樣、解碼后的得到幀數(shù)據(jù)(dataln)為0x2FFFF10780,在完整的接受數(shù)據(jù)后通過(guò)CRC校驗(yàn),最終根據(jù)幀的類(lèi)型產(chǎn)生對(duì)應(yīng)的寫(xiě)操作(vlidWrEn)并將VLID修改為07,成功的實(shí)現(xiàn)VLID無(wú)線(xiàn)管理功能。
(2)VLC強(qiáng)度管理類(lèi)型
仿真期望通過(guò)VLC強(qiáng)度管理類(lèi)型幀對(duì)重置VLID廣播設(shè)備上的VLC信號(hào)強(qiáng)度配置。
從圖7可以看出,在RX端收到類(lèi)型位等于5的幀并成功通過(guò)校驗(yàn),最終按照設(shè)計(jì)期望將內(nèi)部的VLC強(qiáng)度寄存器(signPower)改寫(xiě)為5,符合設(shè)計(jì)期望。
3結(jié)束語(yǔ)
本文給出了可見(jiàn)光導(dǎo)覽系統(tǒng)終端設(shè)備的軟件設(shè)計(jì)思路,并詳細(xì)介紹可見(jiàn)光導(dǎo)覽系統(tǒng)指令集設(shè)計(jì)、自動(dòng)導(dǎo)覽指令集設(shè)計(jì)以及系統(tǒng)強(qiáng)壯性設(shè)計(jì),最后運(yùn)用FPGA開(kāi)發(fā)環(huán)境搭建了仿真系統(tǒng),通過(guò)仿真實(shí)驗(yàn)驗(yàn)證,終端設(shè)備的算法具有錯(cuò)誤檢測(cè)、災(zāi)難恢復(fù)、屏蔽重復(fù)VLID廣播幀的功能,具有較高的穩(wěn)定性和強(qiáng)壯性,所得測(cè)試結(jié)果完全符合設(shè)計(jì)期望,極大提升了可見(jiàn)光導(dǎo)覽系統(tǒng)的可維護(hù)性和可擴(kuò)展性。