【正文】
C H D O C D r a w n B y :D0D1D2D4D5D6D7WRRD8253D3D08O U T 010D17G A T E 011D26C L K 09D35D44D53D62O U T 113D71G A T E 114C L K 115CS21RD22WR23O U T 217A019G A T E 216A120C L K 2188253U 35CSA0A1O U T 0G A T E 0C L K 0O U T 1G A T E 1C L K 1O U T 2G A T E 2C L K 2 1片 8253 內(nèi)部有 3 個計數(shù)器,分別稱計數(shù)器 0、 2,其結(jié)構完全相同,互相之間工作完全獨立。每個計數(shù)器有三個引腳和外部聯(lián)系: CLK:計數(shù)脈沖輸入,計數(shù)器對該引腳出現(xiàn)信號進行計 數(shù),最高計數(shù)速率為 。 Gate:門控輸入,用于控制計數(shù)器是否對 CLK 計數(shù)。 OUT:輸出信號端。 每個計數(shù)器內(nèi)部都有1個 8位的控制寄存器,三個控制寄存器使用同一端口地址,在編程結(jié)構圖中,畫為 1個控制寄存器;每個計數(shù)器內(nèi)部還有 1個計數(shù)初值寄存器、 1 個計數(shù)執(zhí)行部件 ,執(zhí)行部件( CE)是 1個 16位減法計數(shù)器,其起始值等于初值寄存器( CR)的值。 CR 的值通過程序設置。輸出寄存器( OL)用來鎖存執(zhí)行部件( CE)的值,以便 CPU 讀出。( CE)和 1個輸出鎖存器,它們都是 16 位的。 計數(shù)器 0,計數(shù)器 1,計數(shù)器 2 這 3個計數(shù)器互相獨立,各自可按不同的方式工作。計數(shù)器的內(nèi)部結(jié)構如前面所述,每個計數(shù)器包含一個 16 位的初始寄存器,一個計數(shù)執(zhí)行部件和一個鎖存器。計數(shù)執(zhí)行部件從初 始值寄存器中獲得計數(shù)初值,便進行減 1計數(shù),此時,鎖存器跟隨記數(shù)執(zhí)行部件的內(nèi)容而變 化,當有一個鎖存命令來到時,鎖存器便鎖定當前計數(shù),直到被讀走以后,又跟隨計數(shù)執(zhí) 行部件的動作。 各計數(shù)器的外部輸入輸出信號如圖所示 。 CS RD WR A1A0 功能 0 1 0 00 對計數(shù)器 0設置計數(shù)初值 0 1 0 01 對計數(shù)器 1設置計數(shù)初值 0 1 0 10 對計數(shù)器 2設置計數(shù)初值 0 1 0 11 設置控制字或給一個命令 0 0 1 00 從計數(shù)器 0讀出計數(shù)值 0 0 1 01 從計數(shù)器 1讀出計數(shù)值 0 0 1 10 從計數(shù)器 2讀出計數(shù)值 當 A1A0=11 時,通過讀 /寫控制邏輯電路選中控制積存器,此時, CPU 可以寫入控制字。左表是 CPU 對 8253 各積存器訪問時,信號和功能之間的對應關系。 對左表,我們作兩點說明: (1)除了這七組組合外,其他組合下,數(shù)據(jù)總線為高阻抗狀態(tài)。 (2)當 A1=A0 時,第一次寫入的一定作為控制字 ,此后寫入的作為命令。 讀 /寫電路從系統(tǒng)控制總線接收輸入信號,經(jīng)過組合,產(chǎn)生對 8253 各部分的控制。具體為: A A0— 用來對 3個計數(shù)器和控制積存器進行尋址。 RD— 讀信號。當 RD 為低電平時有效,此時,表示 CPU 正在對 8253 的一個計數(shù)器進行讀操作。 WR— 寫信號。當 WR 為低電平時有效,此時,表示 CPU 正在對 8253 的幾個計數(shù)器進行寫操作。 CS— 片選信號。只有在 CS 為持續(xù)低電平的情況下, RD 和 WR 才會受到確認,否則會被忽略 3) 8253的技術參數(shù) 因為 8253的控制積存器和 3個計數(shù)器分別具有 獨立的編程地址 ,并且控制字本身的內(nèi)容又確定了所控制的積存器序號 ,所以 ,隊 8253 的編程沒有太多嚴格的順序規(guī)定 ,可以非常靈活 .但是 ,編程有兩條原則必須嚴格遵守 : (1)對計數(shù)器設置初始值前必須先寫控制字 . (2)初始值設置時 ,要符合控制字中的格式規(guī)定 ,即只寫低位字節(jié)還是寫高位字節(jié) ,或者高低位字節(jié)都寫 ,控制字中一旦規(guī)定 ,具體初始值設定時就要一致 . 8253 有兩根地址線 A1A0,對應 4 個端口地址,各寄存器的端口地址分配如下:( PC 機中口地址 B0HBFH)。 初始化工作有 2點: (1)寫入控制字; (2)按控制字的要求寫入計數(shù)初值。 8253 有六種工作模式( 0~ 5),每種工作模式?jīng)Q定以下內(nèi)容: 時起作用? 。 信號的狀態(tài) ,或稱計數(shù)初值是否可以自動裝入。 ① 不可重復 ② 自動重復 ③條件重復 :計數(shù)器在 CLK 的下降沿使計數(shù)值減 1,計數(shù)值減至 0 時,“計數(shù)到”。寫入初值 0 時,代表最大初值 65536。 下面分別為 8253 在各種模式下的時序。 模式 0:計數(shù)結(jié)束產(chǎn)生中斷 模式 1:可重復觸發(fā)的單穩(wěn)態(tài)觸發(fā)器 模式 2:分頻器, 模式 3:方波發(fā)生器 模式 4:軟件觸發(fā)的選通信號發(fā)生器 模式 5:硬件觸發(fā)的選通信號發(fā)生器 8251 1) 8251 在本設計中的作用 本實驗中選擇 8251 作為可編程串行接口,主要的作用的是將紅外編碼串行的發(fā)送出去,通過紅外的無線傳輸,在紅外的接收端再將數(shù)據(jù)串行的發(fā)送回A1A0 寫( WR) 讀( RD) 00 計數(shù)器 0, 初值寄存器( CR) 輸出寄存器, ( 輸出鎖存器 OL) 01 計數(shù)器 1, 初值寄存器( CR) 輸出寄存器, ( 輸出鎖存器 OL) 10 計數(shù)器 2, 初值寄存器( CR) 輸出寄存器, ( 輸出鎖存器 OL) 11 控制寄存器 8253 無狀態(tài)寄存器 8251, 8251 將數(shù)據(jù)發(fā)回 cpu進行判斷 2) 8251 的功能分析 CS 片選信號,低電平有效 RxC、 TxC: 收發(fā)時鐘; C/D: 命令 /數(shù)據(jù); RXD、 TXD: 串行收發(fā)。 CLK: 時鐘。 8251A 由 7 個模塊組成,這 7 個模 塊為接收緩沖器、接收控制電路、發(fā)送緩沖器、發(fā)送控制電路、數(shù)據(jù)總線緩沖器、讀寫控制邏輯電路和調(diào)制解調(diào)控制電路 。 /寫控制邏輯: 它用來配合數(shù)據(jù)總線緩沖器工作。即: / WR,并將來自數(shù)據(jù)總線的數(shù)據(jù)和控制字寫入 8251A; /RD,并將數(shù)據(jù)或狀態(tài)字從 8251A 讀往數(shù)據(jù)總線; /數(shù)據(jù)信號 C/D,將此信號和讀/寫信號合起來通知 8251A,當前1122334455667788991010111112121313141415151616D DC CB BA AT i t l eN um be r R e vi s i onS i z eA0D a t e : 2020 12 19 S he e t of F i l e : F : \ I nova t i on\ ..\ S T A R .S C H D O C D r a w n B y :D21D32R xD3GND4D45D56D67D78T xC9WR10CS11C / D12RD13R xR D Y14T xR D Y15S Y N D E T16C T S17T xE M P T Y18T xD19C L K20R E S E T21D S R22R T S23D T R24R xC25V C C26D027D1288251U 38WRRDV C CR S TD0D1D2D3D4D5D6D7T X DR X DC L KT xCCSC / DR xCR xR D Y T xR D Y 讀/寫的是數(shù)據(jù)還是控制字、狀態(tài)字; CLK,完成 8251A 的內(nèi)部定時; RESET, 使 8251A 處于空閑狀態(tài)。 : 對應于編程結(jié)構中的“接收移位寄存器”對外引腳為 RxD。 功能:從 RxD 引腳上接收串行數(shù)據(jù),并按照相應的格式轉(zhuǎn)換為并行數(shù)據(jù)。 : 配合接收緩沖器工作,管理有關接收的所有功能。即: ,芯片復位后,先檢測輸入信號中的有效“ 1”,一旦檢測到,就接著尋找有效的低電平來確定啟動位。 。 ,并根據(jù)校驗結(jié)果設置相應的狀態(tài)位。 ,并按檢測結(jié)果,設置狀態(tài)位。 送緩沖器: 從功能上來看,它對應于編程結(jié)構圖中的的“發(fā)送移位寄存器”。發(fā)送緩沖器把來自 CPU 的并行數(shù)據(jù),加上相應的控制信息,然后轉(zhuǎn)換為串行數(shù)據(jù),并從TXD引腳發(fā)出去。 : 它和發(fā)送緩沖器配合工作,它控制和管理所有與串行發(fā)送有關的功能。即: ,為數(shù)據(jù)加上起始位、校驗位和停止位; ,插入同步字符,在數(shù)據(jù)中插入校驗位。 : 數(shù)據(jù)總線緩沖器用來把 8251A 和系統(tǒng)數(shù)據(jù)總線相連,在 CPU 執(zhí)行輸入 /輸出指令期間,由數(shù)據(jù)總線緩沖器發(fā)送和接 收數(shù)據(jù),此外,控制字、命令字和狀態(tài)信息也通過數(shù)據(jù)總線緩沖器傳輸。所以,從功能上看,數(shù)據(jù)總線緩沖器是編程結(jié)構中數(shù)據(jù)輸入緩沖器、數(shù)據(jù)輸出緩沖器、控制寄存器和命令寄存器的綜合。 /解調(diào)器控制電路: 它用來簡化 8251A 和調(diào)制解調(diào)器的連接。在進行遠程通信時,要用調(diào)制器將串行接口送出的數(shù)據(jù)信號變?yōu)槟M信號,再發(fā)送出去,接收端則要用解調(diào)器將模擬信號變?yōu)閿?shù)字信號,再由串行接口送往計算機主機。在全雙工通信情況下,每個收發(fā)站都要連接調(diào)制解調(diào)器。有了調(diào)制解調(diào)控制電路,就提供了一組通用的控制信號,使得 8251A 可以直 接和調(diào)制器連接。 它為 Modem 提供一組通用控制信號( DSR、 DTR、 RTS、 CTS)。 注意: 8251 未提供 DCD(數(shù)據(jù)載波檢測信號)和 RI(振鈴信號),如需使用 DCD和 RI,必須另加接口電路來提供。 3) 8251的技術參數(shù) 與 CPU 之間的連接信號 8251A 和 CPU 之間的連接信號可以分為 4 類,具體如下: (1)片選信號 /CS—— 片選信號 /CS是 CPU的地址信號通過譯碼后得到的。 /CS為低電平時,8251A 被選種。反之, /CS 為高電平時, 8251A 未被選中,這種情況 下, 8251A的數(shù)據(jù)線處于高阻狀態(tài),讀信號 /RD 和寫信號 /WR 對芯片不起作用。 (2)數(shù)據(jù)信號 D7~ D0—— 8251A 有 8根數(shù)據(jù)線 D7~ D0,通過它們, 8251A 與系統(tǒng)的數(shù)據(jù)總線相連。實際上,數(shù)據(jù)線上不止傳輸一般的數(shù)據(jù),而且也傳輸 CPU 對 8251A 的編程命令和 8251A 送往 CPU 的狀態(tài)信息。 (3)讀 /寫控制信號 /RD—— 讀信號 /RD為低電平時,用來通知 8251A, CPU 當前正從 8251A 讀取數(shù)據(jù)或者狀態(tài)信息。 /WR—— 寫信號 WR為低電平時,用來通知 8251A, CPU 當前正在往 8251A 寫入數(shù)據(jù)或者控制信息。 C/D—— 控制/數(shù)據(jù)信號 C/D 也是 CPU 送往 8251A 的信號,用來區(qū)分當前讀寫的是數(shù)據(jù)還是控制信息或狀態(tài)信息。具體地說, CPU 在讀操作時,如 C/D 為低電平,則讀取的是數(shù)據(jù),如 C/D 為高電平,則讀取的是 8251A 當前的狀態(tài)信息; CPU 在寫操作時,如 C/D為低電平,則寫入的是數(shù)據(jù),如 C/D 為高電平,則寫入的是 CPU 對 8251A 的控制命令。 歸納起來, /RD、 /WR、 C/D 這三個信號和讀/寫操作之間的關系如下表所示: 需要簡要說明一點, 8251A 只有兩個連續(xù) 的端口地址,數(shù)據(jù)輸入端口和數(shù)據(jù)輸出端口合用同一個偶地址