第8章串行通信接口_第1頁
第8章串行通信接口_第2頁
第8章串行通信接口_第3頁
第8章串行通信接口_第4頁
第8章串行通信接口_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2022-5-5計算機接口技術(shù)1第第8章章 串行通信接口串行通信接口本本 章章 內(nèi)內(nèi) 容容 串行通信的基本概念串行通信的基本概念 串行通信協(xié)議串行通信協(xié)議 串行通信接口標(biāo)準(zhǔn)串行通信接口標(biāo)準(zhǔn) 串行通信接口電路串行通信接口電路 RS-232C標(biāo)準(zhǔn)的串行通信接口設(shè)計標(biāo)準(zhǔn)的串行通信接口設(shè)計 RS-485標(biāo)準(zhǔn)的串行通信接口設(shè)計標(biāo)準(zhǔn)的串行通信接口設(shè)計 基于基于UART的串行通信接口的串行通信接口2022-5-5計算機接口技術(shù)28.1 串行通信的基本概念串行通信的基本概念 串行傳送串行傳送是在一根一根或一對一對傳輸線傳輸線上,在時鐘時鐘的作用的作用下下,一位一位一位一位地傳送信息地傳送信息,這根(對)線既作

2、為既作為數(shù)據(jù)線數(shù)據(jù)線又作為又作為聯(lián)聯(lián)絡(luò)線絡(luò)線。可以利用電話線進行數(shù)據(jù)傳送,從而大大降低了成本,特別適用于遠(yuǎn)距離通信特別適用于遠(yuǎn)距離通信,但傳送速度較慢。2022-5-5計算機接口技術(shù)38.1.1 串行通信的基本特點串行通信的基本特點1.采用1根或1對對傳輸線傳輸線按位按位傳送信息傳送信息。傳輸線傳輸線既作為數(shù)據(jù)線既作為數(shù)據(jù)線又作為聯(lián)絡(luò)線作為聯(lián)絡(luò)線; 2.為了對傳輸中的信息進行識別,要求有固定的有固定的數(shù)據(jù)格式數(shù)據(jù)格式,分同步同步和異異步步數(shù)據(jù)格式數(shù)據(jù)格式; 3.為了保持雙方的收發(fā)速度一致,串行傳輸?shù)拇袀鬏數(shù)乃俾市枰刂扑俾市枰刂?,采用雙采用雙方約定的方約定的波特率波特率進行傳輸。 4.串行

3、通信易受干擾串行通信易受干擾,特別是遠(yuǎn)距離傳輸,出錯難以避免,故需要進行需要進行差錯的檢測與控制,差錯的檢測與控制,如奇偶校驗,奇偶校驗,CRCCRC等。 5.串行通信串行通信中對信號的邏輯定義對信號的邏輯定義和TTLTTL不一定兼容,需要進行需要進行邏輯關(guān)系邏輯關(guān)系和邏輯電平轉(zhuǎn)換和邏輯電平轉(zhuǎn)換;總之,串行通信制定了各種通信協(xié)議與標(biāo)準(zhǔn),來規(guī)范串行通信雙方共同遵守的操作規(guī)則。2022-5-5計算機接口技術(shù)48.1.2 串行通信的串行通信的工作制式工作制式1.1. 全雙工全雙工 全雙工全雙工是通信雙方通信雙方同時進行同時進行發(fā)送發(fā)送和接收接收操作。為此,要設(shè)置兩根要設(shè)置兩根( (或兩對或兩對) )

4、傳輸線傳輸線,分別發(fā)送和接收數(shù)據(jù)分別發(fā)送和接收數(shù)據(jù),使數(shù)據(jù)的發(fā)送與接收分流,如圖圖8.18.1所示所示。全雙工方式全雙工方式在通信過程中在通信過程中,無須進行接收無須進行接收/ /發(fā)送方向的發(fā)送方向的切換切換,因此,沒有沒有切換操作所產(chǎn)生的時間延遲時間延遲,有利于遠(yuǎn)程實時監(jiān)測與控制。圖圖8.1 8.1 全雙工方式示意圖全雙工方式示意圖2022-5-5計算機接口技術(shù)52 2. .半雙工半雙工 半雙工半雙工是通信雙方通信雙方分時進行分時進行發(fā)送發(fā)送和接收接收操作,即雙方都可發(fā)可收,但不能在同一時刻發(fā)送和接收,如圖圖8.28.2所示所示。因為半雙工只設(shè)置設(shè)置1 1根根( (或或1 1對對) )傳輸線

5、傳輸線,用于發(fā)送時就不能接收,用于接收時就不能發(fā)送。所以在半雙工通信過程中半雙工通信過程中,需要進行接收需要進行接收/ /發(fā)送方發(fā)送方向的切換向的切換,會有延時會有延時產(chǎn)生。圖圖8.2 8.2 半雙工方式示意圖半雙工方式示意圖3. 單工單工 單工單工是通信雙方通信雙方只能進行一個方向的傳輸只能進行一個方向的傳輸,不能有雙向傳輸不能有雙向傳輸。此方式目前很少使用了。2022-5-5計算機接口技術(shù)68.1.3 串行通信的串行通信的基本方式基本方式1 1. . 異步通信方式異步通信方式 異步通信異步通信是以字符為單位傳輸?shù)囊宰址麨閱挝粋鬏數(shù)?,每個字符經(jīng)過格式化之后,作為獨立的一幀數(shù)據(jù),可以隨機由發(fā)送

6、端發(fā)出去可以隨機由發(fā)送端發(fā)出去,即發(fā)送端發(fā)送端發(fā)出的每發(fā)出的每個字符在通信線上出現(xiàn)的時間個字符在通信線上出現(xiàn)的時間是任意的任意的。因此異步通信異步通信不要求不要求在收雙收雙方之間方之間使用同一根時鐘線使用同一根時鐘線。2.2.同步通信方式同步通信方式 同步通信同步通信是以數(shù)據(jù)塊(字符塊)為單位傳輸?shù)囊詳?shù)據(jù)塊(字符塊)為單位傳輸?shù)?,每個數(shù)據(jù)塊經(jīng)過格式化之后,形成一幀數(shù)據(jù),作為一個整體進行發(fā)送與接收,因此,傳輸一旦開始,就要求數(shù)據(jù)塊內(nèi)部的每一位都要同步要求數(shù)據(jù)塊內(nèi)部的每一位都要同步。為此,收收/ /發(fā)兩端發(fā)兩端必須使用同一時鐘必須使用同一時鐘來控制控制數(shù)據(jù)塊內(nèi)部位與位之間的定時數(shù)據(jù)塊內(nèi)部位與位之間

7、的定時,因此同步通同步通信信要求雙方之間要求雙方之間必須設(shè)置一根時鐘線設(shè)置一根時鐘線。 異步通信方式的傳輸速率低,同步通信方式的傳輸速率高。異步傳輸?shù)膫鬏斣O(shè)備簡單,易于實現(xiàn),同步傳輸?shù)膫鬏斣O(shè)備復(fù)雜,技術(shù)要求高。因此,異步串行通信異步串行通信一般用在用在數(shù)據(jù)傳輸時間不能確定數(shù)據(jù)傳輸時間不能確定、發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)不連續(xù)不連續(xù)、數(shù)據(jù)量較少數(shù)據(jù)量較少和數(shù)據(jù)傳輸速率較低數(shù)據(jù)傳輸速率較低的場合;而同步串行通信同步串行通信則用在用在要求快速快速、連續(xù)連續(xù)傳輸大批量數(shù)據(jù)大批量數(shù)據(jù)的場合。 2022-5-5計算機接口技術(shù)78.1.4 串行通信的串行通信的調(diào)制與解調(diào)調(diào)制與解調(diào) 串行通信是數(shù)字通信串行通信是數(shù)字通信

