51学习第九天【串行总线的组成及工作原理】-【I2C串行总线的组成和发送原理】-【串行E2PROM的扩展】

    • 第一节、IIC总线AT24C02芯片工作原理

IIC总线工作原理、目前非常通用的一种通信机制。

需要接串口外围接口芯片,

1、串行总线的组成及工作原理

串行的意思是数据传输不是并行的,是一条线上串着走的。

1.1、串行总线优点和种类

  1. 用串行总线技术可以使系统的硬件设计大大简化,系统的体积减小,可靠性提高,同时系统更容易更改和扩充
  2. 常用的串行扩展总线有:I2C总线,单总线,SPI总线,以及microwire、Plus等等

1.2、I2C串行总线的组成和发送原理

简介:I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。

I2c总线只有两根双向信号线,一根是数据线SDA,另一根是时钟线SCL(控制线)

每个接入到I2C总线都有唯一的地址,主机与其他器件间的数据传送可以是由主机发送数据到其他器件,这时主机即是发送器,由总线上接收数据的器件称为是接收器。

在多主机系统中,可能同时由几个主机企图启动总线传送数据,为了避免混乱,I2C总线要通过总线仲裁,决定由哪台主机控制总线

1.3、数据位的有效性

I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有时钟线上的信号为低电平期间,数据线上的高电平和低电平状态才允许变化

1.4、起始信号和终止信号

SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号,

SCL线为高电平期间,SDA线由低电平向高电平变化表示终止信号

1.5、数据传送的格式

1.5.1、字节传送与应答

每一个字节必须保证是8位长度,数据传送时,先传送的是最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位,即(一帧共有9位),应答信号由从机发送给主机

每次数据传送总是由主机产生的终止信号结束,但是若主机希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一个从机进行寻址

1.5.2、数据帧格式

i2c总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号。

主机发送地址时,总线上的每一个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正在被主机寻址,根据R/T位将自己确定为发送器或接收器

1.5.3、一个数据传送的组合方式

1)、主机向从机发送数据

主机向从机发送数据,数据传送的方向在整个传送过程中不变

注:

阴影部分表示主机向从机发送,非阴影部分从机向主机发送。

A表示应答,A非表示非应答,s表示起始信号,p表示终止信号

从机地址:由固定部分和可编程部分组成,可编程的部分决定了可接入总线该器件的最大数目。

如:一个从机的7位寻址位有4位是固定位,3位是可编程位,这时仅能寻址8个同样的器件,即可以有8个同样的器件接入到该12C总线系统中。

2)、主机向从机发读取数据

 

3)、主机向从机改变方向

1.5.4、总线的寻址

I2C协议规定:采用7位的寻址字节(寻址字节是起始信号后的第一个字节)

(1)、寻址字节的位定义

D1~7位组成从机的地址,D0位是数据传送方向位(1:表示主机由从机读数据,0:表示主机向从机写数据)

1.5.5、起始和终止信号图示以及编程

起始操作示例代码:SCL高电平时,SDA高变低的变化为起始信号

void T2CStart(void)

{

    SDA = 1;

    SomeNop();//大于微秒级别

    SCL = 1;

    SomeNop();

    SDA = 0;

    SomeNop();

}

终止指令:SCL高电平时,SDA低变高的变化为起始信号

void I2CStop(void)

{

    SDA = 0;//data由0变到1为终止指令

    SomeNop();

    SCL = 1;

    SomeNop();

    SDA = 1;

    SomeNop();

}

1.6、I2C总线器件的扩展

1.6.1、扩展电路

前三个:四位固定,三位可选择(三个引脚)。第四个:6个固定,1个可选择。

1.7、串行E2PROM的扩展

1.7.1、串行E2PROM典型产品

AT24CXX系列的串行电可改写及可编程只读存储器EEPROM有10种型号,其中典型的型号:

ATMEL公司的AT24C系列:

AT24C01: 128字节(128X8位)

AT24C02: 256字节(256X8位)

AT24C04: 512字节(512X8位)

AT24C08: 1K节(1K X8位)

AT24C16: 2K字节(2KX8位)

1.7.2、写入过程

1.7.3、读出过程

 

2、程序书写

这次没有程序部分,继续加油,下次明白了再补。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值