串口原理及應(yīng)用_第1頁
串口原理及應(yīng)用_第2頁
串口原理及應(yīng)用_第3頁
串口原理及應(yīng)用_第4頁
串口原理及應(yīng)用_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

串口通信1、80C51的串行口結(jié)構(gòu)和工作原理2、單片機串行口編程應(yīng)用舉例通信基礎(chǔ)知識計算機通信是指計算機與外部設(shè)備或計算機與計算機之間的信息交換。通信有并行通信和串行通信兩種方式。在多微機系統(tǒng)以及現(xiàn)代測控系統(tǒng)中信息的交換多采用串行通信方式。并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時進行傳送。并行通信特點:控制簡單、傳輸速度快;但傳輸線較多,長距離傳送時成本高且接收方的各位同時接收存在困難。

串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳送。串行通信的特點:傳輸線少,長距離傳送時成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復雜。一、串行通信的傳輸方向1、單工單工是指數(shù)據(jù)傳輸僅能沿一個方向,不能實現(xiàn)反向傳輸。2、半雙工半雙工是指數(shù)據(jù)傳輸可以沿兩個方向,但需要分時進行。3、全雙工全雙工是指數(shù)據(jù)可以同時進行雙向傳輸。

單工半雙工全雙工串行通信的分類

分為兩大類:異步通信與同步通信1、異步通信

異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。

異步通信是以字符(構(gòu)成的幀)為單位進行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系,但同一字符內(nèi)的各位之間的距離均為“位間隔”的整數(shù)倍。異步通信的數(shù)據(jù)格式:異步通信的特點:不要求收發(fā)雙方時鐘的嚴格一致,實現(xiàn)容易,設(shè)備開銷較小,但每個字符要附加2~3位用于起止位,各幀之間還有間隔,因此傳輸效率不高。2、同步通信同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。此時,傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。發(fā)送方對接收方的同步可以通過兩種方法實現(xiàn)。

外同步自同步串行通信接口標準

一、RS-232C接口

RS-232C是EIA(美國電子工業(yè)協(xié)會)1969年修訂RS-232C標準。RS-232C定義了數(shù)據(jù)終端設(shè)備(DTE)與數(shù)據(jù)通信設(shè)備(DCE)之間的物理接口標準。1、機械特性RS-232C接口規(guī)定使用25針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)公頭母頭串口線(公對母)串口線(母對母)串口線(公對公)2、功能特性80C51串行口

SBUF為兩個物理上獨立的接收、發(fā)送緩沖器,它們有相同的名字和地址空間,共用地址99H,但不會產(chǎn)生沖突;因為接收器只能被CPU讀出數(shù)據(jù);發(fā)送緩沖器只能被CPU寫入數(shù)據(jù),不會產(chǎn)生重疊錯誤。

80C51串行口的結(jié)構(gòu)

P3.1P3.0

SCON是一個特殊功能寄存器,用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標志:

80C51串行口的控制寄存器

SM0和SM1為工作方式選擇位,可選擇四種工作方式:

