MC33665 + MC33774 控制流程及 TPL3 帧结构介绍

一. 概述:
 

MC33665A:通用电池管理通信网关和变压器物理层 (TPL) 收发器。该设备通过标准通信协议转发来自不同 TPL(NXP 的隔离菊花链协议)端口的消息,标准通信协议可确保与市场上可用的微控制器兼容。

MC33774:AFE 模拟前端,可管理 4~18 串电池,采用 TPL3 菊花链协议,兼容了高精度电池电压和温度测量以及各种电池电压平衡策略。

MC33665A 提供了四个隔离的 TPL 菊花链端口,可用于与菊花链中的其他隔离 BMS 设备(如MC33771C、MC33772C 和 MC33775A)进行通信,具有单链模式及回环模式。本文将简要介绍在单条链上 MC33665 与 MC33774 的控制流程,其余菊花链控制流程相似。
 

二. TPL3 协议
 

1. MCU 与 MC33665 之间使用 SPI:在介绍控制流程之前首先需要了解其使用的通信协议。对于 MC33665ATS4AE 此 SPI 网关来说,它与 MCU 通过 SPI 连接,相应的还有 UART 网关和 CAN 网关,分别以 UART 和 CAN 方式连接,本文以 SPI 网关为例。

2. MC33665 与 MC33774 之间使用 TPL3:MCU 通过 SPI 发送或接收 TPL3 结构的帧来与 MC33665 通信,修改帧中的菊花链地址(CADD)和设备地址(DADD)可以选择进行 MC33665 内部寄存器配置 ,还是在匹配配置的 TPL 端口上发送消息,若是选择在 TPL 端口上发送消息,信号则以 TPL3 差分形式进行传输,通过双绞线到达链上的 MC33774 电池管理单元。

如图 1 所示为基于 MC33665A 的 BMS 架构示例,其采用了回环模式。
 

图 1 基于 MC33665A 的 BMS 架构示例
 

3. TPL3 协议:接下来将通过三个问题了解 TPL3 协议
(1)什么是 TPL?
    TPL:NXP 专有的菊花链协议,利用脉冲变压器实现的高速差分隔离通讯。
(2)TPL3的编码符号是什么样?

图 2 TPL3 编码符号

     (3)TPL3 帧包括哪些内容?

如图3 所示为 TPL3 的帧结构,TPL3 协议支持 64 位、80 位、96 位和 112 位的消息长度,在发送前要将消息打包为上述结构的帧,MCU 与 MC33665 之间通过 SPI 来收发该 TPL 帧,接收到的 TPL 帧需要在 MCU 进行解码。MC33665 与 MC33774 之间则通过 TPL 端口来收发 TPL3 帧格式的差分信号。

以下为 TPL3 帧结构主要内容:

图 3 TPL3 帧结构
 

MADD:主节点地址(默认 0)。

CADD:菊花链地址(MC33665A 有四条菊花链)。

DADD:链上的设备地址(每条链 62 个节点)。

RADD:寄存器访问起始地址。

MSGCNT:记录 MC33665A 的响应消息数量。

DATALEN:有效 data 的数目。

PAD:指定是否响应消息需要填充。

RESPLEN:一个响应帧中要传输的寄存器数。

NUMREG:请求的寄存器总数。

Padded:可选消息填充。
 

三. MC33665 与 MC33774 通信过程
 

1. MCU 配置
MC33665 分为请求 SPI 和响应 SPI,进行 MCU 配置前,需要通过硬件接线选择 MC33665 使用的是单路 SPI 还是双路 SPI ,本文以单路 SPI 为例。首先根据 MC33665 的默认配置来进行 MCU SPI 配置,默认情况下 MCU SPI 需要先作为主机,其 CPHA = 1,CPOL = 0,在 SPI 可以读写 MC33665 内部寄存器后再修改所需模式。
 

 图 4 MCU初始配置
 

     2. MC33665 配置

     2.1 复位和唤醒

图 5 MC33665 运行模式及过渡
 

      如图 5 所示为 MC33665 操作模式和转换,在 MCU 配置完成后,需要对 MC33665 进行复位和唤醒,步骤如下:

(1) 启动:检查 VDDD > 4V。

(2) 复位引脚高电平(100us)后转低电平(延时 500 us 以上)。

(3) 唤醒事件唤醒:

