《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 業(yè)界動態(tài) > 具有串行接口的I/O擴(kuò)展器EM83010及其應(yīng)用

具有串行接口的I/O擴(kuò)展器EM83010及其應(yīng)用

2009-02-05
作者:曹立進(jìn) 高敦堂 都思丹 孫宗琪

  摘 要: 介紹了具有串行接口I/O擴(kuò)展器EM83010的性能和特點,,利用EM83010實現(xiàn)了對MCS51單片機(jī)的I/O擴(kuò)展,。
  關(guān)鍵詞: I/O擴(kuò)展 串行接口 MCS51單片機(jī)


  單片機(jī)I/O口的擴(kuò)展,過去常常采用門電路或可編程邏輯器件等來實現(xiàn),,比較麻煩,。本文介紹具有串行接口的I/O擴(kuò)展器EM83010及其應(yīng)用,,從而為設(shè)計者提供一種新的I/O口擴(kuò)展方法。使用EM83010進(jìn)行I/O擴(kuò)展,,不僅非常簡便,,而且具有強(qiáng)大的功能。
1 EM83010簡介
  EM83010是EMC公司生產(chǎn)的帶串行接口的I/O擴(kuò)展器,,它具有以下功能及特點:
  · 14個雙向I/O口線
  · 2個I/O寄存器,,2個I/O控制寄存器
  · 144×8bit片內(nèi)RAM
  · 與MCU通過2線串行接口相連
  · 2線最多可同時接8片EM83010(此時擴(kuò)展I/O數(shù)量為112個,RAM容量為1152×8bit)
  · 工作電壓寬:2.5V~5.5V
  · 低功耗,,工作電流0.5mA,,靜態(tài)電流15μA
  · 18DIP/SOIC封裝形式
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) 隨機(jī)地址的數(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)。
1.4 控制字節(jié)
  控制字節(jié)的位定義如表2所示,。


  注:(T1 T0 A2 A1 A0)=(1 1 0 0 0)被保留,,
  用于R-option地址。
1.5 寄存器(I/O端口及RAM)
1.5.1 寄存器(I/O端口,、RAM)分配表
  寄存器(I/O端口及RAM)分配表如表3所示,。


1.5.2 R00~R01(端口0~端口1)
  ·R00是6位寄存器,對應(yīng)端口0,,讀寫R00的高2位無意義,。
  ·R01是8位寄存器,對應(yīng)端口1,。
  ·每個I/O管腳均可定義為輸入或輸出,。
  ·寫入R00和R01時是串行傳送的,但數(shù)據(jù)被刷新到管腳上是同時的,;讀R00和R01時,,管腳數(shù)據(jù)的采樣也是同時的。
1.5.3 R02和R03(IOC0和IOC1)
  ·IOC0(R02)是6位寄存器,,控制端口0數(shù)據(jù)I/O的方向,,讀寫IOC0的高2位無意義。
  ·IOC1(R03)是8位寄存器,,控制端口1數(shù)據(jù)I/O的方向,。
  ·IOC0和IOC1中的“1”置對應(yīng)管腳為高阻,表示輸入,;“0”置對應(yīng)管腳為輸出狀態(tài),。
  ·上電后,IOC0和IOC1各位均為“1”,。
  ·IOC0和IOC1的接收是串行的,,但寫入寄存器是同時的。
1.5.4 R04~R93(通用寄存器)
  ·R04~R93為144字節(jié)的通用寄存器(SRAM),。
1.6 R-option地址片選
  總線上有多個設(shè)備時,,每個設(shè)備應(yīng)具有不同的地址。如表1所示,,P00~P02可作為R-option腳,,用于芯片的片選。
  每個R-option管腳被內(nèi)部電路微弱拉為高電平,,若外接560kΩ電阻接地則讀作“0”,,否則讀作“1”。
  上電后必須在控制字節(jié)中發(fā)出“讀R-option”命令(此時CONTROL byte=11000001,且“STOP”上升沿之前應(yīng)該延時500μs),,將片選地址讀入后,,P00~P02的R-option地址片選才起作用。
  P00~P02可作為雙向I/O管腳,,由于R-option功能的原因,,建議P00~P02用作輸出腳。
