《微機(jī)原理與接口技術(shù)》課件-第9章8251串行通信_第1頁
《微機(jī)原理與接口技術(shù)》課件-第9章8251串行通信_第2頁
《微機(jī)原理與接口技術(shù)》課件-第9章8251串行通信_第3頁
《微機(jī)原理與接口技術(shù)》課件-第9章8251串行通信_第4頁
《微機(jī)原理與接口技術(shù)》課件-第9章8251串行通信_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

微機(jī)原理與接口技術(shù)第9章

可編程串行通信

接口芯片8251A本章內(nèi)容9.1串行通信概述

9.1.1并行通信與串行通信

9.1.2串行通信的基本概念

9.1.3串行通信接口標(biāo)準(zhǔn)

9.1.4串行通信接口典型結(jié)構(gòu)9.2可編程串行通信接口芯片8251A9.2.18251A的結(jié)構(gòu)和引腳

9.2.28251A的控制字及工作方式

9.2.38251A的初始化及應(yīng)用設(shè)計(jì)舉例本章要點(diǎn)了解并行通信與串行通信的區(qū)別了解串行通信的基本概念了解串行通信接口標(biāo)準(zhǔn)了解串行通信接口的基本組成了解可編程串行通信接口芯片8251A的結(jié)構(gòu)和引腳掌握可編程串行通信接口芯片8251A控制字含義掌握可編程串行通信接口芯片8251A初始化及應(yīng)用編程9.1串行通信概述9.1.1并行通信與串行通信CPU與外部的信息交換稱為通信(Communication),基本的通信方式有兩種:并行通信和串行通信。(1)并行通信數(shù)據(jù)在多條并行1位寬的傳輸線上同時由源傳送到目的。(2)串行通信數(shù)據(jù)在單條1位寬的傳輸線上,一位一位地按順序分時傳送。9.1串行通信概述9.1.1并行通信與串行通信(3)并行通信與串行通信的比較①從距離上看:并行通信適用于近距離的數(shù)據(jù)傳送,通常小于30米,而串行通信適用于遠(yuǎn)距離傳送,可以從幾米到數(shù)千公里。②從速度上看:在短距離內(nèi),并行接口的數(shù)據(jù)傳輸速度顯然比串行接口的傳輸速度高得多,另一方面串行和并行數(shù)據(jù)傳送速率與距離成反比。③從設(shè)備費(fèi)用上看:對遠(yuǎn)距離通信而言,串行通信的費(fèi)用顯然會低得多,另外串行通信還可利用現(xiàn)有的電話網(wǎng)絡(luò)來實(shí)現(xiàn)遠(yuǎn)程通信,降低了通信費(fèi)用。9.1串行通信概述9.1.2串行通信的基本概念(1)單工(Simplex):僅能進(jìn)行一個方向上的傳送,如圖9.1(a)所示。單工通信類似無線電廣播,電臺只能發(fā)送信號,收音機(jī)只能接收信號。1.傳送方式:按照數(shù)據(jù)流的方向,可以把串行通信分成三種基本的傳送模式:單工、半雙工和全雙工方式。9.1串行通信概述9.1.2串行通信的基本概念(2)半雙工(Half-Duplex):能交替地進(jìn)行雙向數(shù)據(jù)傳送,但兩設(shè)備之間只有一根傳輸線,因此兩個方向的數(shù)據(jù)傳送不能同時進(jìn)行,如圖9.1(b)所示。半雙工通信類似對講機(jī),某時刻一方發(fā)送另一方接收,雙方不能同時發(fā)送和接收。1.傳送方式:按照數(shù)據(jù)流的方向,可以把串行通信分成三種基本的傳送模式:單工、半雙工和全雙工方式。9.1串行通信概述9.1.2串行通信的基本概念(3)全雙工(Full-Duplex):兩設(shè)備之間有兩條傳輸線,能在兩個方向上同時進(jìn)行數(shù)據(jù)傳送,如圖所示。全雙工通信類似電話機(jī),雙方可以同時發(fā)送和接收。9.1串行通信概述9.1.2串行通信的基本概念(1)控制數(shù)據(jù)傳輸率的意義和方法2.?dāng)?shù)據(jù)傳輸有關(guān)的基本概念■串行通信時,要求雙方的傳輸速率嚴(yán)格一致。并在傳輸開始之前,要預(yù)先設(shè)定,否則,會發(fā)生錯誤。因此,對傳輸速率要進(jìn)行控制。■數(shù)據(jù)傳輸率的控制是通過波特率時鐘發(fā)生器和設(shè)置波特率因子來實(shí)現(xiàn)的,為此,要求波特率時鐘發(fā)生器產(chǎn)生一系列標(biāo)準(zhǔn)的波特率,供用戶選用。波特率時鐘發(fā)生器,有的包含在串行通信接口芯片中,如8250/16450/16550UART中設(shè)置了波特率時鐘發(fā)生器;有的需要單獨(dú)設(shè)計(jì),如825lUSART芯片中不包含波特率時鐘發(fā)生器,而需要利用82c54作為外加波特率時鐘發(fā)生器。9.1串行通信概述9.1.2串行通信的基本概念(2)波特率:(Baudrate)是每秒傳輸串行數(shù)據(jù)的位數(shù)。2.?dāng)?shù)據(jù)傳輸有關(guān)的基本概念位周期:是波特率的倒數(shù),也來表示傳輸速率,即傳輸1位數(shù)據(jù)所需的時間。例:串行通信的數(shù)據(jù)傳輸率為1200b/s,則每一個數(shù)據(jù)位的傳輸時間Td為波特率的倒數(shù):9.1串行通信概述9.1.2串行通信的基本概念(3)發(fā)送/接收時鐘:在發(fā)送時是以發(fā)送時鐘作為數(shù)據(jù)位的劃分界限,在接收時是以接收時鐘作為數(shù)據(jù)位的檢測標(biāo)準(zhǔn)。

