当前位置:首页 > 单片机 > 单片机
[导读]1 引 言I2C总线接口器件在视频处理、移动通信等领域的应用已经非常普遍。另外,通用的I2C总线接口器件,如带I2C总线的RAM,ROM,A/D,D/A,LCD驱动器等,也越来越多地应用于计算机及自动控制系统中。随着I2C接口器

1 引 言

I2C总线接口器件在视频处理、移动通信等领域的应用已经非常普遍。另外,通用的I2C总线接口器件,如带I2C总线的RAM,ROM,A/D,D/A,LCD驱动器等,也越来越多地应用于计算机及自动控制系统中。随着I2C接口器件越来越广泛的应用,8051系列单片机与他之间的通信越来越频繁。

8051系列单片机与I2C总线接口器件通信时,8051的通用口与I2C总线器件的SCL,SDA连接。根据I2C 总线数据传输协议,8051必须对其两个通用口进行频繁的置位、清零。根据基于51指令系统编制的汇编程序,传送一位数据,需要9个机器周期,而对于 8051,一个机器周期要耗费6个时钟周期,即用54个时钟周期才能传送一位数据。如此则极大地占用了CPU的工作时间,降低了系统的工作效率,导致I2C器件的优势难以显现。因此,有必要设计8051与I2C总线的专用接口电路。该接口电路能够对I2C总线上的数据进行自动收发,而CPU只需要通过并口访问该接口电路中的有关寄存器就可以实现与I2C器件的数据交换,从而使整个系统的性能得到提高。本设计用VHDL硬件描述语言为工具,用ALTERA公司的 MAXPLUSⅡ软件进行编译仿真,下载芯片为EPM7128SLC84-15。

2 设计目标和要求

为了提高数据传送的速度,设计一个I2C接口电路。8051不直接与I2C器件交换数据,而是通过并口与该I2C接口电路交换数据,I2C总线上的数据传送也通过该I2C接口电路来完成。从而通过CPU的外部存储器读写指令就可实现与I2C器件的数据交换,使对串口的操作用并口的方式来实现。

在I2C接口电路内部有一个控制寄存器CI0和一个数据寄存器CI1,即I2C接口电路占用两个地址。通过写控制寄存器CI0的内容实现对I2C接口电路的编程,读写数据寄存器CI1的内容实现与I2C器件的数据交换。在CI0中的内容定义了8051对I2C器件进行操作的类型(读或写)和I2C器件内地址的字节数等信息,使I2C接口电路能够识别从8051传来的数据是地址还是数据、8051将要发送数据还是接收数据以及数据的长度等。

如果8051要发送数据给I2C器件,则根据I2C总线协议,在数据CI1接收到第一个数据后启动I2C总线,然后将CI1中的数据进行并串转换后逐位发出,发出完毕后设置一个标志位,使8051知道可以发送下一个总线后首先写I2C器件内地址,然后进行数据接收,进行串并转换后将接收到的数据装入CI1中,再设置标志位,使8051知道可以读出数据。

根据上述设计要求,I2C接口芯片的引脚如图1所示。其中clk可以使用独立的时钟,使I2C总线的位传送速度远高于8051的位操作,从而可使I2C总线的数据传送接近并口的数据速率;a0是地址信号输入,a0=0时进行CI0写操作,当a0=1时进行CI1读/写操作;bz为标志输出位,bz=0时,8051需要等待,bz=1时8051可以对CI1操作。

I2C接口芯片在系统中的情况如图2所示。这里8051对I2C接口芯片操作使用了查询方式,也可以改用中断方式。

3 并行接口设计的实现

3.1 接口设计的内部结构

该芯片的内部结构图如图3所示。系统由控制寄存器CI0,数据寄存器CI1,并串转换,串并转换,移位寄存器以及I2C控制模块6部分构成。

3.2 方式控制字

8051向控制寄存器CI0写控制字,实现对I2C接口的编程控制。CI0的控制字格式如下所示:

