摘 要: 介紹了具有串行接口的I/O擴展器EM83010的性能和特點,利用EM83010實現(xiàn)了對MCS51單片機的I/O擴展。
關(guān)鍵詞: I/O擴展 串行接口 MCS51單片機
單片機I/O口的擴展,過去常常采用門電路或可編程邏輯器件等來實現(xiàn),比較麻煩。本文介紹具有串行接口的I/O擴展器EM83010及其應(yīng)用,從而為設(shè)計者提供一種新的I/O口擴展方法。使用EM83010進行I/O擴展,不僅非常簡便,而且具有強大的功能。
1 EM83010簡介
EM83010是EMC公司生產(chǎn)的帶串行接口的I/O擴展器,它具有以下功能及特點:
· 14個雙向I/O口線
· 2個I/O寄存器,2個I/O控制寄存器
· 144×8bit片內(nèi)RAM
· 與MCU通過2線串行接口相連
·2線最多可同時接8片EM83010(此時擴展I/O數(shù)量為112個,RAM容量為1152×8bit)
· 工作電壓寬:2.5V~5.5V
· 低功耗,工作電流0.5mA,靜態(tài)電流15μA
· 18DIP/SOIL封裝形式
1.1 管腳定義
對于18DIP封裝的EM83010而言,其管腳功能如表1所示。
1.2 內(nèi)部功能框圖
EM83010內(nèi)部功能框圖如圖1所示。EM83010內(nèi)部主要包括I/O控制邏輯、存儲控制邏輯、地址指針、144字節(jié)的RAM、狀態(tài)及控制寄存器、兩個端口及其對應(yīng)的數(shù)據(jù)寄存器和控制寄存器。
1.3 2線串行接口
EM83010支持雙向2線串行接口,其中由SCK提供串行同步時鐘,SDT收發(fā)數(shù)據(jù),并且最多可以有8個EM83010同時共享該總線。
串行總線上數(shù)據(jù)傳送的時序如圖2所示。
數(shù)據(jù)傳輸依次為:START、GRP位、DATA(控制字節(jié)、數(shù)據(jù)或地址,高位在前,低位在后)、ACK位、STOP。其中START定義為SCK=“1”時SDT的下降沿;STOP定義為SCK=“1”時SDT的上升沿;若GRP=“0”,表示下面的字節(jié)是控制字節(jié),否則表示下面的字節(jié)是數(shù)據(jù)或地址;ACK的產(chǎn)生方法是在ACK周期(回應(yīng)時鐘)的高電平期間將SDT拉低。STOP產(chǎn)生之后,SCK、SDT保持高電平狀態(tài)。
串行總線上定義了三種數(shù)據(jù)格式:
(a) 控制字節(jié)的傳送
(b) 隨機地址的數(shù)據(jù)讀寫
(c) 連續(xù)地址的數(shù)據(jù)讀寫
在以上數(shù)據(jù)格式中,S:開始(START);P:停止(STOP);D:數(shù)據(jù)(8位);1:(GRP)高電平;0:(GRP)低電平;A:地址(8位);K:讀數(shù)據(jù)時有回應(yīng)(ACK);C:控制字節(jié)(8位);NK:讀數(shù)據(jù)時無回應(yīng)(No ACK)。