微機(jī)原理上課可編程串行接口8251a_第1頁
微機(jī)原理上課可編程串行接口8251a_第2頁
微機(jī)原理上課可編程串行接口8251a_第3頁
微機(jī)原理上課可編程串行接口8251a_第4頁
微機(jī)原理上課可編程串行接口8251a_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

5.5可編程串行接口8251A一、概述二、8251A的基本性能三、8251A的基本工作原理四、8251A的對(duì)外信號(hào)五、8251A的初始化六、8251A的編程舉例一、概述串行通信涉及的幾個(gè)問題串行接口串行通信的物理標(biāo)準(zhǔn)(一)串行通信涉及的幾個(gè)問題1.全雙工方式和半雙工方式

全雙工——接口對(duì)接收信息和發(fā)送信息使用不同的通路。

半雙工——輸入過程和輸出過程使用同一通路。2.同步方式和異步方式

同步方式——將許多字符組成一個(gè)信息組,在每組信息的開始加上同步字符。

異步方式——兩個(gè)字符之間的傳輸間隔是任意的,在每個(gè)字符的前后都要用一些數(shù)位來作為分隔位。異步通信時(shí)的標(biāo)準(zhǔn)數(shù)據(jù)格式:起始位5到8個(gè)字符位1到0的跳變作為新字符的開始最低位最高位可選的奇偶校驗(yàn)位字符之間的間隔1,11/2或2個(gè)停止位標(biāo)識(shí)符(二)串行接口

狀態(tài)寄存器

控制寄存器數(shù)據(jù)輸入寄存器數(shù)據(jù)輸出寄存器串行輸入/并行輸出并行輸入/串行輸出CSA0數(shù)據(jù)總線收發(fā)器聯(lián)絡(luò)信號(hào)邏輯中斷請(qǐng)求讀寫地址譯碼來自地址總線控制串行輸入串行輸出發(fā)送時(shí)鐘接收時(shí)鐘(三)串行通信的物理標(biāo)準(zhǔn)1.波特率

指每秒鐘傳輸?shù)臄?shù)據(jù)位數(shù)。2.RS-232-C標(biāo)準(zhǔn)

該標(biāo)準(zhǔn)對(duì)信號(hào)電平標(biāo)準(zhǔn)、控制信號(hào)的定義作了規(guī)定。接口MAX232或FC232TTL輸入TTL輸出RS-232-C輸入RS-232-C輸出RS-232-C對(duì)信號(hào)電平的規(guī)定:RS-232-C接口采用負(fù)邏輯規(guī)定邏輯電平,將-5V~-15V規(guī)定為邏輯“1”,+5V~+15V規(guī)定為邏輯“0”,因此TTL電平與RS-232-C的電平需要轉(zhuǎn)換。常用串行通信轉(zhuǎn)發(fā)器FC232,或MAX232實(shí)現(xiàn)。兩臺(tái)計(jì)算機(jī)通過電話網(wǎng)相連接的結(jié)構(gòu):RS-232-C控制著DCE和DTE之間的通信。近距離的計(jì)算機(jī)通信可直接通過RS-232-C連接,此時(shí)可認(rèn)為電纜是虛擬的傳輸器DCE。DTE:(DataTerminalEquipment)DCT:(DataCommunicationEquipment)公用電話網(wǎng)MODEMDCEMODEMDCE主機(jī)ADTE主機(jī)ADTE二、8251A的基本性能(1)既可以工作在同步方式也可以工作在異步方式。(2)同步方式:5~8位/字符;可以用外部同步,也可以內(nèi)部自動(dòng)檢測同步字符而實(shí)現(xiàn)內(nèi)同步;可以自動(dòng)插入同步字符。(3)異步方式:5~8位/字符;時(shí)鐘速率為波特率的1、16、64倍;能選擇1位、1.5位或2位停止位;可檢查假啟動(dòng)位;可產(chǎn)生中止字符;也能自動(dòng)檢測和處理中止字符。二、8251A的基本性能(4)波特率:同步方式下,0~64K,異步方式下,0~19.2K。(5)完全雙工作,具有雙緩沖的發(fā)送器和接收器。(6)具備奇偶校驗(yàn)、溢出和幀錯(cuò)誤檢測等功能電路。(7)全部輸入輸出電路是TTL電平。三、8251A的基本工作原理 1、編程結(jié)構(gòu)

2、功能結(jié)構(gòu)

3、8251A的發(fā)送和接收1.編程結(jié)構(gòu)

模式寄存器同步字符寄存器同步字符寄存器

控制寄存器接收移位寄存器數(shù)據(jù)輸入緩沖器數(shù)據(jù)輸出緩沖器發(fā)送移位寄存器狀態(tài)寄存器8286(可選)延遲譯碼電路IO/MABDBCBCLKD7~0RDWRCSRESETRxRDYTxRDYC/DVccGNDRxDTxETxDDSRDTRCTSRTSSYNDETRxCTxC2.功能結(jié)構(gòu)數(shù)據(jù)總線緩沖器

