智能汽车车载导航系统终端的研究方案

发布时间:2015-02-5 阅读量:890 来源: 我爱方案网 作者:

【导读】 车载端的gps模块实时接收全球定位卫星的位置、时间等数据,一方面发送给车内的arm微型工控机,得到车辆的当前位置并且在电子地图上显示:另一方面,数据将通过gprs终端模块发送到远程监控中心服务器。

“好消息!2015年新年来临之际,我爱方案网准备了ST开发板、庆科WIFI模块开发套件以及智能硬件研发必备的精密样片,只需填写个人信息与开发计划即有机会获得。更多详情>>>>”

引言

面对庞大的汽车市场以及随着全国各省市高速公路路网的建设与完善,对交通管理信息化的要求越来越高,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总线检测汽车主要技术参数,为交通道路的智能管理以及汽车的安全驾驶提供了可靠保障。

相关文章

智能汽车CDMA/CAN的车辆故障远程监控系统的设计方案

基于UML在智能汽车嵌入式系统设计中的应用方案


嵌入式智能汽车数字仪表设计方案

相关资讯
中国AI产业突破封锁的韧性发展路径及未来展望

在全球科技博弈背景下,美国对华AI芯片出口限制政策持续升级。腾讯总裁刘炽平在2025年第一季度财报会上明确表示,腾讯已具备应对供应链风险的充足储备与技术创新能力,标志着中国AI产业正加速走向自主化发展道路。本文结合产业动态与政策趋势,剖析中国AI产业的战略转型与突破路径。

重塑全球供应链格局:ASM International战略布局应对贸易壁垒

在全球半导体产业链加速重构的背景下,荷兰半导体设备巨头ASM International(以下简称“ASM”)近期通过一系列战略调整引发行业关注。2025年5月15日,该公司宣布将通过转嫁关税成本、加速美国本土化生产及优化全球供应链,应对地缘政治风险与贸易壁垒。面对美国近期加征的“对等关税”政策(涵盖钢铁、汽车等商品,未来可能扩展至半导体领域),ASM展现出显著的供应链韧性:其亚利桑那州工厂即将投产,新加坡基地产能同步扩充三倍,形成“多区域制造网络”以分散风险。与此同时,中国市场成为其增长引擎——2025年中国区销售额或突破预期上限,占比达总营收的20%,凸显其在差异化竞争中的技术优势。这一系列举措不仅反映了半导体设备行业对关税政策的快速响应,更揭示了全球产业链从“效率优先”向“安全韧性”转型的深层逻辑。

国产芯片架构演进之路:从指令集适配到生态重构

在全球半导体产业长期被x86与ARM架构垄断的背景下,国产芯片厂商的生态自主化已成为关乎技术主权与产业安全的核心议题。北京君正集成电路股份有限公司作为中国嵌入式处理器领域的先行者,通过二十余年的技术迭代,探索出一条从指令集适配到生态重构的独特路径——早期依托MIPS架构实现技术积累,逐步向开源开放的RISC-V生态迁移,并创新性采用混合架构设计平衡技术过渡期的生态兼容性。这一转型不仅打破了国产芯片“被动跟随”的固有范式,更在智能安防、工业控制、AIoT等新兴领域实现了从“技术替代”到“生态定义”的跨越。据行业数据显示,其基于RISC-V内核的T系列芯片已占据计算芯片市场80%的份额,成为推动国产架构产业化落地的标杆。本文通过解析北京君正的架构演进逻辑,为国产半导体产业突破生态壁垒提供可复用的方法论。

性能飙升27%!高通骁龙7 Gen4如何改写中端芯片格局?

5月15日,高通技术公司正式推出第四代骁龙7移动平台(骁龙7 Gen 4),以台积电4nm制程打造,性能迎来全方位升级。该平台采用创新的“1+4+3”八核架构,CPU性能较前代提升27%,GPU渲染效率提升30%,并首次支持终端侧运行Stable Diffusion等生成式AI模型,NPU算力增幅达65%。在影像领域,其搭载的三重12bit ISP支持2亿像素拍摄与4K HDR视频录制,配合Wi-Fi 7与XPAN无缝连接技术,重新定义中高端设备的创作边界。荣耀与vivo宣布首发搭载该平台的机型,预计本月上市,标志着生成式AI技术向主流市场加速渗透。

破局高端芯片!小米自研玄戒O1即将发布,性能参数首曝光

5月15日晚间,小米集团CEO雷军通过个人微博账号正式宣布,由旗下半导体设计公司自主研发的玄戒O1手机SoC芯片已完成研发验证,计划于本月下旬面向全球发布。据雷军透露,该芯片将采用业界领先的4nm制程工艺,核心性能指标已接近国际旗舰水平。