微機(jī)第12章串行通信和串行接口_第1頁
微機(jī)第12章串行通信和串行接口_第2頁
微機(jī)第12章串行通信和串行接口_第3頁
微機(jī)第12章串行通信和串行接口_第4頁
微機(jī)第12章串行通信和串行接口_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 【內(nèi)容提要】本章主要講兩個(gè)問題。一個(gè)是串行通信的基本知識(shí),它包括幾個(gè)方面:串行通信的特點(diǎn)、規(guī)程、異步和同步、信息格式等;串行通信工作方式; RS- 232 C標(biāo)準(zhǔn);(美國電子工業(yè)協(xié)會(huì)EIA制定的遠(yuǎn)程通信標(biāo)準(zhǔn))Modem。 另一個(gè)是串行接口8251A,要求:從硬件角度掌握8251A組成和工作原理,掌握發(fā)送器和接收器的工作過程;從編程角度掌握8251A控制字及其初始化;掌握雙機(jī)通信的工作過程。 這些內(nèi)容都是重點(diǎn)。 【學(xué)習(xí)指導(dǎo)】學(xué)習(xí)本章要注意幾點(diǎn):從串行通信的基本知識(shí)入手學(xué)習(xí)串行接口;要注意和82C55A進(jìn)行比較;本章難點(diǎn)在雙機(jī)通信工作原理:假設(shè)A機(jī)發(fā)送B機(jī)接收,A機(jī)8251A和A機(jī)CPU之間用發(fā)

2、送中斷,B機(jī)8251A和B機(jī)CPU之間用接收中斷,掌握A機(jī)和B機(jī)之間通信;若8251A的TXC和RxC由82C54提供,發(fā)送中斷和接收中斷都通過82C59進(jìn)行,則建立了CPU-8251A-82C54-82C59A之間的系統(tǒng)聯(lián)系。12.1串行通信 計(jì)算機(jī)與計(jì)算機(jī)之間、計(jì)算機(jī)與外部設(shè)備之間的數(shù)據(jù)傳送統(tǒng)稱為數(shù)據(jù)通信。 通信方式主要分為兩類:并行通信和串行通信。與并行通信比較,串行通信有以下幾個(gè)不同的特點(diǎn): 1)串行通信是在1條傳輸線上將n位信息進(jìn)行分時(shí)(串行)傳送。設(shè)n=8,串行通信是將8位信息分成8次,每次傳送1位信息。 2)串行通信時(shí),通信的雙方都必須使用串行接口電路連接。 3)由于主機(jī)內(nèi)部用并

3、行傳送,串行通信時(shí)用串行傳送,因此串行接口需要進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,即并一串?dāng)?shù)據(jù)轉(zhuǎn)換。 4)由于串行接口使用TTL電平,若串行傳送使用RS-232C電平,兩者之間需要進(jìn)行邏輯電平轉(zhuǎn)換。 5)在遠(yuǎn)距離串行通信時(shí),為了防止干擾,需要外加Modem,也就是說需要進(jìn)行數(shù)字和模擬轉(zhuǎn)換,用模擬信號(hào)進(jìn)行通信,用數(shù)字信號(hào)進(jìn)行處理。 6)串行通信容易出錯(cuò),因此需要進(jìn)行出錯(cuò)控制。12.1.1串行通信基礎(chǔ) 1.串行通信規(guī)程 隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和計(jì)算機(jī)通信的不斷發(fā)展,為了正確進(jìn)行串行通信,于是制定出一些規(guī)定和程式,其實(shí)就是標(biāo)準(zhǔn),稱之為數(shù)據(jù)通信控制規(guī)程,在計(jì)算機(jī)網(wǎng)絡(luò)中稱之為協(xié)議。 規(guī)程的內(nèi)容大致有以下幾點(diǎn): 1)信息編碼,

4、串行傳輸使用何種字符編碼,傳送雙方應(yīng)該相同。 2)同步方式,傳送雙方采用什么方式進(jìn)行同步,傳送雙方應(yīng)該相同。 3)信息格式,傳送雙方應(yīng)該選用相同的信息格式。 4)波特率,傳送雙方應(yīng)該選用相同的波特率。 5)同步字符,若采用同步傳送,采用什么同步字符,傳送雙方應(yīng)該相同。 6)校驗(yàn)碼,采用何種校驗(yàn)碼,傳送雙方應(yīng)該相同。 目前采用的串行通信規(guī)程分為兩類:異步通信控制規(guī)程和同步通信控制規(guī)程。 同步通信控制規(guī)程又分為兩類: 一類稱為面向字符型(character- oriented)規(guī)程; 另一類是面向位型(bit- oriented)規(guī)程,其中常用的是高級數(shù)據(jù)鏈路通信(HDLG)規(guī)程和同步數(shù)據(jù)鏈路通信

5、(SDLC)規(guī)程。2串行通信分類 串行通信中的雙方通常是兩臺(tái)計(jì)算機(jī),而且各自獨(dú)立工作,因此最重要問題就是雙方同步問題。所謂同步也就是接收方(B方)用來判斷發(fā)送方(A方)數(shù)據(jù)何時(shí)開始傳送,如何接收數(shù)據(jù),何時(shí)結(jié)束傳送等,以使接收方和發(fā)送方同步工作。按解決同步問題的方案不同,可將串行通信進(jìn)行下述分類。 (1)同步通信 當(dāng)通信的雙方用共同的同步字符或者同步脈沖進(jìn)行同步,稱為同步通信。按同步脈沖進(jìn)行同步稱為外同步,因?yàn)橥矫}沖是從外部加給接口。按同步字符進(jìn)行同步稱為內(nèi)同步,因?yàn)橥阶址谛畔⒏袷絻?nèi)部。 在信息格式中只使用一個(gè)字節(jié)作為同步字符,稱為單同步;當(dāng)使用兩個(gè)字節(jié)作為同步字符,稱為雙同步。HDLC和

6、SDLC是雙同步的進(jìn)一步發(fā)展,它用一個(gè)同步字符作為 開始標(biāo)志,用另一個(gè)同步字符作為結(jié)束標(biāo)志,稱為標(biāo)志域;另外又增加了地址域和控制域等。 同步通信是以數(shù)據(jù)塊(字符塊)為單位傳輸?shù)?,每個(gè)數(shù)據(jù)塊可以是256B一2KB或更大,并按照同步信息格式形成一幀數(shù)據(jù),再將一幀作為一個(gè)整體進(jìn)行發(fā)送與接收。同步通信方式在傳送時(shí),字符與字符之間的傳輸是同步的。(傳送每一個(gè)字符所用的時(shí)間是完全相同的。) (2)異步通信 當(dāng)通信的雙方既沒有共同的同步字符,也沒有使用同步脈沖進(jìn)行同步,而是用起始一停止信號(hào)實(shí)現(xiàn)同步的稱為異步通信。 異步通信是以字符為單位傳輸?shù)?,每個(gè)字符通常用ASCII碼,按照異步信息格式形成一幀數(shù)據(jù),以后作

