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

下載本文檔

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

文檔簡介

第七章串行通信接口§7.5.1接口功能與數(shù)據(jù)傳輸方式一、接口功能

接口的功能是在系統(tǒng)總線和I/O設(shè)備之間傳輸信號,提供緩沖,滿足接口兩邊時序要求。尋址功能輸入輸出功能數(shù)據(jù)轉(zhuǎn)換功能聯(lián)絡(luò)功能中斷管理功能復(fù)位功能可編程功能錯誤檢測功能二、數(shù)據(jù)傳送的方式數(shù)字信號的傳輸有并行傳輸和串行傳輸

并行傳輸是多位二進(jìn)制數(shù)據(jù)可以同時傳輸,提高數(shù)據(jù)傳輸?shù)男?。通常?位、16位或32位的數(shù)據(jù)寬度同時進(jìn)行傳輸。每一位都要有自己的數(shù)據(jù)傳輸線和發(fā)送接收器件,在時鐘脈沖的作用下數(shù)據(jù)從一端送往另一端。

串行通信是指在單根導(dǎo)線上將二進(jìn)制數(shù)據(jù)一位一位順序傳送,特別適合于遠(yuǎn)距離傳送。對于離計算機較近的外部設(shè)備如鼠標(biāo)、繪圖儀、終端等,也常常采用串行方式交換數(shù)據(jù)。

一、串行數(shù)據(jù)傳送方向串行通信中,數(shù)據(jù)通常是在二個站(點對點)之間進(jìn)行傳送,按照數(shù)據(jù)流的方向可分成三種傳送模式:全雙工、半雙工、單工1.全雙工(FullDuplex)數(shù)據(jù)的發(fā)送和接收分別由兩根可以在兩個不同的站點同時發(fā)送和接收的傳輸線進(jìn)行傳送,通信雙方都能在同一時刻進(jìn)行發(fā)送和接收操作,選擇的傳送方式稱為全雙工制?!?.5.2串行傳送的幾個問題

特點:①每一端都有發(fā)送器和接收器②有二條傳送線應(yīng)用:交互式應(yīng)用,遠(yuǎn)程監(jiān)測控制發(fā)送器接收器接收器發(fā)送器A站B站圖7.5.1全雙工方式示意圖2.半雙工(HalfDuplex)使用同一根傳輸線,既可發(fā)送數(shù)據(jù)又可接收數(shù)據(jù),但不能同時收送數(shù)據(jù),這樣的傳送方式就是半雙工(HalfDuplex)制,如圖所示。發(fā)送器接收器發(fā)送器接收器A站B站圖7.5.2半雙工方式示意圖特點:①每端需有一個收/發(fā)切換電子開關(guān)②因有切換,會產(chǎn)生時間延遲應(yīng)用:打印機串口,單向傳送設(shè)備,發(fā)送器→接收器二、信號的調(diào)制和解調(diào)計算機的通信是要求傳送數(shù)字信號,而在進(jìn)行遠(yuǎn)程數(shù)據(jù)通信時,線路往往是借用現(xiàn)有的公用網(wǎng),但是,網(wǎng)是為音頻模擬信號的設(shè)計的。一般為300~3400Hz,不適合于數(shù)據(jù)信號。因此需要對二進(jìn)制信號進(jìn)行調(diào)制,以適合在網(wǎng)上傳輸相應(yīng)的音頻信號,在接收時,需要進(jìn)行解調(diào),還原成數(shù)字信號。計算機MODEMMODEM模擬信號數(shù)字信號數(shù)字信號CRT101010101010圖7.5.3調(diào)制電話線1.什么叫調(diào)制?

所調(diào)調(diào)制就是進(jìn)行波形變換?;蛘哒f進(jìn)行頻譜變換,就是將基帶數(shù)字信號的頻譜變換成適合于在模擬信道中傳輸?shù)念l譜。2.作用:

調(diào)制器(Modulator)是一個波形變換器,它將基帶數(shù)字的波形變換成適合于模擬信道傳輸?shù)牟ㄐ?。解調(diào)器是一個波形識別器,將模擬信號恢復(fù)成原來的數(shù)字信號。