讀/寫控制邏輯電路

調(diào)制/

解調(diào)控制電路

發(fā)送緩沖器并串轉(zhuǎn)換

接收緩沖器串并轉(zhuǎn)換接收控制電路發(fā)送控制電路RESETCLKC/DRDWRCSD7~D0DSRDTRCTSRTSTxDTxRDYTxETxCRxDRxRDYRxCSYNDET四、8251A的對(duì)外信號(hào)對(duì)外信號(hào)分兩組:8251A和CPU之間的信號(hào)8251A和外部設(shè)備之間的信號(hào)首先看一下8251A的引腳圖。8251A的引腳圖:123456789101112131428272625242322212019181716158251AD2D3RXDGNDD4D5D6D7TXCWRCSC/DRDRXRDYD1D0VccRXCDTRRTSDSRRESETCLKTXDTXEMPTYCTSSYNDET/DBTXRDY8251A與CPU及外設(shè)的連接:8251A8086譯碼電路CLKD7~D0TxRDYTxERxRDYSYNDETRESETM/IOABA1CSC/DRDWR外設(shè)計(jì)數(shù)器/定時(shí)器TxCRxCDTRDSRRTSCTSTxDRxD1.8251A和CPU之間的連接信號(hào)8251A和CPU之間的連接信號(hào)可分4類:

(1)片選信號(hào)!CS

(2)數(shù)據(jù)信號(hào)D7~D0

(3)讀/寫控制信號(hào)!RD、!WR、C/!D!CSC/!D!RD!WR具體的操作0001CPU從8251A輸入數(shù)據(jù)0010CPU往8251A輸出數(shù)據(jù)0101CPU讀取8251A的狀態(tài)0110CPU往8251A寫入控制命令(4)收發(fā)聯(lián)絡(luò)信號(hào)TxRDY—發(fā)送器準(zhǔn)備好信號(hào)。用來告訴CPU,8251A已經(jīng)準(zhǔn)備好發(fā)送一個(gè)字符。TxE—發(fā)送器空信號(hào)。用來表示此時(shí)8251A發(fā)送器中并行到串行轉(zhuǎn)換器空,它實(shí)際上指示了一個(gè)發(fā)送動(dòng)作的完成。RxRDY—接收器準(zhǔn)備好信號(hào)。用來表示當(dāng)前8251A已經(jīng)從外部設(shè)備或調(diào)制解調(diào)器接收到一個(gè)字符,正等待CPU來取走。(4)收發(fā)聯(lián)絡(luò)信號(hào)SYNDET—同步檢測信號(hào)。SYNDET工作在輸入還是輸出狀態(tài),取決于8251A工作在內(nèi)同步情況還是外同步:內(nèi)同步:SYNDET作輸出端,如果8251A檢測到了所要求的同步字符,則SYNDET便變?yōu)楦唠娖剑脕肀砻?251A當(dāng)前已經(jīng)達(dá)到同步。

外同步:SYNDET作輸入端,從這個(gè)輸入端進(jìn)入的一個(gè)正跳變,會(huì)使8251A在RxC的下一個(gè)下降沿時(shí)開始裝配字符。2.8251A與外設(shè)之間的連接信號(hào)8251A與外設(shè)之間的連接信號(hào)分兩類: (1)收發(fā)聯(lián)絡(luò)信號(hào)

DTR-數(shù)據(jù)終端準(zhǔn)備好信號(hào),8251A

外設(shè)。

DSR-數(shù)據(jù)設(shè)備準(zhǔn)備好信號(hào),外設(shè)

8251A。

RTS-請(qǐng)求發(fā)送信號(hào),8251A

外設(shè)。

CTS-清除請(qǐng)求發(fā)送信號(hào)(準(zhǔn)許發(fā)送),

外設(shè)

8251A。 (2)數(shù)據(jù)信號(hào)

TxD-發(fā)送器數(shù)據(jù)信號(hào)端

RxD-接收器數(shù)據(jù)信號(hào)端五、8251A的初始化1.端口地址:2個(gè)偶地址:完成數(shù)據(jù)的讀/寫

