当前位置:首页 > 嵌入式 > 嵌入式硬件

无人驾驶系统在世界很多城市的轨道交通建设中得到广泛的运用。哥本哈根、新加坡、纽伦堡等已经投入使用运营。另外,还有如巴黎、马赛、柏林等城市正在考虑将传统的地铁改造成为全自动无人驾驶的轨道交通。这是由于无人驾驶车辆系统在现代交通中具有减少乘务人员、缩短行车间隔、高可靠性、自动转向控制等优点。

  本文主要研究无人驾驶车辆的自动行驶控制方法。

  1 系统设计

  本系统主要由监控中心和无人驾驶车辆终端构成,如图1所示,而无人驾驶车辆终端又包含GPS,GIS,GPRS等部分:

  (1)GPS(Global Positioning System,全球定位系统)是利用24颗人造卫星组成的卫星网,可以向地球不断发射定位及时间信号。地球上的任何一个GPS接收机,只要接收到4颗以上的卫星信号,经过计算处理后就可报出GPS接收机的位置(经度、纬度、高度)、时间和运动状态(速度、航向)。本系统采用GPS是为了使车辆在行驶过程中能够准确显示自己的位置。

(2)GIS(Geography Information System,地理信息系统)是在计算机硬件、软件系统支持下,对整个或部分地球表层空间的有关地理分布数据进行采集、存储、管理、运算、分析和可视化表达的信息处理和管理系统。在本系统中,他与GPS模块相结合,以地理空间数据为基础,在计算机系统中提供动态的电子地图,可以实时将交通信息通过GIS界面友好地显示给用户。

  (3)GPRS(General Packet Radio Service,通用分组无限业务)是在GSM((Global System)全球移动通信系统的网络基础上叠加的一个专业的高速数据通信网络,共用GSM频率(900/1 800 MHz)。共享GSM网络绝大部分基础设施。可以接人基于TCP/IP的外部网络,具备了Internet所能提供的一切功能。本系统采用GPRS作为车载终端与监控端无线通信桥梁,主要是考虑到他有资源利用率高、传输速率高、接人时间短、网络覆盖面广等几个优势。

  (4)射频识别读卡器。射频识别技术在交通系统一般用于高速公路站上不停车收费,车牌自动识别或者停车场定时收费等。这些系统是将标签放置在车载终端上,在地面上安装天线、射频模块和计算机,利用射频模块中读写器来进行一定范围内的射频识别。射频识别模块通过装有标的车辆接近传感器来判别是否有车辆通过。识别模块在一定区域内产生微波信号,当车辆进入该识别区域时,就能激活标签。标签将数据反射给识别模块,射频读写器完成数据读取。

  2 车辆终端硬件构成

  车辆终端由GPS接收模块、GPRS接收设备、主控制模强、读卡器模块、显示模块和输入操作模块构成,系统框架如图2所示。

(1)自主悬挂式独轨车体上装有嵌入式控制系统,主要用于对整个车辆的控制以及各个模块之间的调度。主控制模块芯片采用了飞利浦公司生产的LPC2000系列处理器,该系列产品是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-STMCPU的微控制器,并带有0/128/256kB嵌入的高速片内FLASH存储器。片内128位宽度的存储器接口和独特的加速结构使得32位代码规模降低超过30%,而性能的损失却很小。

  通过在该系列处理器芯片的基础上扩展一系列完整的通用外围器件,使系统硬件成本降到最低,并且根据设计需要再进行裁减,就能为本车载系统提供一个低功耗、低成本、高性能的方案。

  (2)该系统以GPRS无线传输方式与因特网保持连接,与轨道交通信息网站交换数据。本系统采用了BenQ公司生产的M22模块,他符合ETSIGSM phase 2+标准和 AT指令集,支持GSM语音数据传真短消息和GPRS数据传输。

  (3)显示模块主要是用来显示车辆行驶状态,包括地理信息位置,路径采集情况等。本系统采用TFT6758液晶显示模块,工作电压为3.3 V,内带白光LED背光灯。由于液晶模块内部包含了HD66781和HD66783液晶控制驱动,因此他可以直接使用8位、16位或者18位总线方式与控制器相连接。

  (4)输入模块功能是通过按钮查阅通过读卡器接收到终端的路径信息。

  (5)GPS模块用来对车辆进行定位。本系统采用M12定位模块,Motorola公司生产的导航设备,具有很低的功耗,支持RTCM(Radio Technical Commission forMaritime)格式的差分功能,采用NAEA0183格式输出。该接收器在汽车定位和调度系统中应用广泛。

  3 终端软件部分程序设计

  本系统由于使用ARM7做主要控制器,考虑到资源的利用,采用μC/OS-Ⅱ来作为操作系统。μC/OS-Ⅱ是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核。他用ANSI C语言编写,包含一小部分汇编代码,使之可以供不同架构的微处理器使用。μC/OS-Ⅱ可以管理64个任务,具有信号量、互斥信号量、事件标志组、消息邮箱、消息队列、任务管理、时间管理和内存块管理等功能。

  μC/OS-Ⅱ软件体系结构有3部分:

  (1)μC/OS-Ⅱ核心代码:包括10个C程序文件和1个头文件,主要实现系统调度、任务管理、内存管理、信号量、消息邮箱和消息队列等系统功能。此部分与处理器性能无关。

  (2)μC/OS-Ⅱ配置代码:包括两个头文件,用于裁减和配置μC/OS-Ⅱ。该部分与用户实际应用相关。

  (3)μC/OS-Ⅱ移植代码:包括1个汇编文件、1个C程序文件和1个头文件,这是移植μC/OS-Ⅱ所需要的代码,与处理器无关。

  在本系统中首先要进行系统移植,才能进行程序的调用。移植满足了以下要求:

  (1)处理器的C编译器能产生可重入型代码;

  (2)处理器支持中断,并且能产生定时中断(10~100 Hz);

  (3)用C语言可以开/关中断;

  (4)处理器能支持一定数量的数据存储硬件堆栈(可能是几kB);

  (5)处理器有将堆栈指针以及其他CPU寄存器的内容读出并保存到堆栈或者内存中去的指令。

  本系统软件程序主要分为3个部分:输入部分、控制部分和输出部分。下面分别进行介绍。

  输入设备主要包括键盘、射频识别读卡器,以及构成输入设备的接收系统:GPS/GIS接收器和GPRS模块等。在车辆的行驶过程中,射频识别模块负责正确接收路况信息,键盘负责等待用户接收车上用户指令,GPRS模块负责接收远程工作站的数据信息,该模块在启动后主要是负责与工作站取得联系,进行信息交流,并且不断更新系统内部分路径信息,方便车辆能够及时转向。GPS和GIS模块则主要负责使系统能够接收到车辆目前的准确位置。

  输出设备主要包括显示屏等,通过显示屏获取车辆所在位置和路况信息等。他的主要作用在于根据要求输出相应的高低电平来提供转向所需要的电压。实现原理是通过从标签获得数据信息使得系统产生高低电平,同时,系统必须将GPS模块和GPRS模块提供的数据通过人机界面显示在屏幕上使得用户能够实时地看到车辆的信息,包括前方路况、车辆位置等。

  控制部分是本系统的关键,流程图见图3。

  控制部分的流程是这样的:首先将操作系统下载到目标板,目标板初始化,并且设置各个模块的中断向量来保证各个模块启动后能够正确运行。中断优先级的排序是读卡器优先级最高,其次是GPRS,最后是GPS。同时,显示屏显示操作界面,用户可以输入指令使得汽车启动。当车辆启动后,各模块也随之运行,系统程序将转入查询状态,通过不断扫描UART端口判断是否有标签进入识别区域。若进入标签识别区域,读卡器就会接收到射频模块识别到的条码信号,判断信号正确后,系统转人中断子程序。在中断子程序中,系统会向GPIO端口提供相应的高低电平作为输出信号来实现转向。GPRS是随着车辆启动后就立即启动的,这是因为他必须不断更新监控中心提供的路径信息来保证车辆的正常行驶。当车辆停止时会发出电平信号,此时,系统转入等待状态,屏幕显示操作界面,等待用户进行下一步操作。

  4 结 语

  本方案经过测试仿真表明,自主转向悬挂式独轨车载在距离标签10 m内能够以915 MHz的频率通过射频模块识别到前方轨道信息,而且能以115.2 kB/s的波特率与GPRS连接,然后接入GPRS网络与远端网络监控站实时通信,进行数据交换。同时,系统能够作出判断,发出控制信号。根据测试,该系统稳定性高,实时性强,如果能应用到实际中,使用户和工作站能够了解车辆的工作状态,对减少交通事故有很大的意义。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

激光雷达(Light Detection and Ranging,简称LiDAR),是现代自动驾驶技术体系中的核心技术之一,其在无人驾驶汽车领域扮演着至关重要的“视觉”角色。激光雷达利用激光测距和测速原理,通过发射激光束...

关键字: 激光雷达驾驶 无人驾驶

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用
关闭
关闭