第9章+串行通信和可編程接口芯片8251A.ppt_第1頁
第9章+串行通信和可編程接口芯片8251A.ppt_第2頁
第9章+串行通信和可編程接口芯片8251A.ppt_第3頁
第9章+串行通信和可編程接口芯片8251A.ppt_第4頁
第9章+串行通信和可編程接口芯片8251A.ppt_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、微型計(jì)算機(jī)原理與接口技術(shù),第十章串行通信和可編程接口芯片8251A,10-1串行通信的基本概念 10-2可編程串行通信接口芯片8251A 10-3EIA RS-232C串行口和8251A應(yīng)用舉例 10-4串行同步數(shù)據(jù)通信協(xié)議,10-1串行通信的基本概念,并行通信 數(shù)據(jù)各位同時(shí)傳送; 優(yōu)點(diǎn):速度快; 缺點(diǎn):使用通信線多; 適用場合:適用于近距離傳送數(shù)據(jù)的場合。 串行通信 要傳送的數(shù)據(jù)或信息必須按照一定的格式編碼,然后再單根線上,按一位接一位的先后順序進(jìn)行傳送。發(fā)送完一個(gè)字符后,再發(fā)送第二個(gè)。接收數(shù)據(jù)時(shí),每次從單根線上一位接一位地接收信息,再把它們拼成一個(gè)字符,送給CPU作進(jìn)一步處理。 適用場合:

2、適用于遠(yuǎn)程終端或遠(yuǎn)距離地中央處理機(jī)交換數(shù)據(jù);有些外設(shè)本身需要串行方式通信。,一、數(shù)據(jù)傳送方向,單工,半雙工,全雙工,單工數(shù)據(jù)線僅僅能在一個(gè)方向上傳輸數(shù)據(jù),兩個(gè)站之間進(jìn)行 通信時(shí),一邊只能發(fā)送數(shù)據(jù),另一邊只能接收數(shù)據(jù)。,半雙工方式下,數(shù)據(jù)可在兩個(gè)設(shè)備之間向任一個(gè)方向傳輸,但 兩個(gè)設(shè)備之間只有一根傳輸線,故同一時(shí)間內(nèi)只能在一個(gè)方向 上傳輸數(shù)據(jù),不能同時(shí)收發(fā)。,全雙工方式下,對數(shù)據(jù)的兩個(gè)傳輸方向采用不同的通路。,一、數(shù)據(jù)傳送方向,單工,半雙工,全雙工,T,R,T,T,R,R,T,T,R,R,二、串行傳送的兩種基本工作方式,異步方式,同步方式,空閑位,起始位,數(shù)據(jù)位(58位),校驗(yàn)位,停止位,空閑位,

3、起始位,第n+1個(gè)字符,一幀 第n個(gè)字符,三、串行傳送速率,波特率 波特率:每秒鐘內(nèi)所傳送數(shù)據(jù)的位數(shù)稱為波特率,單位為波特(Bd)。它是傳送每一位信息所用時(shí)間的倒數(shù)。 常用波特率(Baud Rate)來表示數(shù)據(jù)傳送的速率。,例如:如果一個(gè)串行字符由1個(gè)起始位,7個(gè)數(shù)據(jù)位,1個(gè)奇偶校驗(yàn)位和1個(gè)停止位等10個(gè)數(shù)位構(gòu)成,每秒鐘傳送120個(gè)字符,則數(shù)據(jù)傳送的波特率為:,10位/字符120字符/秒1200位/秒1200波特,傳送每位信息所占用的時(shí)間為:1秒/12000.833毫秒,四、串行接口芯片UART和USART,常用的通用串行接口芯片有兩類 (1)僅用于異步通信的接口芯片,通用異步收發(fā)器UART

