【摘要】介紹了所設(shè)計的LED可見光通信系統(tǒng)的發(fā)射端及接收端程序設(shè)計概況,對程序設(shè)計中若干關(guān)鍵問題處理方法及注意事項做了闡述,并對實驗中遇到問題的可能原因進(jìn)行了討論。
【關(guān)鍵詞】可見光通信;發(fā)射端;接收端;程序設(shè)計
1.引言
可見光LED具有高亮度,損耗低,壽命長等特點,可見光通信Visible Light Communication(VLC)是一種建立在白光LED高速發(fā)光響應(yīng)特性基礎(chǔ)上的新興光無線通信技術(shù)[1],通過使光以人眼無法感知的頻率進(jìn)行閃爍的方法來傳送數(shù)據(jù),通信速率可達(dá)數(shù)百兆每秒。在提供照明的同時,也實現(xiàn)了短距離無線通信的目的。這項技術(shù)可以把通信能力構(gòu)建在LED照明之中減輕RF頻帶的擁擠程度并為光通信提供一種全新的寬帶接入方式[2,3], 與射頻無線通信相比VLC具有無電磁干擾發(fā)射功率高信道容量大和設(shè)備兼容性好等突出優(yōu)點將很有可能成為光無線通信領(lǐng)域的一個新的增長點,具有非常有價值的應(yīng)用前景。
仿真構(gòu)建了以溫度數(shù)據(jù)作為傳輸信息的可見光通信系統(tǒng),以兩片單片機(jī)為基礎(chǔ),在發(fā)射端,通過溫度采集模塊采集到的溫度信息,經(jīng)單片機(jī)內(nèi)部PPM編碼,傳送給恒流源驅(qū)動電路。經(jīng)恒流源電路控制連接的LED,在保證自身照明功能的同時通過PWM調(diào)光發(fā)送數(shù)據(jù)。在接收端,通過光電探測器接收光信號,完成光/電信號的轉(zhuǎn)換,最后解調(diào)轉(zhuǎn)換過來的電信號并將其輸出,從而實現(xiàn)了通信功能。該通信系統(tǒng)的構(gòu)建是在相應(yīng)程序設(shè)計基礎(chǔ)上實現(xiàn)的,現(xiàn)將發(fā)射端和接收端的程序設(shè)計做一介紹。
2.發(fā)射端程序設(shè)計
發(fā)射端采用時分復(fù)用技術(shù)傳輸二進(jìn)制數(shù)據(jù),其整體流程如圖1所示。
圖1 發(fā)射端整體工作流程框圖
(1)單片機(jī)定時器的選擇與對應(yīng)程序編碼
定時器1在程序中的工作方式為“方式1”,即定時時間從0到65536,共65536μs。定時器1的選擇是用它來將信號調(diào)制為頻率為38KHZ的高頻載波,從而保證信號在傳遞的過程中減小失真。38KHZ對應(yīng)的單位時間為26μs。因為38KHZ的高頻信號為占空比50%的方波信號,所以它的上升沿和下降沿的時間均為13μs。所以定時器1的初始設(shè)定為:
TH1=(65536-13)/256 ? ? ? ? ? ? (1)
TL1=(65536-13)%256 ? ? ? ? ? ? (2)
定時器0在程序中的工作方式為“方式2”,即定時時間從0到256,共256μs。它的作用是用來確定PPM編碼的周期時間。所以定義的PPM碼中,預(yù)先設(shè)定的決定PPM碼周期長短的單位“bb”就可以表示為256μs乘以定時器中斷0中的預(yù)設(shè)參數(shù)“aa”的數(shù)值。而“bb”最終決定了LED的發(fā)光頻率和閃爍方式。
根據(jù)PPM編碼的原理,添加了用于接收端判斷是否開始接收信息的起始碼。并編寫了“0”和“1”的發(fā)射函數(shù),用來定義。
定義PPM碼的“0”碼程序如下,其中變量“cc”表示了信號的高低變化。C語言程序如下:
void write0()
{
bb=0;
aa=0;
while(bb<1)
cc=1;
aa=0;
while(bb<2)
cc=0;
}
定義PPM碼的“1”碼程序如下:
void write1()
{
bb=0;
aa=0;
while(bb<1)
cc=1;
aa=0;
while(bb<3)
cc=0;
}
定義PPM碼的起始碼程序如下:
void begin()
{
bb=0;
aa=0;
while(bb<1)
cc=1;
aa=0;
while(bb<7)
cc=0;
}
圖2為傳輸溫度數(shù)據(jù)24(oC)時的程序仿真波形圖。
圖2 傳輸溫度數(shù)據(jù)24的PPM碼程序仿真波形圖
從程序中,無論是哪種碼,當(dāng)cc=1的時候,它的持續(xù)時間只有bb的1個單位,即5ms。而這三種碼真正的區(qū)別是當(dāng)cc=0,也就是電信號為低的時候,它們的持續(xù)時間各不相同。通過外部電路的調(diào)整就可以將這樣的電信號用來控制LED亮或者滅的持續(xù)時間,從而來表示起始碼,“0”碼,和“1”碼。
(2)定義9位數(shù)組
當(dāng)信號不斷的被定義成PPM碼的同時,還需要定義一個字,即8位的發(fā)射函數(shù),用來包含0和1,以及1位的起始碼。
定義8位攜帶數(shù)據(jù)的位方式如下:
void write(uchar a)
{
uchar i;
for(i=0;i<8;i++)
{
if(a&0x01)
write1();
else
write0();
a=a>>1;
}}
3.接收端程序設(shè)計
接收端整體流程見圖3所示。
圖3 接收端程序工作流程框圖
經(jīng)過單片機(jī)外部對接收到的信號調(diào)制以后,需要計算上升沿延時長短。當(dāng)然,接收端用來判斷時間的數(shù)據(jù)是需要和發(fā)送端對應(yīng)的。根據(jù)延時時間的不同,分辨出引導(dǎo)碼,0碼,和1碼即可。令定時器0中工作在“方式1”,確定了接收端單片機(jī)的工作單位時間。
(1)接收引導(dǎo)碼
根據(jù)發(fā)射端定義的起始碼,當(dāng)光照30ms之后停止了5ms的時候,則確認(rèn)接受到了起始碼,然后開始連續(xù)的接收接下來的信息。為了避免在實際電路連接制作中存在的延時以及誤差,所以在接收端的程序設(shè)計中,將起始碼以及“0”碼,“1”碼的判定時間均稍微加以延長,以便接收端能夠在系統(tǒng)存在延時的情況下正確的接收信息。
程序如下:
if(TIME>30500)
return 0;
if(TIME<29500)
return 0;
for(i=0;i<7;i++)
(2)8位數(shù)組存儲
將分析占空比后轉(zhuǎn)化出的0,1碼存儲到一個8位數(shù)組中,當(dāng)存儲滿后,分別送給兩個數(shù)碼管顯示。在這里需要特別注意的是,由于發(fā)射端在每次發(fā)送起始碼之前需要在主程序中開啟定時器,需要消耗幾毫秒的時間,這也就會影響起始碼前一位碼的低電平延時。所以第8位碼的發(fā)送會引起一定的誤差(如圖2所示),這是系統(tǒng)產(chǎn)生的不可避免的誤差。由于傳遞的溫度信息數(shù)據(jù)一般不會高于128,所以在接收端強(qiáng)制設(shè)定單片機(jī)接收7位信號,忽略了第8位數(shù)據(jù)的接收。
4.結(jié)論與討論
(1)關(guān)于定時器
為了保證LED的閃爍不被肉眼所察覺,根據(jù)肉眼分辨的最大頻率為50HZ,即一周期的時間為20ms。所以時間最長的引導(dǎo)碼持續(xù)時間需要小于20ms。計算公式為:
bb×6<20ms;bb=aa×10;aa=256μs
(2)關(guān)于PPM編碼
當(dāng)調(diào)制的PPM編碼波形處于低電平的時候,載波此時也一定要處于低電平,否則就會出現(xiàn)載波影響調(diào)制波的情況。所以在PPM調(diào)制波形變?yōu)榈碗娖街?,一定要?qiáng)制令載波處于低電平,即關(guān)閉定時器1,并關(guān)閉控制LED的單片機(jī)I/O端口,從而使得載波不影響發(fā)射的波形,否則載波會根據(jù)調(diào)制波消失前的最后一個周期的高低電平位置繼續(xù)延遲。
(3)關(guān)于系統(tǒng)傳輸數(shù)據(jù)的誤差
由于在系統(tǒng)中,單片機(jī)打開定時器需要消耗一定的時間,所以當(dāng)傳輸速率過高時,即使開啟定時器的時間很短,也會對傳輸系統(tǒng)造成很大的誤差。如何完善電路設(shè)計,克服單片機(jī)自身的缺點,減小系統(tǒng)傳輸數(shù)據(jù)的誤差,還有待進(jìn)一步的研究與實驗。
參考文獻(xiàn)
[1]KOMINE T,NAKAGAWA M. Fundamental analysis for visible-light communication system using LED lights[J].IEEE Transactions on Consumer Electronics,2004,50(1):100-107.
[2]DOUSEKI T.A battery less optical-wireless system with white LED illumination[C].15th IEEE Internationa1 Symposium on Personal,Indoor and Mobile Radio Communications,2004:2529-2533.
[3]曉野.用燈光上網(wǎng)[J].百科知識,2014(11):25-26.
[4]楊立偉,侯聰.基于白光LED的可見光通信技術(shù)研究[J].電信網(wǎng)技術(shù),2013(12):33-37.
[5]熊飛嶠,敖邦乾.白光LED可見光無線通信系統(tǒng)的研究[J].無線光通信,2013(1):60-62.
[6]張毅剛.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2004.
作者簡介:陳博昊(1992—),男,遼寧沈陽人,大學(xué)本科,現(xiàn)就讀于沈陽工業(yè)大學(xué)信息科學(xué)與工程學(xué)院。