应用笔记 1790

GPS车辆跟踪器


摘要 : 本文介绍了一种基于1-Wire®技术的、简便的跟踪汽车位置、验证汽车驾驶员是否经过授权的方法。这种方法可用于汽车防盗、自动建立行车日志和货运、公交车队管理等。本文给出了一个研发范例,它采用了Garmin GPS 35 GPS接收机、Siemens TC35 GSM模块、DS1990A iButton®、Parallax BASIC Stamp® (BS2P)微控制器和源程序代码。

本文发表在EPD杂志2002年第11期。

本文介绍了一种简便的跟踪汽车位置、验证汽车驾驶员是否经过授权的方法。这种方法可用于汽车防盗、自动建立行车日志和货运、公交车队管理等。

车辆的经度、纬度信息通过标准移动电话文本信息传输,从而得到车辆位置的精确信息。

为该方案提供的代码可以从以下网站下载:

组成部分

该方案由下列各部分组成:
  1. GPS接收器(Garmin GPS 35),它提供车辆的位置信息

  2. GSM模块(Siemens TC35),用于将SMS (文本信息)发送到预先设定的移动电话

  3. iButton (DS1990A),用来验证驾驶人员是否被授权使用车辆

  4. Parallax公司的BASIC Stamp (BS2P)控制模块,连接一个BASIC Stamp开发板(www.parallaxinc.com)。

  5. 软件:

    • EPD-V2-01-3E.BPS:BASIC Stamp主程序
    • 1WIRE-ID.BSP:读取DS1990A iButton序列号子程序

原理框图

图1. 原理框图
图1. 原理框图

GPS接收器提供的信息以'NMEA'格式输出(NMEA是美国国家航海电子协会缩写),纬度和经度信息从'$GPRMC'文句中提取出来,(按格式:"北纬ABC","西经DEF"输出)。

GSM模块将SMS信息(文本信息)发送到预置的移动电话上。

而DS1990A iButton (即所谓的"序列号iButton")用于身份验证或"钥匙"。它包含一个全球唯一的6字节长的身份识别号码和2字节长的CRC校验码。序列号为“只读”类型,一个系统可以配备2枚iButton钥匙,其中一枚作为备用或提供给第二位授权司机。当然,也可以方便地配备更多的钥匙。

工作原理

系统启动过程中,BASIC Stamp不断扫描,检测:
  • iButton是否插入输入端?
  • 汽车点火器是否工作?
要想汽车正常工作,该车被授权的iButton必须插入读写口,然后,汽车将在设定的25秒内启动。

如果出现下列情形,则被认为出现非法入侵:
  • 已检测到汽车点火器开始工作,而合法的iButton并未在要求的25秒内启动汽车。
  • 如果汽车启动后25秒内没有iButton连接到系统,同样被认为非法入侵。
一旦确定发生了非法入侵,BASIC Stamp就开始查询来自GPS接收机的信息。等待'$GPRMC'信息出现在GPS接收机的串行输出端口。
  • BS2P把SMS信息,包括从GPS接收到的'GPRMC'文本中提取的信息发送到预先设定的移动电话。
  • 每隔2分钟上述过程重复一次,以便让车主时刻知道车辆位置。

系统集成

该设计的核心是BASIC Stamp,它把GPS接收机、GSM调制解调器、iButton及汽车点火器检测有机的连接在一起,构成一个完整的系统。

点火线用于检测汽车是否被发动,当然,也可使用其他指示器(比如:超声波传感器或其他防入侵检测器等。)
  • GPS接收器输出连接到BASIC Stamp的P0。
  • GSM接收模块的输入连接到BASIC Stamp的'Sout'或引脚1。
  • BASIC Stamp的P1引脚连接到点火器,输入高电平表明点火器在工作,反之亦然。
  • P15用于与iButton接口。
需要提醒的是,BASIC Stamp系列产品中BS2P支持iButton的1-Wire总线接口协议,而早期产品不支持。

登录移动电话号码

可按如下方法编程,输入移动电话号码:

======================================================
DEBUG "+44********** " ' Enter the destination mobile phone number here
======================================================

输入号码必须按下列格式:

+ 国家代码(上例中的44代表英国代码) + 个人移动电话号码。

该号码将是系统发送管理信息的目的号码,包括车辆的位置信息。

登录iButton序列号

输入将要使用的iButton序列号,如果只有一个iButton在该系统使用,则需要将该号码重复写入为备用iButton预留的存储器中。

iButton代码的写入如下列程序所示。本例中,举例用的iButton代码已被输入系统。实际写入代码时,请用具体iButton的代码代替范例程序中'$'符号后面的数字,序列号以16进制表达。

一个单独的子程序可用于显示指定iButton的序列号,该串行号码被登录到最终程序代码,再下载到BASIC Stamp处理器中。

'登录第一个iButton序列号:'

IF romData(0) <> $03 THEN CheckSecond 'First Byte
IF romData(1) <> $F0 THEN CheckSecond
IF romData(2) <> $BC THEN CheckSecond
IF romData(3) <> $08 THEN CheckSecond
IF romData(4) <> $10 THEN CheckSecond
IF romData(5) <> $00 THEN CheckSecond
IF romData(6) <> $00 THEN CheckSecond
IF romData(7) <> $30 THEN CheckSecond 'Eighth Byte

GOTO ButtonOK

CheckSecond:

'登录第二个或其余的iButton序列号:'

IF romData(0) <> $01 THEN BadButton 'First Byte
IF romData(1) <> $68 THEN BadButton
IF romData(2) <> $21 THEN BadButton
IF romData(3) <> $24 THEN BadButton
IF romData(4) <> $08 THEN BadButton
IF romData(5) <> $00 THEN BadButton
IF romData(6) <> $00 THEN BadButton
IF romData(7) <> $31 THEN BadButton 'Eighth Byte

完成上述修改后即可跟踪汽车。

本方案的代码可以从以下链接下载:

下一步
EE-Mail 订阅EE-Mail,接收关于您感兴趣的新文档的自动通知。
© , Maxim Integrated Products, Inc.
The content on this webpage is protected by copyright laws of the United States and of foreign countries. For requests to copy this content, contact us.
APP 1790:
应用笔记 1790,AN1790, AN 1790, APP1790, Appnote1790, Appnote 1790