單片微機5章-3_第1頁
單片微機5章-3_第2頁
單片微機5章-3_第3頁
單片微機5章-3_第4頁
單片微機5章-3_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微型計算機技術與應用 70課堂學時課堂學時+18實驗學時實驗學時 5.3 串行口串行口UART 根據(jù)根據(jù)CPU與外設之間連線結(jié)構(gòu)和數(shù)據(jù)發(fā)送方與外設之間連線結(jié)構(gòu)和數(shù)據(jù)發(fā)送方 式的不同,可將通信分為并行通信和串行通信兩式的不同,可將通信分為并行通信和串行通信兩 種基本方式。種基本方式。 圖 基本通信方式 (a) 并行通信 (b) 串行通信 n1. 串行通信的種類串行通信的種類 根據(jù)數(shù)據(jù)傳輸方式的不同,可將串行通信分為根據(jù)數(shù)據(jù)傳輸方式的不同,可將串行通信分為 同步通信和異步通信。同步通信和異步通信。 同步通信是一種數(shù)據(jù)連續(xù)傳輸?shù)拇型ㄐ欧绞?。同步通信是一種數(shù)據(jù)連續(xù)傳輸?shù)拇型ㄐ欧绞健?在這種通信方式

2、中,數(shù)據(jù)塊內(nèi)各字節(jié)數(shù)據(jù)之間沒有在這種通信方式中,數(shù)據(jù)塊內(nèi)各字節(jié)數(shù)據(jù)之間沒有 間隙,傳輸效率高,但發(fā)送、接收雙方必須保持同間隙,傳輸效率高,但發(fā)送、接收雙方必須保持同 步步(使用同一時鐘信號使用同一時鐘信號),且數(shù)據(jù)塊的長度越大,對,且數(shù)據(jù)塊的長度越大,對 同步的要求就越高。同步的要求就越高。 典型的同步通信數(shù)據(jù)幀格式如下所示:典型的同步通信數(shù)據(jù)幀格式如下所示: 異步通信的特點是每次只傳送一個字,每異步通信的特點是每次只傳送一個字,每 個字由起始位個字由起始位(規(guī)定為規(guī)定為0電平電平)、數(shù)據(jù)位、奇偶、數(shù)據(jù)位、奇偶 校驗位和停止位校驗位和停止位(規(guī)定為規(guī)定為1電平電平)組成,典型的組成,典型的 異

3、步通信數(shù)據(jù)幀格式如下所示:異步通信數(shù)據(jù)幀格式如下所示: n2. 波特率波特率 在串行通信系統(tǒng)中常用波特率來衡量通信的快在串行通信系統(tǒng)中常用波特率來衡量通信的快 慢。波特率的含義是每秒中傳送的二進制數(shù)碼的位慢。波特率的含義是每秒中傳送的二進制數(shù)碼的位 數(shù),單位是位數(shù),單位是位/秒秒(b/s或或Kb/s),簡稱,簡稱“波特波特”。 n3. 串行通信數(shù)據(jù)的傳輸方向串行通信數(shù)據(jù)的傳輸方向 根據(jù)串行通信數(shù)據(jù)的傳輸方向,可將串行通信根據(jù)串行通信數(shù)據(jù)的傳輸方向,可將串行通信 系統(tǒng)分為系統(tǒng)分為單工方式單工方式、半雙工方式半雙工方式和和全雙工方式全雙工方式。 n一方發(fā)送,另一方接收,是一方發(fā)送,另一方接收,是“

4、單工單工”通信方式;通信方式; n分時收、發(fā)數(shù)據(jù)分時收、發(fā)數(shù)據(jù)(即發(fā)送時,不接收;接收時,不發(fā)即發(fā)送時,不接收;接收時,不發(fā) 送送),是,是“半雙工半雙工”通信方式。通信方式。 n同時接收和發(fā)送,是同時接收和發(fā)送,是“全雙工全雙工”通信方式。通信方式。 (a) 單工方式;(b) 半雙工方式;(c) 全雙工方式 n4. 串行通信接口的種類串行通信接口的種類 根據(jù)串行通信格式及約定根據(jù)串行通信格式及約定(如同步方式、如同步方式、 通信速率、信號電平等通信速率、信號電平等)的不同,派生出不同的不同,派生出不同 的串行通信接口標準,如常見的的串行通信接口標準,如常見的RS-232、 RS-422、RS

5、-485、IEEE1394、I2C、 SPI(同步通信同步通信)、USB(通用串行總線接口通用串行總線接口)和和 CAN總線接口等??偩€接口等。 5.3.1 串行口的組成和特性串行口的組成和特性 主要由兩個物理上完全獨立的串行接收緩主要由兩個物理上完全獨立的串行接收緩 沖器和串行發(fā)送緩沖器、接收控制器沖器和串行發(fā)送緩沖器、接收控制器(包括輸包括輸 入移位寄存器入移位寄存器)、發(fā)送控制器及發(fā)送門電路等、發(fā)送控制器及發(fā)送門電路等 部件組成,串行數(shù)據(jù)從部件組成,串行數(shù)據(jù)從TXD(P3.1)引腳輸出,引腳輸出, 從從RXD(P3.0)引腳輸入,其內(nèi)部結(jié)構(gòu)如下圖引腳輸入,其內(nèi)部結(jié)構(gòu)如下圖 所示。所示。

