CAN review

本人最早在06、07年开始搞CAN总线,采用的是RM9200+SJA1000和LPC2100通信。 当时CAN有CANOpen和DeviceNet 2种架构之分。我们采用了开源的lincan-0.3.2,把CAN注册为一个char设备,然后通过read/write函数进行CAN报文的接收和发送。 最近玩了freescale的i.MX6UL,这颗CPU本身具备2路CAN总线。 查了下当前CAN的支持,发现从2.6.25开始,CAN已经被引入到linux内核中,并被作为一个socket设备进行管理。 工具 由于CAN被整合进network,所以需要新的ip才能支持,点击进官网。或者可以使用GIT同步代码: [crayon-6a64bdd451745815801054/] 常用的CAN命令 查看可设置的配置参数: [crayon-6a64bdd451749911971854/] 设置CAN波特率为1Mbps: [crayon-6a64bdd45174b927334868/] 查看CAN的配置: [crayon-6a64bdd45174c656180325/] 启动/停止CAN: [crayon-6a64bdd45174d383098748/] 或者 [crayon-6a64bdd45174e712424323/] 接收CAN报文: [crayon-6a64bdd45174f384150302/] 发送CAN报文 [crayon-6a64bdd451750477128782/] 例如使用通道CAN1发送CAN ID为1,带有5个数据(0x01 0x23 0x45 0x67 0x89)的报文: [crayon-6a64bdd451751993777836/]…

NXP 2XXX CAN总线自测试

NXP2XXX的CAN控制器具有自测试功能 Global Self-Test Local Self-Test 如上。如果是Global Self-Test模式,则需要一个node硬件环回CAN报文。如果是Local Self-Test模式,则不需要node,而是通过终端电阻环回CAN报文。