單片機(jī)串行口_第1頁
單片機(jī)串行口_第2頁
單片機(jī)串行口_第3頁
單片機(jī)串行口_第4頁
單片機(jī)串行口_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機(jī)的串行接口

串行通信基本知識串行接口結(jié)構(gòu)及控制串行接口工作方式與波特率串行口應(yīng)用舉例數(shù)據(jù)通信

計算機(jī)與外界的信息交換稱為通信?;镜耐ㄐ欧椒ㄓ胁⑿型ㄐ藕痛型ㄐ艃煞N。

1.并行通信 單位信息(通常指一個字節(jié))的各位數(shù)據(jù)同時傳送的通信方法稱為并行通信。

2.串行通信 單位信息的各位數(shù)據(jù)被分時一位一位依次順序傳送的通信方式稱為串行通信。

圖1并行通信示意圖圖2串行通信示意圖

1.異步通信 異步通信中,傳送的數(shù)據(jù)可以是一個字符代碼或一個字節(jié)數(shù)據(jù),數(shù)據(jù)以幀的形式一幀一幀傳送。

異步通信和同步通信異步通信的一幀數(shù)據(jù)格式

2.同步通信 在同步通信中,每一數(shù)據(jù)塊發(fā)送開始時,先發(fā)送一個或兩個同步字符,使發(fā)送與接收取得同步,然后再順序發(fā)送數(shù)據(jù)。數(shù)據(jù)塊的各個字符間取消起始位和停止位,所以通信速度得以提高。串行通信的制式串行通信接口種類

根據(jù)串行通信格式及約定(如同步方式、通信速率、數(shù)據(jù)塊格式等)不同,形成了許多串行通信接口標(biāo)準(zhǔn),如常見的:

UART(串行異步通信接口)、

USB(通用串行總線接口)、

I2C(集成電路間的串行總線)、 SPI(串行外設(shè)總線)、

485總線、CAN總線接口等。RS-232C接口RS-232C標(biāo)準(zhǔn)接口是EIA(美國電子工業(yè)協(xié)會)于1969年頒布的串行通信接口標(biāo)準(zhǔn)。RS是“RecommendedStandard”(推薦標(biāo)準(zhǔn))的縮寫,232為標(biāo)準(zhǔn)的編號,C為版本號。在RS-232C之前為RS-232A與RS-232B,1987年修訂為EIA-232D,1991年修訂為EIA-232E,1997年又修訂為EIA-232F。其中,RS-232C最為常用。RS-232C接口在遠(yuǎn)程數(shù)據(jù)通信系統(tǒng)中的應(yīng)用當(dāng)兩臺計算機(jī)(DTE)借助公用電話網(wǎng)進(jìn)行遠(yuǎn)程數(shù)據(jù)通信時。RS-232C用于將DTE和DCE進(jìn)行連接,使兩者能進(jìn)行串行通信。

RS-232C接口在遠(yuǎn)程數(shù)據(jù)通信系統(tǒng)中的應(yīng)用RS-232C的機(jī)械特性RS-232C接口規(guī)定使用25針連接器(DB-25),連接器的尺寸及每個插針的排列位置都有明確的定義。由于一般的應(yīng)用中很少用到RS-232C標(biāo)準(zhǔn)的全部信號線,所以在實際應(yīng)用中常常使用9針連接器(DB-9)替代25針連接器。兩者的外形與引腳排列如圖9-7所示。通常一端做成插針,另一端做成插孔。DB-25和DB-9連接器DB-25和DB-9連接器RS-232C的引腳功能引

腳序

號信

號名

稱功

能信

向1PGND保護(hù)(屏蔽)接地2(3)TXD發(fā)送數(shù)據(jù)(串行輸出)DTE→DCE3(2)RXD接收數(shù)據(jù)(串行輸入)DTE←DCE4(7)RTS請求發(fā)送DTE→DCE5(8)CTS允許發(fā)送DTE←DCE6(6)DSRDCE就緒(數(shù)據(jù)建立就緒)DTE←DCE7(5)SGND信號接地8(1)DCD載波檢測DTE←DCE9—保留供測試用10—保留供測試用注:引腳序號欄中帶括號的序號為DB-9連接器的引腳序號。引

腳序

