道,这个可以通过阅读从设备的datasheet获取。总线写时序如下:
masterstartmasteraddrwslaveackmasterregwslaveackmasterdataslaveackmasterrestart。。masterdataslave
ackmasterstop
总线读时序如下:
masterstartmasteraddrwslaveackmasterregwslaveackmasterrestartmasteraddrrslaveackslavedatamaster
ackmasterstop
总线读时序与写的不同之处在于读需要2次传输才能完成一次读取,首先要写寄存器地址到从设备,其实是写到了从设备的控制寄存器或者命令寄存器,从设备内部会根据这个地址来寻址所要操作的寄存器。
f我在读我们的bios和内核时发现,2者在总线读时序上的实现不太一样,在于第一次寄存器地址写入后,一个发的是restart,一个发的是stop,然后再start开始读取数据,示波器抓波形发现读取数据都正确,说明这2种时序都是正确的。
IIC总线的读写时序比较固定,设备通信严格遵循协议,因此iIC总线设备驱动程序的编写也就相对简单一些。
主要应用的iIc总线设备有touchscree
rtc外扩io等
二SPI总线
SPISerialPeripheralI
terface,串行外围设备接口,是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。SPI通常有SCK时钟,STB片选,DATA数据信号三个信号。I2C通常有SDA数据和SCL时钟两个信号。
SPI总线真正实现了全双工数据传输,SPI有3线跟4线两种,4线的话,就是多了一条叫SDC的线,用来告知从设备现在传输的是数据还是指令。这个接口较快,可以传输较连续的数据。SPI要想连接多个从设备,就需要给每个从设备配备一根片选信号。如果要可以实现全双工,也是需要多加一根数据线(MOSIMISO)。
也就是说SPI总线是通过片选来选择从设备。
fspi总线速度要比iic要快,我们开发板最快能达到30MHZ。
spi总线特点:
1采用主从模式MasterSlave的控制方式SPI规定了两个SPI设备之间通信必须由主设备Master来控制次设备Slave一个Master设备可以通过提供Clock以及对Slave设备进行片选SlaveSelect来控制多个Slave设备SPI协议还规定Slave设备的Clock由Master设备通过SCK管脚提供给Slave设备Slave设备本身不能产生或控制Clock没有Clock则Slave设备不能正常工作
2采用同步方式Sy
chro
ous传输数据Master设备会根据将要交换的数据来产生相应的时钟脉冲ClockPulse时钟脉冲组成了时钟信号ClockSig
al时钟信号通过时钟极性CPOL和时钟相位CPHA控制着两个SPI设备间何时数据交r