- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[FPGA时序逻辑实验][D题][I2C从设备控制器]_v1.0.pdf
FPGA 时序逻辑实验
D 题
I2C 从设备控制器
一、实验原理
I2C (Inter -Integrated Circuit )是一种单端、多主控双线总线,适合在半双工模式下进行高效的集成电
路间通信,主要用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是
同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。
I2C 总线只要求两条总线线路,分别为串行数据 (SDA) 线和串行时钟线 (SCL) ,I2C 是多主机总线,
即同时有多于一个主机尝试控制总线但不破坏传输,因此SDA 和SCL 设计成漏极开路输出,以实现线与功
能,线路拉低至接地为逻辑0 ,线路浮置为高阻态则为逻辑 1。在使用I2C 器件时,必须要如图 1 所示接上
拉电阻。
图1 I2C 总线应用
SDA 数据线高或低电平状态的改变只能在SCL 线的时钟信号低电平期间完成,SDA 线上的数据在时
钟SCL 的高电平期间必须保持稳定,如图2 所示。在SCL 的高电平期间SDA 发生电平变化会终止或重启
I2C 总线,如果SDA 是由高电平向低电平跳变,则产生START 条件,启动I2C 总线操作,如果SDA 由低
电平向高电平跳变,则产生 STOP 条件,终止I2C 总线操作,如图3 所示。起始和停止条件一般由主设备
产生,在起始条件后总线被认为处于忙的状态,在停止条件后总线被认为再次处于空闲状态。
图2 I2C 总线位传输
东南大学电工电子实验中心
1
FPGA 时序逻辑实验
图2 I2C 总线启动和停止
I2C 通信采用7 位地址空间(含 16 个保留地址),因此在同一总线上,理论上最多可以和 112 个节点
通信。每个I2C 器件都有一个唯一的地址识别,器件既可以作为发送器发送数据到总线,也可以作为接收
器从总线接收数据(由器件的功能决定)。器件在执行数据传输时可以被看作是主设备或从设备。其中主
设备是初始化总线的数据传输并产生时钟信号的器件,从设备则是其他被寻址的器件,从设备接收时钟和
地址,并响应来自主设备的请求。
一个典型的数据传输时序图如图2 所示,发送地址和8 位数据字节时首先发送最高位 (MSB) ,本实验
只讨论单主机应用,更详细的I2C 资料请参看附件“I2C Bus Specification and User Manual”。
图3 I2C 总线数据传输
发送数据
图4 为主设备往从设备发送数据时的数据格式,具体传输过程如下:
1) 总线空闲,主设备释放SCL 线(高)和SDA (高)线
2) 主设备将SDA 拉低,创建一个START ,启动传输
3) 发送要访问的从设备的7 位地址
4) 发送一个信号读写位,因为是主设备发送数据给从设备,因此发送 “0”
5) 主设备释放SDA 线(高),以允许从设备对数据接收作出应答
6) 在第9 个SCL 时钟脉冲的整个高电平期间,从设备通过将SDA 拉至低电平以回应一个应答位
(ACK)
7) 主设备接收到从设备发送的ACK 位后,发送一个字节。
东南大学电工电子实验中心
2
FPGA 时序逻辑实验
8) 从设备接收到一个字节后作出应答 (ACK)
9) 如果需要,主设备会重复发送字节到从设备,从设备对每个字节的接收都作出应答 (ACK)
10) 所有数据发送完成后,主设备先释放SCL 线(高)后释放SDA 线(高),创建一个STOP 位结束
传输
文档评论(0)