0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于GPS定位技术和GPRS通信模块实现车载导航系统终端的设计

电子设计 来源:电子测试 作者:凡书明,朱建光,余 2021-04-13 10:44 次阅读

作者:凡书明, 朱建光, 余红英

引言

面对庞大的汽车市场以及随着全国各省市高速公路路网的建设与完善,对交通管理信息化的要求越来越高,gps车载系统的潜力不可估量,其发展前景比较乐观。日本和西方各大公司都参与了这场高科技的角逐。各发达国家的很多生产商都加快了车载导航系统的研究步伐。随着嵌入式技术的发展,很多资源不足的瓶颈问题都很大程度上得到了解决。车载定位系统由车载定位终端、无线通信链路和车载监控管理系统三部分组成。其主要功能是将移动目标的动态位置(经度和纬度)、时间和海拔等对用户有用的信息,通过无线通信链路传送到监控中心,而后在电子地图上对移动目标的运动轨迹进行显示,并对车辆的准确位置、速度、运动方向和车辆状态等用户感兴趣的参数进行监控和查询,为调度管理提供可视化依据,提高车辆运行效率,还能起到节能减排的作用。也在一定程度上起到保护地球的作用。本文将gps定位技术应用于气车,与现有定位技术组合起来共同完成定位监控任务,将大大提高定位准确性及安全性,同时能够降低资金投入,具有很广阔的发展空间。

系统总体设计

系统硬件的结构设计

车辆监控系统由车载端(包括arm工控机、触摸屏、gps接收模块和电源等)、通信系统(gprs)、监控中心三大部分组成。车载端的gps模块实时接收全球定位卫星的位置、时间等数据,一方面发送给车内的arm微型工控机,得到车辆的当前位置并且在电子地图上显示:另一方面,数据将通过gprs终端模块发送到远程监控中心服务器,使得监控中心能实时得到所有车辆的位置信息,给车辆的安全监控以及远程凋度提供了基础。通过spi接口can总线相连,利用can总线挂接传感器检测汽车主要技术参数,can总线模块可以使本系统与其他车载模块的连接,完成收集车辆的状态信息以及进一步控制。can总线模块主要包括can总线的控制器收发器,在这里分别选用的是microchip公司的mcp2510和飞利浦公司的pca82c250。其中,can总线控制器mcp2510实现了can总线的协议,can总线收发器pca82c250提供协议控制器和物理传输线路之间的接口。由于can总线控制器mcp2510具有spi接口,因此,系统中将其与s3c2440的spi0相连。故障检测模块主要是对汽车的主要技术参数进行检测,并显示到lcd显示器上,如果检测到故障,会发出报警信号。本文主要检测的技术参数包括燃油消耗量、制动力、转向力、发动机温度、冷却液温度、前照灯,以及车内噪声和尾气等方面。该模块主要是通过各种传感器把各种信号转换为电信号,再利用信号处理电路把电信号进行相应的处理,使其能与can总线模块进行数据传输。车载端的硬件组成框图,如图1所示。

图1 车载端的硬件组成框图

应用程序总结构

应用程序的总体流程图如图2所示。由于gprs模块和gps模块都是通过串口和监控终端连接的,程序系统初始化的工作就是对串口进行初始化,使串口按gprs及gps模块的要求工作。之后创建共享内存是为gprs通信子进程与gps子进程之间的通信做准备。gps子进程负责从串口接收gps信息并把这些信息写入共享内存内,gprs子进程则将共享内存内的gps信息通过网络送到远方的监控服务器。

gps驱动程序的编写

为了使arm上的应用程序能够处理gps接收到的导航信号,要编写gps的驱动程序。

这个gps驱动程序也是属于字符型驱动程序,首先了解嵌入式开发中应用程序、库、内核、驱动程序的关系:应用程序调用应用程序库函数完成功能;应用程序以文件形式访问各种资源;应用程序函数库的一部分直接完成功能,一部分函数通过系统调用由内核完成,内核处理系统调用,调用设备驱动程序,设备驱动程序直接与硬件通信。如图3所示

