《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > AT89C51單片機(jī)在無(wú)線數(shù)據(jù)傳輸中的應(yīng)用
AT89C51單片機(jī)在無(wú)線數(shù)據(jù)傳輸中的應(yīng)用
互聯(lián)網(wǎng)
摘要: 摘要:介紹無(wú)線數(shù)據(jù)傳輸系統(tǒng)的組成,、AT89C51單片機(jī)串行口的工作方式及其與無(wú)線數(shù)字電臺(tái)接口的軟硬件設(shè)計(jì)與實(shí)現(xiàn)方法。
Abstract:
Key words :

摘要:介紹無(wú)線數(shù)據(jù)傳輸系統(tǒng)的組成,、AT89C51單片機(jī)串行口的工作方式及其與無(wú)線數(shù)字電臺(tái)接口的軟硬件設(shè)計(jì)與實(shí)現(xiàn)方法。

一般的數(shù)字采集系統(tǒng),,是通過(guò)傳感器將捕捉的現(xiàn)場(chǎng)信號(hào)轉(zhuǎn)換為電信號(hào),,經(jīng)模/數(shù)轉(zhuǎn)換器ADC采樣,、量化,、編碼后,為成數(shù)字信號(hào),,存入數(shù)據(jù)存儲(chǔ)器,,或送給微處理器,,或通過(guò)無(wú)線方式將數(shù)據(jù)發(fā)送給接收端進(jìn)行處理,。無(wú)線數(shù)據(jù)傳輸系統(tǒng)就是 樣一套利用無(wú)線手段,,將采集的數(shù)據(jù)由測(cè)量站發(fā)送到主控站的設(shè)備,。

1 系統(tǒng)組成

系統(tǒng)組成如圖1、圖2所示,。

    系統(tǒng)由測(cè)量站和主控站兩部分組成,。測(cè)量站主要完成對(duì)現(xiàn)場(chǎng)信號(hào)的采集、存儲(chǔ),,接收遙控指令并發(fā)送數(shù)據(jù),。主控站的主要工作是發(fā)送遙控指令、接收數(shù)據(jù)信息,、進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)管理,、隨機(jī)顯示打印等。

2 AT89C51與數(shù)字電臺(tái)的串行通信

Atmel公司的AT89C51單片機(jī),,是一種低功耗,、高性能的、片內(nèi)含有4KB Flash ROM的8位CMOS單片機(jī),,工作電壓范圍為2.7~6V(實(shí)際使用+5V供電),,8位數(shù)據(jù)總線。它有一個(gè)可編程的全雙工串行通信接口,,能同時(shí)進(jìn)行串行發(fā)送和執(zhí)著收,。通過(guò)RXD引腳(串行數(shù)據(jù)接收端)和TXD引腳(串行數(shù)據(jù)發(fā)送端)與外界進(jìn)行通信。

2.1 通信協(xié)議與波特率

數(shù)字電臺(tái)與單片機(jī),、終端主控機(jī)的通信協(xié)議為:

通信接口——標(biāo)準(zhǔn)串行RS232接口,,9線制半雙工方式,;

通信幀格式——1位起始位,8位數(shù)據(jù)位,,1位可編程數(shù)據(jù)位,1位停止位,;

波特率——1200 baud,。

數(shù)字電臺(tái)選用Motorola公司的GM系列車載電臺(tái),工作于VHF/UHF頻段,,可進(jìn)行無(wú)線數(shù)傳(9線制標(biāo)準(zhǔn)串行RS232接口),,也可進(jìn)行話音通信;采用二進(jìn)制移頻鍵控(2FSK)調(diào)制解調(diào)方式,,符合國(guó)際電報(bào)電話咨詢委員會(huì)CCITT.23標(biāo)準(zhǔn),。在話帶內(nèi)進(jìn)行數(shù)字傳輸時(shí),推薦在不高于1200b/s數(shù)據(jù)率時(shí)使用,。實(shí)際使用時(shí),,電臺(tái)工作于220~240MHz頻率范圍,采用半雙工方式(執(zhí)行收,、發(fā)操作,,但不能同時(shí)進(jìn)行)即可滿足系統(tǒng)要求。

2.2 AT89C51串行口工作方式

AT89C51串行口可設(shè)置四種工作方式,,可有8位,、10位和11位幀格式。本系統(tǒng)中,,AT89C51串行口工作于方式3,,即鳘幀11位的異步通信格式:1位起始位,8位數(shù)據(jù)位(低位在前),,1位可編程數(shù)據(jù)位,,1位停止位。

發(fā)送前,,由軟件設(shè)置第9位數(shù)據(jù)(TB8)作奇偶校驗(yàn)位,,將要發(fā)送的數(shù)據(jù)寫入SBUF,啟動(dòng)發(fā)送過(guò)程,。串行口能自動(dòng)把TB8取出,,裝入到第9位數(shù)據(jù)的位置,再逐一發(fā)送出去,。發(fā)送完畢,,使TI=1。

