設計實務 16:CAN Bus 應用程式設計的主要考慮因素
的 控制器區域網路 (CAN) 是博世開發的一種現場匯流排技術,基本上是一種串列異步通訊匯流排。它廣泛應用於汽車電子控制系統和工業控制場景。.
CAN 匯流排概觀
CAN 匯流排與 RS485 匯流排相似,都使用差動訊號線進行傳輸。CAN 中的兩條信號線是 CAN_H 和 CAN_L, ,其信號幅度相等,但相位相反。這兩條線之間的電壓差代表邏輯電平:
- 正電壓差表示邏輯 0.
- 零(或負)電壓差表示邏輯 1.
相較於 RS485,CAN 通訊協定更為複雜。RS485 通常使用 MCU 中的 UART 模組,而 CAN 則需要專用的 CAN 控制器. .如果 MCU 沒有內建 CAN 控制器,則需要外接 CAN 控制器晶片。.
典型的 CAN 匯流排實作
CAN 匯流排系統通常包括
- MCU (微控制器單元)
- CAN 控制器
- CAN 收發器
以下是 CAN 匯流排系統的典型收發器介面電路:
(註:原文中提到的圖表未包含在此)。
CAN 匯流排標準
CAN 匯流排已演變為兩種國際標準: ISO11519 和 ISO11898. .它們的主要差異如下:
- ISO11898 (高速、短距離閉迴路網路):
- 最大匯流排長度: 40 公尺
- 最大通訊速度: 1 Mbps
- 需要一個 120 歐姆終端電阻 在總線的兩端。.
- ISO11519-2 (低速、長距離開環網路):
- 最大傳輸距離: 1 公里
- 最大通訊速度: 125 kbps
- 每條公車線都需要 2.2 kΩ 串聯電阻. .這兩條線路是獨立的,不會形成閉合迴路。.
實際設計考量
在設計 CAN 匯流排系統時,布線方法取決於 MCU 的 CAN 控制器的特性。例如 STM32F103 微控制器具有以下 CAN 控制器功能:
- 支援 CAN2.0A 和 CAN2.0B 協議。.
- 通訊速度高達 1 Mbps.
- 歸類為高速匯流排。.
因此,為 STM32F103 設計週邊收發器電路時,終端電阻的配置應遵循 ISO11898 標準 (即總線兩端的 120 歐姆電阻)。.
總結
CAN 匯流排是一種穩健可靠的通訊協定,廣泛應用於汽車和工業應用。它的設計需要仔細考慮特定的標準 (ISO11898 或 ISO11519) 以及 MCU 和收發器元件的特性。在下一期中,我們將集中分析 CAN 通訊協定本身的細節。.