一般linux的设备驱动有三种类型,字符设备、块设备、网络设备。而我要讲的gps模块的驱动程序是属于字符设备。对于字符设备发出读/写请求时,实际的硬件i/o操作一般紧接着发生。在设备管理中,除了设备类型外,内核还需要一对被称为主从设备号的参数,才能唯一标识一个设备。主设备号相同的设备使用相同的驱动程序,从设备号用于区分具体设备的实例。用命令cat/proc/devices可以查看系统中所有设备对应的主设备号。所以在gps驱动程序的开始定义设备名称#define device_name “s3c2440-gps”再定义主设备号,我是让系统自动分配的,以防主设备号已被占用,static int gps_major=0;驱动程序以一个模块初始化函数作为入口,如module_init(s3c2440_gps_init)向内核声明当前模块的初始化函数;再写gps的初始化函数:static int __init s3c2440_gps_init(void)函数,在这个函数里面注册一个设备,返回主设备号,可以写成:gps_major=register_chrdev(0,device _name,&s3c2440_gps_fops),s3c2440_gps_fops是定义了的结构体,规定了驱动程序向应用程序提供的操作接口。如:static struct file_operations s3c2440_gps _fops ={.owner= this_module,。

open= s3c2440_gps_open,.release= s3c2440_gps_release=s3c2440_gps_release, .ioctl=s3c2440_gps_ioctl};继续向下写,gps_class=class_create(this_module,device_name);在/sysfs目录下创建这个设备的类。再是注册这个设备的类,如device_create(gps_class,null,mkdev(gps_major,0),null,device_name)。

gps应用程序即定位功能的实现

要实现gps的定位必须先要对gps数据包进行解析,gps上电后,每隔一定的时间就会返回一定格式的数据,数据格式为$信息类型,每行开头的字符都是$,接着是信息类型,后面的是数据,以逗号分开,完整的数据类型如下:$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,《1》,《2》,《3》,《4》,《5》,《6》,《7》,《8》,《9》,《10》,《11》,《12》*hh《1》utc时间,hhmmss(时分秒)格式《2》定位状态,a=有效定位,v=无效定位《3》纬度ddmm.mmmm(度分)格式(前面的0也将被传输)《4》纬度半球n(北半球)或s(南半球)《5》经度dddmm.mmmm(度分)格式(前面的0也将被传输)《6》经度半球e(东经)或w(西经)……。

最后编写代码,把经/纬度解析出来,对于gpgga类型数据,也是一样,先了解每一位的含义,再写代码把海平面高度和大地水平面高度等数据解析并显示出来。

gprs通信模块实现

gprs模块是借助gprs无线网络实现数据的无线传输,从而在不同的车辆或车辆与控制中心之间架起沟通的桥梁,所以软件的功能主要是建立无线连接,按照gprs通信协议传输数据。gprs模块的通信主要是通过串口驱动实现,在嵌入式linux内核中已经提供了对串设备的支持,因此在配置内核编译选项时,只需要选中对串口设备的支持,就可以实现对gprs模块的串口数据通信功能。为了实现与internet的通信,还需要在配置内核编译选项时选中ppp和tcp/ip协议。这样一旦网络连接建立,就可以使用应用程序来实现网络数据的通信。本系统数据链路层采用ppp协议,它是一种面向字符的协议,是为在两个对等实体间传输数据包连接而设计的,使用可扩展的链路控制协议lcp来建立、配置和测试数据链路。用网络控制协议族ncp来建立和配置不同的网络层协议,并且允许采用多种网络层协议。一个ppp会话分四个步骤:建立连接、连接质量控制、网络层协议配置和连接终止。

嵌入式linux系统内核源自于linux内核,并保留了对tcp/ip以及其他的网络协议的支持。在嵌入式linux系统上编写网络应用程序与在linux上编写网络应用程序没什么大区别,通常只需要做很小的修改就可以移植到嵌入式linux系统上。至此,gprs模块完整地集成到嵌入式终端中。

can模块实现

can总线驱动程序要完成的报文发送、接收等任务都是围绕can总线控制器展开的,因此驱动程序主要是对控制器mcp2510内部寄存器进行操作。can总线控制器mcp2510的初始化按照以下步骤进行:(1)软件复位,进入配置模式;(2)设置can总线波特率;(3)关闭中断,设置id过滤器;(4)切换mcp2510到正常状态;(5)清空接收和发送缓冲区;(6)开启接收缓冲区,开启中断。

实验结果

本实验结果能达到基本的要求,参见图4,图的右上角是经/纬度。本系统还不完善,还有很多实用的功能有待进一步开发。

结论