2.?dāng)?shù)據(jù)傳輸有關(guān)的基本概念①發(fā)送時鐘:串行數(shù)據(jù)的發(fā)送由發(fā)送時鐘TXC控制,數(shù)據(jù)發(fā)送過程是:把并行的數(shù)據(jù)序列送入移位寄存器,然后通過移位寄存器由發(fā)送時鐘觸發(fā)進(jìn)行移位輸出,數(shù)據(jù)位的時間間隔可由發(fā)送時鐘周期來劃分。②接收時鐘:串行數(shù)據(jù)的接收是由接收時鐘RXC來檢測,數(shù)據(jù)接收過程是:傳輸線上送來的串行數(shù)據(jù)序列由接收時鐘作為移位寄存器的觸發(fā)脈沖,逐位進(jìn)入移位寄存器,即將串行數(shù)據(jù)序列,逐位移入移位寄存器后組成并行數(shù)據(jù)序列的過程。9.1串行通信概述9.1.2串行通信的基本概念(4)波特率因子:2.?dāng)?shù)據(jù)傳輸有關(guān)的基本概念為了提高發(fā)送/接收時鐘對串行數(shù)據(jù)中數(shù)據(jù)位的定位采樣頻率,避免或減少假啟動和噪聲干擾,發(fā)送/接收時鐘的頻率,一般都設(shè)置為波特串的整數(shù)倍,如1、16、32、64倍。并且,把這個波特串的倍數(shù)叫做波特率因子(factor),或波特率系數(shù)。

波特率、波特率因子和發(fā)送/接收時鐘頻率三者之間的關(guān)系:發(fā)送/接收時鐘頻率=波特率因子×波特率9.1串行通信概述9.1.2串行通信的基本概念(4)波特率因子:2.?dāng)?shù)據(jù)傳輸有關(guān)的基本概念例:已知某一串行接口電路的波特率為1200b/s,波特率因子為16b-1,求發(fā)送時鐘的頻率。發(fā)送時鐘的頻率=16b-1×1200b/s=19200Hz一般波特率因子取1,16或64b-1實(shí)際應(yīng)用中,通過編程可選擇各種不同的波特率因子,從而可以得到各種不同的數(shù)據(jù)傳輸率,十分靈活方便。發(fā)送/接收時鐘頻率=波特率因子×波特率9.1串行通信概述9.1.2串行通信的基本概念在串行通信中有兩種基本的通信方式:異步通信ASYNC(AsynchronousDataCommunication)和同步通信SYNC(SynchronousDataCommunication)。同步通信靠同步時鐘信號來實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接收,而異步通信是一種利用一幀字符中的起始位和停止位來完成收發(fā)同步的通信方式。3.同步通信與異步通信

9.1串行通信概述9.1.2串行通信的基本概念(1)異步通信ASYNC

:指通信中兩個字符的時間間隔是不固定的,而在同一字符中的兩個相鄰代碼間的時間間隔是固定的通信。3.同步通信與異步通信

■異步通信的特點(diǎn)是:以“幀(Frame)”為傳送單位,每一幀字符的傳送靠起始位來同步,數(shù)據(jù)傳輸?shù)乃俾剩úㄌ芈剩┦请p方事先約定好的,發(fā)送方和接收方的時鐘頻率不要求完全一樣,但不能超過一定的允許范圍?!霎惒酵ㄐ诺臄?shù)據(jù)格式如圖所示。9.1串行通信概述9.1.2串行通信的基本概念(2)同步通信SYNC:指不僅字符內(nèi)部位與位之間的傳輸是同步的,并且字符與字符之間的傳輸也是同步的。3.同步通信與異步通信

■同步傳輸?shù)奶攸c(diǎn)是:以數(shù)據(jù)塊(字符塊)為單位傳輸?shù)?,要求字符?nèi)部的位傳輸是同步的,字符與字符之間的傳輸也應(yīng)該是同步的,發(fā)送/接收兩端必須使用同一時鐘來控制數(shù)據(jù)塊傳輸時字符與字符、字符內(nèi)部位與位之間的定時?!鐾酵ㄐ诺臄?shù)據(jù)格式如圖所示。9.1串行通信概述9.1.2串行通信的基本概念異步通信方式的傳輸速率低,傳輸設(shè)備簡單,易于實(shí)現(xiàn);而同步通信方式的傳輸速率高,傳輸設(shè)備復(fù)雜,技術(shù)要求高。因此,異步通信一般用在數(shù)據(jù)傳輸時間不能確定、發(fā)送數(shù)據(jù)不連續(xù)、數(shù)據(jù)量較少和數(shù)據(jù)傳輸速率較低的場合;而同步通信則用在要求快速、連續(xù)傳輸大批量數(shù)據(jù)的場合。3.同步通信與異步通信

