0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于LPC2292微控制器和CAN控制器实现车辆行驶监控系统的设计

电子设计 来源:单片机与嵌入式系统应用 作者:李怀俊;刘越琪;朱 2021-04-02 09:13 次阅读

作者:李怀俊;刘越琪;朱玉强;张飞

1 终端功能

本监控终端除了具有传统的记录仪所拥有的事故分析功能外,还能在汽车驾驶员超速行驶时发出超速报警声,以提醒驾驶员减速行驶,并详细记录车辆每次的开车时间、行驶里程、行驶时间、最高车速,以及每次最高车速的持续时间,方便交通管理部门根据所记录的有关数据对车辆进行有效的管理;同时,该设备可实现多种信息处理,显示汽车状况,进行自我诊断,对车速、发动机转速、水温、油压、刹车气压、轮胎压力和蓄电池电压等一系列参数进行有效监控;通过控制发光二极管、液晶显示、蜂鸣器等报警手段,为司乘人员提供直接的汽车状况信息并发出各种超限情况的报警等,可有效防范和化解车辆事故的发生。另外,终端具有GPRS和GPS模块,可将各种监测数据实时传至公司管理中心,方便了公司车辆的统一调度和行车监测,利于提高公司管理水平。

2 终端功能模块设计

选用带有ARM7TDMI-S内核的LPC2292微控制器,可实现对车速、转速信号、开关量信号以及水温、刹车气压、轮胎压力等模拟量信号的采集、处理以及数据的实时存储和显示,通过串口、USB接口可以实现与PC机之间的数据通信,通过 CAN和LIN总线接口可实现与汽车上的CAN或LIN节点间的数据通信。该系统的外围接口模块有电源模块、车速等脉冲信号采集模块、水温等模拟信号采集模块、键盘接口模块、存储器模块、GPS定位模块、GPRS通信模块、LCD显示模块、胎压监测以及通信接口模块,系统的组成框图如图1所示。限于篇幅,本文仅就若干特色功能模块设计作详细分析。

基于LPC2292微控制器和CAN控制器实现车辆行驶监控系统的设计

2.1 车速、转速信号采集电路设计

现有运输车辆一般都装有霍尔式集成传感器,车速转换成的电压信号直接送至车速表,信号采集比较方便,具体处理方法是直接从车速表的接线端子取得车速信号。具体接线方式根据车速表信号输出电路来确定。信号出车速表端子后送至光耦4N35高速隔离开关,再送至集成运放LM358D前置差分电路,进一步去除干扰并有效放大,由LM358D输出端(7脚)送至9013进行次级放大,至此车速信号已是占空比为50%的方波信号,并已剔除杂波,可直接送至微控制器定时捕获端口进行计数,具体电路如图2所示。经反复实验优化,本电路抗干扰能力很强,实车测试时无论低速状态或超过110 km/h车速时,均可稳定准确地检测到速度信号。同理,发动机转速信号亦可采取类似方法进行处理(在此不再赘述)。

2.3 CAN总线接口功能设计

CAN正常工作需要具备CAN控制器以及CAN总线驱动器。前者实现网络层次结构中数据链路层和物理层的功能,后者则提供CAN控制器与物理总线之间的接口以及对CAN总线的差动发送和接收功能。LPC2292微控制器包含两个CAN控制器,单个总线上的数据传输速率高达1 Mbps,具有32位寄存器RAM访问功能,带有全局滤波器和验收滤波器。本系统采用CTM8251D双路带隔离CAN收发器,至少可连接110个节点,通过扩展CAN总线接口,使得串行通信方式的选择更加多样化。当车内仪表也具有CAN总线接口的时候,它们可以直接利用此接口与记录仪通信。CAN总线接口电路如图4所示。

CAN通信与一般的串口通信类似,在数据通信前先要对CAN总线进行初始化操作,包括CAN控制器的选择、数据寄存器的设置、通信波特率的设置等。初始化完成后,需要设置双方的通信协议,建立彼此的连接。只有在同一协议下工作的双方才能正确进行数据的交换。本系统设置的CAN通信协议为:无过滤条件、 bypass模式、波特率可以预先设置。