该系统能够通过gps和gprs实现车辆定位以及车辆与控制中心之间的数据通信,还能够通过can总线检测汽车主要技术参数,为交通道路的智能管理以及汽车的安全驾驶提供了可靠保障。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gps
    gps
    +关注

    关注

    22

    文章

    2883

    浏览量

    166028
  • GPRS
    +关注

    关注

    21

    文章

    983

    浏览量

    129335
  • 导航系统
    +关注

    关注

    2

    文章

    256

    浏览量

    30671
收藏 人收藏

    评论

    相关推荐

    GPS/GPRS定位定向导航系统车载终端应用设计与实现

    GPS_GPRS定位定向导航系统车载终端应用设计与实现一、引言   &nbs
    发表于 09-26 17:00

    车载GPS智能终端的设计与实现

    ,通过专用的GPS模块即可方便地获得车载GPS智能终端所在的全球定位坐标。其
    发表于 07-11 19:11

    最受工程师欢迎的车载设计方案——基于STM32+GPRS+GPS+Google Earth的车载导航定位系统

    基于Google Earth的软件。软件实现后的界面以及三维卫星地图如图所示。上位机软件界面:实现了googleearth的内嵌,后台挂了数据库,存储定位及温度等信息。附件内容包括:下位机源代码;上位机vc6.0源代码(程序运行
    发表于 08-28 15:32

    ADXL202和GPS怎么组合成车载导航系统

    随着定位导航技术的飞速发展和日臻成熟,车载导航系统在相关领域得到了越来越广泛的应用。车载
    发表于 10-25 07:17

    怎么实现基于DSP的车载GPS/DR组合导航系统硬件设计?

    本文介绍了以浮点DSPTMS320VC33为组合导航算法实现的核心处理器,利用TL16C554进行通信口扩展的GPS/DR组合导航系统的设计
    发表于 05-12 06:28

    请问怎样去设计车载GPS/DR组合导航系统

    车载GPS/DR组合导航系统是由哪些部分组成的?基于DSP的车载GPS/DR组合导航系统的设计
    发表于 05-12 06:56

    请问怎样去设计车载定位定向导航系统

    车载定位定向导航系统是由哪些部分组成的?怎样去设计车载定位定向导航系统
    发表于 05-13 06:46

    怎么实现GPS_GPRS定位定向导航系统车载终端应用设计?

    本文介绍了作者设计的一种车载监控系统(以下简称为车载系统),并重点介绍了车载系统
    发表于 05-18 06:57

    基于GPS的汽车导航系统的设计与实现

    设计并实现了一种以单片机为主要控制器件、基于GSP 模块的新型智能电动汽车底盘的导航系统GPS定位系统
    发表于 08-31 15:51 44次下载

    基于ARM的车载导航定位终端硬件设计

            本文研究与设计了一种新型车载导航定位系统车载
    发表于 09-05 08:35 54次下载

    GPS导航系统,GPS导航系统是什么意思

    GPS导航系统,GPS导航系统是什么意思 GPS百科名片GPS 是英文Global Posit
    发表于 03-10 11:48 9206次阅读

    ARM与GPRS导航系统终端设计与实现

    ARM /GPRS导航系统终端系统是基于ARM硬件平台,集GPRS/GPS/GIS于一体的
    发表于 09-13 14:20 25次下载
    ARM与<b class='flag-5'>GPRS</b>自<b class='flag-5'>导航系统</b><b class='flag-5'>终端</b>设计与<b class='flag-5'>实现</b>

    北斗+GPS双模定位导航模块

    北斗+GPS双模定位导航模块 北斗+GPS双模,是指导航终端既可以支持北斗卫星
    发表于 09-07 15:07 49次下载

    定位有漂移? 您选对车载导航GPS模块厂家了吗?

    问题就迎刃而解了,SKYLAB针对弱信号环境下GPS信号漂移、定位不精准等问题研发推出了采用GNSS/INS组合导航定位技术
    的头像 发表于 08-28 15:56 1.1w次阅读

    基于嵌入式Linux的GPS车载定位导航系统设计

    电子发烧友网站提供《基于嵌入式Linux的GPS车载定位导航系统设计.pdf》资料免费下载
    发表于 10-13 10:29 1次下载
    基于嵌入式Linux的<b class='flag-5'>GPS</b><b class='flag-5'>车载</b><b class='flag-5'>定位</b><b class='flag-5'>导航系统</b>设计