《單片機原理、接口與C51應用程序設計》課件第7章_第1頁
《單片機原理、接口與C51應用程序設計》課件第7章_第2頁
《單片機原理、接口與C51應用程序設計》課件第7章_第3頁
《單片機原理、接口與C51應用程序設計》課件第7章_第4頁
《單片機原理、接口與C51應用程序設計》課件第7章_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第7章MCS-51串口通信7.1串行通信基礎知識

7.2MCS-51的串行口及控制寄存器

7.3串行口工作方式

7.4串行口的初始化與應用

7.5單片機與PC的通信

7.1串行通信基礎知識

7.1.1并行通信與串行通信

計算機與外界的通信(communication)有兩種基本方式,即并行通信和串行通信,如圖7.1所示。圖7.1并行通信和串行通信圖7.2串行通信的制式7.1.2串行通信的制式

按照數(shù)據(jù)傳送的方向,串行通信可以分為3種制式,即單工、半雙工和全雙工,如圖7.2所示。

7.1.3異步通信和同步通信

串行通信按信息的格式可以分為同步通信和異步通信兩種不同的方式。

異步通信中數(shù)據(jù)以字符(字節(jié))為單位組成字符幀,發(fā)送端一幀一幀地發(fā)送字符幀,接收端一幀一幀地接收字符幀,收發(fā)兩端由各自獨立的時鐘信號來控制數(shù)據(jù)的發(fā)送和接收。發(fā)送端可以在任意時間發(fā)送字符幀,所以接收端隨時要做好接收幀的準備。另外,傳送時必須對幀進行定界,以區(qū)分不同的字符幀。幀定界包含幀起始位和幀結束位標志。傳輸時每一個字符前加一個低電平的起始位,然后是數(shù)據(jù)位,數(shù)據(jù)位可以是5~8位,傳輸時低位在前,高位在后,數(shù)據(jù)位后面可以帶一位奇偶校驗位,最后是停止位,停止位用高電平,停止位可以是1、1.5或2位。異步串行通信的字符幀格式如圖7.3所示。圖7.3異步串行通信的字符幀格式7.1.4波特率

波特率是指每秒鐘傳輸?shù)亩M制數(shù)碼的位數(shù),單位是b/s。波特率是串行通信的重要指標,用于表征數(shù)據(jù)傳送的速率。波特率越高,數(shù)據(jù)傳輸速度越快。字符的實際傳送速率與波特率不同。字符的實際傳送速率是指每秒鐘內所傳字符幀的幀數(shù),與字符幀格式有關。通常,異步通信的波特率在50b/s~9600b/s之間。在編寫串行通信程序時,首先要確定波特率和字符幀格式兩個參數(shù),通信雙方的波特率必須保持嚴格一致,傳輸數(shù)據(jù)的字符幀格式必須統(tǒng)一。

7.2MCS-51的串行口及控制寄存器

7.2.1串行口的結構

MCS-51單片機的串行口由串行發(fā)送寄存器SBUF(99H)、串行接收寄存器SBUF(99H)、發(fā)送控制器、接收控制器、輸入移位寄存器等部分組成,其內部結構框圖如圖7.4所示。圖7.4MCS-51單片機串行口結構框圖7.2.2串行口控制寄存器

1.串行口控制寄存器SCON

串行口控制寄存器SCON決定著串行口的通信方式,控制數(shù)據(jù)的接收和發(fā)送,標示串行口的工作狀態(tài)。其字節(jié)地址為98H,可以進行位尋址,位地址為98H~9FH。它的位格式定義如表7.1所示。表7.1串行口控制寄存器SCON

SCON各位的功能如下:

SM0、SM1:串行口工作方式選擇位。串口的工作方式及相應的波特率如表7.2所示。表中,fosc為單片機的時鐘頻率。表7.2串行口工作方式選擇

2.電源控制寄存器PCON

電源控制寄存器PCON主要用于電源控制和串行口波特率加倍,其字節(jié)地址為87H,不能進行位尋址,只能按照字節(jié)方式訪問。它的格式如圖7.5所示。圖7.5電源控制寄存器PCON