調(diào)制器解調(diào)器010010010010最基本的調(diào)制方法有以下幾種:(1)調(diào)幅(AM)即載波的振幅隨基帶數(shù)字信號而變化.“1”對應(yīng)有載波“0”對應(yīng)無載波3.調(diào)制方法:(2)調(diào)頻(FM)即載波頻率隨數(shù)字信號而變化“0”對應(yīng)”f1”“1”對應(yīng)“f2”(3)調(diào)相(PM)即載波初始相位隨基帶數(shù)字信號而變化.“0”對應(yīng)相位0度“1”對應(yīng)相位180度f1f2FMAM0100110度180度PM4.發(fā)送時鐘和接收時鐘數(shù)據(jù)輸入寄存器輸入移位寄存器÷1,÷16,÷32數(shù)據(jù)輸出寄存器輸出移位寄存器÷1,÷16,÷32CLK(主時鐘)(串行數(shù)據(jù)輸入)輸入移位脈沖(串行數(shù)據(jù)輸出)輸出移位脈沖接收時鐘發(fā)送時鐘5.波特率因子F(時鐘頻率)=波特率因子*波特率波特率因子:數(shù)據(jù)傳輸率(波特率)與時鐘頻率之間的比例系數(shù).給定時鐘頻率,選擇不同的波特率因子可得到不同的波特率。例如:f=19.2kHz,若選波特率因子為16,則波特率為1200bps。若選定波特率因子和波特率,則相應(yīng)的確定了對時鐘頻率的要求。

1200*16=19200(時鐘頻率)→若外部時鐘電路的頻率F=1MHz,需用8253分頻,試計算分頻系數(shù)(8253的計數(shù)初值)=?8253計數(shù)初值=時鐘頻率/(波特率*波特率因子)8250外部的時鐘電路

÷1,÷16,…1MHzN分頻19.2KHz移位脈沖CLKOUT8253三、信息的檢錯與糾錯串行數(shù)據(jù)在傳輸過程中,由于干擾而引起誤碼是難免的,這直接影響通信系統(tǒng)的可靠性,對通信中的檢/糾錯能力是衡量一個通信系統(tǒng)的重要內(nèi)容。檢錯:如何發(fā)現(xiàn)傳輸中的錯誤,稱為檢錯。糾錯:如何消除錯誤,稱為糾錯例:奇偶校驗檢錯方陣碼檢錯循環(huán)冗余碼(CRC)檢錯方陣碼檢錯技術(shù):采用奇偶校驗與“檢驗和”的綜合。①7位編碼后附加1位奇偶位。②若干個字符組成一個數(shù)據(jù)塊列成方陣,列向按位相加產(chǎn)生一個單字節(jié)檢驗和附加到數(shù)據(jù)塊未尾。

110100100100000110101010111100111100001100001001奇偶位四、傳輸速率1.波特率:是指在串行通信中,在基本波傳輸?shù)那闆r下,每秒鐘傳送的二進(jìn)制脈沖的數(shù)目。用波特率表示:即1波特=bit/s(位/秒)常用的標(biāo)準(zhǔn)波特率:110,300,1K,1.2K,2.4K,4.8K,9.6K,19.2K,56K2.字符速率:是指每秒所傳輸?shù)淖址麛?shù),這個概念使用少。字符速率與波特率的關(guān)系:

1個字符:1個起始位+8個數(shù)據(jù)位+1個偶數(shù)位+2個終止位=12位如果波特率:12000

則字符速率:12000/12=1000字符/s§7.5.3串行通信的數(shù)據(jù)格式通信協(xié)議:是指通信雙方的一種約定,包括對數(shù)據(jù)格式、同步方式,傳送速度、傳送步驟、檢糾錯方式等問題作出統(tǒng)一規(guī)定。也稱通信控制規(guī)程。同步協(xié)議異步協(xié)議分類面向字符(characterOriented)面向比特(Bit)面向字節(jié)計數(shù)ISO(InternationalStandardOrganization)國際標(biāo)準(zhǔn)化組織。OSI(OpenSystemInterconnection)開放系統(tǒng)互連參考模型。一、起止式異步通信數(shù)據(jù)格式1.格式11000010111000空閑位起始位數(shù)據(jù)位0低高校驗位停止位應(yīng)用:早期電傳機①每個字符總是以起始位開始(“0”),以停止位(“1”)結(jié)束。②字符之間沒有時間間隔要求③字符后一位校驗位(可沒有)2.特點:是一個字符一個字符傳輸二、面向字符的同步通信格式1.功能:是一次傳送若干個字符組成的數(shù)據(jù)塊,并且規(guī)定了10個特殊字符作為這個數(shù)據(jù)塊的開頭與結(jié)束標(biāo)志以及整個傳輸過程的控制信息。2.數(shù)據(jù)格式(一幀)SYNSYNSOH標(biāo)題STX數(shù)據(jù)塊ETB/ETX塊校驗21同步通信與異步通信所有串行通信都需要一個時鐘信號來作為數(shù)據(jù)的定時參考。發(fā)送器和接收器用時鐘來決定何時發(fā)送和讀取每一個數(shù)據(jù)位。根據(jù)傳輸時采用的是統(tǒng)一時鐘還是本地局部時鐘,分為同步傳輸和異步傳輸兩種。同步傳輸用一個時鐘脈沖確定一個數(shù)據(jù)位,異步傳輸用多個時鐘脈沖確定一個數(shù)據(jù)位(如16個)同步傳輸以數(shù)據(jù)塊(當(dāng)作“位流”看待)為單位傳輸,異步傳輸以字符為單位傳輸,但都稱為幀(Frame)22同步通信的時鐘定時方法數(shù)據(jù)(62H)01100010同步傳輸先發(fā)送高位(MSB)發(fā)送方在時鐘信號的下降沿發(fā)送字節(jié)接收方在時鐘信號的上升沿接收字節(jié)時鐘(發(fā)送時鐘與接收時鐘完全同步)LSBMSB23異步通信的時鐘定時方法數(shù)據(jù)(62H)000011停止位異步傳輸先發(fā)送低位(LSB)發(fā)送方利用發(fā)送時鐘來決定發(fā)送每個位的時刻接收方檢測起始位的下降沿,并用它來同步接收時鐘,然后利用接收時鐘從每一位的中間接收該位1起始位LSBMSB0奇偶校驗位00/111接收/發(fā)送時鐘24異步通信時數(shù)據(jù)位的檢測發(fā)送/接收時鐘周期:Tc,數(shù)據(jù)位間隔:Td