8、,包含了從低頻到高頻的諧波成分,因此要求傳輸線的頻帶很寬要求傳輸線的頻帶很寬。在遠(yuǎn)距離通信時,為了降低成本,通信線路利用普通電話線,而這種電話線的頻帶寬度有限。如果用數(shù)字信號直如果用數(shù)字信號直接傳輸接傳輸,高次諧波的衰減就會很厲害,從而使從而使傳輸?shù)男盘柈a(chǎn)生嚴(yán)重的傳輸?shù)男盘柈a(chǎn)生嚴(yán)重的畸變和失真畸變和失真;若若用模擬信號用模擬信號傳輸傳輸時,則失真較小則失真較小。因此需要因此需要在通信雙在通信雙方方采用采用MODEMMODEM進行數(shù)字信號進行數(shù)字信號與模擬信號模擬信號轉(zhuǎn)換轉(zhuǎn)換,調(diào)制與解調(diào)調(diào)制與解調(diào)如圖如圖8.38.3所示所示。圖8.3 調(diào)制與解調(diào)示意圖2022-5-5計算機接口技術(shù)88.2 串行

9、通信協(xié)議串行通信協(xié)議 所謂通信協(xié)議所謂通信協(xié)議(也叫做通信控制規(guī)程)是指通信雙方的一種約是指通信雙方的一種約定定,約定中包括包括對數(shù)據(jù)格式數(shù)據(jù)格式、傳輸速度傳輸速度、檢糾錯方式檢糾錯方式、傳送步驟傳送步驟,以及控控制字符定義制字符定義等問題作出統(tǒng)一規(guī)定作出統(tǒng)一規(guī)定,通信雙方必須共同遵守共同遵守。 8.2.1 串行通信串行通信中中的的傳輸速率控制傳輸速率控制1 1. . 數(shù)據(jù)傳輸速率控制的實現(xiàn)方法數(shù)據(jù)傳輸速率控制的實現(xiàn)方法 串行通信時串行通信時,要求雙方的傳輸速率嚴(yán)格一致要求雙方的傳輸速率嚴(yán)格一致,并在傳輸開始之前,要預(yù)先設(shè)定,否則,會發(fā)生錯誤。 在數(shù)字通信中,傳輸速率的控制傳輸速率的控制是通過

10、通過波特率時鐘發(fā)生器波特率時鐘發(fā)生器和設(shè)置波設(shè)置波特率因子特率因子或波特率除數(shù)波特率除數(shù)來實現(xiàn)的來實現(xiàn)的。2022-5-5計算機接口技術(shù)92.2.波特率、波特率、發(fā)送發(fā)送/ /接收時鐘波特率因子接收時鐘波特率因子 (1)(1)什么是波特率什么是波特率 波特率波特率(Baud)是每秒傳輸串行數(shù)據(jù)的位數(shù)每秒傳輸串行數(shù)據(jù)的位數(shù)。例如,每秒傳輸1b,就是1波特;每秒傳輸1200b,就是1200波特。其單位單位是b/sb/s(位/秒),也可寫成也可寫成bpsbps。 例如,串行通信的數(shù)據(jù)傳輸率為1200b/s,則每一個數(shù)據(jù)位的傳輸時間Td為波特率的倒數(shù),即: (2)(2)發(fā)送發(fā)送/ /接收時鐘接收時鐘

11、發(fā)送時發(fā)送時,發(fā)送端發(fā)送端在發(fā)送時鐘脈在發(fā)送時鐘脈TxC的作用下的作用下,將將發(fā)送寄存器發(fā)送寄存器的數(shù)據(jù)數(shù)據(jù)按位串行移位按位串行移位輸出輸出,送到通信線上;接收時接收時,接收端接收端在接收時鐘脈沖在接收時鐘脈沖RxC的作用下的作用下,對來自對來自通信線上的串行通信線上的串行數(shù)據(jù)數(shù)據(jù),按位串行移入移入接收寄存器接收寄存器,故發(fā)送發(fā)送/ /接收接收時鐘脈沖時鐘脈沖又可稱為稱為移位脈沖移位脈沖。d11 bT= 0 .8 3 3 m sB au d1 2 0 0 b /s位2022-5-5計算機接口技術(shù)10(3 3)波特率因子)波特率因子 發(fā)送發(fā)送/ /接收時鐘接收時鐘的頻率頻率,一般都設(shè)置為一般都設(shè)

12、置為波特率的整數(shù)倍波特率的整數(shù)倍,如1、16、32、64倍。并且,把這個把這個波特率的倍數(shù)波特率的倍數(shù)稱為波特率因子波特率因子(factor)或波特率系數(shù)波特率系數(shù),其含義其含義是每傳輸一個數(shù)據(jù)位需每傳輸一個數(shù)據(jù)位需要多是個移位脈沖要多是個移位脈沖,單位單位是個個/ /位位。 因此,可得出發(fā)送發(fā)送/ /接收時鐘頻率接收時鐘頻率TxC、波特率因子波特率因子factor和波特率波特率Baud三者之間的關(guān)系三者之間的關(guān)系,即: TxCTxCfactorfactorBaud Baud (8.18.1) 例如例如,某一串行接口電路的波特率為1200b/s,波特因子為16個/位,則發(fā)送時鐘的頻率為: Tx

13、CTxC1616個個/b/b1200b/s1200b/s19200Hz19200Hz 際上,波特率因子波特率因子可理解為理解為發(fā)送或接收發(fā)送或接收1b1b數(shù)據(jù)所需的時鐘脈沖個數(shù)數(shù)據(jù)所需的時鐘脈沖個數(shù)。引用波特率因子引用波特率因子的目的目的是為了是為了提高定位采樣的分辨率提高定位采樣的分辨率,有利于有利于鑒別干鑒別干擾擾和提高提高異步串行通信的可靠性可靠性。這一點可從圖圖8.48.4中看出。 如果沒有這種倍頻關(guān)系,定位采樣頻率和傳輸波特率相同,則在一個位周期中,只能采樣一次,這樣就容易產(chǎn)生錯誤。2022-5-5計算機接口技術(shù)11 圖8.4 16倍波特率時鐘的作用例如例如,為了檢測起始位下降沿的出

14、現(xiàn),在檢測起始位的前夕采樣一次,下次采樣要到起始位結(jié)束前夕才進行,假若在這個位周期期間,因某種原因恰好使接收端時鐘往后偏移了一點點,就會錯過起始位,從而造成后面整個各位檢測和識別的錯誤。2022-5-5計算機接口技術(shù)123.3.波特率時鐘發(fā)生器波特率時鐘發(fā)生器 波特率時鐘發(fā)生器波特率時鐘發(fā)生器可由定時定時/ /計數(shù)器計數(shù)器82C54A來實現(xiàn)來實現(xiàn),關(guān)鍵關(guān)鍵是要找出是要找出波特率的發(fā)送波特率的發(fā)送/ /接收接收時針脈沖時針脈沖與定時定時/ /計數(shù)器的計數(shù)器的定時常數(shù)定時常數(shù)之間之間的的關(guān)系關(guān)系, 從第4章定時/計數(shù)器82C54A的工作原理可知,定時器82C54A的輸出OUT、輸入CLK及定時常數(shù)

