第七章 串行口通信技術(shù)_第1頁
第七章 串行口通信技術(shù)_第2頁
第七章 串行口通信技術(shù)_第3頁
第七章 串行口通信技術(shù)_第4頁
第七章 串行口通信技術(shù)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

本章內(nèi)容串行通信基礎(chǔ)

MCS-51的串行接口

MCS-51單片機(jī)雙機(jī)通信

RS-232C串行通信總線標(biāo)準(zhǔn)及其接口

第七章串行口通信技術(shù)串行通信基礎(chǔ)

兩種通信方式的示意圖串行通信基礎(chǔ)

并行通信中,信息傳輸?shù)奈粩?shù)和數(shù)據(jù)位數(shù)相等;串行通信中,數(shù)據(jù)一位一位順序傳送。并行通信速度快,傳輸線多,適合于近距離的數(shù)據(jù)通信,但硬件接線成本高;串行通信速度慢,但硬件成本低,傳輸線少,適合于長距離數(shù)據(jù)傳輸。

串行通信的制式

在串行通信中數(shù)據(jù)是在兩個(gè)站之間進(jìn)行傳送的,按照數(shù)據(jù)傳送方向,串行通信可分為單工(simplex)、半雙工(halfduplex)和全雙工(fullduplex)三種制式。在單工制式下,通信線的一端是發(fā)送器,一端是接收器,數(shù)據(jù)只能按照一個(gè)固定的方向傳送。在半雙工制式下,系統(tǒng)的每個(gè)通信設(shè)備都由一個(gè)發(fā)送器和一個(gè)接收器組成,但同一時(shí)刻只能有一個(gè)站發(fā)送,一個(gè)站接收;兩個(gè)方向上的數(shù)據(jù)傳送不能同時(shí)進(jìn)行。即只能一端發(fā)送,一端接收,其收發(fā)開關(guān)一般是由軟件控制的電子開關(guān)示。全雙工通信系統(tǒng)的每端都有發(fā)送器和接收器,可以同時(shí)發(fā)送和接收,即數(shù)據(jù)可以在兩個(gè)方向上同時(shí)傳送。異步通信

在異步通信中,數(shù)據(jù)通常是以字符為單位組成字符幀傳送的。字符幀由發(fā)送端一幀一幀地發(fā)送,每一幀數(shù)據(jù)是低位在前,高位在后,通過傳輸線被接收端一幀一幀地接收。發(fā)送端和接收端可以由各自獨(dú)立的時(shí)鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個(gè)時(shí)鐘彼此獨(dú)立,互不同步。在異步通信中,接收端是依靠字符幀格式來判斷發(fā)送端是何時(shí)開始發(fā)送何時(shí)結(jié)束發(fā)送的。字符幀也叫數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位等四部分組成。異步通信

異步通信的另一個(gè)重要指標(biāo)為波特率。波特率為每秒鐘傳送二進(jìn)制數(shù)碼的位數(shù),也叫比特?cái)?shù),單位為b/s,即位/秒。波特率用于表征數(shù)據(jù)傳輸?shù)乃俣龋ㄌ芈试礁?,?shù)據(jù)傳輸速度越快。通常,異步通信的波特率為50~9600b/s。同步通信

同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳輸一幀信息。這里的信息幀和異步通信的字符幀不同,通常有若干個(gè)數(shù)據(jù)字符,但它們均由同步字符、數(shù)據(jù)字符和校驗(yàn)字符CRC三部分組成。在同步通信中,同步字符可以采用統(tǒng)一的標(biāo)準(zhǔn)格式,也可以由用戶約定。MCS-51的串行接口

串行口結(jié)構(gòu)示意圖MCS-51的串行接口