Tc=Td/K,其中K稱為波特率因子(16,32,64)25異步通信的一般格式每個字符由起始位、數(shù)據(jù)位、校驗位、停止位構(gòu)成。起始位和停止位用于字符的同步。從圖中可看出,這種格式是靠起始位和停止位來實現(xiàn)字符的界定或同步的,故稱為起止式協(xié)議。異步通信的信息格式如下邊的表所示注:表中位數(shù)的本質(zhì)含義是信號出現(xiàn)的時間,故可有分?jǐn)?shù)位,如1.5。例:傳送8位數(shù)據(jù)45H(0100,0101B),奇校驗,1個停止位,則信號線上的波形象圖所示那樣:異步通信的速率:若9600bps,每字符8位,1起始,1停止,無奇偶,則實際每字符傳送10位,則960字符/秒。起始位邏輯01位數(shù)據(jù)位邏輯0或15位、6位、7位、8位校驗位邏輯0或11位或無停止位邏輯11位,1.5位或2位空閑位邏輯1任意數(shù)量§7.5.4串行接口標(biāo)準(zhǔn)一、EIA-RS-232接口標(biāo)準(zhǔn)

RS-232標(biāo)準(zhǔn)是美國EIA(電子工業(yè)聯(lián)合會)與BELL等公司一起開發(fā)的,1969年公布的通信協(xié)議,適合的數(shù)傳率:0~20Kbps。1.電氣特性RS-232對電氣特性,邏輯電平和各種信號線的功能都作了規(guī)定。邏輯“1”=-3V~-15V“0”=+3V~+15V與TTL邏輯電平不一樣,可用TTL/EIA電平轉(zhuǎn)換器進(jìn)行,如MC1488,MC1489IC。MC1488MC1489RS-232TTLEIA電平+15V+15VTTL+15V

采用EIA電平比TTL電平具有更強的抗干擾性能。另外,使用MAX232電平轉(zhuǎn)換省電,可連接二對收/發(fā)線,只用單電源。2.機械特性1)連接器(Connector)常用二種:①DB-25型,25腳,只用9個信號(2個數(shù)據(jù)線,6個控制線,1個地址),如下圖所示。1234DB-25型連接器5678911132522201814發(fā)送電流(-)發(fā)送電流(+)DCDGNDDSRCTSRTSRXDTXD(-)接收電流(+)接收電流②DB-9型9針,9針全用,如下圖。123456789DSRRTSCTSRIDCDRXDTXDDTRGNDDB-9型連接器2.電纜長度

RS-232直接連接的最大物理距離15M,通信速率<20Kbps。3.RS-232C接口信號的定義