7、為一個(gè)整體進(jìn)行發(fā)送與接收。異步通信方式在傳送時(shí),字符與字符之間傳送沒有嚴(yán)格的定時(shí)要求。 異步通信方式的傳輸速率低,傳輸設(shè)備簡單;同步通信方式的傳輸速率高,傳輸設(shè)備復(fù)雜,技術(shù)要求高。因此,異步串行通信一般應(yīng)用于傳送數(shù)據(jù)不連續(xù)、數(shù)據(jù)量較小和數(shù)據(jù)傳輸速率較低的情況;同步串行通信則應(yīng)用于要求快速、連續(xù)、大量傳送數(shù)據(jù)的情況。 3串行通信編碼 在串行通信時(shí),傳送的字符都是以編碼形式出現(xiàn)的,常用的編碼有兩種:EBCDIC,即擴(kuò)展的BCD碼,是8位編碼;ASCII碼,即美國標(biāo)準(zhǔn)信息交換碼,是7位編碼。 4串行通信校驗(yàn)碼 在串行通信中,由于是長距離傳送,又由于外界電磁干擾,系統(tǒng)本身的硬件、軟件故障等,傳送的信息

8、會(huì)出現(xiàn)錯(cuò)誤,其出錯(cuò)的概率遠(yuǎn)大于內(nèi)存出錯(cuò)的概率。因此要求串行通信進(jìn)行差錯(cuò)控制,或者說要能檢錯(cuò)和糾錯(cuò)。 在計(jì)算機(jī)應(yīng)用中,常用的校驗(yàn)方法有奇偶校驗(yàn)、交叉奇偶校驗(yàn)、海明碼校驗(yàn)、循環(huán)冗余碼校驗(yàn)(CRC)等。在串行通信中,異步串行通信常用奇偶校驗(yàn);同步串行通信常用循環(huán)冗余碼校驗(yàn)。 異步串行通信過程中常見的錯(cuò)誤有奇偶校驗(yàn)出錯(cuò)、溢出錯(cuò)誤和幀格式出錯(cuò)。這些出錯(cuò)狀態(tài)標(biāo)志存放在接口電路的狀態(tài)寄存器中,以供CPU進(jìn)行分析和處理。 串行通信中常見的三種錯(cuò)誤 1)奇偶校驗(yàn)出錯(cuò)。在接收方接收到數(shù)據(jù)時(shí),要進(jìn)行讀出校驗(yàn),統(tǒng)計(jì)信息位中“1”的個(gè)數(shù)是偶數(shù)還是奇數(shù),再與奇偶校驗(yàn)位進(jìn)行比較,若兩者不符即說明奇偶校驗(yàn)出錯(cuò)。 2)溢出錯(cuò)誤

9、。又稱為超越錯(cuò)誤或覆蓋錯(cuò)誤。當(dāng)發(fā)送方的傳輸速率大于接收方傳輸速率時(shí)會(huì)造成數(shù)據(jù)覆蓋,即數(shù)據(jù)丟失。這通常是由收發(fā)雙方的波特率不匹配而引起的。 3)幀格式出錯(cuò)。當(dāng)接收方收到的信息與約定的信息格式不符從而引起錯(cuò)誤。這種錯(cuò)誤大多是由于雙方信息格式不一致造成的。 5.申行通信信息格式 (1)異步通信信息格式 信息格式又稱數(shù)據(jù)格式或字符格式。異步通信每次傳輸一個(gè)字符,通常字符用ASCII碼,采用1位奇偶校驗(yàn)位。在每個(gè)字符的前面加1位起始位,后面加1位(或加1.5位、或是2位)停止位,這樣就形成了一個(gè)完整的字符幀格式。一般情況,一幀包含10個(gè)字符位。在異步通信時(shí),當(dāng)傳送字符時(shí)即傳送1幀信息格式;不傳送時(shí)稱為空

10、閑,用高電平(邏輯1)表示。異步通信信息格式如圖12-1所示。 1)起始一停止位。起始位和停止位作用是同步。起始位,1位,低電平有效。當(dāng)信息傳輸線由空閑(高電平)變?yōu)榈碗娖剑业碗娖骄S持時(shí)間大于1/2位時(shí),才被確認(rèn)為起始位而不是干擾信號(hào)。接收方接收到起始信號(hào)后準(zhǔn)備接收。停止位可選擇1位、1.5位和2位,通常使用1位,高電平有效。停止位標(biāo)志一個(gè)字符傳送結(jié)束,同樣也是1幀的結(jié)束。 2)數(shù)據(jù)位。數(shù)據(jù)位又稱信息位。傳送的字符使用不同的編碼方法時(shí),其數(shù)據(jù)位不同,如5、6, 7, 8位;通常采用ASCII碼,其數(shù)據(jù)位為7位。數(shù)據(jù)位接在起始位后面,依次按D0、D1、D2、D3、D4、D5、D6進(jìn)行傳送。

11、3)校驗(yàn)位。校驗(yàn)位是數(shù)據(jù)位的奇偶校驗(yàn)碼,1位。發(fā)送時(shí)由數(shù)據(jù)位形成奇偶校驗(yàn)碼作為校驗(yàn)位;接收時(shí)將接收到的數(shù)據(jù)形成校驗(yàn)碼,并與接收到的校驗(yàn)位進(jìn)行比較,稱之為奇偶校驗(yàn)。 (2)同步通信信息格式 同步通信控制規(guī)程可分為兩類:面向字符型和面向位型(或稱面向比特型),因此同步通信信息格式也分為兩類。 1)面向字符型信息格式。面向字符型信息格式有三種:單同步、雙同步和外同步。雙同步通信信息格式是由2個(gè)字節(jié)同步字符、數(shù)據(jù)塊、2個(gè)字節(jié)循環(huán)冗余校驗(yàn)碼(CRC)組成。同步字符由通信雙方約定,用來進(jìn)行同步。數(shù)據(jù)塊由一組被傳送的字符組成,它含有若干字節(jié),如256B, 512B, 1024B, 2048B等。循環(huán)冗余校驗(yàn)

12、碼用來對傳送的數(shù)據(jù)塊進(jìn)行循環(huán)冗余校驗(yàn),目的是檢錯(cuò)和糾錯(cuò)。單同步通信信息格式與雙同步相比,只是減少了1個(gè)字節(jié)的同步字符。外同步通信信息格式與雙同步相比,沒有了同步字符,但是增加了外同步信號(hào)。 2)面向位型信息格式。面向位型控制規(guī)程的概念是IBM公司最先提出的,其代表性的規(guī)程是SDLC和HDLC, SDLC/HDLC信息格式是雙同步的發(fā)展。SDLC/HDLC一幀信息是由若干場(Field)組成的,標(biāo)志字符也稱標(biāo)志場。地址場用來規(guī)定與之通信的次站的地址,又稱為A場??刂茍鲇址Q為C場,C場可規(guī)定若干命令。I場是信息場。詳細(xì)內(nèi)容請參看網(wǎng)絡(luò)通信的相關(guān)書籍。 6.數(shù)據(jù)傳輸率 (1)波特率 所謂數(shù)據(jù)傳輸率是指