6、MCS-51串行通信接口內(nèi)部結(jié)構(gòu) 在在MCS-51芯片中,串行接收緩沖器和串行發(fā)送芯片中,串行接收緩沖器和串行發(fā)送 緩沖器使用同一特殊功能寄存器名緩沖器使用同一特殊功能寄存器名SBUF(字節(jié)地址字節(jié)地址 為為99H),但它們是兩個不同的物理寄存器。由于串,但它們是兩個不同的物理寄存器。由于串 行接收緩沖器只能讀出,不能寫入,因此讀行接收緩沖器只能讀出,不能寫入,因此讀SBUF 寄存器時,操作對象是串行接收緩沖器;而串行發(fā)寄存器時,操作對象是串行接收緩沖器;而串行發(fā) 送緩沖器正好相反,即只能寫入,不能讀出,因此送緩沖器正好相反,即只能寫入,不能讀出,因此 寫寫SBUF寄存器時,操作對象是串行發(fā)送

7、緩沖器。寄存器時,操作對象是串行發(fā)送緩沖器。 在在MCS-51中,與串行通信控制有關的寄中,與串行通信控制有關的寄 存器為串行通信接口控制寄存器存器為串行通信接口控制寄存器SCON(選擇選擇 串行通信接口工作方式串行通信接口工作方式)和電源控制寄存器和電源控制寄存器 PCON的的SMOD1位位(發(fā)送、接收波特率倍增發(fā)送、接收波特率倍增 控制位控制位)。 一、串行通信接口控制寄存器一、串行通信接口控制寄存器SCON 字節(jié)地址字節(jié)地址98H98H,可位尋址,可位尋址 圖圖4-23 SCON各位含義各位含義 (1 1)SM0SM0、SM1SM1串行口串行口4種工作方式的選擇位種工作方式的選擇位 SM

8、0 SM1 SM0 SM1 方式方式 功功 能能 說說 明明 0 0 0 0 0 0 同步移位寄存器方式(用于擴展同步移位寄存器方式(用于擴展I/OI/O口)口) 0 1 0 1 1 1 8 8位異步收發(fā),波特率可變(由定時器控制)位異步收發(fā),波特率可變(由定時器控制) 1 0 1 0 2 2 9 9位異步收發(fā),波特率為位異步收發(fā),波特率為fosc/64fosc/64或或fosc/32fosc/32 1 1 1 1 3 3 9 9位異步收發(fā),波特率可變(由定時器控制)位異步收發(fā),波特率可變(由定時器控制) (2 2)SM2 SM2 多機通信控制位多機通信控制位 用于方式用于方式2 2或方式或方

9、式3 3中。中。 當串行口以當串行口以方式方式2 2或方式或方式3 3接收時接收時: 如果如果SM2=1SM2=1 只有當接收到的第只有當接收到的第9 9位數(shù)據(jù)(位數(shù)據(jù)(RB8RB8)為)為“1”1”時,時,才才 將接收到的前將接收到的前8 8位數(shù)據(jù)送入位數(shù)據(jù)送入SBUFSBUF,并置并置“1” RI1” RI,產(chǎn),產(chǎn) 生中斷請求;生中斷請求; 當接收到的第當接收到的第9 9位數(shù)據(jù)(位數(shù)據(jù)(RB8RB8)為)為“0”0”時時,則將接,則將接 收到的前收到的前8 8位數(shù)據(jù)丟棄。位數(shù)據(jù)丟棄。 如果如果SM2=0 則不論第則不論第9 9位數(shù)據(jù)是位數(shù)據(jù)是“1”1”還是還是“0”0”,都將,都將 前前8

10、 8位數(shù)據(jù)送入位數(shù)據(jù)送入SBUFSBUF中,并置中,并置“1” RI1” RI,產(chǎn)生,產(chǎn)生 中斷請求。中斷請求。 方式方式1 1時,如果時,如果SM2=1SM2=1,則只有收到停止位時才,則只有收到停止位時才 會激活會激活RIRI。 方式方式0 0時,時,SM2SM2必須為必須為0 0。 (3 3)RENREN允許串行接收位允許串行接收位 由軟件置由軟件置“1 1”或清或清“0 0”。 REN=1 REN=1 允許串行口接收數(shù)據(jù)。允許串行口接收數(shù)據(jù)。 REN=0 REN=0 禁止串行口接收數(shù)據(jù)。禁止串行口接收數(shù)據(jù)。 (4 4)TB8TB8發(fā)送的第發(fā)送的第9 9位數(shù)據(jù)位數(shù)據(jù) 方式方式2 2和和3