15、TC的關(guān)系式如下: OUT=CLK/TCOUT=CLK/TC (8-28-2) (8-2)式中,OUT為輸出波形頻率;CLK為輸入時針頻率(通常是晶振的輸出頻率);TC為定時常數(shù)。如果把82C54A的輸出方波OUT作為串行通信的發(fā)送/接收時鐘TxC,則有 OUT=TxCOUT=TxC (8-38-3) 將式(8-1)和式(8-2)代入式(8-3),可得 CLK/TC=Baudfactor 所以 TC=CLK/TC=CLK/(BaudBaudfactorfactor) (8-48-4)2022-5-5計算機接口技術(shù)13 從式(從式(8-48-4)可知)可知,當(dāng)當(dāng)輸入時鐘頻率輸入時鐘頻率和波特率因

16、子波特率因子選定后選定后,求求波特率波特率的問題就變成了就變成了求求定時器82C54A的定時常數(shù)定時常數(shù)TC的問題了。而這個這個定時常數(shù)定時常數(shù)也就是波特率時鐘發(fā)生器就是波特率時鐘發(fā)生器的輸入時鐘頻率的分頻系數(shù)輸入時鐘頻率的分頻系數(shù),或叫波特率除數(shù)波特率除數(shù)。 例如例如,要求串行通信的傳輸率為9600波特,波特率因子為16,82C54A的輸入時鐘為1.19318MHz,則82C54A的定時常數(shù), 根據(jù)(8-4)式為:TC=1.19318106次/s/(9600b/s16次/b)=8 因此,利用利用82C54A82C54A作波特率時鐘發(fā)生器作波特率時鐘發(fā)生器,就需要利用式(需要利用式(8-48-

17、4)計算計算 出波特率相對應(yīng)的定時常數(shù)出波特率相對應(yīng)的定時常數(shù),然后,將定時常數(shù)將定時常數(shù)裝入裝入82C54A的計數(shù)計數(shù)初初值值寄存器寄存器啟動定時器即可啟動定時器即可。2022-5-5計算機接口技術(shù)148.2.2 串行通信串行通信中中的的差錯檢測差錯檢測1. 誤碼率的控制 所謂誤碼率所謂誤碼率,是是指數(shù)據(jù)經(jīng)過傳輸后發(fā)生錯誤的位數(shù)發(fā)生錯誤的位數(shù)與 總傳輸位數(shù)總傳輸位數(shù)之比之比。在計算機通信中,一般要求要求誤碼率達到誤碼率達到1010-6-6數(shù)量級數(shù)量級。2. 檢糾錯編碼方法的使用 在實際應(yīng)用中,具體實現(xiàn)具體實現(xiàn)檢錯編碼的方法檢錯編碼的方法很多很多,而在串行通信中在串行通信中應(yīng)用最多應(yīng)用最多的是

18、奇偶校驗奇偶校驗和循環(huán)冗余碼校驗循環(huán)冗余碼校驗。 錯誤檢測錯誤檢測只在接收方進行只在接收方進行,并且是在接收程序中通過軟件來檢測在接收程序中通過軟件來檢測。3. 錯誤狀態(tài)的分析與處理 奇偶校驗錯奇偶校驗錯:通常是由噪聲干擾而引起的,發(fā)生這種錯誤時,采用采用要求發(fā)送方重發(fā)要求發(fā)送方重發(fā)。 溢出錯溢出錯:通常是由收發(fā)雙方的速率不匹配而引起的,可以采用采用降低降低發(fā)送方的發(fā)送速率發(fā)送速率或者或者在接收方設(shè)置設(shè)置FIFOFIFO緩沖區(qū)緩沖區(qū)的方法來減少這種錯誤。 幀格式錯幀格式錯:這種錯誤大多是由于雙方數(shù)據(jù)格式約定不一致或干擾造成的,可通過通過核對雙方的數(shù)據(jù)格式核對雙方的數(shù)據(jù)格式減少錯誤。 超時錯超時

19、錯:一般是由于接口硬件電路速度跟不上而產(chǎn)生。2022-5-5計算機接口技術(shù)158.2.3 串行通信串行通信中中的的數(shù)據(jù)格式數(shù)據(jù)格式1 1. .起止式異步通信數(shù)據(jù)幀格式起止式異步通信數(shù)據(jù)幀格式 所謂起止式所謂起止式是在每個字符在每個字符的前面加前面加起始位起始位,后面加后面加停止位停止位,中間可中間可以加以加奇偶校驗位奇偶校驗位,空閑位空閑位,形成一個完整的字符幀格式完整的字符幀格式,如圖如圖8.58.5所示所示。圖8.5 起止式異步通信數(shù)據(jù)格式2022-5-5計算機接口技術(shù)16下面分析起/止式數(shù)據(jù)格式每幀信息的內(nèi)容及起/止位的作用。從圖8.5可以看出,每個字符每個字符幀幀由4個部分組成個部分組

20、成。 1位起始位位起始位,低電平,邏輯值0。 58位數(shù)據(jù)位,位數(shù)據(jù)位,緊跟在起始位后,是要傳輸?shù)挠行畔?。?guī) 定從低位至高位依次傳輸。 1位校驗位位校驗位(也可以沒有校驗位)。 1位位,或1位半位半,或2位停止位位停止位,高電平(邏輯值1)。 停止位后面停止位后面是不定長度的空閑位空閑位。 停止位停止位和空閑位空閑位都規(guī)定為都規(guī)定為 高電平高電平,這樣就保證保證起始位開始處起始位開始處 一定有一個一定有一個下跳變下跳變。 現(xiàn)在看看起起/止位的作用止位的作用。起始位和停止位起始位和停止位是作為聯(lián)絡(luò)信號作為聯(lián)絡(luò)信號而附加進來的,它們在異步通信格式中起著至關(guān)重要的作用。當(dāng)當(dāng)起始位起始位由由高電平高電

21、平變?yōu)樽優(yōu)榈碗娖降碗娖降南绿兿绿儠r,告訴告訴接收方數(shù)據(jù)的傳輸接收方數(shù)據(jù)的傳輸開始開始。它的到來它的到來,表示表示下面接著是數(shù)據(jù)位來了,要要接收方準(zhǔn)備開始接收接收方準(zhǔn)備開始接收。而停止位停止位標(biāo)志一個字符的結(jié)束標(biāo)志一個字符的結(jié)束,它的出現(xiàn)它的出現(xiàn),表示表示一個字符傳輸結(jié)一個字符傳輸結(jié)束束。這樣,就為通信雙方提供了為通信雙方提供了何時開始收發(fā)何時開始收發(fā)、何時結(jié)束的標(biāo)志。何時結(jié)束的標(biāo)志。2022-5-5計算機接口技術(shù)172 2. .面向字符的同步通信數(shù)據(jù)格式面向字符的同步通信數(shù)據(jù)格式 面向字符面向字符數(shù)據(jù)格式的典型代表典型代表是IBM公司的二進制同步二進制同步通信協(xié)議通信協(xié)議(BSC)。它的特