9.1串行通信概述9.1.2串行通信的基本概念■調(diào)制器(Modulator):把數(shù)字信號轉(zhuǎn)換為模擬信號?!鼋庹{(diào)器(Demodulator):把模擬信號轉(zhuǎn)換成數(shù)字信號。如圖9.4所示。其中,F(xiàn)SK(FrequencyShiftKeying)是一種常用的調(diào)制方法:它把數(shù)字信號的“1”與“0”調(diào)制成不同頻率(易于鑒別)的模擬信號。

4.信號的調(diào)制與解調(diào)9.1串行通信概述9.1.2串行通信的基本概念■數(shù)據(jù)終端設(shè)備(DataTerminalEquipment,DTE)是對屬于用戶所有聯(lián)網(wǎng)設(shè)備和工作站的統(tǒng)稱,它們是數(shù)據(jù)的源或目的地址,或者即是源又是目的。例如,數(shù)據(jù)輸入/輸出設(shè)備,通信處理機(jī)或各種大、中、小型計(jì)算機(jī)等。DTE可以根據(jù)協(xié)議來控制通信的功能。■數(shù)據(jù)通信設(shè)備(DataCommunicationEquipment,DCE),是對網(wǎng)絡(luò)設(shè)備的統(tǒng)稱,該設(shè)備為用戶設(shè)備提供入網(wǎng)的連接點(diǎn)。自動呼叫/應(yīng)答設(shè)備、調(diào)制解調(diào)器Modem和其他一些中間設(shè)備均屬DCE。5.數(shù)據(jù)終端設(shè)備和數(shù)據(jù)通信設(shè)備9.1串行通信概述9.1.2串行通信的基本概念(1)誤碼率的控制所謂誤碼率,是指數(shù)據(jù)經(jīng)傳輸后發(fā)生錯誤的位數(shù)與總傳輸位數(shù)之比。在計(jì)算機(jī)通信中,一般要求誤碼率達(dá)到10-6數(shù)量級。為減少誤碼串,應(yīng)從兩方面做工作:一方面從硬件和軟件著手對通信系統(tǒng)進(jìn)行可靠性設(shè)計(jì),以達(dá)到盡量少出差錯的目的;另一方面是對所傳輸?shù)男畔⒉捎脵z糾錯編碼技術(shù),以便及時發(fā)現(xiàn)和糾正傳輸過程出現(xiàn)的差錯。6.串行通信中的差錯控制9.1串行通信概述9.1.2串行通信的基本概念6.串行通信中的差錯控制(2)檢糾錯編碼方法的使用在實(shí)際應(yīng)用中,具體實(shí)現(xiàn)檢錯編碼的方法很多,常用的有奇偶檢驗(yàn)、循環(huán)冗余碼檢驗(yàn)(CRC)、海明碼校驗(yàn)、交叉奇偶校驗(yàn)等。而在串行通信中應(yīng)用最多的是奇偶校驗(yàn)和循環(huán)冗余碼校驗(yàn)。前者易于實(shí)現(xiàn),后者適于逐位出現(xiàn)的信號的運(yùn)算(3)錯誤狀態(tài)的分析與處理異步串行通信過程中常見的錯誤有奇偶檢驗(yàn)錯、溢出錯、幀格式錯。

9.1串行通信概述9.1.2串行通信的基本概念6.串行通信中的差錯控制(2)檢糾錯編碼方法的使用在實(shí)際應(yīng)用中,具體實(shí)現(xiàn)檢錯編碼的方法很多,常用的有奇偶檢驗(yàn)、循環(huán)冗余碼檢驗(yàn)(CRC)、海明碼校驗(yàn)、交叉奇偶校驗(yàn)等。而在串行通信中應(yīng)用最多的是奇偶校驗(yàn)和循環(huán)冗余碼校驗(yàn)。前者易于實(shí)現(xiàn),后者適于逐位出現(xiàn)的信號的運(yùn)(3)錯誤狀態(tài)的分析與處理異步串行通信過程中常見的錯誤有奇偶檢驗(yàn)錯、溢出錯、幀格式錯。(4)錯誤校驗(yàn)只在接收方進(jìn)行,并且是采用軟件方法進(jìn)行檢測。

