在現代汽車電子控制系統中,CAN(Controller Area Network,控制器局域網)總線作為一種高效、可靠的通信協議,發揮著舉足輕重的作用。它不僅連接著發動機控制單元(ECU)、變速器控制單元、制動系統控制單元等多個關鍵模塊,還確保了這些模塊之間的實時數據交換和協調工作。為了實現卓越的性能和電磁兼容性(EMC),車規級CAN總線外圍電路的設計顯得尤為關鍵。本文將深入探討這一設計方案,并結合實際應用給出代碼示例。
一、共模電感的設計
共模電感在汽車CAN網絡中起著抑制共模噪聲、提升EMC性能的重要作用。它通過在高阻抗狀態下阻止噪聲傳播,有效濾除系統自身發射的干擾噪聲,同時抑制其他系統產生的干擾噪聲對CAN總線通信的干擾。
在設計共模電感時,需要關注以下幾個關鍵特性:
電感值:為了有效抑制共模噪聲,共模電感在共模噪聲頻率處應具備盡可能高的電感值。然而,過大的電感值會帶來尺寸和成本上的挑戰。因此,針對500kbps的CAN通信,推薦使用51uH電感值的共模電感;而對于2Mbps的CAN FD通訊,則建議采用100uH電感值。
泄漏電感:適量的泄漏電感能有效抑制CAN總線中的差模電流,提升系統的整體EMI性能。但過大的泄漏電感可能會引發CAN信號的振鈴現象,干擾正常通訊。因此,在選擇時,應確保既能發揮差模抑制作用,又不至于在總線信號上產生顯著的振鈴。
直流電阻:共模電感的直流電阻對總線信號的損耗具有直接影響。隨著直流電阻的增大,總線信號的損耗也會相應增加,導致傳輸效率降低。因此,選擇直流電阻盡可能小的共模電感顯得尤為重要。
模式轉換特性:共模電感的模式轉換特性通過Ssd12/Sds21參數來衡量。當Ssd12/Sds21參數的差異較大時,意味著上下線圈存在較大的不對稱性,這會引入額外的共模噪聲,降低EMI濾波效能。因此,應傾向于選擇Ssd12/Sds21參數接近的器件。
二、終端分立電阻的設計
在包含多個節點的CAN網絡中,為了確保信號傳輸質量,通常在首端節點和末端節點的總線上并聯一個與總線特征阻抗相匹配的電阻(通常為120Ω)。這個電阻的主要作用包括:
匹配總線特征阻抗,阻止信號反射:CAN總線的特征阻抗通常為120Ω,而CAN收發器在隱性狀態下的總線差分輸入電阻高達數十kΩ。阻抗不匹配會導致信號反射,產生振鈴現象,影響正常通信。
吸收外部干擾:CAN收發器的輸入差分電阻阻值較高,使得外部輕微干擾能在總線上產生足夠的差分電壓,改變總線狀態。并聯一個阻值相對較小的電阻(45Ω到70Ω之間)可以吸收這些干擾,防止其在總線上形成顯性差分電壓。
加速總線信號下降沿:總線顯隱切換的過程是對寄生電容的充放電過程。并聯一個匹配電阻可以顯著加速放電過程,使信號下降沿更加迅速,實現總線狀態從顯性到隱性的快速切換。
三、代碼示例
以下是一個簡單的CAN總線初始化代碼示例,使用C語言編寫,適用于STM32微控制器:
c
#include 'stm32f4xx_hal.h'
CAN_HandleTypeDef hcan1;
void CAN_Config(void)
{
// CAN結構體初始化
hcan1.Instance = CAN1;
hcan1.Init.Prescaler = 9;
hcan1.Init.Mode = CAN_MODE_NORMAL;
hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan1.Init.TimeSeg1 = CAN_BS1_6TQ;
hcan1.Init.TimeSeg2 = CAN_BS2_8TQ;
hcan1.Init.TimeTriggeredMode = DISABLE;
hcan1.Init.AutoBusOff = DISABLE;
hcan1.Init.AutoWakeUp = DISABLE;
hcan1.Init.AutoRetransmission = ENABLE;
hcan1.Init.ReceiveFifoLocked = DISABLE;
hcan1.Init.TransmitFifoPriority = DISABLE;
if (HAL_CAN_Init(&hcan1) != HAL_OK)
{
// 初始化錯誤處理
Error_Handler();
}
// 激活通知
HAL_CAN_ActivateNotification(&hcan1, CAN_IT_TX_MAILBOX_EMPTY | CAN_IT_RX_FIFO0_MSG_PENDING);
}
int main(void)
{
HAL_Init();
SystemClock_Config();
CAN_Config();
// 主循環
while (1)
{
// CAN通信代碼
}
}
void Error_Handler(void)
{
// 用戶可以添加自己的錯誤處理代碼
while(1)
{
}
}
該代碼示例展示了如何初始化CAN總線,并設置了相關的時序參數。在實際應用中,還需根據具體需求配置濾波器、發送和接收郵件箱等。
四、結論
車規級CAN總線外圍電路的設計是一個復雜但至關重要的過程。通過精心選擇共模電感和終端分立電阻等關鍵元件,并結合實際的代碼實現,可以顯著提升CAN總線的通信質量和電磁兼容性。這不僅有助于確保汽車電子控制系統的穩定運行,還為未來智能汽車的發展奠定了堅實的基礎。
上一篇:CAN總線BUS OFF狀態下發送緩沖區的處理策略
下一篇:最后一頁
- 熱門資源推薦
- 熱門放大器推薦
- AM1D-1205S-RZ 5V 1W DC-DC 轉換器的典型應用
- 具有負極性 LCD 對比度的 LT1184FCS 90% 高效接地 CCFL 配置的典型應用電路
- LTC3642IDD 5V、50mA 降壓轉換器的典型應用電路
- 基于圖形化控制的D類功放+耳放
- LTC3632EDD 小尺寸、有限峰值電流、4mA 穩壓器的典型應用電路
- STM32H747I-DISC1,基于STM32H747XI MCU的不帶LCD模塊的探索套件
- 555定時器
- LTC7813MPUH 寬輸入范圍至 12V/8A 低 IQ 級聯升壓+降壓穩壓器的典型應用電路 (VMID = 14V)
- Loli3接收機xLyRX
- 具有備用電池的 LTC3633AIUFD-3 2.5V 穩壓器的典型應用電路