微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > I2C总线在多机通信中的应用

I2C总线在多机通信中的应用

时间:01-17 来源:21IC中国电子网 点击:

摘要:介绍了I2C总线的结构、工作原理、数据传输方式,讨论了基于I2C总线的多机通信软硬件设计,实现了程控交换多机通信调度指挥系统。

关键词:I2C总线 多机通信 软硬件设计

I2C(Inter Integrated Circuit)总线是Philips公司开发的一种双向两线主机总线,它能方便地实现芯片间的数据传输与控制。通过两线缓冲接口和内部控制与状态寄存器,可方便地完成多机间的非主从通信或主从通信。基于I2C总线的多机通信电路结构简单、程序编写方便,易于实现系统软硬件的模块化和标准化。

本文给出了基于I2C总线的多机通信调度指挥系统方案,讨论了系统的软硬件设计。

1 系统硬件设计

本调度指挥系统由主机和调度操作台两部分组成,工作原理如图1所示,两者间通过RS422总线实现较长距离的数据传送。主机和操行台内部均采用分散多处理器控制,处理器间采用I2C总线进行数据通信。

主机内部采用分散控制方式,整个交换系统被分割成多个用户子系统及1个通信子系统,每个子系统由一个CPU处理单元负责128个用户的呼叫控制和管理,多个子系统之间通信I2C组成一个无主通信总线进行信息交互(如呼叫处理信息、维护信息等),构成一个完整的交换系统。

调度操作台由操作台控制CPU、显示屏及多个用户键板构成,支持128~1024个操作按键和256~2048个LED指示灯,每个操作按键可缩位一组电话号码对应主机内的一个电话用户,双灯组合指示该电话用户状态,并支持LCD中文显示。操作台内部主控CPU与用户键板控制CPU之间通过I2CU叫线组成主从通信总线进行信息交互(按键信息、LED显示信息)。

1.1 主机I2C总线构成

子系统的CPU处理单元由Philips-80C652单片机配合外围电路(如EPROM、RAM、EEPROM、译码和I/O驱动等)构成,80C652具有一个支持双向数据传送的I2C总线串行接口,I2C总线逻辑根据路径自动地进行数据传送。CPU对I2CU总线的访问通过以下四个特殊功能寄存器完成:

S1CON(D8H) SIO1控制寄存器

S1STA(D9H) SIO1状态寄存器

S1DAT(DAH) SIS1数据寄存器

S1ADR(DBH) SIO1从地址寄存器

SIO1逻辑通过P1.6/SCL和P1.7/SDA两个引脚连接到外部I2C总线,可工作于以下四种模式:主发送模式、主接收模式、从接收模式、从发送模式。各子系统间的I2C接口复接即构成了主机I2C通信总线,通票用无主通信方式,每个CPU既可以响应通用地址的广播呼叫,也可以进行点对点的通信,完全满足程控交换的信息传送要求且结构简单。连接示意图如图2所示。


1.2 调度台I2C总线构成

操作台控制CPU板由Philips-80C652单片机配合外围电路(如EPROM、RAM、EEPROM、译码和显示驱动电路等)构成,其P1.6-SCL、P1.7-SDA为I2C总线接口SIO1。单片机的SIO1通过MC3486/3487与主机通过RS422接口通信,SIO1与用户键板的P87LPC764通信,最多可支持63块用户键板的通信连接。

每个用户键板均采用Philips-P87LPC764单片机控制,每块链板提供64个用户按键及128个用户键灯。P87LPC764是51LPC系列OTP单片机,其最大特点是改进型80C51系列,增加了WDT看门狗、I2C总线、三个模拟量比较器、上电复位检测,保证I/O口驱动电流达到20mA,运行速度为标准80C51的2倍,而且温度范围达到了工业级标准(-40℃~+85℃)。该芯片的I2C总线系统包括一个可简化软件驱动的I2C总线硬件。除了必要总线仲裁、错误检测、时钟扩展和总线超时定时器外,包括一个一位接口,这个接口通过循环查询或中断同步软件。

采用该设计的优点在于系统扩充性强,软件功能分担:由P87LPC764进行按键扫描和LED显示处理,大大减轻了主CPU-80C652的负担;由于P87LPC764性价比优越,比专用键盘电路更便宜,功能上也可灵活改变;键板可按需配置,只需简单的4线连接(SDA、SCL、+5V、GND)。调度台I2C总线连接示意图如图3所示。

2 I2C总线的数据传送方式

I2C总线器件之间通信串行数据线SDA和串行时钟线SCL传送数据,交换信息。每个器件(微控制器、LCD驱动器、存储器或键盘接口)都要设置一个独特的地址码以示驱别。根据通讯要求,器件可以工作于发送或接收方式,并允许有多个设备作为主站控制总线。总线上主和从、发送和接收的关系仅取决于每次数据传送的方向。

2.1 I2C总线传输数据格式

I2C总线的数据传送格式如图4所示。

S:start信号;

SLA:从机地址,也可以是通用地址;

R/W:读写控制位;

A:ACK响应;

DATA0~DATA7:每组传送8个数据字节;

S/P:下一个start或stop信号。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top