9.1串行通信概述9.1.3串行通信接口標(biāo)準(zhǔn)1.RS-232C串行通信接口標(biāo)準(zhǔn)為了使通信能夠順利地進(jìn)行,通信雙方必須就通信的規(guī)則事前進(jìn)行約定,這種約定好的并在通信過程中雙方共同遵守的通信規(guī)則稱為通信協(xié)議。它包括收、發(fā)雙方的同步方式、數(shù)據(jù)格式、傳輸速率、差錯檢驗(yàn)方式及其糾正方式、通信進(jìn)程的控制等。目前使用最廣泛的串行物理接口標(biāo)準(zhǔn)RS-232C提供了一個利用公用電話網(wǎng)絡(luò)作為傳輸媒體,并通過調(diào)制解調(diào)器將遠(yuǎn)程設(shè)備連接起來的技術(shù)規(guī)定,它對串行接口電路中所使用信號名稱和功能、信號電平等作了統(tǒng)一的規(guī)定。259.1串行通信概述RS-232C串行通信接口標(biāo)準(zhǔn)規(guī)定如下:

比較的內(nèi)容EIATTL邏輯關(guān)系負(fù)邏輯正邏輯邏輯電平高(±15V)低(±5V)電壓擺幅大(-15V~+15V)小(0~5V)(1)機(jī)械特性RS-232C的機(jī)械特性規(guī)定使用一個25芯或9芯標(biāo)準(zhǔn)連接器。兩種不同的連接器,其引腳號的功能定義與排列也各不相同,使用時要特別注意。(2)電氣特性RS-232C的電氣特性規(guī)定邏輯“1”的電平為-15~-5V,邏輯“0”的電平為+5~+15V??梢姡琑S-232C采用的是負(fù)邏輯,并且邏輯電平幅值很高,擺幅很大。EIA與TTL之間的差異如下表所示。9.1串行通信概述1.RS-232C串行通信接口標(biāo)準(zhǔn)EIA與計(jì)算機(jī)或終端所采用的TTL邏輯電平和邏輯關(guān)系并不兼容。因此,在兩者之間通常需加電平轉(zhuǎn)換電路,如圖所示。MC1488和MC1489電路是專用于TTL和RS-232C之間的電平轉(zhuǎn)換器件。

9.1串行通信概述1.RS-232C串行通信接口標(biāo)準(zhǔn)(3)信號線功能特性

RS-232C的功能特性定義了25芯標(biāo)準(zhǔn)連接器中的20根信號線,其中2根地線,4根數(shù)據(jù)線,11根控制線,3根定時信號線,剩下的5根線做備用或未定義。下表給出了部分常用信號的定義。符號方向功能9針連接器引腳號25針連接器引腳號TXDDTE→DCE發(fā)送數(shù)據(jù)32RXDDCE→DTE接收數(shù)據(jù)23DTE→DCE請求發(fā)送74DCE→DTE發(fā)送允許85DCE→DTE數(shù)據(jù)設(shè)備就緒66GND信號地57DCE→DTE載波檢測18DTE→DCE數(shù)據(jù)終端就緒420DCE→DTE響鈴指示9229.1串行通信概述2.RS-485標(biāo)準(zhǔn)由于RS-232C接口標(biāo)準(zhǔn),采用單端發(fā)送和單端接收,易受共模干擾,所以直接傳輸距離短,傳輸速率低,且只能單點(diǎn)對單點(diǎn)通信。為了實(shí)現(xiàn)更大距離的直接傳輸和更高的傳輸速率,在RS-232C的基礎(chǔ)上進(jìn)行改進(jìn),制訂出新的接口標(biāo)準(zhǔn),如RS-422和RS-485標(biāo)準(zhǔn)。RS-485標(biāo)推,目前己在許多方面得到應(yīng)用,尤其是在不使用MODEM的情況下、多點(diǎn)對多點(diǎn)通信系統(tǒng)中,如工業(yè)集散分市式系統(tǒng)、商業(yè)POS收銀機(jī)、考勤機(jī),以及智能大樓的聯(lián)網(wǎng)中用得很多,是一個很有發(fā)展前途的串行通信接口標(biāo)準(zhǔn)。

