版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第五章 常用(chn yn)串行通訊規(guī)范及具體編程方法基本概念 兩種通訊方式: 并行通訊:數(shù)據(jù)的各位同時傳送,傳送速度高,距離短。 串行通訊:數(shù)據(jù)一位一位順序傳送,傳送速度低,傳送距離長,幾十至幾千米。 目前,少量多CPU并行的系統(tǒng)中還存在并行通訊,少量計算機設(shè)備僅舉例通訊也采用并行通訊(打印電纜、智能儀器(yq)的GPIB接口)。絕大多數(shù)的計算機設(shè)備間通訊都采用串行方式。共二十八頁5-1 常用(chn yn)串行通訊硬件規(guī)范一、普通TTL或者CMOS邏輯 此類規(guī)范其實就是(jish)MCU或者串口芯片(16C550)等的直接邏輯接口,一般的低電平邏輯為0V,高電平為5V。現(xiàn)在許多MCU也支持
2、2.73.6V的高電平邏輯。 實際上這類信號傳輸為純粹的單端方式,即不平衡方式:用單線傳輸信號,以地線作為信號的回路,接收器是用單線輸入信號的,抗干擾能力差。 又由于信號最高電平就是數(shù)字系統(tǒng)的電源電平,因此基本無傳輸距離可言。 一般僅用于多MCU系統(tǒng)中,用于多任務(wù)時,主MCU與輔助MCU之間進行信息交換。共二十八頁 MCU的串口一般只提供RXD和TXD信號,不提供握手信號。16C550芯片是8250的擴展版本,支持握手信號。8250實際上原來大量應(yīng)用(yngyng)于PC機,現(xiàn)在基本上被16C550取代(南橋集成)。 16C550具有RTS(請求(qngqi)發(fā)送)和CTS(清除發(fā)送)等信號端
3、,能夠進行有握手的信號傳遞。 同時,為應(yīng)用于繁忙的系統(tǒng),它擴展有16個接收和16個發(fā)送緩沖器。尤其是接收緩沖器能夠支持系統(tǒng)在不能夠及時收取數(shù)據(jù)時不至于丟失上一幀已經(jīng)接收到的數(shù)據(jù)。圖5-1 16C550管腳圖共二十八頁二、 RS-232C標準 鑒于普通的TTL或者CMOS邏輯基本無法實現(xiàn)計算機設(shè)備之間的通訊,出現(xiàn)了RS-232C標準 。 采用(ciyng)單端,雙極性電壓供電;使用負邏輯,一般515V表示低電平,-5-15V表示高電平。接收器的輸入檢測電平邏輯0:+3V ; 邏輯1:-3V ;每個信號一根導(dǎo)線,雙向共用一個地線; 采用不平衡的發(fā)送器和接收器,易被干擾;傳輸速率20Kbps時,安全
4、傳輸距離15米;連接器有25插針、9插針等設(shè)計方案。 RS-232C標準定義了除地線之外的8個信號線,不過一般情況下,其中RXD、TXD、GND三線就能夠完成工作。其它的信號線都是輔助的握手信號,都是用來在傳輸過程中保證數(shù)據(jù)可靠接收的輔助信息。許多情況下,在系統(tǒng)具有做夠快的處理速度和可靠的數(shù)據(jù)校驗?zāi)芰r,可以不使用輔助信號線。 表5-1為9針D型接頭RS-232C標準的引腳信息,目前所有PC機上的COM1都是這種標準。共二十八頁引腳號信號名稱方 向信 號 功 能1DCDPC機儀器PC機收到遠程信號(載波檢測)2RXDPC機儀器PC機接收數(shù)據(jù)3TXDPC機儀器PC機發(fā)送數(shù)據(jù)4DTR PC機儀器P
5、C機準備就緒5GND- 信號地6DSRPC機儀器儀器準備就緒7RTSPC機儀器PC機請求發(fā)送數(shù)據(jù)8CTSPC機儀器儀器已切換到接收狀態(tài)(清除發(fā)送)9RIPC機儀器通知PC機,線路正常(振鈴指示)表5-1 RS232C的9針引腳信號(xnho)規(guī)范共二十八頁三、RS422/RS485規(guī)范 用雙絞線傳輸信號,信號在雙絞線中自成回路不通過地線,接收器以雙端差動方式輸入信號,抗干擾能力強。平衡,雙極性電壓供電;平衡驅(qū)動和差分接收方式,取消地線;抗干擾能力強;傳輸速率高,距離遠。電源采用普通(ptng)5V,目前也有芯片支持3V電源。 RS-422A的傳輸率最大為10Mb/s,在此速率下,電纜允許長度為
6、120m。如果采用較低傳輸速率,如90kb/s,最大距離可達1200m。 RS-485是RS-422A的變形,收發(fā)公用2根信號線。RS-422A為全雙工,可同時發(fā)送和接收;RS-485則為半雙工,在某一時刻,一個發(fā)送另一個接收,能夠?qū)崿F(xiàn)總線型網(wǎng)絡(luò)。圖5-2 RS422/RS485傳輸(chun sh)邏輯圖共二十八頁圖5-3 RS485以總線方式(fngsh)傳輸邏輯圖 RS485規(guī)范由于采用半雙工方式,同時使用2根信號線傳輸雙向數(shù)據(jù),故此可以構(gòu)成典型的總線型網(wǎng)絡(luò),更常用。即:網(wǎng)絡(luò)上始終僅存在一個(y )主機,其它都為從機(可以通過交換權(quán)利更換主機)。具體總線連接形式如圖5-3,對于遠激勵應(yīng)用
7、,兩個終端一般需要配置終端120歐姆電阻。共二十八頁 接 口性 能RS-232CRS-422ARS-485操作方式單端差動方式差動方式最大距離/m15(24kb/s)1200(100kb/s)1200(100kb/s)最大速率200kb/s10Mb/s10Mb/s最大驅(qū)動器數(shù)目1132(64)最大接收器數(shù)目11032(64)接收靈敏度3V200mV200mV驅(qū)動器輸出阻抗30060k120k接收器負載阻抗37k4k12k負載阻抗37k10060 對共用點電壓范圍/ V25-0.25+6-712表5-2 3種常用接口規(guī)范主要(zhyo)性能比較共二十八頁5-2 常用串行通訊(tngxn)芯片一、
8、RS232通訊芯片(一)早期芯片 早期的RS232通訊,典型使用(shyng)的芯片是:發(fā)送為MC1488,它采用雙電源供電,將TTL電平轉(zhuǎn)換為負邏輯;接受MC1489,它采用5V供電,將負邏輯轉(zhuǎn)換為正常的TTL電平。連接使用(shyng)見圖5-4。圖5-4 早期RS232芯片連接圖共二十八頁(二)目前常用芯片 鑒于早期的芯片為芯片組,芯片數(shù)目多;同時(tngsh),系統(tǒng)還必須為芯片提供雙電源。因此整個系統(tǒng)結(jié)構(gòu)復(fù)雜,目前常用的為單芯片,芯片本身在完成收發(fā)的同時(tngsh),自身在單5V(3V)的供電下產(chǎn)生雙輸出驅(qū)動電源(12V)。常見的芯片有MAX232,目前也大量使用它的升級版本:MAX
9、202,升級版本把原來需要的4個1微法電容換成了104。此芯片提供2路輸入與兩路輸出。圖5-5 MAX232芯片(xn pin)管腳與連接圖共二十八頁 鑒于目前大量的電池(dinch)供電系統(tǒng)的應(yīng)用,3V系統(tǒng)已經(jīng)大量應(yīng)用。許多公司適時推出了3V版本的單電源232芯片產(chǎn)品,例如SIPEX公司推出了SP3232芯片即支持2.75V電源。圖5-6 SP3232芯片(xn pin)管腳與連接圖共二十八頁二、RS485通訊芯片 目前各大半導(dǎo)體公司都推出了大量的RS485通訊芯片,典型的有TI公司的75LBC184。它采用單5V供電,高輸入內(nèi)阻,因此可以在一條總線上掛128個終端(zhn dun)。對于3
10、V系統(tǒng),SN75HVD08是一個比較好的選擇,它甚至可以在一條總線上掛256個終端(zhn dun)。圖5-7 RS485芯片(xn pin)管腳、結(jié)構(gòu)與真值表共二十八頁 大多數(shù)RS485通訊都用于長距離下使用,考慮到系統(tǒng)由多個終端組成,環(huán)境情況不可估計,因此,為個終端抗干擾考慮,一般均會采用光電隔離(gl)措施。如圖5-8,為采用高速光電隔離(gl)器6N137的隔離(gl)RS485電路。圖5-8 高速光電隔離(gl)的RS485電路共二十八頁5-3 串行通訊應(yīng)用(yngyng)編程舉例一、理想情況下的串行通訊舉例條件:多MCU并行系統(tǒng),其中主MCU一個,輔助MCU多個。 進行(jnxng
11、)主從通訊。要求:主機與從機通訊,收集從機處理完畢的信息。系統(tǒng)結(jié)構(gòu):如圖5-9。 TXD RXD 主MCURXD TXD 從MCU1RXD TXD 從MCU2RXD TXD 從MCU3圖5-9 主從MCU串行通訊連接圖共二十八頁(一)通訊方式 1.此系統(tǒng)為純粹的主從方式,從機只能同時有一個與主機通訊! 2.從機必須分配地址號,主機按照地址進行甄別呼叫。(二)通訊協(xié)議 任何通訊都必須遵守彼此約定的固定格式,以能夠(nnggu)相互理解通訊的內(nèi)容。這種彼此約定的格式就是通訊協(xié)議。本例定義協(xié)議如下:主機:地址(1字節(jié))+命令(1字節(jié))+命令內(nèi)容(1字節(jié))。其中,地址可以是1255,0號一般定義為公共
12、廣播地址;命令號可以是0255,表示要求從機進行不同操作(如:0127為寫操作,直接對應(yīng)從機接收寄存器地址,命令內(nèi)容為寫入內(nèi)容;128255為讀命令,對應(yīng)從機0127號寄存器地址);命令內(nèi)容是可能傳送下來的數(shù)據(jù)。共二十八頁從機: 1.當(dāng)主機發(fā)送寫命令時,應(yīng)答一個字節(jié)AAH,表示收到。 2.當(dāng)主機發(fā)送讀命令時,應(yīng)答主機要求傳送的寄存器內(nèi)容(假設(shè)為一個字節(jié))。 假設(shè)均使用51系列MCU,因此可以設(shè)置為串行通訊方式3工作,能夠保持較高的通訊速度。(三)軟件設(shè)計思路 對于主機,與從機通訊完全是主動的,因此,通訊完全可以采用主程序完成,因此,對于主機,通訊程序只是一個普通的函數(shù)(hnsh)。 對于從機,
13、因為主機呼叫是隨機的,因此只能采用中斷方式接收處理,才能滿足實時任務(wù)處理的需要。共二十八頁通訊開始置發(fā)送計數(shù)器=0發(fā)送當(dāng)前數(shù)據(jù),計數(shù)+1發(fā)送完1字節(jié)?3字節(jié)全部發(fā)送完畢?延時固定時間后接收成功收到數(shù)據(jù)?準備返回失敗信息準備返回接收的信息將接收的數(shù)據(jù)結(jié)果返回通訊開始圖5-10 主MCU通訊軟件(run jin)框圖 此函數(shù)應(yīng)該為帶有入口型參的函數(shù),同時又是一個返回型函數(shù)。 入口參數(shù)應(yīng)該有3個CHAR變量:從機地址(dzh)、命令號、命令內(nèi)容。 返回參數(shù)應(yīng)該包含兩個信息:成功與失敗信息、返回內(nèi)容??梢灾苯臃祷匾粋€INT型數(shù)據(jù),高位字節(jié)=0表示成功通訊,=FF表示通訊失??;低位字節(jié)為接收到的數(shù)據(jù)。Y
14、NYYNN共二十八頁圖5-11 從MCU通訊(tngxn)軟件框圖串口中斷入口置接收計數(shù)器=0接收當(dāng)前數(shù)據(jù),計數(shù)+1接收標志RI置位?清標志,3字節(jié)收完?是呼叫本機?根據(jù)命令號讀相應(yīng)信息將接收的數(shù)據(jù)寫寄存器退出通訊中斷是寫命令么?制作成功接收信息發(fā)送相應(yīng)的應(yīng)答信息NNNYYYYN共二十八頁本設(shè)計總結(jié) 設(shè)計建立在系統(tǒng)內(nèi),認為通訊過程為理想過程,不會出現(xiàn)差錯。實際上,真實的智能設(shè)備之間通訊可能需要適應(yīng)各種復(fù)雜環(huán)境,可能涉及許多實際問題,主要有如下幾點:1、數(shù)據(jù)傳輸過程因干擾產(chǎn)生錯誤。此時需要進行錯誤甄別(校驗:奇偶校驗、和校驗、冗余校驗等)和處理(chl)(一般可以要求重新發(fā)送)。2、數(shù)據(jù)因傳輸不
15、完整,造成整個報文短缺。需要進行接收過程的超時處理,避免使接收方進入死循環(huán)。3、許多系統(tǒng)實時性強,可能不允許在一次中斷內(nèi)完成整個通訊處理。需要采用多次串口中斷接收數(shù)據(jù)。共二十八頁 下面以一個匯編語言的例子來展示中斷發(fā)送和接收傳輸數(shù)據(jù)過程。采取甲發(fā)送,乙接收模式(msh),不考慮出錯處理。 異步通訊程序舉例,11.0592MHZ晶振,9600波特,8位無校驗通訊,發(fā)送和接收數(shù)據(jù)塊。 1.發(fā)送程序:將片內(nèi)RAM 50H起始單元的16個數(shù)由串行口發(fā)送。給出主程序初始化部分和發(fā)送中斷子程序。 ORG 0000H LJMP MAIN ORG 0023H LJMP COM_INTMAIN: MOV SP,
16、 #6FH MOV SCON,#01000000B ;串行口初始化 MOV TMOD,#00100000B ;T1方式1工作 MOV TH1, #0FDH MOV TL1, #0FDH SETB TR1 ;產(chǎn)生(chnshng)9600波特率時鐘 SETBEA SETBES ;開串行口中斷共二十八頁 MOV R0,#50H ;設(shè)數(shù)據(jù)指針MOV R7,#10H ;數(shù)據(jù)長度LOOP: MOV A,R0 ;取一個(y )字符MOV SBUF,A ;啟動一次發(fā)送HERE:SJMPHERE;CPU執(zhí)行其它任務(wù)COM_INT: PUSH A ;保護現(xiàn)場 PUSH PSW CLR TI ;清發(fā)送結(jié)束標志(b
17、iozh) DJNZ R7,NEXT ;是否發(fā)送完? CLR ES ;發(fā)送完,關(guān)閉串行口中斷 SJMP TENDNEXT: INC R0 ;未發(fā)送完,修改指針 MOV A,R0 ;取下一個字符 MOV SBUF,A ;發(fā)送一個字符TEND: POP PSW ;恢復(fù)現(xiàn)場 POP A RETI ;中斷返回 END共二十八頁2.接收程序(chngx):接收數(shù)據(jù)存入片內(nèi)RAM 50H起始單元的16個單元。給出主程序(chngx)初始化部分和接收中斷子程序(chngx)。 ORG 0000H LJMP MAIN ORG 0023H LJMP COM_INTMAIN: MOV SP, #6FH MOV S
18、CON,#01010000B ;串行口初始化 MOV TMOD,#001010000B ;T1方式1工作 MOV TH1, #0FDH MOV TL1, #0FDH SETB TR1 ;產(chǎn)生9600波特率時鐘 SETBEA SETBES ;開串行口中斷 MOV R0,#50H ;設(shè)數(shù)據(jù)指針 MOV R7,#10H ;數(shù)據(jù)長度HERE: SJMPHERE;CPU執(zhí)行其它(qt)任務(wù)共二十八頁COM_INT: CLR RI ;清接收結(jié)束標志 MOV R0, SBUF INC R0 ;未接收完,修改指針 DJNZ R7,REND ;是否接收完? CLR ES ;接收完,關(guān)閉串行口中斷(zhngdun
19、) SJMP RENDREND: RETI ;中斷返回 END總結(jié): 這個發(fā)送和接收程序均采用了中斷處理的方式,中斷程序每次處理一個字節(jié)的發(fā)送或者接收。處理通訊的中斷占用時間(shjin)很短,其它實踐均交還主程序使用,因此系統(tǒng)效率很高。 實際的通訊還需要進行容錯、超時等處理,此處的例子僅用于理想情況下。共二十八頁二、真實情況下的串行通訊舉例條件:485總線網(wǎng)絡(luò),主從系統(tǒng)。其中主機一個,子機多個(du )。 進行主從通訊。要求:主機與從機通訊,收集從機處理完畢的信息。系統(tǒng)結(jié)構(gòu):如圖5-10。 A B 主機 A B 從機1 A B 從機2 A B 從機3圖5-12 基于RS485總線的主從(zh
20、cng)系統(tǒng)串行通訊連接圖共二十八頁(一)通訊協(xié)議設(shè)計本例定義協(xié)議如下:主機:地址(1字節(jié))+命令(1字節(jié))+命令內(nèi)容(1字節(jié))+累加和(1字節(jié))。其中,地址可以是1255,0號一般定義為公共廣播地址;命令號可以是0255,表示要求從機進行不同操作(如:0127為寫操作,直接對應(yīng)從機接收寄存器地址,命令內(nèi)容為寫入內(nèi)容;128255為讀命令,對應(yīng)從機0127號寄存器地址);命令內(nèi)容是可能(knng)傳送下來的數(shù)據(jù)。從機:地址(1字節(jié))+1字節(jié)返回的數(shù)據(jù)+1字節(jié)累加和。 其中1字節(jié)返回數(shù)據(jù)可以是以下內(nèi)容: 1.當(dāng)主機發(fā)送寫命令時,應(yīng)答一個字節(jié)AAH,表示收到。 2.當(dāng)主機發(fā)送讀命令時,應(yīng)答主機要求傳送的寄存器內(nèi)容(假設(shè)為一個字節(jié))。 對于從機,返回地址可以增強主機的信息識別正確率,也可以不返回地址。返回地址也可以在多機系統(tǒng)中減低其它子機的識別準確率。共二十八頁(二)軟件設(shè)計思路 對于主機,與從機通訊完全是主動的,因此,通訊完全可以采用主程序完成,因此,對于主機,通訊程序只是一個普通的函數(shù)。對于發(fā)送,可以仍然采用第一個例子的方案,接收則需要進行超時判斷。 對于從機,因為主機呼叫是隨機(su j)的,因此只能采用中斷方式接收處
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)中心可持續(xù)發(fā)展
- 贛南師范大學(xué)《司法口才學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 贛南師范大學(xué)《國際私法》2022-2023學(xué)年第一學(xué)期期末試卷
- 阜陽師范大學(xué)《教師口語》2021-2022學(xué)年第一學(xué)期期末試卷
- 徐州市2024-2025學(xué)年五年級上學(xué)期11月期中調(diào)研數(shù)學(xué)試卷二(有答案)
- 福建師范大學(xué)協(xié)和學(xué)院《市場學(xué)導(dǎo)論》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《植物地理學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024年二級建造師管理-思維導(dǎo)圖
- 福建師范大學(xué)《人口地理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《合唱指揮》2022-2023學(xué)年第一學(xué)期期末試卷
- 醫(yī)用重組Ⅲ型人源化膠原蛋白敷料用于面部祛皺激光治療后的臨床療效評價應(yīng)用探討
- 《分式的乘除法》公開課一等獎?wù)n件
- 內(nèi)蒙古包頭蒙中2022學(xué)年八年級上學(xué)期期中考試生物模擬試題
- 四點共圓的六種判定方法
- 產(chǎn)品定價管理制度:內(nèi)部價格、價格策略制定、定價調(diào)價管理制度
- 盤扣式支架專項工程施工設(shè)計方案
- 2022新版語文課程標準精編模擬測試題及答案 (二)
- 某水泥廠回轉(zhuǎn)窯拆除施工方案
- LS/T 6116-2016大米粒型分類判定
- 2023年遼寧石化職業(yè)技術(shù)學(xué)院高職單招(語文)試題庫含答案解析
- GB/T 34106-2017橋梁主纜纏繞用S形熱鍍鋅或鋅鋁合金鋼絲
評論
0/150
提交評論