第8章 串行數(shù)據(jù)通信.ppt_第1頁(yè)
第8章 串行數(shù)據(jù)通信.ppt_第2頁(yè)
第8章 串行數(shù)據(jù)通信.ppt_第3頁(yè)
第8章 串行數(shù)據(jù)通信.ppt_第4頁(yè)
第8章 串行數(shù)據(jù)通信.ppt_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、8-1 串行通信基礎(chǔ)知識(shí),8-2 串行口及控制寄存器,8-3 串行通信工作方式,8-4 串行口的應(yīng)用,第8章 串行數(shù)據(jù)通信,8-1 串行通信基礎(chǔ)知識(shí),一、串行通信基本原理: 并行 數(shù)據(jù)傳送 同步 串行 異步(用于單片機(jī)中),異步通信的雙方需要兩項(xiàng)約定: 1.字符格式: 一幀字符位數(shù)的規(guī)定:數(shù)據(jù)位,校驗(yàn)位,起始位和停止位。,2.波特率(位/秒)和傳送速率的規(guī)定: 例:要求每秒傳送120個(gè)字符,每幀為10位。 解: B=12010=1200波特 每位0.83ms 數(shù)據(jù)位傳送輸率=1208=960位/秒,(二)同步通信: 以一串字符為一個(gè)傳送單位,字符間不加標(biāo)識(shí)位,在一串字符開始 用同步字符標(biāo)識(shí),硬

2、件要求高,通訊雙方須嚴(yán)格同步。,二、串行通信的基本方式: (一)異步通信: 以字符為傳送單位用起始位和停止位標(biāo)識(shí)每個(gè)字符的開始和結(jié)束字 符,間隔不固定,只需字符傳送時(shí)同步即可。 異步通訊常用格式:一個(gè)字符幀,三、串行接口功能:,(1)發(fā)送器:并串?dāng)?shù)據(jù)格式轉(zhuǎn)換,添加標(biāo)識(shí)位和校驗(yàn)位,一幀發(fā)送結(jié)束,設(shè)置結(jié)束標(biāo)志,申請(qǐng)中斷。 (2)接收器:串并數(shù)據(jù)格式轉(zhuǎn)換,檢查錯(cuò)誤,去掉標(biāo)識(shí)位,保存有效數(shù)據(jù),設(shè)置接收結(jié)束標(biāo)志,申請(qǐng)中斷。 (3)控制器:接收編程命令和控制參數(shù),設(shè)置工作方式:同步/異步、字符格式、波特率、校驗(yàn)方式、數(shù)據(jù)位與同步時(shí)鐘比例等。,四、串行數(shù)據(jù)傳送方向: 1、單工通訊:數(shù)據(jù)單向傳送。(1條數(shù)據(jù)線

3、,單向) 2、半雙工通訊:數(shù)據(jù)可分時(shí)雙向傳送。(2條數(shù)據(jù)線,雙向) 3、全雙工通訊:可同時(shí)進(jìn)行發(fā)送和接收。 (1條或2條數(shù)據(jù)線,雙向),五、異步串行通信的信號(hào)形式:,1、遠(yuǎn)距離直接傳輸數(shù)字信號(hào),信號(hào)會(huì)發(fā)生畸變,因此要把數(shù)字信號(hào)轉(zhuǎn)變?yōu)槟M信號(hào)再進(jìn)行傳送??衫霉饫|、專用通信電纜或電話線。 方法:通常使用頻率調(diào)制法(頻帶傳送方式)。,通常: “1”:1270Hz或2225Hz; “0”:1070Hz或2025Hz。,2、因通信時(shí)(有干擾)信號(hào)要衰減,所以常采用RS232電平負(fù)邏輯,拉開“0”和“1”的電壓檔次,以免信息出錯(cuò):,RS232負(fù)邏輯(EIA電平): “0”:+3V+25V; “1”: -

