<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > AT89C51單片機(jī)在無線數(shù)據(jù)傳輸中的應(yīng)用

          AT89C51單片機(jī)在無線數(shù)據(jù)傳輸中的應(yīng)用

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

          摘要:介紹系統(tǒng)的組成、串行口的工作方式及其與數(shù)字電臺接口的軟硬件設(shè)計(jì)與實(shí)現(xiàn)方法。

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

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

          1 系統(tǒng)組成

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

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

          2 與數(shù)字電臺的串行通信

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

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

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

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

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

          波特率――1200 baud。

          數(shù)字電臺選用Motorola公司的GM系列車載電臺,工作于VHF/UHF頻段,可進(jìn)行無線數(shù)傳(9線制標(biāo)準(zhǔn)串行RS232接口),也可進(jìn)行話音通信;采用二進(jìn)制移頻鍵控(2FSK)調(diào)制解調(diào)方式,符合國際電報(bào)電話咨詢委員會CCITT.23標(biāo)準(zhǔn)。在話帶內(nèi)進(jìn)行數(shù)字傳輸時(shí),推薦在不高于1200b/s數(shù)據(jù)率時(shí)使用。實(shí)際使用時(shí),電臺工作于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ā)送過程。串行口能自動(dòng)把TB8取出,裝入到第9位數(shù)據(jù)的位置,再逐一發(fā)送出去。發(fā)送完畢,使TI=1。

          接收時(shí),置SCON中的REN為1,允許接收。當(dāng)檢測到RXD(P3.0端有“1”到“0”的跳變(起始位)時(shí),開始接收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;否則,這次接收無效,不置位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,則每過“2 8-X”個(gè)機(jī)器周期,T1就會發(fā)生一次溢出。初值X確定如下:

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

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

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

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

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

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

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

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

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

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

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

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

          初始化程序:

          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)

          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 ;置電臺發(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ù)到電臺

          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é)語

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



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();