號信

號名

稱功

能信

向11—未定義12SDCD輔助信道載波檢測DTE←DCE13SCTS輔助信道允許發(fā)送DTE←DCE14STXD輔助信道發(fā)送數(shù)據(jù)DTE→DCE15TXC發(fā)送時鐘DTE←DCE16SRXD輔助信道接收數(shù)據(jù)DTE←DCE17RXC接收時鐘DTE←DCE18—未定義19SRTS輔助信道請求發(fā)送DTE→DCE20(4)DTRDTE就緒(數(shù)據(jù)終端準(zhǔn)備就緒)DTE→DCE21SQD信號質(zhì)量檢測DTE←DCE22(9)RI振鈴指示DTE←DCE23DRS數(shù)據(jù)信號速率選擇DTE→DCE24ETXC外部發(fā)送時鐘DTE→DCE25—未定義注:引腳序號欄中帶括號的序號為DB-9連接器的引腳序號RS-232C的電氣特性

RS-232C的信號電平:RS-232C標(biāo)準(zhǔn)規(guī)定采用負(fù)邏輯電平。信號源點的邏輯0電平范圍為+5V~+15V,邏輯1電平范圍為?5V~?15V;信號目的點的邏輯0電平范圍為+3V~+15V,邏輯1電平范圍為?3V~?15V,噪聲容限為2V。RS-232C的信號電平下圖所示。RS-232C的信號電平RS-232C的信號電平通常,RS-232C的邏輯電平采用+12V表示邏輯0,?12V表示邏輯1。RS-232C的傳輸距離與傳輸速率:

RS-232C的傳輸距離:DTE和DEC之間采用RS-232C傳輸?shù)淖畲缶嚯x不大于15m。

RS-232C的傳輸速率:小于20kbit/s。RS-232C與51系列單片機(jī)的連接由于51系列單片機(jī)的串行口不是標(biāo)準(zhǔn)RS-232C接口,采用的是正邏輯TTL電平:即邏輯1為+2.4V;邏輯0為+0.4V。所以使用RS-232C接口將51系列單片機(jī)與計算機(jī)或其他具有RS-232C接口的設(shè)備進(jìn)行連接時,必須考慮電平轉(zhuǎn)換問題。通常使用專用的電平轉(zhuǎn)換芯片來進(jìn)行電平轉(zhuǎn)換。MAXIM公司生產(chǎn)MAX232。它僅需要+5V電源,由內(nèi)置的電子泵電壓轉(zhuǎn)換器將

+5V轉(zhuǎn)換成

?10V~+10V。該芯片與TTL/CMOS電平兼容,片內(nèi)有2個發(fā)送器和2個接收器,使用比較方便。由它構(gòu)成的電平轉(zhuǎn)換電路如圖所示。MAX232電平轉(zhuǎn)換芯片由MAX232構(gòu)成的電平轉(zhuǎn)換電路由MAX232構(gòu)成的電平轉(zhuǎn)換電路RS-232C的缺點接口的信號電平值較高,易損壞接口電路的芯片。與TTL電平不兼容,與TTL電平接口連接需進(jìn)行電平轉(zhuǎn)換。傳輸距離短,使用時傳輸距離一般不超過15m,線路條件好時也不超過幾十米。傳輸速率較低,最高傳送速率為20kbit/s。由于收發(fā)信號采用共地傳輸,容易產(chǎn)生共模干擾,所以抗干擾能力較差。51單片機(jī)串行口的結(jié)構(gòu)串行接口的結(jié)構(gòu)串行口由發(fā)送電路和接收電路兩部分組成。圖中有兩個物理上獨立的串行口接收、發(fā)送緩沖器SBUF。SBUF(發(fā)送)用于存放將要發(fā)送的字符數(shù)據(jù);SBUF(接收)用于存放串行口接收到的字符數(shù)據(jù),數(shù)據(jù)的發(fā)送、接收可同時進(jìn)行。SBUF(發(fā)送)和SBUF(接收)同屬于特殊功能寄存器SBUF,占用同一個地址99H。但發(fā)送緩沖器只能寫入,不能讀出;接收緩沖器只能讀出,不能寫入。因此,對SBUF進(jìn)行寫操作時,是把數(shù)據(jù)送入SBUF(發(fā)送)中;對SBUF進(jìn)行讀操作時,讀出的是SBUF(接收)中的數(shù)據(jù)。串口發(fā)送過程當(dāng)單片機(jī)執(zhí)行“寫”SBUF命令時,將欲發(fā)送的字符送入SBUF(發(fā)送)后,發(fā)送控制器在發(fā)送時鐘的作用下,自動在發(fā)送字符前后添加起始位、停止位和其他控制位,然后在發(fā)送時鐘的控制下,逐位從TXD線上串行發(fā)送字符幀。發(fā)送完后使發(fā)送中斷標(biāo)志TI=1,發(fā)出串口發(fā)送中斷請求。串口接收過程串行口在接收時,接收控制器會自動對RXD線進(jìn)行監(jiān)視。當(dāng)確認(rèn)RXD線上出現(xiàn)起始位后,接收控制器就從起始位后的數(shù)據(jù)位開始,將一幀字符中的有用位逐位移入接收緩沖寄存器SBUF(接收)中,自動去掉起始位、停止位或空閑位,并使接收中斷標(biāo)志RI

