第章單片機(jī)串行通信_第1頁
第章單片機(jī)串行通信_第2頁
第章單片機(jī)串行通信_第3頁
第章單片機(jī)串行通信_第4頁
第章單片機(jī)串行通信_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第五章 單片機(jī)串行通信技術(shù)并行數(shù)據(jù)通信: 各位數(shù)據(jù)同時傳送,速度快,但數(shù)據(jù)線多,見圖a;串行數(shù)據(jù)通信:數(shù)據(jù)一位一位順序傳送,只用一對數(shù)據(jù)線,但通信速度慢,見圖b;abUSB串行串行并行第一節(jié) 串行通信基礎(chǔ)一、串行通信分類 數(shù)據(jù)是以字符為單位組成字符幀傳送的。發(fā)送端和接收端由各自獨立的時鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個時鐘彼此獨立,互不同步。 位于字符幀開頭,僅占一位,為邏輯低電平“0”,用來通知接收設(shè)備,發(fā)送端開始發(fā)送數(shù)據(jù)。線路上在不傳送字符時應(yīng)保持為“1”。接收端不斷檢測線路的狀態(tài) ,若連續(xù)為“1”以后又測到一個“0”,就知道發(fā)來一個新字符,應(yīng)馬上準(zhǔn)備接收。 數(shù)據(jù)位(D0D7)緊接在起始位后

2、面,通常為58位,依據(jù)數(shù)據(jù)位由低到高的順序依次傳送。 奇偶校驗位只占一位,緊接在數(shù)據(jù)位后面,用來表征串行通信中采用奇校驗還是偶校驗,也可用這一位(I/O)來確定這一幀中的字符所代表信息的性質(zhì)(地址/數(shù)據(jù)等)。 位于字符幀的最后,表征字符的結(jié)束,它一定是高電位(邏輯“1”)。停止位可以是1位、1.5位、或2位。接收端收到停止位后,知道上一字符已傳送完畢,同時也為接收下一字符作好準(zhǔn)備 1.異步通信: 2同步通信 同步通信時,字符與字符之間沒有間隙,也不用起始位和停止位,僅在數(shù)據(jù)塊開始時用同步字符SYNC來指示(常約定12個),然后是連續(xù)的數(shù)據(jù)塊。同步字符的插入可以是單同步字符方式或雙同步字符方式,

3、如圖5-3所示;同步字符可以由用戶約定,也可以采用ASCII碼中規(guī)定的SYN代碼,即16H。通信時先發(fā)送同步字符,接收方檢測到同步字符后,即準(zhǔn)備接收數(shù)據(jù)。在同步傳輸時,要求用時鐘來實現(xiàn)發(fā)送端與接收端之間的同步。為了保證接收無誤,發(fā)送方除了傳送數(shù)據(jù)外,還要把時鐘信號同時傳送。同步字符1數(shù)據(jù)字符1數(shù)據(jù)字符2數(shù)據(jù)字符3數(shù)據(jù)字符nCRC1CRC2單同步字符幀格式 同步字符1同步字符2數(shù)據(jù)字符1數(shù)據(jù)字符2數(shù)據(jù)字符nCRC1CRC2雙同步字符幀格式 二、波特率 波特率,即數(shù)據(jù)傳送速率,表示每秒鐘傳送二進(jìn)制代碼的位數(shù),它的單位是位/秒(b/s),常用bps表示。波特率是異步通信的重要指標(biāo),表征數(shù)據(jù)傳輸?shù)乃俣?/p>

4、,波特率越高,數(shù)據(jù)傳輸速度越快, 在數(shù)據(jù)傳送方式確定后,以多大的速率發(fā)送/接收數(shù)據(jù),是實現(xiàn)串行通信必須解決的問題。 假設(shè)數(shù)據(jù)傳送的速率是120字符/s,每個字符格式包含10個代碼位(1個起始位、1個停止位、8個數(shù)據(jù)位),則通信波特率為: 120字符/s10位/字符1200b/s1200波特 每一位的傳輸時間為波特率的倒數(shù): Td1/12000.833ms三、串行通信的制式單工:廣播雙工:電話半雙工:對講機(jī)第二節(jié) 串行通信總線標(biāo)準(zhǔn)一、RS-232C總線標(biāo)準(zhǔn)與應(yīng)用 -3-15V:邏輯1 +3 +15V:邏輯0美國電子工業(yè)協(xié)會EIA公布的串行總線標(biāo)準(zhǔn)DB-25DB-9最少3根線RxD (3)TxD

