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