11、 3時,時,TB8TB8是要發(fā)送的第是要發(fā)送的第9 9位數(shù)據(jù),可作為位數(shù)據(jù),可作為 奇偶校驗位奇偶校驗位使用,也可作為使用,也可作為地址幀地址幀或或數(shù)據(jù)幀數(shù)據(jù)幀的標志。的標志。 TB8 =1TB8 =1為地址幀為地址幀, , TB8 = 0TB8 = 0為數(shù)據(jù)幀為數(shù)據(jù)幀 (5 5)RB8RB8接收到的第接收到的第9 9位數(shù)據(jù)位數(shù)據(jù) 方式方式2 2和和3 3時,時,RB8RB8存放接收到的第存放接收到的第9 9位數(shù)位數(shù) 據(jù);。在據(jù);。在方式方式1 1,如果,如果SM2=0SM2=0,RB8RB8是接收到的是接收到的 停止位。在停止位。在方式方式0 0,不使用,不使用RB8RB8。 (6 6)TI

12、TI發(fā)送中斷標志位發(fā)送中斷標志位 方式方式0 0時:時:串行發(fā)送第串行發(fā)送第8 8位數(shù)據(jù)結(jié)束時由硬件置位數(shù)據(jù)結(jié)束時由硬件置1 1 其它工作方式其它工作方式: 串行口發(fā)送停止位的開始時置串行口發(fā)送停止位的開始時置“1”1”。TI=1TI=1, 表示一幀數(shù)據(jù)發(fā)送結(jié)束,可供軟件查詢,也可申表示一幀數(shù)據(jù)發(fā)送結(jié)束,可供軟件查詢,也可申 請中斷。請中斷。CPUCPU響應中斷后響應中斷后, , 向向SBUFSBUF寫入要發(fā)送的寫入要發(fā)送的 下一幀數(shù)據(jù)。下一幀數(shù)據(jù)。TITI必須由軟件清必須由軟件清0 0。 (7)RI接收中斷標志位接收中斷標志位 方式方式0時,時, 接收完第接收完第8位數(shù)據(jù)時,位數(shù)據(jù)時,RIR

13、I由硬件置由硬件置1。 其它工作方式,其它工作方式, 串行接收到停止位時,該位置串行接收到停止位時,該位置“1”。RIRI=1, 表示一幀數(shù)據(jù)接收完畢,并申請中斷表示一幀數(shù)據(jù)接收完畢,并申請中斷 。該位。該位 狀態(tài)也可軟件查詢。狀態(tài)也可軟件查詢。RIRI必須由軟件清必須由軟件清“0”。 二、波特率倍增選擇二、波特率倍增選擇 特殊功能寄存器特殊功能寄存器PCONPCON 字節(jié)地址為字節(jié)地址為87H87H,沒有位尋址功能。,沒有位尋址功能。 SMOD:波特率選擇位,也稱波特率選擇位,也稱波特率倍增位波特率倍增位。 。 5.3.2 串行口的工作方式串行口的工作方式 二、方式方式1 SM0、SM1=0

14、1 方式方式1一幀數(shù)據(jù)一幀數(shù)據(jù)為為10位,先發(fā)送或接收最低位,先發(fā)送或接收最低 位位 方式方式1波特率波特率 =(2SMOD/32)定時器定時器T1的溢出率的溢出率 SMOD為為PCON寄存器的最高位的值(寄存器的最高位的值(0或或1)。)。 1 1方式方式1 1發(fā)送發(fā)送 方式方式1 1輸出時,數(shù)據(jù)由輸出時,數(shù)據(jù)由TXDTXD輸出輸出 當執(zhí)行一條數(shù)據(jù)寫發(fā)送緩沖器當執(zhí)行一條數(shù)據(jù)寫發(fā)送緩沖器SBUFSBUF的指令,的指令, 就啟動發(fā)送。圖中就啟動發(fā)送。圖中TXTX時鐘的頻率就是發(fā)送的波時鐘的頻率就是發(fā)送的波 特率。特率。 發(fā)送開始時,內(nèi)部發(fā)送開始時,內(nèi)部發(fā)送控制信號變?yōu)橛行?。發(fā)送控制信號變?yōu)橛行А?/p>

15、 將起始位向?qū)⑵鹗嘉幌騎XDTXD輸出,此后,每經(jīng)過一個輸出,此后,每經(jīng)過一個TXTX時時 鐘周期,便產(chǎn)生一個移位脈沖,并由鐘周期,便產(chǎn)生一個移位脈沖,并由TXDTXD輸出輸出 一個數(shù)據(jù)位。一個數(shù)據(jù)位。8 8位數(shù)據(jù)位全部發(fā)送完畢后,置位數(shù)據(jù)位全部發(fā)送完畢后,置 “1 1” TITI。方式。方式1 1發(fā)送數(shù)據(jù)的時序,如圖所示。發(fā)送數(shù)據(jù)的時序,如圖所示。 方式方式1發(fā)送時序發(fā)送時序 2 2方式方式1 1接收接收 數(shù)據(jù)從數(shù)據(jù)從RXDRXD(P3.0P3.0)腳輸入。當檢測到起始位的)腳輸入。當檢測到起始位的 負跳變時,開始接收數(shù)據(jù)。負跳變時,開始接收數(shù)據(jù)。 定時控制信號有兩種定時控制信號有兩種:接收