9.1串行通信概述2.RS-485標(biāo)準(zhǔn)(1)RS-485接口標(biāo)準(zhǔn)的特點(diǎn)①由于采用差動發(fā)送/接收和雙絞線平衡傳輸,所以共模抑制比高、抗干擾能力強(qiáng)。因此,特別適合在干擾比較嚴(yán)重的環(huán)境下工作,如大型商場和車間使用。②傳輸速率高,可達(dá)10Mb/s(傳輸15m),傳輸信號擺幅小(200mV)。③傳播距離長,不使用MODEM,采用雙絞線,傳輸距離為1.2km(100kb/s)。④能實(shí)現(xiàn)多點(diǎn)對多點(diǎn)通信。9.1串行通信概述2.RS-485標(biāo)準(zhǔn)(2)RS-232C與RS-485的轉(zhuǎn)換■發(fā)送端:在接口電路的發(fā)送數(shù)據(jù)線TXD上加接平衡發(fā)送器MAX485(半雙工)或MAX491(全雙工),將單根數(shù)據(jù)信號線TXD轉(zhuǎn)換為差動信號線AA與BB,并通過兩根雙續(xù)線發(fā)送出去?!鼋邮斩耍涸诮邮斩思咏硬顒咏邮掌鱉AX485(半雙工)或MAX491(全雙工),將從兩根雙絞線AA與BB上傳來的差動信號轉(zhuǎn)換為單根數(shù)據(jù)信號,通過接口電路的接收數(shù)據(jù)線RXD接收進(jìn)來。9.1串行通信概述9.1.4串行通信接口典型結(jié)構(gòu)串行通信接口主要由控制寄存器、狀態(tài)寄存器、數(shù)據(jù)輸入寄存器和數(shù)據(jù)輸出寄存器四部分組成,其典型結(jié)構(gòu)及與CPU、外設(shè)連接情況如圖9.6所示。9.2可編程串行通信接口芯片8251AIntel8251A是可編程串行通信接口芯片,其主要特點(diǎn)如下:(1)可用于同步和異步通信。(2)接收、發(fā)送數(shù)據(jù)分別有各自的緩沖器,可以進(jìn)行全雙工通信。(3)提供與外部設(shè)備特別是調(diào)制解調(diào)器的聯(lián)絡(luò)信號,便于直接和通信線路連接。(4)每個字符的位數(shù)可以是5~8位,可以設(shè)定奇或偶校驗(yàn),也可不設(shè)校驗(yàn)。具有奇偶、溢出、幀錯誤等檢測電路。檢驗(yàn)位的插入、檢錯及剔除都由芯片自動完成。(5)異步通信時,停止位可選1位、1.5位或2位,波特率為0~19.2k波特,時鐘頻率可設(shè)為波特率的1、16或64倍。(6)同步通信時,波特率的范圍為0~56k波特。可設(shè)為單同步、雙同步或者外同步,同步字符可由用戶自行設(shè)定。9.2可編程串行通信接口芯片8251A9.2.18251A的結(jié)構(gòu)和引腳1)內(nèi)部結(jié)構(gòu)及性能8251A主要由數(shù)據(jù)總線緩沖器、接收器、發(fā)送器、讀/寫控制邏輯調(diào)制/解調(diào)控制邏輯電路組成。其內(nèi)部結(jié)構(gòu)圖如圖所示。9.2可編程串行通信接口芯片8251A9.2.18251A的結(jié)構(gòu)和引腳(2)引腳定義及功能8251A是一個采用NMOS工業(yè)制造,單一+5V電源,28引腳雙列直插式封裝的集成電路。其外部引腳圖如圖9.8所示。36讀/寫控制邏輯:接受CPU的下列控制信號RESET:復(fù)位信號使8251A進(jìn)入IDLE狀態(tài)CLK:8251A用來產(chǎn)生內(nèi)部的定時信號/WR:低有效,CPU對8251A進(jìn)行寫操作/RD:低有效,CPU對8251A進(jìn)行讀操作/CS:片選信號有效時才可對8251A進(jìn)行操作C/D:Control/Data,數(shù)據(jù)總線傳送的是控制信號,狀態(tài)字/數(shù)據(jù)RxD:接收數(shù)據(jù),輸入RxRDY:接收數(shù)據(jù)準(zhǔn)備好,輸出SYNDET:同步檢測/斷點(diǎn)檢測RxC:接收時鐘(同步:FreqofRxC=BaudRate)(異步:FreqofRxC=BaudRate*BaudFactor)TxD:發(fā)送數(shù)據(jù)TxRDY:發(fā)送準(zhǔn)備好TxE:發(fā)送器空TxC:發(fā)送器時鐘(同步:FreqofTxC=BaudRate)(異步:FreqofTxC=BaudRate*BaudFactorHandshakingsignalsbetweenCPUandModemDTR:數(shù)據(jù)終端準(zhǔn)備好DSR:數(shù)據(jù)裝置準(zhǔn)備好RTS:請求發(fā)送CTS:清除發(fā)送信號3738C/DRDWRCS端口選擇和操作0010CPU從8251A接收數(shù)據(jù)寄存器讀數(shù)據(jù)0100CPU向8251A發(fā)送數(shù)據(jù)緩沖器寫數(shù)據(jù)1010CPU從8251A狀態(tài)寄存器讀狀態(tài)1100CPU向8251A寫控制字(先方式字寄存器、后命令字寄存器)XXX1數(shù)據(jù)總線懸空8251A讀寫操作端口選擇表39RS232C接口波特率發(fā)生器&G1A7,A6,A5D7-D0/G2A/G2BCBAA4M/IOA3A2A0A1RESET/RD/WR/Y0/CSC/DRESET/RD/WRTxRDYTxERxRDYBRKDETRxDTxD/RxC/TxC外設(shè)80868251A74LS138A7A6A5=111時,G1=1A4=1時,/G2A=0M/IO=0時,/G2B=0此時,當(dāng)A3A2A0=000時,譯碼器/Y0輸出低電平,其它輸出高。8251A被選中。A1=1時,選中控制字,A7-A0=11110010=F2H。A1=0時,選中數(shù)據(jù)口,A7-A0=11100000=F0H。40編程流程10.2.28251A編程9.2可編程串行通信接口芯片8251A9.2.28251A的控制字及工作方式8251A是一個可編程串行通信接口芯片,所以它的工作方式和操作過程都可通過程序的方法進(jìn)行設(shè)定和控制。這是通過CPU向8251A的有關(guān)內(nèi)部寄存器寫入指定格式的控制信息來實(shí)現(xiàn)的。

8251A有兩組CPU可訪問的內(nèi)部寄存器,一組是數(shù)據(jù)寄存器,包括數(shù)據(jù)輸入寄存器和數(shù)據(jù)輸出寄存器;另一組是控制及狀態(tài)寄存器,包括方式選擇寄存器、操作命令寄存器和狀態(tài)寄存器。

我們把CPU寫入方式選擇寄存器的內(nèi)容稱為“方式選擇控制字”(或方式字),寫入操作命令寄存器的內(nèi)容稱為“操作命令控制字”(或命令字)。9.2可編程串行通信接口芯片8251A9.2.28251A的控制字及工作方式

1.方式字方式字用以確定8251A的通信方式(同步/異步)、校驗(yàn)方式(奇校驗(yàn)/偶校驗(yàn)/不校驗(yàn))、波特率等參數(shù)。它應(yīng)在復(fù)位后寫入,且只需寫入一次。同步和異步方式字設(shè)置不同。(1)同步方式下的方式字格式9.2可編程串行通信接口芯片8251A(1)同步方式下的方式字格式例:要求8251A作為外同步通信接口,數(shù)據(jù)位8位,兩個同步字符,偶校驗(yàn),寫出其方式字。解:01111100B=7CH9.2可編程串行通信接口芯片8251A9.2.28251A的控制字及工作方式(2)異步方式下的方式字格式9.2可編程串行通信接口芯片8251A(2)異步方式下的方式字格式例:要求8251A作為異步通信接口,波特率為64,數(shù)據(jù)位8位,奇校驗(yàn),兩個停止位,寫出其方式字。解:11011111B=DFH9.2可編程串行通信接口芯片8251A9.2.28251A的控制字及工作方式

2.命令字命令字直接讓8251A實(shí)現(xiàn)某種操作或進(jìn)入規(guī)定的工作狀態(tài),它只有在設(shè)定了方式字后,才能由CPU寫入。方式字和命令字本身無特征標(biāo)志,使用相同的端口地址,8251A是根據(jù)寫入先后次序來區(qū)分這兩者的:先寫入的為方式字,后寫入的為命令字。8251A的命令字格式如下圖所示。9.2可編程串行通信接口芯片8251A9.2.28251A的控制字及工作方式3.狀態(tài)字

CPU可在8251A工作過程中利用輸入指令(IN指令)讀取當(dāng)前8251A的狀態(tài)字,從而可以檢測接口和數(shù)據(jù)傳輸?shù)墓ぷ鳡顟B(tài)。8251A的狀態(tài)字格式如下圖所示。9.2可編程串行通信接口芯片8251A■