4、(2)既可以工作于異步方式,又可以工作于同步方式,通用同步異步收發(fā)器USART,五、調(diào)制解調(diào)器,調(diào)制解調(diào)器:能將數(shù)字信號轉(zhuǎn)換成音頻信號及將音頻信號恢復(fù)成數(shù)字信號的器件。 調(diào)制的主要形式有幅度調(diào)制、頻率鍵移FSK、相位鍵移PSK和多路載波等幾種。,五、調(diào)制解調(diào)器,幅度調(diào)制 用調(diào)幅正弦波表示 數(shù)字1和數(shù)字0,頻率鍵移調(diào)制 用兩種不同頻率(FSK) 表示數(shù)字1和數(shù)字0,第十章串行通信和可編程接口芯片8251A,10-1串行通信的基本概念 10-2可編程串行通信接口芯片8251A 10-3EIA RS-232C串行口和8251A應(yīng)用舉例 10-4串行同步數(shù)據(jù)通信協(xié)議,10-2可編程串行通信接口芯片82

5、51A,Intel 8251A是一種通用的同步異步接收發(fā)送器(USART)芯片。它作為一種外圍器件,可通過編程選用某一種串行通信技術(shù)。8251A具有獨(dú)立的發(fā)送器和接收器因此,它能夠以單工、半雙工或全雙工方式進(jìn)行通信,并且提供一些基本的控制信號,可以方便地與MODEM連接。 1.8251A的編程結(jié)構(gòu) 2.8251A的功能結(jié)構(gòu) 3.8251A的發(fā)送和接收 4.8251A對外信號,8251A的編程結(jié)構(gòu)和外部連接,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,數(shù)據(jù)輸入緩沖寄存器和數(shù)據(jù)輸出緩沖寄存器使用同一個(gè)端口地址,但實(shí)際上作為兩個(gè)端口,一個(gè)為輸入端口,一個(gè)為輸出端口。 接收移位寄存器將到達(dá) 端口的串行數(shù)據(jù)接收

6、以后進(jìn)行移位,變成8位并行數(shù)據(jù),傳送到數(shù)據(jù)輸入緩沖寄存器,然后通過數(shù)據(jù)總線傳送到CPU,這就是數(shù)據(jù)通過8251A輸入到計(jì)算機(jī)的過程。 在計(jì)算機(jī)通過8251A輸出數(shù)據(jù)的過程中,CPU通過數(shù)據(jù)總線將數(shù)據(jù)送到8251A的數(shù)據(jù)輸出緩沖寄存器,再傳輸?shù)桨l(fā)送移位寄存器。移位寄存器用移位的辦法并行數(shù)據(jù)變成串行數(shù)據(jù),然后,從 端送往外部設(shè)備。,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,命令字寄存器用來控制8251A的工作,它的內(nèi)容是由程序設(shè)置的。 狀態(tài)寄存器則在8251A的工作過程中為執(zhí)行程序提供一定的狀態(tài)信息。 方式字寄存器的內(nèi)容決定了8251A到底工作在同步模式還是工作在異步模式,還決定了所接收和發(fā)送的字符的格

7、式,模式寄存器的內(nèi)容也是由執(zhí)行程序設(shè)置的。 8251A的2個(gè)同步字符寄存器用來容納同步方式中所用的同步字符。,返回,8251A的內(nèi)部工作原理,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,接收緩沖器: 對外引腳為 。 功能從 引腳上接收串行數(shù)據(jù),并按照相應(yīng)的格式將串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)。 接收控制電路: (1)在異步方式下,芯片復(fù)位后,先檢測輸入信號中的有效“1”,一旦檢測到,就接著尋找有效的低電平來確定啟動(dòng)位; (2)消除假啟動(dòng)干擾; (3)對接收到的信息進(jìn)行奇偶校驗(yàn),并根據(jù)校驗(yàn)結(jié)果建立相應(yīng)的狀態(tài)位; (4)檢測停止位,并按照檢測結(jié)果,建立狀態(tài)位。,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,發(fā)送緩沖器: 把

8、來自CPU的并行數(shù)據(jù)加上相應(yīng)的控制信息,然后轉(zhuǎn)換成串行數(shù)據(jù)從 引腳發(fā)出去。 功能上看,對應(yīng)于編程結(jié)構(gòu)圖中的發(fā)送移位寄存器。 發(fā)送控制電路: (1)在異步方式下,為數(shù)據(jù)加上起始位、校驗(yàn)位和停止位; (2)在同步方式下,插入同步字符,在數(shù)據(jù)中插入校驗(yàn)位。,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,數(shù)據(jù)總線緩沖器: 用來把8251A和系統(tǒng)數(shù)據(jù)總線相連,在CPU執(zhí)行輸入/輸出指令期間,由數(shù)據(jù)總線緩沖器發(fā)送和接收數(shù)據(jù)。 控制字、命令字和狀態(tài)信息也通過數(shù)據(jù)總線緩沖器傳輸。 從功能上看,數(shù)據(jù)總線緩沖器是編程結(jié)構(gòu)中數(shù)據(jù)輸入緩沖器、數(shù)據(jù)輸出緩沖器、控制寄存器和命令寄存器的綜合。,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,讀