25線:數(shù)據(jù)線4條(2,3,14,16)控制線11條(4,5,6,8,12,13,19,20,22,23)定時信號線3條(15,17,24)地線2條(1,7)備用5條(9,10,11,18,25)未定義4.信號線的連接1)近距離連接(<15m)只用3條線(發(fā)送線TXD,接收線RXD,信號地線)TXDRXDTXDRXDA機B機77223345620456202.遠(yuǎn)距離連接(>15m)1)需用MODEM和專用線2)需用2~9條信號線(在接口與MODEM之間)計算機接口調(diào)制解調(diào)器DCDRXDTXDRTSCTSSGDSR調(diào)制解調(diào)器DCDRXDTXDRTSCTSSGDSR終端專用電話線2┇┇2采用MODEM時RS-232信號線的使用2 TxD 發(fā)送數(shù)據(jù) 3 RxD 接受數(shù)據(jù) 4 RTS 請求發(fā)送 5 CTS 允許發(fā)送 6 DSR 數(shù)據(jù)設(shè)備準(zhǔn)備好 20 DTR 數(shù)據(jù)終端準(zhǔn)備好 7 GND 信號地串行通信的接口標(biāo)準(zhǔn)RS-232-C采用負(fù)邏輯,且信號電平與TTL不兼容串行接口芯片8250、8251均使用TTL電平,應(yīng)使用電平轉(zhuǎn)換電路與RS-232C連接器連接。MC1488:TTL電平→RS232電平(用于發(fā)送方)MC1489:TTL電平←RS232電平(用于接收方)串行通信的接口標(biāo)準(zhǔn)采用Modem(DCE)和網(wǎng)通信時的信號連接串行通信的接口標(biāo)準(zhǔn)采用專用線通訊時的信號連接串行通信的接口標(biāo)準(zhǔn)無Modem的標(biāo)準(zhǔn)連接串行通信的接口標(biāo)準(zhǔn)無Modem的最簡連接典型的串行接口的結(jié)構(gòu)由于CPU與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串行接口中,必須要有“接收移位寄存器”(串→并)和“發(fā)送移位寄存器”(并→串)。一、RS-422接口標(biāo)準(zhǔn)1.特點:(1)采用平衡發(fā)送器和差動接收器,由于是雙線傳輸,大大提高了抗共模干擾的能力。因為是兩條傳輸線的電位差決定邏輯電平AA′-BD′<-2V,表示“1”AA′-BD′>+2V,表示“0”(2)傳輸速率10Mbps(<15m時)

90Kbps(<1200m時)2.連接MC3487MC3486BTTLRS-422A電平平衡發(fā)送器差動接收器B′AA′二RS-423接口標(biāo)準(zhǔn)1.連接:2.特點:①采用單端發(fā)送器和差動接收器,由于是差動接收器,提高了抗共模干擾能力。②數(shù)傳率:100Kbps/90m時

1Kbps/1200m時③邏輯“1”,4V~6V

邏輯“0”,-4V~-6VTTLRS-423A電平單端發(fā)送器差動接收器+-三、RS-485接口標(biāo)準(zhǔn)1.特點:(1)兼容RS-422A,擴(kuò)展RS-422A的功能;(2)允許在電路中有多個發(fā)送器和允許一個發(fā)送器驅(qū)動多個接收器,多達(dá)32個收/發(fā)器;(3)抗干擾能力強,傳送距離遠(yuǎn),傳輸速率高。數(shù)傳率:100Kbps<1.2Km不用MODEM9.6Kbps<15Km10Mbps<15mRS-422標(biāo)準(zhǔn)規(guī)定采用平衡驅(qū)動差分接收電路,提高了數(shù)據(jù)傳輸速率(最大位速率為10Mb/s),增加了傳輸距離(最大傳輸距離1200m)。

RS-423標(biāo)準(zhǔn)規(guī)定采用單端驅(qū)動差分接收電路,其電氣性能與RS-232C幾乎相同,并設(shè)計成可連接RS-232C和RS-422.它一端可與RS-422連接,另一端則可與RS-232C連接,提供了一種從舊技術(shù)到新技術(shù)過渡的手段.同時又提高位速率(最大為300Kb/s)和傳輸距離(最大為600m)。

因RS-485為半雙工的,當(dāng)用于多站互連時可節(jié)省信號線,便于高速、遠(yuǎn)距離傳送.許多智能儀器設(shè)備均配有RS-485總線接口,將它們聯(lián)網(wǎng)也十分方便。