22、點它的特點是一次傳送由若干個字符組成的數(shù)據(jù)塊一次傳送由若干個字符組成的數(shù)據(jù)塊,并規(guī)定了并規(guī)定了1010個特殊字符個特殊字符作為作為這個數(shù)據(jù)塊的數(shù)據(jù)塊的開頭開頭與結(jié)束結(jié)束標(biāo)志以及整個傳輸過程的傳輸過程的控制信息控制信息,它們也叫做通信控制字通信控制字,如圖如圖8.68.6所示所示。圖8.6 面向字符的同步通信數(shù)據(jù)塊的幀格式2022-5-5計算機接口技術(shù)183 3. . 面向比特的同步通信數(shù)據(jù)格式面向比特的同步通信數(shù)據(jù)格式 面向比特的協(xié)議面向比特的協(xié)議有同步數(shù)據(jù)鏈路控制規(guī)程同步數(shù)據(jù)鏈路控制規(guī)程SDLC、高級數(shù)據(jù)高級數(shù)據(jù)鏈路控制規(guī)程鏈路控制規(guī)程HDL、先進數(shù)據(jù)通信規(guī)程先進數(shù)據(jù)通信規(guī)程ADCCP等。這

23、些協(xié)議的特點協(xié)議的特點是所傳輸?shù)囊粠瑪?shù)據(jù)所傳輸?shù)囊粠瑪?shù)據(jù)可以是任意位可以是任意位,而且它是靠約定的位組合模式靠約定的位組合模式,而不是字符而不是字符,故稱“面向比特”的協(xié)議,其數(shù)據(jù)格式數(shù)據(jù)格式如圖如圖8.78.7所示所示。圖8.7 面向比特的同步通信數(shù)據(jù)幀格式2022-5-5計算機接口技術(shù)194 4. .I2CI2C串行總線數(shù)據(jù)格式串行總線數(shù)據(jù)格式 I2CI2C串行總線串行總線是Philips公司開發(fā)的可連接多個可連接多個主設(shè)備主設(shè)備及具有及具有不同速度的設(shè)備不同速度的設(shè)備的串行總線串行總線, 它它只使用只使用兩根兩根雙向信號線雙向信號線:串行串行數(shù)據(jù)線數(shù)據(jù)線SDASDA和串行串行時鐘線時鐘線

24、SCLSCL,其數(shù)據(jù)格式數(shù)據(jù)格式如圖如圖8.88.8所示所示。圖8.8 I2C總線一幀完整的數(shù)據(jù)格式圖2022-5-5計算機接口技術(shù)20下面通過通過I2C數(shù)據(jù)格式數(shù)據(jù)格式來了解I2C的傳輸過程與工作原理。傳輸過程與工作原理。 從圖8.8可以看到,數(shù)據(jù)格式數(shù)據(jù)格式是以主設(shè)備主設(shè)備通過數(shù)據(jù)線發(fā)送啟動信發(fā)送啟動信號號Start開始開始,發(fā)停止信號發(fā)停止信號Stop結(jié)束結(jié)束。 在啟動信號在啟動信號后面后面,跟著發(fā)送第一字節(jié)發(fā)送第一字節(jié),此字節(jié)的此字節(jié)的高高7位位為從設(shè)備從設(shè)備地址地址,最低位最低位為指明數(shù)據(jù)傳送方向數(shù)據(jù)傳送方向的R/W(讀/寫)位,該位該位為為0表示主設(shè)備向從設(shè)備發(fā)送數(shù)據(jù)主設(shè)備向從設(shè)備

25、發(fā)送數(shù)據(jù),為為1表示從設(shè)備向主設(shè)備發(fā)送數(shù)據(jù)從設(shè)備向主設(shè)備發(fā)送數(shù)據(jù)。 地址字節(jié)地址字節(jié)后面后面,接著就可發(fā)送所要傳輸?shù)陌l(fā)送所要傳輸?shù)臄?shù)據(jù)字節(jié)數(shù)據(jù)字節(jié)(DATA)。通信過程中,每次傳送的字節(jié)數(shù)沒有限制每次傳送的字節(jié)數(shù)沒有限制,即在Start與Stop之間的字節(jié)數(shù)可以是任意多個字節(jié)數(shù)可以是任意多個,但各字節(jié)之間但各字節(jié)之間必須插入一個必須插入一個應(yīng)答位應(yīng)答位(ACK),以表示以表示是否收到對方傳來的數(shù)據(jù)是否收到對方傳來的數(shù)據(jù)。 數(shù)據(jù)字節(jié)數(shù)據(jù)字節(jié)從最高位開始發(fā)送從最高位開始發(fā)送,全部數(shù)據(jù)發(fā)送完后,就發(fā)停止信號結(jié)束一次數(shù)據(jù)傳輸。2022-5-5計算機接口技術(shù)218.3 串行通信接口標(biāo)準(zhǔn)串行通信接口標(biāo)準(zhǔn)

26、串行接口串行接口所直接面向所直接面向的并不是某個具體的并不是某個具體的通信設(shè)備通信設(shè)備,而是一而是一種串行通信的種串行通信的接口標(biāo)準(zhǔn)接口標(biāo)準(zhǔn)。所以,要進行串行通信接口要進行串行通信接口設(shè)計設(shè)計,就必須先就必須先討論串行通信接口討論串行通信接口標(biāo)準(zhǔn)標(biāo)準(zhǔn),然后,按照標(biāo)準(zhǔn)來設(shè)計接口電路。 這里以RS-232C和RS-485為主來討論。8.3.1 RS-232C標(biāo)準(zhǔn)標(biāo)準(zhǔn) EIA-RS-232C標(biāo)準(zhǔn)是美國EIA(電子工業(yè)聯(lián)合會)與BELL等公司一起開發(fā)的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在020000b/s范圍內(nèi)的通信,廣泛用于計算機與計算機,計算機與外設(shè)近距離串行連接。2022-5-5計算機接口技術(shù)221

27、RS-232C標(biāo)準(zhǔn)對信號線的定義標(biāo)準(zhǔn)對信號線的定義 RS-232C定義的主信道信號使用9根線,包括2根數(shù)據(jù)線和1根地線,以及用于聯(lián)絡(luò)的6根控制線。6根聯(lián)絡(luò)控制信號線根聯(lián)絡(luò)控制信號線僅用于遠(yuǎn)距離通信用于遠(yuǎn)距離通信加加MODEM的應(yīng)用環(huán)境的應(yīng)用環(huán)境,而近距離通信近距離通信不加不加MODEM,故只使用只使用3根信號線根信號線,其定義如下。 2號線號線 發(fā)送數(shù)據(jù)(Transmitted dataTxD)線 3號線號線 接收數(shù)據(jù)(Received dataRxD)線 7號線號線 信號地(Signal groudSG)線 不使用不使用MODEM的通信的通信,稱為稱為零零MODEM方式方式,俗稱俗稱“3線制

28、線制”RS-232標(biāo)準(zhǔn)。零零MODEM方式的連接方式的連接如圖如圖8.9所示所示。圖8.9 3線制零MODEM方式2022-5-5計算機接口技術(shù)232RS-232C標(biāo)準(zhǔn)對信號的邏輯定義標(biāo)準(zhǔn)對信號的邏輯定義(1)RS-232C標(biāo)準(zhǔn)對信號的邏輯定義標(biāo)準(zhǔn)對信號的邏輯定義 采用采用EIA邏輯,規(guī)定:邏輯,規(guī)定: 邏輯邏輯1(Mark)在驅(qū)動器輸出端在驅(qū)動器輸出端為515V,在負(fù)載端在負(fù)載端要求小于要求小于3V。 邏輯邏輯0(Space)在驅(qū)動器輸出端在驅(qū)動器輸出端為+5+15V,在負(fù)載端在負(fù)載端要求大于要求大于+3V。 可見可見,RS-232C采用的是負(fù)邏輯采用的是負(fù)邏輯,并且邏輯電平幅值很高,擺幅很

