《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于AT89C52單片機(jī)實(shí)現(xiàn)短距離無(wú)線通信
基于AT89C52單片機(jī)實(shí)現(xiàn)短距離無(wú)線通信
摘要: 單片機(jī)無(wú)線通信系統(tǒng)設(shè)計(jì)基于PTR2000無(wú)線數(shù)據(jù)傳輸解決方案,,可實(shí)現(xiàn)小于300 m的短距離通信,,通過(guò)實(shí)驗(yàn)驗(yàn)證該無(wú)線數(shù)據(jù)傳輸系統(tǒng)運(yùn)行良好,單片機(jī)控制得相當(dāng)準(zhǔn)確,。
Abstract:
Key words :

  1 引言

  短距離無(wú)線傳輸具有抗干擾性能強(qiáng),、可靠性高、安全性好,、受地理?xiàng)l件限制少,、安裝靈活等優(yōu)點(diǎn),在許多領(lǐng)域有著廣泛的應(yīng)用前景,。低功耗,、微型化是用戶對(duì)當(dāng)前無(wú)線通信產(chǎn)品尤其是便攜產(chǎn)品的實(shí)際需求,,短距離無(wú)線通信逐漸引起廣泛關(guān)注,。常見(jiàn)的短距離無(wú)線通信有基于802.11的無(wú)線局域網(wǎng)WLAN、藍(lán)牙 (blueTooth),、HomeRF及歐洲的HiperLAN(高性能無(wú)線局域網(wǎng)),,但其硬件設(shè)計(jì)、接口方式,、通信協(xié)議及軟件堆棧復(fù)雜,,需專門(mén)的開(kāi)發(fā)系統(tǒng),開(kāi)發(fā)成本高,、周期長(zhǎng),,最終產(chǎn)品成本也高。因此這些技術(shù)在嵌入式系統(tǒng)中并未得到廣泛應(yīng)用,。普通RF產(chǎn)品不存在這些問(wèn)題,,且短距離無(wú)線數(shù)據(jù)傳輸技術(shù)成熟,功能簡(jiǎn)單,、攜帶方便,,使其在嵌入式短程無(wú)線產(chǎn)品中得到了廣泛應(yīng)用,。

  2 PTR2000引腳簡(jiǎn)介及設(shè)計(jì)

  2.1 PTR2000器件引腳功能

  PTR2000是基于nRF401器件的無(wú)線數(shù)據(jù)傳輸模塊,采用低發(fā)射頻率,、高靈敏度設(shè)計(jì),。該器件使用433 MHz頻段,是真正的單片UHF無(wú)線收發(fā)一體器件,,其工作模式包括工作頻道的設(shè)置和發(fā)送,、接收、待機(jī)狀態(tài),,由TXEN,、CS、PWM 3個(gè)引腳共同決定,,其工作模式設(shè)置如表1所示,。

工作模式設(shè)置

  2.2 PrR2000模塊設(shè)計(jì)

  該器件外圍的主要電路有以下兩個(gè):

  (1)與單片機(jī)的連接電路單片機(jī)AT89C52的RXD和TXD引腳與PTR2000模塊的DO和DI引腳直接相連。PTR2000的模式控制引腳與單片機(jī)的控制引腳相連,。

  (2)與PC機(jī)的連接電路采用MAX202器件對(duì)PTR2000模塊和計(jì)算機(jī)串口進(jìn)行RS-232和TTL電平轉(zhuǎn)換,,將PTR2000與MAX202的輸入和輸出信號(hào)連接,轉(zhuǎn)換后的信號(hào)與計(jì)算機(jī)的串口連接,。

  3 硬件設(shè)計(jì)

  在無(wú)法使用有線傳輸?shù)膱?chǎng)合,,采用無(wú)線數(shù)據(jù)傳輸模塊和單片機(jī)相結(jié)合進(jìn)行數(shù)據(jù)傳輸是較合理的方案。PTR2000利用串口進(jìn)行數(shù)據(jù)傳輸,,而單片機(jī)和PC機(jī)均帶有串口,,因此,可利用PTR2000作為單片機(jī)和PC機(jī)之間數(shù)據(jù)傳輸?shù)臒o(wú)線接口,,其硬件結(jié)構(gòu)框圖如圖1所示,。

