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