×
汽车电子 > 汽车系统 > 详情

GPS车辆跟踪器

发布时间:2021-08-19 发布时间:
|

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

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

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


EPD-v2-01-3E.BSP:BASIC Stamp 主程序


1WIRE-ID.BSP:读取 DS1990A iButton 序列号的子程序


组成部分

该方案由下列各部分组成:


GPS接收器(GarminGPS35),它提供车辆的位置信息

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

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

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

软件:

EPD-V2-01-3E.BPS:BASIC Stamp 主程序


1WIRE-ID.BSP:读取 DS1990A iButton 序列号子程序


原理框图

图 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

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



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Ouster合作CronAI加速创建3D感知系统