16、移位時鐘接收移位時鐘(RXRX時鐘,時鐘, 頻率和波特率相同)和頻率和波特率相同)和位檢測器采樣脈沖位檢測器采樣脈沖(頻率是(頻率是RXRX 時鐘的時鐘的1616倍,倍,1 1位數(shù)據(jù)期間,有位數(shù)據(jù)期間,有1616個采樣脈沖),當個采樣脈沖),當 采樣到采樣到RXDRXD端從端從1 1到到0 0的跳變時就啟動檢測器,的跳變時就啟動檢測器,接收的接收的 值是值是3 3次連續(xù)采樣(第次連續(xù)采樣(第7 7、8 8、9 9個脈沖時采樣)個脈沖時采樣)進行進行表表 決決以以確認是否是真正的起始位確認是否是真正的起始位(負跳變)的開始。(負跳變)的開始。 當一幀數(shù)據(jù)接收完,須同時滿足兩個條件,接收才當一幀數(shù)

17、據(jù)接收完,須同時滿足兩個條件,接收才 真正有效。真正有效。 RIRI=0=0,即上一幀數(shù)據(jù)接收完成時,即上一幀數(shù)據(jù)接收完成時,RIRI=1=1發(fā)出的中發(fā)出的中 斷請求已被響應,斷請求已被響應,SBUFSBUF中的數(shù)據(jù)已被取走,說明中的數(shù)據(jù)已被取走,說明 “接收接收SBUFSBUF”已空。已空。 SM2=0SM2=0或或收到的停止位收到的停止位=1=1(方式(方式1 1時,停止位已進時,停止位已進 入入RB8RB8),則收到的數(shù)據(jù)裝入),則收到的數(shù)據(jù)裝入SBUFSBUF和和RB8RB8(RB8RB8裝入裝入 停止位),且置停止位),且置“1 1”中斷標志中斷標志RIRI。 若這兩個條件不同時滿足