SBUF是兩個(gè)在物理上獨(dú)立的接收、發(fā)送寄存器,一個(gè)用于存放接收到的數(shù)據(jù),另一個(gè)用于存放待發(fā)送的數(shù)據(jù),可同時(shí)發(fā)送和接收數(shù)據(jù)。兩個(gè)緩沖器共用一個(gè)地址99H,通過對(duì)SBUF的讀、寫語句來區(qū)別是對(duì)接收緩沖器還是發(fā)送緩沖器進(jìn)行操作。CPU在寫SBUF時(shí),操作的是發(fā)送緩沖器;讀SBUF時(shí),就是讀接收緩沖器的內(nèi)容。SBUF=send[i];//發(fā)送第i個(gè)數(shù)據(jù)buffer[i]=SBUF;//接收數(shù)據(jù)串行口控制寄存器SCON

SCON(98H)SM0SM1SM2RENTB8RB8TIRI串行口的工作方式SM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式110位UART可變10方式211位UARTfosc/64或fosc/3211方式311位UART可變通常我們在做單片機(jī)與單片機(jī)串口通信、單片機(jī)與個(gè)人PC機(jī)串口通信時(shí),基本都選擇方式1,因此這種方式大家務(wù)必完全掌握。串行口控制寄存器SCON

SM2:多機(jī)通信控制位,用于方式2和方式3中。REN:允許串行接收位。由軟件置位或清零。REN=1時(shí),允許接收,REN=0時(shí),禁止接收。TB8:發(fā)送數(shù)據(jù)的第9位。在方式2和方式3中,由軟件置位或復(fù)位。一般可做奇偶校驗(yàn)位。在多機(jī)通信中,可作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)識(shí)位,一般約定地址幀時(shí)TB8為1,數(shù)據(jù)幀時(shí)TB8為0。RB8:接收數(shù)據(jù)的第9位。功能同TB8。SCON(98H)SM0SM1SM2RENTB8RB8TIRI串行口控制寄存器SCON

TI:發(fā)送中斷標(biāo)志位。在方式0中,發(fā)送完8位數(shù)據(jù)后,由硬件置位;在其他方式中,在發(fā)送停止位之初由硬件置位。因此,TI=1是發(fā)送完一幀數(shù)據(jù)的標(biāo)志,其狀態(tài)既可供軟件查詢使用,也可請(qǐng)求中斷。TI位必須由軟件清0。RI:接收中斷標(biāo)志位。在方式0中,接收完8位數(shù)據(jù)后,由硬件置位;在其他方式中,當(dāng)接收到停止位時(shí)該位由硬件置1。因此,RI=1是接收完一幀數(shù)據(jù)的標(biāo)志,其狀態(tài)既可供軟件查詢使用,也可請(qǐng)求中斷。RI位也必須由軟件清0。SCON(98H)SM0SM1SM2RENTB8RB8TIRI電源及波特率選擇寄存器PCONPCON主要是為CHMOS型單片機(jī)的電源控制而設(shè)置的專用寄存器,字節(jié)地址為87H,不可以位尋址。在HMOS的AT89C51單片機(jī)中,PCON除了最高位以外其它位都是虛設(shè)的。

PCON(87H)SMOD×××GF1GF0PDIDL

與串行通信有關(guān)的只有SMOD位。SMOD為波特率選擇位。在方式1、2和3時(shí),串行通信的波特率與SMOD有關(guān)。當(dāng)SMOD=1時(shí),通信波特率乘2,當(dāng)SMOD=0時(shí),波特率不變。MCS-51串行口的工作方式

方式1

發(fā)送時(shí),當(dāng)數(shù)據(jù)寫入發(fā)送緩沖器SBUF后,啟動(dòng)發(fā)送器發(fā)送,數(shù)據(jù)從TXD輸出。當(dāng)發(fā)送完一幀數(shù)據(jù)后,置中斷標(biāo)志TI為1。方式1下的波特率取決于定時(shí)器1的溢出率和PCON中的SMOD位。