異步方式下8251A的初始化過程如下:9.2.38251A的初始化及應(yīng)用設(shè)計(jì)舉例1.8251A的初始化像所有的可編程器件一樣,8251A在使用前也要進(jìn)行初始化。對8251A的初始化編程,必須在復(fù)位操作之后。(1)寫入方式字;(2)寫入命令字。■

同步方式下8251A的初始化過程如下:(1)寫入方式字;(2)寫入同步字符(1個或2個);(3)寫入命令字。9.2可編程串行通信接口芯片8251A例9.1若已知8251A的控制口地址為51H,數(shù)據(jù)口地址為50H,按要求對8251A初始化,寫出初始化程序段。(設(shè)在此之前已對8251A進(jìn)行了復(fù)位操作)(1)異步方式,波特率因子為64,每字符7個數(shù)據(jù)位,偶校驗(yàn),2位停止位。(2)允許發(fā)送和接收,使?fàn)顟B(tài)寄存器中的3個錯誤標(biāo)志位復(fù)位,使數(shù)據(jù)終端準(zhǔn)備好信號輸出低電平。(3)查詢8251A狀態(tài)字,接收準(zhǔn)備就緒時,從8251A輸入數(shù)據(jù),否則等待。9.2.38251A的初始化及應(yīng)用設(shè)計(jì)舉例

2.8251A初始化編程舉例

(1)異步方式下的初始化編程舉例分析:根據(jù)題目要求,方式字如下:9.2可編程串行通信接口芯片8251A例9.1若已知8251A的控制口地址為51H,數(shù)據(jù)口地址為50H,按要求對8251A初始化,寫出初始化程序段。(設(shè)在此之前已對8251A進(jìn)行了復(fù)位操作)(1)異步方式,波特率因子為64,每字符7個數(shù)據(jù)位,偶校驗(yàn),2位停止位。(2)允許發(fā)送和接收,使?fàn)顟B(tài)寄存器中的3個錯誤標(biāo)志位復(fù)位,使數(shù)據(jù)終端準(zhǔn)備好信號輸出低電平。(3)查詢8251A狀態(tài)字,接收準(zhǔn)備就緒時,從8251A輸入數(shù)據(jù),否則等待。9.2.38251A的初始化及應(yīng)用設(shè)計(jì)舉例

2.8251A初始化編程舉例

(1)異步方式下的初始化編程舉例分析:根據(jù)題目要求,命令字如下:狀態(tài)字:查D1(RXRDY)是否等于1。9.2可編程串行通信接口芯片8251A初始化程序如下:MOVDX,51H;8251A控制端口地址

