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

摘 要:以microchip公司的pic18f45k80芯片为核心,给出了具有低成本。高扩展性的实用型多功能汽车开关电器盒的设计方法。该开关电器盒除了具有对汽车启动过程和行驶状态参数实时监测的功能外,与其他同类产品相比,还更加注重产品的实用性和扩展性,同时具备与汽车其他设备进行通信的特有功能。
0 引 言
随着现代汽车工业技术的不断发展进步,车上安装的电子设备在不断增加,从而使汽车综合控制系统中,有大量控制信号需要进行实时交换。can 总线作为一种可靠的汽车计算机网络总线,已经被广泛地推广到汽车控制系统的各个应用领域。将can 总线技术应用到汽车开关电器盒中,可使得各汽车计算机控制单元能够通过can 总线得到开关电器盒中的工作数据,又能对开关电器盒的各个继电器进行精准的控制,从而达到减少汽车线束、提高通信可靠性、降低系统成本、避免系统功能重复、提高系统工作效率的目的。
1 汽车开关电器盒设计方案
本开关电器盒采用的是基于microchip 公司生产的pic18f45k80 芯片作为主芯片的设计方案。该芯片不仅具有一般单片机所具有的全部功能,还集成有硬件can 协议模块,芯片内部即可完成can 总线通信。采用本方案具有以下几点优势:其一是硬件集成了can 协议模块,无需外接芯片,从而降低了产品制造成本;二是无需编写spi 接口驱动,缩短了开发周期,提高了产品竞争力;三是本系统使用主流pic 芯片,具有强大的可扩展性,程序可移植性高。
pic18f45k80 为主控制芯片,负责系统的综合事务处理。
系统功能主要分为四大部分,分别是模拟信号采样。数字信号采集。控制信号输出和can 模块通信。模拟信号的采集包括电源电压采样。温度传感器和电流传感器采样。数字信号采集各个熔断保险丝的通断。控制信号的输出是对整车电源继电器k1。启动电源继电器k2。启动电机继电器k3 的控制。can模块通信是单片机通过can 接口芯片与车上的其他设备进行通信,也是本系统研究的重点。图1 所示是本系统的整体框图。
2 汽车开关电器盒的硬件设计
2.1 系统主处理器pic18f45k880
pic18f45k80 系列是microchip 的pic18f8680。pic18f4680 和pic18f4580 增强型can 系列产品的低成本扩展产品。该单片机工作电压范围宽,为1。8~5。5 v,且片上内置3。3 v 稳压器, 可作为电源基准电压。工作温度范围大:-40~+125 ℃,适合汽车工作环境。工作速度最高达64 mhz,具有最大64 kb 的片内闪存程序存储器,1 024 字节的数据eeprom,3。6 kb 的通用寄存器(sram)。设有2 个内部振荡器:intrc (31 khz) 和intosc(16 mhz)。带扩展的看门狗定时器(watchdogtimer, wdt),可编程周期为4 ms~131 s。
pic18f45k80 包含一个增强型控制器局域网(enhancedcontroller area network ,ecan) 模块。 ecan 总线模块符合iso 11898-1 规范。具有3 种工作模式:传统模式( 与现有pic18cxx8/fxx8 can 模块完全向下兼容)。增强模式。fifo 模式或可编程发送/ 接收缓冲区。报文比特率最高可达1 mb/s,具有6 个缓冲区可用作接收和发送报文缓冲区,3 个带有优先级的发送报文缓冲区,2 个接收报文缓冲区和1 个接收报文组合缓冲区。
2.2 can 接口电路模块设计与实现
本开关电器盒采用的是恩智浦半导体公司can 总线收发器芯片tja1050 作为can 协议控制器和物理总线之间的接口。
tja1050 可以为总线提供不同的发送性能,为can 控制器提供不同的接收性能。tja1050 完全符合iso11898 标准,传送速度高( 最高可达1m 波特)。具有良好的电磁兼容性和低电磁辐射(eme) 性能,并带有宽输入范围的差动接收器,可抗电磁干扰(emi)。
图2 所示是tja1050 的接口应用电路。电路中的一个120 俚牡缱鑂9,对于匹配总线阻抗起着相当重要的作用,否则,数据通信的抗干扰性和可靠性将大大降低,甚至无法通信。
2.3 信号采集及输出控制电路设计
汽车的各种电气工作状态检测是开关电器盒的重要工作职能之一,主要是由保险丝状态采集电路。电源电压和温度采集电路。启动电动机电流检测电路组成。
汽车保险丝的工作状态检测。为了可靠。准确地检测各保险丝的通断情况,本系统采用了光耦隔离的方式检测保险丝的通断。该电器盒共有充电保险丝。暖风1~2 保险丝。开关电源保险丝。常火电源保险丝。on 档1~10 号保险丝。常火1~8 号保险丝等共24 路保险丝。保险丝检测采用了光耦隔离的检测方式,避免车上其他用电设备对电器盒系统的干扰。
开关电器盒需对电源电压进行实时监测。通过电压监测来实现高压。低压和发电机充电异常等三种异常报警:电压过高报警是当电压超过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 总线的汽车开关电器盒有助于提高汽车产品竞争力,而增加的成本并不会太多,所以是未来汽车开关电器盒的发展方向。

LED照明驱动芯片U6113 照亮新机遇
骨传导耳机漏音是怎么回事?漏音最小的骨传导耳机推荐
可以了解的Linux 文件系统结构
OCL与OTL电路的主要区别是什么
推进5G网络建设,加快6G网络布局
基于CAN总线和PIC单片机的汽车开关电器盒设计
SR SHOW 2017上海国际服务机器人展全新起航,11月上海盛大开幕!
EtherCAT运动控制卡的自定义运动曲线
正运动将携全国产自主可控EtherCAT运动控制产品亮相2023成都工博会
dApps为什么对加密货币产业很重要
焊孔大小的设计标准是怎么样的
限幅放大器的工作原理分析
Pepper机器人商业化道路 与全球顶级企业合作密不可分
mtk系统是什么
金融产业链革命是不是由人工智能带来的
NMOS型和PMOS型的稳压电路讲解
有源晶振的点点滴滴
一款实用的Type-C转RJ45千兆网卡的体验
推荐几款数据可视化工具,让设计变得不再难
沃尔沃SPA2电池设计细节