- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
I2C 主控器规范
作者:Richard Herveille 2003年7月3日
1 介绍
I2C是一种两线式双向串行总线,在设备间提供一种简单有效的数据交换方式。它最适合应用在一个临时的短距离多设备间的通信请求。I2C总线标准是一个真正的多主机总线包括检测和仲裁,两个或两个以上的试图同时控制总线防止数据损坏100Kbps和400Kbps模式特点?兼容飞利浦I2C总线标准?多主机操作?软件可编程时钟频率?时钟?软件可编程?中断或?仲裁丢失中断,自动取消?启动/停止/重启动/确认?启动/停止/重复开始检测?总线繁忙检测?支持7和10位寻址模式?可在各种输入时钟频率?静同步设计?完全仿真
2. IO端口
2.1核心参数
2.1.1 ARST_LVL
异步复位水平可被设定为( 1b1 ) ,或( 1b0 ) 。 WISHBONE总线接口信号
核心采用了WISHBONE RevB.3兼容WISHBONE经典界面。所有输出信号。每访问2个时钟.
arst_i不是WISHBONE兼容的信号。它提供了针对FPGA [ arst_i ]替代[ wb_rst_i ]可以降低使用和高性能,因为大多数FPGA提供一个专用的异步路径。配合其他的一个否定使用[ arst_i ]或[ wb_rst_i ]
I2C总线接口采用串行数据线(SDA)和一个串行时钟线()传输数据。所有设备连接到这两个信号必须开路漏极或开路集电极。两个都必须外部电阻器VCC上。为FPGA设计的编译器使用可以自动插入这些缓冲器VHDL 代码:
scl = scl_pad_o when (scl_padoen_oe = ‘0’) else ‘Z’;
sda = sda_pad_o when (sda_padoen_oe = ‘0’) else ‘Z’;
scl_pad_i = scl;
scl_pad_i = sda;
Verilog 代码:
assign scl = scl_padoen_oe ? 1’bz : scl_pad_o;
assign sda = sda_padoen_oe ? 1’bz: sda_pad_o;
assign scl_pad_i = scl;
assign sda_pad_i = sda;
3 寄存器
3.1 寄存器列表
3.2寄存器描述
3.2.1分频寄存器
这种是用来预定时钟线。由于I2C接口的结构,采用5时钟。必须编程 。只有当位被清除。: wb_clk_i = 32MHz,想要得到SCL = 100KHz
频率=32MHZ/(5*100KHZ)-1=63(dec)=3F(hex)
重置值: 0xFFFF
3.2.2控制寄存器
只有当位被设置响应新的命令。在停止命令,没有或在命令设置位位。当,可以I2C总线。3.2.3传输寄存器
复位值:0x00
3.2.4接收寄存器
复位值:0x00
3.2.5命令寄存器
复位值:0x00
STA, STO, RD, WR, 和 IACK位自动清除。这些位总是为零3.2.6位寄存器
复位值:0x00
请注意,所有保留位改为零。为了确保,就应该写为0 。在I2C总线系统采用串行数据线( SDA)和串行时钟线()传输数据所有设备连接到这两个信号开漏极或开集电极输出外部上拉电阻。。每一个数据字节是8位长。一个时钟脉冲每个数据位的最高有效位被。。;因此,,。4.2 I2C协议
一般来说,一个标准的通信包括四个部分:1)开始信号
2)从设备地址传输
3) 数据传输
4) 停止信号
4.2.1开始信号
当总线是空置/闲置,这意味着没有主机在使用总线(包括SCL线和SDA线都是高电平) , 一个主机通过发送一个开始信号开始传输数据,。一个开始信号,通常称为S位,被定义为当SCL为高电平时,SDA有高电平向低电平转换。这个开始信号表示一个新数据传送的开始。可以产生重复开始信号而不产生一个停止条件。主机通过这种方式与其他从设备通信,设备通过反方向与主机通信(如:从一个设备写到从一个设备读)
当命令寄存器的STA位被设置为有效,RD或WR位被设置为有效时产生一个开始信号。根据SCL的现实状态产生开始信号或重复开始信号。
4.2.2从地址开始信号是从地址。注:。详细的信息看飞利浦I2C总线规格。从地址传输。WR位设置为有效。芯片将在总线上传输从器件地址。
4.2.3数据传输 RW位来确定传输的方向。每个传输字节后的第9个SCL时钟周期是一个响应位。如果没有响应位,则主机可能产生一个停止信号中断数据传输,或者产生一个重复开始信号开始一个新的传输过程。
如果接收设备,从器件不,WR设置为有效。读操作,要将RD位设置为有效。在传输数据时芯片要设置TIP标示,表示正在传输数据。当输出结束时要将TIP标示复位,当TIP标示设置为有
文档评论(0)