4、3V -25V。 最大傳輸信息的長(zhǎng)度為15米。,TTL正邏輯: “0”: 0 2.4V; “1”: 3.6V+5V; 高阻:2.4V3.6V。 TTL電平直接傳輸距 離一般不超過1.5米。,RS232負(fù)邏輯: “0”:+5V+15V; “1”: -5V -15V。 最大傳輸信息的長(zhǎng)度為15米。,RS-232C (電平轉(zhuǎn)換芯片為MAX232) RS-422 RS-485,8-2 串行口及控制寄存器,串行接口輸入/輸出引腳:TXD(P3.1)、RXD(P3.0) 數(shù)據(jù)格式:按不同方式,一幀數(shù)據(jù)位數(shù) 8/10/11 發(fā)送/接收時(shí),數(shù)據(jù)皆低位在前。,一幀字符發(fā)送/接收結(jié)束,置位標(biāo)志位(TI/RI),

5、并申請(qǐng)串行中斷。 中斷控制:中斷允許位ES、總允許EA; 中斷入口:0023H。,1個(gè)全雙工串行接口,可同時(shí)進(jìn)行發(fā)送和接收。,8-2-1 MCS-51串行接口,一、串行接口控制:,1.數(shù)據(jù)緩沖器SBUF: 發(fā)送SBUF和接收SBUF共用一個(gè)地址99H。 1)發(fā)送SBUF存放待發(fā)送的8位數(shù)據(jù),寫入SBUF將同時(shí) 啟動(dòng)發(fā)送。發(fā)送指令: MOVSBUF,A 2)接收SBUF存放已接收成功的8位數(shù)據(jù),供CPU讀取。讀取串行口接收數(shù)據(jù)指令: MOV A,SBUF,2.節(jié)電控制寄存器PCON: SMOD(PCON.7):波特率加倍控制位。 SMOD=1,波特率加倍; SMOD=0,則不加倍。,SM0、SM

6、1:選擇串行口4種工作方式。 SM2:多機(jī)控制位,用于多機(jī)通訊。 REN:允許接收控制位,REN=1,允許接收; REN=0,禁止接收。 TB8:發(fā)送的第9位數(shù)據(jù)位,可用作校驗(yàn)位和地址/數(shù)據(jù)標(biāo)識(shí)位。 RB8:接收的第9位數(shù)據(jù)位或停止位。 TI :發(fā)送中斷標(biāo)志,發(fā)送一幀結(jié)束,TI=1,必須軟件清零; RI :接收中斷標(biāo)志,接收一幀結(jié)束,RI=1,必須軟件清零。,3.串行口控制/狀態(tài)寄存器SCON(98H):,請(qǐng)見P229!,8-3 串行通信工作方式,(1)方式0:同步移位寄存器方式 用于擴(kuò)展并行I/O接口。 1. 一幀8位,無起始位和停止位。 2. RXD:數(shù)據(jù)輸入/輸出端。 TXD:同步脈沖輸

7、出端,每個(gè)脈沖對(duì)應(yīng)一個(gè)數(shù)據(jù)位。 3. 波特率Bfosc/12 如:fosc12MHz,B1MHz,每位數(shù)據(jù)占1s。 4. 發(fā)送過程:寫入SBUF,啟動(dòng)發(fā)送, 一幀發(fā)送結(jié)束,TI1。 接收過程:REN=1且RI=0,啟動(dòng)接收, 一幀接收完畢,RI1。,SM0、SM1選擇四種工作方式。,時(shí)序圖:,(2) 方式1:8位數(shù)據(jù)異步通訊方式,1. 一幀10位:8位數(shù)據(jù)位,1個(gè)起始位(0),1個(gè)停止位(1)。 2. RXD:接收數(shù)據(jù)端。 TXD:發(fā)送數(shù)據(jù)端。 3.波特率:用T1作為波特率發(fā)生器, B=(2SMOD/32)T1溢出率。 4.發(fā)送:寫入SBUF,同時(shí)啟動(dòng)發(fā)送,一幀發(fā)送結(jié)束,TI=1。 接收:RE