§7.5.5串行通信接口任務(wù)一、串口的基本任務(wù)(1)進(jìn)行串,并轉(zhuǎn)換(2)實現(xiàn)串行數(shù)據(jù)格式化(3)可靠性檢驗(4)實施接口與端口設(shè)備之間聯(lián)絡(luò)控制二、串口電路的組成內(nèi)部有四個寄存器:控制寄存器、狀態(tài)寄存器、數(shù)據(jù)輸入內(nèi)部有寄存器、數(shù)據(jù)輸出寄存器數(shù)據(jù)線聯(lián)絡(luò)信號線地址線與片選線串并轉(zhuǎn)換和并串轉(zhuǎn)換PC機常用可編程串行通信接口的芯片除了8251A以外,還有8250、PC16550等。和8251A相比,8250、PC16550不具備同步方式的傳送功能。但是,對異步通信的控制功能強于8251A。8250和PC16550都具有波特率發(fā)生器,從而可以對波特率進(jìn)行編程。和8251A相比,它們還具有全部控制調(diào)制解調(diào)器的信號,包括載波信號檢測DCD#和振鈴指示RI,因此就可以直接和調(diào)制解調(diào)器連接。而且它們和IntelCPU也完全兼容。7.5.3可編程串行接口8250/16550串行通信:數(shù)據(jù)被逐位順序傳送串行同步通信:每個字符及位都是同步串行異步通信:同一字符內(nèi)是同步的,而字符與字符之間不同步(異步)協(xié)議:通信收/發(fā)雙方必須共同遵守的基本通信規(guī)程協(xié)議內(nèi)容:一般包括收發(fā)雙方的同步方式、傳輸控制步驟、差錯檢驗方式、數(shù)據(jù)編碼、數(shù)據(jù)傳輸速率、通信報文格式及控制字符定義異步通信協(xié)議為使通信雙方確認(rèn)數(shù)據(jù)有效,在字符中設(shè)置起、止標(biāo)志位起始標(biāo)志位:每個字符前添加的一個“0”停止標(biāo)志位:每個字符后添加的若干個“1”字符之間的空隙用“1”填滿,此時的“1”稱為空閑位,“0”為空號、“1”為傳號基本功能:(1)每個字符的數(shù)據(jù)位數(shù)(5~8位),奇偶校驗(奇校驗、偶校驗或無奇偶校驗),及停止位數(shù)(1,1.5或2個)均可以自由選擇(2)內(nèi)裝可編程波特率發(fā)生器,可對輸入時鐘進(jìn)行1到(2^16-1)的分頻并產(chǎn)生16倍發(fā)送波特率的波特率輸出信號()。具有獨立的接收器時鐘信號輸入。允許數(shù)據(jù)傳送波特率為50~96000B/S(3)收和發(fā)都具有雙重緩沖(4)具有優(yōu)先權(quán)中斷管理系統(tǒng)并提供對發(fā)送接收、錯誤和通信線路狀態(tài)的中斷檢測(5)提供通信線路和MODEM的全部狀態(tài)(6)能檢測假起始位(7)能產(chǎn)生和檢測中止符(8)具有自診斷測試功能

芯片引腳面向系統(tǒng)的引腳:D0~D7

雙向數(shù)據(jù)線。與系統(tǒng)數(shù)據(jù)總線DB相連接,用以傳送數(shù)據(jù)、控制信息和狀態(tài)信息。CS0,CS1,CS2

片選信號,當(dāng)它們同時有效時,該8250芯片被選中。CSOUT

片選輸出信號。當(dāng)8250的CS0、CS1和CS2同時有效時,CSOUT為高電平。MR

主復(fù)位信號,高電平有效。當(dāng)它有效時,除接收數(shù)據(jù)寄存器、發(fā)送保持寄存器、除數(shù)鎖存器外,其余寄存器的內(nèi)容均被清除

A0~A28250內(nèi)部寄存器的選擇信號。不同的編碼對應(yīng)于不同的寄存器。ADS

地址選通信號。有效時可將CS0,CS1,CS2及A0-A2鎖存于8250內(nèi)部。不需要鎖存時,ADS可直接接地。DISTR

讀選通信號。通常與系統(tǒng)總線的IOR信號相連接。DOSTR

寫選通信號。通常與系統(tǒng)總線的IOW信號相連接。INTR

中斷請求信號。當(dāng)允許8250中斷時,接收出錯、接收數(shù)據(jù)寄存器滿、發(fā)送數(shù)據(jù)寄存器空以及MODEM的狀態(tài)均能夠產(chǎn)生有效的INTR信號。8250的引腳及功能(續(xù))面向通信設(shè)備的引腳信號SIN,SOUT:串行輸入/輸出端CTS,RTS,DTR,DSR:(同RS232標(biāo)準(zhǔn)中的信號)RLSD:即RS232C標(biāo)準(zhǔn)中的DCD信號RI:(同RS232標(biāo)準(zhǔn)中的信號)OUT1,OUT2:可由用戶編程確定其狀態(tài)的輸出端BAUDOUT:波特率信號輸出(頻率=fCLK/分頻值)XTAL1,XTAL2:接外部晶振,作為基準(zhǔn)時鐘fCLKRCLK:接收時鐘輸入(可直接與BAUDOUT相連)8250與8088系統(tǒng)的連接系統(tǒng)總線D7-D0DISTRDOSTRINTRMRA0A1A2ADSDISTRDOSTRCS2CS1CS0+5VCSD7-D0#IOR#IOWINTRRESETA0A1A2電平轉(zhuǎn)換/驅(qū)動器14881489到RS232接口XTAL1XTAL2BAUDOUTRCLK