硬件結(jié)構(gòu)框圖

  該采集系統(tǒng)主要以AT89C52單片機(jī)為控制處理核心。由它完成對(duì)數(shù)據(jù)的采集處理以及控制數(shù)據(jù)的無(wú)線傳輸,。AT89C52單片機(jī)具有快速8051內(nèi)核,、8 KB Flash E2PROM、256字節(jié)RAM,。為實(shí)現(xiàn)無(wú)線數(shù)據(jù)傳輸,,采用無(wú)限收發(fā)一體數(shù)據(jù)傳送MODEM模塊PTR2000器件,該器件內(nèi)部集成高頻接收,、PLL合成,、PSK調(diào)制/解調(diào)、參量放大,、功率放大,、頻道切換等功能,完全符合無(wú)線數(shù)據(jù)通信的硬件要求。為降低成本,,在最小硬件設(shè)計(jì)的基礎(chǔ)上,,利用C51高級(jí)C語(yǔ)言編程,系統(tǒng)的功能盡可能用軟件程序?qū)崿F(xiàn),。

  3.1 單片機(jī)的時(shí)鐘電路和復(fù)位電路設(shè)計(jì)

  單片機(jī)時(shí)鐘電路設(shè)計(jì)中,,選擇晶振頻率11.059 2 MHz,約定PC機(jī)和單片機(jī)的通信速率為9 600 b/s,,并選擇相應(yīng)電容與單片機(jī)的時(shí)鐘引腳相連構(gòu)成時(shí)鐘回路,。在復(fù)位電路設(shè)計(jì)中,采用復(fù)位引腳和相應(yīng)的電容,、電阻構(gòu)成復(fù)位電路,。單片機(jī)與PTR2000接口原理電路如圖2所示。

單片機(jī)與PTR2000接口原理電路

  3.2 單片機(jī)與PTR2000接口電路的設(shè)計(jì)

  在圖2中,,AT89C52單片機(jī)主要完成數(shù)據(jù)的采集和處理,,向PTR2000模塊發(fā)送數(shù)據(jù),并接收由PC機(jī)通過(guò)PTR2000傳送的數(shù)據(jù),。和單片機(jī)相連的 PTR2000模塊主要將單片機(jī)的待傳數(shù)據(jù)調(diào)制成射頻信號(hào),,再發(fā)送到PC機(jī)端的PTR2000模塊,同時(shí)接收PC機(jī)端的PTR2000模塊傳送的射頻信號(hào),,并調(diào)制成單片機(jī)可識(shí)別的TTL信號(hào)送至單片機(jī),。單片機(jī)的RXD和TXD引腳分別和PTR2000的DO和DI引腳連接,實(shí)現(xiàn)串行數(shù)據(jù)傳輸,;決定 PTR2000模塊工作模式的TXEN,、CS、PWR 3個(gè)引腳分別和單片機(jī)I/O控制口的P2.0~P2.2相連,,PTR2000工作時(shí),,由單片機(jī)中的運(yùn)行控制程序?qū)崟r(shí)控制其工作模式。

  3.3 PC機(jī)與PTR2000接口電路的設(shè)計(jì)

  該接口電路設(shè)計(jì)首先需進(jìn)行電平轉(zhuǎn)換,。PC機(jī)的串口支持RS-232標(biāo)準(zhǔn),,而PTR2000模塊支持TTL電平,選擇MAX232器件進(jìn)行兩者間的電平轉(zhuǎn)換,,接口電路如圖3所示。PTR2000模塊進(jìn)行串行輸入,、輸出,,引腳DI、DO通過(guò)電平轉(zhuǎn)換器件和PC機(jī)串口相連,;PTR2000的低功耗控制引腳,。 PWR接高電平VCC,即PTR2000固定工作在正常工作狀態(tài);頻道選擇引腳CS接GND低電平,,即采用固定通信頻道1,,固定工作在433.92 MHz;PC機(jī)串口的RTS信號(hào)控制TXEN引腳,,以決定PTR2000模塊何時(shí)為接收和發(fā)射狀態(tài),。PC機(jī)和串口的傳輸速率設(shè)定為9 600 b/s,和單片機(jī)保持一致,。

