單片機和MCP2510的CAN總線通信模塊設計
圖7 軟件主體設計流程圖
本文中MCP2510主要采取中斷模式進行總線數據的接收和發送。整個系統主序提供兩種中斷: 定時器中斷和外部中斷。定時器中斷的中斷子程序主要負責處理來自模擬通道AIN0~AIN7的A/D數據,向MCP2510發送“數據發送請求命令”以及發送數據。外部中斷的中斷處理子程序主要包括CAN總線錯誤處理子程序和數據接收子程序。
2.2 軟件主體設計流程
軟件主體設計流程如圖7所示。軟件設計時需要注意以下問題:
① 因為 MCP2510在初始化完成后處于默認Configuration模式下,所以就需要在MCP2510的初始化完后將其置為 Normal模式,否則MCP2510將一直停留在Configuration 模式下,不能正常進行工作。將MCP2510置Normal模式可通過使用 MCP2510內置的BitModify(位修改)4指令向CANCTRL控制字寫入一個0字節來實現。
② 在對MCP2510進行任何操作之前,都要由微處理器向MCP2510的片選CS輸出一個低電平,使得MCP2510選通。
③ 在執行MCP2510的“讀”操作時,發送完讀指令及其地址碼之后,仍然需要向MCP2510提供時鐘,以接收“讀”到的數據??梢酝ㄟ^向MCP2510發送一個0字節來實現。
④ 在對MCP2510完成任意操作后,都要延時一段時間,使其有足夠的時間來準備接收下次操作的命令,防止出現MCP2510“忙”的情況。
3 總結
CAN總線已被公認為是最有前途的幾種現場總線之一。因其性價比高、實現簡單等突出優點深受越來越多的研發人員的青睞。本文的智能節點可聯結多個集散控制系統,其軟硬件電路的設計方法同樣適合于其他基于CAN總線的分布式控制系統的節點設計。
參考文獻
[1] 鄔寬明. CAN總線原理和應用系統設計[M]. 北京:北京航空航天大學出版社,1996.
[2] Microchip. MCP2510 DataSheet,2002.
[3] 王繼國,新亞. CAN控制器芯片MCP2510在遠程監測系統中的應用[J].電子技術應用,2004(4).
[4] 蔡美琴,張為民,何金兒,等. MCS51系列單片機系統及其應用[M]. 第2版. 北京: 高等教育出版社,2004.
楊慶華(碩士研究生),主要研究方向為計算機測控;張景元(教授),主要研究方向為人工智能、模式識別、信息處理和智能控制。
評論