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