教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

[精品]基于FPGA的I2C接口程序实现毕业论文(2)

来源:网络收集 时间:2026-09-27
导读: IIC总线数据传输定义了两种时序状态,分别为起始信号和终止信号,如图2.4所示。 启始信号(START),当时钟线SCL保持高电平期间,SDA由高电平向低电平切换,表示开始传送数据,终止信号(STOP),当时钟线SCL保持高电平

IIC总线数据传输定义了两种时序状态,分别为起始信号和终止信号,如图2.4所示。 启始信号(START),当时钟线SCL保持高电平期间,SDA由高电平向低电平切换,表示开始传送数据,终止信号(STOP),当时钟线SCL保持高电平期间,SDA由低电平向高电平切换,表示停止传送数据。

图2.4 IIC总线上的起始和终止信号

起始信号与终止信号都是由主控制器产生,当IIC总线出现起始信号时,总线进入“忙”状态,当IIC总线上出现结束信号时,总线进入“空闲”状态。挂接在IIC总线上的主从设备通过检测起始信号和结束信号判断总线的“忙”、“空闲”状态。由于IIC总线协议不定义优先级概念,因此任何新进程的开始必须等待当前进程的结束。使用硬件接口可以很容易地检测起始和结束信号,没有这种接口的微机必须以每时钟周期至少两次对SDA取样以检测这种变化。

2.2.3 总线信号的时序

为了保证IIC总线数据的可靠传送,对总线上的信号时序做了严格的规定,下面各图中对主要信号时序做了定义。

图2.5 主机向从机发送一个字节的时序

图2.5所表示的是主机向从机发送一个字节的时序,主机向传送一个7位的地址,第8位是读写位。在第9个时钟时,从机发出一个响应信号,接着传输8位的数据,相应地从机继续发送一个响应位,然后主机在时钟线保持高电平期间,拉高数据线,数据传输停止。

图2.6 主机向从机接收1个字节数据的时序

图2.6所表示的主机向从机接收一个字节的时序,前面8个时钟周期与发送时序相同,不同的是在传输8位数据后,由主机发送响应信号,然后启动停止信号。

2.3 IIC总线上的数据传输

2.3.1总线的数据传输格式

图2.10所示的是一个完整的数据传输格式。按照规定,在起始条件(S)之后,发送一个7位的从机地址。紧跟着的第8位是数据方向位(RW),数据方向表明主控器和被控器的数据传输方向。——‘0’表示主控器发送数据(写),‘1’表示请求接收数据(读)。数据传输一般由主机产生停止位(P)终止。在这种传输中,也可以有不同的读写格式相结合。下面介绍3种传输格式,

1、主控制器写操作

主机-发送器向从机发送n个数据字节,方向不变。

注 1-7是地址位,8位是读写位,第9位是响应位 图2.10 完整的数据传输 2、主控制器读操作

在第一个字节后,主控制器立即读从控制器。在第一次响应后,主控制器,发

送器变成了主控制器,接收器,从控制器,接收器变成了从控制器,发送器。第一次响应仍由从控制器产生。之前发送了一个不响应信号(A)的主机产生停止条件。

3、主控制器的读写操作

在数据传输过程中需要改变传输方向操作,这时起始条件和从控制器地址都会被重复,但RW位取反,它的方向由寻址字节的方向位决定。如果主控制器接收器发送一个重复起始条件,它之前应该发送一个不响应的信号A,每个字节后都跟着一个响应位,在序列中用A或A模块表示。寻址字节只表明器件地址及传送方向,器件内部的n个数据地址可以在I2C总线数据操作格式中用第一个数据字节指定。I2C总线被控制器在接收到起始信号后都必须复位他们的总线逻辑,以便对将要开始的被控制器地址的传送进行预处理。

2.4重复起始条件