13、串行通信時(shí)每秒所能傳輸?shù)淖址麛?shù),即字符秒。若以字符的位為單位,則每秒所能傳輸?shù)模ǘM(jìn)制位的)位數(shù),稱為波特率,其單位即 位秒,簡寫為bit/s。例如,當(dāng)異步串行通信的數(shù)據(jù)傳輸率為120字符秒時(shí),其波特率為1200bit/s。(其實(shí)這是在滿足一定條件的情況下才可以這么說的。) 在串行通信中,要采用標(biāo)準(zhǔn)的波特率系列,如110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200bit/s等。 位時(shí)間用Tb表示,即傳送一個(gè)二進(jìn)制位(位字符)所需要的時(shí)間,它是波特率的倒數(shù)。假設(shè)異步串行通信使用1200bit/s,則Tb=I(秒)=1200(位秒)=0. 833ms

14、。在信息格式中,一位須用0. 833 ms時(shí)間傳送。 (2)發(fā)送接收時(shí)鐘 在串行通信傳送過程中,信息的發(fā)送接收是在專門的發(fā)送接收時(shí)鐘控制下進(jìn)行的。因此,發(fā)送接收時(shí)鐘的作用是用來控制數(shù)據(jù)的發(fā)送和接收。發(fā)送時(shí),發(fā)送器在發(fā)送時(shí)鐘TxC的控制下,將發(fā)送移位寄存器的數(shù)據(jù)按位串行移位輸出,即完成并-串轉(zhuǎn)換,送到通信線(TxD)上。接收時(shí),接收器在接收時(shí)鐘脈沖RxC的控制下,對來自通信線(RxD)上的串行數(shù)據(jù),按位串行輸人至接收移位寄存器,即完成串-并轉(zhuǎn)換。此時(shí),發(fā)送接收時(shí)鐘脈沖起移位脈沖的作用。 (3)波特率因子 發(fā)送接收時(shí)鐘的頻率,一般都設(shè)置為波特率的整數(shù)倍,如1, 16, 32, 64倍。這個(gè)波特率的

15、倍數(shù)叫做波特率因子(Factor),或波特率系數(shù)。三者之間的關(guān)系如下: 發(fā)送接收時(shí)鐘頻率(F)=波特率x波特率因子或?qū)懗桑?波特率因子=發(fā)送接收時(shí)鐘頻率(F) 波特率12.1 2串行通信工作方式 在串行通信中,數(shù)據(jù)通常是在A和B雙方之間進(jìn)行信息傳送,一方稱之為發(fā)送方,一方稱之為接收方。按照信息傳送的方式可分成三種基本的傳送方式(制式):全雙工、半雙工和單工方式。如圖12-3所示。這三種方式雖然有很多不同,但是數(shù)據(jù)發(fā)送和接收的基本原理是相同的。1單工方式 單工方式即單向工作方式。通信時(shí)雙方只能進(jìn)行一個(gè)方向的傳輸。當(dāng)A為發(fā)送方時(shí),B只能為接收方,或者相反。單工方式的優(yōu)點(diǎn)是線路簡單,由圖12-3a可

16、見只有一條數(shù)據(jù)傳輸線。這是一種單向單線方式。2. 全雙工方式 通信雙方都能同時(shí)時(shí)行雙向工作,即能同時(shí)實(shí)現(xiàn)A方發(fā)送-B方接收, B方發(fā)送A方接收。由圖12-3C可見,這需要二條的數(shù)據(jù)線。這是一種雙向雙線方式。3. 半雙工方式介于單工方式和全雙工方式之間,這是一種雙向單線方式。半雙工只設(shè)置一條數(shù)據(jù)傳輸線,可看成是分時(shí)雙工方式,即雙方都可發(fā)送接收,但不能在同一時(shí)刻發(fā)送接收。當(dāng)A方用于發(fā)送時(shí),就不能接收;而用于接收時(shí),就不能發(fā)送,如圖12-3b所示。在半雙工通信過程中,需要進(jìn)行接收發(fā)送方向的切換。 目前,數(shù)字尋呼系統(tǒng)采用單工方式,計(jì)算機(jī)通信采用雙工方式,主-從數(shù)字系統(tǒng)采用半雙工方式。12.1.3 RS

17、-232C標(biāo)準(zhǔn) RS-232C是目前廣泛應(yīng)用于計(jì)算機(jī)通信的一種串行通信標(biāo)準(zhǔn)。目前常用的串行通信標(biāo)準(zhǔn)有RS-232C、RS-422、RS-485等等,但它們的基礎(chǔ)是RS-232C。RS-232C標(biāo)準(zhǔn)對串行通信接口各信號(hào)線的功能、電氣特性等都有明確的規(guī)定,它適用于數(shù)據(jù)傳輸率比較低(低于20000bit/s)的通信。RS-232C標(biāo)準(zhǔn)的主要特點(diǎn)如下:1)RS-232C具有25條不同功能的信號(hào)線,并對其中的20條作了定義;計(jì)算機(jī)通信只使用其中的9條。2) RS-232C支持全雙工方式。3) RS-232C支持標(biāo)準(zhǔn)的數(shù)據(jù)傳輸率:50, 75, 110、150, 300、600, 1200、2400、48

18、00, 19200bit/s 。4) RS-232C采用負(fù)邏輯,以負(fù)電平(-3-25V)作邏輯“1”以正電平(+3V25V)作邏輯“0,提高了信號(hào)的抗干擾能力。5) RS-232C支持近距離(15m)通信,當(dāng)遠(yuǎn)程通信時(shí)支持Modem。1信號(hào)線 RS-232C信號(hào)線大致分為三類:數(shù)據(jù)線(TxD, RxD ),調(diào)制解調(diào)控制線(RTS, CTS, DTR、DSR, DCD, RI)和地線(GND)。見表12-1a (1)信號(hào)線的邏輯功能 1) TxD:發(fā)送數(shù)據(jù)線。A的發(fā)送端發(fā)出的串行數(shù)據(jù)信息通過TXD直接發(fā)送給B的接收端(RxD )、或者再經(jīng)過Modem然后發(fā)送給B。 2) RxD:接收數(shù)據(jù)線。接收

