|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統 驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe |
AT89C51單片機在無線數據傳輸中的應用 |
| 作者:jaky 欄目:單片機 |
摘 要 介紹無線數據傳輸系統的組成、AT89C51單片機串行口的工作方式及其與無線數字電臺接口的軟硬件設計與實現方法。 關鍵詞 AT89C51 串行口 無線數字電臺 串行通信 一般的數字采集系統,是通過傳感器將捕捉的現場信號轉換為電信號,經模/數轉換器ADC采樣、量化、編碼后,為成數字信號,存入數據存儲器,或送給微處理器,或通過無線方式將數據發(fā)送給接收端進行處理。無線數據傳輸系統就是樣一套利用無線手段,將采集的數據由測量站發(fā)送到主控站的設備。 |
| 2樓: | >>參與討論 |
| 作者: jaky 于 2007/1/18 23:31:31 發(fā)布:
1 系統組成 系統組成如圖1、圖2所示 系統由測量站和主控站兩部分組成。測量站主要完成對現場信號的采集、存儲,接收遙控指令并發(fā)送數據。主控站的主要工作是發(fā)送遙控指令、接收數據信息、進行數據處理和數據管理、隨機顯示打印等。 2 AT89C51與數字電臺的串行通信 ATMEL公司的AT89C51單片機,是一種低功耗、高性能的、片內含有4KB FLASH ROM的8位CMOS單片機,工作電壓范圍為2.7~6V(實際使用+5V供電),8位數據總線。它有一個可編程的全雙工串行通信接口,能同時進行串行發(fā)送和接收。通過RXD引腳(串行數據接收端)和TXD引腳(串行數據發(fā)送端)與外界進行通信。 2.1 通信協議與波特率 數字電臺與單片機、終端主控機的通信協議為: 通信接口——標準串行RS232接口,9線制半雙工方式; 通信幀格式——1位起始位,8位數據位,1位可編程數據位,1位停止位; 波特率——1200 baud。 數字電臺選用MOTOROLA公司的GM系列車載電臺,工作于VHF/UHF頻段,可進行無線數傳(9線制標準串行RS232接口),也可進行話音通信;采用二進制移頻鍵控(2FSK)調制解調方式,符合國際電報電話咨詢委員會CCITT.23標準。在話帶內進行數字傳輸時,推薦在不高于1200b/s數據率時使用。實際使用時,電臺工作于220~240MHz頻率范圍,采用半雙工方式(執(zhí)行收、發(fā)操作,但不能同時進行)即可滿足系統要求。 2.2 AT89C51串行口工作方式 AT89C51串行口可設置四種工作方式,可有8位、10位和11位幀格式。本系統中,AT89C51串行口工作于方式3,即每幀11位的異步通信格式:1位起始位,8位數據位(低位在前),1位可編程數據位,1位停止位。 發(fā)送前,由軟件設置第9位數據(TB8)作奇偶校驗位,將要發(fā)送的數據寫入SBUF,啟動發(fā)送過程。串行口能自動把TB8取出,裝入到第9位數據的位置,再逐一發(fā)送出去。發(fā)送完畢,使TI=1。 接收時,置SCON中的REN為1,允許接收。當檢測到RXD(P3.0端有“1”到“0”的跳變(起始位)時,開始接收9位數據,送入移位寄存器(9位)。當滿足RI=0且SM2=0或接收到的9位數據為1時,前8位數據送入SBUF,第9位數據送入SCON中的RB8,置RI為1;否則,這次接收無效,不置位RI。 串口方式3的波特率由定時器T1的溢出率與SMOD值同時決定: 方式3波特率=T1溢出率/n 當SMOD=0時,n=32;SMOD=1時,n=16。T1溢出率取決于T1的計數速率(計數速率=fosc/12)和TI預置的初值。 定時器T1用作波特率發(fā)生器,工作于模式2(自動重裝初值)。設TH1和TL1定時計數初值為X,則每過“2 8-X”個機器周期,T1就會發(fā)生一次溢出。初值X確定如下: X=256-fosc×(SMOD+1)/384×BTL 本系統中,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實現單片機與電臺之間的電源隔離,增強系統抗干擾性能。 單片機通過帶控制端的三態(tài)緩沖門74HC125、非門74HC14控制電臺的收發(fā)轉換,以及指令的接收和數據發(fā)送。接收時,P3.5=1,c2=1,74HC125B截止;P3.5經74HC14反相、光電隔離,使電臺PPT腳為低電平,將其置為接收狀態(tài);同時c1=0,74HC125A導通,接收的指令由電臺的RXD端輸入,經MAX232電平變換、光電隔離、74HC125A緩沖門,送入單片機RXD腳。發(fā)射時,P3.5=0,經74HC14反相、光電隔離,使電臺PPT腳為高電平,將其置為發(fā)射狀態(tài);同時c1=1,74HC125A截止,c2=0,74HC125B導通,數據由單片機TXD腳輸出,經74HC125B緩沖門、光電隔離、MAX232電平變換,通過電臺TXD端口將數據發(fā)送出去。 |
|
| 3樓: | >>參與討論 |
| 作者: jaky 于 2007/1/18 23:32:49 發(fā)布:
3 通信軟件設計 通信軟件至關重要,一旦出現問題,整個系統就會癱瘓。采取差錯控制與容錯技術是非常重要的。 *主控站發(fā)送的指令中包含一定數量的同步符55H和3字節(jié)的密碼。測量站在連續(xù)收到5個同步符后進行密碼驗證,驗證通過后正式接收指令字節(jié);如未通過,則測量站發(fā)一信號讓主控站重發(fā),三次驗證不過則停發(fā)該命令。測量站發(fā)/主控站收時,驗證方式與此相同。驗證通過后,測量站開始發(fā)送數據。 *一個指令由3字節(jié)構成,第二字節(jié)等于第一字節(jié)加上35H,第3字節(jié)等于第二字節(jié)加上36H。如果收到的指令不符合此規(guī)則,則重發(fā)該命令,連續(xù)三次錯誤時停發(fā)。 *主控站每發(fā)一個指令,測量站都回送一個應答信號。該應答信號中包含原指令樣本。 下面給出單片機串行口與電臺的基本通信程序。 初始化程序: BTL EQU 2FH ;波特率放在內部RAM的2FH單元 MOV TMOD,#21H;T0方式1,16位計數器,T1方式2,串口用 SETB TR0 ;啟動T0 MOV BTL,#0F3H ;波特率設定為1200 MOV SCON,#0C0H;串口方式3,9位數據,禁止接收 接收及驗證程序: NUM EQU 2BH ;同步符個數值存放在內部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的個數 A2:JB RI,A2 ;串口有數據轉A3 A3:CLR RI ;清接收中斷標志 MOV A,SBUF ;讀串口數據 CJNE A,#55H,A1;不是同步符轉A1 INC NUM ;收到的同步符個數加1 MOV A,NUM ;取收到的同步符個數 CJNE A,#5,A2 ;未收夠連續(xù)5個55H轉A2 A4:MOV NUM,#0 ;密碼驗證,記錄收到密碼字節(jié)數 A5:MOV DPTR,#MIM;密碼字符首址 MOV A,NUM MOVC A,@A+DPTR;查表取密碼 MOV TEMP,A ;保存密碼 JB RI,A6 ;串口收完一個字節(jié)轉A6 … A6:CLR RI ;清接收中斷標志
| |
| 4樓: | >>參與討論 |
| 作者: wujing198 于 2007/1/19 2:08:13 發(fā)布:
不錯!尤其是差錯控制做得很好! |
|
|
|
| 免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |