第9章-串行通訊口要點課件_第1頁
第9章-串行通訊口要點課件_第2頁
第9章-串行通訊口要點課件_第3頁
第9章-串行通訊口要點課件_第4頁
第9章-串行通訊口要點課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9章串行通訊口9.1概述9.1.1并行通訊與串行通訊(1)并行通訊:在同一時刻內(nèi),數(shù)據(jù)的各位并行傳送。典型應(yīng)用,計算機與并行打印機連接。優(yōu)點:處理速度快。缺點:占用傳輸線多,傳輸距離短,一般小于30米。(2)串行通訊:數(shù)據(jù)一位一位的依次傳送。優(yōu)點:傳輸線少,適合于遠距離傳送。缺點:傳送速度較慢。19.1.2串行通訊的字符格式(1)異步通訊傳送方向……..1數(shù)據(jù)0……..1數(shù)據(jù)0……..1數(shù)據(jù)0停止位起始位停止位起始位停止位起始位若干空閑位數(shù)據(jù)中信息的兩種狀態(tài)分別以mark和space標(biāo)志,其中:

mark譯為”標(biāo)號”,對應(yīng)邏輯1的狀態(tài)。Space譯為”空格”,對應(yīng)邏輯0的狀態(tài)。2說明:每一幀數(shù)據(jù)均以0開始,以1終止,中間傳送的數(shù)據(jù)位可以是5位,7位,8位均可,中間有若干空閑位,空閑時一般處于1的狀態(tài)。異步通訊比較靈活,實現(xiàn)起來比較簡單(2)同步通訊選用一個同步字符,例如0010010發(fā)送過去,約定同時開始同步傳送。數(shù)據(jù)之間沒有間隔,可連續(xù)發(fā)送。

傳送方向數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)同步字符3比較:

同步傳送效率比異步高。如果傳送200個字節(jié)加一各同步字符,則輔助數(shù)據(jù)只佔0.5%若用異步傳送到200個字節(jié)則至少有400位輔助數(shù)據(jù),其數(shù)量可觀。9.1.3異步串行通訊的信號格式:(1)近程通訊

RS232

TXD甲機

RXD

GND1488148914891488RXD乙機TXDGNDTTLTTLTTLTTLRS2324近程通訊采用數(shù)字信號直接傳送方式:計算機內(nèi)部的數(shù)據(jù)信號是TTL電平標(biāo)準(zhǔn),而通信線上的數(shù)據(jù)信號是RS-232電平標(biāo)準(zhǔn)。盡管電平標(biāo)準(zhǔn)不同,但數(shù)據(jù)信號的波形和頻率并沒有改變,近程串行通訊只需進行電平轉(zhuǎn)換后,用傳輸線把兩端接口電路直接連接起來即可實現(xiàn)。RS-232和TTL電平標(biāo)準(zhǔn)的邏輯值規(guī)定為:

RS-232標(biāo)準(zhǔn)

TTL標(biāo)準(zhǔn)邏輯1(mark)-5~-25V

2~5V(高電平額定值3V)邏輯0(space)+5~+25V

0~0.8V(低電平額定值0.2V)5計算機MODEMMODEM計算機數(shù)字信號數(shù)字信號RS-232標(biāo)準(zhǔn)RS-232標(biāo)準(zhǔn)模擬信號電話線地地(2)遠程通訊在遠程通訊中,應(yīng)使用專用通信電纜,出于經(jīng)濟的考慮,通常使用電話線作為傳輸線,如圖:6

遠距離直接傳送數(shù)字信號,信號會發(fā)生畸變,為此要把數(shù)字信號轉(zhuǎn)變?yōu)槟M信號再進行傳送,通常使用頻率調(diào)制法(FSK),即以不同頻率的載波信號代表數(shù)字信號的兩種不同電平狀態(tài),這種數(shù)據(jù)傳送方式稱為頻帶傳送方式。通常為:

mark:1270HZ或2225HZspace:1070HZ或2025HZ在串行通信發(fā)送端有調(diào)制器,用以把電平信號調(diào)制為頻率信號,而在接收端有解調(diào)器,用以把頻率信號解調(diào)為電平信號。通常串行通信兩端均具有發(fā)送接收功能,因此均應(yīng)設(shè)置調(diào)制器和解調(diào)器,二者合二為一為調(diào)制解調(diào)器,即MODEM。

7ABABAB9.1.4串行通訊的數(shù)據(jù)通路形式(1)單工形式數(shù)據(jù)單向傳送,只需一條傳輸線。(2)半雙工形式數(shù)據(jù)傳送是雙向,但不可同時進行。傳輸線可用一條,也可用兩條。(3)全雙工形式數(shù)據(jù)傳送是雙向,且可同時發(fā)送接收。需兩條傳輸線。89.1.5串行通訊的傳送速率用每秒傳送數(shù)據(jù)的位數(shù)衡量,現(xiàn)在常用波特率(baudrate)表示,以波特為單位1波特=1bit/s(位/秒)

例如電傳打字機傳送速率為每秒10個字符,每個字符11位,則波特率為:

11位/字符×10字符/秒=110位/秒即110波特

傳送一位需時間:1/110秒≈9.1ms

MCS-51系列單片機具有一個全雙工的串行口,它在不同的工作方式中可同步或異步發(fā)送或接收數(shù)據(jù)。其波特率范圍:以6MHZ晶振為例:為0.24波特~31250波特99.28051單片機串行口的控制及工作方式(P110)

串行口接收端:P3.0(10腳)RXD,發(fā)送端:P3.1(11腳)TXD。9.2.1

8051串行口的控制寄存器(1)串行口控制寄存器SCON字節(jié)地址98H可位尋址。

SM0SM1SM2RENTB8

RB8TIRI

多機通信位00:方式0接收中斷標(biāo)志01:方式1發(fā)送中斷標(biāo)志10:方式21:允許接收接收到的第9位11:方式30:禁止接收待發(fā)送的第9位10例:使串行口方式1發(fā)送MOVSCON,#40H01000000方式1禁止接收(2)電源控制寄存器:PCON字節(jié)地址87HD7SMOD

只有最高位D7位有定義,SMOD稱波特率選擇位。SMOD為1時比為0時波特率高一倍。(3)串行通道數(shù)據(jù)寄存器:SBUF

它是兩個8位移位寄存器,一個是發(fā)送緩沖器,只寫不讀,另一個是接收緩沖器,只讀不寫,它們共用一個地址99H11MCS-51串行口內(nèi)部機構(gòu)129.2.2串行口的四種工作方式 (P110)SM0SM1工作方式功能說明波特率00方式0同步移位寄存器fosc/1201方式18位數(shù)據(jù)UART2SMOD(T溢出率)/3210方式29位數(shù)據(jù)UARTfosc/64或fosc/3211方式39位數(shù)據(jù)UART2SMOD(T溢出率)/3213(1)方式0移位寄存器輸入輸出方式,同步發(fā)送、接收8位數(shù)據(jù),每個機器周期移一位,移位脈沖由TXD提供。如圖:ABCP74LS164Q0Q7

RXDTXD8051

RXDTXD8051Q7CP74LS165D0D7

輸出方式輸入方式14方式0輸出的基本指令:

MOVSCON,#00H

MOVA,#nnHCLRTIMOVSBUF,AWAIT:JNBTI,WAITCLRTI;SM0=SM1=0,選方式0;取待輸出數(shù)據(jù)nnH;清發(fā)送中斷標(biāo)志;數(shù)據(jù)寫入SBUF;判斷數(shù)據(jù)是否發(fā)送完,TI=1?;清發(fā)送完標(biāo)志,準(zhǔn)備發(fā)送下一字節(jié)說明:數(shù)據(jù)寫入SBUF后,單片機會立即自動啟動發(fā)送TXD引腳每隔一個機器周期發(fā)出一個移位脈沖;SBUF中的數(shù)據(jù)在移位脈沖下右移一次送至RXD;當(dāng)SBUF中的數(shù)據(jù)全部移出后,單片機自動將TI置1;要再次發(fā)送數(shù)據(jù)必須清除TI。15方式0輸入:當(dāng)REN=1,接收中斷標(biāo)志RI=0,則啟動接收,移位脈沖仍從TXD端輸出,數(shù)據(jù)從RXD端輸入,當(dāng)一個字節(jié)數(shù)據(jù)輸入完畢時,置1接收中斷標(biāo)志RI。

(2)方式1(波特率可變)異步串行通訊。發(fā)送或接收一幀數(shù)據(jù)為10位,其格式是:

18位數(shù)據(jù)0

SCON中SM0,SM1為01則選方式116發(fā)送過程:①

啟動發(fā)送:執(zhí)行一條訪問SBUF指令即啟動發(fā)送,且同時1裝入第9位。②

發(fā)送一位的時間:由選定的波特率決定。③

發(fā)送過程:首先起始位0從TXD腳發(fā)出,且第9位寫入1,然后每個移位脈沖將SBUF中數(shù)據(jù)右移一位,從TXD輸出,空位由0填充。發(fā)送結(jié)束后,置位發(fā)送中斷標(biāo)志TI,申請中斷。17接收過程:REN=1且RI=0時,允許接收。①起始位判斷以選定波特率的16倍速率采樣RXD端,當(dāng)連續(xù)三次采樣中有兩次是0時,確認為起始位,此時開始接收數(shù)據(jù)。②

數(shù)據(jù)接收:每來一個移位脈沖,RXD引腳移入一位數(shù)據(jù),一幀數(shù)據(jù)接收完后,TI置1可申請中斷。移位脈沖的頻率由選定波特率決定。③

數(shù)據(jù)保留條件(P110)保留數(shù)據(jù)條件是:RI=0、SM2=0或者RI=0、停止位為1,符合兩組條件其中之一則將數(shù)據(jù)保留在SBUF中,并置位RI。若不符合保留數(shù)據(jù)的條件,則將收到的數(shù)據(jù)丟棄,重新檢測RXD端準(zhǔn)備下次接收。18(3)方式2(波特率固定)異步發(fā)送或接收一幀數(shù)據(jù)為11位,其格式為:

1第9位8位數(shù)據(jù)0

發(fā)送與接收操作同方式1,注意保留數(shù)據(jù)條件為:RI=0、SM2=0或者RI=0、第9位數(shù)據(jù)為1(4)方式3(波特率可變)與方式2相同的是異步接收發(fā)送一幀數(shù)據(jù)是11位,但波特率與方式2不同,與方式1相同。注:所有方式當(dāng)發(fā)送或接收一幀數(shù)據(jù)置位TI和RI標(biāo)志后,必須軟件清0,以備下一幀數(shù)據(jù)的發(fā)送或接收。第9位數(shù)據(jù)接收時為RB8;發(fā)送時為TB8。199.2.3SCON中的TB8、RB8第9位數(shù)據(jù)的用法舉例

在數(shù)據(jù)通訊中,由于傳輸距離較遠,數(shù)據(jù)在傳輸過程中可能發(fā)生畸變,從而引起誤碼,為了保證傳輸質(zhì)量,除了硬件措施外,軟件可采取檢錯措施,可用第9位數(shù)據(jù)進行奇偶檢驗。例1:

利用TB8傳送奇偶檢驗位MOVSCON,#80H;選串行口方式2,傳送11位數(shù)據(jù)MOVA,#DATA;待發(fā)送數(shù)據(jù)送A,該指令影響奇偶標(biāo)志PMOVC,PSW.0(P);奇偶標(biāo)志送C,奇為1、偶為0MOVTB8,C;奇偶標(biāo)志送TB8,為發(fā)送的第9位數(shù)據(jù)MOVSBUF,A;啟動一次發(fā)送共11位數(shù)據(jù)LOOP:JBCTI,OK;TI=1時,數(shù)據(jù)發(fā)送成功SJMPLOOP20例2:利用RB8接收奇偶檢驗位MOVSCON,#90H ;選方式2,REN=1,允許接收LOOP:JBCRI,ROK ;等待接收完畢SJMPLOOPROK:MOVA,SBUF ;接收完的數(shù)據(jù)送入A同時獲取P標(biāo)志位JBP,ONE ;奇偶標(biāo)志為奇跳至RB8判斷JBRB8,ERR ;接收到的數(shù)據(jù)為偶,而RB8為1,出錯SJMPOK ;數(shù)據(jù)接收正確ONE:JNBRB8,ERR ;接收到的RB8不為1,出錯OK:…………… ;接收正確ERR:……………. ;接收出錯處理,可通知對方重發(fā)219.2.4用SCON中的SM2實現(xiàn)多機通訊在方式2和方式3中,當(dāng)接收到一幀數(shù)據(jù)時,只有符合下列條件之一數(shù)據(jù)才會被保留,否則將被丟棄:

①RI=0且SM2=0②RI=0且第九位數(shù)據(jù)為1(1)多機通訊設(shè)置:要求SM2=1,此時要求第9位數(shù)據(jù)為1。約定主機發(fā)出地址信息第9位為1,而數(shù)據(jù)信息第9位為0,(2)基本原理:

主機先向各從機發(fā)出地址信息,地址信息第9位為1,符合條件②,各從機均能接收到地址信息,同時與自己的地址相比較,接收到的地址信息與本機地址相同,則使SM2=0,準(zhǔn)備接收數(shù)據(jù)信息。22(3)數(shù)據(jù)傳送

隨后主機向總線發(fā)出數(shù)據(jù),第9位為0,地址不符合的從機接收后均不符合條件②,數(shù)據(jù)丟棄;只有地址相符的從機由于SM2=0符合條件①而保存接收到的數(shù)據(jù)信息,從而實現(xiàn)了點對點的多機通訊。(4)通信結(jié)束

數(shù)據(jù)通信結(jié)束后,主機應(yīng)當(dāng)發(fā)送一個結(jié)束標(biāo)志,通知從機,從機接收到該命令后,把SM2重新置1,或者從機接收完數(shù)據(jù)后自動判斷,如果確認數(shù)據(jù)傳送結(jié)束后,自動把SM2重新置1。恢復(fù)初始狀態(tài)。239.3波特率的制定方法9.3.1方式0(B代表波特率,以f代表晶振頻率)方式0的波特率固定,為晶振頻率的1/12(一個機器周期)如6M晶振,B=6M/12=0.5M位/秒=0.5×106波特傳送一位所需時間是2微秒注:方式0波特率只與晶振頻率f有關(guān),f愈大傳送速度愈快。9.3.2方式2

B=f×2SMOD/64SMOD是PCON的最高位,可為0或1,若f=6M,SMOD=0B=6M×20/64=93750波特SMOD=1B=6M×21/64=187500波特注:方式2波特率與晶振頻率和SMOD有關(guān),一經(jīng)選定晶振頻率,波特率只有兩種可選擇。249.3.3方式1和方式3B=T1溢出率×2SMOD/32溢出率--定時器每秒溢出的次數(shù)。由于定時器工作在不同的工作方式時,具有不同的計數(shù)器位數(shù),(13位、16位、8位),裝入不同的初始常數(shù),因此溢出率也不同。溢出率=1/溢出周期,

溢出周期:T=TC+TI式中:TC

為定時時間,TC=(2n-X)×機器周期

TI

為本次溢出到再次啟動定時之間的時間間隔具體:a:轉(zhuǎn)入中斷入口硬件子程序所需的3個機器周期;

b:重裝時間常數(shù)后中斷返回所需的6個機器周期。25說明:上述公式是對定時器方式0和1而言;定時器方式2由于可自動重裝時間常數(shù)而省去了轉(zhuǎn)入中斷服務(wù)重裝時間常數(shù)所需的9個機器周期,即TI=0。因此定時器方式2時溢出率為:合計大約共需要9個機器周期時間T=(2n-X+9)×機器周期(12/f)26綜上分析,串行口方式1和方式3的波特率計算公式為:(1)T1工作于方式0和方式1時:

(2)T1工作于方式2時:27由式可知:當(dāng)f=6M,T1方式0,當(dāng)SMOD=0、X=0時,所獲得的波特率為最小值:B=1.905≈2波特

當(dāng)SMOD=1,X=1FFFH時,所獲得的波特率為最大值:B=3125波特同理:T1方式1時:波特率范圍為0.24~3125波特由式T1方式2時,波特率范圍為61~31250波特28例:編一程序,設(shè)置8051串行口可發(fā)送、接收一幀數(shù)據(jù)為11位,其波特率選定125波特,設(shè)晶振頻率為6MHZ。分析:(1)串口方式2和方式3可發(fā)送接收11位數(shù)據(jù)。

若選方式2:B=f×2SMOD/64=6×106×2SMOD/64當(dāng)SMOD=0時B=93750波特當(dāng)SMOD=1時B=187500波特均不滿足125波特,因此只能選方式3SCON:11010000

方式3允許接收D0H29(2)設(shè)置計算波特率選T1方式2,其波特率范圍為61~31250波特可滿足125波特。T1工作于方式2時

選SMOD=1

則:

解之得X=6

30程序如下:ORG0000HAJMPMAINORG0023HAJMPBTLMAIN:MOVSP,#30H

MOVSCON,#0D0H;串行口方式3,允許接收

MOVPCON,#80H;SMOD=1

MOVTMOD,#00100000B;T1方式2定時MOVTL1,#06H;設(shè)置波特率125波特SETBEA;允許CPU中斷SETBES;允許串行口中斷SETBTR1;啟動T1發(fā)出波特率……………….BTL:……………….31波特率(方式1、3)fosc=6Mfosc=12Mfosc=11.059MSMODT1方式初值SMODT1方式初值SMODT1方式初值62.5

12FFH

19.2k

12FDH9.6k

02FDH4.8k

12F3H02FAH2.4k12F3H12F3H02F4H1.2k12E6H02E6H02E8H60012CCH02CCH02D0H30002CCH0298H02A0H137.5121DH021DH022EH1100272H01FEEBH01FEFFH常用波特率一覽表32應(yīng)用實例:單片機和PC機的數(shù)據(jù)通信(P124)單片機向計算機上傳數(shù)據(jù)硬件基礎(chǔ)知識:引腳號符號方向功能描述1DCDI數(shù)據(jù)載波檢測2RXDI接收數(shù)據(jù)3TXDO發(fā)送數(shù)據(jù)4DTRO數(shù)據(jù)終端就緒5GND----信號地6DSRI數(shù)據(jù)設(shè)備就緒7RTSO請求發(fā)送8CTSI允許發(fā)送9RII振鈴指示523:RS-232C鏈路發(fā)送接收地微機終端523:微機80512(RXD)TXD(P3.1)3(TXD)RXD(P3.0)5(GND)GND都經(jīng)過電平轉(zhuǎn)換33電壓轉(zhuǎn)換芯片:TiIN----TTL----單片機的TXDRiOUT–TTL----單片機的RXD34TXDRXD8051MAX231R1OUTT1INT1OUTR1INPC串口523微機80512(RXD)TXD(P3.1)3(TXD)RXD(P3.0)5(GND)GND電路連接:GNDGND35軟件設(shè)計(單片機端):(1)波特率選擇假設(shè)需要波特率為9600,外部晶振選擇11.059,T1工作在方式2,計數(shù)初值為FDH,SMOD=0MOVTMOD,#00100000BMOVTL1,#0FDH

溫馨提示

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

最新文檔

評論

0/150

提交評論