首页 » 技术文章 » 基于I2C总线的单主多从单片机之间的通信

基于I2C总线的单主多从单片机之间的通信

作者:  时间:2011-04-01 18:54  来源:EDN

  1 引言

  随着单片机控制系统的不断扩大以及控制功能不断增多,有限的单个单片机通用I/O口已不能满足同一系统中控制多个受控对象需要,随着FC总线研究的深入,用I2C总线扩展单片机I/O口的方法在全自动、半自动仪器的开发领域得到了广泛应用,本文介绍了一个测试系统通过FC总线扩展I/O口实现了系统的多个功能。给出了系统的硬件连接以及Atmega128与三个Atmega168之间的软件通信流程图。

  2 系统的硬件结构

  图1是作者所研究的测试系统的整体框图,本系统中主要芯片PHILIPS公司的LPC2292,在此系统中键盘上其中三个按钮分别控制三个电机,系统的主要功能是LPC2292将扫描到的键盘信息发给Atmega128单片机,Atmega128单片机通过I2C总线寻址Atmega168,并向被寻址的Atmega168发送电机控制命令,最后,电机根据Atmega168控制策略正常运行。电机启动同时,数据采集模块也开始正常运行,数据采集模块把采到数据送到LPC2292A/D转换接口,然后将ADC输出的数据发送到LCD。系统中的拨码开关用于设置相应的Atmega168单片机的地址,当单片机Atmega128接收到LPC2292发来的控制命令时,通过I2C总线寻址Atmega168,当某个Atmega168的地址与Atmega128广播地址相同时,它就开始根据Atmega128发送的命令控制电机开始工作。

1基于I2C总线的I/O扩展框图

  3 I2C总线

  I2C总线是PHILIPS公司推出的芯片间串行数据传输总线,软、硬件协议十分巧妙,2根线(SDASCL)HP可实现完善的全双工同步数据传送,能够十分方便地构成单主系统或多主系统和外同器件扩展系统。不过,多主系统(即系统中有多个I2C总线接口的单片机)会出现多主竞争的复杂状态。I2C器件是把I2C的协议植入器件的I/O接口,使用时器件直接挂到I2C总线上,这一特点给用户在设计应用系统时带来了极大的方便。I2C器件无须片选信号,是否选中是由主器件发出的I2C从地址决定的。

  所有挂到I2C总线的外围器件,各自都有一个唯一确定的地址。任何时刻总线上只有一个主控器件对总线实行控制权,分时实现点对点的数据传送。I2C总线上所有外闱器件都有规范的器件地址,器件地址由7位组成,它和1位方向位(R/W)构成了I2C总线器件的寻址字节SLA,格式如下:

  器件地址(A6A5A4A3)I2C总线外围接口器件同有的地址编码(4位或5),器件出厂时已固化好。引脚地址(A2A1A0)和器件在电路中的实际接法有关(地址线、电源或地),形成地址数据。数据方向位(R/W)规定了总线上的主节点对从节点的数据传送方向,当(R/W)位置1时接收,当(R/W)0时发送。图1中的拨码开关设置了从单片机Atmega168的地址,也就是从机地址的低三位(A2AIA0),当某个拨码开关的某个开关闭合时,相应的地址位为零,否则相应位为1,因此可以通过拨码开关上开关的状态来设定从单片机Atmega168的地址,比如某个拨码开关与A0A2位对应的开关闭合,与Al对应的开关断开,那么这个单片机地址的低三位为010

  4 I2C通信的流程图

  根据I2C总线的传输协议规范和硬件连接,作者给出了如图2和图3基本程序流程图和部分程序。开发语言为c语言,与汇编语言相比,可以提高软件的执行速度。

2 I2C主机发送程序框图

3 从机接收流程图

相关推荐

德州仪器推出业界首款支持 SPICE 模型的 SAR ADC

德州仪器  ADC  SPICE  2012-05-24

美国出口管制条例对于Linear ADC系列重新进行分类

凌力尔特  ADC  2011-12-20

为高速模数转换选择优秀的缓冲放大器

ADC  缓冲放大器  2011-09-16

透视芯海科技在ADC技术上的“穿越”

芯海科技  ADC  CSE7780  2011-09-14

理解Σ-Δ ADC中时钟公差对50Hz/60Hz噪声抑制

ADC  滤波器  2011-09-01

副边变压器端接提升高速ADC的增益平坦度

ADC  变压器  2011-08-31
在线研讨会
焦点