MOVAL,FBH;寫入方式字

OUTDX,ALMOVAL,17H;寫入命令字

OUTDX,ALWT:MOVDX,51H;8251A控制端口地址

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

TESTAL,02H;檢查RXRDY=1?JZWT;RXRDY≠1,等待

MOVDX,50H;8251A數(shù)據(jù)端口地址

INAL,DX;讀數(shù)據(jù)9.2可編程串行通信接口芯片8251A9.2.38251A的初始化及應(yīng)用設(shè)計(jì)舉例

2.8251A初始化編程舉例

(2)同步方式下的初始化編程舉例分析:例9.2若已知8251A的控制口地址為51H,數(shù)據(jù)口地址為50H,按要求對8251A初始化,寫出初始化程序段。(設(shè)在此之前已對8251A進(jìn)行了復(fù)位操作)(1)同步方式,兩個同步字符,內(nèi)同步,同步字符為16H,每字符7個數(shù)據(jù)位,偶校驗(yàn)。(2)允許發(fā)送和接收,使?fàn)顟B(tài)寄存器中的3個錯誤標(biāo)志位復(fù)位,開始搜索同步字符,并通知調(diào)制解調(diào)器,數(shù)據(jù)終端設(shè)備已準(zhǔn)備就緒。根據(jù)題目要求,方式字如下:9.2可編程串行通信接口芯片8251A9.2.38251A的初始化及應(yīng)用設(shè)計(jì)舉例

2.8251A初始化編程舉例

(2)同步方式下的初始化編程舉例分析:例9.2若已知8251A的控制口地址為51H,數(shù)據(jù)口地址為50H,按要求對8251A初始化,寫出初始化程序段。(設(shè)在此之前已對8251A進(jìn)行了復(fù)位操作)(1)同步方式,兩個同步字符,內(nèi)同步,同步字符為16H,每字符7個數(shù)據(jù)位,偶校驗(yàn)。(2)允許發(fā)送和接收,使?fàn)顟B(tài)寄存器中的3個錯誤標(biāo)志位復(fù)位,開始搜索同步字符,并通知調(diào)制解調(diào)器,數(shù)據(jù)終端設(shè)備已準(zhǔn)備就緒。根據(jù)題目要求,命令字如下:9.2可編程串行通信接口芯片8251A初始化程序如下:MOVDX,51H;8251A控制端口地址MOVAL,38H;寫入方式字OUTDX,ALMOVAL,16H;寫入兩個同步字符,同步字符為16HOUTDX,ALOUTDX,ALMOVAL,97H;寫入命令字OUTDX,AL9.2可編程串行通信接口芯片8251A9.2.38251A的初始化及應(yīng)用設(shè)計(jì)舉例3.8251A應(yīng)用設(shè)計(jì)編程舉例(1)利用8251A實(shí)現(xiàn)與終端的串行通信終端通常包括鍵盤和顯示器兩部分,所以計(jì)算機(jī)與終端之間需進(jìn)行雙向數(shù)據(jù)通信,即一方面要把使用者在鍵盤上敲入的命令和數(shù)據(jù)輸入給計(jì)算機(jī),以供計(jì)算機(jī)執(zhí)行和處理;另一方面還要把計(jì)算機(jī)的執(zhí)行結(jié)果和運(yùn)行狀態(tài)輸出給顯示器,以供使用者閱讀分析。以8251A為主要部件構(gòu)成的計(jì)算機(jī)串行接口與終端的連接如圖9.13所示。用8251A實(shí)現(xiàn)與終端的通信

例9.3若已知8251A的控制口地址為D1H,數(shù)據(jù)口地址為D0H,采用查詢方式編寫8251A通信控制程序(包括初始化程序),實(shí)現(xiàn)把單個字符“J”(ASCII碼為4AH)由串行接口發(fā)送到顯示器去。(設(shè)在此之前已對8251A進(jìn)行了復(fù)位操作)。其中8251A通信設(shè)置如下:1)異步方式,波特率因子為16,每字符7位數(shù)據(jù)位,奇校驗(yàn),1位停止位2)允許發(fā)送和接收,使?fàn)顟B(tài)寄存器中的3個錯誤標(biāo)志位復(fù)位,和輸出低電平。9.2可編程串行通信接口芯片8251A9.2.38251A的初始化及應(yīng)用設(shè)計(jì)舉例3.8251A應(yīng)用設(shè)計(jì)編程舉例(1)利用8251A實(shí)現(xiàn)與終端的串行通信①傳送單個字符到顯示器的程序程序如下:BEGIN:MOVDX,D1H;8251A控制端口地址

MOVAL,5AH;寫入方式字

OUTDX,AL;

MOVAL,37H;寫入命令字

OUTDX,ALSTATE:MOVDX,D1H;8251A控制端口地址

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

TESTAL,01H;測試狀態(tài)位TXRDY=1?JZSTATE;發(fā)送未準(zhǔn)備好,則繼續(xù)查詢

MOVDX,D0H;8251A數(shù)據(jù)端口地址

