單片機的串行通信_第1頁
單片機的串行通信_第2頁
單片機的串行通信_第3頁
單片機的串行通信_第4頁
單片機的串行通信_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章

單片機的串行通信

1本章的學(xué)習(xí)目標(biāo)單片機串行通信I/O接口的結(jié)構(gòu)串行通信控制寄存器單片機串行通信的工作方式串行通信應(yīng)用。2通信方式7.1串行通信的概念

7.1.1異步通信與同步通信

并行通信—空間上區(qū)分各位數(shù)據(jù)及聯(lián)絡(luò)控制信號。占用傳輸線多,速度快。串行通信—時間上區(qū)分各位數(shù)據(jù)及聯(lián)絡(luò)控制信號。占用傳輸線少,速度慢。3一、串行通信方式

信息傳輸在一個方向上只占用一跟通信線,它既作為數(shù)據(jù)線,又作為聯(lián)絡(luò)線。

信息格式上分

異步通信方式:按字符傳輸同步通信方式:按數(shù)據(jù)塊傳輸

41.異步通信數(shù)據(jù)格式停止位起始位低位高位7位數(shù)據(jù)位奇偶校驗停止位第N個字符第N-1個字符1052.同步通信SYNC

(SynchronousDataCommunication)

在同步通信中,數(shù)據(jù)或字符開始處是用

同步字符來指示(一般約定為1~2個字符),以實現(xiàn)發(fā)送端和接收端同步,一旦檢測到約定同步字符,下面就連續(xù)按順序接收數(shù)據(jù)。67.1.2串行通信的波特率波特率(bps)是異步通信中數(shù)據(jù)傳送速率的單位,其意義是每秒傳送多少位二進制數(shù)。例如:數(shù)據(jù)傳送的速率為120個字符每秒,每個字符由1個起始位、8個數(shù)據(jù)位和1個停止位組成,則其傳送波特率為:

10b×120/s=1200bps=1200波特77.1.3串行通信的方式按照數(shù)據(jù)傳送方向,串行通信可分為單工、半雙工(halfduplex)制式和全雙工(fullduplex)制式。1.半雙工制式在半雙工制式下,甲機和乙機之間只有一個通信回路,接收和發(fā)送不能同時進行,只能分時發(fā)送和接收。演示思考:實際生活的例子?82.全雙工制式

在全雙工制式下,甲、乙兩機之間數(shù)據(jù)的發(fā)送和接收可以同時進行,稱為全雙工傳送。不管哪種形式的串行通信,在兩機之間均應(yīng)有共地線。思考:實際生活的例子?97.2串行通信總線標(biāo)準(zhǔn)及其接口

7.2.1RS-232C接口

RS-232C是使用最早、應(yīng)用最多的一種異步串行通信總線標(biāo)準(zhǔn)。是美國電子工業(yè)協(xié)會(EIA)1962年公布,1969年最后修定而成的。其中,RS表示RecommendedStandard,232是該標(biāo)準(zhǔn)的標(biāo)識號,C表示最后一次修定。RS-232C主要用來定義計算機系統(tǒng)的一些數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)電路終接設(shè)備(DCE)之間的電氣性能。10RS-232C串行接口總線適用于:設(shè)備之間的通信距離不大于15m,傳輸速率最大為20kb/s。

1.?RS-232C信息格式標(biāo)準(zhǔn)RS-232C采用串行格式,如圖7-5所示。該標(biāo)準(zhǔn)規(guī)定:信息的開始為起始位,信息的結(jié)束為停止位;信息本身可以是5、6、7、8位再加一位奇偶校驗位。如果兩個信息之間無信息,則寫“1”,表示空。11圖7-5RS-232C信息格式

122.?RS-232C電平轉(zhuǎn)換器

RS-232C規(guī)定了自己的電氣標(biāo)準(zhǔn),由于它是在TTL電路之前研制的,所以它的電平不是+5V和地,而是采用負(fù)邏輯,即邏輯“0”:+5V~+15V;邏輯“1”:-5V~-15V。

因此,RS-232C不能和TTL電平直接相連,使用時必須進行電平轉(zhuǎn)換,否則將使TTL電路燒壞,實際應(yīng)用時必須注意!常用的電平轉(zhuǎn)換集成電路是傳輸線驅(qū)動器MC1488和傳輸線接收器MC1489。

