can控制器
can控制器
can控制器是CAN區域網控制器的簡稱,為解決現代汽車中眾多測量控制部件之間的數據交換而開發的一種串列數據通信匯流排。
提供達/據傳輸速率,控制非容易。另,硬體錯誤檢增強抗電磁干擾能力。
控制器例:
*支持.,包括標準擴展據程幀
*位速率可程式控制,並有可程式控制的時鐘輸出;
*擴展的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技術。