打印
[汽车MCU – KEA]

基于LIN节点的车载防盗报警设计与实现

[复制链接]
2781|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ar_m_cu|  楼主 | 2014-6-25 14:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ar_m_cu 于 2014-6-25 14:24 编辑

    随着汽车工业的迅猛发展,车身上的电子控制单元也越来越多。传统的车身线束不仅会增加制造成本,而且会降低系统的可靠性和可维护性。于是,汽车车身总线应运而生。采用车身总线设计不仅可以简化线路、节约制造成本、提高可靠性,同时也节省了系统的维护成本。车载防盗报警模块是车身控制单元(BCM)的一部分,由于其本身对总线通信的实时性和速率要求不高,所以将其接入低速总线LIN上。

  LIN总线

  LIN总线主要用于不需要CAN性能、速率和复杂性的低速系统,是一种低成本的串行通信网络,采用一个主节点及若干从节点的结构,基于通用的UART/SCI的硬件接口,最高速率可以达到20kb/s。

  LIN总线通过报文帧进行数据传输,一个完整的报文帧包括帧头和信息响应。报文头包括间隔场、同步场和标志符场。间隔场由至少13个位时的持续 显性电平(0)组成,标志着一次数据通信过程中报文帧的开始。同步场包含时钟同步信息,其格式是0x55,所有从机节点在正确接收同步字节场后,准确计算 出主机节点将要发送数据的波特率,并以此波特率作为下一步要发送或接收数据的波特率设定值,从而实现从机节点与主机节点时钟的同步。标志符场定义了信息的 内容和长度。报文响应由主机节点或从机节点根据标志符场的信息发出,由2、4或8字节长度的数据和1字节的校验和构成。校验通过计算数据的全部字节而得 到,用于接收方验证数据的正确性。


  图 1完整的LIN信息帧

  功能描述

  车载防盗报警模块是车身控制模块的一个从节点,主要功能有以下3点:一是与BCM之间保持通信联系并上报防盗报警模块的状态信息;二是接收车身 控制模块的命令并驱动喇叭发出报警声;三是监测连接防盗报警模块与BCM之间的电源线、地线和LIN线是否被割断并发出报警声。

  实现方案

  1 器件选择

  本系统的两个主要器件为LIN收发器和微处理器。由于防 盗报警模块是电池供电的LIN节点,所以在器件选取时需要尽量考虑低功耗的器件。LIN收发器选取TJA1020,它是连接车身控制器与防盗报警模块之间 的物理媒体连接,也是LIN主/从机协议控制器和LIN传输媒体之间的接口。协议控制器输入引脚TXD的发送数据流被LIN收发器转换为总线信号,而且电 平翻转速率和波形都受到限制,以减少电磁辐射。TJA1020的接收器检测到LIN总线上的数据流并通过RXD引脚将它传送到协议控制器。TJA1020 具备低功耗管理模式,它在睡眠模式中几乎不消耗电流并在错误模式中减小功率消耗。所以,TJA1020非常适用于防盗报警模块这种以电池供电的LIN节点。系统采用意法半导体的8位微处理器STM8S105K4作为主控单片机,靠内部128kHz时钟驱动运行时,静态功耗可以低至0.6mA。满足系统对低功耗要求的同时具备LIN控制器与电池电量检测10位ADC功能。

  2 信息帧分类与系统状态定义

  对车身控制系统与防盗报警模块之间的通信信息帧做了如下的定义:

 

  唤醒命令用于将系统从睡眠状态唤醒到未设防状态,睡眠命令用于指令系统进入睡眠状态。命令信息帧的内容包含设防、解防、报警命令,以及对报警状态如报警周期、次数等属性的定义。系统的状态转换如图2所示。


     图2 状态转换图


