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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第六章串行通信接口串行通信的基本概念串行通信接口標準INTEL8251的功能及應用編程微型計算機串行通信程序的編制計算機的CPU與其外部設備之間常常要進行信息的交換,一臺計算機與其他的計算機之間有時也要交換信息。所有這些信息交換均可稱為“通信”。通信的基本方式可分為并行通信和串行通信兩種。并行通信是指數(shù)據(jù)的各位同時進行傳送的通信方式。串行通信是指數(shù)據(jù)是一位一位地按順序傳送的通信方式。6、1串行通信的基本概念6、1、1.串行通信的分類按照串行數(shù)據(jù)的同步方式,串行通信可分為異步傳送和同步傳送兩類。同步通信是靠識別同步字符來實現(xiàn)數(shù)據(jù)的發(fā)送和接收的,而異步通信是一種利用字符的再同步技術的通信方式。1.1異步傳送方式

異步傳送的特點是數(shù)據(jù)在線路上的傳送是不連續(xù)。數(shù)據(jù)以一個字(或稱字符)為單位來傳送。異步傳送時,各個字符間可以是連續(xù)傳送的.也可以是間斷傳送的,這完全由發(fā)送方根據(jù)需要來決定。異步傳送時,同步時鐘脈沖并不發(fā)送到接收方,即雙方各用自己的時鐘源來控制發(fā)送和接收。字符的發(fā)送是隨機進行的,因此,對于接收方來說就有一個判別何時有字符達到,何時是新的一個字符開始的問題。因此,在異步通信時,對字符必須規(guī)定一定的格式。起止式異步通信數(shù)據(jù)格式①每個字符總是以起始位開始(“0”),以停止位(“1”)結束。11000010111000空閑位起始位數(shù)據(jù)位0低高校驗位停止位②字符之間沒有時間間隔要求③字符后一位校驗位(可沒有)2.特點:是一個字符一個字符傳輸異步傳輸方式中的每個字符由4個部分組成:起始位、數(shù)據(jù)位、奇偶校驗位和停止位。一個字符由起始位開始,停止位結束。①起始位:1位,低電平;②數(shù)據(jù)位:5~8位,低位在前,高位在后;③校驗位:1位,對數(shù)據(jù)進行校驗,奇校驗和偶校驗;④停止位:1~2位,高電平。停止位后不定長度的高電平部分稱為空閑位,多少不限。停止位和空閑位都規(guī)定為高電平(邏輯1),這樣就能保證起始位開始處一定有一個下降沿,指出一個字符的開始。異步通信的時鐘定時方法數(shù)據(jù)(62H)000011停止位異步傳輸先發(fā)送低位(LSB)發(fā)送方利用發(fā)送時鐘來決定發(fā)送每個位的時刻接收方檢測起始位的下降沿,并用它來同步接收時鐘,然后利用接收時鐘從每一位的中間接收該位1起始位LSBMSB0奇偶校驗位00/111接收/發(fā)送時鐘波特率波特率是指單位時間內傳送二進制數(shù)據(jù)的位數(shù),其單位是bps(位/秒),簡稱波特。波特率是衡量串行通信數(shù)據(jù)速度快慢的一個技術指標。有時也用“位周期”來表示傳輸速率,位周期是波特率的倒數(shù)。最常用的標準波特率是110、300、600、1200、2400、4800、9600和19200bps。并行通信中,傳輸速率是以每秒傳送多少字節(jié)來表示。串行通信中,傳輸速率是以波特率來表示假如每傳送一個8位字符,共有12位格式(其中有1個起始位,8個數(shù)據(jù)位,1個校驗位,2個停止位),如果波特率是1200bps。則每秒鐘傳送的字符數(shù)是1200/12=100個。波特率和時鐘頻率在串行通信時,接口電路的發(fā)送端需要用一個時鐘來決定每一位對應的時間長度,同樣接收端也需要由一個時鐘確定每一位數(shù)據(jù)所對應的時間長度。為了實現(xiàn)這一目的,通常串行接口電路各有一個獨立的時鐘信號,發(fā)送器時鐘和接收器時鐘。收/發(fā)時鐘頻率與波特率之間的關系:收/發(fā)時鐘頻率=波特率×波特因子一般n取1,16,32和64等。對于異步通信,常采用n=16;對于同步通信,則必須取n=1。例1某一串行接口電路的發(fā)送器時鐘頻率為19200Hz,波特率因子的值為16,則發(fā)送波特率Fd=Ftxc/Kt=19200/16=1200(bps)例2要完成從A站到B站的串行數(shù)據(jù)通信,A站的發(fā)送器時鐘頻率Ftxc為38400Hz,波特率因子為16;B站的接收器電路規(guī)定波特率因子為64,則B站的接收器時鐘頻率應為多少?根據(jù)A點的發(fā)送器電路規(guī)定,數(shù)據(jù)傳輸?shù)牟ㄌ芈剩篎d=Ftxc/Kt=38400/16=2400(bps)收發(fā)雙方應該使用相同的波特率,接收器時鐘頻率應為:Frxc=Fd