9、寫控制邏輯電路: 用來配合數(shù)據(jù)總線緩沖器工作。 (1)接收寫信號 ,并將來自數(shù)據(jù)總線的數(shù)據(jù)和控制字寫入8251A (2)接收讀信號 ,并將數(shù)據(jù)或狀態(tài)字從8251A送往數(shù)據(jù)總線 (3)接收控制/數(shù)據(jù)信號 ,將此信號和讀/寫信號合起來通知8251A,當(dāng)前讀/寫的是數(shù)據(jù)還是控制字、狀態(tài)字; (4)接收時(shí)鐘信號CLK,完成8251A的內(nèi)部定時(shí) (5)接收復(fù)位信號RESET,使8251A處于空閑狀態(tài),一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,調(diào)制解調(diào)控制電路 在進(jìn)行遠(yuǎn)程通信的時(shí),要用調(diào)制解調(diào)器將串行接口送出的數(shù)字信號變?yōu)槟M信號,再發(fā)送出去,接收端則要用解調(diào)器將模擬信號變?yōu)閿?shù)字信號,再由串行接口送往計(jì)算機(jī)主機(jī)

10、。 在全雙工通信情況下,每個(gè)收發(fā)站都要連接調(diào)制解調(diào)器。 有了調(diào)制解調(diào)控制電路,就提供了一組通用的控制信號,使得8251A可以直接和調(diào)制解調(diào)器連接。,返回,8251A的發(fā)送和接收,(1)異步接收方式 A.當(dāng)8251A工作在異步方式并準(zhǔn)備接收一個(gè)字符時(shí),就在 線上檢測低電平。 B.若無字符信息, 上為高電平。 C.8251A將 線上檢測到的低電平作為起始位,并且啟動(dòng)接收控制電路中的一個(gè)內(nèi)部計(jì)數(shù)器進(jìn)行計(jì)數(shù),計(jì)數(shù)脈沖為8251A的接收器的時(shí)鐘脈沖。 D.當(dāng)計(jì)數(shù)進(jìn)行到相應(yīng)于半個(gè)數(shù)位傳輸時(shí)間時(shí),又對 線進(jìn)行檢測,如果此時(shí)仍為低電平,則確認(rèn)收到一個(gè)有效的起始位;若再次測得 為高電平,8251A會(huì)將剛才檢測的

11、信號看成是干擾脈沖。,(2)異步發(fā)送方式 A.當(dāng)程序置 和 為有效后,便開始發(fā)送過程。 B.在發(fā)送時(shí),發(fā)送器為每個(gè)字符加上1個(gè)起始位,并且按照編程要求加上奇/偶校驗(yàn)位以及1個(gè)、1.5個(gè)或2個(gè)停止位。 C.數(shù)據(jù)及起始位、校驗(yàn)位、停止位總是在發(fā)送時(shí)鐘 的下降沿時(shí)從8251A發(fā)出。 D.數(shù)據(jù)傳輸?shù)牟ㄌ芈蕿榘l(fā)送時(shí)鐘頻率的1、1/16、1/64,具體決定于編程時(shí)給出的波特率系數(shù)。,8251A的發(fā)送和接收,(3)同步接收方式 A.在同步接收方式下,8251A首先搜索同步字符。即檢測 線,每當(dāng) 線上出現(xiàn)一個(gè)數(shù)據(jù)位時(shí),就把它接收下來并把它送入移位寄存器移位。 B.對移位寄存器中的內(nèi)容與同步字符寄存器的內(nèi)容進(jìn)行

