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