首页 > 技术 > 内容

利用CPLD器件和微处理器实现I2C总线控制器的应用方案

时间:2025-12-01  作者:Diven  阅读:0

1 引言

I2C总线是PHILIPS公司推出的新一代串行总线,由于其结构简单、灵活,各结点具有独立的电气特性,可实现电路的模块化、标准化而被应用。目前许多MCU都带有I2C总线接口,对没有I2C总线的MCU,可采用软件模拟,有通用软件包可以使用,但功能比较简单。在MCU(以Motorola 68000系列为例)和CPLD电子系统设计中,利用CPLD器件资源,按照I2C总线协议标准模式,设计了功能完善的I2C总线控制器,给出了设计思路和实现方法。

2 I2C总线控制器的设计与实现

2.1 I2C总线控制器的原理图

I2C总线控制器的设计采用VHDL语言描述,经编译、综合、适配,下载到具体的CPLD目标器件中,即可实现I2C总线控制器功能。其原理图如图一所示,该设计包括MCU接口和I2C总线接口两大部分。

2.2微处理器(MCU)接口逻辑的设计

MCU接口逻辑包括:地址译码/总线接口、状态寄存器MBSR)、控制寄存器(MBCR)、地址寄存器(MADR)和数据寄存器(MBDR)等组成。I2C总线控制器的微处理器接口支持异步字节数据传输协议,该协议的执行是通过MCU对I2C总线控制器中有关寄存器读写完成的,MCU读写协议如图二所示。

2.2.1地址译码/总线接口的设计

在I2C总线控制器中对MCU数据读/写协议的执行由MCU总线接口状态机完成,整个状态机包含空闲状态、地址译码状态、数据传输状态和应答状态。当MCU设置读/写操作、输出要访问的I2C控制器中寄存器地址信号,并使地址选通信号有效时,状态机从空闲状态进入地址译码状态。若I2C控制器中寄存器被寻址且数据选通信号有效,状态机从地址译码状态进入数据传输状态:如果是读周期,I2C控制器将被访问的寄存器中数据放置在MCU接口总线上;如果是写周期,I2C控制器将从MCU接口总线取数据锁存到I2C控制器的内部被访问的寄存器中,状态机自动进入应答状态,此时,DTACK信号有效表明,如果是读周期,MCU即可从MCU接口总线读取数据;如果是写周期,数据已锁存到I2C的内部寄存器中。

2.2.2 MCU接口特殊功能寄存器的功能

MCU接口地址线共24根,其中高16位为基址(MBASE),用于确定I2C控制器的地址,低8位为MCU接口中特殊功能寄存器的地址。

1)地址寄存器(MADR):寄存器地址为MBASE+$8Dh,存放I2C控制器工作在从机模式时的从机地址。从机地址占高7位,最低位未用。

2) 控制寄存器(MBCR):寄存器地址为MBASE+$91h,产生控制信号,各位功能如下:

MEN:I2C控制器使能。该位为1时,控制寄存器的其各位才有效;MIEN:中断使能;

MSTA:主/从模式转换。当MCU使该位从0变为1,I2C进入主机模式,并产生起始条件;若清0,产生停止条件,并转换为从机模式;

MTX:主机发送/接收模式选择。置1,主机发送,清0,主机接收;

TXAK:传输应答使能。置1,无应答;清0,有应答;

RSTA:重复起始条件。I2C控制器在主机模式,写入1,产生重复起始条件;若总线被其主机占用,写入1时,读回0。

3)状态寄存器(MBSR):寄存器地址为MBASE+$93h,各位设置与功能如下:

MCF:数据传送标志位,当一字节数据正在传输时,为0,一字节数据传输结束,置1;

MASS:从机地址寻址标志位。当I2C控制器中地址寄存器的值与I2C总线传输的地址匹配时,置1,否则为0;

MBB:I2C数据总线忙标志位;

MAL:仲裁丢失标志位。当I2C控制器仲裁丢失时,由硬件置1,MCU的软件清0;

SRW:从机读/写标志位。I2C工作于从机模式,主机从I2C控制器读,置1;写,清0;

MIF:中断请求标志位。当MIEN置1,且有中断请求时,该位置1,在MCU的中断服务程序中,由软件清0;

RXAK:接收应答信号标志位。有应答信号接收,置1;无应答信号接收,清0。

4) 数据寄存器(MBDR):寄存器地址为MBASE+$95h,在物理上,数据寄存器映射成两个独立的寄存器,一个用于发送数据,一个用于接收数据,当MCU访问时,两个寄存器共用一个地址。

2.3 I2C接口逻辑的设计

I2C接口主要包括:主状态机、起始条件/停止条件/SCL时钟信号的生成、仲裁/起始条件/停止条件的检测、I2C状态寄存器、I2C数据寄存器、地址比较、和I2C标题寄存器模块等组成。

2.3.1仲裁、起始条件/停止条件的检测

