微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 基于CAN-bus的汽车驾驶状态测量节点的设计

基于CAN-bus的汽车驾驶状态测量节点的设计

时间:10-03 来源: 点击:

器芯片的输出电压,通常使用带有A/D的微控制器。传感器输出与A/D之间的RC滤波电路用于减小时钟噪声,电源与地之间的0.1μF电容是去耦电容,芯片安装时要尽量减小加速度传感器与微控制器之间的距离。测试电路如图5所示。

ARM7 LPC2119 的A/D转换器基本时钟由VPB时钟提供。每个转换器包含一个可编程分频器,可将时钟调整至逐步逼近转换所需的4.5MHz(最大);完全满足精度要求的转换需要11个转换时钟,10位转换时间小于2.44μs。为了降低噪声和出错几率,模拟地和数字地之间、模拟电源和数字电源之间均用10μH的电感进行隔离。

2 系统软件设计

系统软件设计包括两方面:(1)智能测控节点软件设计。主要是对加速度传感器的采样数据处理和完成与上位机之间的数据通信功能。(2)上位机软件设计。主要包括CAN节点初始化、报文发送和报文接收。

2.1 智能节点软件设计

由加速度传感器MMA6260Q采样来的模拟信号由LPC2119 A/D转换,经过有效数据检查、数字滤波、标度变换、线性化技术等处理,消除由于随机干扰带来的误差,得到实际被测加速度的准确数值。LPC2119初始化完成以下任务:设置工作方式、接收滤波方式、接收屏蔽寄存器AMR和接收代码ACR、波特率参数和中断允许寄存器IER等。系统设定工作频率为16MHz,波特率配置为1Mb/s。

2.2 报文发送和接收子程序

CAN控制器有三个独立的发送缓冲寄存器,发送时要判断缓冲空闲,本设计中,先判断第一主发送缓冲区,然后进行数据格式转换,启动发送数据。报文发送、接收数据流程如图6所示。CAN的发送和接收子程序完成了CAN控制器的底层驱动。

报文发送函数原型:INT32U CANSendData(CANNUM CanNum,INT32U Cmd,*RxBuf),CanNum:CAN控制器;Cmd:发送命令字;RxBuf:发送数据指针。

接收采用中断方式,为避免数据丢失,在函数库中建立环形缓冲结构:

Typedef struct_RcvCANDataCycleBuf_{ INT32U WritePoint:8;ReadPoint:8; FullFlag:8;

stcRxBUF RcvBuf [CAN_RCV_BUF_SIZE];

}stcRcvCANCyBuf,*P_stcRcvCANCyBuf;

报文接收函数原型:

void ReadCanRxBuf(CANNUM CanNum,stcRcvCAN CyBuf*RcvCyBuf)

CanNum:CAN控制器; RcvCyBuf:目标环形缓冲区指针。

2.3 iCAN协议报文接收处理

智能节点必须符合iCAN协议报文的格式,先要把CAN的数据转换成符合iCAN协议格式的报文,再通过CAN的收发子程序发送和接收,iCAN报文的接收处理流程如图7所示。

系统采用iCAN总线技术及协议设计,实现了汽车驾驶状态--方向盘、油门、刹车和ECU控制等信息采集和处理。与以往的系统相比,其最大特点是提高了各测量节点的精度和稳定性以及系统数据通信的速度并增强了抗干扰能力。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top