浅谈汽车CAN总线通信系统的教与学

2024-07-20 00:00:00李清明梁业庆
职业 2024年11期

摘 要:随着汽车电子化的发展,CAN总线通信系统在汽车维修专业中的重要性日益凸显。本文探讨了基于CAN的车窗控制系统,结合硬件电路和软件程序设计以及示波器和CAN分析仪的使用,来加深学生对CAN总线通信系统原理和协议及数据收发过程的理解。这种实践性学习方法能够增强学生的学习兴趣,提高学生的创新能力,为未来做好汽车维修等岗位工作打下坚实基础。

关键词:汽车维修专业;CAN总线通信系统;车窗控制系统;硬件电路设计;软件程序设计

汽车CAN总线通信系统是现代汽车中广泛应用的一种通信技术,它可以实现车辆各个系统之间的数据交换和共享。也就是说不论是汽车维修专业,还是汽车电器以及汽车设计专业,汽车CAN总线通信系统都是绕不过去的必须学习的系统,那么如何学习CAN总线通信系统才能高效掌握CAN总线通信系统的原理呢?

笔者认为带学生设计一个CAN总线通信系统比单纯讲解CAN总线通信系统的组成、原理、检测方法要有效,这也是“行胜于言”的教学思想的体现,同时在“设计—完成”中体现出教学的价值,学生有了学习成果,有了输出,这样的教学才是更高效的。

在CAN总线通信系统的教学中,笔者选取一个“基于CAN总线通信系统的车窗控制系统的设计”为课题,带领学生完成了这一课题,并用于教学实践中,这样学生学得容易,教师教得轻松,学习达到事半功倍的效果。现就具体的设计方案与同行们分享一下,旨在抛砖引玉,供同行参考。

一、系统硬件电路设计

本系统的硬件设计主要包括STC32单片机、CAN总线收发器、车窗电机驱动电路和按键输入电路等部分。最终实现与车上车窗控制功能一致的功能,能够实现车窗的主控与分控、单触上升与下降、钥匙联动等功能。

我们采用嘉立创EDA进行PCB设计,并与学生共同完成电子元件的焊接。

系统电路组成主要由电源电路、四个单片机最小系统、CAN总线收发器、各车窗的按键开关输入电路、各个车窗电机的正反转控制电路组成。

本系统选用STC3 2G1 2K1 2 8-LQFP32系列单片机作为主控制器,具有高性能、低功耗的特点。该单片机集成了CAN模块和GPIO模块,能够满足系统的需求。

本系统采用TJA1050作为CAN总线通信系统收发器,实现单片机与车窗电机之间的通信。TJA1050具有高速传输和抗干扰能力强的特点,能够保证系统的可靠性和实时性。为了使教学不至于枯燥乏味,教师使用了连线操作,让学生了解模块的供电及通信线路连接,这也是一个必要的互动环节。

按键输入电路,用于实现车窗的控制功能。按键输入电路包括上升键、下降键、自动键和分控锁止键、车门钥匙联动开关等。通过按键输入电路,用户可以实现对车窗的控制操作。

车窗电机的正反转控制电路采用两个五脚继电器来切换,而继电器的驱动采用ULN2003A芯片来驱动,电路简单而稳定可靠。

整个电路板采用按功能进行分区设计,让人一看就能明白这一块电路的主要功能。如驾驶侧车窗控制模块下方的按钮与开关区域,分别是钥匙联动开关、各车窗的上升、下降及自动按钮,自动上升与下降需同时按下自动按钮与上升或下降按钮。

二、系统软件设计

本系统的软件设计主要包括主程序、 CAN总线接收中断程序和按键处理程序等部分。

主程序主要负责系统的初始化和状态检测。在主程序中,首先进行系统初始化,包括CAN总线的初始化和GPIO模块的初始化。然后进行状态检测,判断是否有按键输入和CAN总线接收到的数据。根据不同的状态,执行相应的操作。

