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)

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論