12、比較,若兩者不相等,則接收下一位數(shù)據(jù),并且重復(fù)上述比較過程。當(dāng)兩個(gè)寄存器的內(nèi)容相等,8251A的 引腳升為高電平,以告示同步字符已經(jīng)找到,同步已經(jīng)實(shí)現(xiàn)。 C.雙同步字符方式,就要在測得輸入移位寄存器的內(nèi)容與第一個(gè)同步寄存器的內(nèi)容相同后,再繼續(xù)檢測此后的輸入移位寄存器的內(nèi)容是否與第二個(gè)同步字符寄存器的內(nèi)容相同。,8251A的發(fā)送和接收,D.外同步情況下, 端一出現(xiàn)高電平,8251A就會(huì)立即脫離對同步字符的搜索過程,只要高電平能維持一個(gè)接收時(shí)鐘周期,8251A就認(rèn)為已經(jīng)完成同步。 E.實(shí)現(xiàn)同步后,接收器和發(fā)送器之間開始進(jìn)行數(shù)據(jù)的同步傳輸。接收器利用時(shí)鐘信號對 線進(jìn)行采樣,并把收到的數(shù)據(jù)位送到移位寄

13、存器中。每當(dāng)收到的數(shù)據(jù)位達(dá)到規(guī)定的一個(gè)字符的數(shù)位時(shí),就將移位寄存器的內(nèi)容送到輸入緩沖寄存器,并在 引腳上發(fā)出一個(gè)信號,表示收到一個(gè)字符。,8251A的發(fā)送和接收,8251A的發(fā)送和接收,(4)同步發(fā)送方式 A.在同步發(fā)送方式下,也要在程序置 和 為有效后,才能開始發(fā)送過程。 B.發(fā)送過程開始后,發(fā)送器先根據(jù)編程要求發(fā)送一個(gè)或者兩個(gè)同步字符,然后發(fā)送數(shù)據(jù)塊。 C.在發(fā)送數(shù)據(jù)塊時(shí),發(fā)送器會(huì)根據(jù)編程要求對數(shù)據(jù)塊中的每個(gè)數(shù)據(jù)加上奇/偶校驗(yàn)位。若沒有該校驗(yàn)位,則不添加。 D.在同步發(fā)送時(shí),會(huì)遇到這樣的情況,即8251A正在發(fā)送數(shù)據(jù),而CPU卻來不及提供新的數(shù)據(jù)給8251A,這時(shí),8251A的發(fā)送器會(huì)自動(dòng)

14、插入同步字符。從而滿足在同步發(fā)送時(shí)不允許數(shù)據(jù)之間存在空隙的要求。,返回,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,8251A的對外信號分為兩組,一組是8251A和CPU之間的信號;一組是8251A和外部設(shè)備(或調(diào)制解調(diào)器)之間的信號。,8251A和CPU之間的連接信號,同步方式下為SYNDET,8251A和CPU之間的連接信號,(1)片選信號 為低電平時(shí),8251A被選中。反之, 為高電平時(shí),8251A未被選中,8251A的數(shù)據(jù)線處于高阻狀態(tài)。 (2)數(shù)據(jù)信號 :8251A有8根數(shù)據(jù)線,通過它們,8251A與系統(tǒng)的數(shù)據(jù)總線相連。實(shí)際上,數(shù)據(jù)線上不只傳輸一般的數(shù)據(jù),而且也傳輸CPU對8251A的編程命

15、令和8251A送往CPU的狀態(tài)信息。 (3)讀/寫控制信號 :讀信號。 為低電平時(shí),用來通知8251A,CPU當(dāng)前正在從8251A讀取數(shù)據(jù)或者狀態(tài)信息。 :寫信號 。 為低電平時(shí),用來通知8251A,CPU當(dāng)前正在往8251A寫入數(shù)據(jù)或者控制信息。,8251A和CPU之間的連接信號,:控制/數(shù)據(jù)信號。 也是CPU送往8251A的信號,用來區(qū)分當(dāng)前讀/寫的是數(shù)據(jù)還是控制信息或狀態(tài)信息。,的編碼和對應(yīng)的操作,8251A和CPU之間的連接信號,注意: (a)8251A只有兩個(gè)連續(xù)的端口。 數(shù)據(jù)輸入端口和數(shù)據(jù)輸出端口合用同一個(gè)偶地址; 狀態(tài)端口和控制端口合用同一個(gè)奇地址。 (b)在8086系統(tǒng)中,利用