8、N=1,允許接收。 接收完一幀,若RI=0且停止位為1 (或SM2=0),將接 收數(shù)據(jù)裝入SBUF,停止位裝入RB8,并使RI=1; 否則丟棄接收數(shù)據(jù),不置位RI。,當(dāng)REN=1,CPU開始采樣RXD引腳負(fù)跳變信號(hào),若出現(xiàn)負(fù)跳變,才進(jìn)入數(shù)據(jù)接收狀態(tài),先檢測(cè)起始位,若第一位為0,繼續(xù)接收其余位;否則,停止接收,重新采樣負(fù)跳變。 數(shù)據(jù)采樣速率為波特率16倍頻,在數(shù)據(jù)位中間,用第7、8、9個(gè)脈沖采樣3次數(shù)據(jù)位,并3中取2保留采樣值。,時(shí)序圖:,(3) 方式2和方式3: 9位數(shù)據(jù)異步通訊方式,1.一幀為11位:9位數(shù)據(jù)位,1個(gè)起始位(0),1個(gè)停止位(1)。 第9位數(shù)據(jù)位在TB8/RB8中,常用作校驗(yàn)

9、位和多機(jī)通訊 標(biāo)識(shí)位。 2. RXD:接收數(shù)據(jù)端, TXD:發(fā)送數(shù)據(jù)端。 3.波特率:方式2:B=(2SMOD/64)fosc 。 方式3:B=(2SMOD/32)T1溢出率 。 4.發(fā)送:先裝入TB8,寫入SBUF并啟動(dòng)發(fā)送,發(fā)送結(jié)束,TI=1。 接收:REN=1,允許接收。 接收完一幀,若RI=0且第9位為1 (或SM2=0),將接收數(shù)據(jù) 裝入接收SBUF,第9位裝入RB8,使RI=1;否則丟棄接收數(shù)據(jù), 不置位RI。,時(shí)序圖:,(4)計(jì)算波特率:,方式0為固定波特率:B=fosc/12 方式2可選兩種波特率: B=(2SMOD /64)fosc 方式1、3為可變波特率,用T1作波特率發(fā)生

10、器。 B=(2SMOD/32)T1溢出率 T1為方式2的時(shí)間常數(shù): X = 28 - t/T (請(qǐng)見P153) 溢出時(shí)間: t= (28 -X)T = (28 -X)12/ fosc T1溢出率=1/t= fosc /12(2n -X) 波特率B=(2SMOD /32)fosc/12(28-X) 串行口方式1、3,根據(jù)波特率選擇T1工作方式,計(jì)算時(shí)間常數(shù)。 T1選方式2: TH1= X = 28 - fosc/122SMOD/(32B) T1選方式1用于低波特率,需考慮T1重裝時(shí)間常數(shù)時(shí)間。 也可選工作方式3(請(qǐng)見P156)。,4種方式比較:,8-4 串行口的應(yīng)用,串行口初始化編程格式: SI

11、O:MOV SCON,#控制狀態(tài)字 ;寫方式字且TI=RI=0 ( MOV PCON,#80H ) ;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率發(fā)生器 ( MOV TH1,#X ) ;選定波特率 ( MOV TL1,#X ) ( SETB TR1) ( SETB EA) ;開串行口中斷 ( SETB ES),發(fā)送程序:,1、查詢方式: TRAM:MOV A,R0 ;取數(shù)據(jù) MOVSBUF,A ;發(fā)送一個(gè)字符 WAIT:JBCTI,NEXT ;等待發(fā)送結(jié)束 SJMPWAIT NEXT:CLR TI INC R0 ;準(zhǔn)備下一次發(fā)送 SJMPTRAM,2、中斷方式: ORG 00

