• 注册 / 登录
  • 切换到窄版
  • 查看: 10031|回复: 2

    SH367309实例IIC详解&手册+PCB

    [复制链接]

    676

    主题

    690

    帖子

    6810

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    6810
    发表于 2022-1-18 11:23:16 | 显示全部楼层 |阅读模式

    路线栈欢迎您!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    什么是IIC?
    • IIC的特性
    • 物理(电气)特性
    • IIC总线通信协议
    • 开始和结束条件
    • 一位信号数据传递模式
    • IIC数据含义解析
    • Write(写)操作(8位数据+1位ACK)
    • Read(读)操作(8位数据+1位ACK)
    • 写寄存器标准流程:
    • 读寄存器标准流程:
    • TWI 协议

    SH367309协议实例
    • SH367309电器特性
    • SH367309 标注
    • SH367309读协议
    • SH367309写协议

    什么是IIC?
    IIC (Inter-Integrated Circuit), 通常发音为: I-squared-C,是多主、多从、分组交换、单工的串行总线,通常用于处理器或微控制器与低速外围器件的短距离通信连接。这个通信协议是由(NXP半导体的前生)飞利浦公司发明,并在2006年开始,I2C协议的实施不要许可费,但仍要收取I2C从机分配地址的费用

    IIC的特性
    • 仅用两线连接;
    • 不像RS232那样有着严格的波特率要求,而是由主设备(mater)产生时钟信号;
    • 设备之间的主/从关系简单,每个设备都有软件给予的唯一地址;
    • IIC是一个真正的多主总线,提供仲裁和冲突检测的功能。

    物理(电气)特性
    • 只要求两条总线线路,一条是串行数据线SDA,一条是串行时钟线SCL,(IIC是半双工,而不是全双工)。
    • 每个连接到总线的器件都可以通过唯一的地址和其它器件通信,主机/从机角色和地址可配置,主机可以作为主机发送器和主机接收器。
    • IIC是真正的多主机总线,(而这个SPI在每次通信前都需要把主机定死,而IIC可以在通讯过程中,改变主机),如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏。
    • 传输速率在标准模式下可以达到100kb/s,快速模式下可以达到400kb/s。
    • 连接到总线的IC数量只是受到总线的最大负载电容400pf限制。
    • I2C通信设备之间只通过普通导线进行连接,比特流信号采用TTL/CMOS标准下的高/低电平来表示1/0信号,这一方式使得传输距离很短(本来设计目的就是用于短距离通信),直接连接的传输距离短达40cm。


    1.png

    IIC总线通信协议
    如下图所示,为IIC的通讯总线的协议数据格式。

    2.jpg

    开始和结束条件
    • I2C总线在待机状态时,SDA和SCL都处于高电平(两根线一般情况均接上拉电阻)。
    • 当开始工作时,开始信号由主设备(master)发起,SDA先由高电平转为低电平,此时的SCL是高电平。此后,SDA和SCL便配合传输开始工作。
    • 当停止工作时,在SCL处于高电平下,SDA由低电平转为高电平。

    3.png

    一位信号数据传递模式
    IIC协议通过数据线SDA在SCL的配合下实现信息的有效传送。每条线均可产生5V/0V或3.3V/0V的高低电平(也可以是其它方式,常用TTL和CMOS的电平模式),如图所示,每当时钟线SCL产生高电平时,SDA所产生的电平信号为当前时钟周期下传输的有效信号;而当SCL为低电平时,SDA可改变,以产生下一周期的传输信号。

    4.png

    IIC数据含义解析
    IIC协议里面数据主要包括两部分:addr数据+data数据。

    数据模式:[ 开始 +(7位地址+1位读写+1位ACK)+(8位数据+1位ACK/NACK)*n+停止 ]

    注意:
    • 在传输过程中,每传输8位后,要通过一个ACK位进行相互确认。在读和写数据的过程中,ACK的来源是不一样的。
    • 写数据的时候是从设备会返回一个ACK值(低电平)以响应已获得数据。
    • 读数据的时候是主设备会返回一个ACK值(低电平)以响应已获得数据。
    • 如果写数据的时候,有些情况下从设备要校验数据,发现数据错误,会返回NACK(高电平)来响应结束本次传输;读数据的情况下,有的情况需要NACK,然后在STOP结束本次传输。


    Write(写)操作(8位数据+1位ACK)
    因为地址数据是7bit,写地址的时候要在后面增加1bit写(低电平),达到1byte长度。

    5.png

    Read(读)操作(8位数据+1位ACK)
    因为地址数据是7bit,读地址的时候要在后面增加1bit读(高电平),达到1byte长度。

    6.png

    写寄存器标准流程:

    7.png

    读寄存器标准流程:

    8.png

    TWI 协议
    在AVR系列单片机中内嵌有一个TWI(Two-wire Serial Interface)接口,它实际上就是IIC总线接口,个人的理解是TWI协议是利用IIC协议的理论基础,对IIC的数据量进行修改,为每个芯片制定特定的数据量格式。

    SH367309协议实例:


    SH367309电器特性
    SH367309 作为从机模式,MCU作为主机模式,SH367309地址固定为0X1A。

    9.jpg

    SH367309 标注

    10.jpg

    SH367309读协议
    Start+(地址+写)+ACK*+RegAddress+ACK*+ReadDataLength+ACK*
    ReStart+(地址+读)+ACK*+DATA+ACK+····+DATA+ACK+CRC+NACK+Stop
    注:带*表示从设备向主设备发送。

    11.jpg

    SH367309写协议
    Start+(地址+写)+ACK*+RegAddress+ACK*+CRC+ACK*+Stop
    注:带*表示从设备向主设备发送。

    12.jpg

    CRC校验不是本篇博客重点讲解的内容,需要注意的是,每次写数据完成,需要注意和下一次写数据之间的时间间隔是多少。

    BMS模拟前端芯片中颖sh367309.pdf

    2.22 MB, 下载次数: 82

    SH367309 PCM Board V3.2.rar

    63.13 KB, 下载次数: 61

    回复

    使用道具 举报

    0

    主题

    1

    帖子

    4

    积分

    新手上路

    Rank: 1

    积分
    4
    发表于 2022-11-14 18:05:02 | 显示全部楼层
    谢谢分享。。
    回复

    使用道具 举报

    0

    主题

    2

    帖子

    210

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    210
    发表于 2022-11-16 10:14:57 | 显示全部楼层
    多谢分享,我是做锂电BMS的,学习一下
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|路丝栈 ( 粤ICP备2021053448号 )

    GMT+8, 2024-12-22 20:34 , Processed in 0.053021 second(s), 21 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表