1、SMBus总线 并发
SMBus串行I/O接口彻底符合系统管理总线规范 1.1 版。它是一个双线的双向串行总线,与I2C串行总线兼容。系统控制器对总线的读写操做都是以字节为单位的,由SMBus接口自动控制数据的串行传输。其接口工做电压3.0V~5.0V之间,总线上不一样器件的丁做电压能够不一样。时钟线SCL和数据线SDA都是双向的,按照SMBus的标准,两条线上都须要上拉电阻将他们接到电源电压。在没有数据传输时,两条线都处于高电平.使得器件可以检测到总线的空闲状态。spa
2、工做过程 blog
一次典型的 SMBus 数据交换包括一个起始条件(START)、一个地址字节、一个或多个字节数据和一个中止(STOP)条件。每一个地址字节和每一个数据字节后面都跟随一个来自接收器的确认(ACKNOWLEDGE)位。地址字节包含一个 7 位的地址和一个方向位(R/W)。方向位占据地址字节的最低位。方向位被设置为逻辑‘1’时表示这是一个“读”(READ)操做,方向位为逻辑‘0’表示这是一个“写”(WRITE)操做。全部从器件都能识别一个通用呼叫地址(0x00 + R/W),这就容许一个主器件同时访问多个从器件。接口
全部的数据交换都由主器件启动,能够寻址一个或多个目标从器件。主器件产生一个起始条件,而后发送地址和方向位。若是本次数据交换是一个从主器件到从器件的写操做,则主器件每发送一个数据字节后等待来自从器件的确认。若是是一个读操做,则由从器件发送数据并等待主器件的确认。在数据传输结束时,主器件产生一个中止条件,结束数据交换并释放总线get
写操做:首先发送该器件的7位地址码和写方向位(0)。被选中的存储器器件在确认是本身的地址后,在SDA线上产生一个应答信号做为响应,单片机收到应答后就能够传送数据了。传送数据时,单片机首先发送被写入器件的存储区的首地址。收到存储器器件的应答后,单片机就逐个发送各数据字节,每发送一个字节后都要等待应答。当要写入的数据传送完后,单片机应发出终止信号以结束写入操做。具体过程以下图所示:it
读操做:首先发送该器件的7位地址码和写方向位(0:伪写)。被选中的存储器器件在确认是本身的地址后,在SDA线上产生一个应答信号做为响应。而后,单片机再发送要读出器件的存储区的首地址。收到存储器器件的应答后,单片机要重复一次起始信号并发出器件地址和读方向位(1)收到器件应答后就能够读出数据字节。每读出一个字节,单片机都要回复应答信号。当最后一个字节数据读完后,单片机应返回以“非应答”(高电平),并发出终止信号以结束读出操做。im