SOUTSINRTSDTRDSRDCDCTSRI8250XTAL寄存器結(jié)構(gòu)接收緩沖器RBR發(fā)送保持寄存器THR傳輸線控制寄存器LCR傳輸線狀態(tài)寄存器LSR調(diào)制解調(diào)器控制寄存器MCR調(diào)制解調(diào)器狀態(tài)寄存器MSR中斷使能寄存器IER中斷識別寄存器IIR分頻次數(shù)寄存器DLL及DLM思考:3條地址線如何編碼10個寄存器?8250的內(nèi)部寄存器(續(xù))除數(shù)鎖存器(DLL,DLH)—BASE+0,1用來保存分頻系數(shù),以獲得所需的波特率。波特率可以簡單地看成每秒傳送多少二進(jìn)制位PC機中基準(zhǔn)時鐘頻率fCLK=1.8432MHz,波特率因子K=16。所以,對于指定的波特率B

除數(shù)值=1843200/(B×16)=115200/B例如,通信速率為9600波特時,除數(shù)值=12。注意:寫除數(shù)前,必須把LCR的最高位(DL位)置1寄存器端口地址分配DLABA2A1A0被訪問的寄存器串口1的地址0000接收緩沖器RBR、發(fā)送緩沖器THR3F8H0001中斷允許寄存器IER3F9H×010中斷標(biāo)識寄存器(只讀)IIR3FAH×011傳輸線控制寄存器LCR3FBH×100Modem控制寄存器MCR3FCH×101傳輸線狀態(tài)寄存器LSR3FDH×110Modem狀態(tài)寄存器MSR3FEH1000除數(shù)寄存器(低字節(jié))DLL3F8H1001除數(shù)寄存器(高字節(jié))DLM3F9H線路控制寄存器LCR(BASE+3)D7D6D5D4D3D2D1D0XX0:校驗位無效001:奇校驗011:偶校驗101:校驗0111:校驗恒1校驗方式數(shù)據(jù)幀長00:5位01:6位10:7位11:8位設(shè)置簡斷1-強制間斷0-正常尋址識別1:分頻0:收發(fā)數(shù)據(jù)、中斷停止位1:1位半或2位0:1位停止位決定傳輸時的數(shù)據(jù)幀格式(通信雙方必須一致)SOUT強制為1