29、大。顯然,RS-232C標(biāo)準(zhǔn)標(biāo)準(zhǔn)所采用的采用的EIA與計算機終端計算機終端所采用的采用的TTL在邏輯電平和邏輯關(guān)系上并不兼容并不兼容,故需要經(jīng)過轉(zhuǎn)換故需要經(jīng)過轉(zhuǎn)換,才能與計算機或終端進行數(shù)據(jù)交換。 (2 2)EIAEIA與與TTLTTL之間的轉(zhuǎn)換之間的轉(zhuǎn)換 EIAEIA與與TTLTTL之間的轉(zhuǎn)換之間的轉(zhuǎn)換采用專用芯片來完成采用專用芯片來完成。常用的轉(zhuǎn)換芯片有有單向轉(zhuǎn)換芯片單向轉(zhuǎn)換芯片(如MC1488、SN75150),雙向轉(zhuǎn)換芯片雙向轉(zhuǎn)換芯片(如MAX232),可實現(xiàn)TTL與EIA之間的雙向轉(zhuǎn)換,一個MAX232芯片可實現(xiàn)兩對接收/發(fā)送數(shù)據(jù)線的轉(zhuǎn)換。2022-5-5計算機接口技術(shù)24MAX23

30、2的外部引腳的外部引腳和內(nèi)部邏輯內(nèi)部邏輯如圖如圖8.10所示所示。從圖8.10可知,通過通過MAX232可將將TTL/CMOS電平電平(05V)轉(zhuǎn)換轉(zhuǎn)換成成RS-232C的的EIA電平電平(+10V10V)。圖8.10 MAX232的內(nèi)部邏輯框圖2022-5-5計算機接口技術(shù)25(3)RS-232C標(biāo)準(zhǔn)的連接器及通信線電纜標(biāo)準(zhǔn)的連接器及通信線電纜 1)連接器)連接器 連接器連接器即通信電纜的插頭插座通信電纜的插頭插座。RS-232C有DB-25型型和DB-9型型兩種不同的連接器兩種不同的連接器,其引腳號的排列順序各不相同。目前大多數(shù)目前大多數(shù)都都采用采用DB-9型型連接器連接器。DB-9型連接

31、器型連接器的外形及信號引腳分配外形及信號引腳分配如圖如圖8.11所示所示。如前所述,若采用采用“3線制線制”進行近距離通信連接時,還應(yīng)將應(yīng)將DB-9型連接器的型連接器的4號線號線與與5號線號線,以及6號線號線與與20號線號線短接短接。圖8.11 DB-9型連接器的外形及信號引腳分配 2)通信電纜長度)通信電纜長度 RS-232C標(biāo)準(zhǔn)規(guī)定當(dāng)采用雙絞線屏蔽電纜,傳輸速率為20kb/s時,在零在零MODEMR下下,兩臺計算機或終端的直接連接的最大物理距直接連接的最大物理距離離為為15m。2022-5-5計算機接口技術(shù)268.3.2 RS-485標(biāo)準(zhǔn)標(biāo)準(zhǔn) RS-485標(biāo)準(zhǔn)標(biāo)準(zhǔn)是在在RS-232C的基礎(chǔ)

32、上的基礎(chǔ)上,針對在不使用不使用MODEM情況下情況下,進行遠(yuǎn)距離串行通信而提出的而提出的,因此只對只對RS-485標(biāo)準(zhǔn)標(biāo)準(zhǔn)的數(shù)據(jù)信號線數(shù)據(jù)信號線和信號邏輯信號邏輯重新進行了定義重新進行了定義,不涉及其他控制信號線的定義,而通信過程中所傳輸?shù)臄?shù)據(jù)幀格式沿用數(shù)據(jù)幀格式沿用RS-232C的的。1RS-485標(biāo)準(zhǔn)對信號線的定義標(biāo)準(zhǔn)對信號線的定義 RS-485標(biāo)準(zhǔn)標(biāo)準(zhǔn)與RS-232C標(biāo)準(zhǔn)標(biāo)準(zhǔn)最主要的差別最主要的差別是采用雙線平衡方式采用雙線平衡方式傳輸數(shù)據(jù),而不是使用單線對地的方式傳輸數(shù)據(jù)。所謂平衡方式所謂平衡方式,是指是指雙端雙端發(fā)送發(fā)送和雙端接收雙端接收,所以傳輸信號需要所以傳輸信號需要兩條線兩條線

33、AA和BB,發(fā)送端和接收端分別采用平衡發(fā)送器(驅(qū)動器)和差動接收器,如圖8.12所示。 發(fā)送端發(fā)送端通過通過平衡發(fā)送器平衡發(fā)送器把把邏輯電平邏輯電平轉(zhuǎn)換轉(zhuǎn)換成電位差成電位差,根據(jù)兩條傳輸線根據(jù)兩條傳輸線之間之間的電位差值的電位差值來定義來定義邏輯邏輯1和和邏輯邏輯0,進行傳輸,最后到達接收端。接接收端收端通過通過差動接收器差動接收器,把,把差動信號差動信號轉(zhuǎn)換為轉(zhuǎn)換為邏輯電平邏輯電平。 圖8.12 RS-485標(biāo)準(zhǔn)的傳輸連接2022-5-5計算機接口技術(shù)272RS-485標(biāo)準(zhǔn)對信號的邏輯定義(電氣特性)標(biāo)準(zhǔn)對信號的邏輯定義(電氣特性) RS-485標(biāo)準(zhǔn)標(biāo)準(zhǔn)采用采用電位差值電位差值定義定義信號邏

34、輯信號邏輯,當(dāng)當(dāng)AA線的電平線的電平比比BB線的電平線的電平高高200mV時,表示表示邏輯邏輯1;當(dāng)當(dāng)AA線的電平線的電平比比BB的電平的電平低低200mV時,時,表示表示邏輯邏輯0。3RS-485標(biāo)準(zhǔn)的連接器與通信電纜標(biāo)準(zhǔn)的連接器與通信電纜 RS-485標(biāo)準(zhǔn)標(biāo)準(zhǔn)采用采用4芯水晶頭連接器芯水晶頭連接器進行進行全雙工異步全雙工異步通信通信,4芯水晶頭連接器使用方便且價格低廉。RS-485標(biāo)準(zhǔn)的通信電纜為屏蔽雙絞線,半雙工是一對雙絞線,全雙工是兩對雙絞線。4RS-485總線標(biāo)準(zhǔn)的特點總線標(biāo)準(zhǔn)的特點(1)由于采用差動采用差動發(fā)送/接收和雙絞線平衡傳輸平衡傳輸,所以共模抑制比高共模抑制比高 ,抗干擾能

35、力強,抗干擾能力強。因此,特別適合在干擾比較嚴(yán)重的環(huán)境下工作特別適合在干擾比較嚴(yán)重的環(huán)境下工作(2)傳輸速率高傳輸速率高,可達10Mb/s(傳輸距離為15m)。(3)傳輸距離長傳輸距離長,不使用MODEM,采用雙絞線,傳輸距離1.2km(4)能實現(xiàn)能實現(xiàn)一點對多點一點對多點、多點對多點通信多點對多點通信。2022-5-5計算機接口技術(shù)288.4 串行通信接口電路串行通信接口電路 串行傳輸相串行傳輸相比并行傳輸并行傳輸而言有許多特殊問題需要解決有許多特殊問題需要解決,因此,串行通串行通信接口信接口設(shè)計設(shè)計所涉及的所涉及的內(nèi)容要復(fù)雜得多內(nèi)容要復(fù)雜得多。下面先分析串行通信接口電路的任務(wù)(功能)及組成

36、,然后具體討論串行接口電路設(shè)計。8.4.1 串行通信接口電路的基本任務(wù)串行通信接口電路的基本任務(wù) 由于各個串行總線的功能及用途不一樣,串行接口電路的任務(wù)也不同,有的復(fù)雜,有的簡單,其基本任務(wù)基本任務(wù)有如下幾個方面。1進行串進行串-并轉(zhuǎn)換并轉(zhuǎn)換 串行通信接口的串行通信接口的首要任務(wù)首要任務(wù)是進行進行數(shù)據(jù)的串?dāng)?shù)據(jù)的串/并轉(zhuǎn)換并轉(zhuǎn)換。在發(fā)送端在發(fā)送端,把把由計算機送來的并行數(shù)據(jù)轉(zhuǎn)并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)串行數(shù)據(jù),然后再發(fā)送出去。在接收端在接收端,把把從接收器接收的串行數(shù)據(jù)串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)并行數(shù)據(jù)后,再送至計算機或終端。2提供串行通信總線標(biāo)準(zhǔn)所定義的信號線提供串行通信總線標(biāo)準(zhǔn)所定義的信號線 串行通

37、信接口的串行通信接口的第二個任務(wù)第二個任務(wù)是提供符合提供符合串行通信串行通信總線標(biāo)準(zhǔn)所定義的信號線的信號線。 例如,RS-232C標(biāo)準(zhǔn)的2號線TxD、3號線RxD和7號線SG。 I2C標(biāo)準(zhǔn)的串行數(shù)據(jù)線SDA和串行時鐘線SCL。2022-5-5計算機接口技術(shù)293實現(xiàn)串行通信的數(shù)據(jù)格式化實現(xiàn)串行通信的數(shù)據(jù)格式化 串行通信接口的串行通信接口的第三個任務(wù)第三個任務(wù)是實現(xiàn)實現(xiàn)串行通信協(xié)議串行通信協(xié)議的的數(shù)據(jù)格式化數(shù)據(jù)格式化。因為來自計算機的因為來自計算機的數(shù)據(jù)是普通并行數(shù)據(jù)數(shù)據(jù)是普通并行數(shù)據(jù),所以接口電路應(yīng)具有使數(shù)據(jù)格式化的功能,實現(xiàn)不同串行通信方式下的數(shù)據(jù)格式化。 例如,對RS-232C標(biāo)準(zhǔn),接口電

38、路需自動生成異步通信的起止起止式式數(shù)據(jù)幀格式數(shù)據(jù)幀格式。4進行錯誤檢測進行錯誤檢測 串行通信接口串行通信接口的第四個任務(wù)第四個任務(wù)是檢測并報告檢測并報告通信過程中通信過程中所產(chǎn)生的所產(chǎn)生的差錯差錯。在發(fā)送端在發(fā)送端,接口電路接口電路需對傳輸?shù)淖址麛?shù)據(jù)自動生成奇偶校自動生成奇偶校驗位或其他校驗碼驗位或其他校驗碼。在接收端在接收端,接口電路接口電路需要對所接收的字符數(shù)據(jù)進行奇偶校驗進行奇偶校驗或其他校驗碼的檢測其他校驗碼的檢測,以確定所接收的數(shù)據(jù)中是否有錯誤信息和是什么性質(zhì)的錯誤。5進行數(shù)據(jù)傳輸速率的控制進行數(shù)據(jù)傳輸速率的控制 串行通信接口串行通信接口的第五個任務(wù)第五個任務(wù)是對數(shù)據(jù)傳輸速率對數(shù)據(jù)傳

39、輸速率進行控制進行控制,確保確保串行通信雙方的數(shù)據(jù)傳輸速率一致串行通信雙方的數(shù)據(jù)傳輸速率一致。這意味著接口電路需設(shè)置波特率時鐘發(fā)生器。 2022-5-5計算機接口技術(shù)308.4.2 串行通信接口電路的解決方案串行通信接口電路的解決方案 本章串行接口的串行接口的解決方案是解決方案是采用可編程通用串行通信接口芯片可編程通用串行通信接口芯片構(gòu)成構(gòu)成外置式外置式的接口電路接口電路。1 1串行通信接口電路的組成串行通信接口電路的組成 串行通信接口電路串行通信接口電路一般由一般由串行通信接口芯片串行通信接口芯片、波特率時鐘發(fā)生器波特率時鐘發(fā)生器、EIAEIA與與TTLTTL轉(zhuǎn)換器轉(zhuǎn)換器以及地址譯碼電路組成

40、地址譯碼電路組成。若采用采用RS-485RS-485總線標(biāo)準(zhǔn)總線標(biāo)準(zhǔn),則接口電接口電路路還應(yīng)包括平衡發(fā)送器平衡發(fā)送器和平衡接收器平衡接收器。 串行接口芯片串行接口芯片是串行通信接口電路的核心串行通信接口電路的核心,能實現(xiàn)上面提出的串行通信接口基本任務(wù)的大部分工作,采用它們來設(shè)計串行通信接口,會使電路結(jié)構(gòu)比較簡單。 在微機系統(tǒng)中在微機系統(tǒng)中,使用較多使用較多的串行通信接口芯片有異步收異步收/ /發(fā)器發(fā)器(UARTUART)16550和同步同步/ /異步收異步收/ /發(fā)器發(fā)器(USARTUSART)8251A,它們都是CPU的重要的串行通信接口支持芯片,其特點與所實現(xiàn)的功能基本相同,16550作為

41、異步通信的性能更優(yōu),而8251A應(yīng)用更簡潔。本章將對兩種接口芯片的應(yīng)用分別進行討論。2 2串行通信接口的配置方式串行通信接口的配置方式 串行通信接口電路串行通信接口電路的配置配置有3 3種形式種形式:外置式外置式獨立的接口芯片獨立的接口芯片,用于用于臺臺式微機式微機系統(tǒng);內(nèi)置式內(nèi)置式接口模塊接口模塊,用于用于ARMARM和和MCUMCU系統(tǒng);用戶用用FPGAFPGA構(gòu)建構(gòu)建的接接口電路口電路,并與應(yīng)用系統(tǒng)其他硬件在一起開發(fā)。2022-5-5計算機接口技術(shù)318.5 RS-232C標(biāo)準(zhǔn)的串行通信接口設(shè)計標(biāo)準(zhǔn)的串行通信接口設(shè)計例例8.1 采用采用RS-232C 標(biāo)準(zhǔn)的異步串行通信接口設(shè)計標(biāo)準(zhǔn)的異步

42、串行通信接口設(shè)計8.5.1 設(shè)計要求設(shè)計要求 設(shè)計設(shè)計甲乙兩臺微機之間串行通信甲乙兩臺微機之間串行通信接口電路接口電路。 要求要求按按RS-232CRS-232C標(biāo)準(zhǔn)標(biāo)準(zhǔn)進行半雙工半雙工異步串行通信異步串行通信,把甲機上開發(fā)的步進電機控制用程序傳送到乙機中去,以便在乙機上運行。字符幀格式字符幀格式采用采用起止式起止式異步方式異步方式,字符長度字符長度為8 8位位,停止位停止位為2 2位位,波特率因子波特率因子為6464,無無校驗校驗。波特率波特率為4800b/s4800b/s。CPU與接口芯片8251A之間用查詢方式查詢方式交換交換數(shù)據(jù)數(shù)據(jù)。2022-5-5計算機接口技術(shù)321. 8251A1