本系统提供的CAN-BUS通信函数接口如下:

①初始化CAN:int CAN_Init(int cannum,uint32volatile baudset)。

函数入口参数:cannum为CAN控制器的选择标志符,为1选择CAN0控制器,为2选择CAN1控制器;baudset为波特率,可以预先设置。

函数出口参数:初始化成功返回0,失败则返回1。

函数功能:对CAN控制器进行初始化。

②CAN总线发送数据:int CAN_SendData(int can-num,uint32 volatile frameinfo,uint32 volatile senddatal,uint32 volatile senddata2,uint32 volatile canmode)。

函数入口参数:cannum同上;frameinfo为帧信息,用于设置帧信息寄存器;senddata1和senddata2分别为要发送的数据,用于设置数据寄存器A和B;canmode用于设置CAN工作模式。

函数出口参数:数据发送成功返回0,失败则返回1。

函数功能:CAN总线进行数据发送。

③CAN总线接收数据:int CAN_RcvData(int can-num。uint32 volatile *pdatal,uint32 volatile *pdata2)。函数入口参数:cannum同上;pdata1和pdata2为接收数据指针。

函数功能:CAN总线接收数据,并从数据寄存器CANRDA和CANRDB中将数据读进对应的指针中。

2.4 LIN总线接口电路设计

LIN是低成本网络中的汽车通信协议标准,可以提高通信质量、降低成本,将是在汽车中使用汽车分级网络的重要因素。LIN总线是一种简单的单总线系统,其软件协议栈比较简单。一个LIN网络由一个主机节点和一个以上的从机节点组成,所有的节点都包括有从机服务程序,用来发送和接收数据,仅有一个节点包含有主机服务程序。主机程序主要用于发送同步间隔、同步场和ID场(或命令),以控制和协调各个节点的有序通信。

LPC2292微控制器集成有实现LIN总线节点的必要硬件,包括UART、捕获输入和足够的定时器,特别是其捕获输入功能,为LIN的帧头识别、帧同步 &波特率测量提供了极大的便利。LIN总线接口电路如图5所示,主要由LIN物理层接口芯片TJA1020构成,与LPC2292串口2相连,其主要完成MCU通信信号与LIN物理总线信号之间的相互转换,为MCU提供一个与LIN物理总线的接口。

2.5 红外通用接口模块

出于用户统一采集数据需求考虑,本系统设计了通用的红外接口。它能够支持红外遥控和数据通信,支持IrDA协议,能够方便地与各种符合协议标准的设备进行通信。该模块由HSDL7001编解码芯片和HSDL3600红外收发芯片组成。 HSDL7001与MCU串口相连,原理框图如图6所示。

HSDL7001可驱动IrDA兼容的收发器,最高传输速率达11 502 kbps,其内部有1个SIR编码器和1个SIR解码器,支持内部(外接3.* MHz晶振)和外部16XCLK输入两种模式。当使用内部时钟时,波特率可通过A0、A1和A2进行调整。

3 终端软件设计

嵌入式μClinux具有结构小巧、实时性强、稳定性高、可定制性强的特点。在网络通信方面,嵌入式操作系统支持TCP/IP及其他协议并提供通信协议动态挂接技术,以及操作系统内部的进程通信应用接口技术。本设计采用稳定的2.4版本的内核,并对它进行合理的裁减和加载,作为操作平台。μClinux己对本系统采用的主控器有了很好的支持,但在编译本系统的内核前,需要修改 uclinux/linux-2.4.x/arch/armnommu/config.in文件中关于外部存储空间的定义,以满足本系统关于外部 Flash、CH375B和LCD液晶屏等器件的存储空间的划分。

3.1 进程管理

μClinux的进程调度沿用了Linux的传统,系统每隔一定时间挂起进程,同时系统产生快速和周期性的时钟计时中断,并通过调度函数(定时器处理函数)决定进程何时拥有相应的时间片,然后进行相关进程切换,这通过父进程调用:fork函数生成子进程来实现。

