Ic总线协议

阅读: 评论:0

1.I2C协议
  2条双向串行线;一条数据线SDA;一条时钟线SCL..
  SDA传输数据是大端传输;每次传输8bit;即一字节..
  支持多主控multimastering;任何时间点只能有一个主控..
  总线上每个设备都有自己的一个addr;共7个bit;广播地址全0.
  系统中可能有多个同种芯片;为此addr分为固定部分和可编程部份;细节视芯片而定;看datasheet..
1.1 I2C位传输
  数据传输:SCL为高电平时;SDA线若保持稳定;那么SDA上是在传输数据bit;
  若SDA发生跳变;则用来表示一个会话的开始或结束后面讲
  数据改变:SCL为低电平时;SDA线才能改变传输的bit
1.2 I2C开始和结束信号
  开始信号:SCL为高电平时;SDA由高电平向低电平跳变;开始传送数据..
  结束信号:SCL为高电平时;SDA由低电平向高电平跳变;结束传送数据..
1.3 I2C应答信号
  Master每发送完8bit数据后等待Slave的ACK..
  即在第9个clock;若从IC发ACK;SDA会被拉低..
暖气炉
  若没有ACK;SDA会被置高;这会引起Master发生RESTART或STOP流程;如下所示:
1.4 I2C写流程
寄存器的标准流程为:
1.    Master发起START
2.    Master发送I2C addr7bit和w操作01bit;等待ACK
3.    Slave发送ACK胶黏剂搅拌机
4.    Master发送reg addr8bit;等待ACK
5.    Slave发送ACK
6.    Master发送data8bit;即要写入寄存器中的数据;等待ACK
7.    Slave发送ACK
8.    第6步和第7步可以重复多次;即顺序写多个寄存器
9.    Master发起STOP
写一个寄存器
写多个寄存器
1.5 I2C读流程
读寄存器的标准流程为:
1.    Master发送I2C addr7bit和w操作11bit;等待ACK
2.    Slave发送ACK
3.    Master发送reg addr8bit;等待ACK
4.    Slave发送ACK
5.    Master发起START
6.    Master发送I2C addr7bit和r操作11bit;等待ACK
7.    Slave发送ACK军用单杠
8.    Slave发送data8bit;即寄存器里的值
9.    Master发送ACK
10.    第8步和第9步可以重复多次;即顺序读多个寄存器
读一个寄存器
多元合金读多个寄存器
2. PowerPC的I2C实现
Mpc8560的CCSR中控制I2C的寄存器共有6个..
psas2.1 I2CADR 地址寄存器
CPU也可以是I2C的Slave;CPU的I2C地址有 I2CADR指定
2.2 I2CFDR 频率设置寄存器
The serial bit clock frequency of SCL is equal to the CCB clock divided by the divider.
用来设置I2C总线频率
2.3 I2CCR 控制寄存器
MEN: Module Enable.    置1时;I2C模块使能
MIEN:Module Interrupt Enable. 置1时;I2C中断使能..
MSTA:Master/slave mode. 1 Master mode;0 Slave mode.
        当1->0时;CPU发起STOP信号
        当0->1时;CPU发起START信号
MTX:Transmit/receive mode select.0 Receive mode;1 Transmit mode
TXAK:Transfer acknowledge. 置1时;CPU在9th clock发送ACK拉低SDA
RSTA:Repeat START. 置1时;CPU发送REPEAT START
BCST:置1;CPU接收广播信息信息的slave addr为7个0
2.4 I2CSR 状态寄存器
MCF:0  Byte transfer is in process
    1  Byte transfer is completed
MAAS:当CPU作为Slave时;若I2CDR与会话中Slaveaddr匹配;此bit被置1
MBB:0 I2C bus idle 
    1 I2C bus busy
丙烯酰胺水溶液聚合MAL:若置1;表示仲裁失败
BCSTM:若置1;表示接收到广播信息
SRW:When MAAS is set; SRW indicates the value of the R/W command bit of the calling address; which is sent from the master.
  0 Slave receive; master writing to slave
  1 Slave transmit; master reading from slave
MIF:Module interrupt. The MIF bit is set when an interrupt is pending; causing a processor interrupt requestprovided I2CCRMIEN is set
RXAK:若置1;表示收到了ACK
2.5 I2CDR 数据寄存器
这个寄存器储存CPU将要传输的数据..
3. PPC-Linux中I2C的实现
  内核代码中;通过I2C总线存取寄存器的函数都在文件drivers/i2c/busses/i2c-mpc.c中
  最重要的函数是mpc_xfer.
 
1.static int mpc_xferstruct i2c_adapter *adap; struct i2c_msg *msgs; int num

本文发布于:2023-05-14 09:09:22,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/99194.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:寄存器   传输   表示   跳变   数据   芯片
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图