《單片機(jī)原理及應(yīng)用》課件第10章 串行口通信_第1頁
《單片機(jī)原理及應(yīng)用》課件第10章 串行口通信_第2頁
《單片機(jī)原理及應(yīng)用》課件第10章 串行口通信_第3頁
《單片機(jī)原理及應(yīng)用》課件第10章 串行口通信_第4頁
《單片機(jī)原理及應(yīng)用》課件第10章 串行口通信_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第10章串行口通信10.1串行通信概述10.28051串行口10.38051串行口的應(yīng)用10.4串行通信總線標(biāo)準(zhǔn)及其接口10.5單片機(jī)與PC機(jī)通信的接口電路10.6常用的串行總線接口簡介10.7實(shí)踐訓(xùn)練——單片機(jī)與單片機(jī)之間

的串行通信10.8思考與練習(xí)隨著網(wǎng)絡(luò)通信技術(shù)的應(yīng)用,人們越來越多的采用計(jì)算機(jī)與單臺或多臺單片機(jī)構(gòu)成小型集散控制系統(tǒng),它即利用了單片機(jī)系統(tǒng)成本低、面向控制和抗干擾等優(yōu)點(diǎn),又結(jié)合了計(jì)算機(jī)極為豐富軟件資源,為用戶提供了一個非常友好的人機(jī)見面。通過單片機(jī)與計(jì)算機(jī)通行采用串行通信,能夠?qū)崿F(xiàn)智能化控制、漢字與圖形顯示等諸多功能。本章要點(diǎn):串行通信的基本概念8051單片機(jī)串行口的結(jié)構(gòu)和工作原理串行口的4種工作方式RS-232串行接口的含義及應(yīng)用單片機(jī)雙機(jī)通信的應(yīng)用程序的設(shè)計(jì)CONTNTS10.1串行通信概述01計(jì)算機(jī)的通信可分為并行通信和串行通信兩種方式。同時傳送多位數(shù)據(jù)的方式稱為并行通信,如圖10-1(a)所示。并行通信的特點(diǎn)是數(shù)據(jù)傳輸速度快,但需要的傳輸線多,因此成本高,適合近距離的數(shù)據(jù)通信。計(jì)算機(jī)內(nèi)部的數(shù)據(jù)傳送都采用并行方式。數(shù)據(jù)傳輸速度慢,但最少只需要一條傳輸線,故成本低,適合遠(yuǎn)距離的數(shù)據(jù)通信。計(jì)算機(jī)與外界的數(shù)據(jù)傳送大多是串行方式,其傳送的距離可以從幾米到幾千米。10.1串行通信概述01

異步通信的數(shù)據(jù)或字符是分為一幀一幀地傳送的,在異步通信中,用一個起始位表示字符的開始,用停止位表示字符的結(jié)束。其每幀的格式如圖所示。在一幀格式中,先是一個起始位0,然后是5~8個數(shù)據(jù)位,規(guī)定低位在前,高位在后,接下來是奇偶校驗(yàn)位(可以省略),最后是停止位1。一幀數(shù)據(jù)傳送結(jié)束后,可以接著傳送下一幀數(shù)據(jù),也可以等待,等待期間數(shù)據(jù)線為高電平(空閑位)。如果要傳送下一幀,只要讓數(shù)據(jù)線由高電平變?yōu)榈碗娖?,即下一幀的起始位,以便接收器接收下一幀?shù)據(jù)。異步通信中每個字符都要額外附加起始位和停止位,所以工作速度較低,但對硬件的要求較低,實(shí)現(xiàn)起來比較簡單、靈活,適用于數(shù)據(jù)的隨機(jī)發(fā)送和接收,在單片機(jī)中主要采用異步通信方式。10.1串行通信概述01

在計(jì)算機(jī)與一些高速設(shè)備進(jìn)行數(shù)據(jù)通信時,為了提高數(shù)據(jù)塊傳遞速度,可以去掉起始位和停止位標(biāo)志,采用同步傳送。同步通信的傳送格式如圖所示。

同步通信由1~2個同步字符和多字節(jié)數(shù)據(jù)位組成,由同步字符作為起始位以觸發(fā)同步時鐘開始發(fā)送或接收數(shù)據(jù),由于數(shù)據(jù)塊傳遞開始要用同步字符來指示,同時要求由時鐘來實(shí)現(xiàn)發(fā)送端與接收端之間的同步,故硬件較復(fù)雜,適用于成批數(shù)據(jù)傳送。10.1串行通信概述01

串行通信按照數(shù)據(jù)傳送的方向可分為三種制式,單工制式、半雙工制式和全雙工制式,如圖所示。(1)單工制式單工制式是指甲乙雙方通信時只能單向傳輸數(shù)據(jù),如圖10-4(a)所示。(2)半雙工制式半雙工制式是指通信雙方都有發(fā)送器和接收器,既可以發(fā)送也可以接收,但不能同時發(fā)送和接收,如圖10-4(b)所示。(3)全雙工制式全雙工制式是指通信雙方都有發(fā)送器和接收器,且信道劃分為發(fā)送信道和接收信道,可以實(shí)現(xiàn)甲方(乙方)同時發(fā)送和接收數(shù)據(jù),如圖10-4(c)所示。10.1串行通信概述01

