CAN(Controller Area Network)總線,即控制器局域網。由于具有高性能、高可靠性以及獨特的設計,CAN總線越來越受到人們的重視。德國的Bosch公司最初為汽車監控和控制系統設計了CAN總線,現在,其應用已面向過程工業、機械工業、紡織工業、農用機械、機器人、數控機床、醫療器械及傳感器等領域發展。CAN總線已經形成國際標準,并已經公認為是最有前途的現場總線之一。CAN總線規范已經被國際標準化組織制訂為國際標準ISOll898,并得到眾多半導體器件廠商的支持,推出各種集成有CAN協議的產品。CAN總線系統智能節點是網絡上報文的接收和發送站,一般由單片機和CAN控制器或二者合二為一組成。 MCP2510是Microchip公司生產的一種獨立的可編程CAN控制器芯片。本文將介紹新型的獨立CAN通信控制器MCP2510,并給出其在CAN總線系統智能節點中的應用實例。 1 MCP2510芯片介紹 MCP2510是一種帶有SPI接口的CAN控制器,DIP封裝如圖l所示。它支持CAN技術規范V2.OA/B。能夠發送或接收標準的和擴展的信息幀,同時具有接收濾波和信息管理的功能。MCP2510通過SI接口與MCU進行數據傳輸,最高數據傳輸速率可達5Mbps,MCU可通過MCP2510與CAN總線上的其他MCU單元通信。MCP25lO內含3個發送緩沖器和2個接收緩沖器,同時還具有靈活的中斷管理能力,這些特點使得MCU對CAN總線的操作變得非常簡便。 1.1 MCP2510的主要特點
1.2 結構及工作原理 MCP25lO有PDIP、SOIC和TSSOP三種封裝形式。圖2是MCP2510的內部結構框圖。CAN協議機負責與CAN總線的接口,SPI接口邏輯用于實現同MCU的通信,而寄存、緩沖器組與控制邏輯則用來完成各種方式的設定和操作控制。現結合其工作過程將各部分的功能、原理作一介紹。 (1)收發操作 MCP2510的發送操作通過3個發送緩沖器來實現。這3個發送緩沖器各占據14字節的SRAM。第1字節是控制寄存器TXBNCTRL,該寄存器用來設定信息發送的條件,且給出了信息的發送狀態;第2~6字節用來存放標準的和擴展的標識符以及仲裁信息;最后8字節則用來存放待發送的數據信息。在進行發送前,必須先對這些寄存器進行初始化。 (2)中斷管理 MCP2510有8個中斷源,包括發送中斷、接收中斷、錯誤中斷及總線喚醒中斷等。利用中斷使能寄存器(CANINTE)和中斷屏蔽寄存器(CANINTF)可以方便地實現對各種中斷的有效管理。當有中斷發生時,INT引腳變為低電平并保持在低電平,直到MCU清除中斷為止。 (3)錯誤檢測 CAN協議具有CRCF錯誤、應答錯誤、形式錯誤、位錯誤和填充錯誤等檢測功能。MCP2510內含接收出錯計數器(REC)和發送出錯計數器(TEC)兩個錯誤計數器。因而對網絡中的任何一個節點來說,都有可能因為錯誤計數器的數值不同而使其處于錯誤一激話、錯誤一認可和總線一脫離3種狀態之一。 2 MCP2510在智能節點中的應用實例 利用MCP2510和CAN總線收發器TJAl050可構成一個CAN總線分布式測控網絡。系統可包括一個主控制器和多個節點控制器,這種節點控制器可對電動機的電流、電壓及周圍的溫度進行監控,其結構如圖3所示。 這種網絡拓撲結構采用了總線式結構和無源抽頭連接,且結構簡單、成本低,因而系統的可靠性較高。其信息傳輸采用CAN通信協議,通信介質采用雙絞線。由于CAN總線是基于發送報文的編碼,不對CAN控制節點進行編碼,故系統的可擴充性比較好,同時增刪CAN總線上的控制節點不會對系統的其余節點造成任何影響。 節點控制器的MCU可選用具有SPI接口的微處理器,也可采用不帶SPI接口的微處理器。本系統采用的是不帶SPI接口的微處理器AT89C5l。AT89C51可通過P1口與CAN控制器的SPI接口直接相連,并用軟件算法來實現SPI接口協議。CAN總線收發器TJAl050則作為MCP2510與物理總線的接口。如果需要進一步提高系統的抗干擾能力,則可在MCP2510和TJAl050之間再加一個光電隔離器。 智能節點電路原理圖如圖4所示。 |