×Kr=2400×64=153600(Hz)異步通信中,收發(fā)雙方的約定在異步通信中。收發(fā)雙方必須事先約定兩件事:一是規(guī)定字符格式即規(guī)定字符各部分所占的位數(shù),是否采用奇偶校驗,以及校驗的方式(偶校驗還是奇校驗)。二是規(guī)定所采用的波特率以及時鐘頻率和波特率間的比例關系。異步傳送由于不傳送同步時鐘脈沖,所以設備比較簡單,實現(xiàn)起來方便。它還可根據(jù)需要連續(xù)地或有間隙地傳送數(shù)據(jù),對各字符間的間隙長度沒有限制。缺點:是在數(shù)據(jù)字符串中要加上起同步作用的起始位和停讓位,降低了有效數(shù)據(jù)位的傳送速率,僅適合于低速通信的場合。1.2同步傳送方式同步傳送是以許多字符或許多比特組織成的數(shù)據(jù)塊為傳輸單位,它是一種連續(xù)傳送數(shù)據(jù)的方式。在通信開始以后,發(fā)送端連續(xù)發(fā)送字符,接收端也連續(xù)接收字符,直到一個數(shù)據(jù)塊傳送結束。同步傳送時,字符與字符之間沒有間隙,也不用起始位和停止位,僅在數(shù)據(jù)塊開始時用同步字符SYNC來指示。2.同步通信以一個數(shù)據(jù)塊(幀)為傳輸單位,每個數(shù)據(jù)塊附加1個或2個同步字符,最后以校驗字符結束同步通信的數(shù)據(jù)傳輸效率和傳輸速率較高,但硬件電路比較復雜串行同步通信主要應用在網(wǎng)絡當中最常使用高級數(shù)據(jù)鏈路控制協(xié)議HDLC~~~~同步字符數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)校驗字符同步通信可以分為單同步字符方式和雙同步字符方式。同步字符可以由用戶約定,當然也可以采用用ASCII碼中規(guī)定的SYN代碼,即16H。按同步方式通信時,在發(fā)送時要插入同步字符,接收方檢測到同步字符時,即準備開始接收,因此,在硬件設備上需要有插入同步字符和相應的檢測手段,設備較復雜。在同步傳送時,無論接收或發(fā)送,都要求統(tǒng)一時鐘.即時鐘頻率和波特率一致。為了保證接收正確無誤,發(fā)送方除了傳送數(shù)據(jù)外,還要把時鐘信號同時傳送出去。同步傳送的優(yōu)點是傳送速率較高,可達56K波特或更高。6、1、2串行通信的制式按照數(shù)據(jù)流的方式可分為單工、半雙工和全雙工三種基本傳送方式1、單工傳送方式在接收器和發(fā)送器之間只有一條傳輸線,只能進行單一方向的傳輸發(fā)送器接收器數(shù)據(jù)流2、半雙工傳送方式當使用同一根傳輸線既作輸入又作輸出時,雖然數(shù)據(jù)可以在兩個方向上傳送,但通信雙方不能同時進行收發(fā)數(shù)據(jù)發(fā)送器接收器數(shù)據(jù)流3、全雙工傳送方式當數(shù)據(jù)的接收和發(fā)送分流,分別由兩根不同的傳輸線傳送時,通信雙方都能在同一刻時行發(fā)送和接收數(shù)據(jù)發(fā)送器接收器數(shù)據(jù)流示例6、1、3串行通信的調制解調調制(Modulating)把數(shù)字信號轉換為電話線路傳送的模擬信號解調(Demodulating)將電話線路的模擬信號轉換為數(shù)字信號調制解調器MODEM具有調制和解調功能的器件合制在一個裝置示例數(shù)據(jù)終端設備DTE——數(shù)據(jù)源和目的地數(shù)據(jù)通信設備DCE——使數(shù)據(jù)符合線路要求