(Break符號)傳輸線狀態(tài)寄存器LSR(BASE+5)D7D6D5D4D3D2D1D00恒定值1:發(fā)送移位空1:發(fā)送緩沖空1:檢測到間斷1:幀錯1:奇偶校驗錯1:數(shù)據(jù)溢出錯誤1:接收數(shù)據(jù)就緒反映傳輸時的通信線狀態(tài)發(fā)送保持寄存器(THR)——BASE+0要發(fā)送的數(shù)據(jù)寫入此寄存器。當(dāng)發(fā)送移位寄存器TSR空時,THR中的內(nèi)容移入TSR被發(fā)送出去。只有THR空時,CPU才能寫入下一個要發(fā)送的數(shù)據(jù)接收緩沖寄存器(RBR)——BASE+0RSR收到一個完整的數(shù)據(jù)后,就將其送入RBR中。CPU可從RBR中讀取收到的數(shù)據(jù)。RBR只能緩沖一個數(shù)據(jù),當(dāng)CPU未能及時取走上一個數(shù)據(jù),下一個數(shù)據(jù)又送入RBR時,會產(chǎn)生溢出錯MODEM控制寄存器MCRBASE+4D7D6D5D4D3D2D1D01:自測試0:正常1:OUT2為低1:/OUT1為低1:/RTS為低1:/DTR為低恒為0產(chǎn)生RTS、DTR信號產(chǎn)生OUT1、OUT2信號設(shè)置循環(huán)自檢狀態(tài)Modem狀態(tài)寄存器(MSR)—BASE+6反映RS232接口的狀態(tài)△CTS△DSR△RI△RLSDCTSD7D6D5D4D3D2D1D0RLSDRIDSR反映4個引腳的當(dāng)前狀態(tài)(反相值)反映了自上次讀MSR后這4個引腳是否發(fā)生了變化(1=發(fā)生了變化)MODEM控制狀態(tài)寄存器MSRD7D6D5D4D3D2D1D01:/RLSD變化過1:/RLSD為低0:/RLSD為高1:/RI為低0:/RI為高1:/RSR為低0:/DSR為高1:/CTS為低0:/CTS為高1:/RI變化過1:/DSR變化過1:/CTS變化過反映RS232接口的狀態(tài)中斷允許寄存器IERD7D6D5D4D3D2D1D01:允許MODEM中斷1:允許接收錯中斷1:允許發(fā)送中斷1:允許接收中斷恒為0決定哪類中斷可以產(chǎn)生(也可禁止所有中斷產(chǎn)生)中斷識別寄存器IIRD7D6D5D4D3D2D1D0中斷源有/無1:有中斷請求0:無中斷請求恒為000:MODE中斷01:發(fā)送中斷10:接收中斷11:數(shù)據(jù)錯中斷用于識別產(chǎn)生中斷的原因波特率發(fā)生器時鐘源頻率1.8432MHz時鐘頻率是數(shù)據(jù)傳送波特率的16倍分頻系數(shù)=1843200/(波特率*16)波特率與分頻系數(shù)對應(yīng)表波特率分頻器DLM(H)分頻器DLL(L)5009H00H7506H00H11004H17H15003H00H30001H80H60000HC0H120000H60H180000H40H240000H30H360000H20H480000H18H720000H10H960000H0CH1152000H0AH1920000H06H2304000H05H5760000H02H11520000H01H8250發(fā)送數(shù)據(jù)的工作過程1)CPU(數(shù)據(jù))→8250的THR;2)TSR移空時,THR→TSR,LSR中“數(shù)據(jù)發(fā)送保持寄存器空”狀態(tài)位置位;3)TSR根據(jù)LCR中規(guī)定的格式從低到高逐位發(fā)送數(shù)據(jù);4)LSR中“數(shù)據(jù)發(fā)送保持寄存器空”狀態(tài)位可用來產(chǎn)生中斷,也可查詢該狀態(tài)位,以實現(xiàn)數(shù)據(jù)的連續(xù)發(fā)送。TSRTHR串行數(shù)據(jù)輸出并行數(shù)據(jù)LSRINTLCR數(shù)據(jù)狀態(tài)1)2)3)2)4)4)8250接收數(shù)據(jù)的工作過程1)SIN引腳上的串行數(shù)據(jù)逐位進(jìn)入RSR;2)RSR根據(jù)LSR中規(guī)定的數(shù)據(jù)位數(shù)確定是否收到了一個完整的數(shù)據(jù),收到后將數(shù)據(jù)→RBR;3)RBR收到RSR的數(shù)據(jù)后,將LSR寄存器中“接收緩沖寄存器滿”的狀態(tài)位置位;4)LSR中“接收緩沖寄存器滿”狀態(tài)位可用來產(chǎn)生中斷,也可查詢該狀態(tài)位,以實現(xiàn)數(shù)據(jù)的連續(xù)接收。RSRRBR串行數(shù)據(jù)輸入并行數(shù)據(jù)LSRINTLCR數(shù)據(jù)狀態(tài)1)2)3)4)8250初始化及應(yīng)用編程8250的初始化流程使LCR的最高位=1寫除數(shù)寄存器寫LCR寄存器,同時使LCR的最高位=0寫MCR寄存器寫IER寄存器8250初始化8250串口芯片的初始化編程就是設(shè)置波特率、確定串行通信的數(shù)據(jù)幀格式、中斷的設(shè)置等。【例1】要求串行數(shù)據(jù)幀包含8位有效數(shù)據(jù)、1位停止位、采用奇校驗方式,請編寫滿足該要求的8250/16550的初始化程序根據(jù)線控寄存器LCR的約定,控制字為B,初始化程序如下:

MOV AL,00001011B ;控制字

MOV DX,3FBH ;線控寄存器端口地址

OUT DX,AL ;寫入控制字編寫設(shè)置波特率為9600的初始化程序。 根據(jù)公式計算,波特率為9600時,分頻值為000CH MOV AL,10000000B ;設(shè)置波特率時 ;要求特征位DLAB為1 MOV DX,3FBH ;線控寄存器端口地址

OUT DX,AL ;寫入特征位

MOV AL,0CH ;波特率分頻值低字節(jié)

MOV DX,3F8H ;分頻值低位端口地址

OUT DX,AL ;寫入分頻值低位

MOV AL,00H ;波特率分頻值高字節(jié)