5、(2)地 (5)(一) RS-232C的電氣特性 (二)RS232各引腳信號說明插針信號名功能說明信號方向?qū)TE對DCE1*2*3*4*5*6*7*8*9,101112131415*1617*181920*21*22*23*24*25GNDTXDRXDRESCTSDSRSGNDDCDDTR保護(hù)地發(fā)送數(shù)據(jù)接收數(shù)據(jù)請求發(fā)送允許發(fā)送數(shù)據(jù)設(shè)備(DCE)準(zhǔn)備就緒信號地(公共回線)接收線路信號檢測未用,為測試保留空輔信道接受線路信號檢測輔信道允許發(fā)送輔信道發(fā)送數(shù)據(jù)發(fā)送信號碼元定時(DCE為源)輔信道接收數(shù)據(jù)發(fā)送信號碼元定時空輔信道請求發(fā)送數(shù)據(jù)終端貯備就緒信號質(zhì)量檢測振鈴指示數(shù)據(jù)信號速率選擇發(fā)送信號碼元定

6、時(DCE為源)空出入出入入入出入出入出出出入(三)RS-232C與單片機(jī)的連接公用電話網(wǎng)ModemModem計算機(jī)計算機(jī)RS232CRS232C(四)遠(yuǎn)程串行通信應(yīng)用二、RS-485總線標(biāo)準(zhǔn) 1RS-485接口介紹 RS-485收發(fā)器采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力,使用RS-485總線,一對雙絞線就能實現(xiàn)多站聯(lián)網(wǎng),構(gòu)成分布式系統(tǒng),設(shè)備簡單、價格低廉、能進(jìn)行長距離通信的優(yōu)點使其得到了廣泛的應(yīng)用。2RS-485芯片介紹(1)RO:接收器輸出。 (2):接收器輸出使能。 (3)DE:驅(qū)動器輸出使能。 (4)DI:驅(qū)動器輸入。 (5)GND:地。(7)B:接收器反相輸入和驅(qū)動器反

7、相輸出。(8)VCC:5V電源。(6)A:接收器同相輸入和驅(qū)動器同相輸出。3RS-485芯片應(yīng)用介紹 下圖為典型半雙工RS-485通信網(wǎng)絡(luò)。圖中各驅(qū)動器分時使用傳輸線(不發(fā)送數(shù)據(jù)的驅(qū)動器應(yīng)被禁止)。網(wǎng)絡(luò)上可掛32個站。傳輸線通常采用雙絞線,可以較大程度抑制共模干擾。在傳輸線的末端接120的電阻進(jìn)行阻抗匹配,消除由于不匹配在線路上產(chǎn)生的信號反射。 第三節(jié)MCS-51單片機(jī)串行接口、MCS-51串行口的內(nèi)部結(jié)構(gòu)1串行口數(shù)據(jù)緩沖器SBUF接收、發(fā)送對應(yīng)于同一地址(99H),但實際上是兩個綬沖器。TxD發(fā)送SBUF(99H)內(nèi)部DBTIRxD輸入移位寄存器接收SBUF(99H)RI2.串行口控制寄存器

8、SCON(1)SM0、SM1 控制串行口方式 (2)SM2 允許方式2、3的多機(jī)通訊特征位 SCON(98H)SM0SMlSM2RENTB8RB8TIRISM0SM1工作方式功能說明001101010123同步移位寄存器輸入/輸出,波特率為fOSC/128位UART,波特率可變(TI溢出率/n,n=16或32)9位UART,波特率為fosc/n,n=32或64)9位UART,波特率可變(TI溢出率/n,n=16或32) 多機(jī)通信控制位,用于方式2和方式3中。在方式2和方式3處于接收方式時,若SM2=1,表示置多機(jī)通信功能。如果接收到的第9位數(shù)據(jù)RB8為1,則將數(shù)據(jù)裝入SBUF,并置RI為1,向

9、CPU申請中斷;如果接收到的第9位數(shù)據(jù)RB8為0,則不接收數(shù)據(jù),RI仍為0,不向CPU申請中斷。若SM2=0,不論接收到的第9位RB8為0還是為l,TI、RI都以正常方式被激活,接收到的數(shù)據(jù)裝入SBUF。在方式1,若SM2=1,則只有收到有效的停止位后,RI置1。在方式0中,SM2應(yīng)為0。 (3)REN:允許串行接收位。REN=l時,允許接收;REN=0時,禁止接收。 (4)TB8:發(fā)送數(shù)據(jù)的第9位。在方式2和方式3中,TB8是第9位發(fā)送數(shù)據(jù),可做奇偶校驗位。在多機(jī)通信中,可作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)識位,一般約定發(fā)送地址幀時,TB8為1,發(fā)送數(shù)據(jù)幀時,TB8為0。 (5)RB8:接收數(shù)據(jù)的第

