版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、l教學(xué)重點 異步通信協(xié)議和RS232C接口 8251的內(nèi)部結(jié)構(gòu)和編程 異步通信程序第十章第十章 串行通信接口技術(shù)串行通信接口技術(shù)10.1 串行通信基礎(chǔ)串行通信基礎(chǔ)l串行通信:用一根信號線將數(shù)據(jù)逐位順序傳送l串行通信的優(yōu)勢:通信線路少,在遠(yuǎn)距離通信時可以極大地降低成本;適合于遠(yuǎn)距離數(shù)據(jù)傳送,也常用于速度要求不高的近距離數(shù)據(jù)傳送lPC系列機(jī)上有兩個串行異步通信接口,鍵盤/鼠標(biāo)器/顯示器與主機(jī)間亦采用串行數(shù)據(jù)傳送。1. 同步通信同步通信通信雙方使用同一時鐘通信雙方使用同一時鐘以數(shù)據(jù)塊(幀)為傳輸單位雙方使用同一時鐘(主控方提供時鐘,被控方接收時鐘)外同步:時鐘信號另外安排一根傳輸線自同步:發(fā)送時將時
2、鐘信號與數(shù)據(jù)混合編碼,接收時譯碼出時鐘數(shù)據(jù)格式:每個數(shù)據(jù)塊前加12個同步字符(同步頭)進(jìn)行幀同步,一般采用CRC循環(huán)冗余校驗碼串行通信的種類:串行通信的種類:l同步通信的數(shù)據(jù)傳輸效率和傳輸速率較高,但硬件電路比較復(fù)雜l串行同步通信主要應(yīng)用在網(wǎng)絡(luò)當(dāng)中,最常使用的同步通信協(xié)議有高級數(shù)據(jù)鏈路控制協(xié)議(HDLC)同步字符同步字符數(shù)據(jù)數(shù)據(jù) 數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)校驗校驗同步字符同步字符同步通信的數(shù)據(jù)格式同步通信的數(shù)據(jù)格式同步字符同步字符數(shù)據(jù)數(shù)據(jù)同步字符同步字符1 1 同步字符同步字符2 2CRC 1數(shù)據(jù)數(shù)據(jù)CRC 2CRC 1CRC 2單同步格式單同步格式雙同步格式雙同步格式標(biāo)志符標(biāo)志符01111110地址符
3、地址符8位位數(shù)據(jù)數(shù)據(jù)CRC 1 CRC 2 SDLC格式格式標(biāo)志符標(biāo)志符01111110數(shù)據(jù)數(shù)據(jù)CRC 1 CRC 2外同步格式外同步格式標(biāo)志符標(biāo)志符01111110地址符地址符8位位控制符控制符8位位數(shù)據(jù)信息數(shù)據(jù)信息CRC 1 CRC 2標(biāo)志符標(biāo)志符01111110 HDLC格式格式l1.單同步和雙同步(又稱為內(nèi)同步)l單同步和雙同步信息格式中的同步字符是由用戶確定的。選擇一個特殊的8位二進(jìn)制碼作為同步字符(單)l選擇兩個特殊的8位二進(jìn)制碼作為同步字符(雙同步)這一個或兩個同步字符作為一幀的開始,全幀包括多個字符。l l2.外同步l外同步與單同步、雙同步的差別在于數(shù)據(jù)塊前面沒有同步字符,而是
4、用數(shù)據(jù)塊外的同步信號表示數(shù)據(jù)傳送開始。l3.SDLC(同步數(shù)據(jù)鏈)l是以01111110作為標(biāo)志符,作為數(shù)據(jù)塊傳送起始和結(jié)束標(biāo)志,跟在起始標(biāo)志符之后的第二字節(jié)是一個8位地址符,接收器將收到的地址符同已存入的地址符相比較,相同,就接收數(shù)據(jù)。2. 異步通信異步通信通信雙方使用各自的時鐘通信雙方使用各自的時鐘l串行通信時的數(shù)據(jù)、控制和狀態(tài)信息都使用同一根信號線傳送l收發(fā)雙方必須遵守共同的通信協(xié)議(通信規(guī)程):l傳送速率l信息格式l位同步l幀同步l數(shù)據(jù)校驗l錯誤處理l串行異步通信以字符為單位進(jìn)行傳輸l數(shù)據(jù)格式:起止式異步通信協(xié)議起止式異步通信協(xié)議起止式異步通信協(xié)議起始位每個字符開始傳送的標(biāo)志,起始位采
5、用邏輯0電平起始位起始位附加位附加位停止位停止位空閑位空閑位數(shù)據(jù)位數(shù)據(jù)位低位低位高位高位字符字符0/10/1 0/10/10/10/10/10/11 10 01 11 11 1數(shù)據(jù)位數(shù)據(jù)位數(shù)據(jù)位緊跟著起始位傳送。數(shù)據(jù)位緊跟著起始位傳送。由由58個二進(jìn)制位組成,低位先傳送個二進(jìn)制位組成,低位先傳送附加位附加位該位可用于校驗或數(shù)據(jù)標(biāo)識:該位可用于校驗或數(shù)據(jù)標(biāo)識:可選擇奇檢驗、偶校驗或無校驗位可選擇奇檢驗、偶校驗或無校驗位停止位停止位表示該字符傳送結(jié)束。停止表示該字符傳送結(jié)束。停止位為邏輯位為邏輯1電平,可選擇電平,可選擇1、1.5、2位。位??臻e位空閑位傳送字符之間的邏輯傳送字符之間的邏輯1電平,
6、電平,表示沒有進(jìn)行傳送表示沒有進(jìn)行傳送l 要傳送一個字符K,若數(shù)據(jù)格式約定為:字符K用7位ASCII碼表示,1位偶校驗位,1位起始位,則異步方式傳送字符K時,在串行傳輸線上的波形如下圖所示,將其寫成ASCII碼,即把它的最低有效位寫在右邊時為1001011=4B。0 1 1 0 1 0 0 1 0 1起始位偶校驗停止位字符字符K的傳輸波形的傳輸波形數(shù)據(jù)傳輸速率數(shù)據(jù)傳輸速率l數(shù)據(jù)傳輸速率也稱比特率(Bit Rate)l每秒傳輸?shù)亩M(jìn)制位數(shù)bpsl字符中每個二進(jìn)制位持續(xù)的時間長度都一樣,為數(shù)據(jù)傳輸速率的倒數(shù)l當(dāng)進(jìn)行二進(jìn)制數(shù)碼傳輸,且每位時間長度相等時,比特率還等于波特率(Baud Rate)l過去
7、,串行通信(異步)的數(shù)據(jù)傳輸速率限制在50 bps到9600 bps之間。l現(xiàn)在,串行通信可以達(dá)到115200 bps或更高(1)波特率波特率 例1.設(shè)一個串行字符由1位起始位、7位數(shù)據(jù)位,1位奇偶校驗位和1位停止位構(gòu)成,每秒鐘傳送120個字符,則數(shù)據(jù)傳送的波特率為: 10位/字符120字符/S=120位/S=1200波特傳送每位信息所占用的時間為:1S/1200=0.833ms 設(shè)同步傳送的傳輸率也為1200波特,用4個同步字符作為信息幀頭部,字符中不設(shè)奇偶校驗位,被傳送的字符和同步字符均為7位,那么傳送100個字符所用的時間為7(4+100)/1200=0.6067秒。這就是說每秒的字符數(shù)
8、可達(dá)100/0.6067=165個??梢?在相同的傳輸速率下,同步傳輸?shù)膶嶋H字符要比異步高。 (2)發(fā)送/接收時鐘 在異步串行中,發(fā)送端需要用一定頻率的時鐘來決定發(fā)送每一個數(shù)據(jù)所占的時間長度(稱為位寬度),接收端也要用一定的頻率的時鐘來測定每一位輸入數(shù)據(jù)的位寬度。在異步通信中,總是根據(jù)數(shù)據(jù)傳輸?shù)牟ㄌ芈蕘泶_定收/發(fā)時鐘的頻率。通常,收/發(fā)時鐘的頻率總是取位傳輸率(即波特率)的16倍、32倍或64倍,這有利于在位信號的中間對每位數(shù)據(jù)進(jìn)行采樣減少讀數(shù)錯誤。 收/發(fā)時鐘頻率與波特率間的關(guān)系:收/發(fā)時鐘頻率=n波特率收/發(fā)波特率=收/發(fā)時鐘/n (其中 n=1,16,64) 式中n叫波特率系數(shù)或波特率因
9、子,它的取值可為1,16,32或64。 但對可編程串行接口芯片8251A來說,n不能取32,只能取1,16或64。由上可知,在實際應(yīng)用中,可根據(jù)所需要的傳輸波特率和選取的波特率因子n來確定收/發(fā)時鐘的頻率。例:若要求傳輸速率為2400波特,則: 當(dāng)取n=1時,收/發(fā)時鐘頻率為2.4KHz 當(dāng)取n=16時,收/發(fā)時鐘頻率為38.4KHz 當(dāng)取n=64時,收/發(fā)時鐘頻率為153.6KHz例:例:一個異步串行發(fā)送器,發(fā)送具有一個異步串行發(fā)送器,發(fā)送具有8位數(shù)據(jù)位的字符,位數(shù)據(jù)位的字符,在系統(tǒng)中使用一個奇偶校驗位和兩個停止位。若每秒發(fā)在系統(tǒng)中使用一個奇偶校驗位和兩個停止位。若每秒發(fā)送送100個字符,則
10、其波特率為多少個字符,則其波特率為多少 ?100*(1+8+1+2)=1200 bps例:例:一個異步串行發(fā)送器,發(fā)送具有一個異步串行發(fā)送器,發(fā)送具有7位數(shù)據(jù)位的字符位數(shù)據(jù)位的字符, ,傳送波特傳送波特率為率為18001800,字符格式為:,字符格式為:1 1個奇偶校驗位,個奇偶校驗位,1 1個停止位,問,十秒個停止位,問,十秒鐘內(nèi)傳送了多少個字符鐘內(nèi)傳送了多少個字符? ? 10 * 1800/(1+7+1+1) = 180000/1 0/10/11 1 起始位起始位數(shù)據(jù)位數(shù)據(jù)位校驗位校驗位 停止位停止位一個字符一個字符格式格式3. 傳輸制式單工單工發(fā)送發(fā)送接收接收TXDRXD單線通信單線通信
11、單向數(shù)據(jù)流單向數(shù)據(jù)流半雙工半雙工發(fā)發(fā)送送接接收收發(fā)發(fā)送送接接收收TXD / RXD單線通信單線通信分時雙向數(shù)據(jù)流分時雙向數(shù)據(jù)流全雙工全雙工發(fā)送發(fā)送接收接收發(fā)送發(fā)送接收接收TXDTXDRXDRXD 雙線通信雙線通信各線單向,雙向各線單向,雙向數(shù)據(jù)流數(shù)據(jù)流4. 遠(yuǎn)距離傳輸和調(diào)制解調(diào)器遠(yuǎn)距離傳輸和調(diào)制解調(diào)器l串行數(shù)據(jù)的遠(yuǎn)傳l利用電話線和聲頻信號調(diào)制/解調(diào)l調(diào)制(Modulating)和解調(diào)(Demodulating)l把數(shù)字信號轉(zhuǎn)換為電話線路上可傳送的模擬信號將電話線路上的模擬信號轉(zhuǎn)換為數(shù)字信號l調(diào)制解調(diào)器(MODEM)l具有調(diào)制和解調(diào)功能的聯(lián)合裝置l計算機(jī)串行通信是一種數(shù)字“0”和“1”的通信。l
12、它要求信號傳輸介質(zhì)具有較寬的通頻帶,而遠(yuǎn)距離串行通信經(jīng)常它要求信號傳輸介質(zhì)具有較寬的通頻帶,而遠(yuǎn)距離串行通信經(jīng)常借用電話線作為傳輸介質(zhì),電話線頻帶較窄,約在借用電話線作為傳輸介質(zhì),電話線頻帶較窄,約在303000Hz之之間,如下圖所示。當(dāng)數(shù)字信號直接通過電話線傳送時,在間,如下圖所示。當(dāng)數(shù)字信號直接通過電話線傳送時,在303000Hz之外的部分信號丟失,造成嚴(yán)重的信號畸變。之外的部分信號丟失,造成嚴(yán)重的信號畸變。fK303000電話線頻帶圖電話線頻帶圖 根據(jù)載波根據(jù)載波 Asin( t + ) 的三個參數(shù):幅度、頻率、相位,產(chǎn)生的三個參數(shù):幅度、頻率、相位,產(chǎn)生常用的三種調(diào)制技術(shù):常用的三種調(diào)
13、制技術(shù): 幅移鍵控法幅移鍵控法 Amplitude-Shift Keying (ASK) 頻移鍵控法頻移鍵控法 Frequency-Shift Keying (FSK) 相移鍵控法相移鍵控法 Phase-Shift Keying (PSK) ASK (又稱為調(diào)幅又稱為調(diào)幅) 用載波信號的不同幅度代表用載波信號的不同幅度代表1和和0FSK (又稱為調(diào)頻又稱為調(diào)頻) 用載波信號的不同頻率代表用載波信號的不同頻率代表1和和0PSK (又稱為調(diào)相又稱為調(diào)相) 用載波信號的相位變化代表用載波信號的相位變化代表1和和0(有變化為有變化為1)5. 數(shù)據(jù)校驗方式 串行通信一般要檢測傳輸過程中是否有錯誤出現(xiàn)。在
14、基本串行通信一般要檢測傳輸過程中是否有錯誤出現(xiàn)。在基本通信規(guī)程中常采用奇偶校驗或校驗和的塊校驗方法,在高級通信規(guī)程中常采用奇偶校驗或校驗和的塊校驗方法,在高級通信控制規(guī)程中一般采用循環(huán)冗余碼(通信控制規(guī)程中一般采用循環(huán)冗余碼(CRC)校驗校驗奇偶校驗奇偶校驗是以字符為單位進(jìn)行校驗是以字符為單位進(jìn)行校驗在發(fā)送時,在每一個字符的最高位后都附加一個奇偶校驗位,在發(fā)送時,在每一個字符的最高位后都附加一個奇偶校驗位,這個校驗位可以為這個校驗位可以為1或或0,加上這個校驗位之后使發(fā)送的字符,加上這個校驗位之后使發(fā)送的字符和校驗位合在一起和校驗位合在一起“1”的個數(shù)為奇數(shù)的個數(shù)為奇數(shù)(奇校驗奇校驗)或偶數(shù)或
15、偶數(shù)(偶校驗偶校驗)例:例:采用偶校驗,發(fā)送字符為采用偶校驗,發(fā)送字符為1101101,則校驗位為,則校驗位為1,保證,保證發(fā)送的字符和校驗位合在一起發(fā)送的字符和校驗位合在一起“1”的個數(shù)為偶數(shù)的個數(shù)為偶數(shù)在接收時,檢查所接收的字符連同這個奇偶校驗位,其為在接收時,檢查所接收的字符連同這個奇偶校驗位,其為“1”的個數(shù)是不是符合規(guī)定,若不符合規(guī)定就發(fā)出奇偶出錯的個數(shù)是不是符合規(guī)定,若不符合規(guī)定就發(fā)出奇偶出錯信息,供信息,供CPU處理。處理。 校驗和(校驗和(BCC)是塊校驗方法,是一種較簡單的在微型計是塊校驗方法,是一種較簡單的在微型計算機(jī)領(lǐng)域中使用的校驗方法算機(jī)領(lǐng)域中使用的校驗方法一塊數(shù)據(jù)的校
16、驗和是一個一塊數(shù)據(jù)的校驗和是一個8位的字節(jié),它與該塊數(shù)據(jù)一起傳送位的字節(jié),它與該塊數(shù)據(jù)一起傳送到接收端,接收端重新計算接收到的數(shù)據(jù)塊的校驗和,若該到接收端,接收端重新計算接收到的數(shù)據(jù)塊的校驗和,若該校驗和與發(fā)送端送來的校驗和不一樣,則表明該數(shù)據(jù)在傳送校驗和與發(fā)送端送來的校驗和不一樣,則表明該數(shù)據(jù)在傳送過程中出錯過程中出錯循環(huán)冗余校驗循環(huán)冗余校驗CRC以數(shù)據(jù)塊以數(shù)據(jù)塊(幀幀, Frame)為單位進(jìn)行校驗為單位進(jìn)行校驗 編碼思想:將編碼思想:將數(shù)據(jù)塊構(gòu)成的數(shù)據(jù)塊構(gòu)成的位串看成是系數(shù)為位串看成是系數(shù)為0或或1的多項的多項式式 如如110001,可表示成多項式,可表示成多項式 x5 + x4 + 1
17、數(shù)據(jù)塊構(gòu)成的數(shù)據(jù)塊構(gòu)成的多項式除以另一個多項式多項式除以另一個多項式G(x),得到的余數(shù)多得到的余數(shù)多項式項式 R(x)就稱為就稱為CRC碼,而碼,而G(x)則稱為生成多項式。則稱為生成多項式。 串行接口芯片串行接口芯片UART和和USARTUART:串行通用異步收發(fā)器。串行通用異步收發(fā)器。USART:串行通用異步串行通用異步/同步收發(fā)器。同步收發(fā)器。lUARTUniversal Asynchronous Receiver/Transmitter異步收發(fā)器功能接收異步串行輸入碼并將其轉(zhuǎn)換為并行碼并將CPU的并行碼轉(zhuǎn)換為串行碼輸出UART的的結(jié)構(gòu)結(jié)構(gòu)v在串行通信控制電路中,串在串行通信控制電路中
18、,串-并、并并、并-串轉(zhuǎn)換邏輯串轉(zhuǎn)換邏輯被集被集成成在串行異步通信控制器芯片中。在串行異步通信控制器芯片中。 兩個通信設(shè)備在串行線路上成功地實現(xiàn)通信必須解決兩個問題:兩個通信設(shè)備在串行線路上成功地實現(xiàn)通信必須解決兩個問題: 一是一是串串并轉(zhuǎn)換并轉(zhuǎn)換,即如何把要發(fā)送的并行數(shù)據(jù)串行化,把,即如何把要發(fā)送的并行數(shù)據(jù)串行化,把接收的串行數(shù)據(jù)并行化;接收的串行數(shù)據(jù)并行化; 二是二是設(shè)備同步設(shè)備同步,即同步發(fā)送設(shè)備與接收設(shè)備的工作節(jié)拍,以,即同步發(fā)送設(shè)備與接收設(shè)備的工作節(jié)拍,以確保發(fā)送數(shù)據(jù)在接收端被正確讀出。確保發(fā)送數(shù)據(jù)在接收端被正確讀出。l在計算機(jī)串行發(fā)送數(shù)據(jù)之前,計算機(jī)內(nèi)部的并行數(shù)據(jù)被送入移位在計算機(jī)
19、串行發(fā)送數(shù)據(jù)之前,計算機(jī)內(nèi)部的并行數(shù)據(jù)被送入移位寄存器并一位一位地輸出,將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)。寄存器并一位一位地輸出,將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)。l在接收數(shù)據(jù)時,來自通信線路的串行數(shù)據(jù)被壓入移位寄存器,滿在接收數(shù)據(jù)時,來自通信線路的串行數(shù)據(jù)被壓入移位寄存器,滿8位后并行送到計算機(jī)內(nèi)部。位后并行送到計算機(jī)內(nèi)部。串行接口原理l外部時鐘和接收數(shù)據(jù)的同步外部時鐘和接收數(shù)據(jù)的同步串行接口原理奇偶錯溢出錯幀格式錯RxDRxCTxDTxC控制控制電路電路RESETWERDCSINTPEOEFEDB7 DB0Transmit Buf EmptyReceive Data ReadyRDRTBE接 收 移位 寄
20、 存 器接 收 數(shù)據(jù) 緩 沖 器發(fā) 送 數(shù)據(jù) 緩 沖 器發(fā) 送 移位 寄 存 器lUART中設(shè)立的各種出錯標(biāo)志中設(shè)立的各種出錯標(biāo)志奇偶錯誤(奇偶錯誤(Parity error)字符的字符的“1”的個數(shù)的個數(shù)幀錯誤(幀錯誤(Frame error)如缺少停止位等如缺少停止位等 溢出(丟失)錯誤(溢出(丟失)錯誤(Overrun error)接收接收/發(fā)送緩存數(shù)據(jù)丟失發(fā)送緩存數(shù)據(jù)丟失串行通信接口電路需要解決的問題串行通信接口電路需要解決的問題怎樣才能知道數(shù)據(jù)傳輸?shù)拈_始和結(jié)束? 可用數(shù)據(jù)格式化,如異步幀格式或同步幀格式。 怎樣判斷所接收數(shù)據(jù)的正確性? 可采用檢糾錯方法,如奇偶校驗或CRC。 如何進(jìn)行
21、傳輸速度控制? 可采用波特率發(fā)生器。 串行通信接口電路需要解決的問題串行通信接口電路需要解決的問題如何進(jìn)行通信雙方的外部連接?可采用串行通信接口標(biāo)準(zhǔn),如RS232C或RS485。 如何進(jìn)行信號的電平轉(zhuǎn)換與邏輯轉(zhuǎn)換?可采用電平轉(zhuǎn)換器和正負(fù)邏輯轉(zhuǎn)換器。 如何進(jìn)行數(shù)據(jù)的串/并轉(zhuǎn)換?可采用串/并轉(zhuǎn)換器,如移位寄存器。 實際上,串行接口設(shè)計正是圍繞這些問題展開的。并且,從硬件和軟件兩方面來解決這些問題。 10.2 串行接口標(biāo)準(zhǔn)串行接口標(biāo)準(zhǔn)RS-232Cl美國電子工業(yè)協(xié)會EIA制定的通用標(biāo)準(zhǔn)串行接口l1962年公布,1969年修訂l1987年1月正式改名為EIA-232Cl設(shè)計目的是用于連接調(diào)制解調(diào)器l現(xiàn)
22、已成為數(shù)據(jù)終端設(shè)備DTE與數(shù)據(jù)通信設(shè)備DCE的標(biāo)準(zhǔn)接口lDTE數(shù)據(jù)終端設(shè)備,例如計算機(jī)lDCE數(shù)據(jù)通信設(shè)備(數(shù)傳機(jī),例如調(diào)制解調(diào)器)l可實現(xiàn)遠(yuǎn)距離通信,也可近距離連接兩臺微機(jī)l屬于網(wǎng)絡(luò)層次結(jié)構(gòu)中的最低層:物理層DTEDCEDCEDTE調(diào)制解調(diào)器調(diào)制解調(diào)器調(diào)制解調(diào)器調(diào)制解調(diào)器計算機(jī)計算機(jī)計算機(jī)計算機(jī)電話線電話線RS-232C接口RS-232C接口RS-232C接口的使用場合10.2.1 RS-232C的引腳定義的引腳定義l232C接口標(biāo)準(zhǔn)使用一個接口標(biāo)準(zhǔn)使用一個25針連接器針連接器l絕大多數(shù)設(shè)備只使用其中絕大多數(shù)設(shè)備只使用其中9個信號,所以就有了個信號,所以就有了9針連接器針連接器232C接口信
23、號面向使用調(diào)制解調(diào)器的串行異步通信。接口信號面向使用調(diào)制解調(diào)器的串行異步通信。 RS-232C規(guī)標(biāo)準(zhǔn)接口有規(guī)標(biāo)準(zhǔn)接口有25條線,條線,4條數(shù)據(jù)線、條數(shù)據(jù)線、11條控制線、條控制線、3條定時線、條定時線、7條備用和未定義線,常用的只有條備用和未定義線,常用的只有9根。根。 RS-232C的引腳(的引腳(1)lTxD:發(fā)送數(shù)據(jù)(終端數(shù)傳機(jī))l串行數(shù)據(jù)的發(fā)送端lRxD:接收數(shù)據(jù)(終端數(shù)傳機(jī))l串行數(shù)據(jù)的接收端RS-232C的引腳(的引腳(2)lRTS:請求發(fā)送(終端數(shù)傳機(jī)) 當(dāng)數(shù)據(jù)終端設(shè)備準(zhǔn)備好送出數(shù)據(jù)時,就發(fā)出有效的RTS信號,用于通知數(shù)據(jù)通信設(shè)備準(zhǔn)備接收數(shù)據(jù)lCTS:清除發(fā)送(允許發(fā)送)(終端數(shù)
24、傳機(jī)) 當(dāng)數(shù)據(jù)通信設(shè)備已準(zhǔn)備好接收數(shù)據(jù)終端設(shè)備的傳送數(shù)據(jù)時,發(fā)出CTS有效信號來響應(yīng)RTS信號RTS和CTS是數(shù)據(jù)終端設(shè)備與數(shù)據(jù)通信設(shè)備間一對用于數(shù)據(jù)發(fā)送的聯(lián)絡(luò)信號RS-232C的引腳(的引腳(3)lDTR:數(shù)據(jù)終端準(zhǔn)備好(終端數(shù)傳機(jī))l通常當(dāng)數(shù)據(jù)終端設(shè)備一加電,該信號就有效,表明數(shù)據(jù)終端設(shè)備準(zhǔn)備就緒lDSR:數(shù)據(jù)裝置準(zhǔn)備好(終端數(shù)傳機(jī))l通常表示數(shù)據(jù)通信設(shè)備(即數(shù)據(jù)裝置)已接通電源連到通信線路上,并處在數(shù)據(jù)傳輸方式DTR和DSR也可用做數(shù)據(jù)終端設(shè)備與數(shù)據(jù)通信設(shè)備間的聯(lián)絡(luò)信號,例如應(yīng)答數(shù)據(jù)接收RS-232C的引腳(的引腳(4)lGND:信號地l為所有的信號提供一個公共的參考電平lDCD:載波檢
25、測(DCD) (終端數(shù)傳機(jī))l當(dāng)本地調(diào)制解調(diào)器接收到來自對方的載波信號時,該引腳向數(shù)據(jù)終端設(shè)備提供有效信號lRI:振鈴指示(終端數(shù)傳機(jī))l當(dāng)調(diào)制解調(diào)器接收到對方的撥號信號期間,該引腳信號作為電話鈴響的指示、保持有效10.2.2 RS-232C的連接的連接l微機(jī)利用232C接口連接調(diào)制解調(diào)器,用于實現(xiàn)通過電話線路的遠(yuǎn)距離通信l微機(jī)利用232C接口直接連接進(jìn)行短距離通信。這種連接不使用調(diào)制解調(diào)器,所以被稱為零調(diào)制解調(diào)器(Null Modem)連接連接調(diào)制解調(diào)器連接調(diào)制解調(diào)器電話線電話線MODEM微機(jī)微機(jī)2345678202223456782022MODEM23456782022數(shù)據(jù)裝置準(zhǔn)備好數(shù)據(jù)裝
26、置準(zhǔn)備好DSR數(shù)據(jù)終端準(zhǔn)備好數(shù)據(jù)終端準(zhǔn)備好DTR發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)TxD接收數(shù)據(jù)接收數(shù)據(jù)RxD請求發(fā)送請求發(fā)送RTS允許發(fā)送允許發(fā)送CTS信號地信號地GND載波檢測載波檢測DCD振鈴指示振鈴指示RI微機(jī)微機(jī)23456782022不使用聯(lián)絡(luò)信號的不使用聯(lián)絡(luò)信號的3線相連方式線相連方式微機(jī)微機(jī)TxDRxDGND微機(jī)微機(jī)為了交換信息,為了交換信息,TxD和和RxD交叉連接,程序交叉連接,程序中不必使中不必使RTS和和DTR有效,也不檢測有效,也不檢測CTS和和DSR是否有效是否有效 TxDRxD“偽偽”使用聯(lián)絡(luò)信號的使用聯(lián)絡(luò)信號的3線相連方式線相連方式RTS和和CTS各自互接,各自互接,DTR和和DS
27、R各自互接,各自互接,表明請求傳送總是允許、數(shù)據(jù)裝置總準(zhǔn)備好表明請求傳送總是允許、數(shù)據(jù)裝置總準(zhǔn)備好微機(jī)微機(jī)DSRDTRTxDRxDRTSCTSGND微機(jī)微機(jī)TxDRxDDSRDTRRTSCTS使用聯(lián)絡(luò)信號的多線相連方式使用聯(lián)絡(luò)信號的多線相連方式通信比較可靠,所用連線較多,不如通信比較可靠,所用連線較多,不如前者經(jīng)濟(jì)前者經(jīng)濟(jì)微機(jī)微機(jī)DSRDTRTxDRxDRTSCTSGND微機(jī)微機(jī)DSRDTRTxDRxDRTSCTS10.2.3 RS-232C的電氣特性的電氣特性l232C接口采用EIA電平(負(fù)邏輯)l“0” 電平為3V15Vl“1”電平為3V15Vl實際常用12V或15Vn標(biāo)準(zhǔn)標(biāo)準(zhǔn)TTL電平(
28、正邏輯)電平(正邏輯)n“1”電平:電平:2.4V5Vn“0”電平:電平:0V0.8V相互轉(zhuǎn)換相互轉(zhuǎn)換連接器 DB-25型,25腳,用9個信號(2個數(shù)據(jù)線,6個控制線,1個地線)DB-9型 9針(全用)10.2.4 RS-232C的機(jī)械特性的機(jī)械特性 10.3 RS-449、RS-422/423和RS-485l10.3.1 RS-449lRS-449是是1977年公布的新串行總線標(biāo)準(zhǔn)年公布的新串行總線標(biāo)準(zhǔn),與與lRS-232C兼容。兼容。l(1)(1)傳送速率高傳送速率高, ,可達(dá)90Kbps,可不使用可不使用MODEMMODEM。 (2 2)可使用多點或公用線通信,可使用多點或公用線通信,傳
29、送距離在1200米。 (3 3)利用信號線之間的信號電壓差進(jìn)行傳輸,并且躁)利用信號線之間的信號電壓差進(jìn)行傳輸,并且躁 聲低。聲低。 (4 4)提供了兩種標(biāo)準(zhǔn)連接,一種是)提供了兩種標(biāo)準(zhǔn)連接,一種是3737腳,一種是腳,一種是9 9腳腳 以適應(yīng)不同的需要。以適應(yīng)不同的需要。10.3.2 RS-422/4231. RS-422 (1)采用平衡式雙端線傳輸信號,即采用了平衡發(fā)送器和差動接收器,見下圖所示。 (2)傳輸速度快,傳輸距離長,最大傳輸速率可達(dá)10Mbps,在此速率下傳送可達(dá)120米。 (3)當(dāng)速率降至90Kbps,最大傳送距離為1200米。+TTLTTL平衡發(fā)送器平衡發(fā)送器RS-422R
30、S-422(平衡式平衡式)2.RS-423l采用非平衡式傳輸,使用單端(非平衡)發(fā)送器和l差動接收器,見下圖所示。 (1)采用不平衡信號差傳輸和差動式接收,增加其抗干擾性。 (2)比RS-232C有大的傳輸距離和更高的傳輸速度。lRS-423在90米長電纜上傳送數(shù)據(jù)最大速率可達(dá)100Kbps,若速率降到11Kbps,則允許電纜長度為1200米。(3)RS-423標(biāo)準(zhǔn)規(guī)定:邏輯“1”電平為+200mv+6V 邏輯“0”電平為-200mv-6VRS-423允許在傳送線上連接多個接收器,此時 “1”為+4+6V;邏輯“0”為-4-6V無公共地?zé)o公共地TTLTTLRS-423單端發(fā)送器單端發(fā)送器差動接
31、收器差動接收器RS-423(非平衡式)非平衡式)10.3.3 RS-485 RS-485總線標(biāo)準(zhǔn)是對RS-423標(biāo)準(zhǔn)在性能上擴(kuò)展,它是一種多發(fā)送器的串行總線標(biāo)準(zhǔn)。RS-485允許雙導(dǎo)線上一個發(fā)送器可驅(qū)動多達(dá)32個負(fù)載設(shè)備,這些負(fù)載設(shè)備可以是接收器、被動發(fā)送器或收發(fā)器。RS-485標(biāo)準(zhǔn)總線的顯著特點主要表現(xiàn)在:(1)一個發(fā)送器可驅(qū)動多個負(fù)載設(shè)備,特別適合現(xiàn)場測控網(wǎng)絡(luò)結(jié)構(gòu)應(yīng)用。 (2)平衡連接電纜應(yīng)采用屏蔽電纜,電纜的兩端點分別接終端電阻。 (3)掛接在平衡電纜上每個設(shè)備均要接地,電纜的屏 蔽層要與電纜設(shè)備的機(jī)殼相連。10.3.4 20mA電流環(huán)20mA電流環(huán)是一種未正式頒布而又使用十分廣泛的串行
32、總線標(biāo)準(zhǔn)。1.20mA電流環(huán)的主要特點: (1)20mA電流環(huán)使用電流信號的“有”和“無”來表 示邏輯“1”和邏輯“0”。 (2)20mA電流環(huán)屬串行異步通信接口標(biāo)準(zhǔn),發(fā)送數(shù)據(jù)時必須以無電流的起始位作為傳送字符的起始位。 (3)由于20mA電流通常選用高電壓大電阻產(chǎn)生,所以低電阻傳輸導(dǎo)線對電氣躁聲不敏感,大大增強(qiáng)了20mA電流環(huán)的抗干擾能力,容易實現(xiàn)光電隔離。2.20mA電流環(huán)串行接口的實現(xiàn) 實用20mA電流環(huán)接口方法見下圖所示。TTL輸入1234568328+5V+5V56K10050VCC TIL110光偶合器SN74141/275452TTL數(shù)據(jù)輸出20mA電流環(huán)接口電路電流環(huán)接口電路發(fā)
33、送端由SN75452將TTL電平數(shù)據(jù)轉(zhuǎn)換成20mA環(huán)路電流,遠(yuǎn)距離串行傳輸線上流過的是20mA電流信號,在接收經(jīng)光電隔離并轉(zhuǎn)換成TTL電平信號。10.4 可編程串行通信接口8251A8251A8251A的基本性能的基本性能 8251A8251A的基本工作原理的基本工作原理 8251A8251A的對外信號的對外信號 8251A8251A的編程的編程 8251A8251A編程舉例編程舉例 8251A8251A的使用實例的使用實例 10.4.1 8251A的基本性能 可以工作在同步或異步方式。 在同步方式時,能用5、6、7或8位代表字符能自動檢測同步字符允許奇偶校驗。在異步方式下能用5、6、7或8位
34、代表字符,用1位作為奇偶校驗。能增加1個啟動位能增加1個、1.5個或2個停止位。 10.4.2 8251A的基本工作原理 8251A的編程結(jié)構(gòu) 8251A的功能結(jié)構(gòu) 8251A的發(fā)送和接收 1.8251A1.8251A的編程結(jié)構(gòu)的編程結(jié)構(gòu)具體編程結(jié)構(gòu)和外部連接如下圖具體編程結(jié)構(gòu)和外部連接如下圖 28251A的功能結(jié)構(gòu) 接收控制電路的功能: 復(fù)位后尋找啟動位。消除假啟動干擾。對接收到的信息進(jìn)行奇偶校驗。檢測停止位。發(fā)送控制電路功能:在異步方式下,為數(shù)據(jù)加上起始位、校驗位和停止位。在同步方式下,插入同步字符和校驗位。 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器 數(shù)據(jù)總線緩沖器是 CPU 與 8251A 之間的數(shù)
35、據(jù)接口。包含 3 個 8 位的緩沖寄存器:兩個寄存器分別用來存放 CPU 向 8251A 讀取的數(shù)據(jù)或狀態(tài)信息。一個寄存器用來存放 CPU 向 8251A 寫入的數(shù)據(jù)或控制。讀寫控制邏輯電路讀寫控制邏輯電路功能:接收WR,寫入數(shù)據(jù)和控制字接收RD,讀取數(shù)據(jù)或狀態(tài)字接收C/D 控制/數(shù)據(jù)信號,雙功能信號。C/D=0,選擇8251A數(shù)據(jù)端口C/D=1,選擇8251A控制端口接收CLK,完成內(nèi)部定時。接收RESET,使 8251A 處于空閑狀態(tài)。圖圖8-49 8251A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu) 發(fā)送器發(fā)送器 發(fā)送器由發(fā)送器由 發(fā)送緩沖器發(fā)送緩沖器 和和 發(fā)送控制電路發(fā)送控制電路 兩部分兩部分 組成。組成
36、。 采用采用 異步方式異步方式 ,則由發(fā)送控制電路在其首尾加上,則由發(fā)送控制電路在其首尾加上 起始位和停止起始位和停止位位 ,然后從起始位開始,經(jīng)移位寄存器從數(shù)據(jù)輸出線,然后從起始位開始,經(jīng)移位寄存器從數(shù)據(jù)輸出線 TXD 逐位串行逐位串行輸出。輸出。 采用采用 同步方式同步方式 ,則在發(fā)送數(shù)據(jù)之前,發(fā)送器將自動送出,則在發(fā)送數(shù)據(jù)之前,發(fā)送器將自動送出 1 個或個或 2 個同步字符個同步字符 ,然后才逐位串行輸出數(shù)據(jù)。,然后才逐位串行輸出數(shù)據(jù)。 如果如果 CPU 與與 8251A 之間采用之間采用 中斷方式中斷方式 交換信息,那么交換信息,那么 TXRDY 可作為向可作為向 CPU 發(fā)出的中斷請
37、求信號。當(dāng)發(fā)送器中的發(fā)出的中斷請求信號。當(dāng)發(fā)送器中的 8 位數(shù)據(jù)串行發(fā)位數(shù)據(jù)串行發(fā)送完畢時,由發(fā)送控制電路向送完畢時,由發(fā)送控制電路向 CPU 發(fā)出發(fā)出 TXE 有效信號,表示發(fā)送有效信號,表示發(fā)送器中移位寄存器已空。器中移位寄存器已空。 接收器接收器 接收器由接收器由 接收緩沖器接收緩沖器 和和 接收控制電路接收控制電路 兩部分兩部分 組成。組成。 接收移位寄存器從接收移位寄存器從 RXD 引腿上接收串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)后存入接收緩沖引腿上接收串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)后存入接收緩沖器。器。 異步方式異步方式 : 在在 RXD 線上檢測低電平線上檢測低電平 ,將檢測到的低電平作為起始位,將檢測
38、到的低電平作為起始位, 8251A 開始進(jìn)行采樣,完成字符裝配,并進(jìn)行奇偶校驗和去掉停止位,變成了并行開始進(jìn)行采樣,完成字符裝配,并進(jìn)行奇偶校驗和去掉停止位,變成了并行數(shù)據(jù)后,送到數(shù)據(jù)輸入寄存器,同時發(fā)出數(shù)據(jù)后,送到數(shù)據(jù)輸入寄存器,同時發(fā)出 RXRDY 信號信號 送送 CPU ,表示已經(jīng)收到一,表示已經(jīng)收到一個可用的數(shù)據(jù)。個可用的數(shù)據(jù)。 同步方式:同步方式: 首先搜索同步字符。首先搜索同步字符。 8251A 監(jiān)測監(jiān)測 RXD 線,每當(dāng)線,每當(dāng) RXD 線上出現(xiàn)線上出現(xiàn)一個數(shù)據(jù)位時,接收下來并送入移位寄存器移位,與同步字符寄存器的內(nèi)容進(jìn)行比一個數(shù)據(jù)位時,接收下來并送入移位寄存器移位,與同步字符寄
39、存器的內(nèi)容進(jìn)行比較,如果兩者不相等,則接收下一位數(shù)據(jù),并且重復(fù)上述比較過程。當(dāng)兩個寄存器較,如果兩者不相等,則接收下一位數(shù)據(jù),并且重復(fù)上述比較過程。當(dāng)兩個寄存器的內(nèi)容比較相等時,的內(nèi)容比較相等時, 8251A 的的 SYNDET 升為高電平,表示同步字符已經(jīng)找到,同升為高電平,表示同步字符已經(jīng)找到,同步已經(jīng)實現(xiàn)。步已經(jīng)實現(xiàn)。 采用雙同步方式,就要在測得輸入移位寄存器的內(nèi)容與第一個同步字符寄存采用雙同步方式,就要在測得輸入移位寄存器的內(nèi)容與第一個同步字符寄存器的內(nèi)容相同后,再繼續(xù)檢測此后輸入移位寄存器的內(nèi)容是否與第二個同步字符寄器的內(nèi)容相同后,再繼續(xù)檢測此后輸入移位寄存器的內(nèi)容是否與第二個同步字
40、符寄存器的內(nèi)容相同。如果相同,則認(rèn)為同步已經(jīng)實現(xiàn)。存器的內(nèi)容相同。如果相同,則認(rèn)為同步已經(jīng)實現(xiàn)。 在在 外同步情況外同步情況 下,下, 同步輸入端同步輸入端 SYNDET 加一個高電位來實現(xiàn)同步的加一個高電位來實現(xiàn)同步的 。 實現(xiàn)同步之后,接收器和發(fā)送器間就開始進(jìn)行數(shù)據(jù)的同步傳輸。這時,接收器利用實現(xiàn)同步之后,接收器和發(fā)送器間就開始進(jìn)行數(shù)據(jù)的同步傳輸。這時,接收器利用時鐘信號對時鐘信號對 RXD 線進(jìn)行采樣,并把收到的數(shù)據(jù)位送到移位寄存器中。在線進(jìn)行采樣,并把收到的數(shù)據(jù)位送到移位寄存器中。在 RXRDY 引腳上發(fā)出一個信號,表示收到了一個字符。引腳上發(fā)出一個信號,表示收到了一個字符。調(diào)制解調(diào)控
41、制電路調(diào)制解調(diào)控制電路 調(diào)制解調(diào)控制電路用來簡化 8251A 和調(diào)制解調(diào)器的連接。 10.4.3 8251A的對外信號 8251A和CPU之間的連接信號 8251A與外部設(shè)備之間的連接信號 1. 8251A和CPU之間的連接信號 (1) 片選信號 CS為低電平時,8251A被選中(2) 數(shù)據(jù)信號 D7D0與系統(tǒng)的數(shù)據(jù)總線相連 (3) 讀寫控制信號 RD為讀信號。WR為寫信號。C/D為控制/數(shù)據(jù)信號。 (4) 收發(fā)聯(lián)絡(luò)信號TXRDY為發(fā)送器準(zhǔn)備好信號TXE 發(fā)送器空信號RXRDY 接收器準(zhǔn)備好信號SYNDET 同步檢測信號TxC:發(fā)送器時鐘控制數(shù)據(jù)終端發(fā)送串行數(shù)據(jù)的時鐘信號RxC:接收器時鐘控制
42、數(shù)據(jù)終端接收串行數(shù)據(jù)的時鐘信號2. 8251A與外部設(shè)備之間的連接信號 8251A 與外部設(shè)備之間的連接信號分為 兩類兩類 : (1) 收發(fā)聯(lián)絡(luò)信號收發(fā)聯(lián)絡(luò)信號 DTR :數(shù)據(jù)終端準(zhǔn)備好信號,通知外部設(shè)備, CPU 當(dāng)前已經(jīng)準(zhǔn)備就緒。 RTS:數(shù)據(jù)設(shè)備準(zhǔn)備好信號,表示當(dāng)前外設(shè)已經(jīng)準(zhǔn)備好。 DSR:請求發(fā)送信號,表示 CPU 已經(jīng)準(zhǔn)備好發(fā)送。 CTS :允許發(fā)送信號,是對 的響應(yīng),由外設(shè)送往 8251A 。 實際使用時,這 4 個信號中通常只有 必須為低電平,其它 3 個信號可以懸空。 數(shù)據(jù)信號數(shù)據(jù)信號 TXD :發(fā)送器數(shù)據(jù)輸出信號。當(dāng) CPU 送往 8251A 的并行數(shù)據(jù)被轉(zhuǎn)變?yōu)榇袛?shù)據(jù)后,通
43、過 TXD 送往外設(shè)。 RXD :接收器數(shù)據(jù)輸入信號。用來接收外設(shè)送來的串行數(shù)據(jù),數(shù)據(jù)進(jìn)入 8251A 后被轉(zhuǎn)變?yōu)椴⑿蟹绞健?0.4.4 8251A的編程 8 8位接口和位接口和1616位數(shù)據(jù)總線的連接問題位數(shù)據(jù)總線的連接問題 8251A8251A的初始化的初始化 模式寄存器的格式模式寄存器的格式 控制寄存器的格式控制寄存器的格式 狀態(tài)寄存器的格式狀態(tài)寄存器的格式 1. 關(guān)于8位接口芯片和16位數(shù)據(jù)總線的連接問題 解決方法:硬件上,將總線的A1與芯片的A0相連軟件上,用連續(xù)的偶地址代替奇偶地址 2. 8251A的初始化 8251A初始化的約定 :復(fù)位后,用奇地址寫入的值送模式寄存器。 若為同步
44、模式,接著往奇地址端口輸出的字節(jié)為同步字符。此后,除復(fù)位命令,往奇地址寫入的值將送到控制寄存器,往偶地址端口寫入的值送到數(shù)據(jù)輸出寄存器。 8251A的初始化流程圖的初始化流程圖 3. 模式寄存器的格式 下圖為8251A模式寄存器的格式(a) 異步模式;(b) 同步模式 l例:某異步通信中,其數(shù)據(jù)格式為:1位起始位,1位停止位,l7位數(shù)據(jù)位,奇校驗,波特率系數(shù)為16,則其異步方式選擇l控制字為控制字為:01011010B=5AH:01011010B=5AHl MOV DX,3F9H;8251A的控制口地址l MOV AL,5AH;異步方式選擇控制字l OUT DX,AL;異步方式寫入控制口l在同
45、步通信中,設(shè)幀數(shù)據(jù)格式為:字符長度8位,雙同步且內(nèi)同步,偶校驗,則同步方式選擇控制則同步方式選擇控制字為字為: :l00111100B=3CH00111100B=3CH。l將方式控制字寫入控制口的程序段為:l MOV DX,3F9H;8251A控制口地址l MOV AL,3CH;同步方式選擇控制字l OUT DX,AL;同步方式字寫入控制口 4. 控制寄存器的格式 l例例: :某異步通信中,要求8251A內(nèi)部復(fù)位,允許接收,允許發(fā)送,全部錯誤標(biāo)志復(fù)位,則操作命令字為則操作命令字為: :l00010101=15H00010101=15H。l該操作命令字寫入控制口的程序段為:l MOV DX,3F
46、9H;8251A的控制口地址l MOV AL,40H;使內(nèi)部復(fù)位操作命令字l OUT DX,ALl MOV AL,15H;允許接收,允許發(fā)送,錯誤標(biāo)l 志復(fù)位的操作命令字l OUT DX,AL 5. 狀態(tài)寄存器的格式 l例:例:若要檢查8251A的發(fā)送器是否準(zhǔn)備好,則可用下列程序段實現(xiàn):l MOV DX,3F1H ;狀態(tài)口地址K:IN AL,DX ;讀狀態(tài)字 AND AL,01H;查狀態(tài)位D0=1?TXRDY=1? JZ K ;發(fā)送未準(zhǔn)備好,則等待 MOV DX,3F0H ;8251A數(shù)據(jù)口 MOV AL,AAH ;發(fā)送字符送AL OUT DX,AL ;發(fā)送字符寫入8251Al又例:若要檢查接
47、收是否發(fā)生錯誤,則可用下列程序段實現(xiàn):l MOV DX,03F1H ;8251A的狀態(tài)口l IN AL,DX ;讀狀態(tài)字l TEST AL,38H ;查狀態(tài)位PE,OE,F(xiàn)E是l 否為1l JNZ ERROR ;若其中有一位為“1”,則l 轉(zhuǎn)出錯處理 10.4.5 8251A編程舉例 異步模式下的初始化程序舉例 同步模式下的初始化程序舉例 利用狀態(tài)字進(jìn)行編程的舉例 1. 異步模式下的初始化程序舉例 MOV AL,0FAHOUT 42H,AL;設(shè)置模式字,為異步模式; 波特率因子為16;用7個數(shù) 據(jù)位,偶校驗,2個停止位MOVAL,37HOUT42H,AL;設(shè)置控制字,使發(fā)送啟動、 接收啟動,并
48、設(shè)置有關(guān)信號 0010111137H11111100FAH2. 同步模式下的初始化程序舉例 MOVAL,38HOUT42H,AL;設(shè)置模式字為同步模式,2 個同步字符,7個數(shù)據(jù)位,偶校驗MOVAL,16HOUT42H,ALOUT42H,AL;兩個同步字符均為16HMOV AL,97HOUT 42H,AL;設(shè)置控制字,并啟動l初始化編程舉例初始化編程舉例( (P308)P308)l例例1 1:設(shè)8251A工作與異步方式,波特率系數(shù)為16,每個字符為8位,奇校驗,1個停止位,允許接收,允許發(fā)送,并且發(fā)送準(zhǔn)備就緒,全部錯誤標(biāo)志復(fù)位,請按上述要求對8251A進(jìn)行初始化,設(shè)控制口地址設(shè)控制口地址為為0F
49、41H,0F41H,l 數(shù)據(jù)口地址為數(shù)據(jù)口地址為0F40H0F40H。l l l方式選擇控制字為:方式選擇控制字為:01011110B=5EHl操作命令字為:操作命令字為:00110111B=37Hl初始化程序如下:初始化程序如下:l MOV DX,0F41H;8251A控制口地址l MOV AL,5EH;方式選擇控制字,異步,l OUT DX,AL 波特率16,8位數(shù)據(jù)位,奇校l 驗,1個停止位l MOV AL,37H;操作命令字,允許發(fā)送、接收l OUT DX,AL 錯誤標(biāo)志復(fù)位,發(fā)送準(zhǔn)備就緒l例例2.2.設(shè)8251A工作于同步方式,且內(nèi)同步,雙同步,同步字符為16H,每個字符7個數(shù)據(jù)位,
50、奇校驗,允許接收,允許發(fā)送,同步檢測,全部錯誤標(biāo)志復(fù)位,控制口地址為0F41H,數(shù)據(jù)口地址為0F40H,請按上述要求對8251A進(jìn)行初始化。l方式控制字為方式控制字為:00011000B=18H:00011000B=18Hl操作命令字為操作命令字為:10010101B=95H:10010101B=95Hl程序如下程序如下: : MOV DX,0F41H;8251A控制口地址l MOV AL,18H;方式字,雙內(nèi)同步,奇l 校,7個數(shù)據(jù)位l OUT DX,AL;方式字寫入控制口l MOV AL,16H;同步字符l OUT DX,AL;送入第一同步字符(16H)l OUT DX,AL;送入第二同步
51、字符l MOV AL,95H;操作命令字l OUT DX,AL;操作命令字寫入控制口 3. 利用狀態(tài)字進(jìn)行編程的舉例 MOV AL,0FAHOUT 42H,AL;設(shè)置模式字,異步模式,波 特率因子為16,7個數(shù)據(jù) 位,2個停止位,偶校驗MOV AL,35HOUT 42H,AL;設(shè)置控制字,并啟動 MOV DI,0;變址寄存器初始化 MOV CX,80 ;共收取80個字符BEGIN: IN AL,42H TEST AL,02H JZ BEGIN;讀狀態(tài)字并測試IN AL,40H ;讀取字符MOV DX,OFFSET BUFFERMOV DX+DI,AL ;傳輸字符INC DI ;修改緩沖區(qū)指針I(yè)
52、N AL,42H ;讀取狀態(tài)字TEST AL,38H ;測試有無錯誤 JNZ ERRORLOOP BEGIN ;如沒有錯,則接收 下1個字符 JMP EXIT ;如滿80個字符,則結(jié)束ERROR: CALL ERR_OUT;調(diào)用出錯處理程序EXIT: 10.4.6 8251A的使用實例 下圖為用8251A作為CRT接口的實際例子 8251A的初始化程序段 :INIT: XOR AX,AX;AX清零 MOV CX,0003 MOV DX,00DAH;OUT1: CALL KKK LOOP OUT1 ;往控制端口DAH送3個0MOV AL,40H CALL KKK ;往控制端口送40H復(fù)位MOV
53、AL,4EH CALL KKK ;設(shè)置模式字, 異步模式, 波特率因子為16,8位數(shù)據(jù), 1位停止位MOVAL,27H CALLKKK;往設(shè)置命令字啟動 . KKK:OUT DX,AL;將數(shù)據(jù)輸出到指定端口 PUSH CX MOV CX,0002 ABC:LOOP ABC ;等待輸出動作完成 POP CX ;恢復(fù)CX內(nèi)容RET往CRT輸出一個字符的程序段 CHAROUT: MOV DX,0DAHSTATE:IN AL,DX;輸入狀態(tài)字 TEST AL,01 JZ STATE;不斷測試狀態(tài)位 MOV DX,0D8H;數(shù)據(jù)端口地址送DX POPAX ;AX中為要輸出的字符 OUTDX,AL;往端口
54、中輸出一個字符8251A的應(yīng)用舉例l例例1.1.8086CPU利用8251A作串行接口實現(xiàn)與CRT終端間的串行傳送。l8251A作為8086CPU與CRT終端間的接口如圖8-57所示,ALE信號有效時,將CPU送來的地址鎖存。地址線A0接C/D端用于選擇8251A的數(shù)據(jù)口或控制口。波特率發(fā)生器輸出頻率為76.8KHz,向8251A提供規(guī)定的收/發(fā)時鐘(RXC和TXC),由于8251A輸入輸出都是TTL電平,而CRT是lRS-232電平,所以要通過1488及1489進(jìn)行電平轉(zhuǎn)換。l8251A8251A工作方式的確定:工作方式的確定:異步方式,1個停止位,8位數(shù)據(jù)位,偶校驗,波特率系數(shù)為16。CP
55、U用查詢方式將緩沖區(qū)字符“HELLO”送CRT上顯示。l顯示字符存放在數(shù)據(jù)段,l首地址為首地址為2000H2000H;l控制口地址為控制口地址為04F2H04F2H;l數(shù)據(jù)口地址為數(shù)據(jù)口地址為04F0H04F0H。方式選擇控制字為01111110B=7EH操作命令字為00110011B=33H 地址鎖存器 地址譯碼器A7A1A0ENSTBCSC/DRDWRCLK8251A8086AD15AD0ALEM/IOM/IORDWRCLK電平轉(zhuǎn)換電平轉(zhuǎn)換CRT 終終 端端波特率波特率發(fā)生器發(fā)生器RXDTXDDTRDSRTXCRXCD70圖圖8-57 8086與與CRT終端接口連接終端接口連接l EDAT
56、A SEGMENTlDISBUF DB 48H,45H,4CH,4FH,0DH,0AHl ;HELLO字符的ASCII碼lEDATA ENDSlMAIN: MOV DX,04F2H;8251A的控制口l MOV AL,40H;內(nèi)部復(fù)位(軟件復(fù)位)l OUT DX,ALl MOV AL,7EH;方式選擇控制字l OUT DX,ALl lMOV AL,33H;操作命令字l OUT DX,ALl MOV BX,2000H;顯示緩沖區(qū)首地址l MOV CX,07H;顯示字符個數(shù)lWAT: MOV DX,04F2H;8251A的狀態(tài)口l IN AL,DX;讀狀態(tài)字l TEST AL,80H ;查數(shù)據(jù)裝置
57、是否準(zhǔn)備就l 緒?即查DSRl JZ WAT ;未準(zhǔn)備就緒,等待l MOV DX,04F0H;8251A數(shù)據(jù)口lMOV AL,BX;從顯示緩沖區(qū)取數(shù)據(jù)l OUT DX,AL ;將顯示字符送8251A數(shù)據(jù)口l INC BX ;修改顯示緩沖區(qū)地址l DEC CX ;字符個數(shù)減1l JNZ WAT ;未傳送完,繼續(xù)送CRT顯示l HLT例2.利用利用8251A8251A串行接口芯片通過串行接口芯片通過RS-232CRS-232C標(biāo)準(zhǔn)串行總線連標(biāo)準(zhǔn)串行總線連接甲、乙兩臺接甲、乙兩臺80868086微機(jī)實現(xiàn)雙機(jī)串行通信微機(jī)實現(xiàn)雙機(jī)串行通信, ,由甲機(jī)向乙機(jī)傳由甲機(jī)向乙機(jī)傳送送256256個字符數(shù)據(jù)。通信
58、有關(guān)約定如下個字符數(shù)據(jù)。通信有關(guān)約定如下: :l雙方采用異步、半雙工方式,通信時均認(rèn)為對方已準(zhǔn)備就緒,通信數(shù)據(jù)格式為,每個字符7個數(shù)據(jù)位,2個停止位、偶校驗,波特率系數(shù)為16。lCPU與8251A之間采用查詢方式交換數(shù)據(jù),l8251A8251A的數(shù)據(jù)口地址為的數(shù)據(jù)口地址為3F0H,3F0H,l控制口地址為控制口地址為3F2H,3F2H,l發(fā)送數(shù)據(jù)存放的數(shù)據(jù)區(qū)首地址為發(fā)送數(shù)據(jù)存放的數(shù)據(jù)區(qū)首地址為2000H2000Hl接收數(shù)據(jù)的有效地址為接收數(shù)據(jù)的有效地址為4000H4000H。l收/發(fā)時鐘RXC和TXC由8253的通道1提供,輸出頻率為153.6KHz,8253工作于方式3,輸入時鐘CLK,頻率
59、為2MHz,它由CPU 8MHz的主時鐘經(jīng)分頻后得到。分頻分頻分頻分頻波特波特率發(fā)率發(fā)生器生器波特波特率發(fā)率發(fā)生器生器電平電平變換變換電平電平變換變換D7D0TXDRXDRXDTXDGNDGNDTXDRXDTXDRXDD7D0D7D0RDRDWRWRA1RDWRA1RESETRESETRETRETCLKCLKCLK 8086 CPU 8086 CPU8251A8251AD7D0EIA/TTLEIA/TTL圖圖8-58 雙機(jī)串行通信硬件連接雙機(jī)串行通信硬件連接C/D發(fā)送端與接送端的方式選擇控制字為11111010B=FAH,發(fā)送端操作命令字為00010001B=11H,接送端操作命令字為14Hl
60、發(fā)送端的發(fā)送程序如下發(fā)送端的發(fā)送程序如下: :lBEGIN-T: MOV DX,3F2H;8251A的控制口地址l MOV AL,40H ;內(nèi)部復(fù)位(軟件復(fù)位)l OUT DX,ALl MOV AL,FAH;方式選擇控制字,異l 步,7數(shù),2l OUT DX,AL ;位停,偶校驗,波特率系l 數(shù)16l lMOV AL,11H;操作命令字,錯誤復(fù)位,允許發(fā)l OUT DX,AL; 送l MOV DI,2000H;發(fā)送數(shù)據(jù)區(qū)首地址l MOV CX,FFH;發(fā)送數(shù)據(jù)字符個數(shù)lNEX-T: MOV DX,3F2H;8251A控制口地址l IN AL,DX;讀狀態(tài)l TEST AL,01H;查狀態(tài)位TX
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 17895-2025氣體燃料汽車術(shù)語
- GB/T 46550.1-2025天然氣加臭劑的測定第1部分:用光離子化氣相色譜法測定四氫噻吩和無硫加臭劑含量
- 2026年湖北職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性考試題庫及答案詳解一套
- 2026年云南省迪慶藏族自治州單招職業(yè)傾向性考試題庫及參考答案詳解一套
- 2026年岳陽職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性考試題庫及答案詳解一套
- 2026年貴州食品工程職業(yè)學(xué)院單招職業(yè)傾向性考試題庫參考答案詳解
- 2026年陜西能源職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及完整答案詳解1套
- 2026年焦作師范高等專科學(xué)校單招職業(yè)傾向性考試題庫及答案詳解一套
- 2026年綿陽飛行職業(yè)學(xué)院單招綜合素質(zhì)考試題庫附答案詳解
- 2026年廈門演藝職業(yè)學(xué)院單招職業(yè)傾向性測試題庫含答案詳解
- 國家開放大學(xué)一網(wǎng)一平臺電大《建筑測量》實驗報告1-5題庫
- 會計職業(yè)生涯規(guī)劃書
- 液壓傳動課程設(shè)計-臥式半自動組合機(jī)床液壓系統(tǒng)
- 品質(zhì)異常通知單
- 鼎捷T100-V1.0-總賬管理用戶手冊-簡體
- GB 31644-2018食品安全國家標(biāo)準(zhǔn)復(fù)合調(diào)味料
- 邏輯學(xué)(北大課件)
- 援疆工作調(diào)研報告
- 加油站班前會記錄表
- 機(jī)車-受電弓碳滑板磨耗檢測
- 數(shù)學(xué)建模電子教材
評論
0/150
提交評論