- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
I2C总线控制及基于FPGA的实现
[摘 要]根据串行扩展的特点,详细描述了12C总线的结构、原理和工作过程,通过举例介绍了通过FPGA设计实现12C总线的基本思想,并给出了xlinx ise 6.1环境下仿真程序部分代码和ModelSim软件下的仿真时序图。
[关键词]12C总线;VHDL;FPGA
引言:在开发FPGA中,利用EDA工具设计芯片实现系统功能已经成为支撑电子设计的通用平台,并逐步向支持系统级的设计方向发展,各分立元件的连接和接口扩展就显得十分重要。扩展的方法有两种:一种是并行总线,另一种是串行总线。由于串行总线连线少,结构简单,往往不用专用的母板和插座而直接用导线连接各个设备即可。因此,采用串行总线大大简化了系统硬件设计。尤其是12C串行总线,它是具备多主机系统所需的包括裁决和高低速设备同步等功能的高性能串行总线,以其接口简单、使用灵活等突出优点在数字系统中获得了广泛的应用。
1、几种串行总线
虽然现代的微控制器和FPGA提供了大量的120插脚,并且SMD技术(表面安装器件)也在一块几英寸大小的PCB上提供了尽可能多的插脚,但这并没有影响串行总线连在电路板分立元件连接方面的应用。除传统的总线如12C和SPI(串行外围接口)之外,还有在温度计和智能按键等的灵敏传感器方面广泛应用的Dallas 1-Wire单总线等。
SPI通过快速ADC、DAC、E2PROM设备连接微控制器,分离的输入输出插脚保证了数据高速率。由于协议中并没有内嵌式地址,因此总线上各个设备必须支持片选信号,每个从设备有一个被选输入,主设备必须具有与其从属设备数量一样多的被选输出,或者必须有一个外部解码器。SPI允许简单地连接移位寄存器之类的非智能外围设备,连锁式的移位寄存器可以实现大容量输入输出扩展器。
Dallas单总线上的连接则必须具备高智能水平。在这个协议中,单总线通常要求外接一个4.7kΩ左右的上拉电阻,用持续1到15μs的低电平来传送1,用持续60μs到1201μs的低电平来传输0。指令和数据通过这种方式传输到从设备。控制器为了同步发送一个“1”,从设备将其中一部分转换为“O”,数据通过这种方式从设备传输至控制器。
Philips公司早在1980年开发了I2C标准,I2C总线是关注速度和复杂程度之间的很好的折衷,当时只定义了100kHZt和400kHZ两个传输速率,但并没有规定单个比特的长度,所以在一个没有诸如中断限制的微控制器的系统中用软件驱动I2C设备很容易实现。
I2C总线只使用两根I20,就可以对一系列的I2C器件进行控制,节省了I/O口,受到越来越多工程师的青睐。由于电接口的集电极开路特性,从设备可以在任意时刻连接或断开而不会影响总线上的其它设备。I2C总线还包括了一个利用线与连接的仲裁机制,这就意味着真正的多主体总线可以实现,在特定时间内只有一个主控端能够取得总线控制权。实际上,如果两个甚至更多的主体试图在总线上传递信息(第一个产生“1”的同时,其他主体产生“0”),它们将会失去主控权。同时,如果有一台从设备是低速设备,它将抑制时钟线路延缓总线上所有事务。
基于以上原因,12C总线是一个控制FPGA器件的很好选择,可以在FPGA上通过自定义逻辑来实现从接口。
2、I2C总线详解
I2C是英文“Inter Integrated Circuit”的缩写,中文意思是“集成电路之间”。I2C总线就是集成电路之间传送时钟脉冲与数据的公用线路。采用I2C总线控制就是将微处理器的SCL(串行时钟)、SDA(串行数据)总线与其它集成电路或存储器连接起来,通过总线来交换信息,实行控制。I2C总线最主要的优点是其简单性和有效 性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,从而减少了电路板的空间和芯片管脚的数量,进而降低了互联成本。
I2C总线的男一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主控设备(在任何时间点上只能有一个主控设备)。一个主控设备能够控制信号的传输和时钟频率。有大量的微处理器外围设备可以附加到上面,通过120扩展器(如PCF8574)来起动显示控制器和E2PROM,通过一个12C器件关联的存储器总量没有限制,可以从几个字节到256kb甚至更多。
每个I2C器件都拥有一个唯一的7-bit I2C地址,让主控端知道通信传输的对象是谁,通常7-bit中四个较重要的位(MSB――theMost Significant Bit)为固定的,并依器件本身性质的分类区分,如1010即代表串行E2PROM。而其他三个较不重要的位(LSB),即A2、A1与A0则可以通过硬件电子
文档评论(0)