CAN总线接收中断程序主要用于处理CAN总线接收到的数据。当CAN总线接收到数据时,触发中断并进入中断程序。在中断程序中,首先判断接收到的数据是否有效,然后根据数据的内容进行相应的操作。例如,如果接收到的是上升指令,则控制车窗电机上升;如果接收到的是下降指令,则控制车窗电机下降。

按键处理程序主要用于处理按键输入的操作。当有按键输入时,触发中断并进入中断程序。在中断程序中,首先判断按键的类型,然后根据按键的类型进行相应的操作。例如,如果按下的是上升键,则控制车窗电机上升;如果按下的是下降键,则控制车窗电机下降。

三、系统测试与分析

为了验证系统的性能和稳定性,进行了一系列的测试和分析。测试结果表明,该系统能够实现车窗的主控与分控、单触上升与下降、钥匙联动等功能。同时,系统具有较高的可靠性和实时性,能够满足车窗控制的需求。

四、CAN总线通信系统的教与学

在教学过程中,有条件的学校教师可先把原理图分享给学生,并要求学生按原理图画出PCB,并自行定制电路板,焊接元件。对时间与条件不允许的学校,可直接发电路板给学生,让学生按要求焊接电子元件,接着准备编程。

笔者推荐使用“天问BLOCKER”进行编程,因为它能采用图形化编程,简单易学易用。

首先,学生需要了解CAN总线通信系统的基本原理和通信协议。可以学习CAN总线通信系统的数据传输方式、错误检测和纠正等基本概念。然后,可以学习如何使用CAN总线控制器和CAN总线收发器来实现数据的发送和接收。如先发送ID为01数据为00的标准帧,再依次改变数据,同时用示波器测量其波形,可把多个波形及标准帧的组成格式合成一个图片,这样便于观察,学生按这样的图来理解CAN的报文就容易多了。

对于汽车上真实的数据长度可能不止一个字节,示波器在同一屏幕上不太好完整显示同一帧数据,除了通过波图理解CAN报文格式,还使用CAN分析仪进行数据的读取。可同时使用CAN分析仪与示波器进行车窗控制系统调试。

通过硬件电路设计和软件程序设计来学习CAN总线通信系统。同时,结合示波器测量波形和CAN分析仪的使用,学生可以更好地理解CAN总线通信系统的协议和数据收发过程。

学生需要设计车窗控制系统的硬件部分。可以选择适合的微控制器和传感器来实现车窗的控制功能,也可直接参考我们的电路进行PCB设计,做出自己的电路板,焊接电子元件后,进行软件编程。使用“天问BLOCKER”进行编程,CAN发送函数的核心代码可由教师讲授,弄懂一个车窗控制模块的编程,其他车窗控制模块的编程基本类似,只是ID号与数据不同。教师会给出关键的代码,供学生参考。然后,学生需要编写程序来实现车窗控制系统的功能。学生可以使用“天问BLOCKER”进行编程或C语言来编写程序,通过CAN总线通信系统进行数据的发送和接收,来实现车窗的开关控制等功能。

学生需要进行系统的测试和调试。可以使用示波器和逻辑分析仪等工具来监测CAN总线通信系统上的数据信号,检查系统的工作情况。还可以进行故障排除和性能优化,确保系统的稳定性和可靠性。接好车窗马达,进行实物测试,观察是否实现车窗控制功能。这样,就完成了一个基于CAN总线通信系统的车窗控制系统的设计任务,同时也完成了CAN总线通信系统的学习。

通过设计一个基于CAN总线通信系统的车窗控制系统,学生能够更加深入地理解和学习CAN总线通信系统的原理与检修方法。这种实践性的学习方法不仅能够提高学生的学习兴趣和动力,还能够培养学生的问题解决能力和团队合作精神,能够有效地提升学生对CAN总线通信系统的掌握程度。希望本文能够对汽车维修专业、汽车电器以及汽车设计专业的教师与学生在讲授与学习CAN总线通信系统知识方面提供一定的借鉴和帮助。

(作者:李清明、梁业庆,深圳技师学院教师)