Zynq-7000系列CAN控制器簡(jiǎn)介
掃描二維碼
隨時(shí)隨地手機(jī)看文章
CAN控制器介紹
can控制器是CAN局域網(wǎng)控制器的簡(jiǎn)稱,為解決現(xiàn)代汽車中眾多測(cè)量控制部件之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信總線。
本文介紹 CAN 控制器的架構(gòu)和特性以及設(shè)計(jì)中各種寄存器的功能,PS 中有兩個(gè)幾乎相同的 CAN 控制器,它們可以獨(dú)立操作。
CAN控制器特征
CAN 控制器功能總結(jié)如下:
-
與 ISO 11898 -1、CAN 2.0A 和 CAN 2.0B 標(biāo)準(zhǔn)兼容
-
標(biāo)準(zhǔn)(11 位標(biāo)識(shí)符)和擴(kuò)展(29 位標(biāo)識(shí)符)幀
-
比特率高達(dá) 1 Mb/s
-
發(fā)送消息 FIFO (TxFIFO),深度為 64 個(gè)消息
-
通過一個(gè)高優(yōu)先級(jí)發(fā)送緩沖區(qū) (TxHPB) 進(jìn)行發(fā)送優(yōu)先級(jí)排序
-
TxFIFO 和 RxFIFO 的水印中斷
-
在正常模式下發(fā)生錯(cuò)誤或仲裁丟失時(shí)自動(dòng)重傳
-
接收消息 FIFO (RxFIFO),深度為 64 條消息
-
四個(gè)帶有使能、掩碼和 ID 的 Rx 接受濾波器
-
用于診斷應(yīng)用的環(huán)回和監(jiān)聽模式
-
可屏蔽的錯(cuò)誤和狀態(tài)中斷
-
接收消息的 16 位時(shí)間戳
-
可讀的 Rx/Tx 錯(cuò)誤計(jì)數(shù)器
CAN控制器系統(tǒng)視圖
CAN 控制器的系統(tǒng)視點(diǎn)如圖所示
CAN控制器框圖
CAN 內(nèi)核的高層架構(gòu)如圖所示
配置寄存器
CAN 控制器配置寄存器定義了配置寄存器,該模塊允許通過 APB 接口對(duì)寄存器進(jìn)行讀寫訪問
發(fā)送和接收消息
單獨(dú)的存儲(chǔ)緩沖區(qū)用于通過 FIFO 結(jié)構(gòu)發(fā)送 (TxFIFO) 和接收 (RxFIFO) 消息,每個(gè)緩沖區(qū)最多可存儲(chǔ) 64 條消息,將消息寫入 TxFIFO 后,通過 CAN 總線傳輸需要2*(Tx 驅(qū)動(dòng)器延遲 + 傳播延遲 + Rx 驅(qū)動(dòng)器延遲)的總延遲。
Tx 高優(yōu)先級(jí)緩沖器
每個(gè)控制器還有一個(gè)傳輸高優(yōu)先級(jí)緩沖區(qū) (TxHPB),為一個(gè)傳輸消息提供存儲(chǔ)空間,寫入此緩沖區(qū)的消息具有最大傳輸優(yōu)先級(jí),在當(dāng)前傳輸完成后,它們立即排隊(duì)等待傳輸,搶占 TxFIFO 中的任何消息。
驗(yàn)收過濾器
接收過濾器使用用戶定義的接收掩碼和 ID 寄存器對(duì)傳入的消息進(jìn)行排序,以確定是將消息存儲(chǔ)在 RxFIFO 中,還是確認(rèn)并丟棄它們。
通過驗(yàn)收過濾器的消息存儲(chǔ)在 RxFIFO 中。
CAN控制器應(yīng)用
can控制器應(yīng)用廣泛,最初是為汽車的監(jiān)測(cè)、控制系統(tǒng)而設(shè)計(jì)的,現(xiàn)已在航天、電力、石化、冶金、紡織、造紙、倉(cāng)儲(chǔ)等多個(gè)行業(yè)得到了廣泛采用。