7.3串行口工作方式

7.3.1方式0

1.發(fā)送過程

在發(fā)送中斷標志位TI?=?0時,CPU執(zhí)行一條向發(fā)送緩存器SBUF寫數(shù)據(jù)的指令,如“MOVSBUF,A”,就啟動了串行數(shù)據(jù)的發(fā)送,經(jīng)過一個機器周期,SBUF中的數(shù)據(jù)按低位在前、高位在后的順序從RXD端依次送出,而同步時鐘從TXD送出。一幀(8位)數(shù)據(jù)發(fā)送結束后,硬件自動使發(fā)送中斷標志位TI置“1”,向CPU申請中斷。中斷響應后,必須由軟件使TI清“0”,才可以發(fā)送下一幀數(shù)據(jù)。

2.接收過程

在REN?=?1且接收中斷標志位RI?=?0時,就會啟動一次接收過程,串行數(shù)據(jù)通過RXD輸入,而通過TXD輸出同步脈沖。在同步脈沖的控制下,RXD引腳上的數(shù)據(jù)依次送入接收移位寄存器,當8位的數(shù)據(jù)全部進入移位寄存器之后,由接收控制器將一幀數(shù)據(jù)并行送入接收數(shù)據(jù)緩沖器SBUF,同時由硬件自動使接收中斷標志位RI?=?1,向CPU申請中斷。中斷響應后,CPU將SBUF中的數(shù)據(jù)讀走,然后用軟件使RI清“0”,移位寄存器開始接收下一幀數(shù)據(jù)。7.3.2方式1

SM0SM1?=?01時,串口工作于方式1。方式1為8位異步串行通信(UART)。此方式下,一幀數(shù)據(jù)為10bit:1bit起始位(0),8bit數(shù)據(jù)(低位在前,高位在后),1bit停止位(1)。由TXD引腳發(fā)送數(shù)據(jù),由RXD引腳接收數(shù)據(jù)。方式1的波特率可變,由定時器T1的溢出率和PCON中的SMOD位共同決定,即

1.發(fā)送過程

在發(fā)送中斷標志位TI?=?0時,CPU執(zhí)行一條向發(fā)送緩存器SBUF寫數(shù)據(jù)的指令,就啟動了串行數(shù)據(jù)的發(fā)送。數(shù)據(jù)由TXD引腳送出,發(fā)送時鐘由定時器/計數(shù)器T1送來的溢出信號經(jīng)16分頻或32分頻后得到。在發(fā)送時鐘的控制下,從TXD引腳先送出1bit低電平的起始位,然后按照低位在前、高位在后的順序送出8bit的數(shù)據(jù),最后送出1bit高電平的停止位。一幀(10位)數(shù)據(jù)發(fā)送結束,由硬件自動使發(fā)送中斷標志位TI置“1”,向CPU申請中斷。中斷響應后,必須由軟件使TI清“0”,告訴CPU可以發(fā)送下一幀數(shù)據(jù)。

2.接收過程

在REN?=?1時,接收器就開始工作,接收器以16倍的波特率采樣RXD引腳上的電平。當采樣到從“1”至“0”的跳變后,接收控制寄存器開始接收數(shù)據(jù),在接收移位脈沖的控制下數(shù)據(jù)依次送入接收移位寄存器,當8位數(shù)據(jù)和1位停止位全部移入時,按下面狀態(tài)進行響應。

(1)?RI?=?0,SM2?=?0:將移位寄存器中的數(shù)據(jù)送入接收數(shù)據(jù)緩沖器SBUF,停止位裝入RB8,接收中斷標志位RI置“1”,向CPU申請中斷。

(2)?RI?=?0,SM2?=?1:只有接收到的停止位為“1”時才發(fā)生上述操作。

(3)?RI?=?0,SM2?=?1,且停止位為0:將接收到的數(shù)據(jù)丟失,不裝入SBUF。

(4)?RI?=?1:將接收到的數(shù)據(jù)丟失,不裝入SBUF。

