基于AT89S52型單片機的紅外無線PPM發(fā)射機設計
1 引言
在工業(yè)和生活環(huán)境中,便攜式信息終端設備的出現(xiàn)加速了無線數(shù)字通信線路和局域網(wǎng)的引進,然而,由于無線電的局限性,使它在無線高速數(shù)據(jù)鏈路應用方面受阻。在此情況下紅外(IR)無線光通信得到人們的重視[1]。作為一種室內(nèi)短距離通信的傳輸介質(zhì),IR具有勝過無線電的顯著優(yōu)點:IR有巨大的帶寬且不需許可證,可以進行高速數(shù)據(jù)傳輸;IR不穿透墻壁,因而消除了在不同房間進行通信時可能帶來的干擾,而且通信時不容易被偵聽,提高了通信的安全性;IR探測器的尺寸比IR無的波長大得多,避免了多徑衰落;IR可強度調(diào)制,IR通信設備比無線電通信設備要便宜簡單得多。
對室內(nèi)無線電局域網(wǎng),要求紅外數(shù)據(jù)鏈路的峰值-平均光功率比高,高峰值功率可提高系統(tǒng)的靈敏度,低平均功率可滿足人眼安全和低功耗的要求,脈沖位置調(diào)制(PPM)通信方式就符合這些要求,目前,PPM已被IEEE無列入無線局域網(wǎng)IEEE802.11標準。用純硬件設計實現(xiàn)PPM光發(fā)射機是比較復雜和困難的,筆者利用功能強大的AT89S52型單片機和編程軟件VC++設計了一種基于計算機串口和的紅外無線PPM發(fā)射機。AT89S52通過串口從計算機獲取數(shù)據(jù),編碼得到脈沖寬度調(diào)制(PWM)信號后通過輸出端口輸出,輸出的PWM信號經(jīng)過波形轉換電路得到PPM電脈沖信號,再通過光源驅動電路轉換為PPM光脈沖信號,從而完成紅外無線PPM發(fā)射機的設計。
2 PPM信號格式
PPM采用斷續(xù)的周期性光脈沖作為載波,調(diào)制信號受到信源二進制符號地控制,脈沖的時間位置隨之發(fā)生變化而傳遞信息,PPM信號結構如圖1所示,在數(shù)字PPM通信中,同步是至關重要的。為了實現(xiàn)幀同步,應在傳送信息幀之前發(fā)送一次幀同步頭,為接收端提供同步信息,同時在信息幀的前面和后面分別安排2個標志幀以表示信息的開始和結束,這樣接收機捕獲到同步信號和起始標志符后,開始解調(diào)隨后的脈沖信號,直到接收到結束標志,表明數(shù)據(jù)接收完畢。
每一個信息幀又分為信息段和保護段(由光源和信道的特性決定),共M個時隙,每個時隙的寬度為Ts,其中前Q個時隙為信息段TQ=(QTs),后D個時隙為保護段TD=(DTs)。對Q元PPM,平均光功率為Pa,光脈沖峰值功率為QPa,又一幀表示log2Q位的二進制信息,因此數(shù)據(jù)傳輸速率R為
R=log2Q/T=log2Q/MTs=Log2Q/(Q+D)Tsbit/s (1)
其中,T為一幀的時間長度。
在T不變的條件下,PPM的傳信率和峰值功率隨時隙數(shù)Q增大,但是Q值過大,也就是一幀分成的時隙數(shù)過多,會給信號的傳輸和解調(diào)帶來困難,信息和Q值成對數(shù)關系,例如,當Q=256時,一個脈沖表示8比特信息,而Q=512表示9比特信息,由此可見,Q較大時,脈沖攜帶的信息量隨Q值的增大并沒有明顯增加,綜合考慮以上情況和實際設計需要,筆者采用Q=16的PPM調(diào)制方式,時隙寬度Ts設為15μs。
3 AT89S52的特點
AT89S52是一種低功耗、高性能CMOS 8位單片機,片內(nèi)含8KB ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器、該器件采用Atmel公司的高密度、非易失性存儲技術制造、兼容標準MCS-51指令系統(tǒng)及80C51引腳結構。片內(nèi)集成了通用的8位CPU和ISP Flash為存儲單元,可為眾多嵌入式控制應用系統(tǒng)提供高靈活、高性價比的解決方案。
TA89S52具有如下特點:40個引腳,8KB Flash片內(nèi)程序存儲器,256 Bytes的隨機存儲數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,1個6向量2級中斷結構;3個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路和片內(nèi)時鐘振蕩器。
此外,AT89S52設計和配置了振蕩頻率可為0Hz并可通過軟件設置的省電模式。在空閑模式下,CPU暫停工作,而RAM、定時計數(shù)器、串行口、外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存RAM的數(shù)據(jù),禁止電路的其他功能直至外中斷激活或硬件復位。同時該電路還具有PDIP、TQFP和PLCC等封裝形式,以適應不同產(chǎn)品的設計要求。
4 硬件設計
紅外線PPM發(fā)射機由AT89S52型單片機與計算機的串行通信電路,PWM到PPM波形轉換電路和光源驅動電路構成,其系統(tǒng)結構框圖如圖2所示。
4.1 串行通信電路
為了能使單片機和計算機通信,必須使其遵循相同的通信協(xié)議,AT89C51的串行口輸入/輸出為TTL邏輯電平,抗干擾性較差,而計算機的串行接口是符合EIA RS-232C規(guī)范的外部總線標準接口,具有較強的抗干擾性,為了解決電平不一致的矛盾,該系統(tǒng)設計選用了Maxim公司的MAX232型電平轉換器實現(xiàn)電平轉換,MAX232屬于通用串行接收/發(fā)送驅動器,其外圍電路非常簡單,只需外接4個0.1μF的電容器。
AT89S52具有串行通信接口(SCI),SCI是能與計算機等外設通信的全雙工異步系統(tǒng),AT89S52與計算機采用RS-232C接口方式,這種方式下,SCI采用標準的不歸零(NRZ)格式,開始是1位起始位,以邏輯“0”表示,接著是8位數(shù)據(jù)位,最后是1位停止位,以邏輯“1”表示故一次傳送據(jù)長度為10比特,計算機發(fā)送數(shù)據(jù),AT89S52接收數(shù)據(jù),AT89S52將接收到的數(shù)據(jù)進行PWM編碼,得到幀周期固定,而脈沖寬度隨外部信號不斷變化的PWM信號,然后通過P1.0端口輸出。
4.2 波形轉換電路
經(jīng)過單片機編碼輸出的PWM信號經(jīng)過一個下降沿觸發(fā)器即可得到PPM脈沖信號,波形轉換如圖3所示[7]。當P1.0端口輸出的信號由高電平變?yōu)榈碗娖綍r,觸發(fā)器的輸出端產(chǎn)生所需的PPM脈沖信號,其脈沖寬度由外部定時電路決定。
4.3 驅動電路
對于無線紅外通信系統(tǒng)來說,半導體發(fā)光二極管(LED)是可以選用的最佳光源,筆者采用帶有溫度補償特性的射極耦合LED驅動電路[8],該電路看上去像一個線性差分放大器,實際上是一個電流開關電路,PPM信號加在驅動電路的輸入端,當PPM信號的電位低于設定的參考電位時,LED無脈沖電流通過,LED不發(fā)光;反之,脈沖電流通過LED而使LED發(fā)光。如圖4所示,注入電流IF相等的條件下,LED的輸出光功率P隨著溫度的上升而下降,所以設計中采用溫度補償電路進行溫度補償,當溫度升高時,LED的注入電流也隨之增加,從而補償LED的功率變化。
5 軟件設計
5.1 計算機軟件編程
計算機的主要作用是通過串口傳送源數(shù)據(jù)給單片機。
利用Visual C++編制串行通信程序一般有3種方法:調(diào)用Microsoft Win32應用程序接口(API)提供的串行通信函數(shù),利用VC++的MFC類庫函數(shù)實現(xiàn);用Active X通信控件(MSComm)開發(fā)串口通信程序,筆者利用VC++提供的MSComm控件來實現(xiàn)計算機與單片機之間的串行通信,利用VC++的通信控件MSComm進行軟件設計只需對串口進行簡單的設置即可。程序實現(xiàn)非常簡單,結構清晰,在Windows環(huán)境下,串口是系統(tǒng)資源的一部分,應用程序要使用串口進行通信,必須在使用之前向系統(tǒng)提出資源申請要求(打開串口),通信完成后必須釋放資源(關閉串口)。
5.2 單片機軟件編程
單片機的主要作用是從發(fā)送端(計算機)接收數(shù)據(jù),并對接收到的數(shù)據(jù)進行PWM編碼,然后通過輸出端口輸出,單片機部分的編程主要由串口初始化子函數(shù),接收數(shù)據(jù)子函數(shù)和PWM信號發(fā)送子函數(shù)組成。
5.2.1 串口初始化子函數(shù)
使用串口之前,應動其進行初始化,初始化程序如下:
5.2.2 接收數(shù)據(jù)子函數(shù)
接收數(shù)據(jù)流程如圖5所示,程序如下:
5.2.3 PWM發(fā)送信號子函數(shù)
PWM信號發(fā)送包括發(fā)送PWM編碼后的同步頭、起始標志符、接收的數(shù)據(jù)和結束標志符、下面重點討論對接收的數(shù)據(jù)進行編碼及發(fā)送,其流程如圖6所示,程序如下:
6 結束語
紅外通信為構建高速寬帶室內(nèi)無線局域網(wǎng)提供了新的選擇。PPM的脈沖峰值功率與平均功率之比很高,可以有效減小平均輻射功率和提高接收靈敏度,筆者設計的紅外無線PPM發(fā)射機利用單片機實現(xiàn)PPM調(diào)制,具有電路結構簡單、調(diào)試容易、可靠性高、精度高、成本低和功耗低的優(yōu)點,由于設計中只采用了單只紅外LED作為光源,輸出功率不大,而且受輻射角的限制,通信具有方向性,可以考慮采用多只紅外LED構成發(fā)射陣列來增加發(fā)射功率和輻射范圍。