在串行通信中,數(shù)據(jù)是按位傳送的,傳送速率用每秒傳送數(shù)據(jù)的位數(shù)來表示,稱為波特率或比特率,以波特為單位。1波特=1位/秒(1bit/s)例如數(shù)據(jù)傳送的速率是120字符/s,而每個字符如上述規(guī)定包含10數(shù)位,則傳送波特率為1200波特。10.1串行通信概述CONTNTS10.2

8051串行口028051串行口的內(nèi)部結(jié)構(gòu)如圖10-5所示。10.28051串行口02串行口有發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的工作過程。1.串行口發(fā)送數(shù)據(jù)串行口發(fā)送數(shù)據(jù)時,從片內(nèi)總線向發(fā)送SBUF寫入數(shù)據(jù)(MOVSBUF,A),啟動發(fā)送過程,由硬件電路自動在字符的始、末加上起始位(低電平)、停止位(高電平),A中的數(shù)據(jù)送入SBUF,在發(fā)送控制器控制下,按設(shè)定的波特率,每來一個移位脈沖,數(shù)據(jù)移出一位,先發(fā)送一位起始位(低電平),再由低位到高位一位一位通過TXD(P3.1)把數(shù)據(jù)發(fā)送到外部電纜上,數(shù)據(jù)發(fā)送完畢,最后發(fā)一位停止位(高電平),一幀數(shù)據(jù)發(fā)送結(jié)束。發(fā)送控制寄存器通過或門向CPU發(fā)出中斷請求(TI=1),CPU可以通過查詢TI或者響應(yīng)中斷的方式,將下一幀數(shù)據(jù)送入SBUF,開始發(fā)送下一幀數(shù)據(jù)。2.串行口接收數(shù)據(jù)在接收數(shù)據(jù)時,若RXD(P3.2)接收到一幀數(shù)據(jù)的起始信號(低電平),串行控制寄存器SCON向接收控制器發(fā)出允許接收信號,按設(shè)定的波特率,每來一個移位脈沖,將數(shù)據(jù)從RXD端移入一位,放在輸入移位寄存器中,數(shù)據(jù)全部移入后,寄存器再將全部數(shù)據(jù)送入接收SBUF中,同時接收控制器通過或門向CPU發(fā)出中斷請求(RI=1),CPU可以通過查詢RI或者響應(yīng)中斷的方式,將接收SBUF中的數(shù)據(jù)取走(MOVA,SBUF),從而完成了一幀數(shù)據(jù)的接收。其后各幀數(shù)據(jù)的接收過程與上述相同。由以上敘述可得,串行通信雙方的移位速度必須一致,否則會造成數(shù)據(jù)位的丟失。因此,在設(shè)計(jì)串行程序時,通信雙方必須采用相同的波特率。10.28051串行口02控制8051系列單片機(jī)串行口的控制寄存器有兩個:特殊功能寄存器SCON和PCON。下面對這兩個寄存器的各位功能予以介紹。1.串行控制寄存器SCONSCON是一個逐位定義的8位寄存器,用于控制串行通信的方式選擇、接收和發(fā)送,指示串口的狀態(tài),SCON即可以字節(jié)尋址,也可以位尋址,其字節(jié)地址為98H,地址位為98H~9FH。它的各個位定義見表10-1。10.28051串行口02(1)SM0和SM1——串口的工作方式選擇位2個選擇位對應(yīng)4種工作方式,見表10-2。其中

是振蕩器的頻率,UART是通用異步接收/發(fā)送器。10.28051串行口02(2)SM2——多機(jī)通信控制位在工作方式2和3中SM2是多機(jī)通信的使能位,若SM2=1且接收到的第9位數(shù)據(jù)(RB8)為0,則將接收到的前8位數(shù)據(jù)丟棄,中斷標(biāo)志RB8不會被激活;若接收到的第9位數(shù)據(jù)(RB8)為1,則將接收到的前8位數(shù)據(jù)送入SBUF,且RI置位。若SM2=0,則無論第9位數(shù)據(jù)是1還是0,都將前8位數(shù)據(jù)送入SBUF,且RI置位。此功能可用于多處理機(jī)通信。在工作方式0中,SM2必須為0。在工作方式1中,若SM2=1且沒有接收到有效的停止位,則接收中斷標(biāo)志位RI不會被激活。(3)REN——允許串行接收位由軟件置位或清除,置位時允許串行接收,清除時禁止串行接收。