19、端通過RxD接收對方發(fā)來的串行數(shù)據(jù)。 3) RTS:請求發(fā)送,輸出,高電平有效。當(dāng)發(fā)送方準(zhǔn)備好(發(fā)送數(shù)據(jù))時(shí),向?qū)Ψ桨l(fā)出RTS,請求對方同意發(fā)送;只有當(dāng)對方同意時(shí),發(fā)送方才能向?qū)Ψ桨l(fā)送數(shù)據(jù)。 4) CTS:清除(允許)發(fā)送,輸人,高電平有效。接收方對發(fā)送方RTS的響應(yīng)(握手)信號(hào)經(jīng)過CTS進(jìn)人發(fā)送方。當(dāng)CTS信號(hào)有效,表示接收方同意發(fā)送方進(jìn)行數(shù)據(jù)發(fā)送。 5) DTR:數(shù)據(jù)終端設(shè)備準(zhǔn)備好,輸出,高電平有效。當(dāng)DTR信號(hào)有效表示接收方準(zhǔn)備好,可以使用。 6) DSR:數(shù)據(jù)通信設(shè)備(數(shù)據(jù)裝置)準(zhǔn)備好,輸人,高電平有效。當(dāng)DSR信號(hào)有效表示發(fā)送方準(zhǔn)備好,可以使用。 7) DCD:載波檢出信號(hào),輸人,高

20、電平有效。該信號(hào)有效,表示已檢出信號(hào)。 8) RI:振鈴信號(hào)線,輸人,高電平有效。該信號(hào)有效,表示數(shù)據(jù)通信鏈路已接通。 9) GND:信號(hào)地線。 注意:RS-232C標(biāo)準(zhǔn)中所提到的“發(fā)送”和“接收”,都是站在DTE的立場上,而不是站在DCE的立場來定義的。在計(jì)算機(jī)系統(tǒng)中,A機(jī)和B機(jī)能進(jìn)行雙向傳輸,雙方都能發(fā)送接收,因此要作新的理解。 (2)信號(hào)線連接方法 在雙機(jī)通信時(shí),A機(jī)RS-232C和B機(jī)RS-232C直接連接的方法有三種,如下頁的圖12-4所示。但無論使用哪種方式,雙機(jī)的信號(hào)地線必須連接在一起。2010年12月10日講到此 1)理論接法(七線制)。支持Modem,使用握手信號(hào)控制數(shù)據(jù)傳送

21、,見圖12-4C。 2)簡易接法(七線制)。支持Modem,使用一些握手信號(hào)控制數(shù)據(jù)傳送,見圖12-4b。 3)簡易接法(三線制)。不使用握手信號(hào)控制數(shù)據(jù)傳送,見圖12-4a。 圖12-4C的工作過程如下,此處假設(shè)A機(jī)發(fā)送給B機(jī),反之亦真。 A機(jī)發(fā)RTS(有效),表示請求發(fā)送。 B機(jī)的DSR有效,即表示已接收到A機(jī)的請求發(fā)送信號(hào),知道A機(jī)(數(shù)據(jù)設(shè)備)已準(zhǔn)備好。 B機(jī)在做好準(zhǔn)備以后,發(fā)DTR表示B機(jī)(數(shù)據(jù)終端)已準(zhǔn)備好接收。 A機(jī)的CTS有效,即表示已接收到B機(jī)的同意接收信號(hào)。 A機(jī)將數(shù)據(jù)據(jù)經(jīng)TxD發(fā)送給B機(jī)RxD。 2電氣屬性 (1)邏輯電平 RS-232 C (EIA)的邏輯電平與TTL不同

22、,它采用負(fù)邏輯,不歸0(不回到0V),目的是為了提高抗干擾能力和補(bǔ)償傳輸線上的信號(hào)衰減,保證傳輸信號(hào)的正確性。RS一232C標(biāo)準(zhǔn)對信號(hào)的邏輯定義(EIA邏輯)如下: 1)邏輯1 (Mark)電平規(guī)定為-3V-25V。 2)邏輯0 ( Space)電平規(guī)定為3V25V。 在PC中規(guī)定:RS-232C (EIA)邏輯0,+12V;邏輯1,-12V。由于TTL電平使用正邏輯,它規(guī)定:邏輯0,+0V;邏輯1, +3V。因此兩者之間應(yīng)該使用電平轉(zhuǎn)換,轉(zhuǎn)換采用專用芯片來完成。TTL電平信號(hào)+5V等價(jià)于邏輯“1”,0V等價(jià)于邏輯“0”,這被稱做TTL(晶體管-晶體管邏輯電平)信號(hào)系統(tǒng),這是計(jì)算機(jī)處理器控制的

23、設(shè)備內(nèi)部各部分之間通信的標(biāo)準(zhǔn)技術(shù)。 常溫下,00.4伏為0, 3.0伏5V為1。 (2)電平轉(zhuǎn)換 常用的轉(zhuǎn)換芯片有MC1488, SN75150和MC1489, SN75154,它們只能實(shí)現(xiàn)單向轉(zhuǎn)換。MC1488, SN75150用于從TTL到EIA電平的轉(zhuǎn)換;MC1489, SN75154用于從EIA到TTL電平的轉(zhuǎn)換。使用MAX232芯片可實(shí)現(xiàn)TTL一EIA電平雙向轉(zhuǎn)換。電平轉(zhuǎn)換電路如圖12-5所示。 圖12-5電平轉(zhuǎn)換電路3.機(jī)械屬性 任何一種總線標(biāo)準(zhǔn)都需要一個(gè)載體。RS-232C的載體是具有25針的連接器。連接器即通信電纜的插頭插座。所謂機(jī)械屬性是指,針的強(qiáng)度,針的機(jī)械尺寸,針之間的距

24、離,針在插座中的排列位置等,這些都有明確的規(guī)定。DB-25型是早期PC使用的連接器,它除了支持EIA電壓接口外,還支持20mA電流環(huán)接口。后期的微型計(jì)算機(jī)串行接口不支持電流環(huán)接口,采用DB-9型連接器。DB-25型和DB-9型連接器的外形及信號(hào)引腳分配分別如圖12-6所示。 RS-232C對通信電纜長度也有明確的規(guī)定,通常規(guī)定為15m,這也就是對近距離通信的界定,即兩臺(tái)計(jì)算機(jī)或終端的最大物理距離是15m。通信電纜采用普通非屏蔽多芯電纜,它能滿足15m內(nèi)RS-232C規(guī)定最大負(fù)載電容為2500pF的要求。1.2.4 長矩離串行通信 我們所介紹的計(jì)算機(jī)串行通信都是數(shù)字通信,即傳輸?shù)臄?shù)據(jù)是以0, 1

