1.引言
目前防盗器市场的主流产品是电子式防盗器,分为单向防盗器和双向防盗器,这两种防盗器都是车主通过遥控器来控制汽车,双向防盗器可以把车辆的真实状况反馈给车主。
GPS汽车防盗器依托全球定位系统,它将报警信息和报警车辆所在位置无声地传送到报警中心。由于车主不能直接控制车辆,价格和使用费用较高,使其推广应用受到很大限制,目前还没有普遍使用。GSM 汽车双向防盗器是网络式防盗器的后起之秀,它依托全球GSM网络,车主可直接通过手机接受报警和控制车辆,性能价格比较好,它代表着汽车防盗器的发展趋势,自推出以来收到客户的青睐。
本文提出的汽车嵌入式车载防盗系统属于GSM 防盗系统,没有采用昂贵的GPS 模块,CPU 采用了C51单片机,市场价格低廉,经过多年工业应用,稳定可靠,具有很高的性价比。
2.时间触发模式
电子控制系统一般都是实时系统,常需要处理许多并发事件的输入数据。这些事件的到来次序和几率通常都是不可预测的,而且还要求系统必须在事先设定好的时限内作出响应。
对于如何控制系统的复杂行为,普遍采用的是事件触发方案,即系统的所有行为响应外部事件而执行。然而,中断丢失与事件触发系统的开销是人们经常忽略的问题。为了满足安全,低成本及程序尽可能简单等苛刻要求,电子控制系统的开发最终走向事件触发结构。事件触发意味着所有的采样输入,计算输出结果等相关的动作在预定的时间前执行,因而能保证准确的调度时间。
时间触发模式是一种利用MCU 的硬件定时器产生的时标信号对多任务进行调度的嵌入式软件模式,它可以应用于8 位51 系列单片机上。时间触发模式可以将控制精度控制在毫秒级,很适合于实时控制系统。在时间触发嵌入式系统中,设计人员能够通过仔细安排可控的顺序,保证一次只处理一个事件。除了能够提高可靠性之外,时间触发模式中对于存储器及CPU 资源的占用很少,即使在小型嵌入式系统中采用这种系统结构,也能从中获益。
时间触发合作式调度器通常通过一个定时器硬件定时器来实现,多有的任务都是时间触发的,这也意味着出了定时器中断以外,没有其他形式的中断。硬件定时器将被设置为产生一个周期中断信号,这个周期中断信号频率可以到1KMz。
时间触发合作调度器的主要功能就是唤醒预先确定好时间执行的任务。在工作期间,调度器检查静态的任务链表,根据任务的周期判断是否有任务需要执行。如果有则立即执行任务;任务执行完后继续检查任务链表,重复上一个过程。完成链表检查后,CPU 可以进入休眠状态,等待下一个时钟节拍的到来。其任务调度机制如图1 所示。由于合作式调度器能保证在同一时刻,系统中只有一个任务被触发,而且在任何时刻系统中都可以保证有任务在执行。这样,系统的使用效率得到了提高。
合作式调度器可靠且可预测的主要原因式在任何时刻只有一个任务是活动的,这个任务运行直到完成,然后把CPU 的控制权交给调度器。如果采用抢占式调度,有多个活动任务执行“上下文切换”和“关键段保护”等将增加系统的开销。许多研究表明,相对于抢占式调度器,合作式调度器具有很多优点。
3.系统概述
3.1 系统功能分析和状态转移图
经过需求分析,我们定义了系统应该实现的功能如下:
1)系统将监视汽车发动机的状态;
2)系统可以接受手机用户的设置,并设置手机号码;
3)如果系统报警开启,汽车启动时,将通过无线模块给指定的手机用户报警;
4)系统接受手机用户的控制短信,对汽车进行断油,断电处理;
5)系统接受手机用户的查询短信,可以报告汽车的位置,在市区可以精确到无线小区;
6)系统将采取确定的措施以确保系统的稳定性。
以上的各项目标功能同时也是衡量系统设计的指标。在以后面的设计中,我们将利用有限状态机等工具将各项功能进行进一步细化,直到完成系统的软硬件设计。
基于对系统工作流程的分析,进一步我们可以设计出系统的状态转移图(图2),从上面我们可以清晰的看到系统的工作流程。
3.2 系统模块构成
嵌入式系统设计中常用模块化设计方法,以降低开发难度,减少各个部分之间的耦合度,增强系统的稳定性。如图所示,整个系统主要由CPU,传感器,RS232 接口以及GSM 模块构成。其中CPU 是系统的核心控制部分,负责接受各模块信号,进行处理,并控制其它模块;传感器探测汽车被启动;GPRS 模块用来收发短信,向车主手机通过RS232 接口与CPU进行通信;电子开关电路用于控制汽车电路系统,能够达到对汽车断油,断电的目的。
3.3 系统硬件部分
1)采用了Atmel 公司生产的AT89S52 单片机作为处理核心,该处理器有32 个I/O 口,3 个Timer,最多支持8 个中断。因为 256B 的片上RAM 资源不够,所以系统使用了扩展的64KRAM,此外AT89S52 的8K 片上flash 对于该系统来说已经足够。该处理器可以支持不同的功耗模式,适用于对于成本和功耗敏感的场合。
CPU 外接型号为AT24C01 的 EEPROM 作为数据存储器,用来存放车主电话号码等信息。AT24C 系列串行E2PROM 具有I2C 总线接口功能,功耗小,宽电源电压(根据不同型号2.5V~6.0V),工作电流约为3mA,静态电流随电源电压不同为30μA~110μA。系统中使用了P2 口模拟I2C 总线与E2PROM 连接,这样的方式相比硬件实现I2C 协议可以简化电路,降低成本。
AT89S52 芯片中提供了内置看门狗,在一定的时间周期内,我们必须对看门狗的寄存器进行设置,如果没能及时设置,看门狗将使系统复位。
2)每台终端在使用前需要进行初始化设置。该设置是通过串口来完成的,通过复用与GPS 连接的串口来实现终端设备的初始化。需要定义好其通信协议和需要配置的具体内容。
3)该终端安装在汽车比较隐蔽的地方,采用汽车电源供电的方式。该终端的主要功能是负责 GPS 信号的接收处理、告警数据的上报、中心控制命令的接收、处理及命令的执行等工作。
4)GPRS 模块采用法国 WAVECOM 公司Q2406B ,上传速率可达 2618 kbit s/s ,下载速率可达5316 kbit s/s。GPS 模块有以下两种选择:
a)直接选择串口连接方式的 GPRS MODEM。
b)选择内置的GPRS 模块外加天线的设计方法。
采用第一种方法可以降低开发和维护的难度,而且安装方便,但是成本比较高。第二种方法需要在硬件上设计相关的电路,开发难度较大,不过可以降低成本。
5)车轮速度传感器也叫轮速传感器或转速传感器,它可以测出车轮与驱动轴共同旋转的齿圈数,然后产生与车轮转速成正比的交流信号。车轮速度传感器信号通过ADC 电路转换为数字信号传送给CPU 进行判读。
3.4 任务的设计
通过对图2以及系统功能的分析我们将系统软件划分为多个任务,任务的名称,任务周期以及执行时间等信息如表1所列。
在表列出的各项任务中,Task1 每1ms 对buffer 进行查询,如果有需要收发的信息,马上通过串口收发。串口收到的string 流存放到缓冲区中,交给Task2 进行处理。Task2 周期为1s,负责PUD 短信的编解码,对命令的识别和控制信号的发送,它是系统中最耗费资源的任务。Task3 每隔10s 执行一次,它对车速传感器采集的信号进行判别,如果需要告警,则将消息发送给Task2 进行处理。Task4 每48ms 检测一次消息,完成对汽车控制信号的发送。Task5 在小于16383 个CPU 机器周期内(这里以12ms 为周期),对看门狗进行置位,保证系统的正常运行。
根据合作式调度器的原理与各任务的周期,设置定时器每1 ms 产生一个周期中断信号。因为有多个任务的执行时间超过1 ms ,Task1 无法按规定的频率执行。因此采用直接将Task1 包含进定时器中断服务子程序的方法,从而使所有任务的周期及执行时间均能满足系统任务可调度的要求。
在工程中采用事件触发模式很大程度上会增加系统的复杂性,导致庞大的代码结构。这样的代码长度及复杂性不适合普通开发人员构建,而商业实时操作系统往往价格昂贵,并且需要很大的操作系统开销。采用基于时间触发模式开发系统可以满足实时、简单、可预测性等工程要求。在应用实例中也可以看到,对于任务周期与执行时间相差悬殊的任务,为满足可调度性的要求,将需频繁执行的短任务加入定时器中断服务子程序的方法延长了中断处理的时间,同时削弱了系统实时响应能力及可预测能力。此外,也可以通过将执行时间长的任务分解成几个执行时间短的任务来满足任务可调度性。相对于事件触发模式,时间触发模式对工程技术人员的要求更高。
4.结语
通过软硬件的设计,汽车防盗系统实现了对汽车的实时监控和报警,并能实现硬件硬件防盗功能。汽车电子中嵌入式系统得到了大量运用,如何整合汽车的原有资源,设计出强大而且实用的应用,将是未来汽车嵌入式开发的目标。