3 基本框图

  系统基本框图如图3所示,系统与外部的接口有3个,LIN线、电源线和地线。车载蓄电池分别向可充电电池、TJA1020和MCU进行供电,其中可充电电池的作用是在汽车蓄电池电源被剪断时向系统提供报警所需的电源。

  
          图3 系统基本框图

  初始情况,TJA1020处于休眠状态并通过INH引脚切断对MCU的供电,此时系统的状态定义为睡眠状态。连接汽车蓄电池相当于 TJA1020的NWAKE管脚产生电平变化,从而触发TJA1020的外部中断唤醒,同时TJA1020的Tx管脚会产生强下拉。当有远程LIN信息帧 唤醒TJA1020时,Tx管脚会产生弱下拉。TJA1020被唤醒后,会通过INH管脚打开对MCU的供电使MCU开始工作,系统进入未设防状态。

  在未设防状态下,MCU通过GPA端口检测是否存在汽车蓄电池供电信号,如果不存在供电信号,系统在一定时间后通过连接NSLP的GPB管脚令 TJA1020进入休眠状态,TJA1020则会通过INH管脚关闭MCU的电源供给,系统返回睡眠状态。汽车蓄电池供电存在时,若收到LIN睡眠信息 帧,系统也进入睡眠状态。

  系统在非睡眠状态时可以通过接收BCM的LIN命令信息帧在未设防状态、设防状态和报警状态之间进行转换。系统处于设防状态和报警状态时,不会进入睡眠状态。

  4 软件流程

  系统的软件主要包括实现单片机与LIN总线通信的程序以及单片机对防盗报警喇叭控制的主程序。为确保通信的实时性,系统采用了高优先级中断来接收LIN总线上的信号。为了保证系统的实时性,在中断处理时除了进行一些简单的判断和数据接收外,其他部分都在主程序中处理。

    
  图 4主程序流程图

  一旦总线上出现有效的显性电平,控制器立即转入高优先级中断处理函数,首先判断是否为主机节点发送的间隔场,如果是间隔场则接收同步场和标志符 场,若不是同步场则退出等待下一次中断。在接收到正确的标志符后,若标志符要求系统发送信息,系统则发送数据场及校验和场,发送完成后又开始等待接收下一 帧数据。若标志符不是要求本机进行数据发送,则接收随后的数据场及校验和场,在主程序中再根据标志符判断所接收的数据是否对本机有效,有效的就进行相应的 处理,无效就丢弃,处理完成后又开始等待接收下一帧数据。

相关帖子

沙发
ar_m_cu|  楼主 | 2014-6-25 14:27 | 只看该作者
这么好的活动竟然没人参加,实在可惜了。从飞思卡尔社区扒了这篇**出来凑凑数。原文链接:http://www.freescaleic.org/artic ... ?sort=1132_1524_0_0
PS:一切为了板子;P;P:lol

使用特权

评论回复
板凳
gxliu08| | 2014-6-25 19:17 | 只看该作者
也想要块板子,做车内监控,无需连入车载总线。

使用特权

评论回复
地板
ar_m_cu|  楼主 | 2014-6-25 19:20 | 只看该作者
gxliu08 发表于 2014-6-25 19:17
也想要块板子,做车内监控,无需连入车载总线。

确实,车内监控条件比较宽,车载总线神马的可以忽视了

使用特权

评论回复
5
gxliu08| | 2014-6-25 19:54 | 只看该作者
可以通过串口接2G/3G模块,直接给车主报警,也可以做通讯协议,支持车主短信查询,控制。

使用特权

评论回复
6
ar_m_cu|  楼主 | 2014-6-25 20:13 | 只看该作者
gxliu08 发表于 2014-6-25 19:54
可以通过串口接2G/3G模块,直接给车主报警,也可以做通讯协议,支持车主短信查询,控制。 ...

这些都不是难点,难点是监控,怎么判断,好一点还需要用模糊识别吧

使用特权

评论回复
7
604603487| | 2014-6-28 12:37 | 只看该作者
光有LIN总线,防盗器很难做的 ,我做过防盗报警器,CAN和LIN结合才是王道,有好几款车的天窗数据我都没从CAN上找到,嘿嘿,其实我也想要飞思卡尔的板子,不过这个不符合我现在的项目,有高端的没,现在做安卓系统的车机,用的4412,这个不是工业级的,但是好上手所以公司打算第一款产品用4412,以后就用飞思卡尔的了。