(4)TB8——工作方式2和工作方式3要發(fā)送的第9位數(shù)據(jù)在許多通信協(xié)議中該位是奇偶位,可以按需要由軟件置位或清除。在多處理機(jī)通信中,該位用于表示是地址幀還是數(shù)據(jù)幀。10.28051串行口02(5)RB8——工作方式2和工作方式3中接收到的第9位數(shù)據(jù)可以是奇偶位或者地址/數(shù)據(jù)標(biāo)識位等,在工作方式1中若SM2=0,則RB8是已接收的停止位。在工作方式0中RB8不使用。(6)TI——發(fā)送中斷標(biāo)志位由硬件置位,軟件清除。工作方式0中在發(fā)送第8位末尾由硬件置位;在其他工作方式時,在發(fā)送停止位開始時由硬件置位。TI=1時,申請中斷。CPU響應(yīng)中斷后,發(fā)送下一幀數(shù)據(jù)。在任何工作方式中都必須由軟件清除TI。(7)RI——接收中斷標(biāo)志位由硬件置位,軟件清除。工作方式0中在接收第8位末尾由硬件置位;在其他工作方式時,在接收到停止位時由硬件置位。RI=1時,申請中斷,要求CPU取走數(shù)據(jù)。但在工作方式1中,SM2=1且未接收到有效的停止位時,不會對RI置位。在任何工作方式中都必須由軟件清除RI。系統(tǒng)復(fù)位時,SCON的所有位都被清0。10.28051串行口022.電源控制寄存器PCONPCON也是一個逐位定義的8位寄存器,字節(jié)地址為87H,只能按字節(jié)尋址,目前僅僅有幾位有定義,見表10-3。PCON中僅最高位SMOD與串行口的控制有關(guān)。SMOD是串行通信波特率系數(shù)控制位,當(dāng)串行口工作在工作方式1或工作方式2時,若使用T1作為波特率發(fā)生器,SMOD=1則波特率加倍,因此SMOD也稱為串行口的波特率倍增位。系統(tǒng)復(fù)位時,SMOD被清0。10.28051串行口0210.2.4串行口的工作方式按照串行通信的數(shù)據(jù)格式和波特率的不同,8051系列單片機(jī)的串行口有4種工作方式,可以通過SM0SM1進(jìn)行選擇。10.28051串行口0210.28051串行口0210.28051串行口0210.28051串行口0210.28051串行口10.2.5波特率的設(shè)定0210.28051串行口CONTNTS10.38051串行口的應(yīng)用03

在進(jìn)行串行口的應(yīng)用時,要解決的問題主要是硬件的連接和編制應(yīng)用程序。硬件的連接主要是串行口的RXD、TXD端與外部芯片引腳的連接,根據(jù)串行口工作方式和外部芯片的不同而有所不同。應(yīng)用程序的編寫內(nèi)容主要分為串行口初始化和應(yīng)用程序主體。1.串行口初始化程序主要內(nèi)容(1)選擇串行口的工作方式,即設(shè)定SCON中的SM0、SM1。(2)設(shè)定串行口的波特率。方式0可以省略這一點(diǎn)。設(shè)定SMOD的狀態(tài),若設(shè)定SMOD=1,則波特率加倍。若選擇方式1和方式3,則需對定時器T1進(jìn)行初始化并設(shè)定其初值。(3)若選擇串行口接收數(shù)據(jù)或是雙工通信方式,需設(shè)定REN=1。(4)若采用中斷方式編寫串行程序,需開串行中斷,即設(shè)定ES=1,EA=1。032.串行口應(yīng)用程序主體串行通信可采用兩種方式編程,查詢方式和中斷方式。TI和RI是串行通信一幀數(shù)據(jù)發(fā)送完和接收完的標(biāo)志。無論是查詢方式還是中斷方式編程,都需要用到TI或RI。兩種方式編程方法如下。(1)查詢方式發(fā)送數(shù)據(jù)塊程序:發(fā)送一個數(shù)據(jù)→查詢TI,直至TI=1→發(fā)送下一個數(shù)據(jù)。查詢方式接收數(shù)據(jù)塊程序:查詢RI,直至RI=1→讀入一個數(shù)據(jù)→查詢RI,直至RI=1→讀入下一個數(shù)據(jù)。(2)中斷方式發(fā)送數(shù)據(jù)塊程序:發(fā)送一個數(shù)據(jù)→等待中斷→在中斷程序中再發(fā)送下一個數(shù)據(jù)。中斷方式接收數(shù)據(jù)塊程序:等待中斷→在中斷程序中再接收一個數(shù)據(jù)。10.38051串行口的應(yīng)用0310.3.1利用串行口擴(kuò)展并行口單片機(jī)并行I/O口數(shù)量有限,當(dāng)并行口不夠使用時,可以利用串行口來擴(kuò)展并行口。8051系列單片機(jī)串行口方式0為移位寄存器方式,外接一個并入串出的移位寄存器,可以擴(kuò)展一個并行輸入口,如圖10-6所示;外接一個串入并出的移位寄存器,可以擴(kuò)展一個并行輸出口,如圖10-7所示。10.38051串行口的應(yīng)用0374LS165為并入串出移位寄存器,A、B、…、H為并行輸入端(A為高位),QH為串行數(shù)據(jù)輸出端,CLK為同步時鐘輸入端,S/L為預(yù)置控制端。S/L=0時,鎖存并行輸入數(shù)據(jù);S/L=1時,可進(jìn)行串行移位操作。74LS164為串入并出移位寄存器,其中A、B為串行數(shù)據(jù)輸入端,QA、QB、…、QH為并行數(shù)據(jù)輸出端(QA為高位),CLK為同步時鐘輸入端,CLR為輸出清0端。若不需將輸出數(shù)據(jù)清0,則CLR端接VCC。10.38051串行口的應(yīng)用CONTNTS10.4