25、組成的數(shù)字信號(hào)。數(shù)字信號(hào)包含了從低頻到高頻的諧波成分,因此進(jìn)行數(shù)字通信對傳輸線頻帶要求比較寬。在遠(yuǎn)距離通信時(shí),為了降低成本,常利用普通電話線作為傳輸線,而電話線的頻帶寬度不夠,如果讓數(shù)字信號(hào)直接在電話線上傳輸,高次諧波的衰減就會(huì)很厲害,從而使傳輸?shù)男盘?hào)產(chǎn)生嚴(yán)重的畸變和失真,導(dǎo)致0, 1不能正確識(shí)別。因此,長距離串行通信要考慮數(shù)字波形畸變問題。由于在電話線上傳輸模擬信號(hào)失真較小,而計(jì)算機(jī)使用數(shù)字信號(hào),這樣就需要將數(shù)字信號(hào)和模擬信號(hào)進(jìn)行轉(zhuǎn)換,于是就需要調(diào)制解調(diào)器。 長矩離通信需要調(diào)制解調(diào)器1調(diào)制解調(diào)器 發(fā)送時(shí),需要將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),然后從通信線(電話線)再發(fā)送到接收方,稱之為調(diào)制,這是通過

26、調(diào)制器(Modulator)來實(shí)現(xiàn)的。接收時(shí),需要將從通信線(電話線)上接收的模擬信號(hào)轉(zhuǎn)換(還原)成數(shù)字信號(hào)再接收,稱之為解調(diào),這是通過解調(diào)器(Demodulator)來實(shí)現(xiàn)的。將調(diào)制器和解調(diào)器組合在一起形成的電路稱為調(diào)制解調(diào)器(Modem). Modem的調(diào)制和解調(diào)工作如圖12-7所示。Modem是制定RS-232C接口標(biāo)準(zhǔn)的依據(jù)。 基本的調(diào)制和解調(diào)方法有調(diào)頻、調(diào)相、調(diào)幅等。當(dāng)傳送速率較低時(shí),以調(diào)頻制最為常用。 1)調(diào)頻(FM)制。數(shù)字0和1用不同的頻率f表示。例如,數(shù)字0用f=1200Hz表示;數(shù)字1用f2400 Hz表示。 2)調(diào)相(PM)制。數(shù)字0和1用不同的相位p表示。例如,數(shù)字0用

27、p=0度表示;數(shù)字1用p =90度表示。 3)調(diào)幅(AM)制。例如,數(shù)字0用0V表示,無模擬信號(hào)輸出;數(shù)字1有模擬信號(hào)輸出。 2調(diào)頻制工作原理 常用的調(diào)頻制采用FSK (開關(guān)法)。它的工作原理如圖12-8所示。f1和f2是兩種不同頻率的輸人端,K1和K2是兩個(gè)電子開關(guān),DATA是數(shù)字0/1的輸人端。當(dāng)工作時(shí),發(fā)送的數(shù)字信號(hào)經(jīng)DATA輸入,若是0,打開電子開關(guān)K2,頻率f2經(jīng)運(yùn)算放大器輸出;若是1,打開電子開關(guān)K,頻率f1經(jīng)運(yùn)算放大器輸出;從運(yùn)算放大器輸出得到調(diào)制后的輸出信號(hào),信號(hào)中頻率低的表示0,頻率高的部分表示1。12. 2 8251 A串行接口 常用的串行接口依它所支持的串行通信方式不同,

28、可分為三類:第一類只支持異步通信方式,典型的芯片有Intel 8250和16550 DART;第二類不僅支持異步通信方式,而且還支持同步通信方式,典型的芯片有Intel 8251 ;第三類既支持異步通信方式,又支持同步通信方式,更支持SDLC/HDLC方式,典型的芯片有Z80一SIO,其中以Intel 8251 A芯片最為普及。 Intel 8251 A芯片是通用的串行同步和異步收發(fā)器(USART ),它必須編程使用(使用之前先通過編程對它初始化)。8251A具有以下主要特點(diǎn): 1)支持同步和異步串行通信,并可用編程選擇。 2)在異步通信時(shí),可用編程選擇異步通信信息格式。信息格式在發(fā)送時(shí)自動(dòng)形

29、成。 3)在同步通信時(shí),可用編程選擇同步通信信息格式。信息格式在發(fā)送時(shí)自動(dòng)形成。 4)支持全雙工方式。 5)在異步通信時(shí),波持率允許在0一19 200bit/s范圍內(nèi);在同步通信時(shí),波持率允許在0一64 000bit/s范圍內(nèi)。 6)支持出錯(cuò)檢測,能對奇偶出錯(cuò)、幀格式出錯(cuò)和溢出錯(cuò)誤進(jìn)行檢測。 7)與多種類型的CPU能夠兼容。 8)支持TTL邏輯電平。12. 2. 1 8251 A組成和工作原理 8251A串行接口的功能結(jié)構(gòu)如圖12-9所示。從圖12-9中可以看出,它是由9個(gè)功能模塊組成。按接口概念把它們歸為三個(gè)部分。一、與CPU連接部分 1)數(shù)據(jù)總線緩沖器。數(shù)據(jù)總線緩沖器是8251A與系統(tǒng)數(shù)據(jù)

30、總線的接口,它是雙向三態(tài)緩沖器。由圖12-9可見,數(shù)據(jù)總線緩沖器通過內(nèi)部數(shù)據(jù)總線與發(fā)送緩沖器、接收緩沖器以及內(nèi)部寄存器(圖未畫出)相連,在相互間傳送信息。它在兩者之間傳遞三種信息:CPU寫入8251 A的編程控制字;以及CPU與8251間傳送的數(shù)據(jù)。即發(fā)送或接收的數(shù)據(jù)。 2)讀寫控制邏輯。讀寫控制邏輯是8251 A與系統(tǒng)地址總線和控制總線的接口,一方面它接收芯片地址(通過CS引腳)和芯片內(nèi)部端口地址A0(通過C/D引腳),實(shí)現(xiàn)對芯片內(nèi)部口地址的譯碼;另一方面它又接收CPU的讀寫命令,完成對8251 A的寫人和讀出操作。二、內(nèi)部邏輯電路 內(nèi)部邏輯電路的核心是控制字寄存器。它與控制字譯碼器、操作信

31、號(hào)發(fā)生器等組成內(nèi)部邏輯電路,以控制8251A按時(shí)序操作,這個(gè)時(shí)序是由系統(tǒng)時(shí)鐘(CLK)形成的。這一部分電路在功能結(jié)構(gòu)圖中是隱含的。 8251 A控制字寄存器有4個(gè):1個(gè)8位工作方式(模式)寄存器,2個(gè)8位同步字符寄存器,1個(gè)8位命令(控制)寄存器。它們的作用是存放CPU送來的控制字。8251A還有1個(gè)8位狀態(tài)寄存器,作用是保存8251A的工作狀態(tài)標(biāo)志。 8251 A的控制字寄存器、狀態(tài)寄存器以及發(fā)送緩沖器、接收緩沖器構(gòu)成了8251A的內(nèi)部寄存器,也稱為編程結(jié)構(gòu)。這是CPU通過IN/OUT指令能訪問的部分。 三、與I/0連接部分 與 I/0連接部分,其實(shí)是指發(fā)送器和接收器。由圖12-9可見,發(fā)送

32、器包括3個(gè)模塊:發(fā)送緩沖器、并-串轉(zhuǎn)換電路和發(fā)送器控制電路;接收器包括3個(gè)模塊:接收緩沖器、串-并轉(zhuǎn)換電路和接收器控制電路。 在發(fā)送工作前,CPU用OUT指令輸出的數(shù)據(jù),經(jīng)數(shù)據(jù)總線緩沖器進(jìn)人發(fā)送緩沖器;發(fā)送時(shí),數(shù)據(jù)由發(fā)送緩沖器進(jìn)人并-串轉(zhuǎn)換電路。并-串轉(zhuǎn)換電路實(shí)質(zhì)上是移位寄存器,它能將8位并行輸入數(shù)據(jù),在發(fā)送時(shí)鐘TxC的控制下串行移位輸出。 異步通信時(shí),在發(fā)送器控制電路的控制下,數(shù)據(jù)串行輸出時(shí)自動(dòng)加上起始位、停止位,自動(dòng)形成校驗(yàn)位,即自動(dòng)形成信息格式,然后從TxD引腳輸出。發(fā)送完成后,發(fā)送器空,發(fā)出TxRDY信號(hào),去請求發(fā)送中斷(可通過82C59A )。此后等待CPU用OUT指令輸出數(shù)據(jù)到發(fā)送

33、緩沖器,進(jìn)行新一輪的發(fā)送。 在接收時(shí),通過RxD接收的串行數(shù)據(jù),在RxC的控制下串行移位輸人。異步通信時(shí),在接收器控制電路的控制下,自動(dòng)去除起始位、停止位、校驗(yàn)位,僅保留數(shù)據(jù)位,并存在串-并轉(zhuǎn)換電路(移位電路)中;而且自動(dòng)進(jìn)行讀出校驗(yàn),待正確后,數(shù)據(jù)由串-并轉(zhuǎn)換電路進(jìn)人接收緩沖器。如果校驗(yàn)不正確則發(fā)出奇偶校驗(yàn)出錯(cuò)。當(dāng)接收器滿以后,發(fā)出RxRDY,去請求接收中斷(可通過82C59A )。此后等待CPU用IN指令從接收緩沖器讀人數(shù)據(jù),進(jìn)行新一輪的接收。12. 2. 2 8251 A芯片引腳 8251A是一個(gè)28引腳的雙列直插芯片,其芯片引腳如圖12-9所示。信號(hào)線可分為兩類:面向CPU的,面向I/

34、O(Modem)的。 1與CPU連接(系統(tǒng)總線)的引腳 (1)系統(tǒng)信號(hào)1) RESET:系統(tǒng)復(fù)位信號(hào), CPU發(fā)來,高電平有效。它的功能是對8251A進(jìn)行復(fù)位。2) CLK:系統(tǒng)時(shí)鐘信號(hào),由CPU(?)發(fā)來。它的功能是在8251A內(nèi)部產(chǎn)生時(shí)序。CLK的頻率遠(yuǎn)高于TxC ( RxC)的頻率,可高幾十倍。 (2)三總線信號(hào) 1) CS:片選信號(hào),低電平有效,由系統(tǒng)地址總線(A0除外)經(jīng)I/O端口地址譯碼電路產(chǎn)生。當(dāng)CS = 0時(shí),8251 A芯片被選中,以后CPU可對該芯片進(jìn)行讀寫操作。2) C/D:內(nèi)部端口地址選擇,用來尋址8251 A內(nèi)部寄存器。C/D =0,選擇數(shù)據(jù)(D)端口;C/D=1,選

35、擇控制(C)端口。該引腳一般與CPU來的地址線A0相連。3)RD:讀信號(hào),低電平有效。CPU在執(zhí)行IN指令時(shí),發(fā)出RD命令,從8251 A讀取數(shù)據(jù)4)WR:寫信號(hào),低電平有效。CPU在執(zhí)行OUT指令時(shí),發(fā)出WR命令,向8251 A寫人控制字或數(shù)據(jù)。 5) D7D0數(shù)據(jù)線,雙向三態(tài)。CPU通過D7D7與8251A傳送數(shù)據(jù)。用OUT指令,CPU向8251A發(fā)送控制字或數(shù)據(jù);用IN指令,CPU接收從8251 A讀入的狀態(tài)或數(shù)據(jù)。(3)聯(lián)絡(luò)控制信號(hào)1) TxRDY:發(fā)送準(zhǔn)備好,高電平有效。當(dāng)TxEN = 1,且CTS=0, TxE(引腳)=1時(shí),TxRDY=1 。TxRDY =1,用此信號(hào)通知CPU;

36、當(dāng)CPU據(jù)此發(fā)送一個(gè)數(shù)據(jù)給8251 A時(shí),使TxRDY=0。當(dāng)采用中斷方式時(shí),TxRDY作為發(fā)送中斷源請求信號(hào)。 2) RxRDY:接收準(zhǔn)備好,高電平有效。當(dāng)RxEN=1,且接收緩沖器收到B方發(fā)來的數(shù)據(jù)時(shí)使RxRDY =1,用此信號(hào)通知CPU;當(dāng)CPU據(jù)此從8251 A取走一個(gè)數(shù)據(jù)時(shí),使RxRDY=0。當(dāng)采用中斷方式時(shí),RxRDY作為接收中斷源請求信號(hào)。 TxEN 命令控制字中的第0位,高電平表示允許發(fā)送。數(shù)據(jù)通信設(shè)備(這里指調(diào)制解調(diào)器)發(fā)來的應(yīng)答信號(hào)之一,其低電平有效,取走了發(fā)送緩沖器中的數(shù)據(jù)。RxEN 命令控制字中的第2位,高電平表示允許發(fā)送。2.與I/0設(shè)備(B方)連接的信號(hào)線 (1)發(fā)

37、送器和接收器信號(hào) 1) TxD:發(fā)送數(shù)據(jù)。8251A發(fā)出的串行數(shù)據(jù)信息通過TxD發(fā)送出去。 2) RxD:接收數(shù)據(jù)。8251A通過RxD接收對方發(fā)來的串行數(shù)據(jù)。 3) TxC:發(fā)送時(shí)鐘。8251 A在TXC的控制下發(fā)送數(shù)據(jù)。 4) RxC:接收時(shí)鐘。8251 A在RxC的控制下接收數(shù)據(jù)。通常TxC和RxC連在一起,使用同一種頻率,它可由計(jì)數(shù)器定時(shí)器82C54, 8253等產(chǎn)生。 5) TxE(MP):發(fā)送器空,指示一次發(fā)送結(jié)束,高電平有效。TxE=1,發(fā)送完成;當(dāng)接收到CPU送來的一個(gè)字符,使TxE=0。 6) SYNDET:同步檢測信號(hào),用于同步通信。內(nèi)同步時(shí),SYNDET用做輸出,檢測到同

