新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 强大的防盗定位追踪系统方案,硬件原理、结构框图、软件流程、源码打包奉送

强大的防盗定位追踪系统方案,硬件原理、结构框图、软件流程、源码打包奉送

作者:时间:2017-06-04来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/201706/348666.htm

摘要

系统由防盗目标终端和寻找指引终端两部分组成,防盗目标终端通过信号接收器接收卫星信号,FPGA通过DTE接口接受该位置信息并在gps模块中提取出经纬度信息,该信息在加密模块中进行加密然后又通过开发板上的DCE接口传送给GSM模块,GSM模块将该息发送给寻找指引终端,寻找指引终端通过GSM模块接收该信息,并对信息进行解密,同时用与防盗目标终端相同方式确定自身位置,并通过两者各自的绝对位置计算出防盗目标终端相对于寻找指引终端位置。当装有防盗目标终端的物品丢失时,可通过寻找指引终端计算出的防盗目标终端的相对位置并通过FPGA开发板上的LCD显示给用户,可以最大限度的帮助人们找回丢失的物品。

关键字

防盗系统 FPGA GSM

1.项目背景

1.1技术背景分析

( 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基本方案论证

系统由防盗目标终端和寻找指引终端两部分组成,两个终端均分别在开发板上实现,通过无线传输模块通信,另外加上GPS信号接收器接收卫星信号。

无线传输模块方案选择与论证

方案一 选择cc2420模块进行通信

是Chipcon公司推出的一款符合IEEE 802.15.4规范的2.4GHz芯片,用来开发业无线传感及家庭组网等PAN网络的ZigBee设备和产品。cc2420通信免费,但通信距离短,室外传输距离只有300米左右,室内传输距离只有几十米,而本产品所使用的gps信号接收器定位误差为50米,若使用则定位的范围非常小,而在小范围内定位又不精确,从而使本产品的应用范围和应用价值都大打折扣。

方案二 选择GSM模块进行通信

GSM全名为:Global System for Mobile Communications,中文为全球移动通讯系统,俗称全球通,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。 GSM通信系统为了传输需的各种信令,设置了多种专门的控制信道。GSM通信随收取一定费用,但通信距离长,死角少,可以实现全球通信,无论两终端相距多远都可以通过GSM进行通信。

2.2.2最终方案设计思想及框架示意图

防盗目标终端和寻找指引终端两部分均分别在开发板上实现,利用GPS信号接收器接受信息,使用GSM模块进行传输。防盗目标终端的FPGA开发板又包括三个模块:模块(实现DTE和DCE的串口通信),经纬度提取模块(提取出经纬度信息),加密模块(将经纬度信息加密)。寻找指引终端的FPGA开发板包括模块,经纬度提取模块,解密模块(将传入的信息解密),相对位置计算模块(通过对自身经纬度和防盗目标终端经纬度的计算得出防盗目标终端相对于寻找指引终端的位置),和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 模块实现原理:

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 电平。可选的波

串口输出协议:输出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模块分别通过板上的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特色

  1. 信息安全性高,这是本作品的一大特色。当前市场上的防盗定位产品,多没有对待追踪的物品的经纬度信息进行加密,这样信息如果被第三方截获,物品的安全很可能受到威胁。而本作品在很大程度上弥补了这一缺陷。第一,对传输的经纬度信息将其加密后传输,防止物品的位置信息被第三方截获并被恶意修改或利用;第二,GSM通信本身就有很好的防盗拷能力,在对信息加密的基础上,利用GSM通信的这一特点进一步保证了信息的安全性。
  2. 定位精度较高。本作品的GPS使用了我国的北斗卫星导航系统,其定位精度达到了12m左右,在某些场合下甚至达到了5-10m。对这一点我们也对GPS数据进行了测试,发现其经纬度数据的精确度均达到了0.0001’,以地球半径为6378km进行简单的推算,其水平定位精度约为10m。上述的定位精确度足以达到对丢失物品的定位与寻找。
  3. 受天气等外在因素的影响小。这是由GPS和GSM的特点决定的。首先GPS信号不会受到浓厚云层、大雾、下雨和下雪等不良天气的影响,GPS信号的波长足以让它穿越空气中的各种障碍物,换句话说,多数恶劣天气完全不会对GPS的正常工作产生影响;再就是GSM通信也几乎不受多数不利天气的影响,这一点我们可以从平时的手机短信息使用中体验到。
  4. 的有效距离较远。所谓定位追踪的有效距离,在此处可以理解为两终端均能接收到各自当前位置的有效经纬度信号并能正常地通信时,两终端的相对距离。首先GPS的有效定位范围是全球性的,在绝大多数情况下,GPS都能提供有效而准确的经纬度位置,从而保证了系统所用的位置数据的时效性,进而增大了定位追踪的有效距离。其次,GSM通信也具有全球化的应用,无论通信距离的长短,GSM都能所保证传送的信息具有良好的稳定性与正确性。因此,本系统保证了远距离情况下两个终端对数据的有效的接收及其之间的良好的通信,确保了较长的有效定位追踪距离。
  5. 成本较低。Spartan-3E系列的器件密度范围为10万到160万系统门,其单位逻辑单元的成本是FPGA行业中最低的。Spartan-3E器件在业界第一个突破 了2美元*的10万系统门售价和10美元的100多万系统门售价的极限。所以尽管本系统包含的各模块都比较复杂,外围器件较多,但由于整个系统基于Spartan-3E且Spartan-3E提供了丰富的外围设备接口,因此系统各部分均得到了很好的实现,充分利用了Spartan-3E开发板的高性价比特性。
  6. 本作品的可扩展性强,有很好的市场前景。虽然本作品完全实现了定位追踪功能和基本的人机交互功能。但由于开发时间有限,仍有一些功能可以进一步被扩展完善,所以本作品的性能仍具有很大的提升空间。例如在功能扩展方面,利用Spartan-3E的强大功能,可以进行一对多通信,这样就可以实现对多个物品的同时跟踪,极大地扩展了系统的应用价值;人机交互方面,本系统利用的是开发板提供的16×2 LCD和少数几个按键,终端与用户的交互功能有限,因此完全可改用VGA显示,键盘输入及语音对人机交互功能进行扩展,这样会极大丰富本作品的功能及应用场合,扩大其市场前景。



评论


相关推荐

技术专区

关闭