A2,A1,A0位:对与8051相连的I2C器件组的片选(器件地址)。对应不同值时选择不同的器件通信。  

 R/W:用来控制8051对I2C器件的读写操作。1表示8051对I2C器件读数据;0表示8051对I2C器件写数据。

 M1M0:当S=1时的4种工作方式:
    ①I2C总线未连接,要进行写操作。
    ②I2C总线未连接,要进行读操作。
  ③I2C总线已连接,换一个I2C器件或换新地址,要进行写操作。
  ④I2C总线已连接,换一个I2C器件或换新地址,要进行读操作。

S:工作控制位。当S=0时,关闭I2C总线,其他情况S=1。

DZS:指明8051对I2C器件读写的地址数。具体为:
 0:8051对I2C器件内单字节地址读写。  
1:8051对I2C器件内双字节地址读写。

3.3 I2C模块对I2C传输协议的实现

根据I2C数据传输协议,时钟为高电平时,数据线由高电平向低电平跳变,启动I2C数据传输。然后每到来一个时钟脉冲,传送一位串行数据,第8个脉冲到来后,已完成一个字节的传输,第9个脉冲时,发送应答信号。写数据时,I2C器件收到数据,发送应答信号;读数据时,8051收到数据,发送应答信号。数据传送过程中,时钟为高电平期间,数据线上的内容保持不变。数据传送完毕,应答结束后,需要用停止信号停止数据传输,时钟高电平时,数据线由低电平向高电  55平跳变来实现此停止信号。

I2C模块实现I2C数据传输协议。start信号为1时,启动数据传输;write信号为1时,向I2C器件写数据,read信号为1时,向I2C器件读数据。

读写过程中,输出标志位flag、计数器dcnt,控制en的两位矢量,从而控制并串转换寄存器和串并转换寄存器的并入、移位、保持、清零操作。停止信号为1时,结束数据传输。

3.4 接口芯片的工作原理与控制过程

8051向控制寄存器CI0写控制字,实现对I2C接口的编程控制;向数据寄存器CI1写数据,实现对I2C接口的数据传输。

当bz=1时,8051才对数据寄存器读写,而每次读写后接口电路自动将bz置0,在接口电路完成有关操作等待8051的读写时将bz置1。

 (1)I2C总线未连接,要进行写操作。8051的操作:

①写控制字W1;②当bz=1时写器件内地址第1字节;③当bz=1时写器件内地址第2字节…;④当bz=1时写第1字节…。

I2C的操作:

当接收到该控制字W1后操作为:①置bz=1,启动I2C总线;②根据控制字中的器件地址发出第1个字节(器件选择、写);③发送器件内地址,置bz=1;④发送数据内容,置bz=1…。

(2)I2C总线未连接,要进行读操作。8051的操作:

①电路写控制字W2;②写器件内地址第1字节; ③当bz=1时写器件内地址第2字节…;④当bz=1时读第1字节…。

I2C的操作:

当接收到该控制字W2后操作为:①置bz=1,启动I2C总线;②根据控制字中的器件地址以出第1个字节(器件选择、写);③发送器件内地址;④关闭I2C总线;⑤启动I2C总线;⑥第2次发送器件选择字节、读;⑦接收数据内容,置bz=1…。
 
(3)I2C总线已连接,换一个I2C器件或换新地址,要进行写操作。

8051的操作:

①写控制字W5;②当bz=1时写器件内地址第1字节;③当bz=1时写器件内地址第2字节…;④当bz=1时写第1字节…。

I2C的操作:

当接收到该控制字W5后操作为:①置bz=1,关闭I2C总线;②启动I2C总线;③根据控制字中的器件地址发出第1个字节(器件选择、写);④发送器件内地址,置bz=1。

(4)I2C总线已连接,换一个I2C器件或换新地址,要进行读操作。

8051的操作:

①电路写控制字W6;②写器件内地址第1字节; ③当bz=1时写器件内地址第2字节…;④当bz=1时读第1字节…。

I2C的操作:

