您当前的位置:五五电子网电子知识单元电路接口电路具有串行接口的I/O扩展器EM83010及其应用 正文
具有串行接口的I/O扩展器EM83010及其应用

具有串行接口的I/O扩展器EM83010及其应用

点击数:7696 次   录入时间:03-04 11:57:49   整理:http://www.55dianzi.com   接口电路

摘 要: 介绍了具有串行接口的I/O扩展器EM83010的性能和特点,利用EM83010实现了对MCS51单片机的I/O扩展。

    关键词: I/O扩展 串行接口 MCS51单片机

    单片机I/O口的扩展,过去常常采用门电路或可编程逻辑器件等来实现,比较麻烦。本文介绍具有串行接口的I/O扩展器EM83010及其应用,从而为设计者提供一种新的I/O口扩展方法。使用EM83010进行I/O扩展,不仅非常简便,而且具有强大的功能。

    1 EM83010简介

    EM83010是EMC公司生产的带串行接口的I/O扩展器,它具有以下功能及特点:

    · 14个双向I/O口线

    · 2个I/O寄存器,2个I/O控制寄存器

    · 144×8bit片内RAM

    · 与MCU通过2线串行接口相连

    ·2线最多可同时接8片EM83010(此时扩展I/O数量为112个,RAM容量为1152×8bit) 

  b1.gif (9167 字节)  · 工作电压宽:2.5V~5.5V

    · 低功耗,工作电流0.5mA,静态电流15μA

    · 18DIP/SOIL封装形式

    1.1 管脚定义

    对于18DIP封装的EM83010而言,其管脚功能如表1所示。

    1.2 内部功能框图

   t1.gif (7594 字节) EM83010内部功能框图如图1所示。EM83010内部主要包括I/O控制逻辑、存储控制逻辑、地址指针、144字节的RAM、状态及控制寄存器、两个端口及其对应的数据寄存器和控制寄存器。

    1.3 2线串行接口

    EM83010支持双向2线串行接口,其中由SCK提供串行同步时钟,SDT收发数据,并且最多可以有8个EM83010同时共享该总线。

    串行总线上数据传送的时序如图2所示。

    数据传输依次为:START、GRP位、DATA(控制字节、数据或地址,高位在前,低位在后)、ACK位、STOP。其中START定义为SCK= “1”时SDT的下降沿;STOP定义为SCK=“1”时SDT的上升沿;若GRP=“0”,表示下面的字节是控制字节,否则表示下面的字节是数据或地址;ACK的产生方法是在ACK周期(回应时钟)的高电平期间将SDT拉低。STOP产生之后,SCK、SDT保持高电平状态。

    串行总线上定义了三种数据格式:

   t2.gif (6626 字节) (a) 控制字节的传送

s1.gif (2856 字节)

    (b) 随机地址的数据读写

s2.gif (3460 字节)

    (c) 连续地址的数据读写

s3.gif (3870 字节)

    在以上数据格式中,S:开始(START);P:停止(STOP);D:数据(8位);1:(GRP)高电平;0:(GRP)低电平;A:地址(8位);K:读数据时有回应(ACK);C:控制字节(8位);NK:读数据时无回应(No ACK)。

    b2.gif (14675 字节)1.4 控制字节

    控制字节的位定义如表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位寄存器,对应端口0,读写R00的高2位无意义。

  b3.gif (4692 字节)  ·R01是8位寄存器,对应端口1。

    ·每个I/O管脚均可定义为输入或输出。

    ·写入R00和R01时是串行传送的,但数据被刷新到管脚上是同时的;读R00和R01时,管脚数据的 采样也是同时的。

    1.5.3 R02和R03(IOC0和IOC1)

    ·IOC0(R02)是6位寄存器,控制端口0数据I/O的方向,读写IOC0的高2位无意义。

    ·IOC1(R03)是8位寄存器,控制端口1数据I/O的方向。

    ·IOC0和IOC1中的“1”置对应管脚为高阻,表示输入;“0”置对应管脚为输出状态。

    ·上电后,IOC0和IOC1各位均为“1”。

    ·IOC0和IOC1的接收是串行的,但写入寄存器是同时的。

    1.5.4 R04~R93(通用寄存器)

    ·R04~R93为144字节的通用寄存器(SRAM)。

    1.6 R-option地址片选

    总线上有多个设备时,每个设备应具有不同的地址。如表1所示,P00~P02可作为R-option 脚,用于芯片的片选。

    每个R-option管脚被内部电路微弱拉为高电平,若外接560kΩ电阻接地则读作“0”,否则读作“1”。

    上电后必须在控制字节中发出“读R-option”命令(此时Control byte=11000001,且“STOP”上升沿之前应该延时500μs),将片选地址读入后,P00~P02的R-option地址片选才起作用。

    P00~P02可作为双向I/O管脚,由于R-option功能的原因,建议P00~P02用作输出脚。

    1.7 EM83010的应用电路举例

    EM83010的应用电路如图3所示。R2~R8=560kΩ,R1=10kΩ,此电路有3片EM83010,共用2根总线(MCS51单片机的P10和P11)。由R2~R8的接法可知,3片EM83010的地址分别为000、001、010。

    这样,在图3中,2根I/O线(P10、P11)可扩展14×3=42个I/O口,以及144×3=432字节的RAM。

    可见EM83010用于I/O扩展时,不仅便于实现,而且功能强大。

   2 EM83010用于MCS51的I/O扩展

    2.1 硬件电路

    利用EM83010对MCS51单片机进行I/O扩展的硬件电路请参照图3。直接将MCS51单片机的2根I/O口线(如P10、P11)连至SDT、SCK即可。

    2.2 软件设计

    2.2.1 基本考虑

    EM83010的SCK时钟频率最高可为500kHz。对于主频12MHz的MCS51单片机而言,其指令周期不小于1μs,由指令产生的SCK时钟周期不小于2μs,完全满足上述条件。

    2.2.2 程序编写

    下面以发送控制字节(Control byte)子程序为例,说明MCS51系列单片机对EM83010的控制方法。

    ;发送控制字节子程序

    ;Control Byte 存放在累加器A中

    SDT bit P10 ; P10与EM83010的SDT相连

    SCK bit P11 ; P11与EM83010的SCK相连

    t3.gif (16319 字节)TransmitControl:

    SETB SDT ;

    SETB SCK ; 在SCK高电平期间

    CLR SDT ; 产生“START”(下降沿)

    CLR SCK ;

    SETB SCK ; 发送“GRP”(GRP=0)

    MOV R0


本文关键字:接口  扩展器  接口电路单元电路 - 接口电路

《具有串行接口的I/O扩展器EM83010及其应用》相关文章>>>