6、1、4串行口的基本功能和硬件支持1、異步串行通信接口也稱為通用異步接受器/發(fā)送器UART。硬件由3部分組成:接收部分、發(fā)送部分和控制部分2)錯誤校驗奇偶校驗是最常用的一種校驗數(shù)據(jù)傳送錯誤的方法。UART常設置3種出錯標志:①奇偶校驗錯:接收方式在進行奇偶校驗時發(fā)現(xiàn)的錯誤,即“1”的個數(shù)不符合規(guī)定,則為奇偶校驗錯;②幀格式錯:接收方在收到字符時發(fā)現(xiàn)字符格式不符合規(guī)定,如缺少停止位,則說明幀格式出錯。③溢出錯:接收方在接收數(shù)據(jù)時,要將串行數(shù)據(jù)轉換為并行數(shù)據(jù)供CPU讀取。若接收方已經接收了第二個字符,但CPU還沒有將前一個字符取走,于是出現(xiàn)數(shù)據(jù)丟失,這就是溢出錯。2同步串行接口組成

FIFO(先入先出緩沖器):它是由多個寄存器組成的,因此發(fā)送時,cPu一次可以將幾個字符預先裝入。接收時,允許cPu—次連續(xù)取出幾個字符。輸出移位寄存器:它從發(fā)送FIFO取得并行數(shù)據(jù),以發(fā)送時鐘的速率串行發(fā)送數(shù)據(jù)信息。輸入移位寄存器:它從串行輸入線上以時鐘分離器提取出來的時鐘速率接收串行數(shù)據(jù)流,每接收完—’個字符數(shù)據(jù)將其送往接收FIFO。CRC發(fā)生器:它從發(fā)送數(shù)據(jù)流信息中獲得CRC校驗碼。CRC校驗器:它從接收數(shù)據(jù)流信息中提取cRc校驗碼,并與接收到的校驗碼相比較??偩€緩沖器:它是CPU與FIFO(發(fā)送和接收)交換數(shù)據(jù)的雙向緩沖器,用來傳送cPu對端口的控制信息和端口返回給cPu的狀態(tài)信息。時鐘分離器和鎖相環(huán):用來從串行輸入數(shù)據(jù)中提取時鐘信號以保證接收時鐘與發(fā)送時鐘的同頻同相。6、2串行通信接口標準6.2.1RS-232C接口標準美國電子工業(yè)協(xié)會EIA制定的通用標準串行接口1962年公布,1969年修訂1987年1月正式改名為EIA-232D設計目的是用于連接調制解調器現(xiàn)已成為數(shù)據(jù)終端設備DTE(例如計算機)與數(shù)據(jù)通信設備DCE(例如調制解調器)的標準接口可實現(xiàn)遠距離通信,也可近距離連接兩臺微機屬于網(wǎng)絡層次結構中的最低層:物理層1、RS-232C的電氣特性232C接口采用EIA電平高電平為+3V~+15V低電平為-3V~-15V實際常用±12V或±15V標準TTL電平高電平:+2.4V~+5V低電平:0V~0.4V相互轉換1.機械特性(1)連接器(Connector)常用二種:

①DB-25型,25腳,只用9個信號(2個數(shù)據(jù)線,6個控制線,1個地址),如圖所示。1234DB-25型連接器5678911132522201814DCDGNDDSRCTSRTSRXDTXD

