基于FPGA的I2C SLAVE模式总线的设计方案

最新更新时间:2014-02-28来源: 21IC关键字:FPGA  I2C  SLAVE模式 手机看文章 扫描二维码
随时随地手机看文章

由于在嵌入式系统开发中越来越多的应用到FPGA,而一些嵌入式CPU,比如STM32 为了降低成本,减小封装尺寸,没有外接专门的CPU 读写总线,而只提供了一些如SPI 和I2C 的接口。而且在应用中经常有数据要配置到FPGA 中,如FPGA 中的应用配置寄存器,和配置表项等,都需要CPU 配置。这些数据的数据量不大,速度也不要求很高,很适合用I2C 总线来配置。

I2C 总线是Philips 公司设计的一种控制和配置内部IC 双向两线的串行总线。主要特点是接口信号线较少,但是其数据的传送速率不是很高,其高速模式下为3.4Mb/s.应用于配置FPGA 比较适合。在通常的应用中嵌入式CPU 作为MASTER 模式的主器件,FPGA 作为SLAVE 模式的从器件。通过使用I2C 总线,减少了CPU 和FPGA 的连线,而且嵌入式CPU 一般有内含I2C总线控制器,使得CPU 和FPGA 间的通讯硬件电路简化。

1 I2C SLAVE 模式整体结构的分析设计

I2C 总线要求两条信号线,一条串行数据线 SDA,一条串行时钟线 SCL.通过串行方式传送数据。它是一个多主器件的总线,如果两个或更多主器件同时传输数据,可以冲突检测和仲裁。为简化设计和满足应用要求,该设计实现一个标准I2C总线的子集。完成1 字节的单次读写和连续读写功能。所以这就要求应用中的I2C 总线上只能有一个主器件,而FPGA 逻辑则只能当成从器件。I2C 总线的两条信号线都是开漏的,必须外接上拉电阻,以保证总线空闲时,总线都处于高电平。I2C的读写时序图如图1.

 

 

从图1 中可以看出,总线的起始条件为在SCL 为高电平时,SDA 拉低产生一个下降沿。而总线的停止条件为在SCL 为高电平时,SDA 释放由上拉电阻产生一个上升沿。在快速模式下,SCL 时钟频率最大值为400KHz,SCL 时钟的低电平周期最小为1.3μs,SCL 时钟的高电平周期最小为0.6μs.在输入端,输入滤波器必须抑制的毛刺脉宽最大值为50ns.由于SCL是由主器件CPU 的内置I2C 模块产生的,所以SCL 的时序肯定符合要求。而FPGA 要采样SCL 和SDA 信号,那么FPGA 的采样时钟频率至少要为SCL 频率的2 倍以上。再加上抑制的毛刺脉宽最大值为50ns.当FPGA 的系统时钟为100MHz 时,端口以100MHz 的频率采样信号,远远大于快速模式下SCl 的400KHz,抑制的毛刺也将在5 个时钟周期内处理。而且FPGA内部逻辑一般都工作在100MHz 以上,所以I2C 模块的系统时钟可以直接使用FPGA 的系统时钟,可以省去时钟转化模块,简化处理。当I2C 总线读FPGA 时,总线主器件在发送完第一个字节,FPGA 回复ACK 后,紧接着就要FPGA 输出相应的数据,所以在FPGA 逻辑发出ACK 的同时就要开始,FPGA 的内部寻址和读取相应的数据,在SCL 时钟频率最大值为400KHz 时,FPGA 的系统时钟为100MHz,那么FPGA 的内部逻辑有约250个时钟周期的寻址时间,这个时间是完全够用的。I2C SLAVEmode 整体结构图如图2.

 

 

接口信号的说明如表1.

 

 

2 I2C SLAVE 模式控制器的设计与实现

2.1 I2C SLAVE 控制器的接口实现

I2C SLAVE 控制器的接口部分主要包括,信号异步时钟域的转换。输入滤波器,用来抑制毛刺。及SDA 线的双向转换。由于SDA 的PIN 是双向的,所以一定要分配在FPGA 的IO BLOCK块中,只有IO BLOCK 中有双向的硬件结构。因为SDA 和SCL信号的相位相对于FPGA 逻辑的系统时钟的相位关系是不确定的。所以一定要进行异步时钟域的转换,以防止输入的寄存器出现亚稳态,它会使逻辑处在某个不确定的状态。此外FPGA的系统时钟频率比较高,对输入的毛刺比较敏感,故输入端要加入滤波器。接口部分的框图如图3.

 

异步时钟域的转换,采用两级寄存器的结构。输入滤波器采用5 级寄存器的结构。当采样到连续5 个高电平时,输出才为高电平,否则为低电平。接口部分的寄存器全都用FPGA 的系统时钟驱动。

2.2 I2C SLAVE 控制逻辑的实现