18、,收到的數(shù)據(jù)將丟失。若這兩個條件不同時滿足,收到的數(shù)據(jù)將丟失。 n二、方式二、方式2 2 9 9位位異步通信接口。異步通信接口。每幀數(shù)據(jù)均為每幀數(shù)據(jù)均為1111位位,1 1位起位起 始位始位0 0,8 8位數(shù)據(jù)位(先低位),位數(shù)據(jù)位(先低位),1 1位可程控的第位可程控的第9 9位位 數(shù)據(jù)和數(shù)據(jù)和1 1位停止位。幀格式如下。位停止位。幀格式如下。 方式方式2波特率波特率 = ( (2SMOD /64)fosc 1方式方式2發(fā)送發(fā)送 發(fā)送前,先根據(jù)通訊協(xié)議由軟件發(fā)送前,先根據(jù)通訊協(xié)議由軟件設置設置TB8TB8 (例如,雙機通訊時的奇偶校驗位或多機通(例如,雙機通訊時的奇偶校驗位或多機通 訊時的地

19、址訊時的地址/ /數(shù)據(jù)的標志位)。數(shù)據(jù)的標志位)。 方式方式2 2發(fā)送數(shù)據(jù)波形如圖所示。發(fā)送數(shù)據(jù)波形如圖所示。 方式方式2發(fā)送數(shù)據(jù)波形發(fā)送數(shù)據(jù)波形 2 2方式方式2 2接收接收 SM0SM0、SM1=10SM1=10,且且REN=1REN=1。數(shù)據(jù)由。數(shù)據(jù)由RXDRXD端輸入,接收端輸入,接收 1111位信息。位信息。 當位檢測到當位檢測到RXDRXD從從1 1到到0 0的負跳變,并判斷起始位有的負跳變,并判斷起始位有 效后,開始收一幀信息。效后,開始收一幀信息。 在接收器完第在接收器完第9 9位數(shù)據(jù)后,位數(shù)據(jù)后,需滿足兩個條件需滿足兩個條件,才能,才能 將接收到的數(shù)據(jù)送入將接收到的數(shù)據(jù)送入S

20、BUFSBUF。 (1 1)RIRI=0=0,意味著接收緩沖器為空。,意味著接收緩沖器為空。 (2 2)SM2=0SM2=0或或接收到的第接收到的第9 9位數(shù)據(jù)位位數(shù)據(jù)位RB8=1RB8=1時時。 當上述兩個條件滿足時,接收到的數(shù)據(jù)送入當上述兩個條件滿足時,接收到的數(shù)據(jù)送入SBUF (接收緩沖器),(接收緩沖器),第第9位數(shù)據(jù)送入位數(shù)據(jù)送入RB8,并置,并置“1”RI I。 若不滿足兩個條件,接收的信息將被丟棄。若不滿足兩個條件,接收的信息將被丟棄。 方式方式2接收數(shù)據(jù)的時序如圖所示。接收數(shù)據(jù)的時序如圖所示。 三、方式三、方式3 3 SM0SM0、SM1=11SM1=11,串口為方式,串口為方

21、式3 3。 波特率可變的波特率可變的9 9位異步通訊方式,位異步通訊方式,除波特除波特 率外,方式率外,方式3 3和方式和方式2 2相同。相同。方式方式3 3的時序見方的時序見方 式式2 2。 方式方式3 3波特率波特率= = (2 2SMOD SMOD/32 /32)定時器定時器T1T1的溢出率的溢出率 四、方式四、方式0 同步移位寄存器輸入同步移位寄存器輸入/ /輸出方式輸出方式,常用于外接,常用于外接 移位寄存器,以擴展并行移位寄存器,以擴展并行I/OI/O口???。 8 8位數(shù)據(jù)為一幀,不設起始位和停止位,先發(fā)位數(shù)據(jù)為一幀,不設起始位和停止位,先發(fā) 送或接收最低位。送或接收最低位。 波特

22、率固定為波特率固定為fosc/12fosc/12。幀格式如下:。幀格式如下: 串行口方式串行口方式0操作時序操作時序 1. 方式方式0 0輸出輸出 當當CPUCPU執(zhí)行一條將數(shù)據(jù)寫入發(fā)送緩沖器執(zhí)行一條將數(shù)據(jù)寫入發(fā)送緩沖器SBUFSBUF的的 指令時,產(chǎn)生一個正脈沖,串行口即把指令時,產(chǎn)生一個正脈沖,串行口即把SBUFSBUF中的中的 8 8位數(shù)據(jù)以位數(shù)據(jù)以fosc/12fosc/12的固定波特率從的固定波特率從RXDRXD引腳串行引腳串行 輸出輸出,低位在先。,低位在先。 TXDTXD引腳輸出同步移位脈沖引腳輸出同步移位脈沖。 發(fā)送完發(fā)送完8 8位數(shù)據(jù)置位數(shù)據(jù)置“1 1”中斷標志位中斷標志位T

23、ITI。時序如。時序如 圖所示。圖所示。 方式方式0發(fā)送時序發(fā)送時序 例:方式例:方式0應用。外接串入并出移位寄存器,如應用。外接串入并出移位寄存器,如74LS164。 工作過程:工作過程:CPU對發(fā)送數(shù)據(jù)緩沖器對發(fā)送數(shù)據(jù)緩沖器SBUF寫入一個數(shù)據(jù),就啟寫入一個數(shù)據(jù),就啟 動串行口從低位開始串行發(fā)送,經(jīng)過動串行口從低位開始串行發(fā)送,經(jīng)過8個機器周期,串行口個機器周期,串行口 輸出數(shù)據(jù)緩沖器內(nèi)容移入外部的移位寄存器輸出數(shù)據(jù)緩沖器內(nèi)容移入外部的移位寄存器74LS164,置位,置位 T1,串行口停止移位,完成一個字節(jié)輸出。,串行口停止移位,完成一個字節(jié)輸出。 圖5-36 方式0輸出:連接移位寄存器

24、例例5.16 圖圖5-37中,串行口外接兩個中,串行口外接兩個74LS164, 164的輸出接指示燈的輸出接指示燈L0L15. 下面為刷新指示燈函數(shù)。下面為刷新指示燈函數(shù)。 圖圖5-37 串行口方式串行口方式0輸出應用輸出應用 Led2(unsigned int x) SBUF=x for(;TI=0;); TI=0; SBUF=x8; for(;TI=0;); TI=0; 5.3.3 波特率 一、方式一、方式0波特率波特率 方式方式0波特率波特率=振蕩器頻率振蕩器頻率/12; 二、方式二、方式2波特率波特率 方式方式2波特率波特率= X振蕩器頻率振蕩器頻率/64; 三、方式三、方式1和方式和

25、方式3的波特率的波特率 串行口方式串行口方式1和方式和方式3的波特率由定時器的波特率由定時器T1或或 T2的溢出率和的溢出率和SMOD所確定。所確定。 SMOD 2 1.用定時器用定時器T1產(chǎn)生波特率產(chǎn)生波特率 方式方式1和方式和方式3波特率波特率= X(T1溢出率)溢出率)/32 定時器定時器T1作波特率發(fā)生器時,應禁止作波特率發(fā)生器時,應禁止T1中斷,中斷, T1工作于定時方式,一般工作于方式工作于定時方式,一般工作于方式2,此時波,此時波 特率計算公式為:特率計算公式為: 方式方式1和方式和方式3波特率波特率= X振蕩器頻率振蕩器頻率/32X12(256-(TH1) SMOD 2 SMO

26、D 2 2.用定時器用定時器T2產(chǎn)生波特率產(chǎn)生波特率 當當TCLK=1,RCLK=1時,時,T2作為串行口波特率發(fā)生器:作為串行口波特率發(fā)生器: 圖圖5-41 T2波特率發(fā)生器方式結(jié)構(gòu)波特率發(fā)生器方式結(jié)構(gòu) 方式方式1和方式和方式3波特率波特率 =振蕩器頻率振蕩器頻率/3265536-(RCAP2H)(RCAP2L) 用定時器用定時器T2產(chǎn)生波特率時:產(chǎn)生波特率時: 5.3.4 多機通信原理多機通信原理 1. 標準標準MCS-51多機通信過程多機通信過程 多機系統(tǒng)是主從式,由主機控制多機之間的通多機系統(tǒng)是主從式,由主機控制多機之間的通 信,從機和從機的通訊只能經(jīng)主機才能實現(xiàn)信,從機和從機的通訊只

27、能經(jīng)主機才能實現(xiàn), ,主機主機 可以與任一從機通信。可以與任一從機通信。 主機和從機只能工作在方式主機和從機只能工作在方式2 2或方式或方式3 3中,主機中,主機 的的SM2SM2位必須為位必須為0 0,以確保主機能夠接收從機發(fā)送的,以確保主機能夠接收從機發(fā)送的 地址信息地址信息( (第第9 9位為位為1)1)和數(shù)據(jù)信息和數(shù)據(jù)信息( (第第9 9位為位為0)0)。 圖圖5-42 由由MCS-51構(gòu)成的多機通信系統(tǒng)構(gòu)成的多機通信系統(tǒng) n主機發(fā)出的信息有兩類:主機發(fā)出的信息有兩類: 地址信息地址信息(用于確定與主機通信的從機地址,特征用于確定與主機通信的從機地址,特征 是發(fā)送的第是發(fā)送的第9位位T

28、B8為為1) 數(shù)據(jù)信息數(shù)據(jù)信息(發(fā)送的第發(fā)送的第9位位TB8位為位為0),即在多機通信,即在多機通信 系統(tǒng)中,方式系統(tǒng)中,方式2、3只有只有8位數(shù)據(jù),第位數(shù)據(jù),第9位位(即即TB8)是是 地址地址/數(shù)據(jù)標志位。數(shù)據(jù)標志位。 n在監(jiān)聽階段,從機的在監(jiān)聽階段,從機的SM2位為位為1,以便接收主機發(fā),以便接收主機發(fā) 出的地址信息,當發(fā)現(xiàn)主機送出的地址與本機地址出的地址信息,當發(fā)現(xiàn)主機送出的地址與本機地址 相同時,即認為主機要與自己通信。相同時,即認為主機要與自己通信。 主機與特定從機的通信過程如下:主機與特定從機的通信過程如下: (1) 主機發(fā)送地址信息主機發(fā)送地址信息(TB8位為位為1),然后進入

29、接收狀,然后進入接收狀 態(tài),接收從機應答信號態(tài),接收從機應答信號(實際上就是相應從機的地址信實際上就是相應從機的地址信 息息)。 (2) 所有從機均接收主機發(fā)出的地址信息,并與所有從機均接收主機發(fā)出的地址信息,并與 本機地址比較,當接收到的地址信息與本機地本機地址比較,當接收到的地址信息與本機地 址相符時,表示被選中。被選中的從機址相符時,表示被選中。被選中的從機將本將本 機地址信息發(fā)給主機,機地址信息發(fā)給主機,使使SM2位為位為0,以便接,以便接 收主機隨后送出的數(shù)據(jù)信息。收主機隨后送出的數(shù)據(jù)信息。 對于未被選中的從機,對于未被選中的從機,SM2位依然為位依然為1,不,不 接收主機送出的數(shù)據(jù)

30、信息。接收主機送出的數(shù)據(jù)信息。 主機與特定從機的通信過程如下:主機與特定從機的通信過程如下: (1) 主機發(fā)送地址信息主機發(fā)送地址信息(TB8位為位為1),然后進入,然后進入 接收狀態(tài),接收從機應答信號接收狀態(tài),接收從機應答信號(實際上就是接實際上就是接 收相應從機的地址信息收相應從機的地址信息)。 (2) 所有從機均接收主機發(fā)出的地址信息,并所有從機均接收主機發(fā)出的地址信息,并 與本機地址比較,當接收到的地址信息與本與本機地址比較,當接收到的地址信息與本 機地址相符時,表示被選中。機地址相符時,表示被選中。 被選中的從機將本機地址信息發(fā)給主機,被選中的從機將本機地址信息發(fā)給主機, 同時將自己

31、的同時將自己的SM2位為位為0,以便接收主機隨后,以便接收主機隨后 送出的數(shù)據(jù)信息。送出的數(shù)據(jù)信息。 未被選中的從機,未被選中的從機,SM2位依然為位依然為1,不接,不接 收主機送出的數(shù)據(jù)信息。收主機送出的數(shù)據(jù)信息。 (4) 從機正確接收主機數(shù)據(jù)信息后,發(fā)送應答從機正確接收主機數(shù)據(jù)信息后,發(fā)送應答 信號給主機,并將信號給主機,并將SM2置置1,主機與從機通信,主機與從機通信 過程結(jié)束。過程結(jié)束。 (3) 主機收到從機的應答信號后,發(fā)出數(shù)據(jù)主機收到從機的應答信號后,發(fā)出數(shù)據(jù) 信息信息(TB8位為位為0)。 從機與主機的通信過程如下:從機與主機的通信過程如下: (1) 發(fā)送前,從機先檢測發(fā)送前,從

32、機先檢測TXD引腳,如果在引腳,如果在 特定時間特定時間(20/波特率波特率)內(nèi),內(nèi),TXD引腳依然為高引腳依然為高 電平,則表明沒有其他從機給主機發(fā)送信息,電平,則表明沒有其他從機給主機發(fā)送信息, 主機的主機的RXD引腳處于空閑狀態(tài)。引腳處于空閑狀態(tài)。 (2) 從機確認主機的從機確認主機的RXD引腳處于空閑狀態(tài)引腳處于空閑狀態(tài) 后,發(fā)出地址信息后,發(fā)出地址信息(TB8位為位為1)到主機。到主機。 (3) 從機收到主機的應答信號從機收到主機的應答信號(實際是從機的地實際是從機的地 址信息址信息)后,后,發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)( TB8位為位為0 )給主機給主機, 然后令本機的然后令本機的SM2為為0