38、步字符時(shí),SYNDET =1 ;外同步時(shí),SYNDET作為外同步信號(hào),輸入,當(dāng)SYNDET出現(xiàn)上升沿時(shí)觸發(fā)同步過程。 (2)調(diào)制解調(diào)信號(hào) 這是為適應(yīng)Modem而設(shè)置的,其意義和RS-232C相同,但邏輯電平不同。 1) RTS:請求發(fā)送,輸出,低電平有效。由命令控制字設(shè)置。 2) CTS:清除(允許)發(fā)送,輸入,低電平有效。RTS和CTS是一對握手信號(hào)。 3) DTR:數(shù)據(jù)終端設(shè)備準(zhǔn)備好,輸出,低電平有效。由命令控制字設(shè)置。當(dāng)DTR信號(hào)有效表示接收方準(zhǔn)備好,可以使用。 4) DSR:數(shù)據(jù)通信設(shè)備(數(shù)據(jù)裝置)準(zhǔn)備好,輸人,低電平有效。DTR和DSR是一對握手信號(hào)。一般情況下:RTS 對方的DSR

39、 DTR 對方的CTS12. 2. 3 8251 A控制字及其初始化 8251 A芯片必須編程使用。8251 A有2個(gè)控制字和1個(gè)狀態(tài)字。兩個(gè)控制字中一個(gè)稱為工作方式控制字,一個(gè)稱為命令控制字。 工作方式控制字用于規(guī)定串行通信的同步方式(同步方式/異步方式)規(guī)定通信使用的數(shù)據(jù)格式、有無奇偶校驗(yàn)、若工作于同步方式,則同步字符的個(gè)數(shù)等。 命令控制字用于8251A的內(nèi)部復(fù)位、某些引腳信號(hào)輸出控制以及是否允許進(jìn)行發(fā)送和接收工作等。 這些控制字和狀態(tài)字都是8位的。 下面我們分別介紹工作方式控制字、命令控制字和狀態(tài)字的格式。1. 工作方式控制字當(dāng)D1D0=00時(shí)D6=0 內(nèi)同步D6=1外同步D7=0 兩同

40、步字符D7=1 單同步字符 當(dāng)D1D0不等00時(shí)D7D6=01 1個(gè)停止位D7D6=10 1.5個(gè)停止位D7D6=112個(gè)停止位 (2)應(yīng)用 例12-1假設(shè)A, B兩機(jī)采用異步通信,信息格式采用1位起始位,1位停止位,7位數(shù)據(jù)位,奇校驗(yàn),波特率因子是1,則其工作方式字為01011001B =59H。寫入控制字的程序段如下: MOV DX,301H ;設(shè)8251A控制口地址為301H. MOV AL,59H;異步工作方式控制字是59H OUT DX,AL 【例12-2】若使用同步通信,設(shè)定信息格式為:字符長度8位,內(nèi)同步方式,雙同步字符,無奇偶校驗(yàn),則工作方式控制字是00001100B =0CH

41、。寫入控制字的程序段如下: MOV DX,301H ;設(shè)8251A控制口地址為301H MOV AL,0CH;同步工作方式控制字是。0CH OUT DX,AL 2. 命令控制字 也稱工作命令控制字。命令控制字的作用是對串行接口的內(nèi)部復(fù)位、通信允許、引腳輸出、同步、通信中止進(jìn)行控制。格式如圖12-11所示。 1)通信允許控制。 D0 TxEN:發(fā)送允許。D01,允許8251A發(fā)送數(shù)據(jù);D00,禁止8251A發(fā)送數(shù)據(jù)。 D2 RxE:接收允許。D2 =1,允許8251 A接收數(shù)據(jù);D2 = 0,禁止8251 A接收數(shù)據(jù)。D0 D2可以同時(shí)被置1,進(jìn)行全雙工通信。若其中的某一位置1,即僅允許發(fā)送或僅

42、允許接收,進(jìn)行半雙工通信。 2)引腳輸出控制。 D1 DTR:數(shù)據(jù)終端準(zhǔn)備好。D1=1, 使8251A的DTR引腳輸出低電平(有效),表示數(shù)據(jù)終端準(zhǔn)備好; D1 = 0,無效。 D5 RTS:發(fā)送請求。D5=1使8251A的RTS引腳輸出低電平(有效),向B方發(fā)出發(fā)送請求信號(hào);D5 =0,無效。 3)通信中止控制。 D3 SBRK:發(fā)送中止命令。D3 =1,使TxD輸出低電平;D3 =0, 8251A正常通信。要使8251A處于正常工作狀態(tài),D3要始終保持為0。 4)復(fù)位控制。 D4 ER:復(fù)位狀態(tài)寄存器的出錯(cuò)標(biāo)志位。D4= 1,清除狀態(tài)寄存器中的3個(gè)錯(cuò)誤標(biāo)志位,使FE, OE, PE清0;

43、D4=0,不復(fù)位。(要使8251A正常工作,應(yīng)使D4=1。) D6 IR : 8251A內(nèi)部復(fù)位。D6=1,內(nèi)部復(fù)位;D6 = 0,不復(fù)位。通常在對8251 A初始化前,都要首先進(jìn)行內(nèi)部復(fù)位,以后才進(jìn)行初始化。 5)同步控制。 D7 EH:搜索同步字符。D7= 1,用于內(nèi)同步方式,對接收的同步字符進(jìn)行檢索。D7=0, 8251 A工作在外同步和異步方式。 (2)應(yīng)用 【例12-3】設(shè)8251A的口地址為:300H,301H,若要使8251內(nèi)部復(fù)位,同時(shí)使出錯(cuò)標(biāo)志復(fù)位,控制字為01010000B,則程序段如下: MOV DX,301H ;8251A控制字口地址為301H MOV AL,50H ;

44、控制字為50H OUT DX,AL例12-4若在異步通信時(shí),工作在雙工方式(允許發(fā)送、允許接收、發(fā)RTS、發(fā)DTR) 控制字為00100111B,則程序段如下: MOV DX,301H ;8251A控制字口地址為301H MOV AL,27H ;控制字為27H OUT DX,AL3狀態(tài)字(I)格式也稱工作狀態(tài)字。狀態(tài)字用來標(biāo)志8251 A的工作狀態(tài),大致可分為三類:緩沖器狀態(tài)、引腳狀態(tài)和出錯(cuò)狀態(tài)。格式如圖12-12所示。D6=1 已收到同步信號(hào)。 1)緩沖器狀態(tài): D0 TxRDY:發(fā)送緩沖器準(zhǔn)備好,當(dāng)數(shù)據(jù)從發(fā)送緩沖器傳送到并一串移位寄存器中,即意味著發(fā)送緩沖器準(zhǔn)備好,可以接受CPU發(fā)來的新的