43、. 8251A的外部特性的外部特性251A251A的外部引腳的外部引腳如圖如圖8.148.14所示所示。引腳信號線定義引腳信號線定義表表8.28.2所示所示。圖8.14 8251A引腳圖表8.2 8251A外部引腳功能8.5.2 設(shè)計方案分析設(shè)計方案分析本方案本方案是采用可編程通用接口芯片采用可編程通用接口芯片8251A構(gòu)成外置式外置式的接口電路接口電路。因此,先分析與介紹8251A的外部特性和編程模型2022-5-5計算機接口技術(shù)332. 8251A2. 8251A的編程模型的編程模型 8251A8251A的編程模型編程模型包括內(nèi)部可訪問的包括內(nèi)部可訪問的寄存器寄存器、分配給寄存器分配給寄存

44、器的的端口地址端口地址,以及編程命令編程命令。用戶利用8251A的編程模型進行串行通信程序設(shè)計。 (1)(1)8251A8251A內(nèi)部寄存器及端口地址內(nèi)部寄存器及端口地址 8251A8251A內(nèi)部設(shè)置內(nèi)部設(shè)置有收/發(fā)數(shù)據(jù)寄存器數(shù)據(jù)寄存器,端口地址端口地址為為308H308H。方式方式命令寄存器命令寄存器、工作命令寄存器工作命令寄存器和狀態(tài)寄存器狀態(tài)寄存器,3 3個個寄存器共用寄存器共用1 1個個端口端口,端口地址端口地址為為309H309H。向該端口向該端口寫操作寫操作時,是寫命令字是寫命令字;從該從該端口端口讀操作讀操作時,是讀狀態(tài)字是讀狀態(tài)字。 2022-5-5計算機接口技術(shù)34 例如例如

45、在某異步通信中,數(shù)據(jù)格式數(shù)據(jù)格式采用采用位數(shù)據(jù)位位數(shù)據(jù)位,1 1位起始位位起始位,2 2位停止位位停止位,奇校驗奇校驗,波特率因子波特率因子是1616,其方式字為11011110B11011110B。 異步通信方式設(shè)置的程序段異步通信方式設(shè)置的程序段如下。 MOV DX,309H ;8251A命令口 MOV AL,11011110B11011110B ;方式命令字方式命令字 OUT DX,AL(2 2)方式命令)方式命令 方式命令格式方式命令格式如如8.158.15所示所示。圖8.15 8251A通信方式命令的格式2022-5-5計算機接口技術(shù)35(3 3)工作命令)工作命令 工作命令的格式工

46、作命令的格式如圖如圖8.168.16所示所示。圖8.16 8251A工作命令的格式例如例如,在異步通信時,若允許接收允許接收,同時同時允許發(fā)送允許發(fā)送,則工作命令字=00000101B。程序段如下程序段如下。 MOV DX,309H ;命令口 MOV AL,00000101B ;工作命令字工作命令字 OUT DX,AL2022-5-5計算機接口技術(shù)36(4 4)狀態(tài)字)狀態(tài)字 狀態(tài)字格式狀態(tài)字格式如圖如圖8.178.17所示所示。圖8.17 8251A狀態(tài)字的格式例如例如,串行通信時,在發(fā)送程序中在發(fā)送程序中,需檢查狀態(tài)字的需檢查狀態(tài)字的D0D0位是否置位是否置1 1,即查是否查是否TxRDY

47、=1TxRDY=1?,其程序段如下其程序段如下。L:MOV DX,309H ;8251A狀態(tài)端口 IN AL,DX AND ALAND AL,01H01H ;查查是否是否TxRDY=1TxRDY=1? JZ L ;未就緒,則等待2022-5-5計算機接口技術(shù)373.8251A3.8251A的初始化的初始化(1 1)初始化內(nèi)容)初始化內(nèi)容 在異步方式下,8251A的初始化內(nèi)容包括初始化內(nèi)容包括:先寫先寫內(nèi)部復(fù)位命令內(nèi)部復(fù)位命令,再寫再寫方式命令方式命令,最后寫最后寫工作命令工作命令幾部分。為了提高可靠性為了提高可靠性,往往還在寫內(nèi)部復(fù)位命令之前在寫內(nèi)部復(fù)位命令之前,向命令口寫一長串向命令口寫一長

48、串0 0,作為作為空操作空操作。在同步方式下,8251A的初始化還包括設(shè)置同步字符。(2)初始化順序)初始化順序 初始化順序初始化順序如圖如圖8.18所示所示。這種順序不能顛倒或改變,若改變了這種順序,8251A就不能識別,也就不能正確執(zhí)行。圖8.18 向8251A命令端口寫入命令的順序2022-5-5計算機接口技術(shù)388.5.3 電路與程序設(shè)計電路與程序設(shè)計1. 1. 串行接口電路設(shè)計串行接口電路設(shè)計 由于由于是近距離傳輸近距離傳輸,不需要不需要MODEMMODEM,故采用采用“3“3線制線制”的的3 3芯屏蔽通芯屏蔽通信電纜信電纜,把甲乙兩臺微機直接互連,異步串行通信接口電路異步串行通信接

49、口電路如圖如圖8.198.19所示所示。接口電路接口電路以8251A8251A為主芯片為主芯片,再加上波特率時鐘發(fā)生器波特率時鐘發(fā)生器、電平轉(zhuǎn)換器電平轉(zhuǎn)換器、地址譯碼器地址譯碼器等。圖8.19 RS-232C標(biāo)準(zhǔn)半雙工異步串行通信接口電路框圖2022-5-5計算機接口技術(shù)392. 2. 串行通信程序設(shè)計串行通信程序設(shè)計 整個通信程序整個通信程序由甲機的發(fā)送程序甲機的發(fā)送程序和乙機的接收程序乙機的接收程序兩部分組成,分別采用匯編語言與C語言編寫。(1 1)甲機的發(fā)送程序)甲機的發(fā)送程序DATA SEGMENT BUF_T DB 45 DUP(?)DATD ENDSCODE SEGMENT ASS

50、UME CS: CODE,DS: DATASTART:MOV AX,DATA MOV DS,AX2022-5-5計算機接口技術(shù)40 MOV DX,309H ;8251A初始化 MOV AL,00H00H ;空操作空操作, 向命令端口發(fā)送任意數(shù)任意數(shù) OUT DX,AL MOV AL,01000000B ;內(nèi)部復(fù)位內(nèi)部復(fù)位(使D61) OUT DX,AL NOP MOV AL,11001111B11001111B ;方式命令字方式命令字(8位數(shù)據(jù),2位停止,無校驗, ;波特因子為64) OUT DX,AL MOV AL,00110111B00110111B ;工作命令字工作命令字(RTS、ER、

51、RxE、DTR、TxEN置1) OUT DX,AL MOV SI,OFFSET BUF_T ;發(fā)送區(qū)首址 MOV CX,45 ;字節(jié)數(shù)L1: MOV DX,309H ;查狀態(tài),可否發(fā)送 IN AL,DX AND ALAND AL,01H01H ;查發(fā)送是否準(zhǔn)備好查發(fā)送是否準(zhǔn)備好(TxRDY1) JZ L1 ;發(fā)送未準(zhǔn)備好,則等待2022-5-5計算機接口技術(shù)41 MOV DX,308H MOV AL,SI ;發(fā)送準(zhǔn)備好,則從發(fā)送區(qū)取1個字節(jié)發(fā)送 OUT DX,AL INC SI ;發(fā)送區(qū)地址加1 DEC CX ;字節(jié)數(shù)減1 JNZ L1 ;未發(fā)送完,繼續(xù) MOV AX,4C00H ;已發(fā)送完,