奇地址:完成對(duì)狀態(tài)R的讀出以及對(duì)控制、模式和同步字符R的寫入。五、8251A的初始化2.初始化(有關(guān)約定)(1)芯片復(fù)位以后,第一次用奇地址端口寫入的值作為模式(方式)字進(jìn)入模式(方式)寄存器。(2)如果模式字中規(guī)定了8251A工作在同步模式,那么,CPU接送往奇地址端口輸出的1個(gè)或2個(gè)字節(jié)就是同步字符。(3)之后,只要不是復(fù)位命令,由奇地址端口寫入的值將作為控制(命令)字送到控制R,而用偶地址端口寫入的值將作為數(shù)據(jù)送到數(shù)據(jù)輸出緩沖寄存器。流程圖見下頁復(fù)位操作輸出模式(方式)字同步方式兩個(gè)同步字符復(fù)位傳送完輸出第一個(gè)同步字符Y輸出控制(命令)字N輸出第二個(gè)同步字符YNY傳送數(shù)據(jù)NNY3.模式寄存器格式D7D6D5D4D3D2D1D0D7D6EPPENL2L1B2B1D6(ESD)同步方式0:內(nèi)同步,SYNDET為輸出1:外同步,SYNDET為輸入D7(SCS)同步字符的數(shù)目0:2個(gè)同步字符1:1個(gè)同步字符同步S2S1停止位數(shù)

00無效

011個(gè)

1011/2個(gè)

112個(gè)Y

波特率因子00同步模式01異步(1)10異步(16)11異步(64)

字符長度005位016位107位118位校驗(yàn)允許:1-允許,0-禁止奇/偶:1-偶,0-奇注:TxC(RxC)的時(shí)鐘頻率=波特率因子×波特率4.控制寄存器的格式D7D6D5D4D3D2D1D0EHIRRTSERSBRKRxEDTRTxEN進(jìn)入搜索方式1-允許搜索同步字符內(nèi)部復(fù)位1-使8251A返回到模式命令格式請(qǐng)求發(fā)送1-迫使RTS輸出為“0”錯(cuò)誤標(biāo)志復(fù)位1-使全部錯(cuò)誤標(biāo)志PE、OE、FE復(fù)位發(fā)送允許1-允許0-禁止數(shù)據(jù)終端準(zhǔn)備好1-使DTR輸出為0接收允許:1-允許

0-禁止發(fā)送終止字符1-迫使TxD低電平0-正常工作5.狀態(tài)寄存器的格式D7D6D5D4D3D2D1D0DSRSYNDETFEOEPETxERxRDYTxRDY數(shù)據(jù)設(shè)備準(zhǔn)備好1-DSR引腳為低電平幀錯(cuò)誤(FramingError)

只用于異步方式,當(dāng)在任一字符的結(jié)尾沒有檢測到有效的停止位時(shí),這個(gè)標(biāo)志置位。這個(gè)標(biāo)志由控制R的ER位復(fù)位。出現(xiàn)幀錯(cuò)誤并不禁止8251A工作除TxRDY,與管腳定義相同奇偶錯(cuò)誤(ParityError)

當(dāng)檢測到奇偶錯(cuò)誤時(shí)使該位置位,由控制R的ER位復(fù)位。奇偶錯(cuò)誤不禁止8251A工作。溢出錯(cuò)誤(OverrunError)

在下一個(gè)輸入字符變?yōu)榭捎们?,CPU沒有把字符讀走,OE標(biāo)志置位。它由控制R的ER位復(fù)位。此標(biāo)志并不禁止8251A工作,但發(fā)生此錯(cuò)誤時(shí)上一個(gè)字符已丟失。注:引腳TxRDY必須在數(shù)據(jù)緩沖器空,CTS為低電平且TxEN為高電平時(shí),才為1,即TxRDY=數(shù)據(jù)緩沖區(qū)空?CTS?TxEN六、8251A的編程舉例設(shè)異步方式,波特率因子16,用7個(gè)數(shù)據(jù)位,2個(gè)停止位,偶檢驗(yàn)端口地址:F0H,F(xiàn)2H。(AB的A1接8251A的C/!D端,CPU為8086)模式寄存器:11111010B=FAH控制寄存器:00110111B=37H程序開始由控制口送三次0,一次40H,作為復(fù)位。然后進(jìn)行8251A的初始化。例1:利用查詢方式進(jìn)行檢測,異步發(fā)送數(shù)據(jù)

256個(gè)。程序清單:;復(fù)位

MOVAL,00H

OUT0F2H,AL CALLDELAY MOVAL,00H

OUT0F2H,AL

CALLDELAY MOVAL,00H

OUT0F2H,AL

CALLDELAY MOVAL,40H

OUT0F2H,AL

CALLDELAY;初始化

MOVAL,0FAH

OUT0F2H,AL MOVAL,37H

OUT0F2H,ALLEABX,BUFFER

MOVCX,100HAG:INAL,0F2H

TESTAL,01H

JZAGMOVAL,[BX]

OUT0F0H,ALINCBX

LOOPAG例2:串行數(shù)據(jù)測試(連續(xù)發(fā)送“7”,供測量波形)8251RxCTxCTxRDYRxRDY8259IR41.8432MHzOUT18253CLK程序:;8253初始化(40H,41H,42H,43H)MOV AL,76H