無論出現(xiàn)哪種情況,接收控制器將繼續(xù)采樣RXD引腳,以便接收下一幀的信息。

7.3.3方式2和方式3

SM0SM1?=?10和11時,串口分別工作于方式2和方式3。方式2和方式3是9位異步串行通信。在方式2和方式3下,一幀數(shù)據(jù)為11bit:1bit起始位(0),8bit數(shù)據(jù)(低位在前,高位在后),1bit可編程位(第9位數(shù)據(jù)),1bit停止位(1)。發(fā)送的第9位數(shù)據(jù)放于TB8中,接收的第9位數(shù)據(jù)放于RB8中。由TXD引腳發(fā)送數(shù)據(jù),由RXD引腳接收數(shù)據(jù)。方式2、3的區(qū)別主要是波特率產(chǎn)生方式不同:方式2的波特率是固定的,為fosc/32(SMOD=1)或fosc/64(SMOD=0);方式3的波特率與方式1的波特率完全相同,由定時器/計數(shù)器T1的溢出率和電源控制寄存器PCON中的SMOD決定,即

1.發(fā)送過程

方式2和方式3發(fā)送的數(shù)據(jù)是9位,發(fā)送前必須先將第9位數(shù)據(jù)裝入SCON的TB8中。發(fā)送過程類似于方式1,從TXD引腳先送出1bit低電平的起始位,然后是8bit的數(shù)據(jù)位,TB8中的數(shù)據(jù)跟在前8位數(shù)據(jù)之后,最后是1bit高電平的停止位。一幀(11bit)數(shù)據(jù)發(fā)送結束,由硬件自動使TI置“1”,向CPU申請中斷。

2.接收過程

方式2和方式3的接收過程與方式1類似,所不同的是接收到的第9位數(shù)據(jù)不是停止位,接收到后存放于SCON的RB8中。接收是否有效也是由該位判斷的,而不是由停止位判斷的。

MCS-51串口的四種工作方式中,方式1、方式2、方式3是異步串行通信(UART),方式0是同步通信,其特點如表7.3所示。表7.3串口的四種工作方式

7.4串行口的初始化與應用

7.4.1串行口的初始化

1.串行口工作方式的設置

應通過對串行口控制寄存器SCON編程來確定串行口的工作方式。根據(jù)工作方式設置SM0、SM1的值,對方式2和方式3還要確定SM2的值。若為接收端,則允許接收位REN置“1”。若以方式2或方式3發(fā)送數(shù)據(jù),則將要發(fā)送的第9位數(shù)據(jù)寫入TB8中。

2.波特率的設置

對于方式0,不需對波特率進行設置,通信的波特率為fosc/12。對于方式2,只需對電源控制寄存器PCON中的SMOD位進行設置,SMOD?=?0,波特率?=?fosc/32,SMOD?=?0,波特率?=?fosc/64。

對于方式1和方式3,除要設置SMOD之外,還要對定時器/計數(shù)器T1進行設置,一般定時器/計數(shù)器T1工作于方式2。根據(jù)實際需要選擇一個合適的波特率,根據(jù)前面波特率的計算公式:7.4.2串行口的應用

1.利用方式0擴展并行I/O口

當MCS-51單片機的串行口工作在方式0時,每外接一片串行輸入、并行輸出的移位寄存器(如74LS164、CD4094),就可以擴展一個8位并行輸出口,如圖7.6(a)所示。每外接一片并行輸入、串行輸出的移位寄存器(如74LS165、CD4014),就可以擴展一個8位并行輸入口,如圖7.6(b)所示。圖7.6串行口工作在方式0時的應用

【例7.1】如圖7.7所示,MCS-51的串口外接一串入并出的芯片74LS164以擴展并行輸出口,控制一組發(fā)光二極管發(fā)光,使二極管從左向右依次輪流循環(huán)點亮,試寫出程序。圖7.774LS164擴展并行輸出口

【例7.2】如圖7.8所示,由一組開關S1~S8分別來控制一組發(fā)光二極管L1~L8,當開關接到+5V電源時相應的二極管點亮,當開關接到地時相應的二極管熄滅,試寫出相應的程序。圖7.874LS165擴展并行輸入口

