新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 基于CAN-bus的汽车驾驶状态测量节点的设计

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

作者:时间:2017-06-07来源:网络

控制器局域网CAN(Controller Area Network)是国际上应用最广泛的现场总线之一。CAN最初被设计作为汽车环境中的控制总线,在车载各电子控制装置(ECU)之间交换信息,形成汽车电子控制网络。如在发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置[1]。CAN 总线具有实时性强、传输距离远、抗电磁干扰能力强、成本低等优点,以其高性能、高可靠性和独立的设计而被广泛应用于汽车工业、航空工业、工业控制、安全防护等领域。

本文引用地址:http://www.eepw.com.cn/article/201706/350671.htm

本文提出了一种以Philips LPC2119为控制器的节点的设计, iCAN-bus协议的应用使汽车驾驶状态(方向盘、油门、刹车和ECU控制等信息)的采集、处理和信息管理更具实时性和高效性。经实验测试,该控制系统数据传输快速、准确。

1 系统组成模式

1.1 基于iCAN协议的CAN网络

在本文的系统中,采用自主研发的iCAN协议作为本系统的应用协议[2]。iCAN协议是基于CAN的内部通信协议,该协议小巧、通信效率高,对硬件资源要求低,非常适合于小型系统的使用。系统中的设备统称为iCAN节点。iCAN协议定义的通信方式是“面向节点,基于连接”的通信方式。“面向节点”是指源节点地址及目的节点地址均已给定,即对于任何一个报文参与通信的双方是确定的。如图1所示。

“基于连接”是指在网络中任何一个参与通信的从站设备都必须和主站设备之间建立一个独立的通信连接。这样也为对任何一个设备的通信进行监控提供了可能。如图2所示。


1.2 设备的通信模式

iCAN协议定义了两种通信方式:主从轮询方式和方式。主从轮询方式又可分成点对点方式和广播方式;方式又可分成定时循环方式和状态触发方式。如表1所示。


1.3 实际的iCAN系统设计

在本文设计中,采用分布式处理的思想,每个从节点都能完成一些数据处理工作。例如,在加速度的数据采集中,相应从站完成数据的采集、调理、有效数据的判断等。这样,减轻了主节点的工作量,减少了通信次数从而能进一步提高通信质量。

在通信模式上,采用主从轮询和相结合的方式。在有从节点采集到有效数据的时候才主动向主节点报告,在通常情况下是没有任何动作的。之所以还需要主从轮询模式是基于以下原因。从节点如果长时间没有向主节点发送数据,有两种可能:第一,的确没有数据;第二,该节点已经损坏。在节点损坏的情况下,不会有任何数据发出,所以主节点必须定时查询从节点的状态,这个查询周期可以设置得比较长,视具体要求而定(典型值在几百毫秒到几秒)。对于损坏的从节点,主站会及时向用户报警。

系统由上位计算机节点(包括嵌入式PC机和CAN接口卡)作为系统的主节点,汽车驾驶状态智能测控节点等作为从节点组成。网络拓扑结构为总线型,通信介质为屏蔽双绞线。主节点除了负责与从节点的基本通信外,还负责运行汽车驾驶状态(疲劳驾驶)智能控制程序,动态显示各节点的工作状态和重要的现场参数以及报警信息等,并对各节点的控制参数、运行参数进行整定和修改。系统结构如图3所示。从节点对方向盘、油门、刹车和ECU控制等信息进行采集并传至主节点。对于不同的设备,其总线转换接口原理相同,只是具体的转换模块不同。

油门控制加速度传感器测量节点负责iCAN 总线的物理接口和底层协议的实现。测量节点如图4所示。


1.4 CAN控制器

该测量节点的硬件电路以Philips的单片机LPC2119为核心,由高速CAN收发器TJA1050 和抗干扰电路等组成[3]。LPC2119内带有ARM7内核,具有封装小、功耗低、多个32位定时器、4路10位ADC、2路CAN以及多达9个外部中断等优点,使得节点具有强大的数据处理能力,可运行高级的算法,如快速傅立叶变换等。TJA1050提供了CAN控制器与物理总线之间的接口,以及对的差动发送和接收功能。TJA1050是汽车专用高速CAN收发器,具有优秀的EMC和EMI性能。实践证明,采用LPC2119和TJA1050构造的CAN通信模块,外围扩展能力强、空间小、同时可改善电磁辐射性能和抗电磁干扰性能。该智能节点对加速度传感器信号进行模数转换,并对所获得的数据进行处理;CAN控制器用于同上位机进行数据通信,完成数据的接收与发送工作;各智能测控节点可以对各自的参数进行初始化、自动调整和配置等工作。

1.5 Low-G系列加速度传感器

Freescale双轴加速度传感器MMA6260Q由两部分组成:G-单元和信号调理ASIC电路。G-单元是机械结构,它是用半导体制作技术、由多晶硅半导体材料制成;信号调理ASIC电路由积分、放大、滤波和控制逻辑等组成,完成G-单元测量的信号到电压输出的转换。加速度传感器的输出电压与加速度成正比,为了测量加速度传感器芯片的输出电压,通常使用带有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控制等信息采集和处理。与以往的系统相比,其最大特点是提高了各测量节点的精度和稳定性以及系统数据通信的速度并增强了抗干扰能力。



评论

技术专区

关闭