●SM2,多機通信控制位,主要用于方式2和方式3。1.當SM2=1時,只有接收到第9位數(shù)據(jù)(RB8)為1,RI才會置1,(此時RB8具有控制RI激活的功能;進而在中斷服務(wù)中將數(shù)據(jù)從SBUF讀走)。2.當SM2=0時,收到字符RI就置1,使收到的數(shù)據(jù)進入SBUF,(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實現(xiàn)多機通信。

●REN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。●TB8,在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗位,或在多機通信中,作為地址幀/數(shù)據(jù)幀的標志位。在方式0和方式1中,該位未用,默認為0?!馬B8,在方式2或方式3中,是接收到數(shù)據(jù)的第九位,作為奇偶校驗位或地址幀/數(shù)據(jù)幀的標志位。在方式1時,若SM2=0,則RB8是接收到的停止位?!馮I,發(fā)送中斷標志位。在方式0時,當串行發(fā)送第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請。●RI,接收中斷標志位。在方式0時,當串行接收第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中斷服務(wù)程序中,用軟件將其清0,取消此中斷申請。PCON中只有一位SMOD與串行口工作有關(guān)

SMOD(PCON.7)波特率倍增位。在串行口方式1、方式2、方式3時,波特率與SMOD有關(guān),當SMOD=1時,波特率提高一倍。復位時,SMOD=0。

80C51串行口的工作方式

一、方式0

方式0時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴展并行輸入或輸出口。數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后。波特率固定為fosc/12。

1、方式0輸出

2、方式0輸入方式0接收和發(fā)送電路

二、方式1

方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1位起始位,8位數(shù)據(jù)位,1位停止位。

1、方式1輸出例:SBUF=0x0110000000

2、方式1輸入用軟件置REN為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發(fā)生負跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進行最后一次移位。當RI=0,且SM2=0(或接收到的停止位為1)時,將接收到的9位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收SBUF,第9位(停止位)進入RB8,并置RI=1,向CPU請求中斷。10000000

三、方式2和方式3

方式2或方式3時為11位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳。方式2和方式3時起始位1位,數(shù)據(jù)9位(含1位附加的第9位,發(fā)送時為SCON中的TB8,接收時為RB8),停止位1位,一幀數(shù)據(jù)為11位。方式2的波特率固定為晶振頻率的1/64或1/32,方式3的波特率由定時器T1的溢出率決定。

1、方式2和方式3輸出發(fā)送開始時,先把起始位0輸出到TXD引腳,然后發(fā)送移位寄存器的輸出位(D0)到TXD引腳。每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由TXD引腳輸出。第一次移位時,停止位“1”移入輸出移位寄存器的第9位上,以后每次移位,左邊都移入0。當停止位移至輸出位時,左邊其余位全為0,檢測電路檢測到這一條件時,使控制電路進行最后一次移位,并置TI=1,向CPU請求中斷。

2、方式2和方式3輸入接收時,數(shù)據(jù)從右邊移入輸入移位寄存器,在起始位0移到最左邊時,控制電路進行最后一次移位。當RI=0,且SM2=0(或接收到的第9位數(shù)據(jù)為1)時,接收到的數(shù)據(jù)裝入接收緩沖器SBUF和RB8(接收數(shù)據(jù)的第9位),置RI=1,向CPU請求中斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位RI,繼續(xù)搜索RXD引腳的負跳變。四、波特率的計算

串行口的四種工作方式對應(yīng)三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。方式0的波特率=fosc/12方式2的波特率=(/64)·fosc方式1的波特率=(/32)·(T1溢出率)方式3的波特率=(/32)·(T1溢出率)當定時器1作波特率發(fā)生器使用時,通常選用可自動裝入初值模式(方式2),在方式2中,TL1作為計數(shù)用,而自動裝入的初值放在TH1中,假設(shè)計數(shù)初值為x,則每過“256-x”個機器周期,定時器T1就會產(chǎn)生一次溢出。這時溢出率取決于TH1中的計數(shù)值。T1溢出率=溢出周期的倒數(shù);溢出周期=(256-TH1)×12/Fosc;(其中:12/Fosc表示一個機器周期)因此方式1和方式3:波特率:Baud=(2×Fsoc)/{32×12×(256-TH1)}我們一般不太關(guān)注波特率的計算,而是關(guān)心選用的波特率(傳輸速度)去反算定時器1(自動重裝模式)的初值(TH1),所以將上面的公式導一下,得到TH1的公式:TH1=256-(Fsoc×2)/(12×32×Baud)在單片機的應(yīng)用中,常用的晶振頻率為:12MHz和11.0592MHz。所以,選用的波特率也相對固定。常用的串行口波特率以及各參數(shù)的關(guān)系如表所示。TH1=256-(Fsoc×2)/(12×32×Baud)

串行口工作之前,應(yīng)對其編程進行初始化設(shè)置,主要是設(shè)置產(chǎn)生波特率的定時器1、串行口控制和中斷控制。具體步驟如下:確定T1的工作方式(編程TMOD寄存器);計算T1的初值,裝載TH1、TL1;啟動T1(編程TCON中的

溫馨提示

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

評論

0/150

提交評論