OUT 43H,ALMOV AL,30H

OUT 41H,ALMOV AL,00H

OUT 41H,AL;8251復(fù)位(C0H,C1H)MOV AL,00H

OUT 0C1H,AL

CALL DELAYOUT 0C1H,AL

CALL DELAYOUT 0C1H,AL

CALL DELAYfclk=1.8432MHz波特率=2400波特率因子=16收發(fā)時(shí)鐘頻率=2400*16

=38400時(shí)間常數(shù)=fclk/收發(fā)時(shí)鐘頻率=48=30H程序:(續(xù)) MOV

AL,40H

OUT

0C1H,AL

CALL

DELAY;8251初始化

MOV

AL,7AH

OUT

0C1H,AL

CALL

DELAY MOV

AL,31H

OUT

0C1H,AL

CALL

DELAY;發(fā)送數(shù)據(jù)NEXT:MOV

AL,37H

OUT

0C0H,AL JMP NEXT功能:連續(xù)發(fā)7到串口輸出DELAY: PUSH CX

MOV CX,3000H

KK: LOOP KK

POP CX

RET例:異步接收數(shù)據(jù)的例子D7~D0CSC/DRDWRRESET

8251TxDDTRRxDDSRCLKRxDDSRTxDDTR譯碼D7~D0IOABA1IORIOWRESET8086CPUMax232Max232OUT2CLK28MHzTxCRxC續(xù):計(jì)算機(jī)通過8251A接收和發(fā)送數(shù)據(jù)。8251A的收發(fā)時(shí)鐘由8253的通道2供給。端口地址0F0H,0F2H。8251A的信號(hào)為TTL電平。與RS-232-C的串行設(shè)備連接時(shí),需要轉(zhuǎn)換成RS-232-C電平,這里用max232來完成工作。在使用8251A進(jìn)行數(shù)據(jù)傳送前,先對(duì)8251A進(jìn)行初始化編程。程序清單:

LEA BX,BUFFER MOV AL,0 MOV CX,3LP1: CALLOUTCHAR;輸出0到0F2H口

LOOPLP1 ;重復(fù)3次

MOV AL,40H

;復(fù)位字送AL CALLOUTCHAR;送8251 MOV AL,0FAH;模式字=11111010B OUT 0F2H,AL;輸出方式指令

MOV AL,37H;控制字=00110111B OUT 0F2H,AL;輸出命令指令

MOV CX,100H;字符計(jì)數(shù)LP2: IN AL,0F2H;讀8251A狀態(tài)字

TEST AL,02H JZ LP2;如果RxRDY=0,繼續(xù)測試(續(xù):)

IN

AL,0F0H;從8251A讀一字符

MOV

[BX],AL;保存該字符

INC BX;修改指針

IN AL,0F2H;讀狀態(tài)字

TEST

AL,38H JNZ ERROR;如果有錯(cuò),去ERROR LOOP

LP2;重復(fù)100次

JMP

EXITOUTCHAR:OUT

0F2H,AL;輸出到0F2H口

PUSH

CX

;推入堆棧

MOV

CX,10HDELAY:LOOP

DELAY

;等待輸出結(jié)束

POP

CX RETERROR:……EXIT: ……例:利用中斷方式進(jìn)行異步發(fā)送數(shù)據(jù)256個(gè)。設(shè)異步方式,波特率因子16,用7個(gè)數(shù)據(jù)位,2個(gè)停止位,偶檢驗(yàn)端口地址:0C0H,0C1H。(AB的A0接8251A的C/!D端,CPU為8088)方式寄存器:11111010B=FAH命令寄存器:00110111B=37H程序開始由控制口送三次0,一次40H,作為復(fù)位。然后進(jìn)行8251A的初始化。TxRDY接在8259A的IRQ4,中斷類型碼為0CH,故中斷矢量表的地址為0CH×4=0030H。程序清單:;填中斷矢量

MOVWORDPTR[0030H],INT_IP

MOVWORDPTR[0032H],INT_CS;8253初始化(40H,41H,42H,43H)MOV AL,76H

OUT 43H,AL

MOV AL,30H

OUT 41H,AL

MOV AL,00H

OUT 41H,AL程序清單:;8251A復(fù)位(端口地址C0H、C1H)

MOV

AL,00H

OUT0C1H,AL

CALL

DELAY

MOV

AL,00H

OUT

0C1H,AL

CALL

DELAY

MOV

AL,00H

OUT

0C1H,AL

CALL

DELAY

MOV

AL,40H

OUT

0C1H,AL

CALL

DELAY;8251A初始化

MOV

AL,0FAH

OUT

0C1H,AL

CALL

DELAYMOV

AL,37H

OUT

0C1H,AL

CALL

DELAY;修改OCW1

IN

AL,21H

AND

AL,0EFH

OUT

21H,ALSTIMO

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論