范小鷗
(吉林建筑大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,長春 130118)
目前,隨著電子技術(shù)、計(jì)算機(jī)技術(shù)的飛速發(fā)展,人們?cè)谏詈蜕a(chǎn)等領(lǐng)域中不斷追求自動(dòng)化、智能化,微型電子設(shè)備數(shù)據(jù)的傳輸途徑越來越多,也更加便捷,利用無線光信號(hào)實(shí)現(xiàn)無線數(shù)據(jù)傳輸方式目前備受關(guān)注[1-2].系統(tǒng)設(shè)計(jì)是以基于單片機(jī)的激光近距離數(shù)據(jù)傳輸裝置,闡述其相關(guān)技術(shù)和具體實(shí)現(xiàn)流程,其中重點(diǎn)分析激光編碼,激光發(fā)射和接收.整個(gè)系統(tǒng)需利用STC單片機(jī)作為系統(tǒng)的中央控制器,采用IS0103激光編碼傳感器芯片實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)傳輸,ISD4004作為系統(tǒng)裝置語音控制芯片,通過單片機(jī)驅(qū)動(dòng)語音模塊,播放激光傳輸?shù)臄?shù)據(jù),LCD12864液晶屏幕作為顯示設(shè)備.
系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)輸入、數(shù)據(jù)輸出,數(shù)據(jù)以光波為傳輸介質(zhì)進(jìn)行數(shù)據(jù)通信,傳輸距離不小于0.5M,在數(shù)據(jù)傳輸過程中誤碼率不大于5%,同時(shí)裝置具備雙向數(shù)據(jù)通信功能.
系統(tǒng)裝置包含的主要模塊如下:數(shù)據(jù)輸入模塊、電源供電模塊、數(shù)據(jù)接收模塊、發(fā)射模塊、接收模塊、音頻解碼模塊、信息顯示模塊及按鍵操作模塊.根據(jù)不同的模塊完成系統(tǒng)總體設(shè)計(jì).
(1)音頻解碼設(shè)計(jì). 語音電路模塊使用ISD4004完成設(shè)計(jì).ISD4004具有SPI接口,將其引出到排針上用于與MCU連接,MCU只需模擬SPI接口即可與ISD4004進(jìn)行通信[3-4].對(duì)于語音信號(hào)的捕捉和存儲(chǔ),本文采用駐極體傳感器與晶體管相結(jié)合的方法,實(shí)現(xiàn)對(duì)語音信號(hào)的捕捉,由ISD4004芯片實(shí)現(xiàn)對(duì)語音信號(hào)的調(diào)整和存儲(chǔ).ISD4004音頻輸出信號(hào)比較微弱,因此本文采用LM386對(duì)語音信號(hào)進(jìn)行放大處理,輸出信號(hào)推動(dòng)揚(yáng)聲器,對(duì)可調(diào)節(jié)電阻進(jìn)行調(diào)節(jié)以達(dá)到最優(yōu)質(zhì)的聲音效果.由于單片機(jī)工作電壓為5V,而ISD4004芯片工作于3.3V,因此需要電壓轉(zhuǎn)換.本文采用LM1117實(shí)現(xiàn)電壓的轉(zhuǎn)換.
(2)激光電路設(shè)計(jì). 系統(tǒng)激光電路設(shè)計(jì)包括兩部分,一部分為激光發(fā)射;另一部分為激光接收.激光發(fā)射電路中,D1為激光發(fā)射頭,設(shè)計(jì)中使用的8050三極管由Q1和Q2表示.激光限流電阻記作R4,激光調(diào)制管將激光調(diào)制成200K激光頻率,再通過Q2控制激光的導(dǎo)通和關(guān)閉,設(shè)計(jì)中將其接到TXD上,也就將串口發(fā)送信號(hào)加載到激光中進(jìn)行發(fā)送,使接收管不受其它信號(hào)的干擾,加強(qiáng)傳輸?shù)姆€(wěn)定性.激光接收電路設(shè)計(jì)中,接收信號(hào)指示燈記作D2.當(dāng)接收管接收到200kHz激光頻率時(shí)就會(huì)輸出一個(gè)高電平使D2熄滅.IN為信號(hào)輸出,將其接到RXD就可以完成信息的傳輸,限流電阻記作R5,去耦電容記作C4,以消除電源對(duì)接收管的干擾.
(3)液晶顯示設(shè)計(jì). 系統(tǒng)顯示模塊的硬件電路模塊主要實(shí)現(xiàn)單片機(jī)對(duì)LCD命令和顯示數(shù)據(jù)的讀寫控制功能.其中P0口作為數(shù)據(jù)口與LCD12864的D0-D7相連,在P0口與D0-D7數(shù)據(jù)線之間分別接8個(gè)上拉電阻,以確保電路能夠正常顯示.MCU的P2口作為LCD的控制線,P2.0-P2.3分別接LCD12864的RS,RW,EN和RD端.LCD12864的其它3個(gè)控制端VDD和VSS,VEE分別接電源和地.通過各個(gè)管腳的有序配合即可完成LCD12864的數(shù)據(jù)傳輸控制.
本文設(shè)計(jì)出幾個(gè)供MCU訪問的功能子函數(shù):播放子函數(shù)、停止子函數(shù)、錄音子函數(shù)、讀取當(dāng)前狀態(tài)和上電子函數(shù)等.電路上電后,ISD被初始化,ISD進(jìn)去待機(jī)狀態(tài).當(dāng)設(shè)備接收到數(shù)據(jù)時(shí),系統(tǒng)查詢?cè)摂?shù)據(jù)的語音地址,設(shè)定語音起始地址并播放該段語音,當(dāng)遇到EOM標(biāo)志時(shí)結(jié)束播放.
軟件設(shè)計(jì)中重點(diǎn)為激光編碼發(fā)送和激光編碼的接收,為了保證數(shù)據(jù)的正確性,減少誤碼率,需將串口的工作方式設(shè)為方式1,波特率設(shè)定為9600.為了使數(shù)據(jù)可被接收方識(shí)別,發(fā)送時(shí)需要對(duì)發(fā)送數(shù)據(jù)進(jìn)行編碼,本文設(shè)計(jì)使用的編碼為:AA+BB+CC(頭)+L(數(shù)據(jù)長度)+XXXX(數(shù)據(jù))+X(校驗(yàn))+X(數(shù)據(jù)序號(hào))+FF(尾).設(shè)計(jì)中為了解決通信的干擾使用了上述通信協(xié)議進(jìn)行處理,當(dāng)有數(shù)據(jù)進(jìn)行發(fā)送時(shí)同一條數(shù)據(jù)進(jìn)行連續(xù)發(fā)送,使用數(shù)據(jù)序號(hào)進(jìn)行數(shù)據(jù)新舊的標(biāo)識(shí),每發(fā)送一條數(shù)據(jù)數(shù)據(jù)序號(hào)就會(huì)遞增一次.接收數(shù)據(jù)時(shí)首先進(jìn)行頭判定,如接收到連續(xù)的AA BB CC就認(rèn)為數(shù)據(jù)正確并開始接收,判斷數(shù)據(jù)位數(shù),當(dāng)數(shù)據(jù)全部接收完畢后進(jìn)行數(shù)據(jù)校驗(yàn),若數(shù)據(jù)校驗(yàn)成功繼續(xù)判斷數(shù)據(jù)尾是否正確,若都是正確的則認(rèn)定數(shù)據(jù)接收成功.判斷數(shù)據(jù)序號(hào),若序號(hào)與上次通信不同則屬于新數(shù)據(jù)進(jìn)行更新顯示,這樣即使發(fā)射信號(hào)被遮擋只要在下次發(fā)送前恢復(fù)光路即可保證數(shù)據(jù)不丟失.
基于單片機(jī)的無線光通信裝置設(shè)計(jì)與實(shí)現(xiàn),將語音播報(bào)技術(shù)、激光發(fā)送技術(shù)、激光接收技術(shù)和單片機(jī)技術(shù)結(jié)合起來,并且通過編制通信協(xié)議,加強(qiáng)了系統(tǒng)的通信可靠性,減少了誤碼率.完成了通信的可靠傳輸,經(jīng)測(cè)試10M內(nèi)在無遮擋情況下誤碼率為0%.
[1]邵子揚(yáng).AVR單片機(jī)應(yīng)用專題精講[M].北京:北京航空航天出版社,2013:15-22.
[2]張克彥.AVR應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天出版社,2012:38-42.
[3]潘 峰,楊 順,何 偉.基于嵌入式USB主機(jī)和ZigBee技術(shù)的無線音響系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010,19(8):34-38.
[4]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2012:215-220.