当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于CAN总线的嵌入式车灯监控系统设计

摘要:为了确保车灯的质量可靠性,提出了一种嵌入式车灯控制及电气参数检测系统的设计方案。系统包括上位机监控终端和下位机控制节点,监控终端负责设置各车灯的工作参数和显示车灯的工作状态;控制节点采用基于Cortex—M3内核的嵌入式微处理器LM3S2965为核心,将实时操作系统μCOS-II植入其中,提高系统的实时性和稳定性,同时将我国自主研发的iCAN协议应用到系统中,从而实现对车灯的网络化监控。结果表明,系统最多可对63个车灯进行实时的电气参数检测与控制,具有较高的可靠性。
关键词:车灯监控系统;μCOS-II;iCAN协议;LM3S2965

    当前我国的汽车总数呈现爆发式增长,由于汽车照明与交通安全有着密不可分的关系,因此对车灯产品进行可靠性检测是很有必要的。针对这种情况,提出了基于CAN总线的嵌入式车灯监控系统的设计思想,结合总线技术和单片机嵌入式技术,实现对车灯进行功能控制以及电压电流参数检测。其中,iCAN协议在CAN总线网络中的使用,可以实现对多个车灯同时进行网络化监控,进而可以实时准确地掌握各个车灯的工作情况,确保车灯产品的质量可靠性。

1 系统整体结构
    系统主要由上位机和多个下位机节点组成。上位机是由VC编成的监测软件,PC机通过PCI-CAN卡与CAN总线相连,完成与下位机节点的通信,显示各车灯的电流电压及工作情况,并完成功能的设置。下位机节点以LM3S2965为主体,采样车灯工作时的电压电流,并对车灯进行控制。系统整体结构框图如图1所示。



2 节点的硬件设计
    下位机节点的硬件结构设计框图如图2所示。节点主要完成以下工作:1)定期对车灯工作时的电压电流进行AD采样,并将结果发送到CAN总线上,供上位机接收;2)接收上位机发送到CAN总线上的命令,并控制车灯实现相应的功能。因此,节点主要包括微处理器部分、CAN通讯模块、电源模块。


2.1 微处理器选型
    为了确保系统对车灯进行实时、可靠地控制及检测,这里选用可植入实时操作系统的Cortex-M3内核芯片LM3S2965。LM3S2965是南TI公司Stellaris所提供的首款基于ARM Cortex-M3的控制器对CAN总线应用方案而设计的芯片,具有较高的代码密度和指令执行效率。片内有256 kB的单周期访问的Flash,64KB的单周期SRAM,为操作系统的植入和运行提供了足够的容量;内部集成了兼容CAN2.0A/B的CAN控制器和ADC模数转换器,可以简化节点中CAN通讯电路和AD采样的电路的设计,同时也降低了软件开发的难度。[!--empirenews.page--]
2.2 CAN通讯模块设计
    CAN通讯接口可实现各个节点与上位机之间的通讯,从而完成数据的共享和命令的收发[1]。LM3S2965有两个兼容CAN2.0A/B的CAN控制器,可以实现数据链路层的功能,为实现物理层,这里只需要增加一个CAN收发器。Philips公司的TJA1040是一款通用的高速CAN收发器,它可将CAN控制器的逻辑电平与CAN总线上的差分电平进行相互的转化,同时具有优秀的EMC性能,可靠性高。本节点中,CAN接口电路如图3所示,微处理器内置的两个CAN控制器分别与TJA1040连接,一路与CAN总线相连,完成与上位机的通讯;另一路与车灯相连,完成与车灯之间的通讯,实现对车灯的控制。


2.3 电源模块设计
    电源模块可对供电电源进行净化处理,滤除高次谐波,避免供电电源对主控单元形成干扰。嵌入式系统的性能在很大程度上取决于电源电路的稳定性和可靠性,因此设计稳定可靠的电源模块非常重要。本节点中,LM3S2965的电源输入分为模拟输入和数字输入两种,电压为+3.3 V;CAN收发器TJA1040采用+5 V的供电电压。首先采用稳压器将外部直流输入电压稳压成5 V供给CAN收发器工作,然后用LT1086CM-3.3将5 V电压转换成+3.3 V供给微处理器工作。由于模拟电源和数字电源本身的性质差异,为保证这两种电源不会相互影响,这里在模拟电源和数字电源间用电感进行隔离。

3 系统软件设计
    系统的软件部分由上位机软件和下位机软件组成。上位机完成对系统功能参数的设置以及显示各车灯的电压电流;下位机软件主要完成基于iCAN协议的总线通讯,实时传递车灯的工作情况。
3.1 下位机软件设计
    下位机软件设计流程图如图3所示,包括操作系统μCOS-II、节点初始化、外设驱动程序以及应用程序。


    操作系统μCOS-II是系统运行的核心部分,完成任务的调度、时间管理和资源管理,在操作系统源码中通过对OS_CPU_C.C、OS_CPU_ A.ASM和OS_CPU.H 3个文件中与微处理器相关的数据类型和处理函数进行修改和重新编写后,便可将μCOS-II植入LM3S2965。初始化代码完成对MCU外设、μCOS-II操作系统以及CAN节点的初始化。应用程序在操作系统的基础上,分配任务堆栈空间,然后建立任务间通讯的信号量以及消息邮箱等,进而创建任务,并分配不同的优先级,此系统的任务划分如表1所示。