②DB-9型9針,9針全用,如下圖。123456789DSRRTSCTSRIDCDRXDTXDDTRGNDDB-9型連接器2、主要引腳的功能TxD2:發(fā)送數(shù)據(jù)串行數(shù)據(jù)的發(fā)送端RxD3:接收數(shù)據(jù)串行數(shù)據(jù)的接收端RTS4:請求發(fā)送當數(shù)據(jù)終端設備準備好送出數(shù)據(jù)時,就發(fā)出有效的RTS信號,用于通知數(shù)據(jù)通信設備準備接收數(shù)據(jù)CTS5:清除發(fā)送(允許發(fā)送)當數(shù)據(jù)通信設備已準備好接收數(shù)據(jù)終端設備的傳送數(shù)據(jù)時,發(fā)出CTS有效信號來響應RTS信號RTS和CTS是數(shù)據(jù)終端設備與數(shù)據(jù)通信設備間一對用于數(shù)據(jù)發(fā)送的聯(lián)絡信號3、RS-232C標準信號線說明“發(fā)送”和“接收”都是站在DTE立場上DSR6:數(shù)傳機就緒表明Modem處于可使用的狀態(tài)SG7:信號地為所有的信號提供一個公共的參考電平DCD8:數(shù)據(jù)載體檢出當本地調制解調器接收到來自對方的載波信號時,該引腳向數(shù)據(jù)終端設備提供有效信號DTR20:數(shù)據(jù)終端就緒數(shù)據(jù)終端可使用。RI22:振鈴指示當調制解調器接收到對方的撥號信號期間,該引腳信號作為電話鈴響的指示、保持有效4、RS-232C總線接口的常用接法微機利用232C接口直接連接進行短距離通信。這種連接不使用調制解調器,所以被稱為零調制解調器(NullModem)連接微機利用232C接口連接調制解調器,用于實現(xiàn)通過電話線路的遠距離通信不使用聯(lián)絡信號的3線相連方式微機ATxDRxDGND微機B為了交換信息,TxD和RxD應當交叉連接程序中不必使RTS和DTR有效也不應檢測CTS和DSR是否有效

RxDTxD1)近距離通信的連接電話線MODEM微機2345678202223456782022MODEM23456782022數(shù)傳機就緒DSR數(shù)據(jù)終端就緒DTR發(fā)送數(shù)據(jù)TxD接收數(shù)據(jù)RxD請求發(fā)送RTS允許發(fā)送CTS信號地GND載波檢測DCD振鈴指示RI微機23456782022連接調制解調器2)具有MODEM設備的遠距離通信1.特點:

(1)采用平衡發(fā)送器和差動接收器,由于是雙線傳輸,大大提高了抗共模干擾的能力。因為是兩條傳輸線的電位差決定邏輯電平

AA′-BB′>200mV,表示“1”AA′-BB′<200mV,表示“0”(2)傳輸速率10Mbps(<15m時)

90Kbps(<1200m時)6.2.2、RS-422接口標準2.連接MC3487MC3486BTTLRS-422A電平平衡發(fā)送器差動接收器B′

AA′

6.2.3RS-485接口標準特點:(1)兼容RS-422A,擴展RS-422A的功能;(2)允許在電路中有多個發(fā)送器和允許一個發(fā)送器驅動多個接收器,多達32個收/發(fā)器;(3)抗干擾能力強,傳送距離遠,傳輸速率高。數(shù)傳率:100Kbps<1.2Km不用MODEM9.6Kbps<15Km10Mbps<15m9.4串行通信接口的任務及組成1、串行通信接口的基本任務實現(xiàn)數(shù)據(jù)格式化進行串-并轉換控制數(shù)據(jù)傳輸速率進行錯誤檢測進行TTL與EIA電平轉換提供符合EIA-RS-232C接口標準所要求的信號線2、串行通信接口電路的組成可編程串行接口芯片、波特率發(fā)生器、EIA與TTL電平轉換器以及地址譯碼電路組成。6.3可編程串行通信接口芯片8251A8251A的基本性能①可用于同步傳送和異步傳送;異步傳送:也可用5、6、7或8位來代表一個字符,自動為每個數(shù)據(jù)增加一個起始位,并可根據(jù)編程要求為每個數(shù)據(jù)添加1、1.5或2個停止位。同步傳送:可用5、6、7或8位來代表字符,可使用內部或外部字符同步、單同步或雙同步,自動插入同步字符,并自動控制檢測和處理同步字符。可設定奇偶校驗方式,也可以不設定②同步方式波特率為0~64K,異步方式波特率為0~19.2K;③具有全雙工、雙緩沖器發(fā)送和接收器;④具有奇偶、幀錯誤和溢出等檢測電路。