13圖7-6MAX232引腳圖

常用的電平轉(zhuǎn)換電路是MAX232。圖7.7為MAX232的引腳圖。14接計算機接單片機1516

3.RS-232C總線規(guī)定1718RS-232C引腳圖RS-232C標(biāo)準(zhǔn)總線為25根,采用標(biāo)準(zhǔn)的D型25芯插頭座。各引腳的排列如圖。DTE:數(shù)據(jù)終端設(shè)備(如個人計算機)DCE:數(shù)據(jù)電路終接設(shè)備(如調(diào)制解調(diào)器)12345678910111213141516171819202122232425方向名稱第2路發(fā)送數(shù)據(jù)發(fā)送時鐘第2路接收數(shù)據(jù)接收時鐘未用第2路請求發(fā)送數(shù)據(jù)終端就緒數(shù)據(jù)信號檢測振鈴指示數(shù)據(jù)信號速率選擇發(fā)送時鐘未用未用保護地N.A發(fā)送數(shù)據(jù)到DCE接收數(shù)據(jù)到DCE請求發(fā)送到DCE允許發(fā)送到DTE數(shù)據(jù)置位就緒到DTE信號地N.A載波檢測到DTE留作調(diào)試用第2路載波檢測到DTE第2路允許發(fā)送到DTE名稱方向到DCE到DTE到DTE到DTE到DCE到DCE到DTE到DTE到DCE到DCE19

7.2.2RS-449、RS-422A、RS-423A標(biāo)準(zhǔn)接口RS-232C雖然應(yīng)用廣泛,但因為推出較早,在現(xiàn)代通信系統(tǒng)中存在以下缺點:數(shù)據(jù)傳輸速率慢,傳輸距離短,未規(guī)定標(biāo)準(zhǔn)的連接器,接口處各信號間易產(chǎn)生串?dāng)_。鑒于此,EIA制定了新的標(biāo)準(zhǔn)RS-449,該標(biāo)準(zhǔn)除了與RS-232C兼容外,在提高傳輸速率,增加傳輸距離,改善電氣性能等方面有了很大改進。1.RS-449標(biāo)準(zhǔn)接口RS-449是1977年公布的標(biāo)準(zhǔn)接口,在很多方面可以代替RS-232C使用。20RS-449與RS-232C的主要差別在于信號在導(dǎo)線上的傳輸方法不同:RS-232C是利用傳輸信號與公共地的電壓差,RS-449是利用信號導(dǎo)線之間的信號電壓差,在1219.2m的24-AWG雙鉸線上進行數(shù)字通信。RS-449規(guī)定了兩種接口標(biāo)準(zhǔn)連接器,一種為37腳,一種為9腳。RS-449可以不使用調(diào)制解調(diào)器,它比RS-232C傳輸速率高,通信距離長,且由于RS-449系統(tǒng)用平衡信號差傳輸高速信號,所以噪聲低,又可以多點或者使用公共線通信,故RS-449通信電纜可與多個設(shè)備并聯(lián)。212.?RS-422A、RS-423A標(biāo)準(zhǔn)接口RS-422A文本給出了RS-449中對于通信電纜、驅(qū)動器和接收器的要求,規(guī)定雙端電氣接口形式,其標(biāo)準(zhǔn)是雙端線傳送信號。它具體通過傳輸線驅(qū)動器,將邏輯電平變換成電位差,完成發(fā)送端的信息傳遞;通過傳輸線接收器,把電位差變換成邏輯電平,完成接收端的信息接收。RS-422A比RS-232C傳輸距離長、速度快,傳輸速率最大可達10Mb/s,在此速率下,電纜的允許長度為12m,如果采用低速率傳輸,最大距離可達1200m。

22

7.2.320mA電流環(huán)路串行接口20mA電流環(huán)是目前串行通信中廣泛使用的一種接口電路。電流環(huán)串行通信接口的最大優(yōu)點是低阻傳輸線對電氣噪聲不敏感,而且易實現(xiàn)光電隔離,因此在長距離通信時要比RS-232C優(yōu)越得多。圖7-9是一個實用的20mA電流環(huán)接口電路。它是一個加上光電隔離的電流環(huán)傳送和接收電路。在發(fā)送端,將TTL電平轉(zhuǎn)換為環(huán)路電流信號,在接收端又轉(zhuǎn)換成TTL電平。23圖7.1120mA電流環(huán)接口電路