33、,以便接收主機發(fā)送的,以便接收主機發(fā)送的 接收確認信號。接收確認信號。 (4) 主機正確接收后,再發(fā)送接收確認信號給從機。主機正確接收后,再發(fā)送接收確認信號給從機。 當從機收到主機發(fā)來的當從機收到主機發(fā)來的“接收正確接收正確”信號,則信號,則 表明通信過程結(jié)束,這時可將表明通信過程結(jié)束,這時可將SM2位置位置1,以便,以便 從機能接收主機發(fā)送的地址信息。從機能接收主機發(fā)送的地址信息。 2. MCS-51的地址自動識別技術的地址自動識別技術 n在方式在方式2、3中,中,SM2位作為多機通信控制位。當位作為多機通信控制位。當SM2 位為位為1時,只有收到第時,只有收到第9位數(shù)據(jù)位數(shù)據(jù)(從機地址碼標

34、志從機地址碼標志),即,即 RB8為為1時,時,RIRI才有效;而當才有效;而當SM2位為位為0時,則無論第時,則無論第 9位數(shù)據(jù)為位數(shù)據(jù)為1還是還是0,RIRI均有效,即放棄了地址識別功均有效,即放棄了地址識別功 能,統(tǒng)統(tǒng)視為數(shù)據(jù)處理。能,統(tǒng)統(tǒng)視為數(shù)據(jù)處理。 n采用硬件地址自動識別技術后,只要從機的采用硬件地址自動識別技術后,只要從機的SM2位為位為 1,則收到的第一幀信息必然是本機的地址信息,可,則收到的第一幀信息必然是本機的地址信息,可 立即將從機的立即將從機的SM2位清零,接收主機隨后送來的數(shù)據(jù)位清零,接收主機隨后送來的數(shù)據(jù) 信息,無需判別所收到的地址信息是否是本機地址。信息,無需判別

35、所收到的地址信息是否是本機地址。 5.3.5 串行口的應用和編程串行口的應用和編程 一、串行口應用一、串行口應用 圖圖5-43 兩個單片機之間的兩個單片機之間的TTL電平串行通信電平串行通信 圖圖5-44 單片機和單片機和PC機的通信機的通信 二、串行口編程二、串行口編程 例例5.17 試編寫一個程序,其功能為對串行口初始化試編寫一個程序,其功能為對串行口初始化 為方式為方式1,f為為11.0592MHz,波特率為,波特率為9600, 首先在串行口上輸出字符串首先在串行口上輸出字符串“AT89C52 Microcomputer”,接著讀串行口上輸入的字,接著讀串行口上輸入的字 符,又將該字符從

36、串行口上輸出。符,又將該字符從串行口上輸出。 #include reg52.h #define uchar unsigned char #define uint unsigned int uchar code OUT_S=AT89C52 Microcomputerrn; init_sys() TMOD=0 x20; TH1=0 xfd; TL1=0 xfd; TR1=1; SCON=0 x52; out_s_1() uchar *p1; p1=OUT_S; for(;) if (*p1!=0) for (;TI=0;); TI=0; SBUF=*p1; p1+; else return ; i

37、n_out() uchar a; for(;) for( ;RI=0;); RI=0; a=SBUF; for(;TI=0;); TI=0; SBUF=a; main() init_sys(); out_s_1(); in_out(); for(;); 例例5.18 設設f =11.0592MHz,編寫一個單片機用串,編寫一個單片機用串 行口和行口和PC機的通信實驗程序,其功能為首先機的通信實驗程序,其功能為首先 向向PC機輸出機輸出AT89C52READY,然后接收,然后接收PC 機的單字節(jié)命令,其合法命令為機的單字節(jié)命令,其合法命令為A、B、C、 D、E、F,若收到合法命令回答,若收到合法

