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

发布者:美丽的1号最新更新时间:2014-08-11 来源: dzsc关键字:FPGA  I2C  SLAVE模式总线 手机看文章 扫描二维码
随时随地手机看文章

  0 引言

  由于在嵌入式系统开发中越来越多的应用到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模式总线的设计方案

上一篇:基于FPGA的AFDX终端系统模块设计
下一篇:图像采集存储系统的接口类型汇总介绍

推荐阅读最新更新时间:2024-05-02 23:06

高清视频监控走向主流 FPGA迎来广阔市场空间
我们知道,通信领域历来是FPGA应用的传统主流市场,也是业界领先FPGA厂商倾力争夺的大市场。但是从2009年开始,随着百万像素高清标准(720p及1080p)在视频监控领域从小众走向主流,FPGA应用迎来了又一个广阔的市场空间。    FPGA视频监控应用迅速打开   以全国“平安城市”项目为代表的大量高清视频监控需求的高速增长,以及当时高清摄像机所必须的ISP芯片ASIC/ASSP还不成熟,给FPGA留出了施展其可编程优势的空间和舞台。   在2009年之前,视频监控还处于标清(D1分辨率,40万像素)时代,摄像机使用的图像信号处理(Image Signal Processing,简称ISP)芯片,基本被索尼公司推出的一
[模拟电子]
高清视频监控走向主流 <font color='red'>FPGA</font>迎来广阔市场空间
基于FPGA的彩色LED大屏幕控制系统
  LED(Light Emitting Diode)大屏幕作为现代信息发布的重要媒体,正受到社会各界尤其是商业界和广告界的极大重视。随着科技的进步,全彩LED显示屏(RGB三基色)逐渐得到普及应用。LED大屏幕是21世纪广告业发展的趋势,是具有音视频功能的户内外广告展示设备,属国际领先的高科技产品。不仅外观新颖独特,其面积可随意调整,能播放音视频广告节目,而且四面还可装固定灯箱广告位,现各地政府都鼓励推行使用户外LED大屏幕,陆续取消帆布广告、灯箱广告审批。   本方案采用Actel的FPGA实现对彩色LED屏的控制,对于系统的可靠性大大增强,而且低成本的单芯片大大减轻了系统的成本。   1.概述   1.1 功能概述
[电源管理]
基于<font color='red'>FPGA</font>的彩色LED大屏幕控制系统
【STM8S103K3】 I2C
以下为.h文件: 定义了PA1为SDA,PA2为SCL #ifndef __I2C_H #define __I2C_H #include stm8s.h #include stm8s_gpio.h #include tim1.h #include uart.h #include iostm8s103f3.h #include intrinsics.h #define SCL PA_ODR_ODR2 #define SDA PA_ODR_ODR1 #define SDAM PA_IDR_IDR1 #define SET_SCL_OUT() {PA_DDR_DDR2=1; P
[单片机]
Altera发布业界第一个面向FPGA的OpenCL计划
公司完成基于FPGA的OpenCL首次用户评估 2011年11月16号,北京——Altera公司(NASDAQ: ALTR)今天发布FPGA和SoC FPGA的开放计算语言(OpenCL™)标准开发计划。OpenCL标准是基于C语言的开放标准,适用于并行编程。Altera的OpenCL计划结合了FPGA的并行能力以及OpenCL标准,实现强大的系统加速功能。与使用Verilog或者VHDL等底层硬件描述语言(HDL)的传统FPGA开发方法相比,这一混合系统(CPU + FPGA,使用OpenCL标准)还具有明显的产品及时面市优势。通过其OpenCL计划,Altera与多名用户合作,扩展了大学计划,支持在学术界面向FPGA开发的O
[嵌入式]
莱迪思发布MachXO3 FPGA系列
美国俄勒冈州希尔斯波罗市 - 2013年9月25日 - 莱迪思半导体公司(NASDAQ: LSCC)今日宣布推出超低密度MachXO3™现场可编程门阵列(FPGA)系列,世界上最小、最低的每I/O成本的可编程平台,旨在扩大系统功能并且使用并行和串行I/O实现新兴互连接口的桥接。配合先进的小尺寸封装和片上资源,MachXO3系列使得系统架构师可以方便地实现新兴互连接口设计,如MIPI、PCIe、千兆以太网等,实现高性价比的创新。 超低密度MachXO3 FPGA系列为客户提供了一个可编程桥接解决方案,使他们能够用最新的组件和接口标准构建具有差异化功能的系统。凭借先进的封装技术,消除了键合线(bond wire),在一个小封
[嵌入式]
摩尔定律持续作用 FPGA正改变系统设计未来
      现在,重新可编程成为产品设计团队所必备的能力,他们充分利用这一能力尽快将产品推向市场,尽量延长产品在市时间。FPGA的功能、容量、性能在不断提高,而功耗和成本显著下降,足以成为大批量、低成本应用非常可靠的选择方案之一。        对于采用了单芯片方案且面向全球市场的新产品,应能为不同区域市场提供各种各样特性的产品。从工业、消费类到军事领域,在迅速出现的某些市场上,例如各类应用中的显示器市场,需要针对不同的地区提供一系列的产品尺寸和配置,包括屏幕尺寸和分辨率、性能、工作环境、HDTV和广播标准等。今天,现场可编程门阵列(FPGA)支持使用单一硬件平台,并可根据市场或者地区需求来灵活调整设计,而且已经在很多这类应用
[嵌入式]
无线设备中的可编程电池充电技术
  正是用户手指底下无数个看不见的可编程器件使得手持设备变得如此便利和有趣。这些手持设备配备的电池容量足可以满足在一个小孩的注意力集中的时间段或一个工作日的使用,因此只要电池有机会重新充电就可以让人们周而复始地享受它带来的乐趣。一些更高级设备中的充电器更是具有强大的可编程能力,这些充电器不仅可以缩短充电周期,还能延长电池的使用寿命。   如今,充电器可编程能力的发展已远远超出了手持设备的上述的这两个基本要求,在监视充电电压和电流的同时,充电器还能随时监测电池温度,精确地控制电池充电速度,从而实现最佳的电池容量恢复和安全性。充电器还在电池的使用过程中连续地监视电池电压,不仅可以在电池电压较低时予以提醒,还能告诉用户在电池必须充电之前
[电源管理]
无线设备中的可编程电池充电技术
FPGA助力高速未来
超级高铁技术是一种十分新潮的交通概念,它有望以其高速、低压系统重新定义移动出行的未来。 超级高铁的核心是在密封管网络中,乘客舱在磁悬浮和电力推进下,以超高速度行驶。 确保如此复杂系统的无缝运行和安全性需要先进的控制和监控功能,而这正是FPGA的用武之地。 FPGA提供无与伦比的灵活性、安全性和高性能,可处理各类复杂任务,包括管理超级高铁网络中的推进、导航和通信等。凭借自身的可重新编程性、行业领先的安全功能和实时数据处理能力,FPGA在优化超级高铁运输系统的效率和可靠性方面发挥着关键作用,为更快、更安全、更可持续的旅行方式铺平了道路。 Swissloop原型车亮相2023年苏黎世公开活动 Swissloop是一个由苏
[嵌入式]
<font color='red'>FPGA</font>助力高速未来
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved