CAN总线学习之路

闻道有先后,术业有专攻。我们接触新的事物时总会有个学习过程,如今现场总线非常繁多,CAN总线就是其中不可忽视的一种,在此以个人的学习过程与大家共勉!

我大学时的专业是电子科学与技术,专业课程是数电、模电、单片机、C语言等,如果不是进入了致远电子,很有可能根本不会接触到CAN总线。致远电子是国内最早研究CAN总线的公司之一,推出销售的CAN总线相关产品非常丰富,因此每一位进入致远电子的工程师,CAN总线就成了必修课之一,我也不例外。

记得那是2011年的11月,我刚到致远电子报到,第二天的欢迎会上,周工就给我们发了两本书,一本是《新编计算机基础教程》、另外一本就是《项目驱动------CAN-bus现场总线基础教程》,我的CAN学习之路也从此开始。

《项目驱动》告诉了我什么是"总线------bus",信息在一条公共通道上传输,信息接收者从通道上接收所有信息,并根据规则过滤出发给自己的信息,这就是总线的概念。而CAN总线最早是应用在汽车上,为了解决早期车身点对点连接导致车身线缆数量随着电子部件的增加而呈指数上升带来的管理问题。正因为CAN总线最早应用在汽车上,所以CAN总线有着一套非常完整完善的错误处理机制,这使得CAN总线的自身的错误率大大减低,其自身出错概率小于10-9。因此CAN总线往往被应用在安全性要求很高的场合,如轨道交通、轮船、煤矿、医疗器械、甚至火箭发射都有CAN总线的身影。

随着学习的深入,也了解了CAN总线在ISO/OSI模型中主要有三层,分别是物理层、链路层、应用层,前面提到的CAN安全性的保证主要就是在链路层实现;在物理层的传输过程中,又包含了CAN控制器、CAN收发器、CAN传输网络;应用层主要就是高层协议,常见的包括:CANOpen、DeviceNet、J1939、iCAN等。我还记得当时为了配合学习CAN,我还专门申请了一块M0的学习板------TinyM0-CAN-T,主芯片是NXP的LPC11C24,带CAN控制器和收发器,就是在这个小板子上,自己调试跑了各样CAN的小程序,学习了CAN总线的工作过程。

随着工作的深入,学习的产品越来越多,接触的客户也越来越多,遇到的行业也越来越多。比如说客户做一个项目,一开始就规划了CAN总线,那么此时客户关注的往往就是选择什么样的主控制芯片(一般要带CAN控制器),然后选择合适的CAN收发器,为了保证总线运行可靠,很多客户会选用现成的隔离收发器,如CTM模块;又比如有些项目原本没有CAN总线,而由于后期应用需要增加CAN总线,此时往往会在原有的总线上进行转换,如以太网转CAN、串口转CAN、PCI转CAN、光纤转CAN等;还有一些CAN总线网络已经搭建完成,但是在工作过程中出现一些总线故障,此时需要用CANScope、CANDT等分析仪设备对CAN节点和总线进行全面体检分析。

虽然说除了CAN总线以外,还有很多的现场应用总线,但是学习是讲究触类旁通、举一反三的,当我们学习理解了一种总线协议之后,再学习其他现场总线那就是事半功倍的事了。

相关推荐
代码游侠9 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
A星空12310 小时前
一、Linux嵌入式的I2C驱动开发
linux·c++·驱动开发·i2c
CODECOLLECT12 小时前
京元 I62D Windows PDA 技术拆解:Windows 10 IoT 兼容 + 硬解码模块,如何降低工业软件迁移成本?
stm32·单片机·嵌入式硬件
春日见12 小时前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
BackCatK Chen13 小时前
STM32+FreeRTOS:嵌入式开发的黄金搭档,未来十年就靠它了!
stm32·单片机·嵌入式硬件·freertos·低功耗·rtdbs·工业控制
全栈游侠15 小时前
STM32F103XX 02-电源与备份寄存器
stm32·单片机·嵌入式硬件
Lsir10110_15 小时前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
深圳市九鼎创展科技18 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
辰哥单片机设计18 小时前
STM32项目分享:车辆防盗报警系统
stm32·单片机·嵌入式硬件
小龙报19 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机