接收時(shí),REN置1,允許接收,串行口采樣RXD,當(dāng)采樣由1到0跳變時(shí),確認(rèn)是起始位“0”,開始接收一幀數(shù)據(jù)。當(dāng)RI=0,且停止位為1或SM2=0時(shí),停止位進(jìn)入RB8位,同時(shí)置中斷標(biāo)志RI;否則信息將丟失。所以,采用方式1接收時(shí),應(yīng)先用軟件清除RI或SM2標(biāo)志。MCS-51串行口的波特率

在方式1下,波特率由定時(shí)器T1的溢出率和SMOD共同決定,即:方式1和方式3的波特率=·定時(shí)器1溢出率其中,定時(shí)器1的溢出率取決于單片機(jī)定時(shí)器1的計(jì)數(shù)速率和定時(shí)器的預(yù)置值。。

實(shí)際上,當(dāng)定時(shí)器T1做波特率發(fā)生器使用時(shí),通常是工作在模式2下,即作為一個(gè)自動(dòng)重裝載的8位定時(shí)器,此時(shí)TL1作計(jì)數(shù)用,自動(dòng)重裝載的值在TH1內(nèi)。設(shè)計(jì)數(shù)的預(yù)置值(初始值)為X,那么每過256-X個(gè)機(jī)器周期,定時(shí)器溢出一次。為了避免溢出而產(chǎn)生不必要的中斷,此時(shí)應(yīng)禁止T1中斷。溢出周期為12×(256-X)/fosc.溢出率為溢出周期的倒數(shù)。串口方式1定時(shí)器1方式2產(chǎn)生常用波特率時(shí),TL1和TH1中所裝入的值MCS-51單片機(jī)雙機(jī)通信

。

兩個(gè)單片機(jī)串行通信程序流程個(gè)人PC與51單片機(jī)的通信RS232串行通信線51單片機(jī)RS-232C串行通信總線標(biāo)準(zhǔn)及其接口

。

RS-232C的電氣標(biāo)準(zhǔn)采用負(fù)邏輯,即:邏輯“0”:+5V~+15V

邏輯“1”:-5V~-15V

因此,RS-232C不能和TTL電平直接相連,否則將使TTL電路燒壞,實(shí)際應(yīng)用時(shí)必須注意。RS-232C和TTL電平之間必須進(jìn)行電平轉(zhuǎn)換,常用的電平轉(zhuǎn)換集成電路MAX232。MAX232引腳圖RS-232C串行通信總線標(biāo)準(zhǔn)及其接口

RS-232C標(biāo)準(zhǔn)總線為25根,可采用標(biāo)準(zhǔn)的DB-25和DB-9的D型插頭。目前計(jì)算機(jī)上只保留了兩個(gè)DB-9插頭,作為提供多功能I/O卡或主板上COM1和COM2兩個(gè)串行接口的連接器。引腳名稱功能引腳名稱功能1DCD載波檢測6DSR數(shù)據(jù)準(zhǔn)備完成2RXD發(fā)送數(shù)據(jù)7RTS發(fā)送請(qǐng)求3TXD接收數(shù)據(jù)8CTS發(fā)送清除4DTR數(shù)據(jù)終端準(zhǔn)備完成9RI振鈴指示5SG(GND)信號(hào)地線在簡單的RS232-C標(biāo)準(zhǔn)穿性通信中,僅連接發(fā)送數(shù)據(jù)(2)、接收數(shù)據(jù)(3)和信號(hào)地(5)三個(gè)引腳即可。#include<reg51.h>//包含頭文件reg51.hunsignedcharnum;//用于暫存字節(jié)voidserial_int(void)interrupt4//單片機(jī)串口中斷服務(wù)程序{if(RI){RI=0;//清零接受中斷標(biāo)志位num=SBUF;//把接受緩沖器的字節(jié)存入變量numP1=~num;//變量num逐位取反,送到P1口

SBUF=num;//把變量num的字節(jié)送到發(fā)送緩沖器

while(TI==0);//等待發(fā)送完畢TI=0; //清零發(fā)送中斷標(biāo)志位

}}main()//主程序{TMOD=0x20;//設(shè)置定時(shí)器0為工作方式2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論