I2C SLAVE 控制逻辑状态机是整个模块的核心,所有I2C 总线相应的控制都由其完成。状态机有四个状态:IDLE,START,SAMPLE 和STOP 组成。Verilog 的定义如下:

`define IDLE 2'b00

`define START 2'b01

`define STOP 2'b10

`define SAMPLE 2'b11

下面介绍各个状态的功能。当I2C 总线无任何操作时控制器在IDLE 状态下,并保持。当接口逻辑判断到START 条件时,控制器跳转到START 状态下,并做好接受第一个字节的准备,包括初始化bit计数器。接着开始接受第一个字节包含7bit的地址和1bit 的读写状态位。当采集完第一个字节后,控制器跳到SAMPLE 状态下,开始执行数据字节的接受或发送。是接受或发送的状态由前一字节的最后1bit 的读写状态位决定。

当读写状态位为高时,表示I2C 总线的读操作,FPGA 逻辑发送数据。读写状态位为低时,表示I2C 总线的写读操作,FPGA逻辑接受数据。接着FPGA 逻辑发出一个ACK 信号后,表示可以进行读写操作。那么就进入到SAMPLE 状态下,正常读或写一个字节(也可以连续的读写多个字节,对此没有限制)。在完成8bit 数据读写后,I2C 的主器件会发出一个STOP 条件操作。fpga 逻辑收到后,就跳转到STOP 状态,并在几个时钟周期后,自动跳转到IDLE 状态下。从而完成一个完整的I2C 总线的读或写操作。

当然也包括一些异常处理,以防止状态机处在一个不确定的状态下。在SAMPLE 状态下如果遇到意外的START 条件时,即上次的总线操作没有完成就开始了下次的操作,则控制状态机会跳转到START 状态下,而开始接受这次新的总线操作,而上次的操作为无效。由如在SAMPLE 状态下,但是又收到一个START 条件。还有如在STOP 状态收到一个START 条件,处理也和上面一样。下图4 介绍了I2C SLAVE 控制逻辑状态机的状态跳转图。

 

 

如上图所示,在 SAMPLE 状态下,可以连续的读写数据,而地址是在读写完一个字节后由FPGA 逻辑自动加1 的。这样做使得I2C 总线的一次操作就可以连续对多个字节读或写。提高的总线的使用效率。

以下是在modelsim6.0 下进行的行为级仿真的时序图。

由自行编制的I2C 总线主器件BFM 驱动进行测试。图5 I2CSLAVE 控制器写时序图。图6 I2C SLAVE 控制器读时序图。

 

 

3 结论

本方案通过介绍SLAVE 模式的特点,给出设计的原理框图和modelsim 下的行为仿真时序图。在Altera 的Cyclone II 系列中用Quartus II 12.0生成的模块时钟频率可达到180MHz,占用的资源Totalcombinational functions 为83 个,Total registers 为41 个。而在实际应用中达100MHz 左右。证实了本方案操作简便,效果不错。

关键字:FPGA  I2C  SLAVE模式 编辑:探路者 引用地址:基于FPGA的I2C SLAVE模式总线的设计方案

上一篇:基于CYPRESS的USB3.0总线技术的开发应用
下一篇:基于测试系统的FPGA测试方法研究

推荐阅读最新更新时间:2023-10-12 22:36