=

1,發(fā)出串口接收中斷請求。這時,只要執(zhí)行“讀”SBUF命令,便可以得到接收的數(shù)據(jù)。串行接口的控制寄存器1.串行口控制寄存器SCON2.電源控制寄存器PCON串行口控制寄存器SCONSCON用于設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志等。它的字節(jié)地址為98H,可進(jìn)行位尋址,其各位的定義如圖所示。圖9-15串行口控制寄存器

SCON各位名稱和功能

SM0和SM1(SCON.7和SCON.6):串行口工作方式選擇位??蛇x擇4種工作方式,如表所示。SM0SM1工作方式功能波特率000移位寄存器fosc/1201110位異步收發(fā)(8位數(shù)據(jù))可變,由定時器控制10211位異步收發(fā)(9位數(shù)據(jù))fosc/64或fosc/3211311位異步收發(fā)(9位數(shù)據(jù))可變,由定時器控制表 串行口的工作方式

RI(SCON.0):接收中斷標(biāo)志位。用于指示一幀信息是否接收完畢它的工作過程是:當(dāng)串行口接收到停止位時;由內(nèi)部硬件電路使RI=1。一旦RI被硬件置1,便產(chǎn)生串口中斷請求SCON各位名稱和功能

TI(SCON.1):發(fā)送中斷標(biāo)志位。用于指示一幀信息是否發(fā)送完畢它的工作過程是:開始串行發(fā)送停止位時,由內(nèi)部硬件電路使TI=1,并向CPU發(fā)出串口中斷請求。與RI標(biāo)志的清除方法相似,TI也必須通過軟件才能將其清0SCON各位名稱和功能

RB8(SCON.2):接收數(shù)據(jù)第9位。在方式2或方式3中,用于存放接收數(shù)據(jù)的第9位,此時,該位可能是奇偶校驗位,也可能是多機(jī)通信中的地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式1時,若SM2=0,則RB8為接收到的停止位。方式0時,不使用RB8。SCON各位名稱和功能

TB8(SCON.3):發(fā)送數(shù)據(jù)第9位。在方式2或方式3中,用于存放發(fā)送數(shù)據(jù)的第9位,此時,該位可以用作奇偶校驗位,在多機(jī)通信中,可以作為地址幀/數(shù)據(jù)幀的標(biāo)志位。

REN(SCON.4):允許接收控制位。若使REN=1,則啟動串行口接收數(shù)據(jù);若使REN=0,則禁止串口接收。SCON各位名稱和功能SM2(SCON.5):多機(jī)通信控制位。主要用于方式2和方式3中。(一般設(shè)置為0)若接收方單片機(jī)的SM2

=

1,則由收到的RB8來控制是否使RI置1:當(dāng)收到的RB8

=

0時,RI不被置1,收到的信息被丟棄;當(dāng)收到的RB8

=

1時,收到的數(shù)據(jù)進(jìn)入SBUF(接收),并將RI置1,向CPU發(fā)出串口中斷請求,接收方可在串口中斷服務(wù)中將數(shù)據(jù)從SBUF(接收)中讀走。也可以通過查詢RI的辦法,在發(fā)現(xiàn)RI為1后,將SBUF(接收)中的數(shù)據(jù)讀走。SCON各位名稱和功能