I2C控制器在下列情况将发生仲裁丢失:1) I2C控制器在主机模式,在地址或数据发送周期,当主机发送“1”,但在数据线上的采样值“0”;2) I2C控制器在主机接收模式,在数据接收周期的应答位,当主机发送“1”,但在数据线的上采样值“0”;3)当总线忙时,MCU企图产生起始条件;4) I2C控制器在从机模式,MCU企图产生重复起始条件;5) I2C控制器在主机模式,没有产生停止请求,但检测到停止条件。当I2C控制器检测到起始条件时,数据总线忙标志位置1,检测到停止条件时,数据总线忙标志位清0。

2.3.2 SCL、SDA、起始、停止条件的产生

该模块完成如下功能: 1)允许任何主机控制总线,一旦I2C总线控制器控制总线,将产生起始条件;2)产生SCL串行时钟信号,且对SCL进行逐位仲裁,满足时钟同步协议;3)I2C总线控制器在发送模式时从数据寄存器(MBDR)发送数据到SDA数据线上;4)若I2C总线控制器检测到仲裁丢失,将继续产生SCL信号直到丢失仲裁的该字节末尾;5)当有重复起始条件和停止条件请求时,产生重复起始条件和停止条件。

2.3.3 I2C接口主状态机

I2C接口主状态机如图三所示,无论I2C控制器工作于主机还是从机模式,这个状态机都适用。当仲裁丢失或作为从机被寻址时,I2C控制器立即从主机模式转换为从机模式。

在HEADER状态,I2C工作在主机模式时,一方面从数据寄存器(MBDR)发送标题到I2C总线上,另一方面将I2C数据线上的数据逐位接收到标题移位寄存器内,当8位数据全部移入时,进入ACK_HEADER状态。在ACK_HEADER状态,I2C控制器于主机模式,采样SDA的值, 从而决定是否有从机应答,如果从机不应答,进入STOP状态,等待生成停止条件;如果从机有应答,标题移位寄存器中最低位决定I2C控制器是接收还是发送数据,状态转换到RCV_DATA或XMIT_DATA状态。不断地将地址寄存器(MADR)的值与标题移位寄存器的值进行比较,若地址匹配,I2C控制器作为从机被寻址并立即转换为从机模式。状态寄存器(MBSR)中的从机寻址标志位MAAS置位,将TXAK位发送到SDA线上应答当前的主机,同样标题移位寄存器中最低位决定数据传送方向和下一状态。

3 结语

本文根据I2C总线规范的标准模式,在MCU和CPLD综合应用系统中设计了I2C总线控制器。在实际应用系统中嵌入该IP核,可以节约成本,提高系统的适用范围和可靠性,具有很高的参考设计价值和工程实用价值。

猜您喜欢


贴片电阻上的「522」标记代表其阻值。这是一种三位数字编码方式,其中前两位数字表示有效数值,第三位数字表示10的幂次方。具体来说,「522」中,「52」是有效数...
2024-11-26 11:29:31
电位器作为重要的调节元件,应用于音响设备、仪器仪表、自动控制等领域。奥斯特(OST)作为知名的电位器品牌,优良的品质和丰富的产品线受到众多工程师和企业的青睐。面...
2018-07-23 16:34:55
现代电子产品中,连接器的选择非常重要。CONN_9.1X4.2MM_SM作为常见的连接器,因其独特的设计和优良的性能,应用于各种电子设备中。本文将深入探讨CON...
2025-04-22 19:30:10
精密电阻作为电子元件中的重要组成部分,在各种电子设备中是关键配件。ROHM(罗姆)作为一家知名的电子元器件制造商,其精密电阻产品因高品质和可靠性能受到认可。本文...
2018-02-01 13:40:03
现代电子产品中,电子元件的选择很重要。其中,SOT143-4作为广泛应用的封装类型,因其独特的特点和优越的性能,受到了众多工程师和设计师的青睐。本文将深入探讨S...
2025-02-21 12:51:17
滤纸是实验室和日常生活中常用的工具,其种类繁多,主要有以下几种区别。材质不同。滤纸通常由纤维素、玻璃纤维或聚酯等材料制成。纤维素滤纸适用于一般的液体过滤,而玻璃...
2015-11-23 00:00:00
自恢复保险丝独特的自我恢复能力,在过流保护中是非常重要的配件。Langlu(朗路国际)作为该领域的佼佼者,其自恢复保险丝系列不仅涵盖了的应用场景,还携手多家知名...
2020-04-19 02:30:30
音箱和音响在现代生活中是重要的配件,应用领域,几乎涵盖了我们日常生活的各个方面。在家庭娱乐中,音响系统是观看电影和听音乐的必备设备,提供高质量的音效体验。在商业...
2009-01-16 00:00:00
DC-DC转换器作为一种重要的电源管理组件,在电子设备中应用。面对市场上琳琅满目的品牌,选择合适的DC-DC转换器显得尤为重要。以下列举一些主流的DC-DC转换...
2024-03-13 00:00:00
现代电子设备和电气系统中,保险丝作为保护电路安全的重要元件,起着关键作用。选择合适的保险丝电流大小和型号,不仅能有效保护设备免受过载和短路的损害,还能延长设备的...
2025-11-06 22:00:37