萌新的51之旅——IIC(3)

总线数据传送的模拟
主机可以采用不带iic总线接口的单片机,如80c51 at 89c2051等单片机,利用软件实现iic总线的数据传送,及软件与硬件结合的信号模拟
典型信号模拟
萌新的51之旅——IIC(3)

为了保证数据传送的可靠性,标准的iic总线的数据传送有严格的时序要求,iic,总线的起始信号终止信号发送零集发送一的模拟时序。
写入过程
At 24c系列,单片机进行写操作时,首先发送该器件的七位地址码和写方向位,发送完释放sda线,并在scl线上产生第九个时钟信号,被选中的存储器期间再确认自己的地址后,再sda线上产生一个应答信号,作为相应单片机,收到应答信号后就可以传送数据了。
传送数据时,单片机首先发送一个字节的被写入器件的存储区的首地址,收到存储器器件的应答后,单片机就逐个发送个数据字节,但每发送一个字,节后都要等待应答。
萌新的51之旅——IIC(3)

芯片在内地,直接在接收到每一个数据字节地址后,自动加一在芯片的一次装载字节数限度内,只需输入首地址,装载结束,超过芯片的一次装载次结束时,数据地址将上卷前面的数据将被覆盖。
刚要写入的数据传送完后,单片机应发出终止信号,已结束写入操作,写入n个字节的数据格式
萌新的51之旅——IIC(3)

读出过程
单片机先发送该器件的七位地址码和写方向位零发送完后释放SDA线,并在SCL线上产生第九个时钟,信号号被选中的存储器件在确认是自己的地址后,再SDA线上产生一个应答信号,作为回应。
然后再发一个字节的,要读出器件的存储区的首地址,收到应答后,单片机要重复一次,即使信号并发出器件地址和读出方向,未收到期间应答后就可以读出数据字节,每读出一个字节,单片机都要回答佛应答单片机信号当最后一个字节数据,读完后单片机经返回应答并发出终止信号,以结束读出操作。
如果从机对主机进行了应答,但在数据传送一段时间后无法继续接收更多的数据时,从机可以通过对无法接收的第一个数据字节的非应答通知主机,主机则应发出终止信号,以结束数据的继续传送。
当主机接收数据时,他收到的最后一个字节数据后,必须向从机发出一个结束传送的信号,这个信号是由对从机的非应答来实现的,然后从机释放SDA线,以允许主机产生终止信号。
萌新的51之旅——IIC(3)

数据帧格式
Iic,总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号。
在起始信号后必须传送一个从机地址,第八位是数据的传送方向位,用零表示主机发送数据,一表示主机接收数据,每次数据传送总是由主机产生的终止信号结束,但是若主机希望继续占用总线进行新的数据传输,则可以不产生终止信号,马上再次发出提示信号,对另一从机进行寻址
在总线的一次数据传送过程中,可以有以下几种组合方式
主机向从机发送数据,数据传送方向,在整个传送过程中不变
主机在第一个字节后立即从从机读数据
在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读写的方向为正好反向。