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

网友投稿 270 2022-11-24

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

1 终端功能

2 终端功能模块设计

2.3 CAN总线接口功能设计

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总线接口电路设计

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

3 终端软件设计

3.1 进程管理

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

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

3.2 设备驱动程序编写

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

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

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

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

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

结 语

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

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

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于C8051F040单片机的CAN总线和RS-232串口通信设计
下一篇:Java 二叉树遍历特别篇之Morris遍历
相关文章

 发表评论

暂时没有评论,来抢沙发吧~