8051单片机的I2C接口并行扩展
发布时间:2008/9/4 0:00:00 访问次数:710
摘 要:为提高8051系列单片机i2c总线的工作效率,提高整机工作性能,根据i2c总线协议设计了8051单片机的i2c接口电路。用vhdl语言进行设计,并用maxplusⅱ进行编译仿真,下载芯片为有epm7128slc84 - 15。
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总线已连接,换一个i2
摘 要:为提高8051系列单片机i2c总线的工作效率,提高整机工作性能,根据i2c总线协议设计了8051单片机的i2c接口电路。用vhdl语言进行设计,并用maxplusⅱ进行编译仿真,下载芯片为有epm7128slc84 - 15。
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总线已连接,换一个i2
上一篇:AVR单片机定时器的要点
热门点击
- 单片机简介与单片机的发展历史
- 基于控制专用单片机的无刷直流电机控制器
- 采用混合信号高电压单片机实现LED降压-升压
- MCS-51单片机的指令时序
- MCS51系列单片机软件复位的方法
- MSP430单片机与nRF905无线通信系统
- 小型单片机系统延时关机电路
- 单片机通用模拟串口C程序
- 8051单片机的I2C接口并行扩展
- 单片机应用领域
推荐技术资料
- 硬盘式MP3播放器终级改
- 一次偶然的机会我结识了NE0 2511,那是一个远方的... [详细]