2.利用方式1實現(xiàn)點對點串行通信

要實現(xiàn)兩臺單片機之間點對點的通信,只需要將A機的TXD與B機的RXD相連,將A機的RXD與B機的TXD相連,兩機的地線相連,兩臺單片機采用相同的工作方式,設置相同的波特率就可以實現(xiàn)。

【例7.3】如圖7.9所示,某數(shù)據(jù)采集顯示系統(tǒng)由A、B兩單片機組成,A機每次將采集到的數(shù)據(jù)data發(fā)送給B機,B機則將收到的數(shù)據(jù)送到顯示器上顯示。A、B兩機之間進行串行通信,假定雙機的時鐘頻率均為fosc?=?11.0592MHz,波特率均為9600b/s。寫出相應的雙機通信程序。圖7.9方式1實現(xiàn)雙機通信

3.利用方式2和方式3實現(xiàn)多機通信

單片機之間的通信除了點對點通信外,還有一機對多機或多機之間的通信,其中主從式多機通信是比較常用的一種方式。在主從式多機通信系統(tǒng)中,只有一臺主機,但可以有多臺從機,主機發(fā)送的信息可以傳送到各個從機或指定從機,從機發(fā)送的信息只能為主機所接收,各從機之間不能直接通信。MCS-51單片機串行口的方式2和方式3可以實現(xiàn)多機通信功能,可實現(xiàn)一臺主機和若干臺從機構成總線式的多機分布式系統(tǒng),其連接方式如圖7.10所示。圖7.10多機通信的硬件連接多機通信原理流程如圖7.11所示。圖7.11多機通信原理流程圖 7.5單片機與PC的通信

7.5.1RS-232串行總線通信的基本原理

1.?RS-232串行總線接口

RS-232是EIA為公用電話網(wǎng)絡數(shù)據(jù)通信而制定的標準。其中,RS(RecommendStandard)代表推薦標準,232是標識號。RS-232為數(shù)據(jù)終端設備(DTE)和數(shù)據(jù)通信設備(DCE)之間的串行數(shù)據(jù)交換接口技術標準,該標準規(guī)定采用一個25腳的DB-25連接器,后來IBM的PC將RS-232簡化成了DB-9連接器,從而成為事實標準,其引腳如圖7.12所示。表7.4為常用的DB-25和DB-9接口各引腳的信號功能。工業(yè)控制中RS-232一般只使用RXD、TXD、GND三條線。圖7.12RS-232引腳排列由于RS-232的發(fā)送和接收是“對地”而言的,采用非平衡模式傳輸,存在共地噪聲,所以其最大傳輸距離和速率在標準中被限定為15m和19200b/s。在實際應用中有數(shù)據(jù)表明在300b/s的速率下,通信距離也可以達到150m以上,但從嚴格意義上來講,這是不符合規(guī)范要求的。從電氣特性來看,RS-232總線的邏輯電平與TTL電平完全不兼容,總線中的任何一條信號線的電壓均為負邏輯關系,邏輯“0”規(guī)定為+5V~+15V之間,邏輯“1”規(guī)定為-5V~-15V之間,噪聲容限為2V,即要求接收器能識別低至+3V的信號作為邏輯“0”,高到-3V的信號作為邏輯“1”。表7.4RS-232引腳的信號功能

2.?TTL/RS-232電平轉換及其接口電路

RS-232規(guī)定的電平和一般微處理器的邏輯電平不一致,必須進行電平轉換。實現(xiàn)邏輯電平轉換可以采用以下幾種方式。

(1)采用MC1488和MC1489轉換芯片。MC1488和MC1489芯片為早期的RS-232至TTL邏輯電平的轉換芯片。圖7.13為實際電路。采用該芯片的主要缺點是電路需要加?±12V電壓,不適用于低功耗的系統(tǒng)。圖中,TXD、RXD分別接單片機的發(fā)送和接收端。圖7.13MC1488和MC1489電平轉換電路

