什么是 CAN 總線控制器?
CAN 總線控制器是 CAN 局域網(wǎng)控制器的簡稱,是 CAN 總線通信系統(tǒng)中的核心部件。
它主要是為解決現(xiàn)代汽車中眾多測量控制部件之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信總線。CAN 總線控制器能提供高達 1Mbit/s 的數(shù)據(jù)傳輸速率,這讓實時控制變得容易。而且硬件的錯誤檢定特性增強了其抗電磁干擾能力。
以 Philips SJA1000 CAN 控制器為例,它支持 CAN2.0,包括標準的和擴展的數(shù)據(jù)和遠程幀,位速率可程控,還有可程控的時鐘輸出,擴展的 64 字節(jié) FIFO 接收緩沖器,4 個字節(jié)的驗收濾波器,時鐘頻率達 24MHz,輸出驅(qū)動器狀態(tài)可編程,有可擦寫的總線錯誤計數(shù)器、當前錯誤代碼寄存器、仲裁丟失捕獲寄存器,采用 28 腳 DIP/SO 封裝,引腳及電器特性與 82C200 兼容。
其原理方面,以 SJA1000 為例,功能框圖中 CAN 核心模塊根據(jù) CAN 總線協(xié)議控制數(shù)據(jù)幀的發(fā)送和接收。接口管理邏輯模塊提供 SJA1000 與主微處理器或其它設(shè)備的連接,主微處理器能通過數(shù)據(jù)/地址復用總線和讀寫控制邏輯訪問 SJA1000 的所有寄存器。發(fā)送緩沖區(qū)能存儲完整的標準或擴展的報文,當主微處理器要求發(fā)送報文時,接口管理邏輯操縱 CAN 核心模塊將其發(fā)送到 CAN 總線上。接收報文時,CAN 核心模塊先將串行位流數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),再交給接收過濾模塊識別,決定是否為主微處理器所需報文類別,接收的報文存放在接收先進先出隊列,根據(jù)工作模式和數(shù)據(jù)長度,最多可存放 32 個報文,用戶能靈活對報文分優(yōu)先級和中斷處理服務。
SJA1000 可直接連接 Intel 公司的 80C51 系列和 Motorola 公司的 68xx 系列處理器,芯片外圍有模式管腳選擇 CPU 類型,提供 8 位地址/數(shù)據(jù)復用總線和讀/寫控制信號與 CPU 交換數(shù)據(jù),可看作映射到主微處理器的外圍存取器 I/O 設(shè)備。
CAN 總線是常見的現(xiàn)場總線,能同時連接 110 個節(jié)點設(shè)備,控制其他節(jié)點的是主站,被控制的是從站。CAN 總線控制器是控制其他節(jié)點的設(shè)備,是主站,且連接的 CAN 總線通常有 CANopen 等總線協(xié)議,可能是 CANopen 主站設(shè)備,如支持 CANopen 通訊的 PLC 及單片機控制器等。
CAN 是控制器局域網(wǎng)絡(luò)的簡稱,優(yōu)點眾多,如傳輸速度最高到 1Mbps,通信距離最遠到 10km,有無損位仲裁機制和多主結(jié)構(gòu),近年來價格越來越低。具有低成本、高集成、可靠性強、效率高、靈活性好等優(yōu)點。
CAN 總線網(wǎng)絡(luò)主要掛在 CAN_H 和 CAN_L,需接 120 歐姆終端電阻避免信號反射和干擾。CAN 總線控制器負責將 CPU 發(fā)出的數(shù)據(jù)轉(zhuǎn)換為符合 CAN 總線標準的格式并發(fā)送,也能接收并處理來自 CAN 總線的數(shù)據(jù),是連接 CPU 與 CAN 總線的橋梁,為控制系統(tǒng)提供高效、可靠、靈活的通信解決方案。
最新問答