接口電路

   4 軟件設(shè)計(jì)

  無(wú)線通信系統(tǒng)的軟件設(shè)計(jì)包括單片機(jī)端和PC機(jī)端兩部分,,兩部分軟件相互配合,設(shè)置各自的PTR2000模塊的工作狀態(tài),。

   4.1 PTR2000模塊程序設(shè)計(jì)

  單片機(jī)和PC機(jī)端軟件配合設(shè)置PTR2000的狀態(tài)(發(fā)射或接收),,選擇固定的通信頻道1(CS=0),并讓PTR2000模塊一直處于正常工作狀態(tài)(PWM=1),。無(wú)線通信實(shí)現(xiàn)過(guò)程如下:

  (1)發(fā)送在發(fā)送數(shù)據(jù)之前,,應(yīng)將PTR2000模塊置于發(fā)射模式,即TXEN=1,。然后等待至少5 ms后(接收到發(fā)射的切換時(shí)間)才可發(fā)射數(shù)據(jù),。發(fā)送結(jié)束后,應(yīng)將模塊置于接收狀態(tài),,即TXEN=0,。

  (2)接收應(yīng)將PTR2000置于接收模式,即TXEN=0,。單片機(jī)不發(fā)送的絕大部分時(shí)間都處于接收狀態(tài),。當(dāng)單片機(jī)端發(fā)送時(shí),PC機(jī)端應(yīng)為接收,;當(dāng)PC機(jī)端發(fā)送時(shí),,單片機(jī)端應(yīng)為接收。

  4.2 串行無(wú)線通信協(xié)議設(shè)計(jì)

  無(wú)線通信中,,由于外部環(huán)境的干擾,,通常誤碼率較高,因此通信協(xié)議的設(shè)計(jì)對(duì)保證通信的可靠性十分重要,。協(xié)議的設(shè)計(jì)主要是幀結(jié)構(gòu)的設(shè)計(jì),,在該無(wú)線通信系統(tǒng)中,存在指令幀和數(shù)據(jù)幀,。數(shù)據(jù)幀的內(nèi)容包括起始字節(jié),、數(shù)據(jù)長(zhǎng)度字節(jié)、數(shù)據(jù)字節(jié),、結(jié)束字節(jié)和校驗(yàn)和字節(jié),,如表2所示,。

數(shù)據(jù)幀的內(nèi)容

  起始字節(jié)定義為“$”字符,其數(shù)值為0x24,;結(jié)束字節(jié)定義為“*”字符,,其數(shù)值為0x2A。

  采用校驗(yàn)和的方法進(jìn)行幀的校驗(yàn),,將所有字節(jié)相加,,然后將結(jié)果截短到所需的位長(zhǎng)。發(fā)送端對(duì)待發(fā)送的數(shù)據(jù)進(jìn)行校驗(yàn)和計(jì)算,,將校驗(yàn)和值放在數(shù)據(jù)后一起發(fā)送,;在接收端,對(duì)接收到的數(shù)據(jù)進(jìn)行校驗(yàn)和計(jì)算,,然后與收到的校驗(yàn)和字節(jié)比較,,進(jìn)行誤碼判斷。

  對(duì)于單片機(jī),,指令幀主要有3種:PC機(jī)發(fā)送給單片機(jī)的請(qǐng)求發(fā)送指令,、錯(cuò)誤/超時(shí)重發(fā)指令、單片機(jī)發(fā)給PC機(jī)的發(fā)送完畢指令,。在該系統(tǒng)設(shè)計(jì)中指令幀采用數(shù)據(jù)幀的格式,,將其中的。數(shù)據(jù)字節(jié)固定為一個(gè)字節(jié),,根據(jù)定義的字節(jié)判斷數(shù)據(jù)狀態(tài),。

  4.3 程序流程

  單片機(jī)開(kāi)始需將無(wú)線數(shù)據(jù)傳輸模塊PTR2000設(shè)置處于接收狀態(tài),通過(guò)串口中斷識(shí)別由PC機(jī)通過(guò)無(wú)線信道傳輸來(lái)的指令,,根據(jù)接收指令的內(nèi)容采集數(shù)據(jù)并啟動(dòng)發(fā)送,。發(fā)送前需將PTR2000模塊設(shè)置為發(fā)射狀態(tài),且等待5 ms才可發(fā)送,,發(fā)送完畢后,,向PC機(jī)端發(fā)送“發(fā)送結(jié)束指令”,并將PTR2000模塊重設(shè)為接收狀態(tài),。圖4為系統(tǒng)軟件設(shè)計(jì)流程圖,。

系統(tǒng)軟件設(shè)計(jì)流程圖

  5 結(jié)束語(yǔ)

  單片機(jī)無(wú)線通信系統(tǒng)設(shè)計(jì)基于PTR2000無(wú)線數(shù)據(jù)傳輸解決方案,可實(shí)現(xiàn)小于300 m的短距離通信,,通過(guò)實(shí)驗(yàn)驗(yàn)證該無(wú)線數(shù)據(jù)傳輸系統(tǒng)運(yùn)行良好,,單片機(jī)控制得相當(dāng)準(zhǔn)確。在應(yīng)用時(shí)將系統(tǒng)作為一個(gè)模塊可方便地移植,,以便構(gòu)建更為復(fù)雜的無(wú)線通信網(wǎng)絡(luò),,可應(yīng)用于小型無(wú)線網(wǎng)絡(luò)、無(wú)線抄表,、小區(qū)傳呼、工業(yè)數(shù)據(jù)采集系統(tǒng)、安全防火系統(tǒng)等領(lǐng)域,,具有一定實(shí)用價(jià)值,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。