TTL數(shù)據(jù)入TTL數(shù)據(jù)出24

通信需要考慮的因素:

(1)通信速度和通信距離。通常的標(biāo)準(zhǔn)串行接口,都要滿足可靠傳輸時的最大通信速度和傳送距離指標(biāo),但這兩個指標(biāo)具有相關(guān)性,適當(dāng)降低傳輸速度,可以提高通信距離,反之亦然。例如,采用RS-232C標(biāo)準(zhǔn)進行單向數(shù)據(jù)傳輸時,最大的傳輸速度為20kb/s,最大的傳輸距離為15m。而采用RS-422A標(biāo)準(zhǔn)時,最大的傳輸速度可達10Mb/s,最大的傳輸距離為300m,適當(dāng)降低傳輸速度,傳輸距離可達1200m。25

(2)抗干擾能力。通常選擇的標(biāo)準(zhǔn)接口,在保證不超過其使用范圍時都有一定的抗干擾能力,以保證可靠的信號傳輸。但在一些工業(yè)測控系統(tǒng)中,通信環(huán)境十分惡劣,因此在通信介質(zhì)選擇、接口標(biāo)準(zhǔn)選擇時,要充分考慮抗干擾能力,并采取必要的抗干擾措施。例如在長距離傳輸時,使用RS-422A標(biāo)準(zhǔn),能有效地抑制共模信號干擾;使用20mA電流環(huán)技術(shù),能大大降低對噪聲的敏感程度。在高噪聲污染的環(huán)境中,通過使用光纖介質(zhì)可減少噪聲的干擾,通過光電隔離可以提高通信系統(tǒng)的安全性。267.3MCS-51的串行接口

7.3.1MCS-51串行口結(jié)構(gòu)

MCS-51內(nèi)部有兩個獨立的接收、發(fā)送緩沖器SBUF。SBUF屬于特殊功能寄存器。發(fā)送緩沖器只能寫入不能讀出,接收緩沖器只能讀出不能寫入,二者共用一個字節(jié)地址(99H)。串行口的結(jié)構(gòu)如圖7-10所示。

27281.串行口控制寄存器SCONSM0、SM1:控制串行口的工作方式。SM2:允許方式2和方式3進行多機通信控制位。REN:允許串行接收控制位。REN=1,允許接收。TB8:是工作在方式2和方式3時要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置位和復(fù)位。RB8:是工作在方式2和方式3時接收到的第9位數(shù)據(jù)。TI:發(fā)送中斷標(biāo)志位。必須由軟件清零。RI:接收中斷標(biāo)志位。必須由軟件清零。29SM0、SM1:串行口工作方式選擇位302.特殊功能寄存器PCONSMOD:波特率倍增位。當(dāng)SMOD=1時,波特率加倍;當(dāng)SMOD=0時,波特率不加倍。GF1、GF0:兩個通用標(biāo)志位,用戶使用。

思考:該兩位的作用是什么?317.3.2單片機串行口的工作方式1.方式0串行接口工作方式0為同步移位寄存器方式,多用于I/O口的擴展,其波特率是固定的,為fosc/12。TXD引腳輸出同步移位脈沖,RXD引腳串行輸入/輸出。2.方式1在方式l時,串行口被設(shè)置為波特率可變的8位異步通信接口。發(fā)送/接收1幀數(shù)據(jù)為10位,其中1位起始位、8位數(shù)據(jù)位(先低位后高位)和1位停止位。323.方式2串行口工作為方式2時,被定義為9位異步通信接口。發(fā)送/接收1幀數(shù)據(jù)為11位,其中1位起始位、8位數(shù)據(jù)位、1位控制/校驗位和1位停止位。控制/校驗位為第9位數(shù)據(jù)。4.方式3方式3為波特率可變的11位異步通信方式,除了波特率有所區(qū)別之外,其余同方式2。337.3.3串行通信的波特率(1)方式0的波特率在方式0下,串行口通信的波特率是固定的,其值為fosc/12(fosc為主機頻率)。(2)方式2的波特率在方式2下,通信波特率為fosc/32或fosc/64,根據(jù)特殊功能寄存器PCON中SMOD位的狀態(tài)來決定串行口在那個波特率下工作。選擇公式為:34(3)方式1或方式3的波特率

