微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于CAN总线和PIC单片机的汽车开关电器盒设计

基于CAN总线和PIC单片机的汽车开关电器盒设计

时间:05-14 来源:互联网 点击:

通过电压监测来实现高压。低压和发电机充电异常等三种异常报警:电压过高报警是当电压超过32 V 时,通过CAN 总线向仪表发出系统电压过高报警;低电压报警则是在车辆未启动时,当系统电压低于设定值23。5 V 时,要发出低电压报警,同时超过4 min切断电源总开关;发电机充电异常报警是指车辆启动后,如充电正常,则当前电源电压应大于26 V,如充电异常( 电源电压超过32 V 或低于26 V),则通过CAN 总线向仪表发出报警。

  由于电压报警仅需检测3 个电压值,为降低系统成本,本设计采用电阻分压的方式来进行检测。

  本开关电器盒需检测电器盒内的温度,并通过CAN 总线将温度数据发给仪表。系统采用的是3899 200K 的NTC( 负温度系数热敏电阻) 来检测温度,通过与一标准电阻分压后采样AD 值,最后根据阻值- 温度表格查得实际测量温度值。

  另外就是启动电动机电流检测。汽车启动系统将蓄电池电能转化为机械能,由启动机带动发动机旋转并启动发动机。汽车在启动时,启动电动机的工作电流非常大,一般可达300~600 A。为防止启动电机的过电流对汽车电瓶及其他电路造成损坏,对启动电动机加入了电流检测电路。系统中选用了BYD BLY2-IOV2M电流传感器,在开关电器盒中采用金属铜片穿过电流传感器腔体。该传感器采用霍尔效应的测量原理,完全隔离式的测量方法,具有低功耗。宽测量范围等特点。

  3 汽车开关电器盒的软件设计与实现

  本开关盒电器软件主要由两大部分组成,包括用户功能定义设计和CAN 驱动程序设计,其程序整体架构图如图3 所示。

  图3 中的用户功能定义程序主要包括过压监测。欠压监测。保险丝断路监测。过流监测。蓄电池充电监测。模块自检等。

  SAE_J1939 协议驱动程序主要作用是对CAN 模块中的接收缓存的CAN 报文加以解析以及对发送缓存中的CAN 报文加以翻译。

  

  SAE_J1939 协议的数据结构与CAN 报文结构有很大不同之处。它将CAN 报文的11 位标准帧以及29 位扩展 帧重新定义,对每一位都赋予特殊意义,其结构定义如下:

  

  其中,PDUFormat 为PDU 格式,PDUSpecific 为特定域,SourceAddress 为设备地址,DataLength 为数据长度,Priority 为优先级, 而Data[J1939_DATA_LENGTH] 则为SAE_J1939 协议的数据域。

  根据SAE_J1939 协议在整个系统所处的位置和作用,本设计给出如图4 所示的基于SAE_J1939 协议对接收和发送报文的翻译和解析流程图。

  

  在CAN 模块工作之前,必须先对其进行必要的初始化。

  CAN 驱动程序在入口处设计为进入CAN 模块的配置模式,以便在CAN 模块工作前对波特率。屏蔽器。过滤器等进行配置。

  4 结 语

  基于CAN 总线的汽车开关电器盒是一种网络化的汽车电器控制系统,对汽车电器设备网络化发展有着重要的意义。它能最大限度地减少汽车线束,将开关电器盒的工作数据实时传送给各个仪表,具有较高的数据传输可靠性和安装便捷性,扩展了汽车功能。目前,随着CAN 总线技术的快速普及,支持CAN 总线标准的汽车厂家越来越多,汽车电子产品的网络化发展趋势是必然的。车辆装配基于CAN 总线的汽车开关电器盒有助于提高汽车产品竞争力,而增加的成本并不会太多,所以是未来汽车开关电器盒的发展方向。

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

网站地图

Top