(2)采用MAX232轉換芯片。MAX232芯片是美信(MAXIM)公司專為RS-232標準串口設計的電平轉換芯片,使用+5V單電源供電。芯片內部有一個電壓轉換器,將輸入的+5V電壓轉換為RS-232接口所需的±10V電壓,尤其適用于沒有±12V的單電源系統(tǒng)。與此原理相同的芯片還有MAX202、AD公司的ADM101以及INTERSIL公司的ICL232芯片等,ICL232與MAX232可直接替換。圖7.14為MAX232的引腳排列及各引腳的功能圖。圖7.14MAX232的引腳排列及各引腳的功能圖圖7.15為MAX232的典型應用電路。圖7.15MAX232的典型應用電路

(3)采用分立元件實現(xiàn)電平轉換。當通信距離在1m~2m時,可采用分立元件實現(xiàn)RS-232/TTL電平轉換。圖7.16為接口電路。該電路的特點是利用PC的RS-232串口的3腳(也可用4、7腳)供給負電源(-10V左右),驅動能力可達20mA。利用這個特性,用一個二極管和電解電容C,即可在C上獲取RS-232通信所需的負電源。該電路簡單,功耗小,在沒有專用芯片時不失為一種替代方法。

上述介紹的RS-232至TTL電平轉換的方法適用于大多數(shù)通信系統(tǒng),在一些特殊應用場合需要諸如靜電保護、多收發(fā)器(如和MODEM連接)時可采用MAX238(4驅動、4接收)或MAX3221(±15kV靜電保護)等芯片。圖7.16分立元件實現(xiàn)RS-232/TTL電平的轉換電路7.5.2RS-485串行總線通信的基本原理

1.?RS-422與RS-485串行總線接口

RS-422、RS-485與RS-232不一樣,數(shù)據(jù)信號采用差分傳輸方式,它使用一對雙絞線,將其中一線定義為A,另一線定義為B,通常情況下,發(fā)送驅動器A、B之間的電平在+2V~+6V時為邏輯1,電平在-2V~-6V時為是邏輯0。

RS-422使用差分信號,差分傳輸時用兩根線發(fā)送和接收信號(共4線),與RS-232相比較,它能更好地抗噪聲,有更遠的傳輸距離。在工業(yè)環(huán)境中更好的抗噪性和更遠的傳輸距離是一個很大的優(yōu)點。

RS-485是RS-422的改進,因為它增加了數(shù)據(jù)終端設備(DTE)的個數(shù),將其從10個增加到了32個。RS-485可以用超過4000m的線進行串行通信。在機械結構上,RS-485與RS-232一樣,采用DB-9連接器。RS-485采用正邏輯,兩線間的電壓差為+2V~+6V時為邏輯“1”,兩線間的電壓差為-2V~-6V時為邏輯“0”。由于RS-422的收與發(fā)是分開的,所以可以同時收和發(fā)(全雙工),但RS-485的收與發(fā)共用兩根線,所以不能夠同時收和發(fā)(半雙工)。RS-485與RS-422的不同還在于其共模輸出電壓是不同的,RS-485在-7V~+12V之間,而RS-422在-7V~+7V之間。RS-422與RS-485傳輸需要2個終接電阻,其阻值要求等于傳輸電纜的特性阻抗。

RS-485標準的具體規(guī)格要求如下:

(1)接收器的輸入電阻RIN≥12kΩ。

(2)驅動器能輸出±7V的共模電壓。

(3)輸入端的電容≤50pF。

(4)在節(jié)點數(shù)為32個,配置了120Ω的終端電阻的情況下,驅動器至少還能輸出電壓1.5V。

(5)接收器的輸入靈敏度為200mV(即(V+)-(V-)≥0.2V,表示信號“0”,(V+)-(V-)≤-0.2V,表示信號“1”)。

常見的三種串口通信性能比較如表7.5所示。表7.5常見的三種串口通信性能比較

2.?RS-485接口芯片

