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