当接收到该控制字W6后操作为:①置bz=1,关闭I2C总线;②启动I2C总线;③根据控制字中的器件地址发出第1个字节(器件选择、写);④发送器件内地址;⑤关闭I2C总线;⑥启动I2C总线;⑦第2次发送器件选择字节、读;⑧接收数据内容,置bz=1…。

4 结 语

扩展接口芯片设计采用VHDL语言实现,芯片设计的全部程序均通过ALTERA公司的MAXPLUSⅡ软件编译,仿真结果正确。编译、仿真后的VHDL 程序经下载线下载至EPM7128SLC84-15芯片,验证正确。设计的接口时钟要求6 MHz,可直接和单片机接口连接。

扩展后的接口,传送一位数据只需要4个时钟周期。扩展的接口,访问I2C器件的时钟可以自行设定,他们之间的通信不需要等待8051。一旦8051的并行数据送出,该接口可立即用自己设定的速度传送。从而该接口在8051和I2C器件之间通信时,数据的传送可达到并行的速度,这就是本接口扩展设计的最大优点。  

由于使用的设计软件是ALTERA公司的MAXPLUSⅡ软件,下载仿真芯片为EPM7128SLC84该芯片延迟时间为15 s,延时时间过长;接口的设计本身对数据传输的时钟也可进一步减少,更进一步提高数据传输的速度。基于以上两点,还需要对本设计进一步优化,以期进一步提高性能与速度。

参考文献
[1]何立明.I2C总线应用系统设计[M].北京:北京航天航空大学出版社,1995.
[2]曾繁泰,陈美金.VHDL程序设计[M].北京:清华大学出版社,2002.
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

开创中国文旅产业AI深度应用新样本 北京2025年8月22日 /美通社/ -- 以下为来自亿欧的报道: 8月22日,桂林旅游股份有限公司旗下银子岩景区联合合作伙伴正式发布全球首款AI伴游财神玩具 —— "五...

关键字: AI IP 数字化 硬件

马来西亚吉隆坡2025年8月14日 /美通社/ -- 全球云通信平台Infobip今日发布最新报告《AI优势:领先品牌如何在全天候客户世界中蓬勃发展》(The AI Advantage: How Leading...

关键字: 人工智能 IP 智能体 IDC

 - CAS SciFinder集成变革性的新型科学智能AI功能,以提高研发效率和促进创新 开创性的解决方案能够更快速地为科学家提供可操作的答案,从而加速科学发现 俄亥俄...

关键字: 集成 AI FINDER IP

RISC-V生态的快速发展源于业界对这一开放指令集体系结构的共同信念,然而其发展并非一帆风顺。企业在推广RISC-V时面临诸多现实问题,包括来自客户客户的质疑、与Arm的差异化价值、软件移植的难度等等。但这些挑战正在逐步...

关键字: RISC-V CPU 香山 昆明湖 IP AI

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和I...

关键字: TCP IP

北京 2025年7月9日 /美通社/ -- 在人工智能行业竞争日益白热化的当下,思必驰科技股份有限公司(下称"思必驰")重启科创板 IPO的消息一出,便引发了广泛关注。这家成立于2007年的企业,堪...

关键字: 思必驰 IP AI 模型

上海 2025年6月30日 /美通社/ -- 当童年记忆中的"喜羊羊"不再只是屏幕里的动画角色,而是化身能倾听心声、感知情绪的智能伙伴,一场由AI技术驱动的潮玩革命已悄然来...

关键字: 移远通信 AI IP 4G

上海 2025年6月30日 /美通社/ -- 北京时间6月30日,启明创投投资企业、中国AI技术产业化的先行者云知声成功登陆港交所。云知声(09678.HK)发行价为205.00港元/股,市值145.45亿港...

关键字: 云知声 AI技术 模型 IP

上海 2025年6月16日 /美通社/ -- 2025年6月14日,中欧国际工商学院AMP课程二十周年庆典论坛在上海校区隆重举行。这场以「廿载砺行 创见共生」为主题的思想峰会,汇聚了十余位来自学界和商业的领袖、数百位A...

关键字: 数字化 网络 IP 接口技术
关闭