版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第7章串口通信2025/1/19第7章串口通信并行通信:傳送的數(shù)據(jù)的各位同時發(fā)送,并排傳輸,同時被接收??刂坪唵巍鬏斔俣瓤?;由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接收存在困難。
引言
串行通信傳送數(shù)據(jù)的各位按分時順序一位一位地傳送(即一位一位的發(fā)送和接收)。特點:傳輸線少,長距離傳送時成本低,且可以利用電話網(wǎng)等現(xiàn)成的設備,但數(shù)據(jù)的傳送控制比并行通信復雜。
八個人站成一排一起通過八個人站成一縱隊一一通過2第7章串口通信7.1.1串行通信的基本概念
一、異步通信與同步通信1、異步通信
異步通信是指通信的發(fā)送與接收設備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。以幀作為傳送單位,每一幀由起始位、數(shù)據(jù)位、校驗位和停止位組成,結(jié)構(gòu)如圖。3第7章串口通信2.同步方式同步方式僅在開始用若干字符作為同步號令,然后連續(xù)發(fā)送數(shù)據(jù),如圖所示。由于沒有在每一個字符中,配置起始、停止位,所以結(jié)構(gòu)緊湊,傳輸效率高、速度快,其組成如下圖所示:
同步傳輸方式比異步傳輸方式速度快,這是它的優(yōu)勢。但同步傳輸方式也有其缺點,即它必須要用一個時鐘來協(xié)調(diào)收發(fā)器的工作,所以它的設備也較復雜。例如IIC通信,SPI通信等4第7章串口通信二、串行通信的傳輸方向1、單工單工是指數(shù)據(jù)傳輸僅能沿一個方向,不能實現(xiàn)反向傳輸。2、半雙工半雙工是指數(shù)據(jù)傳輸可以沿兩個方向,但需要分時進行。3、全雙工全雙工是指數(shù)據(jù)可以同時進行雙向傳輸。
單工半雙工全雙工5第7章串口通信四、串行通信的錯誤校驗
1、奇偶校驗在發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨的1位為奇偶校驗位(1或0)。奇校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應為奇數(shù);偶校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應為偶數(shù)。接收字符時,對“1”的個數(shù)進行校驗,若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯。3、循環(huán)冗余校驗2、代碼和校驗送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個字節(jié)的校驗字符(校驗和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時對數(shù)據(jù)塊(除校驗字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗和”進行比較,相符則無差錯,否則即認為傳送過程中出現(xiàn)了差錯。
6第7章串口通信五、傳輸速率與傳輸距離
1、傳輸速率 波特率bps(bitpersecond)定義: 每秒傳輸數(shù)據(jù)的位數(shù),即: 1波特=1位/秒(1bps)如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位、1個停止位、8個數(shù)據(jù)位)10位×240個/秒=2400bps相互通信的甲乙雙方必須具有相同的波特率,否則無法成功地完成串行數(shù)據(jù)通信。7第7章串口通信7.280C51的串行口
有兩個物理上獨立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H;接收器是雙緩沖結(jié)構(gòu);發(fā)送緩沖器1個,因為發(fā)送時CPU是主動的,不會產(chǎn)生重疊錯誤。
7.2.180C51串行口的結(jié)構(gòu)
8第7章串口通信數(shù)據(jù)緩沖器SBUF
發(fā)送數(shù)據(jù) 通過指令MOVSBUF,A將數(shù)據(jù)寫入SBUF,然后串口自動將數(shù)據(jù)按事先設置的方式及速率從TXD(P3.1)端口輸出,數(shù)據(jù)發(fā)送完畢,串口向CPU申請中斷,且通過硬件將TI置1,表示發(fā)送已經(jīng)結(jié)束,等待寫入第二幀數(shù)據(jù)。
接收數(shù)據(jù) 當有數(shù)據(jù)送給單片機串口時,串口按事先設置的方式及速率自動從端口RXD(P3.0)接收數(shù)據(jù),數(shù)據(jù)校驗正確后送SBUF,一幀數(shù)據(jù)接收完畢RI=1,串口向CPU請求中斷且表示接收已經(jīng)結(jié)束。單片機只要通過執(zhí)行:MOVA,SBUF9第7章串口通信串行口的控制寄存器
MCS-51的串行口有四種工作方式,用戶可以通過對串行控制寄存器SCON編程來設定。此外,還有波特率控制寄存器PCON,必須詳細了解這些特殊功能寄存器,才能正確應用串行通信接口。
1.串行口控制寄存器SCON特殊功能寄存器SCON的地址為98H,具有位地址,可位尋址,復位時為00H,其格式如下:SM0、SM1:串行口的方式選擇位,見表7-1。
10第7章串口通信SM2:方式2和方式3的多機通信控制位;REN:允許串行接收位。TB8:在方式2和方式3中,發(fā)送的第9位數(shù)據(jù),需要時由軟件置位或復位。RB8:在方式2和方式3中,接收到的第9位數(shù)據(jù);在方式1時,RB8是接收到的停止位;在方式0,不使用RB8。TI:發(fā)送中斷標志。TI必須由軟件清“0”RI:接收中斷標志,RI必須由軟件清“0”。
11第7章串口通信PCON中只有一位SMOD與串行口工作有關(guān)
:
SMOD(PCON.7)波特率倍增位。在串行口方式1、方式2、方式3時,波特率與SMOD有關(guān),當SMOD=1時,波特率提高一倍。復位時,SMOD=0。PCON的其他位為掉電方式控制位,詳見2.8節(jié)12第7章串口通信
6.2.380C51串行口的工作方式
一、方式0:串口擴展為并口1)波特率固定為發(fā)送—位數(shù)據(jù)等于一個機器周期。2)不論是發(fā)送還是接收,數(shù)據(jù)都是從RXD(P3.0)端出入。TXD端而作為同步移位脈沖輸出端。3)工作于方式0時,可將串行接口擴展為并行接口。1、方式0輸出13第7章串口通信
2、方式0輸入方式0接收和發(fā)送電路14第7章串口通信一、方式0必須注意:在接收時,除了設置SCON控制字為方式0外,還應設置允許接收控制位REN為“1”,清除RI中斷標志,才能啟動接收器工作。方式0工作時,必須使SCON控制字的SM2位(多機通信控制位)為“0”,從而不影響TB8和RB8位。由于波特率固定,故無需用定時器提供。但以中斷方式傳輸數(shù)據(jù)時,CPU響應中斷不會自動清除TI、RI標志,所以在中斷服務程序中,必須由指令將TI、RI清“0”。15第7章串口通信
二、方式1:8位異步通信接口方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1位起始位,8位數(shù)據(jù)位(低位在前),1位停止位。1、方式1輸出16第7章串口通信
2、方式1輸入17第7章串口通信(1)發(fā)送:
CPU向發(fā)送緩沖器SBUF寫入一個數(shù)據(jù)后,便啟動串行口在TXD端輸出幀信息,先發(fā)送起始位“0”,接著從低位開始依次輸出8位數(shù)據(jù),最后輸出停止位。發(fā)送完一幀信息后,發(fā)送中斷標志TI置“1”,向CPU請求中斷。(2)接收:當允許接收位REN置“1”后,接收器便采樣RXD端電平,當采樣到“1”到“0”的跳變時,啟動接收器接收。計數(shù)器的16個狀態(tài)把1位時間等分成16份,并在第7、8、9個計數(shù)狀態(tài)時,采樣RXD電平。因此,每一位的數(shù)值采樣三次,取其中至少有兩次相同的值為確認值。啟動后,如果三次采樣的確認值不是“0”,則起始位無效,復位接收電路重新檢測。如果確認值為“0”,起始位有效,則開始按從低位到高位的順序接收一幀的數(shù)據(jù)信息。
必須注意,在方式1接收中設置有數(shù)據(jù)辨識功能:只有同時滿足以下兩個條件時,接收到的數(shù)據(jù)才有效,才會將數(shù)據(jù)裝入SBUF,并置RI為“1”,向CPU請求中斷;否則,所接收的數(shù)據(jù)幀無效。當SM2=1時,接收到的停止位“1”裝入RB8中。①RI=0。②接收到停止位為“1”。18第7章串口通信
方式1的特點:
1)波特率可變串口波特率由定時器T1產(chǎn)生,T1工作于方式2,并決定于T1定時時間,而T1的定時時間決定于裝入的時間常數(shù)N,因此可根據(jù)時間常數(shù)N推出波特率,即 2)傳送數(shù)據(jù)為8位,連同一位起始位、一位停止位組成一幀,即一幀為10位,發(fā)送由TXD輸出,接收由RXD輸入,可構(gòu)成全雙工的串行通信端口。
例:設計波特率為4800b/s,晶振頻率為11.0592MHz,定時器T1工作在方式2,SMOD=0,則計數(shù)器初值為
。19第7章串口通信
三、方式2和方式3方式2或方式3時為11位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳。方式2和方式3時起始位1位,數(shù)據(jù)9位(含1位附加的第9位,發(fā)送時為SCON中的TB8,接收時為RB8),停止位1位,一幀數(shù)據(jù)為11位。方式2的波特率固定為晶振頻率的1/64或1/32,方式3的波特率由定時器T1的溢出率決定。
20第7章串口通信
3.方式2、方式3
串行口工作在方式2、方式3時,為9位異步通信口,1幀信息由11位組成,即1位起始位、8位數(shù)據(jù)D0~D7(低位在前)、1位可編程的第9位D8(發(fā)送時,第9位為SCON中的TB8;接收時,第9位為SCON中的RB8)及1位停止位,如圖7-10所示。圖7-10方式2、方式3數(shù)據(jù)格式(1)發(fā)送:當CPU向發(fā)送緩沖器SBUF寫入一個數(shù)據(jù)后,便立即啟動發(fā)送器發(fā)送。先發(fā)送起始位“0”,接著從低位開始依次輸出8位數(shù)據(jù),再發(fā)送SCON中的TB8,最后輸出停止位。發(fā)送完一幀信息后,發(fā)送中斷標志TI置“1”,向CPU請求中斷。(2)接收:使用與方式1類似的方法識別起始位。必須注意,方式2、方式3接收中也設置有數(shù)據(jù)辨識功能:只有同時滿足以下兩個條件時,接收到的數(shù)據(jù)才有效,才能將接收到的數(shù)據(jù)裝入SBUF和RB8,并置RI為“1”;否則,所接收的數(shù)據(jù)幀無效。①RI=0。②接收到的停止位為“1”。
方式2、方式3的區(qū)別:方式2的波特率為fosc/32或fosc/64,而方式3的波特率可變。
21第7章串口通信三、串口工作方式2、3
方式2、3的工作性能
1)方式2波特率固定,并等于。
方式3波特率計算方法同方式1,即等于。
2)一幀數(shù)據(jù)為11位,包括1位起始位、8位數(shù)據(jù)位、1位可編程位、1位停止位。數(shù)據(jù)位低位在前高位在后,第9位可編程位發(fā)送時從SCON中的TB8取出,接收時第9位存SCON中的RB8。22第7章串口通信第四節(jié)串口初始化編程一、計算波特率串口方式0
串口方式1和串口方式3
串口方式2
23第7章串口通信24第7章串口通信二、對SCON、PCON、TMOD初始化 以設計一8051單片機控制系統(tǒng)為例,設主振頻率為12MHz,要求串口發(fā)送數(shù)據(jù)為8位、波特率為1200bps.則初始化步驟為:1.先按波特率要求,計算T1的時間常數(shù)N,設SMOD=1。 已知主振頻率為12MHz,波特率為1200bps.,串口工作于方式1,按式7-2可求得 N=203.92≈0CCH 2.寫出初始化程序 MOVSCON,#50H;串行口工作于方式1 MOVPCON,#80H;SMOD=1, MOVTMOD,#20H;T1工作方式2定時方式 MOVTHl,#0CCH;設置時間常間為N MOVTLl,#0CCH;自動裝入時間常數(shù) SETBTR1 ;啟動T1返回本章首頁25第7章串口通信 【例7-1】電路如圖所示,試編制程序按下列順序要求每隔0.5秒循環(huán)操作。 ①8個發(fā)光二極管全部點亮; ②從左向右依次暗滅,每次減少一個,直至全滅; ③從左向右依次點亮,每次亮一個; ④從右向左依次點亮,每次亮一個; ⑤從左向右依次點亮,每次增加一個, 直至全部點亮; ⑥返回從②不斷循環(huán)。7.3單片機串行口應用舉例
26第7章串口通信27第7章串口通信LIGHT:MOVSCON,#00H ;串行口方式0 CLRES ;禁止串行中斷 MOVDPTR,#TAB ;置發(fā)光二極管亮暗控制字表首址LP1:MOVR7,#0 ;置順序編號0LP2:MOVA,R7 ;讀順序編號 MOVCA,@A+DPTR ;讀控制字 CLRP1.0 ;關(guān)閉并行輸出 MOVSBUF,A ;啟動串行發(fā)送 JNBTI,$ ;等待發(fā)送完畢 CLRTI ;清發(fā)送中斷標志 SETBP1.0 ;開啟并行輸出 LCALLDLY500ms ;調(diào)用延時0.5秒子程序 INCR7 ;指向下一控制字 CJNER7,#30,LP2 ;判循環(huán)操作完否?未完繼續(xù) SJMPLP1;順序編號0~29依次操作完畢,從0開始重新循環(huán)TAB:DB0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00H;從左向右依次暗滅,每次減少一個,直至全滅;DB80H,40H,20H,10H,08H,04H,02H,01H;從左向右依次點亮,每次亮一個DB02H,04H,08H,10H,20H,40H,80H;從右向左依次點亮,每次亮一個 DB0C0H,0E0H,0F0H,0F8H,0FCH,0FEH;從左向右依次點亮,每次增加一個,直至全部點亮;28第7章串口通信【例7-2】設甲乙機以串行方式1進行數(shù)據(jù)傳送,fosc=11.0592MHz,波特率為1200b/s。甲機發(fā)送的16個數(shù)據(jù)存在內(nèi)RAM40H~4FH單元中,乙機接收后存在內(nèi)RAM50H為首地址的區(qū)域中。29第7章串口通信 甲機發(fā)送子程序: MOVTMOD,#20H ;置T1定時器工作方式2 MOVTL1,#0E8H ;置T1計數(shù)初值 MOVTH1,#0E8H ;置T1計數(shù)重裝值 CLRET1 ;禁止T1中斷 SETBTR1 ;T1啟動 MOVSCON,#40H ;置串行方式1,禁止接收 MOVPCON,#00H ;置SMOD=0(SMOD不能位操作) CLRES ;禁止串行中斷 MOVR0,#40H ;置發(fā)送數(shù)據(jù)區(qū)首地址 MOVR2,#16 ;置發(fā)送數(shù)據(jù)長度TRSA:MOV A,@R0 ;讀一個數(shù)據(jù) MOV SBUF,A ;發(fā)送 JNB TI,$ ;等待一幀數(shù)據(jù)發(fā)送完畢 CLR TI ;清發(fā)送中斷標志 INC R0 ;指向下一字節(jié)單元 DJNZ R2,TRSA ;判16個數(shù)據(jù)發(fā)完否?未完繼續(xù) RET30第7章串口通信 乙機接收子程序: MOVTMOD,#20H ;置T1定時器工作方式2 RXDB:MOVTL1,#0E8H ;置T1計數(shù)初值 MOVTH1,#0E8H ;置T1計數(shù)重裝值 CLRET1 ;禁止T1中斷 SETBTR1 ;T1啟動 MOVSCON,#40H ;置串行方式1,禁止接收 MOVPCON,#00H ;置SMOD=0(SMOD不能位操作) CLRES ;禁止串行中斷 MOVR0,#50H ;置接收數(shù)據(jù)區(qū)首地址 MOVR2,#16 ;置接收數(shù)據(jù)長度 SETBREN ;啟動接收 RDSB: JNB RI,$ ;等待一幀數(shù)據(jù)接收完畢 CLR RI ;清接收中斷標志 MOV A,SBUF ;讀接收數(shù)據(jù) MOV @R0,A ;存接收數(shù)據(jù) INC R0 ;指向下一數(shù)據(jù)存儲單元 DJNZ R2,RDSB ;判16個數(shù)據(jù)接收完否?未完繼續(xù) RET;31第7章串口通信回顧串行工作方式2方式2是一幀11位的串行通信方式,即1個起始位,8個數(shù)據(jù)位,1個可編程位TB8/RB8和1個停止位,【例7-3】設計一個串行方式2發(fā)送子程序(SMOD=1),將片內(nèi)RAM50H~5FH中的數(shù)據(jù)串行發(fā)送,第9數(shù)據(jù)位作為奇偶校驗位。接到接收方核對正確的回復信號(用FFH表示)后,再發(fā)送下一字節(jié)數(shù)據(jù),否則再重發(fā)一遍。32第7章串口通信 MOVSCON,#80H;置串行方式2,禁止接收 MOVPCON,#80H;置SMOD=1 MOVR0,#50H ;置發(fā)送數(shù)據(jù)區(qū)首址TRLP: MOVA,@R0;讀數(shù)據(jù) MOVC,PSW.0;奇偶標志送TB8 MOVTB8,C; MOVSBUF,A;啟動發(fā)送 JNBTI,$;等待一幀數(shù)據(jù)發(fā)送完畢 CLRTI;清發(fā)送中斷標志 SETBREN;允許接收 CLRRI;清接收中斷標志 JNBRI,$;等待接收回復信號 MOVA,SBUF;讀回復信號 CPLA;回復信號取反 JNZTRLP;非全0(回復信號≠FFH,錯誤),轉(zhuǎn)重發(fā) INCR0;全0(回復信號=FFH,正確),指向下一數(shù)據(jù)存儲單元 CJNER0,#60H,TRLP;判16個數(shù)據(jù)發(fā)送完否?未完繼續(xù)RET33第7章串口通信二、多機通信1、硬件連接單片機構(gòu)成的多機系統(tǒng)常采用總線型主從式結(jié)構(gòu)。所謂主從式,即在數(shù)個單片機中,有一個是主機,其余的是從機,從機要服從主機的調(diào)度、支配。80C51單片機的串行口方式2和方式3適于這種主從式的通信結(jié)構(gòu)。當然采用不同的通信標準時,還需進行相應的電平轉(zhuǎn)換,有時還要對信號進行光電隔離。在實際的多機應用系統(tǒng)中,常采用RS-485串行標準總線進行數(shù)據(jù)傳輸。34第7章串口通信2、通信協(xié)議所有從機的SM2位置1,處于接收地址幀狀態(tài)。主機發(fā)送一地址幀,其中8位是地址,第9位為地址/數(shù)據(jù)的區(qū)分標志,該位置1表示該幀為地址幀。所有從機收到地址幀后,都將接收的地址與本機的地址比較。對于地址相符的從機,使自己的SM2位置0(以接收主機隨后發(fā)來的數(shù)據(jù)幀),并把本站地址發(fā)回主機作為應答;對于地址不符的從機,仍保持SM2=1,對主機隨后發(fā)來的數(shù)據(jù)幀不予理睬。從機發(fā)送數(shù)據(jù)結(jié)束后,要發(fā)送一幀校驗和,并置第9位(TB8)為1,作為從機數(shù)據(jù)傳送結(jié)束的標志。35第7章
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度園林綠化垃圾資源化利用承包合同4篇
- 2025年度農(nóng)村房屋產(chǎn)權(quán)抵押貸款農(nóng)民房屋買賣合同4篇
- 二零二四年度中小企業(yè)實習生勞動合同參考范本3篇
- 2025年度鏟車轉(zhuǎn)讓與操作技能培訓合同4篇
- 二零二五年度船舶通訊系統(tǒng)優(yōu)化與更新合同3篇
- 二零二五年度農(nóng)產(chǎn)品保險代理服務合同范本4篇
- 二零二五版苗木種植項目規(guī)劃設計合同4篇
- 二零二五年度二手汽車改裝與買賣合同4篇
- 2025年度個人住房貸款保證合同(農(nóng)村住房貸款)4篇
- 2025年度鋼釘鐵釘研發(fā)與銷售一體化合同2篇
- 資源枯竭型城市的轉(zhuǎn)型發(fā)展 課件 2024-2025學年高二上學期地理人教版選擇性必修2
- 2025屆河北省衡水市衡水中學高考仿真模擬英語試卷含解析
- 新修訂《保密法》知識考試題及答案
- 電工基礎知識培訓課程
- 住宅樓安全性檢測鑒定方案
- 廣東省潮州市潮安區(qū)2023-2024學年五年級上學期期末考試數(shù)學試題
- 市政道路及設施零星養(yǎng)護服務技術(shù)方案(技術(shù)標)
- 選擇性必修一 期末綜合測試(二)(解析版)2021-2022學年人教版(2019)高二數(shù)學選修一
- 《論語》學而篇-第一課件
- 《寫美食有方法》課件
- 各行業(yè)智能客服占比分析報告
評論
0/150
提交評論