MAX481、MAX483、MAX485、MAX487、MAX491等是用于RS-485與RS-422通信的低功耗收發(fā)器,每個器件都具有一個驅動器和一個接收器。MAX483、MAX487、MAX488以及MAX489具有有限擺率的驅動器,可以減小電磁干擾,并降低由不恰當?shù)慕K端匹配電纜引起的反射,實現(xiàn)最高250kb/s的無差錯數(shù)據(jù)傳輸。MAX481、MAX485、MAX490、MAX491等的驅動器擺率不受限制,可以實現(xiàn)最高2.5Mb/s的傳輸速率,這些收發(fā)器在驅動器禁用的空載或滿載狀態(tài)下,吸收的電源電流在120A~500A之間。以上所有器件都工作在+5V單電源下。

MAX485的額定電流為300μA,采用半雙工通信方式。它完成將TTL電平轉換為RS-485電平的功能。其引腳結構圖如圖7.17所示。圖7.17MAX485的引腳和結構圖

3.基于RS-485的PC與單片機通信

51系列單片機實現(xiàn)與PC之間的通信時,必須使用電平轉換接口芯片,因為單片機輸出的是TTL電平,必須經(jīng)過電平轉換才能和PC的一致。單片機一側需要采用RS-485接口,而在PC一側需要的是RS-232與RS-485的電平轉換接口,如圖7.18所示。圖7.18基于RS-485串行通信連接框圖

PC機與單片機串行通信連接圖如圖7.19所示。圖7.19PC與單片機的連接電路7.5.3USB串行總線通信的基本原理

1.?USB串行總線簡介

USB(UniversalSerialBus)通用串行總線是由Compaq、HP、Intel、Lucent、NEC、Microsoft和PHILIPS七家公司聯(lián)合推出的新一代標準接口總線。該總線是一種連接外圍設備的總線,最多可連接127個設備,為微機系統(tǒng)擴充和配置外部設備提供了方便。USB通信技術以其易插拔、速度快、即插即用和獨立供電等特點,已得到非常廣泛的應用。目前幾乎所有的PC都帶幾個USB接口,而大部分PC已不帶有RS-232和RS-485接口。為了解決嵌入式系統(tǒng)與個人計算機USB接口之間的通信問題,硬件廠商提供各種不同的解決方案。一種方案是使用帶USB接口的單片機和獨立的USB接口器件,如Cypress公司的CY7C68013A和PHILIPS公司的PIUSBDl2。這種方案需開發(fā)人員了解和掌握USB的接口原理、協(xié)議,設計USB設備驅動程序,而USB接口協(xié)議的復雜性給開發(fā)人員帶來了諸多不便,開發(fā)周期長。另一種方案是使用RS-232到USB的接口轉換器,這些器件在其內部完成RS-232到USB接口協(xié)議的轉換,開發(fā)人員完全不用更改或只需更改很少的PC端應用程序就可完成與USB接口的通信,如Prolific公司的PL2303、SiliconLabs公司的CP2102型RS-232-USB接口轉換器。這類器件價格成本低,開發(fā)簡單。利用RS-232-USB接口轉換器完成通信任務,既具有即插即用的優(yōu)點,又避免了繁瑣的USB協(xié)議和USB驅動,開發(fā)方便。這里介紹RS-232-USB接口轉換器PL2303的特點與原理,并介紹利用該器件實現(xiàn)單片機與個人計算機之間的通信接口設計。

2.?PL2303芯片簡介

PL2303是Prolific公司生產(chǎn)的一種高度集成的RS-232-USB接口轉換器,可提供一個RS-232全雙工異步串行通信裝置與USB功能接口便利連接的解決方案。該器件內置USB功能控制器、USB收發(fā)器、振蕩器和帶有全部調制解調器控制信號的UART,只需外接幾只電容就可實現(xiàn)USB信號與RS-232信號的轉換,能夠方便嵌入到手持設備。該器件作為USB/RS-232雙向轉換器,一方面從主機接收USB數(shù)據(jù)并將其轉換為RS-232信息流格式后發(fā)送給外設

溫馨提示

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

評論

0/150

提交評論