45、數(shù)據(jù)。于是使?fàn)顟B(tài)位D0= 1。注意狀態(tài)位TxRDY和引腳TxRDY的邏輯意義并不一致。 TXRDY位是發(fā)送準(zhǔn)備好標(biāo)志,它與引線端TXRDY的意義有些區(qū)別。TXRDY狀態(tài)標(biāo)志為“1只反映當(dāng)前發(fā)送數(shù)據(jù)緩沖存儲(chǔ)器已空,而TXRDY引線端為“1,除發(fā)送數(shù)據(jù)緩沖存儲(chǔ)器已空外,還有兩個(gè)附加條件是CTS=0和TxEN =1,這就是說它們之間存在如下關(guān)系: TXRDY引線端TxRDY狀態(tài)位(CTS=0) (TxEN=1) 在數(shù)據(jù)發(fā)送過程中,上面兩者總是相同,通常TXRDY狀態(tài)位供CPU查詢,TxRDY引線端可用作向CPU發(fā)出的中斷請求信號(hào)。 D1 RxRDY:接收器準(zhǔn)備好。接收緩沖器收到B方發(fā)來的數(shù)據(jù)時(shí)使?fàn)顟B(tài)

46、位D1=1,標(biāo)志接收緩沖器滿。同時(shí)使引腳RxRDY輸出高電平。 D2 TxE:發(fā)送工作完成,此時(shí)使?fàn)顟B(tài)位D2=1 ,標(biāo)志發(fā)送器空, 同時(shí)使引腳TxE輸出高電平。 2)引腳狀態(tài)和狀態(tài)寄存器中相應(yīng)位的關(guān)系: RxRDY:當(dāng)接收準(zhǔn)備好時(shí),狀態(tài)位D1= 1,同時(shí)使引腳RxRDY輸出高電平。 TxE:當(dāng)發(fā)送工作完成時(shí),狀態(tài)位D2=1,同時(shí)使引腳TxE輸出高電平。 SYNDET:同步標(biāo)志。外同步時(shí),當(dāng)引腳SYNDET輸入為高電平,表示是外同步信號(hào),使?fàn)顟B(tài)位D6=1;否則D6 = 0。內(nèi)同步時(shí),當(dāng)已檢側(cè)到同步字符,使?fàn)顟B(tài)位D6=1,同時(shí)引腳SYNDET輸出為高電平;否則D6=0。 D7 DSR:數(shù)據(jù)通信設(shè)備

47、(數(shù)據(jù)裝置)準(zhǔn)備好。 引腳輸入為低電平(有效)時(shí),使?fàn)顟B(tài)位D7=1;否則D7=0。 3)出錯(cuò)狀態(tài): D3 PE:奇偶錯(cuò)。當(dāng)8251 A出現(xiàn)奇偶錯(cuò)時(shí),使?fàn)顟B(tài)位D3=1 (PE置“1”)。PE有效并不禁止8251A工作。 D4 OE 溢出錯(cuò)。若出現(xiàn)當(dāng)前一個(gè)字符尚未被CPU取走,后一個(gè)字符覆蓋前一個(gè)字符時(shí),稱為超越錯(cuò)誤,或溢出錯(cuò)誤。此時(shí)使?fàn)顟B(tài)位D4 =1 (OE置“1”)。 OE有效并不禁止8251A的操作。 D5 FE:幀出錯(cuò)(只用于異步方式)。若接收端在任一個(gè)字符的后面都沒有檢測到規(guī)定的停止位,此時(shí)使?fàn)顟B(tài)位D5=1 (FE置“1”)。 以上3個(gè)錯(cuò)誤狀態(tài)位,均由命令控制字的ER位復(fù)位。(2)應(yīng)用例

48、12-5設(shè)8251A的口地址為:300H,301H,在串行通信時(shí),若采用查詢方式,則需要在發(fā)送程序中查詢狀態(tài)字的TxRDY(Do)位,其程序段如下:L3:MOV DX,301H ;8251A狀態(tài)端口是301H IN AL,DX ;注意:AL的D0位是TxRDY TEST AL,01H ;測試TxRDY,若TxRDY = 1則發(fā)送器準(zhǔn)備好 JZ L3 ;未準(zhǔn)備好,則重新讀狀態(tài)【例,2-6】在串行通信時(shí),若接收時(shí)需要檢查出錯(cuò)信息,則程序段如下: MOV DX, 301H ;8251A狀態(tài)端口是301H IN AL, DX ;讀狀態(tài)口 TEST AL, 38H ;狀態(tài)口的D3D4D5任一位為1 JN

49、Z ERR1 ;就是出錯(cuò)了,轉(zhuǎn)人ERR1標(biāo)號(hào)處12.3 8251A的應(yīng)用 8251A有各種不同的工作方式,如它可以工作在串行異步方式下,也可以工作在串行同步方式下, 不管是同步還是異步方式也都在許多的不同約定,顯然要使用它,必須先進(jìn)行初始化。 在初始化編程之后,還要進(jìn)行數(shù)據(jù)傳送編程,若是發(fā)送數(shù)據(jù),CPU只要將數(shù)據(jù)送到8251A的數(shù)據(jù)口即可,以后的事由8251A根據(jù)工作方式控制字規(guī)定的串行方式發(fā)送。若是接收數(shù)據(jù),CPU根據(jù)8251A的RXDRY信號(hào)的高低,確定是否要讀8251A接收緩沖器中的數(shù)據(jù)。右邊給出8251A的初始化和數(shù)據(jù)傳送流程圖。實(shí)驗(yàn)十一、 8251A串行口自發(fā)自收實(shí)驗(yàn)流程序圖開始(相

50、關(guān)常量、變量定義如端口號(hào)、方式字、命令字等)8251A的初始化數(shù)據(jù)的發(fā)送/接收與處理(要調(diào)用SEND和RX兩子程序)傳送結(jié)束(顯示“P”)主程序流程圖發(fā)送子程序流程圖讀狀態(tài)口可發(fā)送否?NY將數(shù)據(jù)送8251A的數(shù)據(jù)口RET讀狀態(tài)口有數(shù)據(jù)可讀?從8251A讀數(shù)據(jù)并送內(nèi)存存儲(chǔ)RET 接收子程序流程圖NY實(shí)驗(yàn)十一、 8251A串行口自發(fā)自收實(shí)驗(yàn)CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 35C0H H11: JMP STARTZ8251 EQU 0FFE1H ;8251A的控制口D8251 EQU 0FFE0H ;8251A的數(shù)據(jù)口COM_MOD EQU 04EH ;方式控制字4EH=01001110B;異步波特率因子為16,8位的數(shù)據(jù)位,無奇偶校驗(yàn),1個(gè)停止位COM_COM EQU 25H ;命令控制字25H=00100101B;8251A工作于全雙工方式,發(fā)送器和接收器全處于正常工作狀態(tài)。RTS為低電平有效。ZXK EQU 0FFDCHZ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論