12、23H ;串行口中斷入口 AJMP SINT MAIN: ;初始化編程 TRAM: MOV A, R0 ;取數(shù)據(jù) MOV SBUF,A ;發(fā)送第一個(gè)字符 H:SJMP H ;其它工作 SINT:CLR TI ;中斷服務(wù)程序 INC R0 MOV A, R0 ;取數(shù)據(jù) MOV SBUF,A ;發(fā)送下一個(gè)字符 RETI,先發(fā)送一個(gè)字符,等待TI=1后再發(fā)送下一個(gè)字符。,接收程序:,1.查詢方式: WAIT:JBC RI,NEXT;查詢等待 SJMP WAIT NEXT:MOV A,SBUF ;讀取接收數(shù)據(jù) MOV R0,A;保存數(shù)據(jù) CLR RI INC R0 ;準(zhǔn)備下一次接收 SJMP WAIT

13、,2.中斷方式: ORG0023H AJMPRINT MAIN: ;初始化編程 H:SJMPH ;其它任務(wù) RINT:CLRRI ;清中斷標(biāo)志 MOVA,SBUF ;讀取接收數(shù)據(jù) MOVR0,A;保存數(shù)據(jù) INCR0 RETI,REN=1、RI=0等待接收,當(dāng)RI=1,從SBUF讀取數(shù)據(jù)。,(一)串行口方式0:,串行口通過接口74LS164實(shí)現(xiàn):串行并行的數(shù)據(jù)轉(zhuǎn)換(顯示器接口); 通過接口74LS165實(shí)現(xiàn):并行串行的數(shù)據(jù)轉(zhuǎn)換。,用于接移位寄存器擴(kuò)充并口。,程序:,MOVR7,#20;送入20個(gè)字節(jié) MOVR0,#20H;送首地址為20H SETBF0;置1,F(xiàn)0=1(設(shè)置讀入字節(jié)奇偶數(shù)標(biāo)志)

14、 RCV0:CLRP1.0;P1.0=0(并行置入數(shù)據(jù)) SETBP1.0;P1.0=1(允許串行移位) RCV1:MOVSCON,#10H;允許方式0接收 JNBRI,;等待RI=1,順序執(zhí)行 CLRRI;RI=0為下一幀數(shù)據(jù)的接收準(zhǔn)備 MOVA,SBUF;取數(shù) MOVR0,A INCR0 CPLF0;取反,F(xiàn)0=0 JBF0,RCV2;F0=1則轉(zhuǎn)移,F(xiàn)0=0順序執(zhí)行 DECR7 判是否接收完偶數(shù)幀,接收完則重新并行置入 SJMPRCV1;否則再接收一幀 RCV2:DJNZR7,RCV0;R71=0? 0跳(判是否已讀入預(yù)定字節(jié)數(shù)) .;對(duì)讀入數(shù)據(jù)進(jìn)行處理,MAINT: MOV SCON,

15、#80H ;串行口初始化 MOV PCON,#80H ;波特率 SETBEA SETBES ;開串行口中斷 MOV R0,#50H ;設(shè)數(shù)據(jù)指針 MOV R7,#10H ;數(shù)據(jù)長(zhǎng)度 LOOP: MOV A,R0 ;取一個(gè)字符 MOV C,P ;加奇偶校驗(yàn) MOV TB8,C MOV SBUF,A ;啟動(dòng)一次發(fā)送 HERE:SJMPHERE ;CPU執(zhí)行其它任務(wù),(二)異步通訊程序舉例: 1.發(fā)送程序:將片內(nèi)RAM 50H起始單元的16個(gè)數(shù)由串行口 發(fā)送。要求發(fā)送波特率為系統(tǒng)時(shí)鐘的32分 頻,并進(jìn)行奇偶校驗(yàn)。,ORG 0023H ;串行口中斷入口 AJMP TRANI TRANI:PUSH A;