52、回DOS INT 21HCODE ENDS END START2022-5-5計算機接口技術(shù)42 unsigned int i; unsigned char send45;/發(fā)送緩沖區(qū) unsigned char *p; p=send; outportb(0 x309,0 x00);/空操作, 向命令端口發(fā)送任意數(shù) outportb(0 x309,0 x40);/內(nèi)部復(fù)位(使D61) delay(1); outportb(0 x309,0 x0cf);/方式命令字 outportb(0 x309,0 x37);/工作命令字 /(RTS、ER、RxE、DTR、TxEN均置1) for(i=0;i

53、45;i+) while(inportb(0 x309)&0 x01=0);/查發(fā)送是否準(zhǔn)備好/(TxRDY1) outportb(0 x308,*p);/發(fā)送一個字節(jié) p+; 2022-5-5計算機接口技術(shù)43(2 2)乙機的接收程序)乙機的接收程序接收程序接收程序要先檢測有無差錯先檢測有無差錯,若有,則需處理差錯。DATA SEGMENT BUF_R 45 DUP(?) ERROR_MESS DBERR0R ! 0DH,0AH, $DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATABEGIN:MOV AX,DATA MOV DS,AX2022-5-5計

54、算機接口技術(shù)44 MOV DX,309H ;8251A初始化 MOV AL,0AAH0AAH ;空操作空操作,向命令端口送任意數(shù) OUT DX,AL MOV AL,01010000B01010000B ;內(nèi)部復(fù)位內(nèi)部復(fù)位(含D6=1) OUT DX,AL NOP MOV AL,11001111B11001111B ;方式字方式字(與甲機的相同與甲機的相同) OUT DX,AL MOV AL,00010100B00010100B ;工作命令字工作命令字(ER、RxE置1) OUT DX,AL MOV DI,OFFSET BUF_R ;接收區(qū)首址 MOV CX,45 ;字節(jié)數(shù)L2: MOV DX,

55、309H ;查狀態(tài),可否接收 IN AL,DX ;先查接收是否出錯 TEST ALTEST AL,38H38H ;同時查同時查3種錯誤種錯誤 JNZ ERR ;有錯,轉(zhuǎn)出錯處理 AND ALAND AL,02H02H ;再查接收是否準(zhǔn)備好再查接收是否準(zhǔn)備好(RxRDY1) JZ L2 ;接收未準(zhǔn)備好,則等待2022-5-5計算機接口技術(shù)45 MOV DX,308H ;接收數(shù)據(jù) IN AL,DX ;接收準(zhǔn)備好,則接收1個字節(jié) MOV DI,AL ;并存入接收區(qū) INC DI ;接收區(qū)地址加1 LOOP L2 ;未接收完,繼續(xù) JMP STOP ;已完,程序結(jié)束,退出 ERR:LEA DX,ERR

56、OR_MESSLEA DX,ERROR_MESS ;錯誤處理子程序錯誤處理子程序 MOV AH,09H INT 21H STOP: MOV AX,4C00H ;返回DOS INT 21HCODE ENDS END BEGIN2022-5-5計算機接口技術(shù)46 unsigned char recv45; unsigned char i,tmp; void main() outportb(0 x309,0 x0aa);/空操作,向命令端口送任意數(shù) outportb(0 x309,0 x50); /內(nèi)部復(fù)位(含D6=1) delay(1); outportb(0 x309,0 x0cf);/方式字

57、outportb(0 x309,0 x14);/工作命令字(ER、RxE置1) for(i=0;i45;i+)tmp=inportb(0 x309);/讀狀態(tài)端口if(tmp&0 x38!=0 x00)/先查接收是否出錯 printf(Error!n); /打印出錯信息 break;/退出else if(tmp&0 x02=0 x00)/再查接收是否準(zhǔn)備好(RxRDY1) break; else recvi=inportb(0 x308);/準(zhǔn)備好則接收1個字節(jié) 2022-5-5計算機接口技術(shù)478.6 RS-485標(biāo)準(zhǔn)的標(biāo)準(zhǔn)的串行通信接口設(shè)計串行通信接口設(shè)計例例8.2 采用采用RS-485

58、標(biāo)準(zhǔn)的異步串行通信接口設(shè)計標(biāo)準(zhǔn)的異步串行通信接口設(shè)計8.6.1 設(shè)計要求設(shè)計要求 要求要求在甲乙兩臺微機之間按按RS-485RS-485標(biāo)準(zhǔn)標(biāo)準(zhǔn)進行全雙工異步串行通信全雙工異步串行通信,也就是雙方在各自的鍵盤上按鍵向?qū)Ψ桨l(fā)送字符時,同時又可接收對方發(fā)來的字符。字符幀格式字符幀格式采用異步起采用異步起/ /止方式止方式, ,1 1位位停止位停止位,7 7位位數(shù)據(jù)數(shù)據(jù)位位,無無校驗校驗,波特率因子波特率因子為1616。按ESC鍵退出。2022-5-5計算機接口技術(shù)488.6.2 設(shè)計方案分析設(shè)計方案分析 本例與前面例本例與前面例8.18.1不同之處有兩點不同之處有兩點:一是通信標(biāo)準(zhǔn)不同一是通信標(biāo)準(zhǔn)

59、不同,本例采用RS-485標(biāo)準(zhǔn),而例8.1采用RS-232C;二是傳送方式不同二是傳送方式不同,本例是全雙工,例8.1是半雙工。因此因此,在接口電路組成在接口電路組成、通信電通信電纜纜、連接器連接器有所不同有所不同。但兩者的通信方式相同,都是異步通信,故串行通信程序的編寫步驟與方法相同。 RS-485RS-485標(biāo)準(zhǔn)標(biāo)準(zhǔn)與RS-232CRS-232C標(biāo)準(zhǔn)標(biāo)準(zhǔn)的不同之處不同之處主要是使用了平衡發(fā)送是使用了平衡發(fā)送器器/ /差動接收器差動接收器,實現(xiàn)實現(xiàn)雙線平衡差動方式傳輸數(shù)據(jù)雙線平衡差動方式傳輸數(shù)據(jù)。平衡發(fā)送器/差動接收器,簡稱收發(fā)器,如MAX485/MAX491芯片。 本方案本方案是采用可編程

60、通用接口芯片采用可編程通用接口芯片構(gòu)成外置式的接口電路外置式的接口電路,來實現(xiàn)RS-485標(biāo)準(zhǔn)的接口設(shè)計要求,為此將為此將“8251A+MAX491“8251A+MAX491“作作為接口電路的核心為接口電路的核心。 下面先介紹MAX491的外部特性以及使用。2022-5-5計算機接口技術(shù)491收發(fā)器芯片收發(fā)器芯片MAX491的外部特性的外部特性 MAX491的引腳的引腳如圖如圖8.20所示所示,其引腳功能的定義如表8.3所示。圖8.20 MAX491外部引腳2022-5-5計算機接口技術(shù)50表8.3MAX485/491引腳功能的定義2022-5-5計算機接口技術(shù)512信號的邏輯定義信號的邏輯定

溫馨提示

  • 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

提交評論