8251A的內部結構8251A由五個主要部分組成:接收器、發(fā)送器、數(shù)據(jù)總線緩沖器、調制控制部件和讀/寫控制部件組成。在8251A內部由內部數(shù)據(jù)總線實現(xiàn)這些部件之間的通信。接收器(s->p)接收緩沖器接收控制發(fā)送器(p->s)發(fā)送緩沖器發(fā)送控制TxDTxRDYTxETxCTxRDYSYNDETRxCRxD調制控制讀/寫控制CLKRESETC/DWRRDCSDTRDSRRTSCTS發(fā)送數(shù)據(jù)/命令緩沖器接收數(shù)據(jù)緩沖器狀態(tài)緩沖器⑴接收器接收器的功能是接收RxD引腳上送來的串行數(shù)據(jù),并按規(guī)定的格式把它轉換成為并行數(shù)據(jù),存放在數(shù)據(jù)總線緩沖器中。⑵發(fā)送器發(fā)送器接收CPU送來的并行數(shù)據(jù),經加工處理后由TxD引腳發(fā)出。⑶數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是三態(tài)雙向8位緩沖器,它使8251A與系統(tǒng)數(shù)據(jù)總線連接起來。它含有數(shù)據(jù)緩沖器和命令緩沖器。CPU可以對它讀/寫數(shù)據(jù),也可以寫入命令字。另外,執(zhí)行命令所產生的各種信息也是從數(shù)據(jù)總線緩沖器讀出。⑷調制控制部件產生或接收與MODEM的聯(lián)絡信號,實現(xiàn)對MODEM的控制。⑸讀/寫控制部件讀/寫控制邏輯對CPU輸出的控制信號進行譯碼以實現(xiàn)讀/寫功能。6、3、28251A的外部引腳8251A的接口信號可分為4組:與CPU的接口信號、狀態(tài)信號線、時鐘信號線和與外設(或調制解調器)接口的信號線。

RxRDYRDC/DCSWRTxCD7D6D5D4GNDRxD14131211109876543212715161718192021222324252628D3D2D1CLKD0VCCRxCDTRRESETRTSDSRTxETxDCTSSYDENT/BDTxRDY⑴與CPU接口信號①D7~D0②CS③C/D:控制/數(shù)據(jù)信號。為高電平,CPU對芯片寫入控制字或讀出狀態(tài)字;為低電平,對芯片讀寫的是數(shù)據(jù)。④WR⑤RD⑥RESET表

6-48251A讀/寫操作C/D功

能實驗板0001CPU從8251A讀數(shù)據(jù)308H0101CPU從8251A讀狀態(tài)309H0010CPU寫數(shù)據(jù)到8251A308H0110CPU寫命令到8251A309H1×××總線浮空(無操作)——CSRDWR⑵狀態(tài)信號①TxRDY(TransmitterReady):發(fā)送器準備好,高電平有效。如果該信號有效,就表示發(fā)送緩沖器已空,通知CPU可以向芯片送入新的數(shù)據(jù)。②TxE(TransmitterEmpty):發(fā)送緩沖器空,高電平有效。不管發(fā)送時是處于等待狀態(tài)還是發(fā)送狀態(tài),只要發(fā)送緩沖器中沒有再要發(fā)送的字符,這個信號就為高電平。當從CPU送入一個數(shù)據(jù)時,該信號被復位。③RxRDY(ReceiverReady):接收器準備好,高電平有效。如果RxRDY為高,表示接收緩沖器中已經有組裝好了的一個數(shù)據(jù)字符,通知CPU讀取數(shù)據(jù)。④SYNDET(SynchronousDetection)/BD(BreakDetection):同步檢測信號,雙功能引腳。⑶時鐘信號①TxC(TransmitterClock):發(fā)送器時鐘,由外部提供,用來控制8251A的發(fā)送數(shù)據(jù)的速率。在異步方式下,TxC的頻率可以是波特率的1、16或64倍;在同步方式下,TxC的頻率與數(shù)據(jù)速率相同。②RxC(ReceiverClock):接收器時鐘,由外部提供,用來控制8251A的接收數(shù)據(jù)的速率。其頻率的選擇與TxC相同。實際應用時,TxC和RxC往往連在一起,使用同一個時鐘源。③CLK:工作時鐘,由外部時鐘源提供,為芯片內部電路提供定時,并非是發(fā)送或接收數(shù)據(jù)的時鐘。⑷與外設的接口信號①TxD:發(fā)送數(shù)據(jù)線。②RxD:接收數(shù)據(jù)線。③DTR(DataTerminalReady):數(shù)據(jù)終端準備好,一個用于連接調制解調器的控制信號,輸出,低電平有效。④RTS(RequestTosend):請求發(fā)送,一個用于連接調制解調器的控制信號,輸出,低電平有效。用于通知Modem,CPU已準備好,可由命令字設置。⑤DSR(DataSetReady):數(shù)據(jù)設備準備好,一個用于連接調制解調器的控制信號,輸入,低電平有效。⑥CTS(ClearToSend):允許發(fā)送,一個用于連接調制解調器的控制信號,輸入,低電平有效。這是Modem對8251A的信號的響應,當其有效時,8251A方可發(fā)送數(shù)據(jù)。6.3.38251A的控制字和狀態(tài)字1控制字寄存器控制字寄存器分為方式控制字和命令控制字