10、9位。在方式2和方式3中,RB8是第9位接收數(shù)據(jù)。 (6)TI:發(fā)送中斷標(biāo)志位。在方式0中,發(fā)送完8位數(shù)據(jù)后,由硬件置位;在其它方式,在發(fā)送停止位時由硬件置位。因此,TI是發(fā)送完一幀數(shù)據(jù)的標(biāo)志,當(dāng)TI=l時,向CPU申請串行中斷,響應(yīng)中斷后,必須由軟件清除TI。 (7)RI:接收中斷標(biāo)志位。在方式0中,接收完8位數(shù)據(jù)后,由硬件置位;在其它方式中在接收停止位的中間點由硬件置位。接收完一幀數(shù)據(jù)RI=l,向CPU申請中斷,響應(yīng)中斷后,必須由軟件清除RI。1111111SBUF1111 1111RxD1RI=1 3電源及波特率選擇寄存器PCON PCON主要是為CHMOS型單片機(jī)的電源控制而設(shè)置的專用

11、寄存器,字節(jié)地址為87H。在HMOS的8051單片機(jī)中,PCON只有最高位被定義,其它位都是虛設(shè)的。PCON(87H)SMODGF1GF0PDIDL PCON的最高位SMOD為串行口波特率的倍增位。在方式1、2和3時,串行通信的波特率與SMOD有關(guān)。當(dāng)SMOD=l時,通信波特率加倍,當(dāng)SMOD=0時,波特率不變。其它各位為掉電方式控制位,在此不再贅述。二、MCS-51串行口的工作方式 1工作方式0 在方式0下,串行口作同步移位寄存器用,其波特率固定為fOSC/l2。串行數(shù)據(jù)從RXD(P3.0)端輸入或輸出,同步移位脈沖由TXD(P3.1)送出。移位數(shù)據(jù)的發(fā)送和接收以8位為一幀,無需起始位和停止

12、位。這種方式常用于擴(kuò)展I/O口。 2工作方式1 方式1為波特率可調(diào)的8位通用異步通信接口。發(fā)送或接收一幀信息為10位,分別為起始位0,8位數(shù)據(jù)位和1位停止位1。 (1)數(shù)據(jù)發(fā)送。發(fā)送時,數(shù)據(jù)從TXD端輸出。當(dāng)執(zhí)行MOV SBUF,A指令時,數(shù)據(jù)被寫入發(fā)送緩沖器SBUF,啟動發(fā)送器發(fā)送。當(dāng)發(fā)送完一幀數(shù)據(jù)后,置中斷標(biāo)志TI為1。 (2)數(shù)據(jù)接收。接收時,數(shù)據(jù)從RXD端輸入。當(dāng)允許接收控制位REN為l后,串行口采樣RXD,當(dāng)采樣到由1到0跳變時,確認(rèn)是起始位“0”,啟動接收器開始接收一幀數(shù)據(jù)。當(dāng)RI=0且接收到停止位為l(或SM2=0)時,將停止位送入RB8,8位數(shù)據(jù)送入接收緩沖器SBUF,同時置中

13、斷標(biāo)志RI=1。所以,方式1接收時,應(yīng)先用軟件清除RI或SM2標(biāo)志。 3工作方式2、方式3 在工作方式2、方式3下,串行口為9位異步通信接口,發(fā)送、接收一幀信息為11位:即1位起始位(0)、8位數(shù)據(jù)位、1位可編程位和1位停止位(1)。傳送波特率與SMOD有關(guān)。其數(shù)據(jù)幀格式如下所示。0D0D1D2D3D4D5D6D70/11 起 8位數(shù)據(jù) 奇偶 停 始 校驗 止 位 位 (1)數(shù)據(jù)發(fā)送 串行口工作于方式2、方式3進(jìn)行數(shù)據(jù)發(fā)送時,數(shù)據(jù)由TXD端輸出,附加的第9位數(shù)據(jù)為SCON中的RB8(由軟件設(shè)置)。用指令將要發(fā)送的數(shù)據(jù)寫入SBUF,即可啟動發(fā)送器。送完一幀信息時,TI由硬件置1。 (2)數(shù)據(jù)接收