MOVAL,4AH;輸出字符J的ASCII碼4AHOUTDX,AL;發(fā)送數(shù)據(jù)

HLT;發(fā)送完暫停例9.4若已知8251A的控制口地址為D1H,數(shù)據(jù)口地址為D0H,采用查詢方式編寫8251A通信控制程序(包括初始化程序),實(shí)現(xiàn)使串行接口接收從終端(鍵盤)輸入的一個字符,并立即將同一個字符回送到終端(顯示器)去。(設(shè)在此之前已對8251A進(jìn)行了復(fù)位操作)。其中8251A通信設(shè)置如下:1)異步方式,波特率因子為16,每字符7位數(shù)據(jù)位,奇校驗(yàn),1位停止位。2)允許發(fā)送和接收,使?fàn)顟B(tài)寄存器中的3個錯誤標(biāo)志位復(fù)位,和輸出低電平。9.2可編程串行通信接口芯片8251A9.2.38251A的初始化及應(yīng)用設(shè)計(jì)舉例3.8251A應(yīng)用設(shè)計(jì)編程舉例(1)利用8251A實(shí)現(xiàn)與終端的串行通信②字符回送程序程序如下:

MOVDX,D1H;8251A控制端口地址

MOVAL,5AH;寫入方式字

OUTDX,AL;

MOVAL,37H;寫入命令字

OUTDX,ALSTATE1:MOVDX,D1H;8251A控制端口地址

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

TESTAL,02H;測試狀態(tài)位RXRDY=1?JZSTATE1;接收未準(zhǔn)備好,則繼續(xù)查詢

MOVDX,D0H;8251A數(shù)據(jù)端口地址

INDX,AL;接收數(shù)據(jù)

MOVAL,BL;接收數(shù)據(jù)暫存BL寄存器中STATE2:MOVDX,D1H;8251A控制端口地址

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

TESTAL,01H;測試狀態(tài)位TXRDY=1?JZSTATE2;發(fā)送未準(zhǔn)備好,則繼續(xù)查詢

MOVDX,D0H;8251A數(shù)據(jù)端口地址

MOVAL,BL;將剛接收到的字符回送給終端

OUTDX,AL;

JMPSTATE1;繼續(xù)準(zhǔn)備接收

HLT;接收完暫停利用8251A實(shí)現(xiàn)相距較近(不超過15m)的兩臺微機(jī)相互通信,其硬件連接圖如圖9.14所示。9.2可編程串行通信接口芯片8251A9.2.38251A的初始化及應(yīng)用設(shè)計(jì)舉例3.8251A應(yīng)用設(shè)計(jì)編程舉例(2)利用8251A實(shí)現(xiàn)雙機(jī)通信■甲、乙兩機(jī)可進(jìn)行半雙工或全雙工通信。■

CPU與接口之間可按查詢方式或中斷方式進(jìn)行數(shù)據(jù)傳送。■為了避免把方式字寫入其他寄存器,可以在初始化開始之前,向控制端口先后寫入三個“00H”,一個“40H”。前面的三個“00H”是無效命令,用來跨過方式字和同步字符階段,最后一個“40H”作為命令字寫入控制端口,對8251A進(jìn)行內(nèi)部復(fù)位。此后再對8251A進(jìn)行正式的初始化編程。9.2可編程串行通信接口芯片8251A9.2.38251A的初始化及應(yīng)用設(shè)計(jì)舉例3.8251A應(yīng)用設(shè)計(jì)編程舉例(2)利用8251A實(shí)現(xiàn)雙機(jī)通信例9.5若已知8251A的控制口地址為D1H,數(shù)據(jù)口地址為D0H,采用查詢方式編寫8251A實(shí)現(xiàn)半雙工雙機(jī)通信的初始化及控制程序。其中8251A通信設(shè)置如下:(1)異步方式,波特率因子為16,每字符7位數(shù)據(jù)位,偶校驗(yàn),1位停止位。(2)使?fàn)顟B(tài)寄存器中的3個錯誤標(biāo)志位復(fù)位,發(fā)送端允許發(fā)送,發(fā)送請求有效;接收端允許接收,數(shù)據(jù)終端準(zhǔn)備好有效。9.2可編程串行通信接口芯片8251A9.2.38251A的初始化及應(yīng)用設(shè)計(jì)舉例3.8251A應(yīng)用設(shè)計(jì)編程舉例(2)利用8251A實(shí)現(xiàn)雙機(jī)通信發(fā)送端程序如下:START:MOVDX,D1H;8251A控制端口地址

MOVAL,00H;向8251A連續(xù)三次寫入00HOUTDX,AL;

OUTDX,AL;

OUTDX,AL;

MOVAL,40H;向8251A寫入一次40H,內(nèi)部復(fù)位

OUTDX,AL;

MOVAL,7AH;寫入方式字

OUTDX,AL;

MOVAL,31H;寫入命令字

OUTDX,ALMOVSI,發(fā)送數(shù)據(jù)塊首地址

MOVCX,發(fā)送數(shù)據(jù)塊字節(jié)數(shù)WAIT:MOVDX,D1H;8251A控制端口地址

溫馨提示

  • 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

提交評論