強大的防盜定位追蹤系統方案,硬件原理、結構框圖、軟件流程、源碼打包奉送
摘要
系統由防盜目標終端和尋找指引終端兩部分組成,防盜目標終端通過GPS信號接收器接收衛星信號,FPGA通過DTE接口接受該位置信息并在gps模塊中提取出經緯度信息,該信息在加密模塊中進行加密然后又通過開發板上的DCE接口傳送給GSM模塊,GSM模塊將該息發送給尋找指引終端,尋找指引終端通過GSM模塊接收該信息,并對信息進行解密,同時用與防盜目標終端相同方式確定自身位置,并通過兩者各自的絕對位置計算出防盜目標終端相對于尋找指引終端位置。當裝有防盜目標終端的物品丟失時,可通過尋找指引終端計算出的防盜目標終端的相對位置并通過FPGA開發板上的LCD顯示給用戶,可以最大限度的幫助人們找回丟失的物品。
關鍵字
1.項目背景
1.1技術背景分析
GPS( global Positioning System)即全球衛星定位系統是一個衛星導航系統,由美國國防部(DOD)投資建設,并免費向全世界民間用戶開放。它是真正實現了全球、全天候、連續、實時、以空中衛星為基礎的高精度無線電導航系統。GPS由地面控制站、空間設備(SV)、GPS用戶接收機和地面通信網部分組成。要建立大型GPS綜合服務系統必須首先在較大范圍內建立一個通信網絡,通信網的好壞是這個系統成敗的關鍵。為這樣一個系統專門建立通信網在經濟上有點得不償失。因此近幾年發展起來的價格合理、性能可靠的公用網(如GSM系統的短消息服務)成為最佳的選擇。隨著GPS技術的發展和電子、通信、計算機、網絡等高新技術的廣泛應用,一些先進國家的GPS應用已經相當普及,建立我國自己的GPS產業和GPS綜合服務系統已經成為電信、郵政、公安、銀行、交通等政府職能部門和企事業單位領導和有關專家的共識。
1.2 社會需求背景分析
近年來,隨著市場經濟的日益活躍,人們物質生活水平不斷提高,流動人口越來越多,盜搶犯罪率成升高趨勢,給人們的的財產造成了重大損失與威脅。各地的治安任務也越來越重,為了保障人們財物的安全,并配合公安部門的接處警,GPS衛星定位系統因為可以高精度地有效完成對目標的實時監控與調度,所以廣泛應用于地面移動目標防盜搶。對于GPS,市場有著強烈的需求;對于GPS,市場孕育著巨大的商機。投資GPS項目功在社會,利在企業,該項目系統運作和市場經濟相吻合,取之于社會,服務于社會,市場廣闊,生命力強,經濟效益顯著,投資實施二項目具有深遠的社會意義和經濟意義。
1.3市場行業分析
GPS技術已經廣泛的應用到軍事定位,大型物品(如車輛)防盜等領域,這些高端GPS定位追蹤系統大都在7000以上價格昂貴。而且此類防盜系統應用范圍狹窄,不便攜帶。因此,操作簡單,攜帶方便,價格低廉的個人GPS防盜定位系統具有廣闊的應用前景和市場生命力。
2系統方案
2.1 系統設計原則
系統實施原則,是建立在對系統需達到的近遠期目標、系統的功能要求、團隊人員的接受能力、計算機技術發展的趨勢和潮流等因素基礎上的。系統實施原則的確立將對系統的軟件、硬件和無線通信作方法起到指導作用??紤]到以上眾多因素,本方案設計原則可扼要概括為:完備性、普適性、開放性、容錯性、可靠性、安全性、經濟性七大原則。具體闡述如下:
2.1.1 普適性
本系統設計的普適性原則是指設計應滿不同種類用戶,不同場合全方位的需要,覆蓋各種防盜定位需求,既適合汽車這類大型物品的防盜又適合小型貴重物品的防盜,同時本系統還可以放到人的身上用來進行對人的追蹤,擴大產品的應用范圍。
2.1.2 開放性
系統具有可擴展性,留有充分的二次開發接口,以便于未來的功能擴充。
2.1.3 高效性
系統的設計應充分考慮到硬件的開銷,合理利用硬件資源,提高運算速度,是系統達到高效
2.1.4 容錯性
容錯性原則指充分考慮實際數據的各種復雜情況,采取相應的技術措施,使其都能夠處理。如gps收不到信號,收到錯誤的數據等。
2.1.5 可靠性
保證系統運行的穩定可靠,是一個系統最基本的要求。系統本身的質量必須得到保證,數據正確性必須在提交給前進行全面的測試。
2.1.6 安全性
安全性是指可靠性、保密性和數據一致性。,提供高質量的數據保護,防止數據未經授權的泄露和未被察覺的修改;具有相當高的復雜性,使得破譯的開銷超過可能獲得的利益,同時又要便于理解和掌握。
2.1.7 經濟性
系統設計應充分考慮實際投產成本,力求少花錢、多辦事,能通過成本較低的軟件方案解決的不應通過加大硬件投入解決,對現有投資考慮最大可能的保護。
2.2系統方案的選擇與論證
2.2.1基本方案論證
系統由防盜目標終端和尋找指引終端兩部分組成,兩個終端均分別在Spartan-3E開發板上實現,通過無線傳輸模塊通信,另外加上GPS信號接收器接收衛星信號。
無線傳輸模塊方案選擇與論證
方案一 選擇cc2420模塊進行通信
CC2420是Chipcon公司推出的一款符合IEEE 802.15.4規范的2.4GHz射頻芯片,用來開發業無線傳感及家庭組網等PAN網絡的ZigBee設備和產品。cc2420通信免費,但通信距離短,室外傳輸距離只有300米左右,室內傳輸距離只有幾十米,而本產品所使用的gps信號接收器定位誤差為50米,若使用CC2420則定位的范圍非常小,而在小范圍內定位又不精確,從而使本產品的應用范圍和應用價值都大打折扣。
方案二 選擇GSM模塊進行通信
GSM全名為:Global System for Mobile Communications,中文為全球移動通訊系統,俗稱全球通,是一種起源于歐洲的移動通信技術標準,是第二代移動通信技術,其開發目的是讓全球各地可以共同使用一個移動電話網絡標準,讓用戶使用一部手機就能行遍全球。 GSM通信系統為了傳輸需的各種信令,設置了多種專門的控制信道。GSM通信隨收取一定費用,但通信距離長,死角少,可以實現全球通信,無論兩終端相距多遠都可以通過GSM進行通信。
2.2.2最終方案設計思想及框架示意圖
防盜目標終端和尋找指引終端兩部分均分別在Spartan-3E開發板上實現,利用GPS信號接收器接受信息,使用GSM模塊進行傳輸。防盜目標終端的FPGA開發板又包括三個模塊:UART模塊(實現DTE和DCE的串口通信),經緯度提取模塊(提取出經緯度信息),加密模塊(將經緯度信息加密)。尋找指引終端的FPGA開發板包括UART模塊,經緯度提取模塊,解密模塊(將傳入的信息解密),相對位置計算模塊(通過對自身經緯度和防盜目標終端經緯度的計算得出防盜目標終端相對于尋找指引終端的位置),和LCD顯示模塊(顯示防盜目標終端的相對位置)。
系統構成示意圖
2.3功能與指標
1) 防盜功能:這是設計本系統的最終目的。將防盜目標終端放到貴重物品上當物品丟失后,按下尋找指引終端上的按鍵后,可以在LCD液晶屏上看到防盜目標終端相對于尋找指引終端的位置和方位,從而達到防盜的目的。
2) 定位功能:這是本系統的最基礎功能,它是實現防盜功能的一個步驟,但對于用戶來說確實是一個非常重要的功能,當用戶按下尋找指引終端上的按鍵后可以在液晶屏上顯示自身經緯度,從而實現對自身的的定位
3) 追蹤功能 :這是本系統的擴展功能。防盜目標終端除了作為防盜器以外還可用作定位器,將防盜目標終端放到需要追蹤的目標上,通過尋找指引終端可以準確的知道追蹤目標的位置從而對追蹤目標進行實時追蹤。
指標:本系統所產生的誤差主要是由GPS信號接收器導致,因為系統所使用的GPS信號接收器屬于較低端的信號接收器,信息誤差大約在50米左右,所以本系統要求實現尋找指引終端對
防盜目標終端的定位,相對距離誤差不超過100米,尋找指引終端對自身經緯度進行定位誤差不超過50米。
3 實現原理
3.1 系統原理
當按下尋找指引終端上的按鍵時,尋找指引終端通過GSM模塊向防盜目標終端發出請求信息,防盜目標終端接收到該信息后,通過GPS信號接收器接收衛星信號,FPGA通過DTE接口接受該信息并在gps模塊中提取出經緯度信息,該信息在加密模塊中進行加密然后又通過開發板上的DCE接口傳送給GSM模塊,GSM模塊將該息發送給尋找指引終端,尋找指引終端通過GSM模塊接收該信息,并在解密模塊中對信息進行解密,同時用與防盜目標終端相同方式確定自身位置,防盜目標終端傳來的位置信息和尋找指引終端自身接受的位置信息一并傳入相對位置計算模塊。在相對位置計算中尋找指引終端計算出兩終端的相對位置以及防盜目標終端相對于尋找指引終端的方位。
系統原理示意圖
3.2各模塊實現原理
3.2.1 UART模塊實現原理:
FPGA使用LVTTL或LVCMOS電平提供串行數據給Maxim 器件——用來電平轉換的,以滿足RS-232電壓的電平。反之,Maxim 器件轉換相應的LVTTL電平以滿足RS-232串行輸入數據給FGPA。在Maxim與FPGA的RXD管腳之間串聯一個電阻,以保護外部邏輯干擾。
連接器不支持硬件流控制。DCD、DTR和DSR信號連接一起,同樣,端口的RTS和CTS信號連接在一起。
本系統的UART模塊是在EDK 10.1環境中開發完成,利用了開發環境所提供的uartns550_v1_00_b驅動程序,該驅動提供了發送函數void XuartNs550 SendByte (Xuint32 BaseAddress, Xuint8 Data)和接收函數unsigned int XuartNs550 RecvByte(Xuint32 BaseAddress)。從而使程序可以通過Uart每次發送接收一個字節的數據。
3.2.2 GPS模塊原理
GPS 定位的基本原理是根據高速運動的衛星瞬間位置作為已知的起算數據,采用空間距離后方交會的方法,確定待測點的位置。GPS 接口:在UP-NETARM2410-S 平臺上所選配的GPS 模塊是GPS15L/H。
接口特性如下:RS-232 輸出,可輸入RS232 或者具有RS-232 極性的TTL 電平??蛇x的波
串口輸出協議:輸出NEMA0183 格式的ASCII 碼語句,輸出:GPALM,GPGGA,GPGLL,GPGSA,GPGSV,GPRMC,GPVTG(NMEA 標準語句);PGRMB,PGRME,PGRMF,PGRMM,PGRMT,PGRM(GARMIN 定義的語句)。
還可將串口設置為輸出包括GPS 載波相位數據的二進制數據。輸入:初始位置、時間、秒脈沖狀態、差分模式、NMEA 輸出間隔等設置信息。
在缺省的狀態下,GPS 模塊輸出數據的波特率為4800,輸出信息包括:GPRMC、GPGGA、GPGSA、GPGSV、PGRME 等,每秒鐘定時輸出;
3.2.3 經緯度提取模塊原理
如果設備和衛星的通訊正常的話,可以接收到的數據格式樣如下:
$GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E
數據說明如下:
$GPRMC 代表GPS推薦的最短數據
204700 UTC_TIME 24小時制的標準時間,按照小時/分鐘/秒的格式
A表示數據OK,V表示一個警告
3403.868 LAT 緯度值,精確到小數點前4位,后3位 N LAT_DIR N表示北緯,S表示南緯
11709.432 LON 經度值,精確到小數點前5位,后3位 W LON_DIR W表示西經,E表示東經
如果當前沒有和衛星取得聯系,那么字符串的格式為: $GPRMC,UTC_TIME,V,...
下面是一個例子: $GPRMC,204149,V,,,,,,,170698,,*3A
在接收進程receive 中收到“n”之后,表示收到一條完整的信息。系統在void gps_parse (GPS_INFO *GPS) 方法中進行數據的解析,在此方法中程序首先檢查接收到的信號是GPRMC信號還是GPGGA信號,然后依次提取小時,分,秒,日, 月,年的值,接著根據“,”提取gps信號接收器的狀態(A/V),以及經度,緯度。gps信號中的經度緯度是字符串類型,需要轉化為double類型。
3.2.4 GSM模塊實現原理
GSM(Global System of Mobile communication)是一種無線數字蜂窩通信系統網絡規范。它定義了建設該網絡及提供服務的各種標準。SMS(Short Message Service,短信息服務)屬于GSM第一階段的標準。短信息業務按其實現的方式可分為點到點短信息業務和小區廣播短信息業務。本系統利用了點到點短信息業務來實現兩終端間的通信。其實現的硬件基礎主要是兩個GSM集成電路板模塊及兩篇SIM卡。兩個GSM模塊分別通過Spartan-3E板上的RS-232串口(在本作品中使用DCE RS-232串口)與FPGA進行通信。
實現的軟件基礎可分為GSM控制程序與AT命令集。下面分別對這兩部分進行闡述。
GSM控制程序最基本的實現原理是通過XUartNs550_RecvByte與XUartNs550_SendByte函數對串口進行操作。兩個函數的API分別為 Xuint8 XUartNs550_RecvByte ( Xuint32 BaseAddress ), void XUartNs550_SendByte uint32 BaseAddress,Xuint8 Data)。其中BaseAddress為串口的基地址,編寫程序時可使用RS-232 DCE的基地址(在xparameter.h中定義),這樣XUartNs550_RecvByte會返回從DCE收到的數據,而XUartNs550_SendByte就會向DCE串口發送Data中的數據。并且這兩個函數對數據的接受與發送都是阻塞的,即XUartNs550_RecvByte執行后會阻塞直到數據被接收到,XUartNs550_SendByte執行后會阻塞直到數據被發送到串口的數據寄存器中。因此該阻塞機制確保了發送與接受的數據不會丟失。綜上所述,通過使用這兩個基本的串口通信函數,實現了FPGA對GSM模塊的控制,從而實現了對短信息的接收與發送,進而實現了防盜目標終端和尋找指引終端之間的通信。
AT命令是被廣泛采用的調制解調器命令語言,它實現了計算機或終端與調制解調器的通訊,提供了計算機或終端對調制解調器的控制接口。在GSM模塊的應用中,AT命令實現了對GSM大多數的操作控制,例如atd命令用以實現呼叫命令,at+cmgs命令用于短信的發送,at+cmgr命令可以實現短信息的讀取等。當FPGA需要對GSM進行控制時,只需向DCE串口發送相應的命令。因此短信息發送函數的實現為通過XUartNs550_SendByte函數向GSM發送”at+cmgs=SIM號碼”+信息內容。以此類推,可以實現短信息接收函數和短信息分析函數等基本函數及程序模塊。
3.2.5加密解密模塊實現原理
本系統采用DES加密算法,DES(Data Encryption Standard)滿足了國家標準局欲達到的4個目的:提供高質量的數據保護,防止數據未經授權的泄露和未被察覺的修改;具有相當高的復雜性,使得破譯的開銷超過可能獲得的利益,同時又要便于理解和掌握;DES算法把64位的明文輸入塊變為64位的密文輸出塊,它所使用的密鑰也是64位,首先,DES把輸入的64位數據塊按位重新組合,并把輸出分為L0、R0兩部分,每部分各長32位,并進行前后置換(輸入的第58位換到第一位,第50位換到第2位,依此類推,最后一位是原來的第7位),最終由L0輸出左32位,R0輸出右32位,根據這個法則經過16次迭代運算后,得到L16、R16,將此作為輸入,進行與初始置換相反的逆置換,即得到密文輸出。 DES算法的入口參數有三個:Key、Data、Mode。其中Key為8個字節共64位,是DES算法的工作密鑰;Data也為8個字節64位,是要被加密或被解密的數據;Mode為DES的工作方式,有兩種:加密或解密,如果Mode為加密,則用Key去把數據Data進行加密,生成Data的密碼形式作為DES的輸出結果;如Mode為解密,則用Key去把密碼形式的數據Data解密,還原為Data的明碼形式作為DES的輸出結果。在使用DES時,雙方預先約定使用的”密碼”即Key,然后用Key去加密數據;接收方得到密文后使用同樣的Key解密得到原數據,這樣便實現了安全性較高的數據傳輸。加密模塊是本系統的特色,對通信的信息進行加密可以保證通信信息的安全,即使信息被第三方獲得也不會得知防盜目標終端的位置。
3.2.6相對位置計算模塊原理
相對位置計算模塊可以計算A,B兩點的相對距離以及B相對于A的方位。相對位置計算模塊的入口參數有五個:A點的經度,A點的緯度,B點的經度,B點的緯度,A B兩點距離變量的指針,B相對于A的方向變量的指針,B相對于A角度的指針。程序將地球近似看做是一個橢球體,根據赤道半徑,極半徑,A點經度求得A所在經線圈的半徑R1,用R1乘以A B兩點的緯度的弧度差就是A點所在緯線圈到B點所在緯線圈的距離d1。同理可求得A點所在經線圈到B點所在經線圈的距離d2。A點到B點的距離等于的d1與d2平方和的開平方。 返回的方向有四種:北偏東,北偏西,南偏東,南偏西,角度介于0到90之間。角度大小等于d1除以d2的商的反正切。
3.2.7 LCD顯示模塊原理
本系統所使用的LCD是FPGA自帶的2線16字符液晶顯示器LCD。盡管LCD支持8位的數據接口,為了與其它的XILINX的開發板保持兼容并且盡可能減少針腳數,FPGA僅通過4位的數據接口線控制LCD,如圖所示SF_D[11:8]對應于4位數據。LCD_E為使能信號LCD_RS為寄存器選擇信號,當LCD_RS為0時,表示寫入的是指令,當LCD_RS為1時,表示寫入的是數據。LCD_RW為讀寫控制信號,當LCD_RW為0時,表示是寫數據,即LCD接收數據,當LCD_RW為1時,表示是讀數據,即LCD輸出數據。
每個8位數據的傳輸必須被分解為兩次4位傳輸,間隔至少1us。先傳高4位,再傳低4位。每兩個字節之間至少要間隔40us。
本系統使用的LCDIP核分為兩部分——硬件部分和軟件部分。硬件部分用VHDL實現LCD時序,管腳連接,時序仿真 軟件部分用C語言進行驗證,向寄存器中送入數據。完成LCD顯示功能。硬件與軟件是通過VHDL程序中寄存器的基地址來聯系起來的。在本設計中,選擇了兩個32位寄存器,即slv_reg0和slv_reg1。寄存器的基地址是在制作LCD IP核的過程中定義的。所編寫C語言程序需要包括對LCD的初始化命令,字符或字符串的顯示命令和延時程序,并且可以設置所要顯示的字符的首地址。初始化命令具體如下:
(1)功能設置命令,寫入0x28。配制對顯示屏的操作。
(2)輸入方式命令,寫入0x06。設置地址指針自動加1。
(3)顯示開關控制命令,寫入0x0C。打開顯示屏。
(4)初始地址命令。
(5)清屏命令。
時鐘頻率設為1us。
在user logic中定義了四個輸出端口,LCD_E,LCD_RS,LCD_RW,lcddata_out[7:4]
選擇兩個32位的寄存器,slv_reg0和slv_reg1。Slv_reg0作為字節的傳輸,不論是指令字節還是數據字節都送入slv_reg0。而slv_reg1中選擇后三位作為發送數據標志位和指令或是數據的選擇位。具體如下:
定義slv_reg1的第29位即slv_reg(29)為發送數據標志位,即當slv_reg(29)為1時,表示數據已準備好,可以傳輸。slv_reg1的第30,31位為判別輸入的是數據還是指令的標志位。當slv_reg(30 to 31)為01時,表示寫入的數據為指令數據,當slv_reg(30 to 31)為10時,表示寫入的數據為要顯示的數據。
當向slv_reg1寫入控制數據后,slv_reg0中的32位數據中的低8位就將按照所編寫的LCD時序進行操作。送入LCD進行顯示
3.3硬件框圖
本系統采用了MicroBlaze_0核,MicroBlaze與BRAM的連接采用了LMB方式,與外圍設備的連接采用了OPB總線方式其硬件結構圖如下(其中只列出了與本系統有關的硬件結構塊,省去了一些細節):
MicroBlaze_0
MicroBlaze_0是基于Spartan-3E的微處理器IP核, MicroBlaze_0處理器采用RISC架構和哈佛結構的32位指令和數據總線。在本系統中,MicroBlaze是本系統中運算與控制的核心,它可以全速執行存儲在片上存儲器和外部存儲器中的程序,并訪問其中的數據。為了提高性能,MicroBlaze中設指令緩存和數據緩存。
MicroBlaze通過LMB與BRAM相連,通過dlmb對BRAM進行數據的讀寫,通過ilmb從BRAM中讀取指令。MicroBlaze_0通過OPB來訪問低速和低性能的系統資源,如LED,16M×8Flash,RS23_DTE,LCD等。下面再對這LMB和OPB兩種總線加以介紹。
LMB
LMB(Local Memory Bus,局部存儲總線,如圖中dlmb與ilmb)是MicroBlaze與BRAM之間的信息傳送線,分為dlmb(數據局部存儲總線)和ilmb(指令局部存儲總線),兩種總線寬度均為32位。dlmb用于MicroBlaze從BRAM中讀寫數據,ilmb傳送MicroBlaze從BRAM中讀取的指令。
OPB
OPB(On-chip Peripheral Bus,片上外設總線)提供了MicroBlaze與低速外接設備之間的數據通路。OPB是一種完全同步總線, 它的功能處于一個單獨的總線層級。它不是直接連接到處理器內核的。OPB接口提供分離的32 位地址總線和32位數據總線。處理器內核可以借助“PLB to OPB”橋,通過OPB訪問從外設。作為OPB總線控制器的外設可以借助“OPB to PLB”橋,通過PLB訪問存儲器。
OPB上掛接了各種類型的外設。在本系統中,OPB上掛接的外設有Spartan-3E開發板上的Buttons_4Bit,DDR_SDRAM_16Mx16,DIP_Switches_4Bit,Flash_16Mx8,LEDs_8Bit,RS232_DTE,RS232_DCE,LCD,OPB_Timer。
BRAM
BRAM(Block Random Access Memory,塊隨機存儲器)用于存放MicroBlaze核要運行的程序指令以及需要處理的數據或中間結果等。
BRAM通過LMB接口與LMB相連,進而與處理器相連。ilmb_cntlr為指令局部存儲總線控制器,BRAM通過PORTA與ilmb_cntlr相連,ilmb_cntlr負責控制指令數據在LMB總線上的傳送;dlmb_cntlr為數據局部存儲總線控制器,BRAM通過PORTB與dlmb_cntlr相連,dlmb_cntlr負責控制數據在LMB總線上的傳送。
Buttons_4Bit
Spartan-3E開發板上的4個瞬時按鈕開關BTN_NORTH、BTN_EAST、BTN_SOUTH和 BTN_WEST及1個Rotary Push-Button Switch(旋轉按鈕)中使用了BTN_SOUTH和旋轉按鈕用于用戶輸入。其中BTN_SOUTH為復位鍵以重新執行程序,旋轉按鈕用于接收用戶的追蹤定位請求。其對應的引腳約束如下:
Net fpga_0_Buttons_4Bit_GPIO_in_pin0> LOC=D18 | PULLDOWN;
Net fpga_0_Buttons_4Bit_GPIO_in_pin1> LOC=H13 | PULLDOWN;
Net fpga_0_Buttons_4Bit_GPIO_in_pin2> LOC=V4 | PULLDOWN;
Net fpga_0_Buttons_4Bit_GPIO_in_pin3> LOC=V16 | PULLDOWN;
Flash_16Mx8
本系統采用了Intel Strata Flash Parallel NOR Flash PROM來存放需要運行的程序。由于需要FPGA啟動后自動加載程序并運行程序,所以需要把程序存儲在非易失性存儲器中。在本系統中選用16Mx8bit Flash存放程序(.elf文件)。FPGA啟動時,存放在Flash中的FPGA配置信息與應用軟件程序通過OPB總線自動加載到FPGA運行。其引腳約束較為復雜,在此只列出其控制引腳的約束語句:
Net fpga_0_FLASH_16Mx8_Mem_OEN_pin LOC=c18;
Net fpga_0_FLASH_16Mx8_Mem_OEN_pin IOSTANDARD = LVCMOS33;
Net fpga_0_FLASH_16Mx8_Mem_WEN_pin LOC=d17;
Net fpga_0_FLASH_16Mx8_Mem_WEN_pin IOSTANDARD = LVCMOS33;
Net fpga_0_FLASH_16Mx8_Mem_CEN_pin0> LOC=d16;
Net fpga_0_FLASH_16Mx8_Mem_CEN_pin0> IOSTANDARD = LVCMOS33;
Net fpga_0_FLASH_16Mx8_emc_ben_gnd_pin LOC=c17;
Net fpga_0_FLASH_16Mx8_emc_ben_gnd_pin IOSTANDARD = LVCMOS33;
Uart16550
本系統使用RS232-DTE與GPS模塊連接,比特率為4800,對GPS數據的接收采用輪詢方式;RS232-DCE與GSM模塊連接,比特率為115200,對GSM信息的接收也采用輪詢方式。MicroBlaze一次只對32位數據進行處理,而DTE與DCE每次只串行傳送一位數據,而OPB16550串口實現了串行數據與并行數據的轉化,Uart16550與系統總線的連接模式如下圖:
引腳約束為:
Net fpga_0_RS232_DCE_sin_pin LOC=R7;
Net fpga_0_RS232_DCE_sin_pin IOSTANDARD = LVCMOS33;
Net fpga_0_RS232_DCE_sout_pin LOC=M14;
Net fpga_0_RS232_DCE_sout_pin IOSTANDARD = LVCMOS33;
Net fpga_0_RS232_DTE_sin_pin LOC=U8;
Net fpga_0_RS232_DTE_sin_pin IOSTANDARD = LVCMOS33;
Net fpga_0_RS232_DTE_sout_pin LOC=M13;
Net fpga_0_RS232_DTE_sout_pin IOSTANDARD = LVCMOS33;
LCD
Spartan-3E開發板上有2線16字符液晶顯示器LCD。FPGA僅通過4位的數據接口線控制LCD。并且4根LCD數據線與StrataFlash 數據線復用。當存儲器失能時(SF_CE0=1),FPGA用作全讀/寫通道給LCD。相反,當LCD讀失能時(LCD_RW=0),FPGA用作全讀/寫通道給存儲器。所以在對LCD進行控制時,首先是通過總線將LCD使能信號SF_CE0置低。對LCD的軟件控制流程在上文中已有敘述,在此只列出其引腳約束:
Net lcdtest_0_lcddata_out_W_pin7> LOC=M15;
Net lcdtest_0_lcddata_out_W_pin7> IOSTANDARD = LVCMOS33;
Net lcdtest_0_lcddata_out_W_pin6> LOC=P17;
Net lcdtest_0_lcddata_out_W_pin6> IOSTANDARD = LVCMOS33;
Net lcdtest_0_lcddata_out_W_pin5> LOC=R16;
Net lcdtest_0_lcddata_out_W_pin5> IOSTANDARD = LVCMOS33;
Net lcdtest_0_lcddata_out_W_pin4> LOC=R15;
Net lcdtest_0_lcddata_out_W_pin4> IOSTANDARD = LVCMOS33;
Net lcdtest_0_LCD_E_W_pin LOC= M18;
Net lcdtest_0_LCD_E_W_pin IOSTANDARD = LVCMOS33;
Net lcdtest_0_LCD_RS_W_pin LOC=L18;
Net lcdtest_0_LCD_RS_W_pin IOSTANDARD = LVCMOS33;
Net lcdtest_0_LCD_RW_W_pin LOC=L17;
Net lcdtest_0_LCD_RW_W_pin IOSTANDARD = LVCMOS33;
3.4軟件流程
防盜定位終端軟件流程圖
防盜定位終端軟件流程說明:當防盜定位終端通電時,該終端首先檢測是否有尋找指引終端發來的信號如果沒有則繼續檢測,如果有則進入下一步。在下一步中終端接收GPS信號接收器發來的信號,并提取出其中信息,然后判斷信息是否有效,如果無效則繼續接收,如果有效則進行下一步。在下一步中系統對提取出來的經緯度信息進行加密,然后將信息進行發送給尋找指引終端,發送完成后重復上述步驟,繼續檢測是否有尋找指引終端發來的信號。
尋找指引終端軟件流程圖
尋找指引終端軟件流程說明:當尋找指引終端通電時,該終端首先檢測啟動鍵是否被按下如果沒有被按下則繼續檢測,如果檢測到則進入下一步。在下一步中終端接收GPS信號接收器發來的信號,并提取出其中信息,然后判斷信息是否有效,如果無效則繼續接收,如果有效則向前進行。在下一步中尋找指引終端向防盜目標終端發送探測請求信號并監聽是否收到回應,如果沒有收到則繼續監聽,如果收到則進行下一步解密數據。數據解密完成后進入相對位置計算模塊計算相對位置,計算出的數據被送到LCD模塊在LCD上顯示出需要的信息。顯示完成后重復上述步驟,繼續檢測啟動鍵是否被按下。
4系統測試
利用本系統利用GPS和GSM技術在fpga開發板上實現了追蹤和定位的功能,為了檢測系統的的功能并找出其中的不足,我們制定了詳細的測試方案對不同環境下系統的性能以及系統的容錯性進行了測試,根據測試的數據對系統的性能作出了客觀的評價,突出展現了系統的優點也找出了系統的不足。
注:室內室外指gps天線的位置
4.1系統自測試計劃
4.1.1測試目標
在兩周的時間里,針對系統的定位功能和追蹤功能做出測試,測試系統是否圓滿實現要求的功能,是否具有較好的容錯性,并進一步通過數據對系統在不同自然條件下(室內室外,晴天雷雨)的性能作出評價。
4.1.2測試對象
在定位功能測試中將對尋找指引終進行測試,測試條件包括天氣(晴天 雷雨)位置(室內 室外);在追蹤功能測試中將對防盜目標終端和尋找指引終端進行測試,測試條件包括天氣(晴天 雷雨),位置(室內 室外)以及特殊情況進行測試。
4.1.3測試標準
定位功能指標:尋找指引終端對自身經緯度進行定位誤差不超過50米。
追蹤功能指標:實現尋找指引終端對防盜目標終端的定位,相對距離誤差不超過100米追蹤功能指標
4.1.3測試工作量估計
小組全體成員集中工作兩周,實現系統的測試。
4.2系統自測試方案
4.2.1定位功能測試
測試設備:尋找指引終,220V交流電。
測試用例1(晴天 室外)
測試環境:高性能計算機中心(36o 39ˊ57.19〞N, 117o 07ˊ57.64〞E),天氣晴
測試過程:將尋找指引終端各部件連接好,將gps的天線放到窗外,打開電源,按一下終端上的定位鍵,觀察尋找指引終端的液晶屏上所顯示的信息,將計算數據與實際數據相比較,計算系統的誤差,重復進行多次,統計收到的數據。
測試用例2(雷雨 室外 )
測試環境:高性能計算機中心(36o 39ˊ57.19〞N, 117o 07ˊ57.64〞E),雷雨
測試過程:將尋找指引終端各部件連接好,將gps的天線放到窗外,打開電源,按一下終端上的定位鍵,觀察尋找指引終端的液晶屏上所顯示的信息,將計算數據與實際數據相比較,計算系統的誤差,重復進行多次,統計收到的數據。
測試用例3(晴天 室內)
測試環境:高性能計算機中心(36o 39ˊ57.19〞N, 117o 07ˊ57.64〞E),雷雨
測試過程:將尋找指引終端各部件連接好,將gps的天線放到室內,打開電源,按一下終端上的定位鍵,觀察尋找指引終端的液晶屏上所顯示的信息,將計算數據與實際數據相比較,計算系統的誤差,重復進行多次,統計收到的數據。
測試用例4(雷雨 室外)
測試環境:高性能計算機中心(36o 39ˊ57.19〞N, 117o 07ˊ57.64〞E),雷雨
測試過程:將尋找指引終端各部件連接好,將gps的天線放到室內,打開電源,按一下終端上的定位鍵,觀察尋找指引終端的液晶屏上所顯示的信息,將計算數據與實際數據相比較,計算系統的誤差,重復進行多次,統計收到的數據。
4.2.2 追蹤功能測試
測試設備:尋找指引終端,防盜目標終端,220V交流電
測試用例1(室外 晴天)
測試環境:高性能計算機中心(36o 39ˊ57.19〞N, 117o 07ˊ57.64〞E),東新校區(36o 40ˊ19.91〞N, 117o 03ˊ30.58〞E),天氣晴
測試過程:將防盜目標終端帶到東新校區連接好各部件,打開電源;將尋找指引終端放在高性能計算機中心,打開電源,按下尋找鍵,觀察并記錄尋找指引終端的液晶顯示屏所顯示的信息,將計算數據與實際數據相比較,計算系統的誤差。
測試用例2(室外 晴天)
測試環境:高性能計算機中心(36o 39ˊ57.19〞N, 117o 07ˊ57.64〞E),2號宿舍樓(36o 40ˊ01.58〞N, 117o 08ˊ04.48〞E),天氣晴
測試過程:測試過程:將防盜目標終端帶到本校區的2號宿舍樓連接好各部件,打開電源;將尋找指引終端放在高性能計算機中心,打開電源,按下尋找鍵,觀察并記錄尋找指引終端的液晶顯示屏所顯示的信息,將計算數據與實際數據相比較,計算系統的誤差。
測試用例3(室外 晴天)
測試環境:高性能計算機中心東五實驗室(36o 39ˊ57.19〞N, 117o 07ˊ57.64〞E),高性能計算機中心東三實驗室(36o 39ˊ57.19〞N, 117o 07ˊ57.57〞E),天氣晴
測試過程:將防盜目標終端帶到高性能計算機中心東三實驗室連接好各部件,打開電源;將尋找指引終端放在高性能計算機中心東五實驗室,打開電源,按下尋找鍵,觀察并記錄尋找指引終端的液晶顯示屏所顯示的信息,將計算數據與實際數據相比較,計算系統的誤差。
測試用例4(室外 雷雨)
測試環境:高性能計算機中心(36o 39ˊ57.19〞N, 117o 07ˊ57.64〞E),東新校區(36o 40ˊ19.91〞N, 117o 03ˊ30.58〞E),雷雨
測試過程:將防盜目標終端帶到東新校區連接好各部件,打開電源;將尋找指引終端放在高性能計算機中心,打開電源,按下尋找鍵,觀察并記錄尋找指引終端的液晶顯示屏所顯示的信息,將計算數據與實際數據相比較,計算系統的誤差。
測試用例5(室外 雷雨)
測試環境:高性能計算機中心(36o 39ˊ57.19〞N, 117o 07ˊ57.64〞E),2號宿舍樓(36o 40ˊ01.58〞N, 117o 08ˊ04.48〞E),雷雨
測試過程:測試過程:將防盜目標終端帶到本校區的2號宿舍樓連接好各部件,打開電源;將尋找指引終端放在高性能計算機中心,打開電源,按下尋找鍵,觀察并記錄尋找指引終端的液晶顯示屏所顯示的信息,將計算數據與實際數據相比較,計算系統的誤差。
測試用例6(室外 雷雨)
測試環境:高性能計算機中心東五實驗室(36o 39ˊ57.19〞N, 117o 07ˊ57.64〞E),高性能計算機中心東三實驗室(36o 39ˊ57.19〞N, 117o 07ˊ57.57〞E),雷雨
測試過程:將防盜目標終端帶到高性能計算機中心東三實驗室連接好各部件,打開電源;將尋找指引終端放在高性能計算機中心東五實驗室,打開電源,按下尋找鍵,觀察并記錄尋找指引終端的液晶顯示屏所顯示的信息,將計算數據與實際數據相比較,計算系統的誤差。
測試用例7 (防盜目標終端終端無信號)
測試環境:高性能計算機中心東五實驗室(36o 39ˊ57.19〞N, 117o 07ˊ57.64〞E)
測試過程:將防盜目標終端放到無信號區,打開電源;將尋找指引終端放在高性能計算機中心,打開電源,按下尋找鍵,觀察并記錄尋找指引終端的液晶顯示屏所顯示的信息,再將防盜目標終端放到有信號區觀察顯示屏所顯示的信息。
4.3系統測試結果
4.3.1定位功能測試結果
測試用例1
實際經度:117o 07ˊ57.64〞E ≈117.1326778o
測量經度:117. 13261o
經度誤差:0.00006 o
實際緯度: 36o 39ˊ57.19〞N≈36.6658861o
測量緯度: 36.6658317o
緯度誤差:0.00005 o
測試用例2
實際經度:117o 07ˊ57.64〞E≈117.1326778o
測量經度:117. 132623 o
經度誤差:0.0005 o
實際緯度:36o 39ˊ57.19〞N≈36.6658861o
測量緯度:36.6658324o
緯度誤差:0.00005
測試用例3
實際經度:117o 07ˊ57.64〞E
測量經度: 無信號
經度誤差:
實際緯度:36o 39ˊ57.19〞N
測量緯度: 無信號
緯度誤差:
測試用例4
實際經度:117o 07ˊ57.64〞E
測量經度:無信號
經度誤差:
實際緯度:36o 39ˊ57.19〞N
測量緯度: 無信號
緯度誤差:
4.3.2 追蹤功能測試結果
測試用例1
實際距離:約7.8km
實際方位: 南偏西75 o
計算距離:7812m
計算方位:南偏西 75.9 o
距離誤差:12m
角度誤差:0.9 o
測試用例2
實際距離:約755米
實際方位:南偏東約60 o
計算距離: 765.8米
計算方位:南偏東57.3 o
距離誤差:10.8米
角度誤差:2.7 o
測試用例3
實際距離:約20m
實際方位:正東
計算距離:14.6m
計算方位:南偏東81.2 o
距離誤差:5.4
角度誤差:8.8 o
測試用例4
實際距離:約7.8km
實際方位: 南偏西75 o
計算距離:7836m
計算方位:南偏西 73.6 o
距離誤差:36m
角度誤差:1.4 o
測試用例5
實際距離:約755米
實際方位:南偏東約60 o
計算距離: 623.5米
計算方位:南偏東54.3 o
距離誤差:24.5米
角度誤差:5.7 o
測試用例6
實際距離:約20m
實際方位:正東
計算距離:14.6m
計算方位:南偏東81.2 o
距離誤差:5.4
角度誤差:8.8 o
測試用例7
按下尋找指引終端的定位鍵后,若防盜目標終端處于gps無信號區,則尋找指引終端顯示屏上沒有反應,一旦防盜目標終端處于gps有信號區,則防盜目標終端立即向尋找指引終端發出信號,尋找指引終端上顯示出位置信息。
4.4測試數據分析
4.4.1定位功能測試數據分析
由于測試數據可知本系統受天氣情況影響較小,在室外無論晴天雨天均可進行精確定位,但因為gps信號在屋內較弱,所以gps信號接收器在屋內可能接受不到信號,從未導致無法定位,這也是本系統的最大不足。
4.4.2 追蹤功能測試數據分析
本系統采用gps和gsm受天氣等自然因素影響較小,所以無論是在晴天還是下雨天都能夠實現尋找指引終端對防盜目標終端的精確定位。因使用的gps定位系統質量較差,當兩終端相距較近時相對誤差過大。但此情況下已沒有必要通過本系統尋找防盜目標終端,可直接通過肉眼觀察找到。
5特色
- 信息安全性高,這是本作品的一大特色。當前市場上的防盜定位產品,多沒有對待追蹤的物品的經緯度信息進行加密,這樣信息如果被第三方截獲,物品的安全很可能受到威脅。而本作品在很大程度上彌補了這一缺陷。第一,對傳輸的經緯度信息將其加密后傳輸,防止物品的位置信息被第三方截獲并被惡意修改或利用;第二,GSM通信本身就有很好的防盜拷能力,在對信息加密的基礎上,利用GSM通信的這一特點進一步保證了信息的安全性。
- 定位精度較高。本作品的GPS使用了我國的北斗衛星導航系統,其定位精度達到了12m左右,在某些場合下甚至達到了5-10m。對這一點我們也對GPS數據進行了測試,發現其經緯度數據的精確度均達到了0.0001’,以地球半徑為6378km進行簡單的推算,其水平定位精度約為10m。上述的定位精確度足以達到對丟失物品的定位與尋找。
- 受天氣等外在因素的影響小。這是由GPS和GSM的特點決定的。首先GPS信號不會受到濃厚云層、大霧、下雨和下雪等不良天氣的影響,GPS信號的波長足以讓它穿越空氣中的各種障礙物,換句話說,多數惡劣天氣完全不會對GPS的正常工作產生影響;再就是GSM通信也幾乎不受多數不利天氣的影響,這一點我們可以從平時的手機短信息使用中體驗到。
- 定位追蹤的有效距離較遠。所謂定位追蹤的有效距離,在此處可以理解為兩終端均能接收到各自當前位置的有效經緯度信號并能正常地通信時,兩終端的相對距離。首先GPS的有效定位范圍是全球性的,在絕大多數情況下,GPS都能提供有效而準確的經緯度位置,從而保證了系統所用的位置數據的時效性,進而增大了定位追蹤的有效距離。其次,GSM通信也具有全球化的應用,無論通信距離的長短,GSM都能所保證傳送的信息具有良好的穩定性與正確性。因此,本系統保證了遠距離情況下兩個終端對數據的有效的接收及其之間的良好的通信,確保了較長的有效定位追蹤距離。
- 成本較低。Spartan-3E系列的器件密度范圍為10萬到160萬系統門,其單位邏輯單元的成本是FPGA行業中最低的。Spartan-3E器件在業界第一個突破 了2美元*的10萬系統門售價和10美元的100多萬系統門售價的極限。所以盡管本系統包含的各模塊都比較復雜,外圍器件較多,但由于整個系統基于Spartan-3E且Spartan-3E提供了豐富的外圍設備接口,因此系統各部分均得到了很好的實現,充分利用了Spartan-3E開發板的高性價比特性。
- 本作品的可擴展性強,有很好的市場前景。雖然本作品完全實現了定位追蹤功能和基本的人機交互功能。但由于開發時間有限,仍有一些功能可以進一步被擴展完善,所以本作品的性能仍具有很大的提升空間。例如在功能擴展方面,利用Spartan-3E的強大功能,可以進行一對多通信,這樣就可以實現對多個物品的同時跟蹤,極大地擴展了系統的應用價值;人機交互方面,本系統利用的是開發板提供的16×2 LCD和少數幾個按鍵,終端與用戶的交互功能有限,因此完全可改用VGA顯示,鍵盤輸入及語音對人機交互功能進行擴展,這樣會極大豐富本作品的功能及應用場合,擴大其市場前景。
評論