1.7 EM83010的應(yīng)用電路舉例
  EM83010的應(yīng)用電路如圖3所示,。R2~R8=560kΩ,,R1=10kΩ,此電路有3片EM83010,,共用2根總線(MCS51單片機(jī)的P10和P11),。由R2~R8的接法可知,3片EM83010的地址分別為000,、001,、010。


  這樣,,在圖3中,,2根I/O線(P10、P11)可擴(kuò)展14×3=42個I/O口,,以及144×3=432字節(jié)的RAM,。
  可見EM83010用于I/O擴(kuò)展時,不僅便于實現(xiàn),,而且功能強(qiáng)大,。
2 EM83010用于MCS51的I/O擴(kuò)展
2.1 硬件電路
  利用EM83010對MCS51單片機(jī)進(jìn)行I/O擴(kuò)展的硬件電路請參照圖3。直接將MCS51單片機(jī)的2根I/O口線(如P10,、P11)連至SDT,、SCK即可。
2.2 軟件設(shè)計
2.2.1 基本考慮

  EM83010的SCK時鐘頻率最高可為500kHz,。對于主頻12MHz的MCS51單片機(jī)而言,,其指令周期不小于1μs,由指令產(chǎn)生的SCK時鐘周期不小于2μs,,完全滿足上述條件,。
2.2.2 程序編寫
  下面以發(fā)送控制字節(jié)(CONTROL byte)子程序為例,說明MCS51系列單片機(jī)對EM83010的控制方法,。
 ?。话l(fā)送控制字節(jié)子程序
 ??;Control Byte 存放在累加器A中
  SDT bit P10 ,; P10與EM83010的SDT相連
  SCK bit P11 ; P11與EM83010的SCK相連
  TransmitControl:
   SETB SDT ,;
   SETB SCK ,; 在SCK高電平期間
   CLR SDT ; 產(chǎn)生“START”(下降沿)
  CLR SCK ,;
   SETB SCK ; 發(fā)送“GRP”(GRP=0)
   MOV R0,#08 ,;發(fā)送8位的Control Byte
  OutByte:
   CLR SCK ,;
   RLC A ;帶進(jìn)位標(biāo)志循環(huán)左移位
   MOV SDT,,C ,;發(fā)送1位數(shù)據(jù)
   SETB SCK ;
   DJNZ R0,,OutByte ,;
   CLR SCK ;
   SETB SCK ,;
   JB SDT,,$ ;等待“ACK”
   CLR SCK ,;
   CLR SDT ,;
   SETB SCK ;在SCK高電平期間
   SETB SDT ,;產(chǎn)生“STOP”(上升沿)
   RET ,;子程序返回
  以上子程序?qū)⒋娣旁诶奂悠鰽中的控制字節(jié)(Control Byte)發(fā)送給EM83010,入口地址標(biāo)號為TransmitControl,。該程序在SDT上依次傳輸了START,、GRP、8位Control Byte,、ACK,、STOP,其中8位Control Byte的串行化主要是由帶進(jìn)位標(biāo)志循環(huán)移位指令(RLC A)實現(xiàn)的,。
2.2.3 操作步驟
  系統(tǒng)上電后,,MCS51單片機(jī)應(yīng)先向EM83010發(fā)出“讀R-option”命令(與TransmitControl子程序相似,參數(shù)A=0C1H,,且發(fā)送“STOP”上升沿前應(yīng)延時500μs),,將片選地址讀入后,P00~P02的R-option地址片選才起作用,。
  接下來,,可根據(jù)需要對EM83010的端口0,、端口1及RAM進(jìn)行讀寫,從而實現(xiàn)了單片機(jī)I/O口及RAM的擴(kuò)展,。
參考文獻(xiàn)
1 EM83010-I/O EXPANDER. EMC Corp.
2 何立民. MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計. 北京:北京航空航天大學(xué)出版社,,1993

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。