① MCU 侧唤醒(发送 TPL3 64 bit NOP 帧):
    a. SPI CSN_REQ 上升沿
    b. SDAT_REQ_RXD 下降沿

② 唤醒引脚:
    a. WAKE_IN 高电平(最小激活时间30微秒)

③ TPL 接口上唤醒:
    a. TPL PORT0~3 (EVH_WAKEUP_CFG.PORTx == 1 && SYS_PORTx_CFG.EN == 1)

写入 EVH_WAKEUP_CFG.WAKEUPMSG.寄存器可以配置唤醒源,读取唤醒原因寄存器 EVH_WAKEUP_REASON 可清楚唤醒原因

(4) 检查 STB_OUT 和 STB_N_OUT 引脚:从 STB_OUT 和 STB_N_OUT 可以看出当前所处模式,当 STB_OUT 为低电平、 STB_N_OUT 为高电平时说明当前处于主动模式;当 STB_OUT 为高电平、 STB_N_OUT 为低电平时说明当前处于睡眠或过渡模式。
 

      2.2 SPI 发送打包成 TPL3 格式的帧读写寄存器

发送 TPL3 帧前需要根据 TPL3 帧格式将所需内容进行打包,TPL3 打包方式如下:

(1)无前缀:分别打包为 64 位、80 位、96 位和 112 位帧,如图 3 所示。

(2)启动前缀:将 TPL3 打包为固定长度的 128 bit,消息前缀用于在不触及消息的情况下为消息提供附加信息,固定的帧长度可以帮助 MCU 中的处理(例如,DMA 传输)。前缀启用时,允许 MCU 添加一个或多个零填充字节。MC33665A忽略这个填充。如图 6、7 分别为请求前缀和响应前缀。

图 6 请求前缀
 

图 7 响应前缀
 

2.3  MC33665 内部寄存器配置
在打包后发送链地址等于 0 (CADD = 0)和设备地址等于 1 (DADD = 1)的命令将提供对 MC33665A内部寄存器的访问。以下为 MC33665 的主要配置寄存器:

① SYS_COM_TO_CFG 配置系统通信超时。

② SYS_PORTx_CFG 配置链上传输 TPL2/3、配置 CADD 等 …

③ SYS_HOST_COM_CFG 启用前缀。
 

     3. MC33774 配置

     3.1 发送 MC33774 唤醒消息

① 发送唤醒帧。

② 延时 2.4 ms。

③ 再次发送唤醒帧。

④ 延时 4 * 设备个数 ms。

唤醒帧格式可如图 8 所示,该时序为启用了前缀后的 128 bit TPL3 帧,data 为 0xFFEE,主机地址为 0 ,唤醒全部 TPL 端口及链上设备。

图 8 唤醒帧结构
 

      3.2 ID 分配

初始化配置 MC33774 设备地址 DADD:首先 MCU 要由 MC33665 内部寄存器配置转换为匹配配置的 TPL 端口上发送,修改 CADD 为 MC33665 SYS_PORTx_CFG 寄存器设定的值。例如启用端口 PORT0,在 MC33665 内部寄存器配置时将 SYS_PORT0_CFG 的 CADD 位设置为 001 (自定义菊花链编号, CADD ≠ 0),将 TPL 帧中的设备地址 DADD 修改为 0 ,此时数据在 TPL 端口 PORT0 上传输,只有一个设备时,即可配置链上的第一个 MC33774 设备寄存器。
将 TPL 帧中 MC33665 寄存器地址修改为 MC33774 SYS_COM_CFG 寄存器地址,CADD = 0001,DADD =0,MC33774 SYS_COM_CFG 寄存器用来进行初始配置,应给第一个设备分配其 ID。如图 9 为 SYS_COM_CFG 寄存器可进行配置的内容。

图 9 SYS_COM_CFG 寄存器
 

① NUMNODES:菊花链中的节点数。

② BUSFW:是否 TPL 总线转发。

③ CADD:链地址(与 MC33665 配置一致,如菊花链 001)。