[!--empirenews.page--]
3.1.1 CAN节点初始化
    系统的主要任务是实现上位机与下位机之间的通讯,将下位机节点采集到的电压电流参数上传至上位机并显示给用户,实时反映车灯的工作状况。因此CAN通讯任务具有最高级别的优先级。在任务taskican中,首先完成CAN节点的初始化,包括端口初始化、设定波特率、设置验收滤波等,初始化通过调用Stellaris外设驱动库中的相应函数来完成。函数SysCtlPeripheralEnable()和GPIOPinTvpeCAN()可完成CAN模块外设的端口初始化,CANSetBitTiming()可以设定波特率,本设计中的通讯波特率设定为1 MB/s,并且总线上的节点都设置成相同的波特率,canAcceptFilterSet()可完成验收滤波设置。完成CAN节点的初始化之后,在任务taskican中每10 ms调用一次iCAN调度函数ICAN_Sche dul(),完成一次数据收发工作,同时将下位机节点采集的电压电流值上传至上位机并刷新显示。
3.1.2 基于iCAN协议的消息处理
    iCAN协议,即工业CAN-bus应用层协议。是由我国自主研发的基于CAN总线的高层应用协议,详细的定义了CAN报文中ID以及数据的分配和应用,建立了一个统一的设备模型,定义了设备的I/O资源和访问规则,采用“基于连接,面向节点”的通讯方式,既支持主从方式通讯模式,又支持事件触发通讯模式。系统中,上位机主节点的ID为0x01,下位机各节点的ID可以根据具体情况设定,范围为0x00-0x3F。
    节点中,数据的发送和接收是由微处理器集成的CAN控制器自动完成。为满足实时性的要求,数据的接收操作采用中断方式。由于下位机节点数量较多,数据的发送接收量比较大,为了保证不丢失数据,这里设计了两个深度为40字节的CAN报文缓冲区,分别用作发送和接收缓存。对缓冲区的操作,由函数canCirBufRead和函数canCirBufWrite来完成。而对于CAN消息的发送和接收由函数ICANTxMsgObjSend、canFr ameSend和ICANRxMsgObjExplain来完成。
    CAN消息的发送接收流程图如图5所示。数据的发送调用函数ICANTxMsgObiSend,其中先按照iCAN协议规定的格式填写报文的ID和数据段,然后查询缓冲区的状态,如果发送缓冲区未满,则调用canCirBufWrite将整合后的数据写入发送缓冲区,最后调用函数canFrameSend将数据发送到CAN总线上。


    接收采用中断方式,当有中断产生,即收到一帧数据,此时首先查询接收缓冲区的状态,如果未满,则调用函数canCirBufWrite将接收到的数据写入接收缓冲区。[!--empirenews.page--]
    通过调用函数ICANRxMsgObiExplain对接收到的数据进行处理。其中,首先调用函数canCirBufRead从接收缓冲区读取一帧报文,然后解析出报文的功能码FuncID和数据段内容,根据不同的功能码,按照iCAN协议填写不同的响应报文,最后调用数据发送函数ICANTxMsgObjSend返回响应帧。
3.2 上位机软件设计
    上位机软件的编写利用开发工具VC,利用MFC结合PCI-CAN卡的VCI库函数完成,软件界面如图6所示。


    其中,利用VCI库中的函数,可以实现数据的发送、接收以及设备的初始化。VC自带标准控件和模态对话框的使用,可以完成对下位机控制节点工作参数的设定,同时显示并保存各车灯的电乐电流及工作情况,当电压或电流超出量程时,会有相应的报警提示。电压电流监测界面如图7所示。



4 结论
    结果表明,系统可以同时对多组车灯进行功能控制,并且对车灯工作时的电压电流进行实时可靠的监测。该系统可以用于对新出厂的车灯进行测试,对其质量以及性能加以评定。这样,对保证日后车灯的质量有着重要的意义。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

这款全新的中端MCU系列为设计人员提供了更高水平的安全性和灵活性

关键字: 嵌入式 单片机

2024年4月11日,中国——意法半导体的ST25R100近距离通信(NFC)读取器芯片独步业界,集先进的技术功能、稳定可靠的通信连接和低廉的成本价格于一身,在大规模制造的消费电子和工控设备内,可以提高非接触式互动功能的...

关键字: 嵌入式 数据读取器 芯片

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

深圳2024年4月23日 /美通社/ -- 全球AI解决方案与工业级存储领导品牌宜鼎国际 (Innodisk)持续深化边缘AI布局,今(23)日发表全球首创"MIPI over Type-C"独家技术,让旗下嵌入式相机模...

关键字: AI 嵌入式 相机

为增进大家对嵌入式主板的认识,本文将对嵌入式主板以及嵌入式主板常见问题及其解决方法予以介绍。

关键字: 嵌入式 指数 主板

为增进大家对嵌入式系统的认识,本文将对嵌入式系统、嵌入式系统的特点予以介绍。

关键字: 嵌入式 指数 嵌入式系统

为增进大家对嵌入式的认识,本文将对嵌入式、嵌入式工作相关的内容予以介绍。

关键字: 嵌入式 指数 嵌入式技术

机器人操作系统(ROS)驱动程序基于ADI产品而开发,因此可直接在ROS生态系统中使用这些产品。本文将概述如何在应用、产品和系统(例如,自主导航、安全气泡地图和数据收集机器人)中使用和集成这些驱动程序;以及这样将如何有助...

关键字: 电机控制器 机器人 嵌入式

支持高达48V@5A的PD受电模式,达到目前USB PD最高标准。

关键字: 嵌入式 开发板

【2024年4月8日,德国慕尼黑讯】低碳化和数字化是当今时代人们面临的两大核心挑战,人类社会需要依靠创新和先进的技术,才能破除挑战、推动转型进程。在德国纽伦堡举办的2024国际嵌入式展(Embedded World 20...

关键字: 半导体 微控制器 嵌入式
关闭
关闭