贵重物品防丢装置  单片机设计_第1页
贵重物品防丢装置  单片机设计_第2页
贵重物品防丢装置  单片机设计_第3页
贵重物品防丢装置  单片机设计_第4页
贵重物品防丢装置  单片机设计_第5页
免费预览已结束,剩余26页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

贵重物品防丢装置摘要: 随着人们生活水平的提高,人们身旁的如贵重物品等也随之增加,随之而来的贵重物品防丢系统越来越引起人们的关注。针对存在可靠性低、安全防护措施等方面的不足,提出一种基于GSM和GPS的贵重物品防丢系统设计方案。应用单片机芯片作为处理器,设计并实现了贵重物品位置智能判断等功能,克服了传统贵重物品防丢产品功能单一、非智能等缺点。尽管市场上的贵重物品防丢系统正在改善,但是大多达不到好的防丢效果。近十年来,GPS技术逐渐成熟,GPS技术已经广泛地应用于贵重物品导航中。同时,由于移动通信技术的发展,利用移动通信技术实现贵重物品远程控制的研究有着越来越重要的理论和应用价值。关键字:贵重物品 防丢 GPS GSM 单片机 定位第一部分 绪论 当今社会是一个信息化的社会。在已经步入信息时代的今天,计算机技术、电子技术、通信技术、自动控制技术以及人工智能等高新技术紧密的结合,在社会各个方面被广泛地应用,已经成为人们生活中不可或缺的重要组成部分。本装置是GSM与GPS技术的结合,产品以多变的外观和不同的类型以满足市场的需求。这是一种由GPS和GSM模块组成的贵重物品远程定位装置,它尺寸灵巧、精确度高。在GPS卫星的基础上,在动态的条件下提供精确无误的位置信息。在无法找到贵重物品时,可以利用这些防丢装置来确定该物品的具体位置。产品由GPS模块、GSM模块、单片机等部分组成。 本课题研究的内容是手机远程监控贵重物品防丢及定位系统,具体是要实现一个电子化,智能化,高可靠性的系统。这个系统把用户的手机作为整个系统的监控终端,短消息作为定位物品与手机的传输媒介。本系统的基本工作原理是利用已成熟的GPS技术,定位贵重物品所在位置,通过手机短信作为用户与定位物品之间的媒介,当用户向本装置发送请求信息时,本装置将所在地的精确信息通过短信回复给手机用户,以实现用户对贵重物品的防丢与追踪1。由于使用GSM网络作为系统通信的媒介,凡是GSM网络能覆盖的地方就能保证系统正常运行,所以系统基本不受距离的限制。本文的研究内容主要包括以下几部分:1.熟悉GPS基本工作原理,GPS数据的接收与解析。2.熟悉GSM网络的工作原理,熟悉短信息Unicode编码和AT指令。3.加深对AT89S52单片机的体系结构和Keil编程环境的学习和研究。4.熟悉整体系统设置思路和方案。第二部分 课题相关技术介绍2.1 GPS全球卫星定位系统2.1.1 GPS构成空间部分:GPS的空间部分是由24 颗工作卫星组成,它位于距地表20 200km的上空,均匀分布在6 个轨道面上(每个轨道面4 颗) ,轨道倾角为55。此外,还有4 颗有源备份卫星在轨运行。卫星的分布使得在全球任何地方、任何时间都可观测到4 颗以上的卫星,并能保持良好定位解算精度的几何图象。这就提供了在时间上连续的全球导航能力2。GPS 卫星产生两组电码, 一组称为C/ A 码( Coarse/ Acquisition Code11023MHz) ;一组称为P 码(Precise Code 10123MHz) ,P 码因频率较高,不易受干扰,定位精度高,因此受美国军方管制,并设有密码,一般民间无法解读,主要为美国军方服务。C/ A 码人为采取措施而刻意降低精度后,主要开放给民间使用。2.1.2 GPS原理GPS导航系统的基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。要达到这一目的,卫星的位置可以根据星载时钟所记录的时间在卫星星历中查出。而用户到卫星的距离则通过纪录卫星信号传播到用户所经历的时间,再将其乘以光速得到(由于大气层电离层的干扰,这一距离并不是用户与卫星之间的真实距离,而是伪距(PR):当GPS卫星正常工作时,会不断地用1和0二进制码元组成的伪随机码(简称伪码)发射导航电文。如果想知道接收机所处的位置,至少要能接收到4个卫星的信号。GPS接收机可接收到可用于授时的准确至纳秒级的时间信息;用于预报未来几个月内卫星所处概略位置的预报星历;用于计算定位时所需卫星坐标的广播星历,精度为几米至几十米(各个卫星不同,随时变化);以及GPS系统信息,如卫星状况等。 2.1.3 GPS特点定位精度高 :应用实践已经证明,GPS相对定位精度在50KM以内可达10-6,100-500KM可达10-7,1000KM可达10-9。在300-1500M工程精密定位中,1小时以上观测的解其平面其平面位置误差小于1mm,与ME-5000电磁波测距仪测定得边长比较,其边长较差最大为0.5mm,校差中误差为0.3mm。 观测时间短:随着GPS系统的不断完善,软件的不断更新,目前,20KM以内相对静态定位,仅需15-20分钟;快速静态相对定位测量时,当每个流动站与基准站相距在15KM以内时,流动站观测时间只需1-2分钟,然后可随时定位,每站观测只需几秒钟3。2.2 GSM 全球移动通信系统2.2.1 GSM系统及业务介绍 GSM是Global System For Mobile Communications的缩写,由欧洲电信标准组织ETSI制订的一个数字移动通信标准,GSM是全球移动通信系统(Global System for Mobile communications) 的简称。它的空中接口采用时分多址技术。自90年代中期投入商用以来,被全球超过100个国家采用。GSM标准的设备占据当前全球蜂窝移动通信设备市场80%以上。 GSM 是当前应用最为广泛的移动电话标准。全球超过200个国家和地区超过10亿人正在使用GSM电话。所有用户可以在签署了漫游协定移动电话运营商之间自由漫游。GSM 较之它以前的标准最大的不同是它的信令和语音信道都是数字式的,因此GSM被看作是第二代(2G)移动电话系统。 这说明数字通讯从很早就已经构建到系统中。GSM是一个当前由3GPP开发的开放标准。GSM系统有如下特点:()GSM有越区切换和漫游功能,可以实现国际漫游;()GSM可以提供多种业务,包括话音业务和一些数据业务;()GSM有较好的保密功能,提供对移动识别码的加密、用户数据的加密;()GSM还有一些其他的特点,如容量大、通话质量较好、有电子信箱与短消息功能等。短消息是指长度不超过个字符的文本消息,它是一种电信业务,把短消息传送给移动台,在用户识别模块(SIM)上存储短消息。GSM数字蜂窝移动通信系统是作为公共电话网的一部分,它的服务一般是建立在呼叫连接的基础上的,而短消息是GSM中唯一不要求建立端到端业务路径的业务,即使移动台己处于通话(或数据传输)过程中时亦可进行短消息传输4。2.2.2短消息业务的分类与特点短消息业务是GSM系统中最为简单和方便的数据通信方式,它不需要附加其它较为庞大的数据终端设备,仅使用手机就可以达到进行中、英文信息交流的目的。这项服务与传统的语音传输通信业务是根本不同的,它不用建立拨号连接,只需把要发送的信息加上目的地址,然后通过无线控制信道发送到短消息服务中心(SMSC),经短消息服务中心完成存储和转发,最后到达最终信宿的一种数据业务。发送短消息时,只要知道对方的手机号码,就可以直接向对方的手机发送短消息。回复信息也是如此。这样的工作方式使得手机就如同Internet网络中拥有固定护地址的计算机一样,可以随时随地与其它用户建立连接。短消息有三种模式:块模式、PDU模式和文本模式。其中支持块模式的手机厂商已经很少,但他们基本上都支持PDU模式和文本模式,目前使用最多的是PDU模式。通过PDU编码的短消息可以承载文字、声音或图像等数据信息5。随着短消息协议的不断发展,短消息还能支持更多样化的数据。第部分 系统总体设计方案3.1系统体系结构设计设计是基于GSM和GPS技术,主要包含3个部分:主控模块(MCU)、GPS块、GSM模块。GPS模块负责接收定位数据;GSM模块在单片机控制下收发短信。系统的结构框图:GPS结构框图:GSM模块框图:3.2系统硬件设计方案3.2.1主控模块: 本系统采用的主控芯片采用Atmel的AT89S52单片机作为主控芯片。AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用6。芯片主要有以下性能:1、与MCS-51单片机产品兼容;2、8K字节在系统可编程Flash存储器;3、1000次擦写周期;4、全静态操作:0Hz-33MHz;5、三级加密程序存储器;6、32个可编程I/O口线;7、三个16位定时器/计数器;8、六个中断源;9、全双工UART串行通道;10、低功耗空闲和掉电模式;11、掉电后中断可唤醒;12、看门狗定时器;13、双数据指针;14、掉电标识符 。芯片引脚图:本系统主要使用AT89S52的串口接收GPS模块和GSM模块发送来的数据,进行数据解析后,在通过串口将解析后的数据通过GSM模块发送出去。由于AT89S52只有一个串口,所以需要通过外围电路为单片机扩展一个串口,以供两个模块使用。3.2.2 GPS模块: 本系统采用的GPS模块是台湾鼎天科技有限公司的SIRF 3代 GPS模块REB3571。 芯片主要规格:一般规格1. GPS技术:SIRFIII 单芯片GSC3F/LP2. 频率: L1, 1575.42MHz3. C/A码: 1.023MHZ芯片速率4. 通道: 20个通道5. 灵敏度: -159dBm接收器精确度1. 位置: 10 M 2D-RMS.2.速度:0.1M/S3.时间: 50纳秒。同步化GPS时间FFTT1. 热开机: 平均1秒2. 温开机: 平均35秒3. 冷开机: 平均35秒4. 重新取得定位时间: 1秒通讯协定1. 支持的通讯协定: NMEA-01832. 硬件接口:30PIN SMT1PPS: 启用(1Hz脉冲)电源1.操作电流:48 mA3.3V2. DC输入范围: VCC 3.3V;温度1. 操作温度:-40到+802. 存放温度: -40到853. 操作湿度: 5%到95%,无凝结实体1. 尺寸:25.4 * 25.4 * 2.9 mm2. 重量: 5g芯片引脚图:3.2.3 GSM模块:本系统采用的GPS模块是德国西门子公司的工业GSM模块TC35,支持EGSM900和GSM1800双频段双频段。芯片主要规格:信息传送内容:语音和数据电源:单电源 3.3V 5.5V频段:双频GSM900MHz 和 DCS1800 MHz(Phase 2+)发射功率:2W (GSM900MHz Class 4) 1W (DCS1800MHz Class 1)SIM 卡连接方式: 外接天线: 由天线连接器连接外部天线温度范围工作温度:-20C to +55C储存温度:-30C to +85C工作电流损耗通话模式: 300mA (典型值.)空闲模式: 3.5mA (最大值)省电模式: 100A (最大值)语音解码标准三种速率: 半速 (ETS 06.20) 全速(ETS 06.10) 增强型全速 (ETS 06.50/06.60/06.80)短信息:MT, MO, CB 和 PDU 模式外型尺寸:54.5 x 36 x 6.7mm音频接口:模拟信号(麦克风,耳麦,免提手柄)通讯接口:RS232(指令和数据的双向传送)SIM卡操作电压: 3V/1.8V电话薄功能: 存储于SIM卡中模块复位: 采用AT指令或掉电复位串口通讯波特率: 300bps.115kbps自动波特率范围; 4.8kbps.115kbps软件下载功能 (improvedservice and maintenance) :通过RS232或SIM接口实时时钟: 可实现(时钟频率32.768KHz)定时器功能: 可用AT命令编程芯片引脚图:第4部分 软件设计方案4.1 GPS数据解析GPS上电后,每隔一定的时间就会返回一定格式的数据,数据格式为:$信息类型,x,x,x,x,x,x,x,x,x,x,x,x,x每行开头的字符都是$,接着是信息类型,后面是数据,以逗号分隔开。一行完整的数据如下:$GPRMC,080655.00,A,4546.40891,N,12639.65641,E,1.045,328.42,170809,A*60信息类型为:GPGSV:可见卫星信息GPGLL:地理定位信息GPRMC:推荐最小定位信息GPVTG:地面速度信息GPGGA:GPS定位信息GPGSA:当前卫星信息本系统只解析GPRMC和GPGGA数据信息。GPRMC数据详解:$GPRMC,*hh UTC时间,hhmmss(时分秒)格式 定位状态,A=有效定位,V=无效定位 纬度ddmm.mmmm(度分)格式(前面的0也将被传输) 纬度半球N(北半球)或S(南半球) 经度dddmm.mmmm(度分)格式(前面的0也将被传输) 经度半球E(东经)或W(西经) 地面速率(000.0999.9节,前面的0也将被传输) 地面航向(000.0359.9度,以真北为参考基准,前面的0也将被传输) UTC日期,ddmmyy(日月年)格式 磁偏角(000.0180.0度,前面的0也将被传输) 磁偏角方向,E(东)或W(西) 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)解析内容:时间,这个是格林威治时间,是世界时间(UTC),我们需要把它转换成北京时间(BTC),BTC和UTC差了8个小时,要在这个时间基础上加8个小时。定位状态,在接收到有效数据前,这个位是V,后面的数据都为空,接到有效数据后,这个位是A,后面才开始有数据。纬度,我们需要把它转换成度分秒的格式,计算方法:如接收到的纬度是:4546.408914546.40891 / 100 = 45.4640891 可以直接读出45度4546.4089145 * 100 = 46.40891 可以直接读出46分46.4089146 = 0.40891 * 60 = 24.5346 读出24秒所以纬度是:45度46分24秒。南北纬,这个位有两种值N(北纬)和S(南纬)经度的计算方法和纬度的计算方法一样东西经,这个位有两种值E(东经)和W(西经)速率,这个速率值是 海里/时,单位是节,要把它转换成千米/时,根据:1海里 = 1.85公里,把得到的速率乘以1.85。航向,指的是偏离正北的角度日期,这个日期是准确的,不需要转换。AT指令使用:AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter,TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。短消息收发模式TEXT文本模式:TEXT moden是一种使用命令传输文本数据的接口协议。在文本模式下,发送短消息只需输入目的地址(对方的手机号)和消息内容即可,但它只能发送ASCII码,对于中文的Unicode码不能发送。PDU模式:PDU模式是一种使用命令传送十六进制编码的二进制用户数据的接口协议。这种传送方式类似于计算机网络中的分组交换,每一条短消息的全部用户数据作为一个数据块加上目的地址和控制信息一次性发送出去,它开发起来则较为复杂,需要编写专门的函数来将文本转换为PDU格式,但PDU模式被所有手机支持,可以使用任何字符集,它也是手机默认的编码方式7。程序流程图源程序代码公共头文件源码:Public.h:#ifndef _COMMON_H_#define _COMMON_H_#include #define uchar unsigned char#define uint unsigned int#endif主函数源码:main.c:#include Public.h#include GPS.h#include GSM.huchar xdata Rec_buf80;uchar xdata Dis_Latitude_Degree7;uchar xdata Dis_Longitude_Degree7;uchar xdata Dis_Height15;uchar xdata Tra_buf150=”The place is: nLatitude:”;GPS_Info xdata GPS;void Init_51(void);static void delayms(uint);void main()Init_51();P1.0 = 1;P1.1 = 0;while(1)If(!strcmp(Rec_buf , ”The place”)P1.0 = 0;P1.1 = 1;if(GPS_RMC_Parse(Rec_buf, &GPS)Int_To_Str(GPS.Latitude_Degree,Dis_Latitude_Degree);Int_To_Str(GPS.Latitude_Cent,Dis_Latitude_Cent);Int_To_Str(GPS.Longitude_Degree,Dis_Longitude_Degree);Int_To_Str(GPS.Longitude_Cent,Dis_Longitude_Cent);if(GPS_GGA_Parse(Rec_buf, &GPS)Dou_To_Str(GPS.Height,Dis_Height);If(P1.0 = 0&P1.1 = 1)strcat(Tra_buf,Dis_Latitude_Degree);strcat(Tra_buf,” Longitude:”);strcat(Tra_buf,Dis_Longitude_Degree);strcat(Tra_buf, “Height:”);strcat(Tra_buf, Dis_Height);GSM_Sent_Text_Message(“00000000000”, Tra_buf,);P1.0 = 0;P1.1 = 1;void UART_Receive() interrupt 4uchar ch;uint num = 0;uchar Rec_Start;ES = 0;ch = SBUF;if(ch = $)Rec_Start = 1;else if(Rec_Start =1)Rec_bufnum+ = ch; if(ch = n)Rec_bufnum = 0;Rec_Start = 0;num = 0;RI = 0;ES = 1;void Init_51(void)TMOD = 0x20;TH1 = 0xFA;TL1 = 0xFA;SCON = 0x50;ES = 1;EA = 1;TR1 = 1;static void delayms(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);GPS模块源码:GPS.h:#ifndef _GPS_H_#define _GPS_H_#include #include Public.htypedef enum GPGGA = 0 , GPRMC = 1 GPS_Type;typedef struct int Latitude_Degree; intLatitude_Cent;int Latitude_Second;int Longitude_Degree; intLongitude_Cent;int Longitude_Second;double Height; GPS_Info;static GPS_Type GPS_Judge(uchar*); static void Get_String(uchar,uchar*,uchar*);static float Str_To_Float(uchar *);void Int_To_Str(int,char *);void Dou_To_Str(double,char *);uchar GPS_RMC_Parse(uchar *,GPS_Info *);uchar GPS_GGA_Parse(uchar *,GPS_Info *);#endifGPS.c:#include GPS.hstatic GPS_Type GPS_Judge(uchar* dat)GPS_Type Type;uchar ch;ch = dat5;if(dat5 = C)Type = GPRMC;else if(dat5 = A)Type = GPGGA;return Type;static void Get_String(uchar num,uchar *Str1,uchar *Str2)uchar i,j;for(i=0,j=0;Str1i;i+)if(Str1i=,)j+;if(j=num)*Str2+ = Str1i+1;if(Str1i+2=,)*Str2 = 0;break;static float Str_To_Float(uchar *Str)float num;uint i,dat,Integer = 1;while(Str+)switch(*Str)case 0:dat = 0;break;case 1:dat = 1;break;case 2:dat = 2;break;case 3:dat = 3;break;case 4:dat = 4;break;case 5:dat = 5;break;case 6:dat = 6;break;case 7:dat = 7;break;case 8:dat = 8;break;case 9:dat = 9;break;case .:dat = .;break;if(dat = .)Integer = 0;i = 1;continue;if(Integer = 1)num = num * 10 + dat;elsenum = num + dat / (10 * i);i = i * 10;return num;void Int_To_Str(int num,char *Str)char len = 0,j;char tmp;if(num = 0)*Str+ = num +0x30;elsewhile(num)*Str+ = num %10 + 0x30;len+;num /= 10;*Str = 0;for(j=0;jlen/2;j+)tmp = *(Str-1-j);*(Str-1-j) = *(Str-len+j);*(Str-len+j) = tmp;void Dou_To_Str(double num,char *Str)int Integer = (int)num;int Decimal = (int)(num-Integer)*1000000);char Decimal_Str7;char tmp;char i=0,j;if(Integer = 0)Stri+ = Integer +0x30;elsewhile(Integer)Stri+ = Integer %10 + 0x30;Integer /= 10;for(j=0;ji/2;j+)tmp = Strj;Strj = Stri-1-j;Stri-1-j = tmp;if(Decimal=0)Stri = 0;elseStri = .;Stri+1 = 0;i=0;while(i!=6)Decimal_Stri+ = Decimal %10 + 0x30;Decimal /= 10;for(j=0;j Latitude_Degree = Latitude/100;Stru - Latitude_Cent = Latitude-Stru-Latitude_Degree*100;Stru - Longitude_Degree= Longitude/100;Stru - Longitude_Cent = Longitude-Stru-Longitude_Degree*100;return 1;elsereturn 0;uchar GPS_GGA_Parse(uchar * Str,GPS_Info * Stru)uchar Buff10;if(GPS_Judge(Str) = GPGGA)Get_String(9,Str,Buff); Stru-Height = Str_To_Float(Buff);return 1;elsereturn 0;GSM模块源码:GSM.h:#ifndef _GSM_H_#define _GSM_H_#include #include #include Public.h#define uchar unsigned char#define uint unsigned intvoid GSM_Call(uchar*);void GSM_Hang(void);void GSM_Ans

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论