④ DADD:设备地址(给定第一个设备 ID,如给定第一个设备地址为 000001)。

 当给定第一个设备地址 DADD = 000001 后,接下来的 TPL 帧中的 DADD 则修改为对应的  DADD = 000001,才可进行第一个设备其他寄存器的配置。如若一条链上有多个 MC33774,则首先需要给链上所有设备分配 DADD。如图 10 所示为 3 个 MC33774 的地址分配流程, BUSFW 位为 1 提供总线的转发,DADD 等于 0 可按链上设备顺序依次进行 DADD 分配,给第一个设备 DADD 写 1,第二个设备 DADD 写 2,第三个设备 DADD 写 3。地址分配结束后通过修改 TPL 帧中的 DADD 即可读写对应 MC33774。

图 10 DADD 分配过程
 

四. 总结
 

本文主要介绍了 TPL3 帧结构及 MC33665、MC33774 的控制流程,实际上 MC33665 还可使用 TPL2 协议,具有双路 SPI,可使用回环模式等可提供选择。
 

五. 参考资料
 

MC33665A Datasheet (3.0)

MC33774A Datasheet (2.0)

登录大大通,了解更多详情,解锁1500+完整应用方案,更有大联大700+FAE在线答疑解惑! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/2613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Fork for Mac v2.42 激活版 Git客户端

Fork for Mac是一款运行在Mac平台上的Git客户端,Fork Mac版具备基本的取、推、提交、修改、创建和删除分支和标签、创建和删除远程备份等功能,还有实用的差异查看器,你可以通过清晰的视图快速发现源代码中的更改。 Fork for Mac v2.42 激活版…

Golang | Leetcode Golang题解之第42题接雨水

题目&#xff1a; 题解: func trap(height []int) (ans int) {n : len(height)if n 0 {return}leftMax : make([]int, n)leftMax[0] height[0]for i : 1; i < n; i {leftMax[i] max(leftMax[i-1], height[i])}rightMax : make([]int, n)rightMax[n-1] height[n-1]for i…

git提交注释规范插件

1、前言 为什么要注重代码提交规范&#xff1f; 在团队协作开发时&#xff0c;每个人提交代码时都会写 commit message。 每个人都有自己的书写风格&#xff0c;翻看我们组的git log, 可以说是五花八门&#xff0c;十分不利于阅读和维护。 一般项目开发都是多分支共存&#x…

Seal^_^【送书活动第2期】——《Flink入门与实战》

Seal^_^【送书活动第2期】——《Flink入门与实战》 一、参与方式二、本期推荐图书2.1 作者简介2.2 编辑推荐2.3 前 言2.4 本书特点2.5 内容简介2.6 本书适用读者2.7 书籍目录 三、正版购买 一、参与方式 评论&#xff1a;"掌握Flink&#xff0c;驭大数据&#xff0c;实战…

Ubuntu下部署gerrit+报错分析(超详细)

Ubuntu下部署gerrit代码平台 之前安装过几次 最后都在Apache代理这里失败了&#xff0c;如下图&#xff0c;总是gerrit.config与Apache2.config配置有问题&#xff0c;后面换了使用ngnix代理&#xff0c;简单多了 安装Mysql、gerrit、jdk、git 这一步也是非必须得&#xff0…

【c++】list类接口函数介绍与深度剖析模拟实现

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章来到list有关部分&#xff0c;这一部分函数与前面的类似&#xff0c;我们简单讲解&#xff0c;重难点在模拟实现时的迭代器有关实现 目录 1.List介绍2.接…

转向敏捷财务规划,实现更快更自信的决策

随着数字化的到来&#xff0c;原本基于电子表格的时代正逐渐拉下帷幕&#xff0c;大部分企业开始摆脱依赖于电子表格进行计划、预算和预测的传统规划系统&#xff0c;寻求更符合当今市场要求的敏捷财务规划。但不得不承认&#xff0c;当下电子表格仍然是多数企业使用最广泛的工…

Wireshark数据包分析入门

Wireshark数据包分析 1. 网络协议基础1.1. 应传网数物&#xff08;应表会传网数物&#xff09; 2. 三次握手2.1. 第一次握手2.2. 第二次握手2.3. 第三次握手2.4. 三次握手后流量特征 3. 第一层---物理层&#xff08;以太网&#xff09;4. 第二层---数据链路层&#xff08;PPP L…

ele pls 表格行内样式超出隐藏

使用 模板实现方案&#xff1a; 实现效果&#xff1a; 相关样式&#xff1a;

【网络技术】【Kali Linux】Wireshark嗅探(十)IPv4和IPv6