本系统中,为每个任务建立数据处理子进程,包括:车速、转速等信号采集处理任务、串口定时通信任务、USB数据传输任务、GPRS数据传输任务、LCD数据显示更新任务等。子进程采用由μClinux内核中的cron组件触发任务机制。系统中的crontab文件记录了终端的定时数据处理任务信息(可由系统前台设定任务执行周期),时间一到即可被cron触发其相应的子进程。由于采用多进程处理,终端可方便地实现多种信号的实时采集以及数据的及时处理、存储和上送。

3.2 设备驱动程序编写

设备驱动程序是内核与硬件之间的唯一接口,也是内核代码的一部分。当硬件设备要与内核进行交互时,就会产生一个中断信号,通过驱动程序预定义的入口点进入内核,入口点将此信号保存在栈中并保存被中断任务的寄存器的值。内核提取保存在栈中的中断信号,再由内核调用相应的中断处理程序。应用程序可以像操作普通文件一样对硬件设备进行操作。

本系统用到LPC22292的4路A/D采样接口对水温、刹车气压以及发动机电压状态等参数进行采集。下面以A/D采样驱动程序为例进行分析:

①应用程序只有通过对设备文件的open、close、read/write、ioctl等进行操作才能访问硬件设备,Linux的扩展文件操作结构 file_operations实现了标准的文件操作到硬件设备操作的映射,每个设备驱动程序都要实现这个接口所定义的部分或全部函数。A/D驱动程序的扩展文件操作结构如下:

②在设备驱动程序中使用中断,是提高系统数据处理速率的有效手段。有两项工作要做:

第一,在初始化函数中的register_chrdev()调用之后,使用request_irq()函数安装中断处理程序。request_irq()函数声明如下:

其中的参数irq是驱动程序使用的设备中断号;handler是中断服务函数指针;flags是一个与中断管理有关的各种选项的字节掩码;device在/proc/interrupts中用于显示中断的拥有者;dev_id这个指针用于共享的中断信号线,返回0成功,非0失败。

A/D驱动程序安装如下一个中断处理程序:

结 语

基于ARM核的LPC2292为控制核心的嵌入式车辆行驶监控终端,在现有行车记录仪基础上增加了若干新功能。它具有以下特点:

①以μClinux系统为数据处理平台,通过多任务进程调度机制大大提高了系统处理海量数据的能力,实时性得到很大提高,对于车速、发动机转速、刹车气压等监测频率要求高的参数可以精确监测,增强了车辆行驶安全性。

②先进的通信功能。CAN、LIN总线接口使得终端可以与具备通用总线接口的车辆融为一体,作为车辆的内置诊断装置,可全方位获取车辆参数。USB接口使得监控数据可以方便地保存至系统后台,利于数据分析。

③完善的数据上传与车辆定位跟踪功能。管理者不仅可以实时了解车辆的位置现状,而且可以实时监控车辆的运行状态,通过司机与管理者的双重监控,可以有效保证车辆的安全运行,这对于从事高危运输行业的车辆具有重要意义。

总之,将高性能的ARM微控制器与嵌入式操作系统运用于车辆行驶监控终端中,既能大大提高车辆数据采集与分析的效率和准确性,又可实现对车辆多种性能参数的实时监控,是今后车辆远程实时监控技术的发展趋势。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7482

    浏览量

    151008
  • 控制器
    +关注

    关注

    112

    文章

    16185

    浏览量

    177331
  • 监控系统
    +关注

    关注

    21

    文章

    3857

    浏览量

    173482
