本文介紹了一種基于1-Wire?技術的、簡便的跟蹤汽車位置、驗證汽車駕駛員是否經過授權的方法。這種方法可用于汽車防盜、自動建立行車日志和貨運、公交車隊管理等。本文給出了一個研發(fā)范例,它采用了Garmin GPS 35 GPS接收機、Siemens TC35 GSM模塊、DS1990A iButton?、Parallax BASIC Stamp? (BS2P)微控制器和源程序代碼。
本文介紹了一種簡便的跟蹤汽車位置、驗證汽車駕駛員是否經過授權的方法。這種方法可用于汽車防盜、自動建立行車日志和貨運、公交車隊管理等。
車輛的經度、緯度信息通過標準移動電話文本信息傳輸,從而得到車輛位置的精確信息。
組成部分
該方案由下列各部分組成:
GPS接收器(Garmin GPS 35),它提供車輛的位置信息
GSM模塊(Siemens TC35),用于將SMS (文本信息)發(fā)送到預先設定的移動電話
iButton (DS1990A),用來驗證駕駛人員是否被授權使用車輛
Parallax公司的BASIC Stamp (BS2P)控制模塊,連接一個BASIC Stamp開發(fā)板
軟件:
EPD-V2-01-3E.BPS:BASIC Stamp主程序
1WIRE-ID.BSP:讀取DS1990A iButton序列號子程序
原理框圖
圖1. 原理框圖
GPS接收器提供的信息以'NMEA'格式輸出(NMEA是美國國家航海電子協(xié)會縮寫),緯度和經度信息從'$GPRMC'文句中提取出來,(按格式:"北緯ABC","西經DEF"輸出)。
GSM模塊將SMS信息(文本信息)發(fā)送到預置的移動電話上。
而DS1990A iButton (即所謂的"序列號iButton")用于身份驗證或"鑰匙"。它包含一個全球唯一的6字節(jié)長的身份識別號碼和2字節(jié)長的CRC校驗碼。序列號為“只讀”類型,一個系統(tǒng)可以配備2枚iButton鑰匙,其中一枚作為備用或提供給第二位授權司機。當然,也可以方便地配備更多的鑰匙。
系統(tǒng)啟動過程中,BASIC Stamp不斷掃描,檢測:
iButton是否插入輸入端?
汽車點火器是否工作?
要想汽車正常工作,該車被授權的
i
Button必須插入讀寫口,然后,汽車將在設定的25秒內啟動。
如果出現(xiàn)下列情形,則被認為出現(xiàn)非法入侵:
已檢測到汽車點火器開始工作,而合法的iButton并未在要求的25秒內啟動汽車。
如果汽車啟動后25秒內沒有iButton連接到系統(tǒng),同樣被認為非法入侵。
一旦確定發(fā)生了非法入侵,BASIC Stamp就開始查詢來自GPS接收機的信息。等待'$GPRMC'信息出現(xiàn)在GPS接收機的串行輸出端口。
BS2P把SMS信息,包括從GPS接收到的'GPRMC'文本中提取的信息發(fā)送到預先設定的移動電話。
每隔2分鐘上述過程重復一次,以便讓車主時刻知道車輛位置。
系統(tǒng)集成
該設計的核心是BASIC Stamp,它把GPS接收機、GSM調制解調器、iButton及汽車點火器檢測有機的連接在一起,構成一個完整的系統(tǒng)。
點火線用于檢測汽車是否被發(fā)動,當然,也可使用其他指示器(比如:超聲波傳感器或其他防入侵檢測器等。)
GPS接收器輸出連接到BASIC Stamp的P0。
GSM接收模塊的輸入連接到BASIC Stamp的'Sout'或引腳1。
BASIC Stamp的P1引腳連接到點火器,輸入高電平表明點火器在工作,反之亦然。
P15用于與iButton接口。
需要提醒的是,BASIC Stamp系列產品中BS2P支持
i
Button的1-Wire總線接口協(xié)議,而早期產品不支持。
登錄移動電話號碼
可按如下方法編程,輸入移動電話號碼:
====================================================== DEBUG "+44********** " ' Enter the destination mobile phone number here ====================================================== |
輸入號碼必須按下列格式:
+ 國家代碼(上例中的44代表英國代碼) + 個人移動電話號碼。
該號碼將是系統(tǒng)發(fā)送管理信息的目的號碼,包括車輛的位置信息。
登錄iButton序列號
輸入將要使用的iButton序列號,如果只有一個iButton在該系統(tǒng)使用,則需要將該號碼重復寫入為備用iButton預留的存儲器中。
iButton代碼的寫入如下列程序所示。本例中,舉例用的iButton代碼已被輸入系統(tǒng)。實際寫入代碼時,請用具體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
完成上述修改后即可跟蹤汽車。
審核編輯:郭婷
-
微控制器
+關注
關注
48文章
7542瀏覽量
151311 -
接收機
+關注
關注
8文章
1180瀏覽量
53453 -
1-Wire
+關注
關注
0文章
49瀏覽量
21306
發(fā)布評論請先 登錄
相關推薦
評論