模拟I2C总线多主通信研究与软件设计
摘要:介绍模拟I2C总线的多主节点通信原理,并提出一种新的实现方法。这种采用延时接收比较来实现仲裁的方法,可使不具有I2C接口的普通微控制器(MCU)能够实现模拟I2C总线的多主通信,同时对I2C总线的推广起到了积极作用。 关键词:模拟I2C总线 仲裁 多主通信   I2C总线(Inter IC BUS)是Philips公司推出的双向两线串行通信标准。由于它具有接口少、通信效率高等优点,现已得到广泛的应用 。它除了可以进行简单的单主节点通信外,还可以应用在多主节点的通信系统中。在多主节点通信系统中,如果两个或者更多的主节点同时启动数据传输,总线具有冲突检测和仲裁功能,保证通信正常进行并防止数据破坏。现在许多微控制器(MCU)都具
[应用]
基于AVR和FPGA数字式移相信号发生器的设计
1 引 言 移相信号发生器属于信号源的一个重要组成部分,但传统的模拟移相有许多不足,如移相输出波形易受输入波形的影响,移相角度与负载的大小和性质有关,移相精度不高,分辨率较低等。 而且,传统的模拟移相不能实现任意波形的移相,这主要是因为传统的模拟移相由移相电路的幅相特性所决定,对于方波、三角波、锯齿波等非正弦信号各次谐波的相移、幅值衰减不一致,从而导致输出波形发生畸变。目前利用DDS技术产生信号源的方法得到了广泛的应用,但是专用DDS芯片由于采用特定的集成工艺,内部数字信号抖动很小,不可以输出高质量的模拟信号。随着现代电子技术的发展,特别是随单片机和可编程技术的发展而兴起的数字移相技术却很好地解决了这一问题。在众多的单片机之
[单片机]
基于AVR和<font color='red'>FPGA</font>数字式移相信号发生器的设计
Jointwave零延时视频传输for FPGA/ASIC进入军工领域
半导体知识产权H.264/H.265 硅IP核供应商Jointwave公司的发布了一系列视频编解码RTL IP核,已经成功应用于军事工业领域的指挥作战,无人机控制,航空和航天摄像机,视频记录黑匣子等应用 这些IP核对应技术特性如下:第一个特性是视频编码器和视频解码器配合工作可实现零延时视频传输系统,也只有实现了零延时才能应用到军事指挥作战和无人机飞行控制领域。第二特性是视觉无损,1路高清画面 1080P@60FPS 无压缩数据量是3Gbps,采用H.264 Intra only模式采用4:4:4色彩空间,将3Gbps压缩到50Mbps~500Mbps就能实线视觉无损,实现1路4Gbps光纤可同时传输8~20路 108
[嵌入式]
Jointwave零延时视频传输for <font color='red'>FPGA</font>/ASIC进入军工领域
单片机与FPGA在信号测试中的重要作用解析方案
1 引言 在学习《电子线路》、《信号处理》等电子类课程时,高校学生只是从理论上理解真正的信号特征。不能真正了解或观察测试某些信号。而幅频特性和相频特性是信号最基本的特征.这里提出了基于单片机和FPGA的频率特性测试仪的设计方案,可使学生在实践中真正观察和测试信号的频率特性。 2 设计方案 该系统设计采用扫频测试法。设频率响应为H(jω),实系数线性时,不变系统在正弦信号x(n)=Acos(ω0n+ψ)的激励下的稳态输出为y(n)。利用三角恒等式,将输入x(n)表示为两个复数指数函数之和: 若输入为exp(jω0n),线性时不变系统稳态输出为H(exp(jω0n))exp(jω0n)。根据线性
[嵌入式]
单片机与<font color='red'>FPGA</font>在信号测试中的重要作用解析方案
硬件中断方式I2C(CVAVR)
//i2c.h #define TWPS0 0 #define TWPS1 1 #define TWEN 2 #define TWIE 0 #define TWEA 6 #define TWINT 7 #define TWSTA 5 #define TWSTO 4 // TWSR values (not bits) // Master #define TW_START 0x08 #define TW_REP_START 0x10 // Master Transmitter #define TW_MT
[单片机]
STM32单片机按键消抖和FPGA按键消抖大全
写在前面: STM32单片机按键消抖和FPGA按键消抖大全 按键去抖:由上图可以看出理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动的现象,抖动时间的长短和按键的机械特性有关,一般为5~10ms。通常我们手动按键然后释放,这个动作中稳定闭合的时间超过了20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作,有专用的去抖动电路,也有专门的去抖动芯片,但通常我们采用软件延时的方法就可以解决抖动问题。 1. 单片机中按键消抖程序 1.1 单片机中,比如STM32中,一般的方法(最简单的方法) 软件消抖程序: if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_14
[单片机]
STM32单片机按键消抖和<font color='red'>FPGA</font>按键消抖大全
FPGA与DSP的高速通信接口设计与实现
在雷达信号处理、数字图像处理等领域中,信号处理的实时性至关重要。由于FPGA芯片在大数据量的底层算法处理上的优势及DSP芯片在复杂算法处理上的优势,DSP+FPGA的实时信号处理系统的应用越来越广泛。ADI公司的TigerSHARC系列DSP芯片浮点处理性能优越,故基于这类。DSP的DSP+FPGA处理系统正广泛应用于复杂的信号处理领域。同时在这类实时处理系统中,FPGA与DSP芯片之间数据的实时通信至关重要。 TigerSHARC系列DSP芯片与外部进行数据通信主要有两种方式:总线方式和链路口方式。链路口方式更适合于FPGA与DSP之间的实时通信。随着实时信号处理运算量的日益增加,多DSP并行处理的方式被普遍采用,它们共享总线
[嵌入式]
Xilinx:FPGA向标准化虚拟SoC平台演进
  “ 未来的FPGA,将会采用创新的迭堆式封装(SIP),即在一个封装里放多个裸片的技术,到那时,FPGA将成为一个标准的、虚拟的SoC平台来应用。”   半导体行业最让人称道的是,能把沙子做成比金子还要贵的产品,并且这个故事一直延续到今天。这也激发了人们的创新意识,并不断展示创新性思维将创新技术和融合技术给人们带来的奇迹。   FPGA向平台化方向发展   一年前,记者曾采访过Xilinx公司副总裁兼首席技术官Ivo Bolsens,当时Ivo Bolsens就表示过,目前的FPGA厂商只充当技术跟随者的角色已不能满足客户的要求,而是要根据市场发展的需求,不仅在器件生产技术和设计架构方面不断创新,还
[测试测量]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved