單片機(jī)與數(shù)字電臺(tái)的串行通信
PTR2000是一種短程無線通信技術(shù)。本文給出了一種基于PTR2000技術(shù)的溫度檢測(cè)系統(tǒng)的硬件電路原理框圖和通信程序流程圖。本文以一遠(yuǎn)程溫度檢測(cè)系統(tǒng)為例,詳細(xì)講解了基于單片機(jī)無線數(shù)據(jù)傳輸技術(shù)的應(yīng)用。本系統(tǒng)由溫度檢測(cè)單元,發(fā)送單元和接收單元構(gòu)成,發(fā)送單元的MCU連接溫度傳感器,檢測(cè)遠(yuǎn)程溫度,處理后,通過無線數(shù)據(jù)收發(fā)模塊PTR 2000發(fā)送給接收單元的PTR 2000;通過無線數(shù)據(jù)收發(fā)模塊PTR 2000接受發(fā)送單元發(fā)送過來的溫度數(shù)據(jù),傳送給PC機(jī),并在PC機(jī)上顯示當(dāng)前溫度。本文詳細(xì)分析了上述實(shí)現(xiàn)原理,并給出了主要程序代碼,并通過了測(cè)試,有較強(qiáng)的實(shí)用價(jià)值。
系統(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í)著收。通過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)行無線數(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ā)送過程。串行口能自動(dòng)把TB8取出,裝入到第9位數(shù)據(jù)的位置,再逐一發(fā)送出去。發(fā)送完畢,使TI=1。
接收時(shí),置SCON中的REN為1,允許接收。當(dāng)檢測(cè)到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就會(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ī)通過帶控制端的三態(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電平變換,通過電臺(tái)TXD端口將數(shù)據(jù)發(fā)送出去。
3 通信軟件設(shè)計(jì)
通信軟件至關(guān)重要,一旦出現(xiàn)問題,整個(gè)系統(tǒng)就會(huì)癱瘓。采取差錯(cuò)控制與容錯(cuò)技術(shù)是非常重要的。
*主控站發(fā)送的指令中包含一定數(shù)量的同步符55H和3字節(jié)的密碼。測(cè)量站在連續(xù)收到5個(gè)同步符后進(jìn)行密碼驗(yàn)證,驗(yàn)證通過后正式接收指令字節(jié);如未通過,則測(cè)量站發(fā)一信號(hào)讓主控站重發(fā),三次驗(yàn)證不過則停發(fā)該命令。測(cè)量站發(fā)/主控站收時(shí),驗(yàn)證方式與此相同。驗(yàn)證通過后,測(cè)量站開始發(fā)送數(shù)據(jù)。
51單片機(jī)相關(guān)文章:51單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
通信相關(guān)文章:通信原理
cdma相關(guān)文章:cdma原理
負(fù)離子發(fā)生器相關(guān)文章:負(fù)離子發(fā)生器原理 晶振相關(guān)文章:晶振原理 數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理 離子色譜儀相關(guān)文章:離子色譜儀原理
評(píng)論