若接收收方單片機(jī)的SM2

=

0,則RB8不再具有控制RI激活的功能,不論收到的RB8為0還是1,收到的數(shù)據(jù)都會進(jìn)入SBUF,并使RI

=

1。運用SM2的控制功能,便可以實現(xiàn)多機(jī)通信在方式0時,不使用SM2控制位,應(yīng)將SM2設(shè)定為0。在方式1時,通常也將SM2設(shè)為0,若使SM2

=

1,則只有接收到有效的停止位時,RI才被置1。SCON各位名稱和功能電源控制寄存器PCONPCON的字節(jié)地址為87H,不能按位尋址,只能按字節(jié)尋址。各位的定義如圖9-16所示。其中,只有一位SMOD與串行口工作有關(guān)。編程時只能使用字節(jié)操作指令對它賦值。圖9-16電源控制寄存器

PCON控制位的名稱和功能

SMOD(PCON.7):波特率倍增位。在串行口方式1、方式2、方式3中,用于控制是否倍增波特率。當(dāng)SMOD

=

0時,波特率不倍增;當(dāng)SMOD

=

1時,波特率提高一倍。

串行接口的工作方式1.方式02.方式13.方式2和方式3方式1工作方式1時,串口被設(shè)定為10位異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,所傳送的字符幀格式如圖所示。串口方式1的字符幀格式

方式1發(fā)送在TI

=

0時,當(dāng)執(zhí)行一條寫SBUF的指令后,即可啟動串行口發(fā)送過程:發(fā)送電路自動在寫入SBUF中的8位數(shù)據(jù)前后分別添加1位起始位和1位停止位。在發(fā)送移位脈沖作用下,從TXD引腳逐位送出起始位、數(shù)據(jù)位和停止位。發(fā)送完一個字符幀后,自動維持TXD線為高電平。并使發(fā)送中斷標(biāo)志TI置1,產(chǎn)生串口中斷請求。通過軟件將TI清0,便可繼續(xù)發(fā)送。串口方式1的發(fā)送時序串口方式1的發(fā)送時序方式1接收當(dāng)使用命令使RI

=

0,REN

=

1時,串口開始接收過程:接收控制器先以速率為所選波特率的16倍的采樣脈沖對RXD引腳電平進(jìn)行采樣,當(dāng)連續(xù)8次采樣到RXD線為低電平時,便可確認(rèn)RXD線上有起始位。此后,接收控制器就改為對第7、8、9三個脈沖采樣到的值進(jìn)行位檢測,并以三中取二原則來確定所采樣數(shù)據(jù)的值,如圖所示。串口接收時對RXD引腳電平的采樣串口接收時對RXD引腳電平的采樣方式1接收過程RXD上的數(shù)據(jù)被逐位移入接收移位寄存器,當(dāng)接收到停止位時,將去除起始位和停止位后的8位數(shù)據(jù)裝入接收緩沖器SBUF,并使RI

=

1,向CPU發(fā)出串口中斷請求。方式1的接收時序如圖所示。圖9-23串口方式1的接收時序

串行接口的波特率在串行通信中,為了保證接收方能正確識別數(shù)據(jù),收發(fā)雙方必須事先約定串行通信的波特率。51單片機(jī)在不同的串口工作方式下,其串行通信的波特率是不同的。其中,方式0和方式2的波特率是固定的;方式1和方式3的波特率是可變的,由定時器T1的溢出率決定。計算公式如下。

波特率計算公式:方式0的波特率

=

fosc/12

方式1的波特率

=

(2SMOD/32)×(T1溢出率)方式2的波特率

=

(2SMOD/64)×

fosc方式3的波特率

=

(2SMOD/32)×(T1溢出率)其中,T1溢出率是指定時器T1每秒鐘溢出的次數(shù)。SMOD=0表示波特率不增倍=1表示增倍T1溢出率計算公式:由于T1每溢出一次所需的時間即為T1的定時時間,所以T1溢出率等于T1定時時間的倒數(shù)。計算公式如下。T1的定時時間

=

(2n?計數(shù)初

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論