16、地址線 來區(qū)分奇地址端口和偶地址端口。 為低電平時(shí),選中偶地址端口; 為高電平時(shí),選中奇地址端口。 8086/8088系統(tǒng)中,將地址線 和8251A的 端相連。,8251A和CPU之間的連接信號,(4)收發(fā)聯(lián)絡(luò)信號 :發(fā)送器準(zhǔn)備好信號。輸出。用來告訴CPU,8251A已經(jīng)準(zhǔn)備好發(fā)送一個(gè)字符。 具體地說,當(dāng) 為低電平而 為高電平,并且發(fā)送緩沖器為空時(shí), 為高電平。于是,CPU便得知,當(dāng)前8251A已作好發(fā)送準(zhǔn)備,因而CPU可以往8251A傳輸一個(gè)數(shù)據(jù)。 :發(fā)送器空信號。輸出。 當(dāng)發(fā)送器空信號有效時(shí),表示8251A發(fā)送器中并行到串行轉(zhuǎn)換器空。實(shí)際上指示一個(gè)發(fā)送動(dòng)作地完成。當(dāng)8251A從CPU得到一

17、個(gè)字符時(shí), 便成為低電平。 在同步方式時(shí),不允許字符之間有空隙,但是CPU有時(shí)候來不及往8251A中輸出字符,此時(shí) 變?yōu)楦唠娖?,發(fā)送器在輸出線上插入同步字符,從而填補(bǔ)了傳輸間隙。,8251A和CPU之間的連接信號,:接收器準(zhǔn)備好信號。 表明當(dāng)前8251A已經(jīng)從外部設(shè)備或調(diào)制解調(diào)器接收到一個(gè)字符,正等待CPU取走。 :同步檢測信號,只用于同步方式。 該引腳即可工作在輸入狀態(tài),又可以工作在輸出狀態(tài),這決定于8251A工作在內(nèi)同步情況還是工作在外同步情況,而這兩種情況又決定于8251A地初始化編程。 當(dāng)8251A工作在內(nèi)同步時(shí), 作為輸出端,如果8251A檢測到了所要求地同步字符,則 便變?yōu)楦唠娖剑?/p>

18、用來表明8251A當(dāng)前已經(jīng)達(dá)到同步。當(dāng)8251A工作在外同步情況時(shí), 作為輸入端,從這個(gè)輸入端進(jìn)入的一個(gè)正跳變,會(huì)使8251A在 的下一個(gè)下降沿時(shí)開始裝配字符。這種情況下, 的高電平狀態(tài)最少要維持一個(gè) 周期,以便遇上 的下一個(gè)下降沿。,8251A與外部設(shè)備之間的連接信號,8251A與外部設(shè)備之間的連接信號,(1)收發(fā)聯(lián)絡(luò)信號 :數(shù)據(jù)終端準(zhǔn)備好信號 由8251A送往外設(shè)的,CPU通過命令可以使 變?yōu)榈碗娖郊从行щ娖?,從而通知外部設(shè)備,CPU當(dāng)前已經(jīng)準(zhǔn)備就緒。 一般與調(diào)制解調(diào)器相連,置為低電平后,從而通知調(diào)制解調(diào)器,CPU已經(jīng)準(zhǔn)備就緒。,:數(shù)據(jù)終端準(zhǔn)備好信號 有效時(shí),表示MODEN已經(jīng)準(zhǔn)備好數(shù)據(jù),

19、實(shí)際上它是對 的回答信號。,8251A與外部設(shè)備之間的連接信號,:請求發(fā)送信號 是8251A送往外設(shè)的信號。低電平有效,CPU可以通過編程命令使 變?yōu)橛行щ娖?,以表示CPU已經(jīng)準(zhǔn)備好發(fā)送。 該信號向MODEM發(fā)出請求發(fā)送信號。,:清除請求發(fā)送信號 是對 的響應(yīng)信號,它是由外設(shè)送往8251A的,當(dāng) 為低電平時(shí),8251A才能執(zhí)行發(fā)送操作。,8251A與外部設(shè)備之間的連接信號,(2)數(shù)據(jù)信息 :發(fā)送器數(shù)據(jù)信號端 用來輸出數(shù)據(jù)。CPU送往8251A的并行數(shù)據(jù)被轉(zhuǎn)變?yōu)榇袛?shù)據(jù)后,通過 送往外設(shè)。 :接收器數(shù)據(jù)信息端 用來接收外設(shè)送來的串行數(shù)據(jù),數(shù)據(jù)進(jìn)入8251A后被轉(zhuǎn)變?yōu)椴⑿蟹绞健?除此之外,8251