38、命令回答CMD_命令命令 符符OK!,收到非法命令回答!,收到非法命令回答CMD Err!。 #include reg52.h #include stdio.h #define uint unsigned int #define uchar unsigned char uchar bdata FLAG; sbit MCMD=FLAG0; sbit ESO=FLAG1; sbit ESI=FLAG2; uchar idata SBFR16; uchar idata *PTR; uchar code C_A=CMD_ A OK !n; uchar code C_B=CMD_B OK !n ; uc

39、har code C_C=CMD_C OK !n ; uchar code C_D=CMD_D OK !n ; uchar code C_E=CMD_E OK !n ; uchar code C_F=CMD_F OK !n ; uchar code Err=CMD Err !n ; init_sys() TMOD=0 x20; TH1=0 xfd; TL1=0 xfd; TR1=1; SCON=0 x52; PCON=0 x80; printf(“%sr AT89C52READYnn”); IE=0 x90; ESI=1; ESO=0; PTR=SBFR; p_ms(uchar *p) PTR

40、=SBFR; do *PTR=*p; p+; PTR+; while (*p!=0); *PTR=*p; p_mcmd() uchar a; a=SBFR0; switch(a) case A: p_ms(C_A); break; case B: p_ms(C_B); break; case C: p_ms(C_C); break; case D: p_ms(C_D); break; case E: p_ms(C_E); break; case F: p_ms(C_F); break; default: p_ms(Err); break; PTR=SBFR; ESI=0; ESO=1; TI=

41、1; main() init_sys(); while(1) for(;MCMD=0;); MCMD=0; p_mcmd(); void serial() interrupt 4 if(RI=1) RI=0; if(ESI=1) ESI=0; SBFR0=SBUF; MCMD=1; else; elseif( TI=1) TI=0; if(ESO=1) uchar a; a=*PTR; PTR+; if(a!=0) SBUF=a; else ESO=0; ESI=1; 5.3.6 RS-232C總線和電平轉(zhuǎn)換總線和電平轉(zhuǎn)換 nRS-232C是美國電子工業(yè)協(xié)會是美國電子工業(yè)協(xié)會EIA(Elect

42、ronic Industry Association)于于1962年制定的一種串行通年制定的一種串行通 信接口標準。信接口標準。 nRS-232C標準規(guī)定了在串行通信中數(shù)據(jù)終端設備標準規(guī)定了在串行通信中數(shù)據(jù)終端設備(簡簡 稱稱DTE,如個人計算機,如個人計算機)和數(shù)據(jù)通信設備和數(shù)據(jù)通信設備(簡稱簡稱DCE, 如調(diào)制解調(diào)器如調(diào)制解調(diào)器)間物理連接線路的機械、電氣特性,間物理連接線路的機械、電氣特性, 以及通信格式和約定,該標準是異步串行通信中應以及通信格式和約定,該標準是異步串行通信中應 用最廣泛的總線標準。用最廣泛的總線標準。 一、一、 RS-232C信號線和信號線和RS232C連接器連接器D

43、B-25、 DB-9 n圖4-29 RS-232C接口插座(1) (a) 25芯芯D型插座型插座RS-232C接口信號名稱及主要信號流向接口信號名稱及主要信號流向 圖4-29 RS-232C接口插座 (b) 9芯D型插座上的RS-232C接口信號名稱及主要信號流向 RS-232C串行接口標準中主信道重要信號的含義:串行接口標準中主信道重要信號的含義: TXD:串行數(shù)據(jù)發(fā)送引腳,輸出。 RXD:串行數(shù)據(jù)接收引腳,輸入 DSR:數(shù)據(jù)設備(DCE)準備就緒信號,輸入,主要 用于接收聯(lián)絡。當DSR信號有效時,表明本地的數(shù) 據(jù)設備(DCE)處于就緒狀態(tài)。 DTR:數(shù)據(jù)終端(DTE)準備就緒信號,輸出,用于 DTE向DCE發(fā)送聯(lián)絡。當DTR信號有效時,表示DTE 可以接收來自DCE的數(shù)據(jù)。 RTS:發(fā)送請求,輸出。當DTE需要向DCE發(fā)送數(shù) 據(jù)時,向接收方(DCE)輸出RTS信號。 CTS:發(fā)送允許或清除發(fā)送,輸入。 二、電平轉(zhuǎn)換二、電平轉(zhuǎn)換 n為保證數(shù)據(jù)的可靠傳送,為保證數(shù)據(jù)的可靠傳送,RS-232C標準規(guī)定發(fā)送數(shù)據(jù)標準規(guī)定發(fā)送數(shù)據(jù) 線線TXD和接收數(shù)據(jù)線和接收

溫馨提示

  • 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

提交評論