什么是單片機(jī)的I/O 接口
計(jì)算機(jī)系統(tǒng)的輸入(Input) 設(shè)備和輸出設(shè)備(Output)被稱為 I/O 設(shè)備或外設(shè)。常用的
I/O 設(shè)備有鼠標(biāo)、打印機(jī)、投影儀、鍵盤和掃描儀等, 通過這些設(shè)備,計(jì)算機(jī)可以與外界進(jìn) 行數(shù)據(jù)和信息的交換。
1. I/O 接口的作用
通常外設(shè)不能直接與單片機(jī)交換信息,信息交換應(yīng)該通過I/O 接口來進(jìn)行,其主要原因如下:
1)外設(shè)與單片機(jī)的信號(hào)類型不一致。單片機(jī)能直接處理的信號(hào)是數(shù)字信號(hào),而外設(shè)的 信號(hào)既可能是數(shù)字的也可能是模擬的,可能是并行傳輸?shù)囊部赡苁谴袀鬏數(shù)摹?
2)外設(shè)的數(shù)據(jù)傳輸速度差別很大,而且與單片機(jī)的傳輸速度不一致。 3)外設(shè)的控制信號(hào)復(fù)雜、多樣,需要單片機(jī)提供。 4)外設(shè)與單片機(jī)的電氣特性可能不匹配, 如:工作電壓和電流不一致。
5)外設(shè)與單片機(jī)的數(shù)據(jù)位數(shù)可能不一致。如: MCS-51 的字長(zhǎng)是 8 位的,而外設(shè)的字長(zhǎng) 可能不是 8 位的。
基于上述原因, 單片機(jī)與外設(shè)之間需要 I/O 接口作為信息交換的橋梁。I/O 接口的主要作用
有:① 信號(hào)的變換,如信號(hào)格式的轉(zhuǎn)換(如串并轉(zhuǎn)換和并串轉(zhuǎn)換)、模擬信號(hào)和數(shù)字信號(hào)之間的 數(shù)-模和模-數(shù)的轉(zhuǎn)換等; ② 數(shù)據(jù)的緩沖, 如實(shí)現(xiàn)高速單片機(jī)與低速I/O 接口之間的速度匹配等。
2. I/O 接口的結(jié)構(gòu)
I/O 接口的典型結(jié)構(gòu)如圖 5-14 所示,其內(nèi)部有三類寄存器,即:
(1)數(shù)據(jù)寄存器
數(shù)據(jù)寄存器通過數(shù)據(jù)總線與單片機(jī)交換數(shù)據(jù)。該數(shù)據(jù)可以由單片機(jī)傳給外設(shè),也可以由 外設(shè)傳向單片機(jī), 前者是單片機(jī)向外設(shè)寫數(shù)據(jù), 后者是單片機(jī)從外設(shè)讀數(shù)據(jù)。
(2)狀態(tài)寄存器
狀態(tài)寄存器用于保存 I/O 接口或外設(shè)的工作狀態(tài)信息,該信息可以通過數(shù)據(jù)總線傳送給 單片機(jī)。
(3)控制寄存器
I/O 接口可以分為可編程的 I/O 接口和不可編程的 I/O 接口??删幊痰?I/O 接口可以有多 種工作方式,其工作方式由單片機(jī)控制選擇,而控制寄存器的作用是接收單片機(jī)通過數(shù)據(jù)總 線發(fā)送的控制信息。
I/O 接口中的寄存器也被稱為端口(Port),因此其中的數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存 器分別被稱為數(shù)據(jù)端口、狀態(tài)端口和控制端口,進(jìn)一步可以被簡(jiǎn)稱為數(shù)據(jù)口、狀態(tài)口和控制口。
由圖 5-14 可知,I/O 接口的數(shù)據(jù)信息、狀態(tài)信息和控制信息都通過數(shù)據(jù)總線與單片機(jī) 交換,因此 I/O 接口的數(shù)據(jù)信息、狀態(tài)信息和控制信息都是廣義上的數(shù)據(jù)。另外, I/O 接口 中的地址譯碼電路的作用是:接收地址總線傳送的地址,并將其譯碼后用于選擇 I/O 接口 中的某個(gè)端口;控制總線傳送單片機(jī)的控制命令,以控制 I/O 接口的工作。
圖 5-14 I/O 接口的典型結(jié)構(gòu)
3. 對(duì) I/O 接口的基本要求
單片機(jī)系統(tǒng)對(duì) I/O 接口的基本要求是:輸入接口有三態(tài)緩沖功能、輸出接口有鎖存功 能。這樣要求的原因如下:
(1)輸入接口有三態(tài)緩沖功能
單片機(jī)可以通過輸入接口讀取外設(shè)的數(shù)據(jù)。在單片機(jī)讀取輸入接口時(shí),輸入接口需要把 數(shù)據(jù)送到數(shù)據(jù)總線上。但是,當(dāng)單片機(jī)與多個(gè)輸入接口相連時(shí),每一時(shí)刻僅允許一個(gè)輸入接 口向單片機(jī)傳送數(shù)據(jù),否則將導(dǎo)致總線信息混亂。為了避免信息混亂,必須對(duì)那些不被允許 向單片機(jī)傳送數(shù)據(jù)的輸入接口進(jìn)行隔離操作。具有隔離功能的典型元件是三態(tài)緩沖器,其具
有高電平(邏輯 1)、低電平(邏輯 0) 和高阻態(tài)(即第三狀態(tài))等三種不同狀態(tài)。因此,可 以利用帶三態(tài)緩沖功能的輸入接口電路實(shí)現(xiàn)單片機(jī)與外設(shè)之間的隔離。
(2)輸出接口有鎖存功能
單片機(jī)通過寫總線操作將數(shù)據(jù)送到數(shù)據(jù)總線上,以傳送給輸出接口,外設(shè)通過輸出接口 間接獲得該數(shù)據(jù)。需要注意的是,在單片機(jī)的寫總線操作過程中, 數(shù)據(jù)在數(shù)據(jù)總線上停留的 時(shí)間非常短,處理速度較慢的外設(shè)沒有充裕的時(shí)間完成數(shù)據(jù)接收操作。為了避免數(shù)據(jù)丟失, 就需要通過帶有鎖存功能的輸出接口將單片機(jī)輸出的數(shù)據(jù)鎖存住, 以使慢速設(shè)備有足夠的時(shí) 間來完成數(shù)據(jù)的接收。