20、A還有電源端、接地端和3個(gè)時(shí)鐘端。,二、8251A的編程,1.關(guān)于8位接口芯片和16位數(shù)據(jù)總線的連接問題 采取的措施是將 連接到8251A的接口芯片上。 這樣一來,從CPU這邊來說,端口地址都是偶地址,所以傳輸信息時(shí),信息總是出現(xiàn)在低8位數(shù)據(jù)線上;而從端口這邊來說,端口地址中既有奇地址,也有偶地址,而且是連續(xù)的,也滿足了許多8位接口芯片對端口地址的要求。,二、8251A的編程,2.8251A的初始化 對使用8251A初始化的約定主要有3個(gè): (1)芯片復(fù)位以后,第一次用奇地址端口寫入的值作為方式字進(jìn)入方式字寄存器。 (2)如果方式字中規(guī)定了8251A工作在同步模式,那么,CPU接著往奇地址端口

21、輸出的1個(gè)或2個(gè)字節(jié)就是同步字節(jié),同步字節(jié)被寫入同步字符寄存器。如果有兩個(gè)同步字符,則會(huì)按先后分別寫入第一同步字符寄存器和第二同步字符寄存器。 (3)這之后,只要不是復(fù)位命令,不管是同步模式還是異步模式,由CPU用奇地址端口寫入的值將作為控制字送到控制寄存器,而用偶地址端口寫入的值將作為數(shù)據(jù)送到數(shù)據(jù)輸出緩沖寄存器。,復(fù)位操作,輸出方式字,同步方式,輸出第一個(gè)同步字符,輸出第二個(gè)同步字符,雙同步,輸出命令字,復(fù)位,傳送數(shù)據(jù),輸入狀態(tài)字,有錯(cuò),傳送完,出錯(cuò) 處理,Y,N,Y,N,N,Y,Y,Y,N,N,二、8251A的編程,3.方式字,01 異步方式1 10 異步方式16 11 異步方式64,00

22、 字符長度為5位 01 字符長度為6位 10 字符長度為7位 11 字符長度為8位,x0 無奇偶校驗(yàn)位 01 奇校驗(yàn) 11 偶校驗(yàn),00 無效 01 1個(gè)停止位 10 1.5個(gè)停止位 11 2個(gè)停止位,異步方式方式字格式,二、8251A的編程,與異步方式相同,1 SYNDET為輸入(外同步) 0 SYNDET為輸出(內(nèi)同步),1 單字符同步 0 雙字符同步,同步方式方式字格式,二、8251A的編程,在同步模式中,接收和發(fā)送的波特率分別和 引腳, 引腳上的輸入時(shí)鐘的頻率相等。 在異步模式中,要用方式字寄存器中的兩個(gè)最低位來確定波特率因子,此時(shí) 和 的頻率、波特率因子和波特率之間有如下關(guān)系:,時(shí)鐘

23、頻率波特率因子波特率,二、8251A的編程,4.命令字格式,1 允許發(fā)送 0 禁止發(fā)送,1 使 引腳輸出低 電平,1 允許接收 0 禁止接收,1 使 線變低,發(fā)送空白字符 0 正常工作,1 使錯(cuò)誤標(biāo)志PE,OE,FE均復(fù)位,1 使 引腳輸出低電平,1 內(nèi)部復(fù)位,使8251A回到方式選擇格式,1 啟動(dòng)搜索同步字符,二、8251A的編程,5.狀態(tài)字格式,發(fā)送器準(zhǔn)備好,同引腳含義,奇偶校驗(yàn),溢出錯(cuò)誤,幀錯(cuò)誤(只用于異步方式),數(shù)據(jù)裝置準(zhǔn)備好,三、8251A初始化編程舉例,1.異步方式初始化程序 在實(shí)際使用中,為了確保送方式字和命令字之前8251A已正確復(fù)位 (1)應(yīng)先向8251A的控制口連續(xù)寫入3個(gè)

