I2C总线通讯接口器件的CPLD实现AET

稳定;传送一个字节的数据,必须由接收机发一个应答信号。总线的传输码速率为100kbps(标准)~400kbps(高速)。采用+5V电源供电时,输入电平规定为:VILmax=1.5V,VIHmin=3V;采用宽电源电压时,电平规定为:VILmax=1.5VDD,VIHmin=3VDD。IIC总线的通讯过程如图1所示。

2ISP的逻辑实现

2.1通讯的启动与停止

2.2发送数据

2.3接收数据

在主机方式下,完成通讯启动和地址信号发送后便开始准备接收数据。每接收一个字节后要发出应答信号,产生一个负脉冲作为中断请求信号输出给处理器。若此时系统忙,则拉低SCL电平迫使发送机进入等待状态。从机方式下的接收与主机方式下一样。VHDL描述如下:PROCESS(SDA1)SACK:="0";FULL1:="0";STP:="0";INTQ:="1";IF(CSTA="1"ANDADDOK="1")THENIF(SCL"1"EVENTANDSCL1="0")THEN……——接收数据,串入并出移位(略)FULL1:="1";ENDIF;ENDIF;IF(FULL1="1")THENIF(RD"EVENTANDRD="1"ANDSCL1"EVENTANDSCL1="0ANDBUSY="0")THENSDA1:="

0";FULL:="0";INTQ:="0";ELSESDA1:="1";IF(CLK1"EVENTANDCLK="0"ANDFULL1="0")THENIF(CLK1COUNT"20")THENINTQ:="1";CLK1COUNT:="0";ELSECLK1COUNT:=CLK1COUNT+1;ENDIF;ENDIF;IF(SLAVE="1"ANDSCL="1"ANDSDA"EVENTANDSDA="1")THENSTP:="1";CSTA:="0";ENDIF;ENDIF;ENDPROCESS;

2.4总线仲裁

在通讯过程中,ISP器件在发送数据的同时接收总线上的数据,将该数据与已送的数据进行比较,若不相同则置位状态发生器的SLAVE,表示该主机退出竞争。通过处理给控制寄存器发送控制字可以让ISP器件转入从机工作方式。这时启动地址检测,禁止SCL的发送。在一次通讯结束后,将状态生成器的END置位,此时处理器可以再次将ISP器件设置为主机方式。

2.5控制寄存器与状态生成器

控制寄存器主要是定义ISP器件的工作状态,其各位的定义为:BUSYCLKENCLKS2CLKS1STASTPM/SBUSY:若该位为"1",主机作为接收机时,不发应答信号;STA:启动信号位;STP:停止信号位;M/S:主从机位,用于选择芯片工作状态(主机还是从机);CLKS1、CLKS2:频选控制位;CLKEN:SCL使能位,该位为1时SCL置高电平。状态生成器可以生成工作状态信号(中断、IIC总线竞争、从机方式时通讯开始与结束)供处理器查询[FS:PAGE]处理。

3参数配置

该器件可以配置为从100kbps(标准)到400kbps(高速)的任何传送速度,以满足不同的需要。只需在VHDL(描述的结构体中指明配置的参数即可实现配置,非常方便。本设计只使用一片可编程芯片即可完成IIC总线接口的芯片功能。由于采用VHDL-93语言进行设计,具有良好的可移植性,可用于其它ISP厂家的产品中。通过ByteBlast下载线可以在线改变其功能,体现了CPLD中的ISP器件的优越性。

THE END
1.IIC协议IIC总线在传输数据的过程中一共有三种类型信号,分别为:开始信号、结束信号和应答信号。 //起始位,停止位,数据位,速度 1. 起终信号 这些信号中,起始信号是必需的,结束信号和应答信号 起始信号 SCL =1 SDA = 1; 延时 while(!sda) 延时 终止信号 https://blog.csdn.net/2301_79405674/article/details/141103501
2.IIC总线协议详解IIC(Inter-Integrated Circuit)总线是一种由 NXP(原 PHILIPS)公司开发的两线式串行总线, 用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合 使用,传输距离短,任意时刻只能有一个主机等特性。 在CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbpshttp://www.tqpw.cn/eRMbu6Yn.shtml
3.IIC通信协议总结(详细说明完整过程)腾讯云开发者社区IIC协议把传输的消息分为两种类型的帧: 地址帧–用于master指明消息发往哪搁slave; 数据帧(单个或者连续)–由master发往slave的数据或者是接收到来自于slave的数据。一次读写单位为8bit,高位先发 注:IIC读写是相对于master来说的。IIC总线的数据传送1、数据位有效性的规定:IIC总线进行数据传送时,时钟信号为高电平https://cloud.tencent.com/developer/article/2073230
4.详解IIC通信协议以及FPGA实现业界新闻IIC也称为I2C(Inter-Integrated Circuit)由飞利浦公司(现在的恩智浦半导体)开发,是一种用于短距离数字通信的串行,同步,半双工通信接口协议;传输在标准模式下可以达到100kbit/s,在快速模式下可以达到400Kbit/s, 在快速模式增强模式下可以达到1Mbit/s,在高速模式下可以达到3.4Mbit/s。 https://www.jindouyun.cn/document/industry/details/244275
5.cubemxIIC稳定吗mob64ca1410eb61的技术博客OLED 裸屏总共种接口包括:6800、8080 两种并行接口方式、3 线或 4 线的串行 SPI 接口方式、 IIC 接口方式(只需要 2 根线就可以控制 OLED 了!),这五种接口是通过屏上的 BS0~BS2 来配置的。 0.96 寸 OLED 模块(SPI接口模块): 模块接口定义: GND 电源地 VCC 电源正(3~5.5V) D0 OLED 的 D0 脚,在https://blog.51cto.com/u_16213686/12904898