收藏 人收藏

    评论

    相关推荐

    基于LPC2292 和DS18B20 的测温节点设计The Des ign of Temperature measure node B

    基于LPC2292 和DS18B20 的测温节点设计 摘要:本文介绍了一种基于LPC2292 和数字式温度传感DS18B20 的测温节点的软硬件实现方法。论文详细论述了硬件
    发表于 10-19 14:52

    基于嵌入式微控制器LPC2214的远程图像监控系统

    基于嵌入式微控制器LPC2214的远程图像监控系统摘要:针对传统图像监控系统所存在的缺陷,综合应
    发表于 12-01 10:23

    怎么利用LPC2292嵌入式微处理设计监护系统

    如何利用LPC2292嵌入式微处理设计监护系统
    发表于 07-31 06:10

    微控制器LPC2292资料推荐

    微控制器LPC2292资料下载内容主要介绍了:LPC2292功能和特性LPC2292引脚功能LPC2292内部方框图
    发表于 03-31 07:40

    LPC2194CAN控制器和ARM微控制器相关资料分享

    LPC2194是飞利浦公司生产的一款CAN控制器和ARM微控制器。它为四面64脚封装。自带4路CAN控制
    发表于 04-22 07:37

    基于LPC2292的手持JPEG图像显示设计

            文章介绍了基于32 位ARM7 芯片LPC2292 实现的软件JPEG 解码算法及应用了此算法的手持JPEG 图像显示的设计。文章从JPEG
    发表于 09-05 09:17 21次下载

    基于LPC2292的汽车智能组合仪表

    介绍了一种汽车智能组合仪表的设计, 讨论了汽车智能仪表的结构和功能, 分析了系统的软件设计。该仪表以基于ARM7 的微控制器LPC2292 微控制器
    发表于 06-02 15:04 65次下载
    基于<b class='flag-5'>LPC2292</b>的汽车智能组合仪表

    基于LPC2292的手持JPEG图像显示设计

    基于LPC2292的手持JPEG图像显示设计,很好的资料,快来学习吧
    发表于 02-18 13:52 0次下载

    详解LPC2000系列ARM微控制器CAN验收滤波应用

     LPC2000 系列ARM微控制器是采用ARM7TDMI-S内核的32位嵌入式微处理,内嵌2路或4路CAN控制器和验收滤波
    发表于 02-08 19:24 2253次阅读
    详解<b class='flag-5'>LPC</b>2000系列ARM<b class='flag-5'>微控制器</b>的<b class='flag-5'>CAN</b>验收滤波<b class='flag-5'>器</b>应用

    关于支持LCD显示的LPC微控制器系列的介绍(一)

    介绍LPC支持LCD显示的微控制器系列,展示了LPC微控制器家族开发和图形设计工具的生态系统,最后为大家逐步演示如何基于
    的头像 发表于 06-28 19:28 6318次阅读

    LPC2131微控制器外部实现CAN总线通信设计

    Philips公司的LPC213l是基于ARM7TDMI-S的高性能32位RISC微控制器。它具有ARM处理的所有优点——低功耗、高性能和较为丰富的片上资源,但LPC2131内部没有
    的头像 发表于 04-18 08:08 3139次阅读
    在<b class='flag-5'>LPC</b>2131<b class='flag-5'>微控制器</b>外部<b class='flag-5'>实现</b><b class='flag-5'>CAN</b>总线通信设计

    基于EasyJTAG仿真上采用LPC2292单片机实现CAN节点的设计

    扩展到了机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械、家用电器及传感等诸多领域。CAN节点的设计多采用单片机,为此,本文给出了一种基于本身已经嵌入了CAN控制器的单片机
    的头像 发表于 04-11 17:21 3001次阅读
    基于EasyJTAG仿真<b class='flag-5'>器</b>上采用<b class='flag-5'>LPC2292</b>单片机<b class='flag-5'>实现</b><b class='flag-5'>CAN</b>节点的设计

    LPC2292微控制器的PCB原理图免费下载

    本文档的主要内容详细介绍的是LPC2292微控制器的PCB原理图免费下载。
    发表于 10-21 11:19 15次下载
    <b class='flag-5'>LPC2292</b><b class='flag-5'>微控制器</b>的PCB原理图免费下载

    CAN控制器和收发

    SJA1000CAN控制器集成在微控制器中,如NXP半导体公司的Cortex-M0内核LPC11Cxx系列微控制器
    发表于 12-04 11:21 28次下载
    <b class='flag-5'>CAN</b><b class='flag-5'>控制器</b>和收发<b class='flag-5'>器</b>

    基于LPC2292CAN总线USB接口适配器的设计

    电子发烧友网站提供《基于LPC2292CAN总线USB接口适配器的设计.pdf》资料免费下载
    发表于 10-09 16:53 1次下载
    基于<b class='flag-5'>LPC2292</b>的<b class='flag-5'>CAN</b>总线USB接口适配器的设计