往期 Kali Linux 上的 Wireshark 嗅探实验见博客&#xff1a; 【网络技术】【Kali Linux】Wireshark嗅探&#xff08;一&#xff09;ping 和 ICMP 【网络技术】【Kali Linux】Wireshark嗅探&#xff08;二&#xff09;TCP 协议 【网络技术】【Kali Linux】Wireshark嗅探&…

Jenkins CI/CD 持续集成专题四 Jenkins服务器IP更换

一、查看brew 的 services brew services list 二、编辑 homebrew.mxcl.jenkins-lts.plist 将下面的httpListenAddress值修改为自己的ip 服务器&#xff0c;这里我是用的本机的ip 三 、重新启动 jenkins-lts brew services restart jenkins-lts 四 浏览器访问 http://10.85…

redis7安装与配置

一、下载 通过 redis官网 或者 redis中文网 下载。 以下是 redis 相关文档资料链接&#xff1a; redis源码地址 redis在线测试 redis命令参考 redis中文文档 历史发布版本的源码地址 二、版本命名规则 Redis从发布到现在&#xff0c;已经有十余年的时光了&#xff0c;…

云原生Service Mesh服务网格简单介绍

serviceMesh是什么 Service Mesh是一个用于处理服务间通信的基础设施层&#xff0c;旨在实现云原生应用复杂服务拓扑中的可靠请求传递。其基本构成是一组与应用一起部署的轻量级网络代理&#xff0c;这些代理对应用来说是透明的。Service Mesh通过统一的方式来控制和处理服务间…

双筒水封式防爆器使用方法要记好

双筒水封式防爆器使用方法要记好 型号&#xff08;YC-STFB型&#xff09; 双筒水封式防爆器属于双罐结构的水封式防爆器&#xff0c;安装在抽放瓦斯泵吸气侧和排气端的 管路上靠防爆器底部的水封保护井上井下、抽放泵站设备及用户按全&#xff1b;当瓦斯抽放时气体经由 进气…

【深度学习实战(24)】如何实现“断点续训”?

一、什么是断点续训&#xff1a; 中断的地方&#xff0c;继续训练。与加载预训练权重有什么区别呢&#xff1f;区别在于优化器参数和学习率变了。 二、如何实现“断点续训” 我们需要使用checkpoint方法保存&#xff0c;模型权重&#xff0c;优化器权重&#xff0c;训练轮数…

韩国机器人公司Rainbow Robotics推出RB-Y1轮式双臂机器人

文 | BFT机器人 近日&#xff0c;韩国机器人领域的佼佼者Rainbow Robotics揭开了RB-Y1移动机器人的神秘面纱&#xff0c;这款机器人以其创新的设计和卓越的功能引起了业界的广泛关注。与此同时&#xff0c;Rainbow Robotics还携手舍弗勒集团&#xff08;提供汽车、工业技术服务…

SpringCloud整合Ribbon负载均衡器

目录 一、模块一&#xff1a;提供数据 1.1 首先将第一个实例打包 1.2 使用命令行设置不同权重 1.3 打开图形化界面看看权重是否配置成功。 二、模块二&#xff1a;调用模块一 三、修改默认负载均衡策略 四、自定义规则 ​编辑 五、完整代码 5.1 目录结构 5.2 配置文件 …

网络中其他协议

目录 DNS协议 域名简介 ICMP协议 ICMP功能 ICMP协议格式 ping命令 NAT技术 NATP NAT技术的限制 代理服务器 DNS协议 DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协议&#xff0c;是一个用来将域名转化为IP地址的应用层协议。 为什么有这个协…

“数据中心的秘密武器:ADOP AOC和DAC线缆的选择与优势”

&#x1f335;【DAC电缆和AOC电缆因其低延迟、低功耗和低成本而广泛应用于数据中心的高性能计算网络布线系统。DAC 电缆和 AOC 电缆有多种配置&#xff0c;以满足网络要求。每款产品均提供 10G SFP、25G SFP28、40G QSFP 和 100G QSFP28 数据速率&#xff0c;并提供从 40G 到 4…

python基础--流程控制之条件语句

目标 条件语句作用if语法if…else…多重判断if嵌套 一. 了解条件语句 假设一个场景&#xff1a; 同学们这个年龄去过网吧吗&#xff1f;去网吧进门想要上网必须做的一件事是做什么&#xff1f;&#xff08;考虑重点&#xff09;为什么要把身份证给工作人员&#xff1f;是不…