基于dsPIC30F6014數字信號控制器的CAN節點設計
圖2所示為CAN總線網絡示例。圖中給出了三種CAN網絡實現方式:微控制器+CAN控制器+CAN收發器;集成CAN控制器的微控制器+CAN收發器;CAN的串行I/O器件+CAN收發器。其中節點1由MICROCHIP公司的dsPIC30F6014集成CAN控制器+MCP2551CAN收發器構成;節點2由MICROCHIP公司的PIC單片機+SPI接口的MCP2550串行CAN控制器+MCP2551CAN收發器構成;PC機的CAN節點由Philips公司的SJA1000CAN控制器+PCA82C250CAN收發器構成。本文的研究和試驗結果就是在這一網絡框架下完成的。
顯然dsPIC30F6014只需加上CAN總線收發電路就可掛接到CAN通信網絡上,大大簡化了通信系統的設計,同時可減少通信節點受到干擾的概率。CAN模塊通過CAN控制器接口芯片MCP2551連接到物理總線上。MCP2551是一個可容錯的高速CAN器件,可作為CAN協議控制器和物理總線接口。MCP2551 可為CAN 協議控制器提供差分收發能力,它完全符合ISO-11898標準,包括能滿足24V 電壓要求。它的工作速率高達1 Mb/s。
2.2 CAN節點軟件設計
CAN總線的3層結構模型為: 物理層、數據鏈路層和應用層。系統的開發主要在應用層軟件的設計上,CAN總線節點的軟件設計主要包括三大部分:CAN節點初始化、報文發送和報文接收。初始化程序設計對于CAN總線節點的正常工作相當重要。它主要包括工作方式的設置、接收屏蔽寄存器和接收代碼寄存器的設置、總線定時器的設置和中斷允許寄存器的設置。MICROCHIP公司提為開發者提供了豐富的開發工具和應用程序庫,使得開發代碼效率大大提高。由于CAN 協議沒有規定信息標識符的分配,因此可以根據不同應用使用不同的方法,所以在設計一個基于CAN 的通訊系統時確定CAN 標識符的分配非常重要。標識符的分配和定位也是較高層解決手段的其中一個主要的項目。當前較流行的CAN應用層協議有 CANOpen協議DeviceNet協議。DeviceNet協議適合于工廠自動化控制,CANOpen協議適合于所有機械的嵌入式網絡。對于小型網絡(圖2所示)Modbus 協議是一個不錯的解決發案。Modbus 協議是應用于電子控制器上的一種通用語言,通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以通信。它已經成為一個通用工業標準。有了它不同廠商生產的控制設備可以連成工業網絡進行集中監控。 Modbus 協議支持主/從通訊方式同時也支持使用對等技術通訊。因此Modbus協議不僅能夠支持RS232、RS485 網絡也能夠充分發揮CAN-bus 網絡的性能與通訊效率。
3 系統應用中應注意的問題
在實際運行中, 經常會遇到CAN總線不通和數據傳輸過程中丟幀現象,糾其原因主要有以下幾方面:
(1)為了進一步提高抗干擾措施, 在CAN控制器和收發器之間應使用由高速隔離器件如6N137 構成的隔離電路,同時采用DC-DC模塊將電源隔離,增強抗電磁干擾能力,保護系統電路不受網絡影響。
(2) 總線兩端的2個120歐姆的電阻, 對于匹配總線阻抗, 起著相當重要的作用。若忽略掉它們,會使數據通信的抗干擾性及可靠性大大降低, 甚至無法通訊。
(3) 在軟件設計時, CAN 總線定時器的設置非常關鍵, CAN 總線上的所有控制器必須有相同的波特率和位長度。然而,不同的控制器并不要求使用相同的主振蕩器時鐘。如果各個控制器的時鐘頻率不同,必須通過調節各個段的時間份額數調節波特率。下面是時間段編程的一些要求:
傳播段+ 相位緩沖段1> = 相位緩沖段2
相位緩沖段2 > 同步跳轉寬度
通常,位的采樣應當發生在位時間的60-70% 左右,取決于系統參數。
結語
本文的創新觀點在于:詳細介紹了dsPIC30F6014數字信號控制器CAN節點實現方案。研究和試驗結果表明利用dsPIC30F6014數字信號控制器構成的CAN節點具有許多優良的性能,并能充分發揮節點的功能,為嵌入式系統CAN節點設計提供了一種新型實用方案。
評論