使用特权

评论回复
8
ar_m_cu|  楼主 | 2014-6-28 14:32 | 只看该作者
604603487 发表于 2014-6-28 12:37
光有LIN总线,防盗器很难做的 ,我做过防盗报警器,CAN和LIN结合才是王道,有好几款车的天窗数据我都没从CA ...

安卓系统的车机,应该是辅助系统吧

使用特权

评论回复
9
604603487| | 2014-6-28 18:00 | 只看该作者
ar_m_cu 发表于 2014-6-28 14:32
安卓系统的车机,应该是辅助系统吧

是辅助系统,我感觉就是一个高端的车机

使用特权

评论回复
10
ar_m_cu|  楼主 | 2014-6-28 19:56 | 只看该作者
604603487 发表于 2014-6-28 18:00
是辅助系统,我感觉就是一个高端的车机

恩,安卓系统不是实时系统,不适合做控制用,做汽车智能做辅助。不过做辅助可选型的芯片就很广了,应该不难找才对。

使用特权

评论回复
11
604603487| | 2014-6-30 09:04 | 只看该作者
ar_m_cu 发表于 2014-6-28 19:56
恩,安卓系统不是实时系统,不适合做控制用,做汽车智能做辅助。不过做辅助可选型的芯片就很广了,应该不 ...

是呀,但是4412温度范围不行

使用特权

评论回复
12
604603487| | 2014-6-30 09:11 | 只看该作者
ar_m_cu 发表于 2014-6-28 19:56
恩,安卓系统不是实时系统,不适合做控制用,做汽车智能做辅助。不过做辅助可选型的芯片就很广了,应该不 ...

其实上4412是因为我们项目经理认为他上手简单些。。。。但是对我来说都是新东西,嘿嘿

使用特权

评论回复
13
ar_m_cu|  楼主 | 2014-6-30 09:26 | 只看该作者
604603487 发表于 2014-6-30 09:04
是呀,但是4412温度范围不行

4412能达到105度吗?如果可以,应该就没问题

使用特权

评论回复
14
ar_m_cu|  楼主 | 2014-6-30 09:28 | 只看该作者
604603487 发表于 2014-6-30 09:11
其实上4412是因为我们项目经理认为他上手简单些。。。。但是对我来说都是新东西,嘿嘿 ...

可能你们经理使用过类似的MCU吧。我还只停留在CM系列上,4412对我来说好难。。。

使用特权

评论回复
15
604603487| | 2014-6-30 11:58 | 只看该作者
ar_m_cu 发表于 2014-6-30 09:28
可能你们经理使用过类似的MCU吧。我还只停留在CM系列上,4412对我来说好难。。。 ...

对我来说也一样。。。。:'(

使用特权

评论回复
16
604603487| | 2014-6-30 11:58 | 只看该作者
ar_m_cu 发表于 2014-6-30 09:26
4412能达到105度吗?如果可以,应该就没问题

应该是达不到的

使用特权

评论回复
17
604603487| | 2014-6-30 11:59 | 只看该作者
604603487 发表于 2014-6-30 11:58
应该是达不到的

低温高温都差劲

使用特权

评论回复
18
ar_m_cu|  楼主 | 2014-6-30 14:27 | 只看该作者
604603487 发表于 2014-6-30 11:58
对我来说也一样。。。。

我一直都想学点其他的MCU类,ARM11、DSP、FPGA开发板都放在手上好久了,就是提不起来精神啊。一直到现在都在CM系列混。

使用特权

评论回复
19
ar_m_cu|  楼主 | 2014-6-30 14:30 | 只看该作者
604603487 发表于 2014-6-30 11:59
低温高温都差劲

这个是民用级的,温度范围这么差劲

使用特权

评论回复
20
604603487| | 2014-6-30 18:11 | 只看该作者
ar_m_cu 发表于 2014-6-30 14:30
这个是民用级的,温度范围这么差劲

-20 到70的是不行是吧?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:初出茅庐,天下无敌,再学三年,寸步难行

61

主题

1200

帖子

7

粉丝