当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++基础入门教程

关于IIC总线串行接口

    S3C2410X精简指令集微处理器支持多路控制IIC-总线串行接口。一个专用的连续数据行(SDA)及一个连续时钟行(SCL)在总线控制器与连接在IIC总线上的外围设备之间传送信息。SDA与SCL行是双向的。


    在多路控制IIC总线模式下,多重S3C2410X精简指令微处理器接收或发送连续数据到隶属的设备。S3C2410X控制器能启动或停止IIC总线上的数据传输。S3C2410X上的IIC总线使用标准总线仲裁程序。


    为了控制多路控制IIC总线操作,相关值必须写入以下的寄存器内:


    ——多路控制IIC总线控制寄存器,IICCON


    ——多路控制IIC总线控制/状态寄存器,IICSTAT


    ——多路控制IIC总线Tx/Rx数据转换寄存器,IICDS


    ——多路控制IIC总线地址寄存器,IICADD

 

    20  IIC-总线接口


    导论


    S3C2410X精简指令集微处理器支持多路控制IIC-总线串行接口。一个专用的连续数据行(SDA)及一个连续时钟行(SCL)在总线控制器与连接在IIC总线上的外围设备之间传送信息。SDA与SCL行是双向的。


    在多路控制IIC总线模式下,多重S3C2410X精简指令微处理器接收或发送连续数据到隶属的设备。S3C2410X控制器能启动或停止IIC总线上的数据传输。S3C2410X上的IIC总线使用标准总线仲裁程序。


    为了控制多路控制IIC总线操作,相关值必须写入以下的寄存器内:


    ——多路控制IIC总线控制寄存器,IICCON


    ——多路控制IIC总线控制/状态寄存器,IICSTAT


    ——多路控制IIC总线Tx/Rx数据转换寄存器,IICDS


    ——多路控制IIC总线地址寄存器,IICADD


    当IIC总线空闲时,SDA与SCL行应该都为高电平。SDA的一个高至低的转换可以启动开始条件。当SCL持续为高电平时,SDA的一个低至高的转换可以启动停止条件。


    开始与停止条件总是由主设备来产生。当开始条件启动后,一个在数据首字节的7位地址值会被传输至总线,这7位地址值能决定总线主设备选择了哪一个从设备。第8位决定传输方向(读或写)。


    到SDA行的每个数据字节都应该为8位。在总线传输操作中,发送或接收的字节是没有限制的。数据总是从最有意义的位(MSB)首先发送,且每字节应该紧跟在一个承认(ACK)位后。

 


    图20-1. IIC总线块图解


    注:IIC数据保持时间


        IIC数据保持时间(tSDAH)为最小0ns。


        (在IIC规范V2.1中,标准/快速总线模式下IIC数据保持时间为最小0ns)


        请检查数据保持时间是否为0ns。


        IIC控制器仅支持IIC总线设备(标准/快速总线模式),不支持C总线设备。


    IIC总线接口


    S3C2410X上IIC总线接口有四种操作模式:


    ——主传输模式


    ——主设备模式


    ——从传输模式


    ——从设备模式


    这些操作模式间的关系在下面讲述。

 

 

    开始及停止条件


    当IIC总线接口停止时,它通常为从模式。换而言之,接口在检测SDA行的开始条件(开始条件可以被以下条件启动,SCL的时钟信号为高电平,SDA行从高电转为低电)前接口应该是从模式。当接口状态变为主模式时,SDA行上的数据传输被启动,SCL信号同时产生。


    开始条件可以能过SDA行传输一字节连续数据,停止条件可以停止数据传输。停止条件是当SCL为高电平时,SDA行由低电转为高电。开始及停止条件总是由主设备产生。当开始条件产生后IIC总线开始工作。停止条件会使IIC总线空闲。


    当主设备启动开始条件,它应该发送一个从设备地址来通报从设备。一字节的地址由7位地址和一位传输方向指示器组成(表示写或读)。如果位8为0,它启动的是一个写操作(传输操作),如果位8为1,它启动读取数据的请求(接收操作)。


    主设备能过传输停止条件来结束传输操作。如果主设备想继续对总线的数据传输,它应该产生另一个开始条件及一个从设备地址。这样,读写操作可以通过不同的模式执行。

 


    图20-2. 开始与停止条件

 

 

    数据传输格式


 

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接