1)方式控制字寄存器:用來指定8251A的通信工作方式以及在該方式下的數(shù)據(jù)格式,即指定8251A工作在異步方式還是同步方式,并按照其通信方式約定幀數(shù)據(jù)格式。S1S0EPPENL1L0B1B000同步方式01異步方式110異步方式1611異步方式64字符碼位數(shù)00=5位01=6位10=7位11=8位奇偶校驗X0=無校驗10=奇校驗11=偶校驗同步方式異步方式00雙同步,內同步01雙同步,外同步10單同步,內同步11單同步,外同步00不使用011位停止位101.5位…..112位停止位例1:設在異步通信中,數(shù)據(jù)格式采用8個數(shù)據(jù)位,2個停止位,奇校驗,波特率因子是16。方式選擇控制字為11011110B=DEH,把該命令寫入控制口,則程序段為:MOVDX,309H ;8251A控制口MOVAL,0DEH;異步方式選擇控制字OUTDX,AL例2:在同步通信中,如果幀數(shù)據(jù)格式為:字符長度8位,兩個同步字符,內同步,偶校驗.方式選擇控制字為00111100B=3CH。把該命令寫入控制口,則程序段為:

MOVDX,309H ;8251A控制口

MOVAL,3CH ;同步方式選擇控制字

OUTDX,AL2)工作命令控制字工作命令控制字又稱為工作命令字,用來指定8251A進行某種操作(如發(fā)送、接收、內部復位和同步字符檢測等)或處于某種工作狀態(tài),以便接收或發(fā)送數(shù)據(jù)。EHIRRTSERSBRKRxEDTRTxEN發(fā)送允許0=禁止1=允許數(shù)據(jù)終端就緒1=就緒0=無效允許接收0=禁止1=允許送間斷字符1=輸出連續(xù)空號0=正常錯誤標志復位1=FE(幀格式錯)、OE(溢出錯)、PE(奇偶校驗錯)的出錯標志復位0=不內部復位請求發(fā)送1=有效0=無效內部復位1=復位搜索同步字符1=搜索0=不搜索例3:如果要使8251A進行內部復位MOVDX,309H ;8251A控制口MOVAL,01000000B ;置D6=1OUTDX,AL例4:在異步通信時,設置8251A允許接收,同時允許發(fā)送MOVDX,309H ;8251A控制口MOVAL,00000101B ;置D2=1,置D0=1OUTDX,AL2、狀態(tài)字D7D6D5D4D3D2D1D0DSRSYNDETFEOEPETxERxRDYTxRDY數(shù)據(jù)設備就緒同步檢測幀格式錯溢出錯校驗錯發(fā)送器空接受準備好發(fā)送準備好例5:異步串行通信,采用查詢傳送方式,發(fā)送一個字節(jié),然后再接收一個字節(jié)

MOVDX,309H ;8251A控制口L1:

INAL,DX ;讀狀態(tài)字

ANDAL,01H ;檢查發(fā)送器是否就緒

JZL1 ;未就緒,轉L1等待

MOVAL,[SI] ;取發(fā)送字節(jié)

DECDX ;指向8251A數(shù)據(jù)口

OUTDX,AL INCDX ;指向8251A控制口L2:

INAL,DX ;讀狀態(tài)字

ANDAL,02H ;檢查接收器是否就緒

JZL2 ;未就緒,轉L2等待

DECDX ;指向8251A數(shù)據(jù)口

INAL,DX ;讀取接收的字節(jié)

MOV[DI],AL在接收程序中,若要檢查出錯信息MOVDX,309H ;8251A控制口

