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总线以外,还有很多的现场应用总线,但是学习是讲究触类旁通、举一反三的,当我们学习理解了一种总线协议之后,再学习其他现场总线那就是事半功倍的事了。

相关推荐
小白在路上~28 分钟前
51单片机嵌入式开发:STC89C52操作GPIO口LED灯
c语言·开发语言·单片机·嵌入式硬件·51单片机·dsp开发
KINO321 小时前
51单片机外部中断(按键识别)
单片机·51单片机·嵌入式
FU.l2 小时前
Linux-笔记 全志平台休眠功能初探
linux·驱动开发·笔记
番茄灭世神11 小时前
利用STM32的定时器输出PWM方波
stm32·单片机·嵌入式硬件
m0_6442226111 小时前
HarmonyOS开发实战:UDP通讯示例规范
网络·驱动开发·嵌入式硬件·udp·harmonyos·鸿蒙·harmonyos next
人才程序员12 小时前
【51单片机入门】速通定时器
c语言·c++·单片机·嵌入式硬件·mcu·51单片机·proteus
黑不溜秋的12 小时前
驱动开发系列 - pci驱动
驱动开发·pci
XD74297163615 小时前
【TB作品】步进电机控制器,ATMEGA16单片机,Proteus仿真
单片机·proteus·仿真·步进电机·atmega16
南耿先生15 小时前
我在高职教STM32——LCD液晶显示(1)
stm32·单片机·嵌入式硬件
xiaoyaoyou.xyz15 小时前
嵌入式UI开发-lvgl+wsl2+vscode系列:5、事件(Events)
单片机·ui·lvgl