24、全0 (2)再向該端口送入一個(gè)使 位等于1的復(fù)位控制字(40H) 從而使得8251A可以可靠復(fù)位。,三、8251A初始化編程舉例,對8251A的控制口進(jìn)行一次寫入操作后,需要有寫恢復(fù)時(shí)間。 常用的方法有 (1)宏指令 (2)調(diào)用子程序 KKK: OUTDX,AL PUSHCX MOVCX,0002 ABC: LOOPABC POPCX RET,REVTIMEMACRO MOVCX,02 D0:LOOPD0 ENDM,三、8251A初始化編程舉例,例題1:8251A工作于異步方式,波特率系數(shù)為16,具有7個(gè)數(shù)據(jù)位,1個(gè)停止位,有偶校驗(yàn),控制口地址為3F2H,寫恢復(fù)時(shí)間程序?yàn)镽EVTIME,則對8

25、251A進(jìn)行初始化的程序?yàn)椋?三、8251A初始化編程舉例,MOV DX,3F2H;控制口 MOV AL,00H OUT DX,AL;向控制口寫入“0” REVTIME;延時(shí),等待寫操作 OUT DX,AL;向控制口寫入第二個(gè)“0” REVTIME;延時(shí) OUT DX,AL;向控制口寫入第三個(gè)“0” REVTIME;延時(shí) MOV AL,40H;對命令字中的復(fù)位位置1 OUT DX,AL;寫入復(fù)位字 REVTIME;延時(shí) MOV AL,01111010B;方式字 OUT DX,AL;寫入方式字 REVTIME;延時(shí) MOV AL,00010101B;命令字:允許接收發(fā)送數(shù)據(jù),清除錯(cuò);誤標(biāo)志 OU

26、T DX,AL;寫入命令字,三、8251A初始化編程舉例,例題2: 8251A工作于異步方式,波特率系數(shù)為16,具有8個(gè)數(shù)據(jù)位,1個(gè)停止位,有偶校驗(yàn),控制口地址為DAH,則對8251A進(jìn)行初始化的程序?yàn)椋?三、8251A初始化編程舉例,INIT XOR AX,AX;AX清零 MOV CX,0003 MOV DX,00DAH OUT1:CALL KKK LOOP OUT1 MOV AL,40H CALL KKK MOV AL,4EH CALL KKK MOV AL,27H CALL KKK KKK:OUT DX,AL PUSH CX MOV CX,0002 ABC:LOOP ABC POP CX

27、 RET,往8251A的控制端口DAH送3個(gè)00,往8251A的控制端口DAH送1個(gè) 40H,使得它復(fù)位,往8251A的控制端口DAH設(shè)置 方式字,使得它為異步模式,波特 率系數(shù)為16,8位數(shù)據(jù),1位停止,往8251A的控制端口DAH設(shè)置命令字 使發(fā)送器和接收器啟動(dòng)。,下面是輸出子程序,將AL中的數(shù)據(jù)輸出到 DX指出的端口,等待輸出動(dòng)作完成,恢復(fù)CX的內(nèi)容,并返回,三、8251A初始化編程舉例,1.同步方式初始化程序 (1)同步字符常用ASCII字符集中的16H作為收發(fā)雙方同意的一個(gè)同步字符。 (2)寫入同步字符后,再對8251A的控制口寫入一個(gè)命令字,選通發(fā)送器和接收器,允許芯片對從 引腳上

28、送來的數(shù)據(jù)位搜索同步字符。,三、8251A初始化編程舉例,例題1:8251A的控制口地址為3F2H,寫恢復(fù)延時(shí)程序?yàn)镽EVTIME,如要求8251A工作于同步方式,采用雙同步字符、奇校驗(yàn)、數(shù)據(jù)位為7位,則對8251A寫入復(fù)位字以后的初始化程序?yàn)?三、8251A初始化編程舉例,;先向控制口寫入3個(gè)0,再送復(fù)位字40H MOVDX,3F2H;控制口 MOVAL,00011000B;方式字;雙同步,內(nèi)同;步,奇校驗(yàn),7個(gè)數(shù)據(jù)位 OUTDX,AL;送方式字 REVTIME;延時(shí) MOVAL,16H OUTDX,AL;送入第一個(gè)同步字符 REVTIME;延時(shí) OUTDX,AL;送入第二個(gè)同步字符 REV

