<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > AT89C51單片機在無(wú)線(xiàn)數據傳輸中的應用

AT89C51單片機在無(wú)線(xiàn)數據傳輸中的應用

作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:介紹系統的組成、串行口的工作方式及其與數字電臺接口的軟硬件設計與實(shí)現方法。

關(guān)鍵詞: 串行口 數字電臺 串行通信

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

1 系統組成

系統組成如圖1、圖2所示。

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

2 與數字電臺的串行通信

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

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

數字電臺與單片機、終端主控機的通信協(xié)議為:

通信接口――標準串行RS232接口,9線(xiàn)制半雙工方式;

通信幀格式――1位起始位,8位數據位,1位可編程數據位,1位停止位;

波特率――1200 baud。

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

2.2 AT89C51串行口工作方式

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

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

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

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

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

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

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

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

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

2.3 AT89C51與數字電臺的硬件連接

AT89C51與數字電臺的硬件連接如圖3所示。

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

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

3 通信軟件設計

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

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

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

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

下面給出單片機串行口與電臺的基本通信程序。

初始化程序:

BTL EQU 2FH ;波特率放在內部RAM的2FH單元

MOV TMOD,#21H;T0方式1,16位計數器,T1方式2,串口用

SETB TR0 ;啟動(dòng)T0

MOV BTL,#0F3H ;波特率設定為1200

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

接收及驗證程序:

NUM EQU 2BH ;同步符個(gè)數值存放在內部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字節同步符

MIM DB 'WSC':3字節密碼“WSC”

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

SETB REN ;允許串口接收

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

A2:JB RI,A2 ;串口有數據轉A3

A3:CLR RI ;清接收中斷標志

MOV A,SBUF ;讀串口數據

CJNE A,#55H,A1;不是同步符轉A1

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

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

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

A4:MOV NUM,#0 ;密碼驗證,記錄收到密碼字節數

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

MOV A,NUM

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

MOV TEMP,A ;保存密碼

JB RI,A6 ;串口收完一個(gè)字節轉A6

A6:CLR RI ;清接收中斷標志

MOV A,SBUF ;讀串口數據

CJNE A,TEMP,A4;與密碼不符轉A4

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

MOV A,NUM ;取已收到的密碼字節數

CJNE A,#3,A5 ;密碼未收完轉A5

發(fā)送程序:

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

MOV B,#23

MOV DPTR,#ROM-CH

B1:CLR A

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

INC DPTR

LCALL SEND-CH ;調發(fā)送單字節子程序

DJNZ B,B1

CLR A

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

B2:CJNE R4,#0,B3

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

B3:MOVX A,@DPTR;取數據

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

結語(yǔ)

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>