INAL,DX ;讀狀態(tài)字TESTAL,38H ;檢查D5D4D3三個位JNZERROR ;如果其中有一位為1,則出錯,轉錯誤處理程序例6:8251A的方式選擇控制字、工作命令字和狀態(tài)字這三者之間的關系方式控制字只是約定了通信雙方實行的通信方式(同步/異步)及其數(shù)據(jù)格式(數(shù)據(jù)位和停止位的長度,校驗特性,同步字符特性等)、傳送速率(波特率因子)等參數(shù),但并沒有規(guī)定數(shù)據(jù)傳送的方向是發(fā)送還是接收工作命令字來控制其發(fā)送與接受。何時才能發(fā)送/接收?這就取決于8251A的狀態(tài)字。只有當8251A進入發(fā)送/接收準備好的狀態(tài),才能真正開始數(shù)據(jù)的傳送。6.3.48251A的初始化流程①芯片復位以后,第一次向奇地址端口寫入的字節(jié)作為方式控制字進入方式寄存器。②如果方式控制字中規(guī)定了8251A工作在同步模式,那么,CPU接著往奇地址端口寫入的1個或2個字節(jié)就是同步字符,同步字符被送往同步字符寄存器。如果是雙同步方式,則會按先后分別寫入第一個同步字符寄存器和第二個同步字符寄存器。③在這之后,只要不是復位命令,不管是同步方式還是異步方式,由CPU向奇地址端口寫入的字節(jié)將作為工作命令字送到控制寄存器,而向偶地址寫入的字節(jié)將作為數(shù)據(jù)送到數(shù)據(jù)輸出緩沖寄存器。

例6-1異步方式下初始化程序8251A端口地址為300H~301H,

1)通信字符采用8位二進制數(shù)表示,帶1個偶校驗位,1個停止位。設波特率因子為64。則方式選擇控制字為01111111B=7FH。

2)允許發(fā)送和接收,使錯誤位全部復位

工作命令字為00010101B=15H。3)查詢8251狀態(tài)字,當接收準備就緒時,則從8251輸入數(shù)據(jù),否則等待MOVDX,301H ;8251A控制口MOVAL,7FH ;設置方式控制字:異步方式,波特率因子為64;8個數(shù)據(jù)位;OUTDX,AL ;偶校驗;1個停止位。MOVAL,15H ;設置工作命令字:使發(fā)送啟動;接收啟動;出錯標志復位;OUTDX,AL WAIT:INAL,DX;讀入狀態(tài)字

ANDAL,02H;接收準備好?

JZWAIT;接收未準備好則等待

MOVDX,300HINAL,DX;接收已準備好則讀入數(shù)據(jù)6、3、58251A應用實例試用8251A為8086CPU與CRT終端設計一個串行通信接口。要求異步傳送方式,數(shù)據(jù)格式為1位停止位,8位數(shù)據(jù)位,奇校驗;波特率因子為16CPU用查詢方式將顯示緩沖區(qū)(首地址為2000H)的字符”GOOD“送CRT顯示。1)硬件連接2)軟件設計DATASEGMENTORG2000HDISBUFDB47H,4FH,44H,0DH,OAH;COUNTDB$-DISBUFDATAENDS………MAINMOVDX,301HMOVAL,01011110BOUTDX,ALMOVAL,00110011BOUTDX,ALMOVBX,OFFSETDISBUFMOVCXCOUNTWAIT:MOVDX,301HINAL,DXTESTAL,80HJZWAITMOVDX,300HMOVAL,[BX]OUTDX,ALINCBXDECCXJNZWAITHLT3.兩臺微機之間進行雙機串行通信的舉例例【8-10】通過8251A實現(xiàn)兩臺微機相互通信的硬件連接圖如圖8-25所示。利用兩片8251A通過標準串行接口RS-232C實現(xiàn)兩臺8086微機之間的異步串行通信。設兩臺微機中8251A的命令端口地址為均3F9H,數(shù)據(jù)端口地址均為3F8H。

分析:設系統(tǒng)采用查詢方式控制串行通信的過程。初始化程序由兩部分組成:①將一方定義為發(fā)送方,發(fā)送方CPU查詢到TxRDY有效時,則CPU向8251A并行輸出一個待發(fā)送的字節(jié)數(shù)據(jù);②將對方定義為接收方,接收方CPU查詢到RxRDY有效時,則從8251A輸入一個已接收到的字節(jié)數(shù)據(jù),直到全部數(shù)據(jù)傳送完畢為止。START:MOV

DX,3F9HMOV

AL,7FH

溫馨提示

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

評論

0/150

提交評論