INC DX ;分頻值高位端口地址

OUT DX,AL ;寫入分頻值高位例用BIOS功能初始化8250PC機有兩個串行接口:COM1(基地址3F8H),COM2(基地址2F8H)BIOS通過中斷14H提供串行通信功能功能0:初始化串行接口功能1:發(fā)送一個字符功能2:接收一個字符功能3:讀串行接口狀態(tài)INT14H僅提供了查詢方式的通信服務(wù)要使用中斷方式進(jìn)行發(fā)送和接收必須自行編程用BIOS功能初始化8250功能0(初始化)的入口參數(shù)為:AH=0AL=初始化參數(shù)DX=串口編號(0=COM1,1=COM2)初始化參數(shù)定義如下:D7D6D5D4D3D2D1D0波特率100=1200101=2400110=4800111=9600奇偶校驗x0=無校驗01=奇校驗11=偶校驗數(shù)據(jù)位數(shù)00=5位01=6位10=7位11=8位停止位0=1位1=2位MOVAH,0MOVAL,初始化參數(shù)MOVDX,0INT14H8250的數(shù)據(jù)發(fā)送程序(查詢)LEASI,DATA_BUFFERMOVCX,DATA_BYTESL1:MOVDX,BASE+5;LSR地址

INAL,DXTESTAL,00100000B;THR空?JZL1LODSBMOVDX,BASE+0;THR地址

OUTDX,ALLOOPL1……THR空?輸出一個字節(jié)輸出完?NYYN8250的數(shù)據(jù)接收程序(查詢)LEADI,DATA_BUFFERMOVCX,DATA_BYTESL1:MOVDX,BASE+5;LSR地址

INAL,DXTESTAL,00011110B;有錯誤?JNZERRORTESTAL,00000001B;收到數(shù)據(jù)?JZL1MOVDX,BASE+0;RBR地址

INAL,DXSTOSBLOOPL1……有錯誤?讀入數(shù)據(jù)收到數(shù)據(jù)?NYYN錯誤處理接收完?NY用BIOS功能發(fā)送/接收數(shù)據(jù)通過COM1發(fā)送數(shù)據(jù):

LEASI,DATA_BUFFERMOVCX,DATA_BYTESL1:MOVAH,1;功能1MOVDX,0;COM1LODSB;數(shù)據(jù)在AL中

INT14H;發(fā)送

LOOPL1……通過COM1接收數(shù)據(jù):

LEADI,DATA_BUFFERMOVCX,DATA_BYTESL1:MOVAH,3;功能3MOVDX,0;COM1INT14H;讀接口狀態(tài)

TESTAH,00011110B;有錯誤?JNZERRORTESTAH,00000001B;有數(shù)據(jù)?JZL1MOVAH,2;功能2MOVDX,0;COM1INT14H;接收數(shù)據(jù)

STOSB;保存數(shù)據(jù)

LOOPL18250通信編程

對8250編制通信軟件時,首先應(yīng)對芯片初始化,然后按程序查詢或中斷方式實現(xiàn)通信。1.8250初始化 (1)設(shè)置波特率 (2)設(shè)置串行通信數(shù)據(jù)格式 (3)設(shè)置工作方式2.程序查詢方式通信編程3.用中斷方式編程 (1)初始化8259A中斷控制器 (2)設(shè)置中斷向量IR4

(3)設(shè)置允許/屏蔽位 (4)8250重新響應(yīng)中斷請求設(shè)置波特率例如,設(shè)波特率為9600,則波特率因子N=12

MOVDX,3FBH MOVAL,80H ;設(shè)置波特率

OUTDX,AL MOVDX,3F8H MOVAL,12 OUTDX,AL INCDX MOVAL,0 OUTDX,AL ;3F9H送01.8250初始化設(shè)置串行通信數(shù)據(jù)格式

例如,數(shù)據(jù)格式為8位,1位停止位,奇校驗。

MOVAL,0BH MOVDX,3FBH OUTDX,AL設(shè)置工作方式

(MODEM控制寄存器)無中斷:

MOVAL,3 ;OUT1、OUT2均為1 MOVDX,3FCH OUTDX,AL有中斷:

MOVAL,0BH ;OUT2為0,允許INTRT去申請中斷

MOVDX,3FCH OUTDX,AL循環(huán)測試:

MOVAL,13H MOVDX,3FCH OUTDX,AL2程序查詢方式通信編程

采用程序查詢方式工作時,CPU可以通過讀線路狀態(tài)寄存器(3FDH)查相應(yīng)狀態(tài)位(D0

溫馨提示

  • 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

提交評論