8251A的內(nèi)部結(jié)構(gòu)
(1)接收器
接收器包括接收緩沖器和接收控制邏輯兩部分。接收器的功能是接收在RXD引腳上的串行數(shù)據(jù),并按規(guī)定的格式把它轉(zhuǎn)換成并行數(shù)據(jù),存放在數(shù)據(jù)總線緩沖器中。
①接收緩沖器
接收緩沖器主要由移位寄存器和數(shù)碼寄存器組成。接收器接收傳送到RXD(接收數(shù)據(jù)輸入端)引腳上的串行數(shù) 據(jù),并對串行數(shù)據(jù)流的特殊位(奇偶位,停止位等)和字符(同步字符)進(jìn)行檢查、處理,按規(guī)定的格式將串行 數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)存放在緩沖器中。
接收移位寄存器和接收數(shù)據(jù)緩沖器組成了雙緩沖器結(jié)構(gòu)。
②接收控制邏輯
這一部分控制串行數(shù)據(jù)的接收,包括三條控制線:
RXRDY(Receiver Ready)接收器準(zhǔn)備好,輸出,高電平有效。
RXC(Receiver Clock)接收時(shí)鐘,輸入。
SYNDET/BRKDET(SYNchronous DETect/BreaK DETect)同步檢測/斷點(diǎn)檢測,輸出/輸入,高電平有效。
(2)發(fā)送器
發(fā)送器包括發(fā)送緩沖器和發(fā)送控制邏輯兩部分。
①發(fā)送緩沖器和發(fā)送過程
發(fā)送數(shù)據(jù)緩沖器接收由CPU送來的并行數(shù)據(jù),按初始化編程指定的數(shù)據(jù)格式轉(zhuǎn)換成串行數(shù)據(jù)流送至發(fā)送移位寄存器,在TXC的下降沿從TXD引腳發(fā)送出去。
發(fā)送數(shù)據(jù)緩沖器和發(fā)送移位寄存器組成了發(fā)送的雙緩沖器結(jié)構(gòu)。
②發(fā)送控制邏輯
該部分控制串行數(shù)據(jù)的發(fā)送操作,包括3條控制線:
TXRDY(Transmitter ReaDy)發(fā)送器準(zhǔn)備好,輸出,高電平有效。
TXE(Transmitter Empty)發(fā)送器空,輸出,高電平有效。
TXC(Transmitter Clock)發(fā)送時(shí)鐘,輸入。
(3)讀/寫控制邏輯
讀/寫控制邏輯接收CPU的有關(guān)控制信號(hào),據(jù)此確定對8251A的操作。該部分共有6條對外引線。
CLK 時(shí)鐘,輸入。
RESET 復(fù)位,輸入,高電平有效。RESET有效,8251A被強(qiáng)行復(fù)位到空閑狀態(tài)。只有在重新初始化后才能脫離空閑狀態(tài)。
(Chip Select)片選,輸入,低電平有效。
(Control/Data) 控制/數(shù)據(jù)信號(hào),輸入。
(Read)讀,輸入,低電平有效。
(Write)寫,輸入,低電平有效。
(4)數(shù)據(jù)總線緩沖
數(shù)據(jù)總線緩沖器是三態(tài),雙向,8位緩沖器,經(jīng)引腳D7D7~D0D0和系統(tǒng)的數(shù)據(jù)總線相連,是8251A與系統(tǒng)數(shù)據(jù)總線之間的接口。數(shù)據(jù)總線緩沖器包括:
① 狀態(tài)字緩沖寄存器,寄存8251A接收/發(fā)送操作的各種工作狀態(tài)。
② 發(fā)送數(shù)據(jù)緩沖寄存器,暫存由CPU送來的數(shù)據(jù)或控制字。8251A沒有獨(dú)立的控制寄存器,寫入的控制命令和發(fā)送的數(shù)據(jù)共用一個(gè)寄存器。
③ 接收數(shù)據(jù)緩沖寄存器,暫存接收到的準(zhǔn)備送往CPU數(shù)據(jù)。
(5)調(diào)制解調(diào)控制邏輯
遠(yuǎn)程通信時(shí),8251A的TXD端數(shù)據(jù)經(jīng)調(diào)制器調(diào)制后送上傳輸線,經(jīng)傳輸線送來的信號(hào)經(jīng)解調(diào)后送往8251A的RXD端。為了在8251A和調(diào)制解調(diào)器之間能正確的傳送數(shù)據(jù),8251A調(diào)制解調(diào)控制邏輯產(chǎn)生四個(gè)相應(yīng)的聯(lián)絡(luò)信號(hào)如下:
(Data Terminal Ready)數(shù)據(jù)終端準(zhǔn)備好,輸出,低電平有效。
(Data Set Ready)調(diào)制解調(diào)器準(zhǔn)備好,輸入,低電平有效。
(Request To Send)請求發(fā)送,輸入,低電平有效。
(Clear To Send)允許發(fā)送,輸入,低電平有效。
當(dāng)8251A不與調(diào)制解調(diào)器相接而是接續(xù)其它外設(shè)時(shí),這四條線可以作為控制數(shù)據(jù)傳輸?shù)穆?lián)絡(luò)線。
8251a串行通信中起什么作用及特點(diǎn)
8251A是一種可編程的通用同步/異步接收發(fā)送器,通常作為串行通信接口使用,被廣泛應(yīng)用Intel80X86為CPU的微型計(jì)算機(jī)中。其基本功能為:
(1)它是全雙工、雙緩沖器的接收/發(fā)送器。
(2)有兩種工作方式,可工作在同步或異步工作方式。同步方式工作時(shí),波特率在0~64K范圍內(nèi);異步方式時(shí),波特率在0~9.2K范圍內(nèi)。
(3)同步方式時(shí),字符可選擇為5~8bit,可加奇偶校驗(yàn)位,可自動(dòng)檢測同步字符。
(4)異步方式時(shí),字符可選擇為5~8bit,可加奇偶校驗(yàn)位,自動(dòng)為每個(gè)字符添加一個(gè)啟動(dòng)位,并允許通過編程選擇11、1.51.5、或22位停止位。
8251A的工作方式
1、異步工作方式:
CPU發(fā)出接收命令,接收電路監(jiān)視RxD端,發(fā)現(xiàn)一個(gè)起始位,開始一個(gè)字符的接收過程。在接收手時(shí)針的作用下,接收到的數(shù)據(jù)串行進(jìn)入接收移位寄存器,被移位并進(jìn)行奇偶校驗(yàn),再刪除停止位,得到并行數(shù)據(jù),經(jīng)片內(nèi)總線接收數(shù)據(jù)緩沖器,等待CPU讀取,同時(shí)RxRDY引腳置高電平,且狀態(tài)寄存器的RxRDY位為1
2、同步工作方式:
同比工作方式分為內(nèi)同步和外同步:
3、工作于內(nèi)同步:
CPU發(fā)出允許接收和進(jìn)入搜索指令,檢測RxD引腳,將接收的數(shù)據(jù)位送入移位寄存器,并與同步字符寄存器的內(nèi)容比較,若不同,不斷接收并且進(jìn)行移位比較操作,知道相同出現(xiàn),則SYNDET置高電平,表明同步出現(xiàn)。若為雙同步則需兩個(gè)字符均-致。
4、工作于外同步:
由外部電路監(jiān)測同步字符,當(dāng)發(fā)現(xiàn)同步字符后,從同步輸入端SYNDET輸入高電平,告知8251A,8251A就脫離對同步字符的搜索過程,高電平需維持一個(gè)接收時(shí)鐘周期。
達(dá)到同步后,8251A利用接收時(shí)鐘采樣RxD,接收同步幀格式數(shù)據(jù)。采得的數(shù)據(jù)送往移位寄存器,當(dāng)位數(shù)達(dá)到一個(gè)字符規(guī)定的數(shù)位時(shí),移位寄存器的內(nèi)容通過片內(nèi)總線送往接收數(shù)據(jù)緩沖器,:同時(shí)RxRDY引腳置高電平,且狀態(tài)寄存器的RxRDY位為1,表示已經(jīng)收到一個(gè)可用字符。
8251A的應(yīng)用舉例
例:微機(jī)系統(tǒng)中兩臺(tái)微機(jī)之間進(jìn)行雙機(jī)串行通信的硬件連接和軟件編程。
(1)要求
在甲乙兩臺(tái)微機(jī)之間進(jìn)行串行通信,甲機(jī)發(fā)送,乙機(jī)接收。要求把甲機(jī)上開發(fā)的應(yīng)用程序(其長度為2DH)傳送到乙機(jī)中去。雙方采用起止式異步方式,通信的數(shù)據(jù)格式為,字符長度為8位,2位停止位,波特率因子為64,無校驗(yàn),波特率為4800。 CPU與8251A之間用查詢方式交換數(shù)據(jù),8251A的端口地址分配是:309H為命令/狀態(tài)口,308H為 數(shù)據(jù)口。
(2)分析
由于是近距離傳輸,因此可以不設(shè) MODEM,兩臺(tái)微機(jī)之間直接通過RS-232標(biāo)準(zhǔn)接口連接即可。同時(shí)是采用查詢 I/O方式,故收/發(fā)程序中只需檢查發(fā)/收準(zhǔn)備好的狀態(tài)是否置位,即可收發(fā) l個(gè)字節(jié)。
(3)設(shè)計(jì)
①硬件連接
根據(jù)以上分析,把兩臺(tái)微機(jī)都當(dāng)作 DTE(數(shù)據(jù)終端設(shè)備),采用最簡單的發(fā)送線TxD、接收線 RxD和 地線GND三 根線連接就能進(jìn)行通信。采用8251A作為接口的主芯片再配置少量附加電路,如波特率發(fā)生器、 RS—232C 與TTL電平轉(zhuǎn)換電路、地址譯碼電路等就可構(gòu)成一個(gè)串行通信接口。
②軟件編程
由題意可知,接收和發(fā)送程序應(yīng)分別編寫,每個(gè)程序段中包括8251A初始化、狀態(tài)查詢和輸入/輸出幾部分。 對接收/發(fā)送方的8251A初始化時(shí),首先要確定其方式選擇控制字和工作命令控制字。根據(jù)題中的要求可有:
發(fā)送方的方式選擇控制字為11001111B=CFH,工作命令控制字為00111110B=37H
接收方的方式選擇控制字為11001111B=CFH,工作命令控制字為00010100B=14H
發(fā)送端的發(fā)送程序(略去 STACK和 DATA段)
CSEG SEGMENT
ASSUME CS:CSEG
TRA PROC FAR
START: MOV DX,309H ;控制口
MOV AL.00H ;空操作
OUT DX,AL
MOV AL,40H ;內(nèi)部復(fù)位
OUT DX,AL
NOP
MOV AL,0CFH ;方式字(異步,2位停止位,字符長度為8位,無校驗(yàn),波特率因子為64)
OUT DX, AL
MOV AL,37H ;命令字(RTS、ER、RxE、DTR和 TxEN均置 1)
OUT DX, AL
MOV CX,2DH ;傳送字節(jié)數(shù)
MOV SI,300H ;發(fā)送區(qū)首址
L1: MOV DX,309H ;狀態(tài)口
IN AL, DX ;查狀態(tài)位 D。(TxRDY)=1?
TEST AL,38H ;查錯(cuò)誤
JNZ ERR ;轉(zhuǎn)出錯(cuò)處理
AND AL,01H
JZ L1 ;發(fā)送未準(zhǔn)備好,則等待
MOV DX,308H ;數(shù)據(jù)口
MOV AL,[SI] ;發(fā)送準(zhǔn)備好,則從發(fā)送區(qū)取1字節(jié)發(fā)送
OUT DX, AL
INC SI ;修改內(nèi)存地址
DEC CX ;字節(jié)數(shù)減 1
JNZ L1 ; 未發(fā)送完,繼續(xù)
ERR: (略)
MOV AX,4C00H ;已送完,回 DOS
INT 21H
TRA ENDP
CSEG ENDS
END START
接收方接收程序(略去 STACK和 DATA段)
SCEG SEGMENT
ASSUME CS:REC
REC PROC FAR
BEGIN: MOV DX,309H ;控制口
MOV AL,0AAH ;空操作
OUT DX, AL
MOV AL,50H ;內(nèi)部復(fù)位
OUT DX, AL
NOP MOV AL,0CFH ;方式字
OUT DX, AL
MOV AL,14H ;命令字(ER、RxE置1)
OUT DX, AL
MOV CX,2DH ;傳送字節(jié)數(shù)
MOV DI,400H ;接收區(qū)首址
L2: MOV DX,309H ;狀態(tài)口
IN AL, DX ;查狀態(tài)位 D2(RxRDY)=17
TEST AL,38H ;查錯(cuò)誤
JNZ ERR ;轉(zhuǎn)出錯(cuò)處理 .
AND AL, 02H
JZ L2 ;接收未準(zhǔn)備好,則等待
MOV DX,308H ;數(shù)據(jù)口
IN AL, DX ;接收準(zhǔn)備好,則接收1字節(jié)
MOV [DI], AL ;并存入接收區(qū)
INC DI ;修改內(nèi)存
LOOP L2 ;未接收完,繼續(xù)
ERR: (略)
MOV AX,4C00H ;已接收完,程序結(jié)束,退出
INT 21H ;返回 DOS
REC ENDP
CSEG ENDS
END BEGIN
-
接收器
+關(guān)注
關(guān)注
14文章
2454瀏覽量
71753 -
8251A
+關(guān)注
關(guān)注
0文章
3瀏覽量
8439 -
發(fā)送器
+關(guān)注
關(guān)注
1文章
258瀏覽量
26782
發(fā)布評論請先 登錄
相關(guān)推薦
評論