16、保護(hù)現(xiàn)場(chǎng) PUSH PSW CLR TI ;清發(fā)送結(jié)束標(biāo)志 DJNZ R7,NEXT;是否發(fā)送完? CLR ES;發(fā)送完,關(guān)閉串行口中斷 SJMP TEND NEXT: INC R0 ;未發(fā)送完,修改指針 MOV A,R0 ;取下一個(gè)字符 MOV C,P ;加奇偶校驗(yàn) MOV TB8,C MOV SBUF,A ;發(fā)送一個(gè)字符 POP PSW ;恢復(fù)現(xiàn)場(chǎng) POP A TEND:RETI ;中斷返回,2. 接收程序:,RECS: MOV SCON,#50H ;串行口方式1允許接收MOV TMOD,#20H ; T1方式2定時(shí)MOV TL1,#0F4H ;寫入T1時(shí)間常數(shù) MOV TH1,#0F4H

17、SETB TR1 ;啟動(dòng)T1MOV R0,#50H ;設(shè)數(shù)據(jù)指針MOV R7,#10H ;接收數(shù)據(jù)長(zhǎng)度 WAIT: JBC RI,NEXT ;等待串行口接收SJMP WAIT NEXT:MOV A,SBUF ;讀取接收字符MOV R0,A ;保存一個(gè)字符CLRRI INC R0 ;修改指針DJNZ R7,WAIT ;全部字符接收完?RET,串行輸入16個(gè)字符,存入片內(nèi)RAM的50H起始單 元,串行口波特率為2400(設(shè)晶振為11.0592MHz)。,3. 接收程序:,RECS: MOV SCON,#0D0H ;串行口方式3允許接收MOV TMOD,#20H ; T1方式2定時(shí)MOV TL1,#

18、0F4H ;寫入T1 時(shí)間常數(shù) MOV TH1,#0F4HSETB TR1 ;啟動(dòng)T1 MOV R0,#50H ;設(shè)數(shù)據(jù)指針 MOV R7,#10H ;接收數(shù)據(jù)長(zhǎng)度 WAIT: JBC RI,NEXT ;等待串行口接收SJMP WAIT NEXT:MOV A,SBUF ;取一個(gè)接收字符JNB P,COMP ;奇偶校驗(yàn)JNB RB8,ERR ;PRB8,數(shù)據(jù)出錯(cuò) SJMP RIGHT ;P=RB8,數(shù)據(jù)正確 COMP: JB RB8,ERR RIGHT: MOV R0,A ;保存一個(gè)字符CLRRI INC R0 ;修改指針DJNZ R7,WAIT ;全部字符接收完?CLR F0 ;F0 =0,接

19、收數(shù)據(jù)全部正確 RETERR: SETB F0 ;F0 =1,接收數(shù)據(jù)出錯(cuò) RET,串行輸入16個(gè)字符,進(jìn)行奇偶校驗(yàn)。,4. 主從分布式微機(jī)系統(tǒng):,也叫集散控制系統(tǒng):從機(jī)(單片機(jī))作數(shù)據(jù)采集或?qū)崟r(shí)控制, 主機(jī)(PC機(jī))作數(shù)據(jù)處理、中央管理等。 應(yīng)用:過程控制、儀器儀表、生產(chǎn)自動(dòng)化和企業(yè)管理等方面。,直接傳送串行通信接法,PC機(jī)調(diào)用的中斷指令為: INT 14H,單機(jī)通信:,多機(jī)通信系統(tǒng):,PC機(jī)要對(duì)某一指定了地址編號(hào)的單片機(jī)通訊,就必須作好聯(lián)絡(luò)。 PC機(jī)處于發(fā)送狀態(tài),各單片機(jī)的串行口均處于接收狀態(tài)并使其SM2=1,作好接收地址信息的準(zhǔn)備。 PC機(jī)發(fā)出要通訊的那臺(tái)單片機(jī)的地址編號(hào),然后發(fā)送通訊數(shù)據(jù),發(fā)地址時(shí)必須使第9位信息為1,發(fā)數(shù)據(jù)時(shí)必須使第9位數(shù)據(jù)為0。 各單片機(jī)收到PC機(jī)發(fā)來的地址信息后,因此此時(shí)各SM2=1,所以將引起各單片機(jī)的

溫馨提示

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

評(píng)論

0/150

提交評(píng)論