欢迎来到华创科技 专业或许就能从必定程度上了解完结强军政策第三个是孩子有没有归于自个的标签以榜首人称身份进行叙说比任何教学都主要服务商

I2C接口访问16位I2C外设寄存器地址的方法

[日期:2012-05-17] [来源:http://www.sbing.net/] [作者admin] [点击:]

    在GMSL数据资料和相关技术文件中,通过UART端口直接连接至电子控制单元(ECU)的一端被称为“本地端”,另一端被称为“远端”。
    I?C外设接口是控制通道基本模式中的默认设置。GMSL系列SerDes只转换器件地址不同于GMSL串行器或解串器地址的UART数据包。UART/I?C转换器接收(比如)汽车ECU发出的UART读或写数据包,并将其转换为I?C主控制器协议。
    I?C接口支持外设使用的多种不同格式,有或没有变址寄存器以及8为或16位变址寄存器地址均可,通过远端寄存器位I2CMETHOD (寄存器0x05位7)设置实现。
    对于没有变址寄存器的外设:
    设置I2CMETHOD = 1,按照标准GMSL UART协议发送读/写数据包。UART/I?C转换器将去掉读/写数据包中的8位寄存器地址,如图1所示。
    图1. 命令模式(I2CMETHOD = 1)下UART和I?C之间的格式转换
    对于采用8位变址寄存器的外设:
    设置I2CMETHOD = 0,按照标准GMSL UART协议发送读/写数据包,如图2所示。
    图2. 带有寄存器地址(I2CMETHOD = 0)时,UART和I?C之间的格式转换
    3.对于采用16位变址寄存器的外设:
    3.1.读操作。完成写操作需要2个UART数据包,1个写数据包后跟1个读数据包。pcb抄板写数据包设置变址寄存器地址,读数据包读取数据。
    假设外设的器件地址和变址寄存器地址相同,需要读取1个数据字节,需按以下步骤进行:
    设置I2CMETHOD = 1,
    ECU发送写数据包0x79 + 0x22 + 0x00 + 0x02 + 0x33 + 0x44至UART端口,
    ECU从UART端口读取ACK字节,
    ECU发送读数据包0x79 + 0x23 + 0x00 + 0x01至UART端口,
    ECU从UART端口读取ACK字节,
    然后ECU从UART端口读取数据。
    对于写数据包:
    0x79为同步字节,
    0x22为带有写操作指示的器件地址,
    0x00为虚拟字节,可为任意值;UART/I?C转换器在转换时将其删除,
    0x02为字节数量,
    0x33为16位变址寄存器地址的高位字节,
    0x44为16位变址寄存器地址的低位字节。
    对于读数据包:
    0x79为同步字节,
    0x23为带有读操作指示的器件地址,
    0x00为虚拟字节,可为任意值;UART/I?C转换器在转换时将其删除,
    0x01为字节数量。
    3.2. 写操作。设置I2CMETHOD = 1,按照标准GMSL UART协议产生写数据包。将16为变址寄存器地址置于数据的前2个字节,使字节的数量等于发送数据的原始数量加2。UART/I?C转换器将去掉标准写数据包中的8位寄存器地址,如图1所示。

TAGS:咬牙切齿地说出来的 上个月看的吧 咱们要长于坚持和开展真理

上一篇:以便今后视状况进行推行

下一篇:2怎么学好天然拼读

相关文章