在這兩種方式下,串行口波特率是由定時器的溢出率決定的,因而波特率是可變的。波特率的公式為:式中:K為定時器T1的位數(shù)。357.4單片機串行口的應(yīng)用

7.4.1串行口擴展顯示器【例7-1】用8位串入并出移位寄存器74HC164擴展顯示器。36功能:把數(shù)據(jù)從顯示緩沖區(qū)送到數(shù)碼管。

ORG1000HMOVR2,#08H ;顯示8個數(shù)碼管MOVR0,#DIS

;顯示緩沖區(qū)未地址送入R0DL0:MOVA,@R0 ;取要顯示數(shù)作查表偏移量

MOVDPTR,#TAB ;指向字形表首MOVCA,@A+DPTR;查表得字形碼

MOVSBUF,A ;發(fā)送顯示DL1:JNBT1,DL1

;等待發(fā)送完一幀CLRT1 ;清中斷標(biāo)志,準(zhǔn)備繼續(xù)發(fā)送DECR0 ;更新顯示單元DJNZR2,DL0 ;重復(fù)顯示所有數(shù)碼管

37TAB:DB0C0H,0F9H,0A4H,0B0H,99H

;0,1,2,3,4,

DB92H,82H,0F8H,80H,90H

;5,6,7,8,9,

DB88H,83H,0C6H,0A1H,86H

;A,B,C,D,E,

DB8EH,0BFH,8CH,0FFH

;F,-,P,暗387.4.2串行口擴展的鍵盤在方式0下,串行口作同步移位寄存器用,以8位數(shù)據(jù)為一幀,先發(fā)送或接收最低位,每個機器周期發(fā)送或接收一位,故其波特率是固定的,為fosc/12。串行數(shù)據(jù)由RXD(P3.0)端輸入或輸出。

3940

ORG 0100HSTART: MOV R0,#50H ;片內(nèi)RAMMOV DPTR,#TAB RCVI:MOV SCON,#10H;設(shè)置串口0并接收

JNB RI,$ ;一幀接收完畢CLR RI MOV A,SBUF ;讀數(shù)據(jù)MOV R0,#0 ;初始鍵號 MOV R1,#0 ;查詢健計數(shù)器

LP1: RRC A ;從低位健判斷

JNC N1 ;c不等于1,有健INC R0 ;初始鍵號加一INC R141

CJNER1,#08,LP1;8個是否判斷完畢

SJMPRCVI

N1:MOVA,R0

ADDA,A

JMP@A+DPTR;有健按下

TAB:AJMPOPR0;轉(zhuǎn)向0號健

AJMPOPR1

AJMPOPR7

OPR0: …

LJMPSTART

OPR7: …

LJMPSTART

END427.4.3雙機通信

【例7-3】編程把甲機片內(nèi)RAM50H~5FH單元中的數(shù)據(jù)塊從串行口輸出。定義在方式3下發(fā)送,TB8作奇偶校驗位。采用定時器1方式2作波特率發(fā)生器,波特率為1200波特,fosc=11.0592MHz,預(yù)置值TH1=0E8H。43

編程使乙機從甲機接收16個字節(jié)數(shù)據(jù)塊,并存入片外3000H~300FH單元。接收過程中要求判奇偶校驗標(biāo)志RB8。若出錯則置F0標(biāo)志為1,若正確則置F0標(biāo)志為0,然后返回。

44發(fā)送子程序如下:

ORG0000H

MOVTMOD,#20H;設(shè)置定時器1為方式2

MOVTL1,#0E8H;設(shè)預(yù)置值MOVTH1,#0E8H

SETBTRI

;啟動定時器1

MOVSCON,#0C0H;設(shè)置串行口為方式3MOVPCON,#00H;SMOD=0

MOVR0,#50H ;設(shè)數(shù)據(jù)塊指針MOVR7,#10H ;設(shè)數(shù)據(jù)長度10H45

TRS:MOV A,@R0;取數(shù)據(jù)送至AMOV C,PMOV TB8,C;奇偶位P送至TB8MOV SBUF,A ;啟動發(fā)送

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論