昨晚很荣幸邀请到李工在RT-Thread微信群进行RT-Thread上的CAN驱动和应用讲座。小编整理了讲座内容,特发出讲义以供享用。
讲师:李起伟,任职于煤炭科学技术研究院有限公司,助理研究员,硕士,现主要从事嵌入式系统与煤矿安全监测监控系统的研究工作
分享主题:RT-Thread上的CAN驱动和应用
大家晚上好,今天跟大家探讨一下RTT上的CAN驱动和应用相关一些内容,主要有三个方面,第一项介绍一下CAN总线的基础知识,主要是一些帧格式的介绍。第二项是RTT上的CAN驱动的一个编写,这部分内容主要介绍一些CAN设备的读和写以及中断处理函数的驱动编写,中断处理函数主要说一下接收部分的处理。最后一项就是介绍一下CAN数据的处理现场的编写,整个内容都写得比较浅,然后在咱们这个探讨内容结束之后,我给大家发一个CAN总线的基础教程,然后另外我写的这部分驱动包括处理现场也是我在实际产品当中应用的,随后我把这部分内容的代码然后整理一下,之后也放出来。
我们就开始第一部分的内容,,说一下CAN的这个特性吧,在这个CAN的介绍当中会有跟这个modbus总线会有一些简单的对比,那么CAN总线它是一个多主站的结构,在总线上挂的这个所有的节点,他们的节点地位都是平等的,就是所有的节点都可以向总线当中主动地发送数据,不需要等待其他的节点的就是跟他发命令说我才可以往上发,这一点是跟modbus的区别,就是说modbus总线,他是一主多从的,在总线上只有一个主节点,其他节点都是从机,从机只能被动地根据主机的命令做出相应的回复或者是动作,当然这些节点再往总线上发送数据的时候会有一个优先级的问题。
在CAN总线当中,它有一个种CAN总线仲裁的机制,它主要是通过报文ID来实现的,那么在CAN总线当