对于IIC来说只有两条线来控制数据的传输,SDA和SCL。对于IIC协议的学习,要掌握四种模式,主发送,主接收,从发送和从接收。在对设备的读写操作信号是在发送从地址时将其一起发送出去,比如主发送模式,它要从从设备中读取数据,那么在主设备就要在发送完地址后,再改变模式,改为主接收模式才能接收数据。在S3C2440A的处理器中,里面已经集成了IIC控制器了,在控制器中已经集成了IIC的时序,我们不需要去管时序该怎么走,而是设置好寄存器来控制IIC的发送和传输数据。在IIC控制器的寄存器中有几个寄存器要注意,IICCON,IICSTAT和IICDS,IICCON寄存器要注意的是第4位,它可以查询出数据是否发送或者传输完毕了。而对于第7位一般都要设置为ACK使能,这样才能响应ACK是否接收到,而作为发送器时候,是根据查询IICSTAT中的第0位来检查是否收到ACK,在IICSTAT寄存器中的第5位则是产生停止位和起始位。如果在多主机的情况下,要检查IICSTAT中的第3位是否仲裁成功。作为IIC的从设备则就要配置IICADD寄存器来设置访问的地址。
CAT1024/25里面集成了2K的EEPROM,它本身也集成IIC协议。所以用它模拟IIC的传输最好了。但是对于CAT1024/25的EEPROM需要地址来对数据的存取,所以在CAT1024/25有很多种模式,如字节写,顺序读等模式,这些都不是很难,按照CAT1024/25的数据帧格式发送即可。
对于IIC协议来说,很简单,如果要提高对IIC协议的时序的更深认识则必须要利用单片机的I/O口进行时序的模拟,这样学得更深。