串行通信總線標(biāo)準(zhǔn)及其接口04串行通信是將數(shù)據(jù)一位一位地傳送,它只需要一根數(shù)據(jù)線,硬件成本低,而且可使用現(xiàn)有通信信道(如電話),故在集散型控制系統(tǒng)(特別在遠(yuǎn)距離傳輸數(shù)據(jù)時),例如智能化控制儀表與上位機(jī)(IBM-PC機(jī)等)之間通常采用串行通信來完成數(shù)據(jù)的傳送。

常見的串行接口標(biāo)準(zhǔn)有RS-232C(recommendedstandard)、RS-422/485和20mA電流環(huán)等。PC上配置有COM1和COM2兩個串行接口,它們都采用了RS-232C標(biāo)準(zhǔn)。RS-232C是美國電子工業(yè)協(xié)會(electronicsindustringassociation,EIA)制定的一種國際通用的串行接口標(biāo)準(zhǔn)。它最初是為遠(yuǎn)程通信連接數(shù)據(jù)終端設(shè)備(dataterminalequipment,DTE)和數(shù)據(jù)通信設(shè)備(datacommunicationequipment,DCE)制定的標(biāo)準(zhǔn),目前已廣泛用做計(jì)算機(jī)與終端或外部設(shè)備的串行通信接口標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)規(guī)定了通信設(shè)備之間信號傳送的機(jī)械特性、信號功能、電氣特性及連接方式等。10.4串行通信總線標(biāo)準(zhǔn)及其接口041.機(jī)械特性及信號功能RS-232C的機(jī)械特性及引腳信號決定了微機(jī)與外部設(shè)備的連接方式,在PC中使用兩種連接器(插頭、插座)。一種是DB25連接器,如圖10-9(a)所示。它具有25條信號線,分兩排排列,1~13信號線為一排,14~25信號線為一排;RS-232C規(guī)定了兩個信道(即通信通道):主信道和輔助信道,另外有4個引腳未定義。輔助信道的傳輸速率比主信道慢,一般不使用。用于主信道的有15個引腳,見表10-5。另外一種是DB9連接器,如圖10-9(b)所示。它有9條信號線,也是分兩排排列,1~5信號線為一排,6~9信號線為一排,其功能見表10-5。RS-232C所能直接連接的最長通信距離不大于15m,最高通信速率為20000bps。040404在RS-232C定義的引腳信號中,用于異步串行通信的信號除了發(fā)送數(shù)據(jù)TXxD和接收數(shù)據(jù)RXD外,還有以下幾個聯(lián)絡(luò)信號?!?shù)據(jù)終端就緒DTR(dataterminalready):數(shù)據(jù)終端設(shè)備已準(zhǔn)備好?!?jù)設(shè)備就緒DSR(datasetready):數(shù)據(jù)通信設(shè)備已準(zhǔn)備好?!ふ埱蟀l(fā)送RTS(requesttosend):數(shù)據(jù)終端設(shè)備請求發(fā)送數(shù)據(jù)?!ぴ试S發(fā)送CTS(cleartosend):數(shù)據(jù)通信設(shè)備允許發(fā)送數(shù)據(jù)?!ぽd波檢測CD(carrieddetect):數(shù)據(jù)通信設(shè)備已檢測到數(shù)據(jù)線路上傳送的數(shù)據(jù)串?!ふ疋徶甘綬I(ringingindicator):數(shù)據(jù)通信設(shè)備已經(jīng)接收到電話交換機(jī)的撥號呼叫?!XC(transmitterclock):控制數(shù)據(jù)終端發(fā)送串行數(shù)據(jù)的時鐘信號?!XC(receiverclock):控制數(shù)據(jù)終端接收串行數(shù)據(jù)的時鐘信號?!けWo(hù)地:這是一個起屏蔽作用的接地端,一般連接到設(shè)備的外殼和機(jī)架上,必要時連接到大地。上述信號的作用是在數(shù)據(jù)終端設(shè)備和數(shù)據(jù)通信設(shè)備之間進(jìn)行聯(lián)絡(luò)。在計(jì)算機(jī)通信系統(tǒng)中,數(shù)據(jù)終端設(shè)備通常指計(jì)算機(jī)或終端,數(shù)據(jù)通信設(shè)備通常指調(diào)制解調(diào)器。042.電氣特性及連接方式RS-232C的電氣特性規(guī)定了各種信號傳輸?shù)倪壿嬰娖?,即EIA電平。對于TXD和RXD上的數(shù)據(jù)信號,采用負(fù)邏輯。用-3~-25V(通常為-3~-15V)表示邏輯“1”,用+3~+25V(通常為+3~+15V)表示邏輯“0”。對于DTR,DSR,RTS,CTS,CD等控制信號,規(guī)定:-3~-25V表示信號無效,即斷開(OFF),+3~+25V表示信號有效,即接通(ON)。顯然,采用RS-232C標(biāo)準(zhǔn)電平與計(jì)算機(jī)連接時,它與計(jì)算機(jī)采用的TTL電平不兼容。TTL是標(biāo)準(zhǔn)正邏輯,用+5V表示邏輯“1”,用0V表示邏輯“0”。因此,RS-232C的EIA電平與CPU的TTL電平連接時,必須進(jìn)行電平轉(zhuǎn)換。常見的電平轉(zhuǎn)換芯片有MC1488/MC1489和SN75150/SN75154。MC1488和SN75150芯片的功能是將TTL電平轉(zhuǎn)換為EIA電平,MC1489和SN75154芯片的功能是將EIA電平轉(zhuǎn)換為TTL電平。MC1488和MC1489的內(nèi)部結(jié)構(gòu)及引腳信號如圖10-10和圖10-11所示。MC1488芯片的2,4,5,9,10,12,13引腳用來輸入TTL電平,3,6,8,11引腳用來輸出EIA電平,引腳1接-12V,引腳14接+12V,7引腳接地。MC1489芯片1,4,10,13引腳用來輸入EIA電平,3,6,8,11引腳用來輸出TTL電平,2,5,9,12引腳接+5V,7引腳接地,14引腳接+5V。0404用MC1488和MC1489進(jìn)行EIA電平與TTL電平轉(zhuǎn)換的接口電路如圖10-12所示。電平轉(zhuǎn)換電路的一側(cè)是RS-232C連接器,另一側(cè)是計(jì)算機(jī)的串行接口(8250或16550)。計(jì)算機(jī)發(fā)送數(shù)據(jù)時,由串行接口發(fā)送端TXD送出TTL電平,經(jīng)MC1488轉(zhuǎn)換為RS-232C的EIA電平進(jìn)行發(fā)送。同樣的道理,計(jì)算機(jī)接收數(shù)據(jù)時,由MC1489將RS-232C送來的EIA電平轉(zhuǎn)換為TTL電平,經(jīng)串行接口接收端RXD送入計(jì)算機(jī)。隨著大規(guī)模數(shù)字集成電路的發(fā)展,目前有許多廠家已經(jīng)將MC1488和MC1489集成到一塊芯片上,如美國美信(MAXIM)公司的產(chǎn)品MAX220,MAX232和MAX232A。MAX232的內(nèi)部結(jié)構(gòu)及引腳信號如圖10-13所示。0404芯片內(nèi)集成了兩個發(fā)送驅(qū)動器和兩個接收緩沖器,同時還集成了兩個電源變換電路,其中一個升壓泵,將+5V提高到+10V,另一個則將+10V轉(zhuǎn)換成-10V。芯片為單一+5V電源供電。RS-232C通信接口的信號線有近距離和遠(yuǎn)距離兩種連接方法。近距離(傳輸距離小于15m)線路連接比較簡單,只需要三條信號線(TXD,RXD和GND),將通信雙方的TXD與RXD對接,地線連接即可。雙機(jī)近距離通信連接如圖10-14所示。04在進(jìn)行遠(yuǎn)距離通信時,通信線路使用公用電話網(wǎng),因?yàn)殡娫捑€上只能傳輸音頻模擬信號,而計(jì)算機(jī)傳送的是數(shù)字信號,故需要在通信雙方加MODEM進(jìn)行數(shù)字信號與模擬信號之間的轉(zhuǎn)換。雙機(jī)遠(yuǎn)距離通信連接如圖10-15所示。發(fā)送方將計(jì)算機(jī)發(fā)送的數(shù)字信號用調(diào)制器(modulator)轉(zhuǎn)換為模擬信號,送到電話線路上;接收方將接收到的模擬信號由解調(diào)器(demodulator)轉(zhuǎn)換為數(shù)字信號,送計(jì)算機(jī)處理。04DTR和DSR是一對握手信號,當(dāng)甲方計(jì)算機(jī)準(zhǔn)備就緒時,向MODEM發(fā)送DTR。乙方MODEM接收到DTR后,若同意通信,則向甲方計(jì)算機(jī)回送DSR,于是“握手”成功。RTS和CTS也是一對握手信號,當(dāng)甲方計(jì)算機(jī)準(zhǔn)備發(fā)送數(shù)據(jù)時,向MODEM發(fā)送RTS。乙方MODEM接收到RTS后,若同意接收,則向甲方計(jì)算機(jī)回送CTS,于是“握手”成功,甲方開始傳送數(shù)據(jù),乙方接收數(shù)據(jù)。0410.1.1RS-422與RS-485串行接口標(biāo)準(zhǔn)RS-232C串行接口為計(jì)算機(jī)與設(shè)備之間,以及計(jì)算機(jī)與計(jì)算機(jī)之間的串行通信提供了方便,但也存在一些缺點(diǎn),其中最主要的是:RS-232C只能一對一地通信,不借助于MODEM時,數(shù)據(jù)傳輸距離僅15m。究其原因,是因?yàn)镽S-232C采用的接口電路是單端驅(qū)動,單端接收,如圖10-16所示。當(dāng)距離增大時,兩端的信號地將存在電位差,從而引起共模干擾。而單端輸入的接收電路沒有任何抗共模干擾的能力,所以只有通過抬高信號電平幅度來保證傳輸?shù)目煽啃?。為了克服RS232C的缺點(diǎn),提出了RS422接口標(biāo)準(zhǔn),后來又出現(xiàn)了RS485接口標(biāo)準(zhǔn)。這兩種總線一般用于工業(yè)測控系統(tǒng)中。043.RS-422電氣規(guī)定RS-422標(biāo)準(zhǔn)全稱是“平衡電壓數(shù)字接口電路的電氣特性”,它定義了接口電路的特性。RS-422典型的四線接口電路如圖10-17所示。實(shí)際上還有一條信號地線,共五條線。由于接收器采用高輸入阻抗和發(fā)送驅(qū)動器,比RS232C具有更強(qiáng)的驅(qū)動能力,所以允許在相同傳輸線上連接多個接收節(jié)點(diǎn),最多可接10個節(jié)點(diǎn)。即一個主設(shè)備(master),其余為從設(shè)備(slave),從設(shè)備之間不能通信,所以RS422支持一點(diǎn)對多點(diǎn)的雙向通信。接收器輸入阻抗為4kW,故發(fā)送端最大負(fù)載能力是10×4kW+100W(終接電阻)。RS-422的最大傳輸距離為4000英尺(約1219m),最大傳輸速率為10Mbps。其平衡雙絞線的長度與傳輸速率成反比,在100kbps速率以下,才可能達(dá)到最大傳輸距離。只有在很短的距離下才能獲得最高速率傳輸。一般100m長的雙絞線上所能獲得的最大傳輸速率僅為1Mbps。044.RS-485電氣規(guī)定由于RS-422接口標(biāo)準(zhǔn)采用四線制,為了在距離較遠(yuǎn)的情況下進(jìn)一步節(jié)省電纜的費(fèi)用,推出了RS-485接口標(biāo)準(zhǔn)。RS-485接口標(biāo)準(zhǔn)采用兩線制。由于RS-485是從RS-422基礎(chǔ)上發(fā)展而來的,所以RS-485許多電氣規(guī)定與RS-422相似。如都采用平衡傳輸方式,都需要在傳輸線上接終接電阻等。RS-485與RS-422的不同在于其共模輸出電壓是不同的,RS-485是-7V至+12V之間,而RS-422在-7V至+7V之間;RS-485接收器最小輸入阻抗為12kW,而RS-422是4kW。它們的接口基本沒有區(qū)別,僅僅是RS-485在發(fā)送端增加了使能控制。因?yàn)镽S-485滿足所有RS-422的規(guī)范,所以RS-485驅(qū)動器可以在RS-422網(wǎng)絡(luò)中應(yīng)用。RS-485可以采用半雙工和全雙工通信方式,半雙工通信的芯片有SN75176,SN75276,MAX485等,全雙工通信的芯片有SN75179,SN75180,MAX488等。下面以MAX485和MAX488為例,介紹RS-485接口芯片的功能和接口電路。MAX485是8引腳雙列直插式芯片,單一+5V供電,支持半雙工通信方式,接收和發(fā)送的速率為2.5Mbps,最多可連接的標(biāo)準(zhǔn)節(jié)點(diǎn)數(shù)為32個。所謂節(jié)點(diǎn)數(shù),即每個RS485接口芯片的驅(qū)動器能驅(qū)動多少個標(biāo)準(zhǔn)RS-485負(fù)載。MAX485芯片的引腳信號及接口電路如圖10-18所示。0404·RO(receiveroutput):接收器輸出引腳。當(dāng)引腳A的電壓高于引腳B的電壓200mV時,RO引腳輸出高電平;當(dāng)引腳A的電壓低于引腳B的電壓200mV時,RO引腳輸出低電平。·RE(receiveroutputenable):接收器輸出使能引腳。當(dāng)RE為低電平時,RO輸出;當(dāng)RE為高電平時,RO處于高阻狀態(tài)?!E(driveroutputenable):發(fā)送器輸出使能引腳。當(dāng)DE引腳為高電平時,發(fā)送器引腳A和B輸出;當(dāng)DE引腳為低電平時,引腳A和B處于高阻狀態(tài)?!I(driverinput):發(fā)送器輸入引腳。當(dāng)DI為低電平時,引腳A為低電平,引腳B為高電平;當(dāng)DI為高電平時,引腳A為高電平,引腳B為低電平?!(noninvertingreceiverinputandnoninvertingdriveoutput):接收器輸入/發(fā)送器輸出“+”引腳?!(invertingreceiverinputandinvertingdriveoutput):接收器輸入/發(fā)送器輸出“-”引腳?!CC:芯片供電電源?!ND:芯片供電電源地。04MAX485芯片采用半雙工方式進(jìn)行多個RS-485接口通信時,電路連接簡單,只需要將各個接口的“+”端與“+”端相連、“-”端與“-”端相連,電路如圖10-18(b)所示。連接的兩條線就是RS-485的“物理總線”。這些相互連接的RS-485接口物理地位完全平等,在邏輯上取一個為主機(jī),其他的為從機(jī)。在通信時,同樣采用主機(jī)呼叫,從機(jī)應(yīng)答的方式。MAX489是14引腳雙列直插式芯片,單一+5V供電,支持全雙工通信方式,接收和發(fā)送速率為0.25Mbps,最多可連接的標(biāo)準(zhǔn)節(jié)點(diǎn)數(shù)為32個。MAX489的引腳信號及接口電路如圖10-19所示。04·RO:接收器輸出引腳。當(dāng)引腳A的電壓高于引腳B的電壓200mV時,RO引腳輸出高電平;當(dāng)引腳A的電壓低于引腳B的電壓200mV時,RO引腳輸出低電平?!E:接收器輸出使能引腳。當(dāng)RE為低電平時,RO輸出;當(dāng)RE為高電平時,RO處于高阻狀態(tài)。·DE:發(fā)送器輸出使能引腳。當(dāng)DE引腳為高電平時,發(fā)送器引腳Y和Z輸出;當(dāng)DE引腳為低電平時,引腳Y和Z處于高阻狀態(tài)。·DI:發(fā)送器輸入引腳。當(dāng)DI為低電平時,引腳Y為低電平,引腳Z為高電平;當(dāng)DI為高電平時,引腳Y為高電平,引腳Z為低電平?!(noninvertingdriveoutput):發(fā)送器輸出“+”引腳?!(invertingdriveoutput):發(fā)送器輸出“-”引腳?!(noninvertingreceiverinput):接收器輸入“+”引腳?!(invertingreceiverinput):接收器輸入“-”引腳?!CC:芯片供電電源?!ND:芯片供電電源地。·NC(noconnect)空腳,內(nèi)部沒有連接.CONTNTS10.5單片機(jī)與PC機(jī)通信的接口電路05利用PC機(jī)配置的異步通信適配器,可以很方便地完成PC機(jī)與單片機(jī)的數(shù)據(jù)通信。PC機(jī)與8051單片機(jī)最簡單的連接是零調(diào)制3線經(jīng)濟(jì)型,這是進(jìn)行全雙工通信所必須的最少數(shù)目的線路。要完成PC機(jī)與單片機(jī)的數(shù)據(jù)通信.必須進(jìn)行電平轉(zhuǎn)換,MAX232單芯片就可以實(shí)現(xiàn)8051單片機(jī)與PC機(jī)的RS-232C之間的電平轉(zhuǎn)換。RS-232接口是1970年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”該標(biāo)準(zhǔn)規(guī)定采用一個25個腳的DB25連接器,對連接器的每個引腳的信號內(nèi)容加以規(guī)定,還對各種信號的電平加以規(guī)定。DB25的串口一般只用到的管腳只有2(RXD)、3(TXD)、7(GND)這三個。隨著設(shè)備的不斷改進(jìn),現(xiàn)在DB25針很少看到了,代替它的是DB9的接口,DB9所用到的管腳比DB25有所變化,是2(RXD)、3(TXD)、5(GND)這三個。被廣泛用于計(jì)算機(jī)的串行接口(COM1、COM2等)與單片機(jī)或其它終端之間的近地連接。因此現(xiàn)在都把RS232接口叫做DB9。該標(biāo)準(zhǔn)在數(shù)據(jù)傳輸速率20Kbps時,最長的通信距離為15米。由于RS232接口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,主要有以下四點(diǎn):05接口的信號電平值較高,易損壞接口電路的芯片,又因?yàn)榕cTTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。傳輸速率較低,在異步傳輸時,波特率為20Kbps;因此在“南方的老樹51CPLD開發(fā)板”中,綜合程序波特率只能采用19200bps,也是這個原因。接口使用一根信號線和一根信號返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50英尺,實(shí)際上也只能用在50米左右。8051系列單片機(jī)上有UART(UniversalAsynchronousReceiver/Transmitter通用異步接收/發(fā)送)用于串行通信,發(fā)送數(shù)據(jù)時由TXD(P3.1)端送出,接收數(shù)據(jù)時由RXD(P3.0)端輸入。單片機(jī)內(nèi)部有兩個數(shù)據(jù)傳輸緩沖器SBUF,一個作為發(fā)送,一個作為接收。UART是可編程的全雙工串行口,短距離單片機(jī)之間通行可以直接互聯(lián),使用接口芯片MAX232可以接成RS-232接口與計(jì)算機(jī)COM口進(jìn)行通行。圖10-20是單片機(jī)常用的RS-232接口電路原路。05CONTNTS10.6常用的串行總線接口簡介061.I2C(InterIntegratedCircuit)I2C總線是Philips公司推出的芯片間串行傳輸總線。它用兩根線實(shí)現(xiàn)數(shù)據(jù)傳送,可以極為方便地構(gòu)成多機(jī)系統(tǒng)和外圍器件擴(kuò)展系統(tǒng)。I2C總線是二線制,采用器件地址的硬件設(shè)置方法,通過軟件尋址完全避免了器件的片選線尋址方法,從而使硬件系統(tǒng)具有簡單靈活的擴(kuò)展方法。I2C總線簡單,結(jié)構(gòu)緊湊,易于實(shí)現(xiàn)模塊化和標(biāo)準(zhǔn)化。I2C總線傳送速率主要有兩種:一種是標(biāo)準(zhǔn)S模式(100Kb/s),另一種是快速F模式(400Kb/s)。2.SPISPI總線是Motorola公司提出的一種同步串行外設(shè)接口。允許MCU與各種外圍設(shè)備以同步串行方式進(jìn)行通信。其外圍設(shè)備種類繁多:最簡單的TTL移位寄存器到復(fù)雜的LCD顯示驅(qū)動器、網(wǎng)絡(luò)控制器等。SPI總線是三線制,可直接與多種標(biāo)準(zhǔn)外圍器件直接接口,在SPI從設(shè)備較少而沒有總線擴(kuò)展能力的單片機(jī)系統(tǒng)中使用特別方便。即使在有總線擴(kuò)展能力的系統(tǒng)中采用SPI設(shè)備也可以簡化電路設(shè)計(jì),省掉很多常規(guī)電路中的接口器件,從而提高了設(shè)計(jì)的可靠性。063.MicrowareMicroware總線是NS公司提出的串行同步雙工通信接口,用于8位COP800系列單片機(jī)和16位HPC系列單片機(jī)。Microware總線是三線制,由一根數(shù)據(jù)輸出(SO)線、一根數(shù)據(jù)輸入(SI)線和一根時鐘(SK)線組成。所有從器件的時鐘線連接到同一根SK線上,主器件向SK線發(fā)送時鐘脈沖信號,從器件在時鐘信號的同步沿輸出/輸入數(shù)據(jù)。主器件的數(shù)據(jù)輸出線SO和所有從器件的數(shù)據(jù)輸入線相接,從器件的數(shù)據(jù)輸出線都接到主器件的數(shù)據(jù)輸入線SI上。4.單總線(1-wire)1-wire總線是Dallas公司研制開發(fā)的一種協(xié)議,用于便攜式儀表和現(xiàn)場監(jiān)控系統(tǒng)。1-wire總線是利用一根線實(shí)現(xiàn)雙向通信,由一個總線主節(jié)點(diǎn)、一個或多個從節(jié)點(diǎn)組成系統(tǒng),通過一根信號線對從芯片進(jìn)行數(shù)據(jù)的讀取。每一個符合1-wire協(xié)議的從芯片都有一個唯一的地址,包括8位分類碼、48位的序列號和8位CRC代碼。主芯片對各個從芯片的尋找依據(jù)這64位的不同來進(jìn)行。單總線節(jié)省I/O引腳資源、結(jié)構(gòu)簡單、成本低廉、便于總線擴(kuò)展和維護(hù)。065.USB(UniversalSerialBus)USB總線是Compaq、Intel、Microsoft、NEC等公司聯(lián)合制定的一種計(jì)算機(jī)串行通信協(xié)議。USB比較于其他傳統(tǒng)接口的一個優(yōu)勢是即插即用的實(shí)現(xiàn),即插即用(Plug-and-Play)也稱為熱插拔(HotPlugging)。數(shù)據(jù)傳輸速度快,USB1.1接口的最高傳輸率可達(dá)12Mb/s;USB2.0接口的最高傳輸率可達(dá)480Mb/s。擴(kuò)展方便,使用USBHub擴(kuò)展,可以連接127個USB設(shè)備,連接的方式十分靈活。6.CAN(ControllerAreaNetwork)CAN總線是德國Bosch公司最先提出的多主機(jī)局域網(wǎng),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。最初,CAN被設(shè)計(jì)作為汽車環(huán)境中的微控制器通信,在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網(wǎng)絡(luò)。比如:發(fā)動機(jī)管理系統(tǒng)、變速箱控制器、儀表裝備。在由CAN總線構(gòu)成的單一網(wǎng)絡(luò)中,理論上可以掛接無數(shù)個節(jié)點(diǎn)。實(shí)際應(yīng)用中,節(jié)點(diǎn)數(shù)目受網(wǎng)絡(luò)硬件的電氣特性所限制。CAN可提供高達(dá)1Mbit/s的數(shù)據(jù)傳輸速率,這使實(shí)時控制變得非常容易。另外,硬件的錯誤檢定特性也增強(qiáng)了CAN的抗電磁干擾能力。當(dāng)信號傳輸距離達(dá)到10km時,CAN仍可提供高達(dá)50Kbit/s的數(shù)據(jù)傳輸速率。CONTNTS10.7

實(shí)踐訓(xùn)練—單片機(jī)與單片機(jī)之間的串行通信07一個單片機(jī)的功能是有限的,將數(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

提交評論