IIC总线是飞利浦公司上世纪80年代设计出来的一种总线通信方式,主要用来连接整体电路,它可以一个总线结构上连接多个设备。
很多人听到IIC总线、SPI总线、485总线什么的就会晕,其实,数据传输的接线方式,大体上就是两种:一种是并行接口,一种是串行接口。 并行接口是什么?用并行方式来传输数据的接口。假如我想传输几个8位的数据,那好,单片机上用8个IO传送数据,每次就能传送一个。假如想传输几个16位的数据呢?那就要用16个IO!优点是速度快,缺点是占用的IO太多了。 串行接口是什么?是指数据在有限的几个IO上按照顺序,一位一位的进行传输。这类有很多:UART、IIC、SPI、CAN、USB等等,只要是串行传输的接口,都是串口的一种。但是由于早期人们都习惯把UART口称为串口,导致很多人都习惯了说串口的时候特指UART口。就好像很多人把晶体和晶振都统称为晶振一样,但实际上这两种器件是有区别的。 什么是时序?时序是串行接口或者并行接口在进行数据传输的时候,传输线必须要遵守的时间的顺序!如果不按照时序来,数据传输肯定是会有问题的。 最明显的体现就是,有串行接口的器件的datasheet里面经常会有时序图。以昨天提到的PCF8591为例,下图是位传输的时序图:
下图是开始信号和结束信号的时序图:
下图是应答信号的时序图: 发送机在发送完一个8位数据字节后,会把DATA线拉高,接收机会在第九个时钟高电平到来前把DATA线拉低,SCL线拉低后,DATA线置一,完成应答的流程。
|