14、 當(dāng)REN=1時,允許接收。與方式1相同,CPU開始不斷采樣RXD,將8位數(shù)據(jù)送入SBUF中,接收到的第9位數(shù)據(jù)送入RB8中,當(dāng)同時滿足RI=0,SM2=0或接收到第9位數(shù)據(jù)為1這三個條件都滿足時,置RI=1,否則接收數(shù)據(jù)無效。串行口的波特率C/工作方式波特率/bpsfosc/MHZ定時器T1SMOD模式定時器初值方式01M12方式2375K121187.5K120方式1方式362.5K12102FFH19.2K11.059102FDH9.6K11.059002FDH4.8K11.059002FAH2.4K11.059002F4H1.2K11.059002E8H137.511.0590021D

15、H11012001FEEBH方式00.5M6方式2187.5K61方式1方式319.2K6102FEH9.6K6102FDH4.8K6002FDH2.4K6002FAH1.2K6002F3H0.6K6002E6H110600272H556001FEEBH 甲機(jī)發(fā)送程序: ORG 0000H STA: MOV TMOD,#20H ;設(shè)置波特率 MOV TL1,#0FAH MOV TH1,#0FAH SETB TR1 MOV SCON,#40H ;置工作方式1 CLR TI MOV A,#00H MOV SBUF,A ;發(fā)送亮燈信號WAIT: JBC TI,CONT ;發(fā)送成功清標(biāo)志 AJMP W

16、AIT ;等待發(fā)送完畢CONT: SJMP STA ;重復(fù)發(fā)送 END例5.3:利用方式1實現(xiàn)單片機(jī)雙機(jī)通信,主頻為6M,波特率為2400bps,電路見圖5-10。當(dāng)兩個單片機(jī)距離較近時,甲、乙兩機(jī)的發(fā)送端與接收端分別直接相聯(lián),兩機(jī)共地。執(zhí)行程序,甲機(jī)將亮燈信號發(fā)送給乙機(jī),若通信正常,乙機(jī)接收到信號后點亮8個發(fā)光二極管。乙機(jī)采用查詢與中斷兩種工作方式。二、MCS-51單片機(jī)雙機(jī)通信 乙機(jī)查詢工作方式接收: ORG 0000H MOV TMOD,#20H ;設(shè)置通信波特率 MOV TL1,#0FAH MOV TH1,#0FAH SETB TR1 MOV SCON,#40H CLR RI SETB

17、 REN ;允許接收WAIT: JBC RI,READ ;接收成功清標(biāo)志 AJMP WAIT ;接收未完等待 READ: MOV A ,SBUF MOV P1,A ;接收亮燈信號送P1口 SJMP $ END 乙機(jī)中斷工作方式接收 ORG 0000H AJMP MAIN ORG 0023H AJMP ZD ;轉(zhuǎn)串口中斷程序MAIN:MOV TMOD,#20H MOV TL1,#0FAH MOV TH1,#0FAH SETB TR1 MOV SCON,#50H CLR RI MOV IE,#90H ;開中斷 SJMP $ ZD:CLR RI ;清接收標(biāo)志 MOV A ,SBUF ;讀接收信號 M

18、OV P1,A RETI ;中斷返回 END 多機(jī)通信的實現(xiàn),主要是依靠主、從機(jī)之間正確設(shè)置與判斷SM2和發(fā)送或接收的第9位數(shù)據(jù)(TB8或RB8)來完成的。多機(jī)通信過程如下:(1)使所有從機(jī)的SM2置1,處于只接收地址幀的狀態(tài)。(2)主機(jī)發(fā)送一幀地址信息,與所需從機(jī)聯(lián)絡(luò)。主機(jī)應(yīng)置RB8為1,表示發(fā)送的是地址。(3)各從機(jī)接收到地址信息后,因RB8為1,置中斷標(biāo)志RI,向CPU申請中斷。中斷后,將所接收地址與本從機(jī)的地址相比較,對于地址相符的從機(jī),使SM2清0以接收主機(jī)隨后發(fā)來的所有信息;對于地址不相符的從機(jī),仍保持SM2為1的狀態(tài),對從機(jī)隨后發(fā)送的數(shù)據(jù)不予接收,直至發(fā)送新的地址幀。(4)主機(jī)發(fā)送控制命令和數(shù)據(jù)信息給被尋址的從機(jī)。此時,主機(jī)置RB8為0,表示發(fā)送的是數(shù)據(jù)或控制命令。對于沒選中的從機(jī),因為SM2=1,RB8=0,所以不會產(chǎn)生中斷,不接收主機(jī)發(fā)送的信息。 MCS-51具有多機(jī)通信功能,所謂多機(jī)通信是指一臺主機(jī)和多臺從機(jī)之間的通信,構(gòu)成主從式多機(jī)分布通信系統(tǒng)。主機(jī)發(fā)送的信息可以傳輸?shù)礁鱾€從機(jī),各從機(jī)只能向主機(jī)發(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論