控制器介紹
can控制器是CAN區域網路控制器的簡稱,為解決現代汽車中眾多測量控制部件之間的數據交換而開發的一種串列數據通信匯流排。CAN 可提供高達1Mbit/s的數據傳輸速率,這使實時控制變得非常容易。另外,硬體的錯誤檢定特性也增強了CAN的抗電磁干擾能力。
功能特點
以Philips SJA1000 CAN控制器為例:
*支持CAN2.0,包括標準的和擴展的數據和遠程幀
*位速率可程控,並有可程控的時鐘輸出;
*擴展的64位元組FIFO接收緩衝器;
*4個位元組的驗收濾波器;
*時鐘頻率提高到了24MHz;
*輸出驅動器狀態可程式;
*可擦寫的匯流排錯誤計數器;
*當前錯誤代碼暫存器;
*仲裁丟失捕獲暫存器;
*28腳DIP/SO封裝,引腳及電器特性與82C200兼容。
控制器原理
還是以SJA1000為例,功能框圖如下:
其中CAN核心模組根據CAN匯流排協定控制數據幀的傳送和接收;接口管理邏輯模組提供SJA1000與主微處理器或其它設備的連線,主微處理器可以通過數據/地址復用匯流排和讀寫控制邏輯訪問SJA1000的所有暫存器;傳送緩衝區可以存儲一個完整的標準或擴展的報文,當主微處理器要求SJA1000傳送報文時,接口管理邏輯操縱CAN核心模組將傳送緩衝區中的報文傳送到CAN匯流排上;當接收一個報文時,CAN核心模組首先將匯流排上的串列位流數據轉換位並行數據,然後交給接收過慮模組進行識別,決定該報文是否為主微處理器所要求的報文類別,所有接收的報文可以存放在接收先進先出佇列,根據不同的工作模式和數據長度,該佇列可以存放最多32個報文,然後用戶可以靈活地對報文分為不同地優先權和中斷處理服務。
SJA1000可直接連線兩類主要的處理器家族:Intel公司的80C51系列和Motorola公司的68xx系列,其晶片外圍專門有一個模式管腳用了選擇CPU的類型。SJA1000提供了8位地址/數據復用匯流排和讀/寫控制信號與CPU交換數據,我們可以將SJA1000看作映射到主微處理器的外圍存取器I/O設備。SJA1000與80C51系列微處理器地典型套用如圖2所示:
SJA1000通過2個8位暫存器來支持對報文的過濾功能,將套用不關心的報文拒之門外將提供處理期的性能,因為大多數套用都是通過中斷的方式交換數據,所以正確的使用過濾功能可以為中斷處理函式贏得時間。SJA1000提供一個接收編碼暫存器(Acceptance Code Register)和一個接收禁止暫存器(Acceptance Mask Register)。接收過濾模組將CAN報文的11位標識符的高8位於這2個暫存器里存放的值相比較,並作出是否接收的判斷。
控制器套用
can控制器最初是為汽車的監測、控制系統而設計的,現已在航天、電力、石化、冶金、紡織、造紙、倉儲等行業廣泛採用。在火車、輪船、機器人、樓宇自控、醫療器械、數控工具機、、過程自動化儀表等自控設備中,都廣泛採用CAN技術。