29、TIME MOVAL,10010101B;命令字:啟動(dòng)搜索同步;字符,錯(cuò)誤標(biāo)志復(fù)位,;允許收發(fā) OUTDX,AL,三、8251A初始化編程舉例,利用狀態(tài)字進(jìn)行編程 下面程序段先對8251A進(jìn)行初始化,然后對狀態(tài)字進(jìn)行測試,以便輸入字符。本程序段可用來輸入80個(gè)字符。 規(guī)定控制口和狀態(tài)口為52H,數(shù)據(jù)輸出和輸入口為50H。字符輸入后,放在BUFFER標(biāo)號所指的內(nèi)存緩沖區(qū)中。 程序的內(nèi)循環(huán)中,對狀態(tài)寄存器的狀態(tài)位 不斷測試,看8251A是否已經(jīng)從外設(shè)接收到一個(gè)字符。若已經(jīng)接收到,則將它讀入并送到內(nèi)存緩沖區(qū)。,三、8251A初始化編程舉例,程序?qū)顟B(tài)寄存器的出錯(cuò)指示位進(jìn)行檢測,如果發(fā)現(xiàn)傳輸過程中有奇

30、/偶校驗(yàn)錯(cuò)誤、超越錯(cuò)誤和幀格式錯(cuò)誤,則停止輸入,并調(diào)用出錯(cuò)處理子程序。 出錯(cuò)處理子程序只要有兩方面: (1)打印出錯(cuò)信息 (2)清除狀態(tài)寄存器中的出錯(cuò)指示位,出錯(cuò)指示位的清除可以通過設(shè)置控制字來實(shí)現(xiàn)。,三、8251A初始化編程舉例,兩點(diǎn)簡要說明: (1)字符接收過程本身會(huì)自動(dòng)使 置1。 (2)當(dāng)輸入的字符少于8位時(shí),那么數(shù)據(jù)位從右邊對齊,8251A會(huì)在余下的高位上自動(dòng)填0。,三、8251A初始化編程舉例,MOVAL,0FAH OUT52H,AL MOVAL,35H OUT52H,AL MOVDI,0 MOVCX,80 BEGIN:INAL,52H TESTAL,02H JZBEGIN INAL

31、,50H MOVDX,OFFSET BUFFER MOVDX+DI,AL INCDI INAL,52H TESTAL,38H JNZERROR LOOPBEGIN JMPEXIT ERROR:CALLERR_OUT EXIT:,設(shè)置方式字,異步模式,波特率系數(shù)為16,用7個(gè)數(shù)據(jù)位,2個(gè)停止位,偶校驗(yàn),設(shè)置控制字,使發(fā)送器和接收器啟動(dòng),并清除出錯(cuò)指示位,變址寄存器初始化,共收取80個(gè)字符,讀取狀態(tài)字,測試 是否為1,如為0,表示未 收到字符,故繼續(xù)讀取狀態(tài)字并測試,讀取字符,將字符送入緩沖區(qū),修改緩沖區(qū)指針,讀取狀態(tài)字,測試有無幀格式錯(cuò)誤,奇/偶校驗(yàn)錯(cuò)誤和超越錯(cuò)誤,若有,則轉(zhuǎn)向出錯(cuò)處理程序,如沒有錯(cuò)誤,則再接收下一字符,如輸入滿80個(gè)字符,則結(jié)束,調(diào)用出錯(cuò)處理程序,第十章串行通信和可編程接口芯片8251A,10-1串行通信的基本概念 10-2可編程串行通信接口芯片8251A 10-3EIA RS-232C串行口和8251A應(yīng)用舉例 10-4串行同步數(shù)據(jù)通信協(xié)議,10-3EIA RS-232C串行口和8251A應(yīng)用舉例,RS-232C標(biāo)準(zhǔn)具體規(guī)定: (1)信號電平 通常使用12和12作為RS-232C電平。 需要專門的電路來進(jìn)行電平轉(zhuǎn)換 (2)接插件規(guī)格 25芯D型

溫馨提示

  • 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)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論