接收時(shí),,置SCON中的REN為1,,允許接收,。當(dāng)檢測(cè)到RXD(P3.0端有“1”到“0”的跳變(起始位)時(shí),開(kāi)始接收9位數(shù)據(jù),,送入移位寄存器(9位),。當(dāng)滿足RI=0且SM2=0或接收到的9位數(shù)據(jù)為1時(shí),前8位數(shù)據(jù)送入SBUF,,第9位數(shù)據(jù)送入SCON中的RB8,,置RI為1;否則,,這次接收無(wú)效,,不置位RI。

    串口方式3的波特率由定時(shí)器T1的溢出率與SMOD值同時(shí)決定:

方式3波特率=T1溢出率/n

當(dāng)SMOD=0時(shí),,n=32,;SMOD=1時(shí),n=16,。T1溢出率取決于T1的計(jì)數(shù)速率(計(jì)數(shù)速率=fosc/12)和TI預(yù)置的初值,。

定時(shí)器T1用作波特率發(fā)生器,工作于模式2(自動(dòng)重裝初值),。設(shè)TH1和TL1定時(shí)計(jì)數(shù)初值為X,,則每過(guò)“2 8-X”個(gè)機(jī)器周期,T1就會(huì)發(fā)生一次溢出,。初值X確定如下:

X=256-fosc×(SMOD+1)/384×BTL

本系統(tǒng)中,,SMOD=0,波行率BTL=1200,,晶振fosc=6MHz,,所以初值X=F3H,。

2.3 AT89C51與數(shù)字電臺(tái)的硬件連接

AT89C51與數(shù)字電臺(tái)的硬件連接如圖3所示,。

系統(tǒng)采用異步串行通信方式傳輸測(cè)量數(shù)據(jù)。利用單片機(jī)串口與數(shù)字電臺(tái)RS232數(shù)據(jù)口相連,。電臺(tái)常態(tài)為收狀態(tài)(PPT=0,,收狀態(tài);PPT=1,,發(fā)狀態(tài)),,單片機(jī)P3.5腳輸出高電平。單片機(jī)使用TTL電平,,電臺(tái)使用RS232電平,,由MAX232完成TTL電平與RS232電平之間的轉(zhuǎn)換。3片光電耦合器6N137實(shí)現(xiàn)單片機(jī)與電臺(tái)之間的電源隔離,,增強(qiáng)系統(tǒng)抗干擾性能,。

單片機(jī)通過(guò)帶控制端的三態(tài)緩沖門74HC125,、非門74HC14控制電臺(tái)的收發(fā)轉(zhuǎn)換,以及指令的接收和數(shù)據(jù)發(fā)送,。接收時(shí),,P3.5=1,c2=1,74HC125B截止,;P3.5經(jīng)74HC14反相,、光電隔離,使電臺(tái)PPT腳為低電平,,將其置為接收狀態(tài),;同時(shí)c1=0,74HC125A導(dǎo)通,,接收的指令由電臺(tái)的RXD端輸入,,經(jīng)MAX232電平變換、光電隔離,、74HC125A緩沖門,,送入單片機(jī)RXD腳。發(fā)射時(shí),,P3.5=0,,經(jīng)74HC14反相、光電隔離,,使電臺(tái)PPT腳為高電平,,將其置為發(fā)射狀態(tài);同時(shí)c1=1,,74HC125A截止,,c2=0,74HC125B導(dǎo)通,,數(shù)據(jù)由單片機(jī)TXD腳輸出,,經(jīng)74HC125B緩沖門、光電隔離,、MAX232電平變換,,通過(guò)電臺(tái)TXD端口將數(shù)據(jù)發(fā)送出去。

3 通信軟件設(shè)計(jì)

通信軟件至關(guān)重要,,一旦出現(xiàn)問(wèn)題,,整個(gè)系統(tǒng)就會(huì)癱瘓。采取差錯(cuò)控制與容錯(cuò)技術(shù)是非常重要的,。

*主控站發(fā)送的指令中包含一定數(shù)量的同步符55H和3字節(jié)的密碼,。測(cè)量站在連續(xù)收到5個(gè)同步符后進(jìn)行密碼驗(yàn)證,驗(yàn)證通過(guò)后正式接收指令字節(jié);如未通過(guò),,則測(cè)量站發(fā)一信號(hào)讓主控站重發(fā),,三次驗(yàn)證不過(guò)則停發(fā)該命令。測(cè)量站發(fā)/主控站收時(shí),,驗(yàn)證方式與此相同,。驗(yàn)證通過(guò)后,測(cè)量站開(kāi)始發(fā)送數(shù)據(jù),。

*一個(gè)指令由3字節(jié)構(gòu)成,,第二字節(jié)等于第一字節(jié)加上35H,第3字節(jié)等于第二字節(jié)加上36H,。如果收到的指令不符合此規(guī)則,,則重發(fā)該命令,連續(xù)三次錯(cuò)誤時(shí)停發(fā),。

*主控站每發(fā)一個(gè)指令,,測(cè)量站都回送一個(gè)應(yīng)答信號(hào)。該應(yīng)答信號(hào)中包含原指令樣本,。

下面給出單片機(jī)串行口與電臺(tái)的基本通信程序,。

初始化程序:

BTL EQU 2FH ;波特率放在內(nèi)部RAM的2FH單元

MOV TMOD,,#21H,;T0方式1,16位計(jì)數(shù)器,,T1方式2,,串口用

SETB TR0 ;啟動(dòng)T0

MOV BTL,,#0F3H ,;波特率設(shè)定為1200

MOV SCON,#0C0H,;串口方式3,,9位數(shù)據(jù),禁止接收

接收及驗(yàn)證程序:

NUM EQU 2BH ,;同步符個(gè)數(shù)值存放在內(nèi)部RAM的2BH單元

TEMP EQU 2CH

ROM-CH:DB 55H,,55H,55H,,55H,55H,,55H,,55H,55H,55H,,55H

DB 55H,,55H,55H,,55H,,55H,55H,,55H,,55H,55H,,55H ,;20字節(jié)同步符

MIM DB ‘WSC‘:3字節(jié)密碼“WSC”

SETB P3.5 ;置電臺(tái)收狀態(tài)

SETB REN ,;允許串口接收

A1:MOV NUM,,#0 ;記錄連續(xù)到同步符55H的個(gè)數(shù)

A2:JB RI,,A2 ,;串口有數(shù)據(jù)轉(zhuǎn)A3

A3:CLR RI ;清接收中斷標(biāo)志

MOV A,,SBUF ,;讀串口數(shù)據(jù)

CJNE A,#55H,,A1,;不是同步符轉(zhuǎn)A1

INC NUM ;收到的同步符個(gè)數(shù)加1

MOV A,,NUM ,;取收到的同步符個(gè)數(shù)

CJNE A,#5,,A2 ,;未收夠連續(xù)5個(gè)55H轉(zhuǎn)A2

A4:MOV NUM,#0 ;密碼驗(yàn)證,記錄收到密碼字節(jié)數(shù)

A5:MOV DPTR,,#MIM,;密碼字符首址

MOV A,NUM

MOVC A,,@A+DPTR,;查表取密碼

MOV TEMP,A ,;保存密碼

JB RI,,A6 ,;串口收完一個(gè)字節(jié)轉(zhuǎn)A6

A6:CLR RI ;清接收中斷標(biāo)志

MOV A,,SBUF ,;讀串口數(shù)據(jù)

CJNE A,TEMP,,A4,;與密碼不符轉(zhuǎn)A4

INC NUM ;收到的密碼個(gè)數(shù)加1

MOV A,,NUM ,;取已收到的密碼字節(jié)數(shù)

CJNE A,#3,,A5 ,;密碼未收完轉(zhuǎn)A5

發(fā)送程序:

CLR P3.5 ;置電臺(tái)發(fā)狀態(tài)

MOV B,,#23

MOV DPTR,,#ROM-CH

B1:CLR A

MOVC A,@A+DPTR,;查表發(fā)送同步符和密碼共24字節(jié)

INC DPTR

LCALL SEND-CH ,;調(diào)發(fā)送單字節(jié)子程序

DJNZ B,B1

CLR A

MOV DPTR,,#7000H,;外部RAM數(shù)據(jù)首址,發(fā)送外部RAM中的數(shù)據(jù)到電臺(tái)

B2:CJNE R4,,#0,,B3

CJNE R3,#0,,B3,;R4R3=發(fā)送字節(jié)數(shù)

B3:MOVX A,@DPTR,;取數(shù)據(jù)

INC DPTR

LCALL SEND-CH

CJNE R3,,#0,B4

CJNE R4,,#0,,B5

B4:DEC R3

LJMP B2

DEC R3

DEC R4

LJMP B2

SEND-CH:SETB TB8

MOV SBUF,A

DB 0,,0,,0,0,,0,,0,,0,,0

JNB TI,,$ ;延時(shí)4μs

CLR TI

RET

結(jié)語(yǔ)

無(wú)線數(shù)據(jù)傳輸系統(tǒng)建成后,,已經(jīng)使用了兩年多,,運(yùn)行結(jié)果表明,系統(tǒng)工作穩(wěn)定可靠,。由于采用了較完善的軟硬件設(shè)計(jì)和抗干擾措施,,保證了系統(tǒng)工作的安全性和可靠性。測(cè)量站把采集的現(xiàn)場(chǎng)信號(hào)及時(shí)傳送到主控站,,提高了數(shù)據(jù)處理的實(shí)時(shí)性,。單片機(jī)和數(shù)字電臺(tái)接口的軟硬件設(shè)計(jì)具有很強(qiáng)的適用性,可廣泛應(yīng)用于無(wú)線數(shù)傳設(shè)備,。

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