主机与从机进行通信时,有时需要切换数据的收发方向。例如,访问某一具有I2C总线接口的EEPROM存储器时,主机先向存储器输入存储单元的地址信息,发送数据,,然后再读取其中的存储内容,接收数据,。在切换数据的传输方向时,可以不必先产生停止条件再开始下次传输,而是直接再一次产生开始条件。I2C总线在已经处于忙的状态下,再一次直接产生起始条件的情况被称为重复起始条件。重复起始条件常常简记为Sr。正常的起始条件和重复起始条件在物理波形上并没有什么不同,区别仅仅是在逻辑方面。在进行多字节数据传输过程中,只要数据的收发方向发生了切换,就要用到重复起始条件。

数据传输的结束信号由主IIC发出。刚刚结束一个进程的用户有立即启动一个新进程的优先权,该用户可以不发出结束信号而直接发出一个新的启动信号和另一个从IIC地址,从而不给其他用户申请总线的机会,以保持自己继续使用总线的权利。

3 设计环境和设计方法

3.1 设计环境

本文中IIC总线接口的设计是利用Altera公司的设计软件Quartus II,用Verilog HDL语言编程实现的。仿真部分采用Quartus II+Modelsim。

Quartus II软件是Altera提供的完整的多平台设计环境,可以轻易地满足特定地设计需求,是SOPC设计的综合性环境。

硬件描述语言(HDL)是一种形式化方法来描述数字电路和设计数字逻辑系统的语言,它是硬件设计人员与EDA工具之间沟通的桥梁,其主要目的是用来编写设计文件,建立电子系统行为级的模拟类型。

3.2用Verilog HDL设计可综合的状态机

基于状态机的设计要点:

(1)一个完备的状态机应该具有初始状态和默认状态。当芯片加电或者复位后,状态机能够自动将所有的判断条件复位,并进入初始状态,起始状态是指电路复位后所处的状态,选择一个合理的起始状态将使整个系统更简捷高效。当转移条件不满足,或者状态发生突变时,状态机进入一个默认(default)状态,能保证逻辑不会陷入“死循环”,这是对状态机健壮性的一个重要要求,即自动恢复功能。在case语句的最后,不要忘了加上default分支语句,以避免锁存器的产生。

(3)建模

用两条always语句对其建模比较好:一个always语句用于组合逻辑建模(既包括次态逻辑,也包括输出逻辑),一个always语句用于时序逻辑建模。组合逻辑建模采用阻塞式赋值,时序逻辑建模采用非阻塞式赋值。

(4)时序方式选择

根据触发条件的不同,时序逻辑电路可以分为异步时序和同步时序逻辑。在异步时序逻辑中触发条件很随意,任何时刻都有可能发生,所以记忆状态的触发器输出在任何时刻都有可能发生,而同步时序逻辑中表示状态的触发器输出只能在惟一确定的触发条件发生时刻改变,例如只能由时钟的上升沿或下降沿触发。同步时序逻辑的触发输入至少可以维持一个时钟周期后才会发生第二次触发,利用这一段时间,即在下一次触发信号来到前,为电路的状态改变创造了一个稳定可靠的条件。因此,同步时序逻辑比异步时序逻辑具有更可靠、更简单的逻辑关系。

目前,综合工具只支持同步时序逻辑的设计,用Verilog设计可综合的状态机也都使用同步时序逻辑。实用的状态机都应设计为由唯一时钟边沿触发的同步运行方式。 4 IIC

总线接口设计

IIC总线接口的设计是整个系统设计的关键之一,从本章起,开始介绍IIC总线接口的内部模块的设计。在接口模块设计中,主要介绍模块要实现的功能和设计的

思路,并给出用QuartusⅡ软件对每一个模块编译生成的单个电路模块。

4.1 实现功能

本文主要通过是用Verilog HDL语言在FPGA上实现IIC总线接口,该接口接收来自高速设备或片上总线的读写命令信号、地址信号、并行数据信号,并把它们转换为相应的串行信号发送到Slave器件中去,它还发送应答信号,以便让主器件来调节发送或接收数据的速度移配合从器件的接收,写,和发送, …… 此处隐藏:2040字,全部文档内容请下载后查看。喜欢就下载吧 ……

[精品]基于FPGA的I2C接口程序实现毕业论文(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/446286.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)