基于ARM的智能公交车载终端的设计 - 图文

更新时间:2024-05-14 02:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目录

目录..................................................................... 1 摘 要.................................................................... 3 Abstract ................................................................. 4 1 绪论................................................................... 5

1.1 论文选题的意义 ................................................... 5 1.2智能公交系统在国内外的发展 ...................................... 5 1.3 智能公交系统中的智能车载终端简介 ................................. 7 1.5本论文的主要内容 ................................................ 7 2 智能公交系统(APTS)及其关键技术 ......................................... 8

2.1 APTS系统组成 ................................................... 8 2.2 GPS全球定位系统 ................................................. 8

2.2.1 GPS 全球定位系统的发展历史 ................................. 8 2.2.2 GPS系统的组成 ............................................ 8 2.2.3 GPS 定位的基本原理 ......................................... 9 2.3 GPRS 移动通信系统 ............................................... 11

2.3.1 GPRS 简介 ................................................. 11 2.3.2 GPRS 网络连接及数据传输 ................................... 11 2.3.3 透明传输模式和命令模式的转换 .............................. 12

3 智能公交车载终端设计 .................................................. 13

3.1 智能车载终端总体设计 ............................................ 13 3.2主要模块基本功能介绍 ........................................... 14 3.3主要芯片及模块选型 ............................................. 14

3.3.1 MCU芯片 .................................................. 14 3.3.2 GPS模块 .................................................. 15 3.3.3 GPRS模块 ................................................ 15 3.3.4 语音模块 .................................................. 15 3.3.5 液晶显示 .................................................. 16 3.4本章小结 ....................................................... 16 4 智能公交车载终端硬件设计 .............................................. 16

4.1电源模块设计 ................................................... 16 4.2 ARM微控制器模块 ............................................... 17

4.3 时钟及复位电路 .................................................. 17 4. .4 FLASH 存储器电路设计 ......................................... 17 4.5 SDRAM 存储器电路设计 ............................................ 18

4.5.1 SDRAM 模块功能介绍 ........................................ 18 4.5.2 HY57V281620 的实际连接 ................................... 19 4.6 调试与测试接口 .................................................. 20 4.7 GPS模块电路设计 ............................................... 20 4.8 GPRS模块电路设计 ............................................. 21 4.9 语音及功放电路设计 ............................................. 21 4.10 硬件电路设计中需要注意的问题 .................................. 21 4.11 本章小结 ...................................................... 22 5 智能车载终端系统的软件设计 ............................................ 22

5.1 嵌入式操作系统的选型 ............................................ 22 5.2 交叉编译环境的建立过程 .......................................... 23 5.3 配置编译内核 .................................................... 23

5.3.1 内核源码的下载及安装 ...................................... 24 5.3.2 配置内核 .................................................. 24 5.3.3 编译内核 .................................................. 24 5.4 嵌入式引导程序移植 .............................................. 24 5.5 应用软件的设计 .................................................. 25

5.5.1 Linux 下的串口编程 ........................................ 25 5.5.2 Linux 下的网络编程 ........................................ 26 5.5.3 Linux 下的多线程编程 ..................................... 26 5.5.4 应用程序介绍 .............................................. 27

6 总结.................................................................. 28 参考文献 ................................................................ 29

摘 要

近年来,随着我国经济的快速发展,我国城市人口规模不断扩大,汽车保有量也逐步增长。由此引发的城市交通问题越来越突出,如交通拥挤、交通堵塞、噪音污染、废气污染等,严重影响城市的可持续发展和居民的正常生活。大力发展城市公共交通势在必行。智能公交系统是现代控制技术、定位技术和无线通信技术等多种技术的有机结合,它的建设可以改善公交公司的企业管理方式,提高公交系统的运营效率和服务水平,是旨在解决城市交通问题的一项根本性方案。

GPS是由美国建立的新一代卫星导航与定位系统,具有全球性、全天候、陆

海空全能等特点,特别适用于交通运输行业,配合中国移动稳定可靠、覆盖面广、 数据传输速度极快的GPRS网络作为信息传输的媒介,以GPS、GPRS为主要技 术的智能公交系统较以往利用射频、数传电台技术方式建造的公交系统具有更加 稳定、实时性更高等特点,是当前智能公交系统设计的理想方案。

本论文在研究国内外智能公交现状和现有GPS、GPRS 等技术的基础上,提出了基于ARM 的公交智能车载终端的设计与实现方法,包括终端总体设计方案、关键技术的研究、软件的设计、产品实现等内容。文章在总体设计中提出了终端的功能要求,并针对功能要求提出了相应的设计方案;在硬件设计中给出了具体的硬件设计原理图,并就硬件选型、原理图设计中的关键问题进行了探讨;在软件设计中给出了终端主要软件设计的程序流程图,并对程序设计思路进行了细致的讲解;最后对个模块进行了调试和功能测试。 关键词:车载终端,智能报站,ARM,GPS,GPRS

Abstract

In recent years, with the rapid economic development of our country, our country city population scale unceasingly expands, the car has also gradually increase. Caused by the urban traffic problem is becoming more and more serious, such as traffic congestion, traffic jams, noise pollution, waste gas pollution and so on, the serious influence the sustainable development of the city and people's normal life. To develop urban public transportation is imperative. Intelligent bus system is the modern control technology, positioning technology and wireless communication technology and so on the many kinds of organic combination of technology, it can improve the construction of the bus company management, improve operation efficiency of the public transport system and service level, is designed to solve the traffic problems of city a radical plan.

GPS is the United States to set up by a new generation of satellite navigation and positioning system, has the global, all-weather, land air naval all-around and other characteristics, especially suitable for traffic transportation industry, with China mobile is stable and reliable, coverage, data transmission is extremely fast speed of GPRS networks as of information transmission medium to GPS and GPRS as the main skills the intelligent bus system operation than ever before, digital radio technology using rf way of the public transport system has built more stable, real-time higher, and other features, is the current smart bus system design ideal scheme.

This paper studies the status quo and the existing domestic and foreign intelligence bus GPS, GPRS technology, and on the basis of the bus is proposed based on ARM intelligent car terminal design and implementation of the methods, including terminal overall design scheme, key technology research, software design, the product realization, etc. Based on the general design was put forward by the functional requirement of the terminal, and in the light of the function requirement put forward the corresponding design project; In the hardware design give a specific hardware design principle diagram, and the hardware selection, design of the key principle diagram discussed; In software design gives the main terminal the design of software program flow chart, and the program design ideas of the detail explains. Finally a module to the commissioning and function testing.

Key words: the car terminal, intelligent the stops, ARM, GPS and GPRS

1 绪论

1.1 论文选题的意义

随着国民经济的快速发展,我国城镇化步伐不断加快,来自农村的大学生和其他务工人员大批涌入城市,造成城市人口大幅度增长,同时由于人民生活水平的不断提高,城市的汽车保有量也在急剧上升,交通需求迅速扩大,而城市交通基础设施的建设却相对滞后,从而使城市“乘车难”、“行车难”的现象日益严重,交通拥挤、交通阻塞频发,噪音污染、废气污染加剧,严重影响城市公交的可持续发展和居民的正常生活。解决城市交通拥挤和阻塞问题已成为我国城市交通面临的一项迫切的任务。

城市交通拥挤问题由来已久,早在19 世纪中叶英国学者J. M. Thomson 就把交通拥挤、行车速度归结为城市七个发展难题之首,并成为不同历史时期社会各界广泛关注的社会问题之一。与此同时,由于受地理空间、资金投入等因素的制约,无限制的扩展道路空间几乎没有可能,致使城市交通系统的建设、运营与管理不得不从粗放型向效益型转变[2]。为此智能公交系统(Advanced Public TransitSystem, APTS)近年来被许多学者提了出来,着重从如何提高城市道路系统营运效率入手,来缓解城市交通压力,有效的减少城市交通拥挤、交通阻塞现象。

智能公交系统运用系统工程理论,将信息控制、GPS 卫星定位、GIS、多媒体、网络通信等技术集成,应用于整个公共交通领域,实现了公交车辆的智能调度,方便了公车车辆的运营管理,提高了公交服务水平。使乘坐公交车出行变的更加快捷、方便和舒适。从而使一部分人舍弃自驾车或打出租车出行,改乘公交车,进一步减少交通堵塞现象。另外大力发展智能公交系统,也可以通过提高交通效率而节省大量的燃料和时间,减少交通事故的发生,能够创造巨大的经济和社会效益。

1.2智能公交系统在国内外的发展

在美国,城市公共交通管理局已经启动了智能公共交通系统项目。它主要研究基于动态公共交通信息的实时调度理论和实时信息发布论,以及使用先进的电子、通讯技术提高公交效率和服务水平的实施技术。具体包括车队管理、出行者信息、电子收费和交通需求管理等几方面的研究。其中车队管理主要研究通信系

统、地理信息系统、自动车辆定位系统、自动乘客计数、公交运营软件和交通信号优先。出行者信息主要研究出行前、在途信息服务系统和多种出行方式接驳信息服务系统。

在日本,东京交通局开发了城市公共交通综合运输控制系统,旨在改善由于机动车数量的增长和严重交通拥挤,造成的公交服务质量差、乘客数量下降等问题。该系统包括累积运营数据、乘客计数、监视和控制公共汽车运营和乘客服务等功能,其中乘客服务功能中包括进站汽车指示、信息查询和公共交通与铁路接驳信息提示。公共交通综合管理系统硬件包括公交主控中心、区域中心以及路边、车库和车载设备等。 欧洲的许多国家通过实施公交优先政策,设立公交专用道,为公交车提供优先通行信号,布设智能公交监控与调度系统等措施,提高公交车辆运行速度和公交服务质量以吸引公众乘坐公交车出行, 从而有效地缓解了城市交通压力,解决了城市交通问题,并取得了明显的社会经济效益。

与欧美、日本等国家相比,我国的公共交通事业相对落后。数据显示,2009 年底,我国私人小汽车的总量达到4243 万辆,私人汽车保有量年均增长22.7%,按照目前的速度,到2015 年,小汽车保有量将达到约两亿辆。但我国城市居民的平均公交分担率却不足20%,北京中心区公交分担率也只有36%,而城市公交分担率在东京、伦敦、纽约等大城市为60%以上。欧美一些发达国家经济发展水平高,而人们却大部分选择乘坐公交出行,说明这些国家的运输组织结构节俭、快速并且环保;而我国的经济发展水平低,人们出行却不是乘坐公交为主,为了方便起见,人们更多的选择乘坐载人少、耗油高的机动车出行。公共交通的分担率偏低,说明我国城市交通及管理还停留在粗放型发展状态,公交智能化水平还比较低。近几年,随着科学技术的发展和社会的进步,我国开展智能交通系统研究已经具备了技术基础和

颇具潜力的市场需求,我国政府也积极推进优先发展城市公共交通政策,对于先进技术的引入给予大力支持。这些都为智能公交系统在我国的实施提供了有利条件。我国杭州、上海、北京、大连等几座大城市已在部分公交线路上建成了公交车辆跟踪调度系统,实现了对车辆的实时跟踪和定位、公交车与调度室的双向通讯、电子站牌上实时显示车辆位置信息等功能。但是由于缺乏对许多基础理论的深入研究,这些系统虽然使得中国迈入了公交智能化时代,却一般都没有将动态交通状态信息与车辆定位信息有效融合,而且某些系统的开发和研制又缺乏交通领域专家的直接参与,致使目前的智能公交系统还存在一定的缺陷。

1.3 智能公交系统中的智能车载终端简介

智能车载终端是一款专门为公交车辆设计,运行在公交车辆上的嵌入式产品,在智能公交系统中起着举足轻重的作用。它融合了GPS 定位、GPRS、信息存储、MP3 语音播放及汽车黑匣等技术,能用于对公交车辆的现代化管理,包括对车辆的监控调度、正点考核、GPS 导航电文等信息的采集、分析、处理、储存等[8]。随着科学技术的发展,公交车载终端也在进一步升级,它的性能和服务质量都有了极大的提高,功能也日益完善。 目前,智能车载终端主要有以下几项功能: 1)卫星定位功能

车载终端接收卫星的导航电文,经过解析后可得到用户当前的位置、速度和时间等定位信息,通过比对当前位置和车载终端存储的站点位置,可以实现自动报站功能,同时把当前位置信息和进出站等信息通过无线通信的方式发送到调度中心服务器,然后在电子地图上实时显示。

2)车辆调度管理功能

通过对车载终端位置的分析,调度中心可以随时得知车辆当前的运行位置,能够判断车辆是否到达终点站,从而实现对公交车辆的调度与排班,当车辆前方行驶路段出现堵车或不能通过时,调度中心可以及时通知车辆绕行其他路线,这样可以减少公交拥堵和提高公交运营效率。

3)按键报警功能

当公交车辆突发交通事故或遇到抢劫等紧急情况时,驾驶员可以通过按键报警,通知调度中心发生了紧急情况,调度中心可以根据报警车辆上传的位置信息,及时派遣人员前往处理。

1.5本论文的主要内容

本论文提出了基于ARM的智能公交车载终端的总体设计方案,重点介绍了车载终端的软硬件设计及自动报站、短信报警、实时监控等功能的实现。

完成的主要工作包括:智能公交系统总体设计、智能公交终端硬件电路设计调试、软件调试及系统总体调试分析。 本论文主要内容包括:

第1章:绪论。综述智能公交系统基本概念、相关背景及国内外发展现状。介绍了智能公交车载终端概念及主要功能,提出了本文的主要工作内容及课题开展的意义。

第2章:智能公交系统(APTS)及其关键技术。介绍了智能公交系统组成结构,并对GPS、GPRS等系统相关的关键技术进行了介绍。

第3章:智能公交车载终端总体设计。根据市场需求,提出了智能公交系统及车载终端的总体设计方案,重点对车载终端的总体设计进行了介绍,给出了车载终端设计中重要芯片的选型。

第4章:智能公交车载终端硬件设计。详细介绍了智能公交车载终端硬件设计,给出了整个终端系统的硬件设计电路。

第5章:智能公交车载终端软件设计。详细介绍了智能公交车载终端的软件设计,给出了软件设计流程图,并就系统关键部分的软件设计进行了重点的讲述。

总结和展望中,对本课题取得的成果以及局限性进行了分析和总结,对下一 步的工作和项目未来的发展进行了展望。

2 智能公交系统(APTS)及其关键技术

2.1 APTS系统组成

智能公交系统主要由3个部分构成,即无线通讯部分、监控中心部分和车载 终端部分。无线通讯系统主要是利用通信运营商提供的数据和短信息服务,这里

的通讯方式就是指无线通讯系统的通讯手段;监控中心由GPS服务器、数据库服务器、CTI呼叫中心系统、监控工作站、管理工作站路由器和防火墙组成;车载终端主要由GPS接收模块、GPRS通讯模块、车辆控制模块、屏幕等部分组成,主要有车辆定位、与监控中心进行双向通讯、车辆控制等功能。监控中心在接收到车载终端传回的GPS位置数据后可以确定监控车辆的位置信息、历史运行轨迹进而分析其运行是否正常,是否偏离预定路线,速度是否异常。在出现异常情况时,监控中心可以通过发布导航指令来实现实时的调度。

2.2 GPS全球定位系统

2.2.1 GPS 全球定位系统的发展历史

1973 年,美国国防部组织海陆空三军,共同研究建立新一代卫星导航系统: “Navigation Satellite Timing and Ranging/Global Positioning System”,即“授时与测距导航系统”,通常简称为“全球定位系统”(GPS)。它是新一代精密卫星定位系统,是现代科学技术迅速发展的结晶。GPS 是一种可以定时和测距的空间交会定点导航系统,它可以向全球用户提供连续、实时、高精度的三维位置、三维速度和时间信息,满足军事部门和民用部门的需要。

GPS 整个发展计划分为三个阶段实施。第一阶段为原理方案可行性验证阶段,从1978 年到1979 年,共发射了4 颗试验卫星,建立了地面跟踪网,研制地面GPS 接收机,对系统的硬件和软件进行了试验,试验结果令人满意。第二阶段为系统的研制与试验阶段.从 1979 年到1984 年,又陆续发射了7 颗试验卫星。第一阶段和第二阶段共发射11 颗试验卫星,这些试验卫星称为第一代卫星:与此同时,研制了各种导航型接收机和测地型接收机,试验表明,GPS 的定位精度大大超过设计标准,其中粗码(C/A 码)的定位精度远远超过设计指标,由此证明,GPS 计划是成功的。第三阶段为最后的工程发展与完成阶段。1989 年的2 月4 日,发射了GPS 第一颗工作卫星,到1994 年3 月10 日共研制发射了28 颗工作卫星。这些工作卫星称为BlockII 和BlockIIA 卫星,与此同时,不仅研制了高精度导航型接收机,还研制了能对卫星载被信号进行相位测量的定位精度极高的接收机和采用相位差分的GPS 载体姿态测量接收机,满足了精密导航与制导等一系列军事目的之要求。

2.2.2 GPS系统的组成

GPS 系统主要由三大部分组成,即空间星座部分、地面监控部分和用户设备部分。全球定

位系统的空间卫星星座见图 2.1,由24(3 颗备用卫星)颗卫星组成。卫星分布在6 个轨道面内,每个轨道上分布4 颗卫星。卫星轨道面相对地球赤道面的倾角约为55°,各轨道平面升交点的赤经相差60°在相邻轨道上,卫星的升交相差30°轨道平均高度约为20220km,卫星运行周期为11 小时58 分。因此,在同一

观测站上,每天出现的卫星分布图形相同,只是每天提前4 分钟。每颗卫星每天约5 个小时在地平线以上,同时位于地平线以上的卫星数目,随时间和地点而异,最少为4 颗,最多可达11 颗。

图 2.1 全球定位系统的空间卫星星座

2.2.3 GPS 定位的基本原理

GPS 定位处理中,卫星轨道通常是已知的。因此,为了确定地面观测站位置,GPS 卫星的瞬间位置也应换算到统—的地球坐标系统中。在GPS 试验阶段,卫星的瞬间位置计算采用了1972 年世界大地坐标系统(world geodetic system,1972,WGS72),从1987 年1 月10 日开始采用改进的大地坐标系统WGS—84 坐标系。世界大地坐标系统(WGS)是属于协议地球坐标系(CTS)。WGS—84 坐标系的原点为地球质心M;Z 轴指向BIHl984.0 定义的协议地极(conventional terestri alpole,CTP);X 轴指向BIH1984.0 定义的零子午面与CTP 相交的赤道交点,Y 铀垂直于XMZ平面,且与Z、X 轴构成右手坐标系。

测距码即伪随机噪声码(Pseudo-random Noise Code)是一种可以预先确定并可重复产生和复制,具有白噪声随机统计待性的二进制码序列,简称为伪随机码,或伪噪声码,或PRN 码。40 年代末和50 年代初,仙农(G.E.Shannon)等人建立了“噪声通信”理论;证明具有白噪声统计特性的信号对充分利用信道的容量与信号的功率,抗多径干扰和测定距离等具有明显的优点。到60 年代中期,噪声通信理论获得实际应用和发展。利用伪随机码信号可以实现低信噪比接收,可实现码分多址通信.具有良好的保密性。现在,伪随机码已广泛用于通信、无线电测距等领域。

GPS 卫星的基带信号是指包含导航信息的导航电文。导航电文包括卫星星历,卫星工作状态,卫星历书,时间系统,星钟改正参数,轨道摄动改正参数,大气折射改正参数,遥测码以及由C/A 确定P 码的交换码等。导航电文是二进制编码文件,按照规定格式组成数据帧,一帧导航电文由遥测字,转换字和数据块三部分组成,是用户利用GPS 进行导航定位的数据基础。导航电文的每个子帧含有10 个字,第一个字为遥测字。作为捕获导航电文的前导,

其中所含的同步信号,为各子帧提供了一个同步的起点,使用户便于解释电文数据。转换字的主要功能是向用户提供用于捕获P码的Z 计数。导航电文的数据块分三部分。数据块I 包含的内容有卫星时间计数器,调制码标识,卫星测距精度,导航数据状态,电离层延迟改正参数,时钟数据龄期,卫星时钟参数对应的参考时刻,卫星钟改正参数。数据块II 是导航电文中的核心部分,一般称为卫星星历,包括的主要参数分为开普勒六参数,轨道摄动九参数,时间两参数。第三数据块提供全部GPS 卫星的历书数据。当用户GPS 接收机捕获到某颗卫星后,利用数据块I II 所提供的其它卫星的概略星历,时钟改正数,码分地址和卫星工作状态的数据,用户可以利用码分地址较快的捕获其他卫星信号并选择最合适的卫星,这对于选择适当的卫星构成最佳的观测星几何图形,提高导航定位精度是非常重要的。GPS 卫星导航定位系统是由24 颗卫星组成。在世界各地用户可同时看到4~11颗卫星。这些卫星导航电文通过两个载波频率F1=1575.42MhZ,F2=1227.6Mhz 向地面发射。如何区分这24 颗卫星信号呢?GPS 定位系统采用了码分多址技术。即给不同的卫星指配不同结构的伪随机码,当接收某颗卫星信号时,用户只要在机内产生与该卫星的伪码结构相同的本地码,并让本地码移位直到与卫星伪码相关函数为“1”。此时对于其他卫星,由于伪码结构不同,其互相关函数值很小,这样就可以达到捕获跟踪GPS 卫星信号的目的。GPS 导航定位系统采用了两种伪随机码。一种是用于分址、搜捕卫星信号、粗测距,具有一定抗干扰能力的明码,并提供民用,称为C/A码。另一种是用于分址、精密测距,具有较强的抗干扰能力的军用密码,称为P 码[18]。

GPS 系统使用单向测距方法来测定某颗卫星与用户的相对距离。它使用两台时钟,一台在用户接收设备上,一台在卫星上。计算卫星与用户之间的距离,实质上是通过比较GPS 接收机中恢复的卫星钟和用户本身的时钟之间的差,即测量卫星钟传播到用户所花的时间-传播时延得以实现。如果两个时间精确同步,即两时钟信号同频同相,那么,利用距离等于时间乘以光速的原理,得到卫星和用户间的真实距离R = C ′t。但是卫星时钟和用户时钟往往不能精确同步,当两者存在钟差Dt时,这样测得的距离不是用户和卫星间的真实距离,而是伪距离(Pseudo range),简称PR,表示为PR = R +C ′ Dt,Dt取值是有正负的,用户钟慢于卫星钟时取正,反之取负。

GPS 的基本定位原理是:卫星不间断地发送自身的星历参数和时间信息,用户收到这些信息后,经过计算求出接收机的三维位置、方向以及运动速度和时间信息。如图 2.2 所示,每一颗卫星连续不断地向GPS接收机发送可跟踪的唯一编码序列,GPS 接收机可根据编码辨认相关的卫星,进而计算出接收机的确切位置和准确时间。设有四颗卫星1,2,3,4,坐标为( i x , i y , i z )(i=1,2,3,4),用户坐标为( u x , u y , u z ) , i R 为伪距离,即接收机到卫星的距离i i R = C ′ t ( C -光速, i t -信号从一颗卫星到达接收机所需的时间(i=1,2,3,4);Dt 是用户时钟偏差。

图 2.2 GPS 定位原理图

2.3 GPRS 移动通信系统

2.3.1 GPRS 简介

GPRS 是通用分组无线服务技术(General Packet Radio Service)的简称,经常被描述成“2.5G”,也就是说这项技术位于第二代和第三代移动通讯技术之间。它是GSM 移动电话用户可用的一种移动数据业务。与GSM 的数据业务相比,有以下优点: 1)通信费用低廉。

GPRS 和以往连续在频道传输的方式不同,是以封包(Packet)的方式来传输的,因此使用者所负担的费用是以其传输资料单位计算,并非使用其整个频道,理论上较为便宜。 2)传输速率高,连接容易。

GPRS 通过利用GSM 网络中未使用的TDMA 信道,传输速率得到了提升,可至56 甚至114Kbps。GSM 网络传输数据采用的是电路交换的方式,而GPRS 通过增加了相应的功能实体和改造了现有的部分基站系统,实现了数据的分组交换,得到了较高的用户数据速率,相对来说投入并不大。而且,因为不再需要现行无线应用所需要的中介转换器,所以连接及传输都会更方便容易。 3)资源利用率高。

GPRS 采用分组交换的通信方式,在通信中,数据被分成一定长度的带有分组头的数据包,分组头里面含有地址信息,指明该包发往的目的地址。当数据包到达时,根据此地址信息,临时寻找可用的信道资源发送数据,不必预先分配信道。在这种传送方式中,数据的发送和接收方同信道不占用固定的信道,所有的用户共享使用信道资源,使信道资源的利用率得到了提高。

2.3.2 GPRS 网络连接及数据传输

GPRS 模块的网络连接、数据传输等所有操作都是通过AT 命令来实现的。 1)AT 命令介绍

AT 即Attention,AT 命令集是从终端设备或数据终端设备向终端适配器或数据电路终端设备发送的。通过发送AT 指令来控制移动台的功能,与GPRS 网络业务进行交互。用户可以通过AT 指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。 2)连接网络与数据传输

GPRS 模块的网络连接通过几条简单的AT 命令即可实现,耗时不过半分钟左右。GPRS 模块有两种传输模式,分别为透明传输模式和命令模式。透明传输模式为纯数据传输模式,即使发送AT 命令,也会被当成数据发送出去。命令模式则只接收AT 命令,若非AT 命令,模块自动返回错误信息。由于系统主要用来传输数据,所以联网成功后一般选择为透明传输模式。

连接步骤如下:

1> 设置模块的返回值即为不带命令的返回值 发送:ATE0 回车

成功返回:回车OK 回车

失败返回:回车ERROR 回车 2> 设置透明传输模式

发送:AT+CIPMODE=1 回车 成功返回:回车OK 回车 失败返回:回车ERROR 回车 3> 激活PDP

发送:AT+CGATT=1 回车 成功返回:回车OK 回车 失败返回:回车ERROR 回车 4> 设置GPRS 连接模式

发送:AT+CIPCSGP=1,\回车 成功返回:回车OK 回车 失败返回:回车ERROR 回车 5> GPRS拨号连接

发送:AT+CIPSTART=\回车(其中IP 地址为公网IP) 命令正确且成功返回:回车OK 回车回车CONNECT 回车 命令不正确返回:回车ERROR 回车

失败则返回:回车OK 回车(延迟)回车STATE: 回车(延迟)回车CONNECT FAIL 回车

其中可以取值如下: IP INITIAL IP START IP CONFIG IP IND

IP GPRSACT IP STATUS

TCP/UDP CONNECTING IP CLOSE

若命令返回正确,则连接网络成功,GPRS 模块进入透明传输模式,可以进行数据传输了。

2.3.3 透明传输模式和命令模式的转换

GPRS 模块中,打电话和读GPRS 信号强度的操作需要发送AT 命令,是在命令模式下进行的,所以在数据传输过程中,当需要打电话或读信号强度时,需要使GPRS 模块从透明传输模式转变为命令模式。下面以打电话为例,介绍一下发送命令步骤: 1)退出透明传输模式 发送:+++

返回:回车OK 回车 2)拨打电话

发送:ATD 电话号码;回车 拨打成功返回:回车OK 回车

对方挂断返回:回车NO CARRIER 回车 对方无人接听返回:回车NO ANSWER 回车 对方占线返回:回车BUSY 回车

没有拨号音返回:回车NO DIALTONE 回车 3)通话完毕后返回透明传输模式。 发送:ATO 回车

成功返回:回车CONNECT 回车 失败返回:回车NO CARRIER 回车

3 智能公交车载终端设计

由上文可知,系统设计工作主要包括两大部分:(1)智能车载终端设计(2)

数据中心管理软件设计。由于数据中心管理软件设计属上层应用软件设计,并且 设计过程与智能车载终端设计完全分离,本文以下部分将只重点对智能车载终端设计与开发进行论述。设计与开发进行论述。

3.1 智能车载终端总体设计

如上文所述,智能车载终端是一款以ARM处理器为核心,利用GPS、GPRS 等先进技术,集车辆实时监控、正点考核、紧急事件报警等功能于一身的专为公 交车辆设计的嵌入式智能终端产品。它是整个智能公交系统的数据来源,也是车 载功能的执行者,因此它是整个系统是的重要组成部分。

车载终端主要实现的功能包括:到站自动播报到站提示音,出站自动播报出

站提示音;定时向数据中心发送车辆位置信息,实现中心对车辆的监控;能够任意设置站点为考核点,对车辆运行正点情况进行考核;液晶屏幕实时显示时间、车辆运行速度、当前停靠站点等信息;按键控制特殊语音播报、背景音乐播放;按键控制紧急情况报警短消息发送;驱动车载LED屏,实现站点名称、广告语的显示。

根据功能要求,我们在设计中将终端分解为如下几个模块: (1)ARM中央处理器模块 (2)GPS定位模块

(3)GPRS无线通信模块 (4)语音及功放模块 (5)LCD液晶显示模块 (6)键盘控制模块 (7)电源模块

(8)串口及其它外围电路模块. 终端系统结构框图如图3.1所示

电源模块 LCE显示 ARM处理器 GPS 模块

其他外围电路

图3.1 智能车载终端结构框图

3.2主要模块基本功能介绍

整个智能车载终端分为若干功能模块,每个模块除完成自身功能外,还配合其它模块共同工作,实现车载终端整体功能。

(1)ARM中央处理器模块:作为车辆终端核心控制模块,完成GPS数据的

提取解析,经纬度数据匹配,GPRS无线通讯、语音播放控制等功能。高性能高 可靠性的ARM处理器选取是系统稳定运行的关键。

(2)GPS定位模块:通过不断的接收卫星传来的导航电文,为系统提供经纬度、时间、速度等信息。

(3)GPRS无线通信模块:系统的数据传输模块,将车辆定位信息等通过GPRS网络发送至车辆调度中心,实现实时监控等功能。

(4)语音及功放模块:提供高质量、高清晰的语音及音乐播放功能。

(5)LCD液晶显示模块:实时显示当前时间、车辆当前所在站点、车辆当前 运行速度等信息。

(6)键盘控制模块:为使用者提供简洁方便的设备操作方式。

(7)电源模块:为系统多个功能模块提供适当的工作电压,保证各功能模块

的稳定工作,本终端中需要提供的电压分别有1.8V、3.3V、4.2V、5V、12V。

3.3主要芯片及模块选型

3.3.1 MCU芯片

LPC2124是PHILIPS公司生产的单片32位ARM微控制器,是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI.S CPU,并带有256KB的嵌入的高速FLASH存储器。LPC2124具有非常小的64脚封装、极低的功耗、多个32位定时器、4路10位ADC、PWM输出、46个GPIo以及多达9个外部中断使它们特别适用于工业控制、医疗系统、访问控制和电子收款机(PoS)。由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器、嵌入式软件调制解调器以及其它各种类型的应用。 LPC2124特性如下:

(1)16/32位ARM7TDMI.S核,超小LQFP64封装; (2)16 kB片内SRAM;

(3)256 kB片内F1ash程序存储器,128位宽度接口/加速器可实现高达60 MHZ工作频率:

(4)可加密。全球首个实现可加密的ARM微控制器;

(5)通过片内boot装载程序实现在系统编程(IsP)和在应用编程(IAP); (6)512字节行编程时间为1ms。单扇区或整片擦除时间为400ms;

(7)Embedded ICE可实现断点和观察点。当使用片内Real Monitor软件对 前台任务进行调试时,中断服务程序可继续运行;

(8)嵌入式跟踪宏单元(ETM)支持对执行代码无干扰的高速实时跟踪;

LPC2124具有的1 6K静态RAM,可以用作代码和数据的存储,支持8位、

16位和32为访问。LPC2124集成的一个256K的FLASH存储器,可以用作代码和数据的存储。对FLASH存储器的编程可以通过几种方法来实现:(1)通过JTAG接口;(2)通过ISP和URATO;(3)通过在线应用编程(IAP)。

3.3.2 GPS模块

系统GPS模块采用HoLux的GR87模块。HOLUX GR87 Sirf3代GPS模块采用SiRF第三代高灵敏度、低耗电量芯片StarIII,内建ARM7TDMI CPU可符合模块需求,具备快速定位及追踪20颗卫星的能力,内置标准陶瓷GPS天线模块,并预留外接口。体积超小,仅25×25×2mm。芯片内建200000个卫星追踪运算器,大幅提高搜寻及运算卫星讯号能力。内建wASS/EGNoS解调器。低耗电量,具备有省电模式(Trickle.Power)功能,以及在设定的时间才启动的定时定位(Push.to.Fix)功能。支持NMEAOl 83.22版本规格输出。该模块的应用范围主要包括:车用导航、航海导航、舰队管理、基地服务、自动驾驶、个人导航、旅游设备、轨迹设备、系统及绘图应用程序。

3.3.3 GPRS模块

系统GPRS模块选用SIMCOM有限公司提供的SIM300C模块。SIM300C是小体积即插即用模组中完善的三频/四频GSM/GPRS解决方案。使用工业标准界面,使得具备GSM/GPRS900/1800/1900MHz功能的SIM300C以小尺寸和低功耗实现语音、SMS、数据和传真信息的高速传输。SIM300C的优良性能让它应用于许多方面,例如WLL、M2M、手持设备等。SIM300C外形尺寸为40×33×2.85mm,支持用户定制的MMI和键盘/LCD,内嵌强大的TCP/IP协议栈,具有标准的AT命令接口,能够以小尺寸和低功耗实现语音、短信和GPRS数据传输等业务。模块通过串口进行数据的通信,通信速率最快可以达到115200b/s,模块与控制器间通信协议是AT命令集,其中大部分是符合协议“AT command set for GSM Mobile Equipment(ME)(GSM 07.07 version 6.4.0 Release 1997)’’的,也有一些是SIMCOM自己定义的AT命令。

3.3.4 语音模块

为了保证良好的音质,本系统采用wTM.SD高音质MP3模块,为终端提供语音及音乐播放功能。WTM.SD模块是一款可重复擦写语音内容的大容量存储类型的语音模块,外挂体积小巧的最大容量为1GB的Micro SD卡存储器,支持加载wAv格式语音文件和MP3格式语音文件。WTM.SD模块采用DIPl6直插形式封装,有MP3控制模式,按键一对一控制模式,按键组合控制模式,并口控制模式以及二线串口控制模式等控制模式。 WTM—SD模块的主要应用领域包括汽车电子(防盗报警器、倒车雷达、GPS

导航仪、电子狗、中控锁)、智能家居系统、家庭防盗报警器、医疗器械人声提示、音乐播

放、家电(电磁炉、电饭煲、微波炉)、娱乐设备(游戏机、游乐机)、学习模型(早教机、儿童有声读物)、智能交通设备(收费站、停车场)、通信设备

(电话交换机、电话机)、工业控制领域(电梯、工业设备)、玩具等。

3.3.5 液晶显示

系统采用金鹏电子C系列液晶模块OCMJ2木8C。该C系列中文模块可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能。提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口。所有的功能包括显示RAM、字型产生器,都包含在一个芯片里面,只要一个最小的微处理系统,就可以方便操作模块。内置2M位中文字型ROM(CGROM)总共提供8192个中文字型(16×16点阵),16K位半宽字型ROM(HCGROM)总共提供

126个符号字型(1 6×8点阵),64×16位字型产生RAM(CGRAM),另外绘图显

示画面提供一个64×256点的绘图区域(GDRAM),可以和文字画面混和显示。提供多功能指令:画面清除(Display clear)、光标归位(Return home)、显示打开/关闭(Display on/off)、光标显示/隐藏(Cursor on/off)、显示字符闪烁(Display

character blink)、光标移位(Cursor shift)、显示移位(Display shift)、垂直画面卷动(Verticalline scroll)、反白显示(By-line reverse display)、待命模式(standby mode)。

3.4本章小结

本章根据系统设计需求,提出了整个智能公交系统及车载终端的总体设计方

案。着重介绍了智能立法终端的总体设计,给出了终端系统结构框图,并对各模块功能及重要芯片的选型进行了介绍。

4 智能公交车载终端硬件设计

由上章可知,智能车载终端的设计由电源模块、ARM中央处理器模块、GPS 定位模块、GPRS无线通信模块、语音及功放模块、LCD液晶显示模块、键盘控

制模块、及其它外围电路模块部分组成。在本章中,将对各模块硬件电路设计及功能实现进行详细的介绍,并对硬件电路设计中需要注意的问题进行讨论。

4.1电源模块设计

稳定可靠的电源是整个系统正常工作的保证,电源的提供必须考虑到硬件 系统各个模块的供电标准。本系统中车载终端需要提供稳定电源的模块有LPC2124处理器、GPRS模块、GPS模块以及LCD模块等。电源的设计应当同时考虑功率、电平及抗干扰等问题。对系统各芯片及模块的供电要求进行分析,可以得出系统电源需要提供包括12V、5V、3V、1.8V五个电压。12V为功放电路工作电压,3.3V、1.8V分别为ARM芯片I/O口及内核电压。

电源模块是车载终端中的供电部件,设计时考虑主要作为车载应用,可直

接采用汽车上的电瓶12V电压,通过7805电源芯片转变为标准的5V电压,5V电压再通过两片LDO芯片AMS1117-3.3和AM1117-1.8稳压输出3.3V和1.8V。

4.2 ARM微控制器模块

微控制器(MCU)是系统的核心,也是实现系统功能的关键,适当的微控制器的选取,不仅能够大大提高系统性能,还能够最大程度上保证系统稳定可靠的

运行。现在市面上的MCU种类繁多,价格和性能也是千差万别,MCU的范围包括了从成本低于20美分的非常简单的家庭应用型MCU到20美元的控制工业机械主要器件的32位MCU,分辨出哪种才是适合系统应用的MCU是一个关键的问题。选择一款MCU时,我们需要考虑的因素有以下几个方面:第一,MCU

的电源范围、工作频率。MCU对电源的要求需要与系统中其它大部分部件对电源的要求一致;第二,MCU的I/O口、定时器、中断等资源数目。需要满足系统的要求,避免资源的浪费;第三,MCU的吞吐量。符合MCU对系统执行控制时的处理能力;第四,MCU的极限性能。能够在系统可能处于的极限工作环境中正常运行,如低温或高温环境;第五,MCU的抗干扰性能、加密性能、程序写入方式等;第六,MCU的市场价格。在产品的设计中需要严格的控制产品成本,固价格也是MCU选取中的重要一点,需要选取具有高性价比的MCU芯片。综合考虑以上因素及本系统对控制器的要求,我们选用了ARM9微处理器LPC2124作为系统的微控制器。

作为整板的主控制器,LPC2124是整个电路系统的核心,以LPC2124为核心的中央处理器模块设计则是决定整个硬件电路成败的关键,ARM微控制器模块设计主要包括电源、时钟及复位电路、调试与测试接口及ARM芯片接口电路四大部分。

4.3 时钟及复位电路

目前所有的微处理器均为时序电路,需要一个时钟信号才能工作。LPC2124

可使用外部晶振或外部时钟源,内部PLL电路可调整系统时钟,使系统运行速度更快。本电路中,LPC2124使用微控制器内部的晶体振荡器设计时钟电路,采用外部11.0592MHZ晶振做为振荡源,用1 M电阻并接到晶振两端,使系统更容易起振。用11.059MHZ晶振的原因是使串口波特率更精确,同时能够支持LPC2124内部的PLL功能和ISP功能。另外,微控制器在上电时的状态并不确定,这将造成微控制器不能正确的工作,为了解决这个问题,所有微控制器均需要一个复位逻辑,负责将微处理器初始化为某个确定的状态。一些微处理器在上电时自身会产生复位信号,但大多数微控制器需要外部输入这个信号,本终端微处理器LPC2124即属于后者。针对LPC2124来说,I/O口供电电压范围为3.3V~3.6V,故复位门槛选择为2.93V,复位芯片选用SIPEX公司的SP708S。该芯片属于微处理器岬监控器件,其集成有众多组件,可监测uP及数字系统中的供电及电池的工作情况,该芯片可以有效地增强系统的可靠性及工作效率。本系统复位电路设计成用户重启的按钮控制。SP708S发出RESET信号送给CPU的RESET引脚和JATG接口电路的复位脚。当复位按键RST按下时,SP708S立即输出复位信号使系统复位,平时SP708S的RST输出高电平,系统正常运行

或进行JTAG仿真调试。

4..4 FLASH 存储器电路设计

Flash存储器在系统中通常用于存放程序代码,系统上电或复位后从此获取指令并开始执行,因此用了PC15做了Flash的片选引脚即与CE相连,Flash的R/B引脚与PC14引脚相连,IO0~IO7与D0~D7相连,图4.1描述了Flash模块实际连接电路。

图4.1 K9F5608U0A电路设计图

4.5 SDRAM 存储器电路设计

4.5.1 SDRAM 模块功能介绍

与 Flash 存储器相比较,SDRAM 不具有掉电保持数据的特性,但存取速度大大高于Flash 存储器,具有读/写的属性,因此SDRAM 在系统中主要用作程序的运行空间,数据及堆栈区。系统启动时,CPU 首先从复位地址0x0 处读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM 中运行,以提高系统的运行速度,系统及用户堆栈、运行数据也都放在SDRAM 中。在主电路板中用的HY57V281620型SDRAM.。

图 4.2 HY57V281620 管脚分布图

4.5.2 HY57V281620 的实际连接

与 Flash 存储器相比,SDRAM 的控制信号较多,其连接电路也要相对复杂。两片HY57V281620 并联构建32 位的SDRAM 存储器系统,其中一片为高16 位,另一片为低16 位,可将两片HY57V281620 作为一个整体配置到任意一个外部存储器的区域,但是要注意一定要用同一根片选线与两片HY57V281620 的CS 引脚相连,这里用的是 SDSC 引脚与HY57V281620 的CS 引脚进行的连接。两片HY57V281620的CLK 端接AT91RM9200 的SDCLK 端; HY57V281620 的CLE 端接AT91RM9200的CLE端;两片HY57V281620 的/RAS, /CAS, /WE端分别接AT91RM9200的RAS 端、CAS 端、SDWE端;两片HY57V281620 的All~A0 接AT91RM9200 的地址总线A13~A2;两片HY57V281620 的BA1, BA0 接AT91RM9200 的地址总线A17, A16;高16 位片的DQ15~DQO 接AT91RM9200 的数据总线的高16 位D31~D16,低16 位片的DQ15~DQO 接AT91RM9200 的数据总线的低16 位D15~D0;高16 位片的UDQM,LDQM 分别接AT91RM9200 的NBS3 和A1,低16 位片的UDQM, LDQM 分别接AT91RM9200 的NBS1 和A0。

图 4.3 HY57V281620 的电路设计图

4.6 调试与测试接口

调试与测试接口不是系统运行必需的,但现代系统越来越强调可测性,调试、

测试接口的设计也越来越受到重视。LPC21 24有一个内置的JTAG调试接口,通过这个接口可以控制芯片的运行并获取内部信息。在本电路设计中,采用了ARM公司的标准20脚JTAG仿真调试接口,JTAG接口上的信号nRST和nTRST与复位电路相连,形成线“与”的关系,达到共同复位的目的。在RTCK引脚接一个4.7K下拉电阻,使系统复位后LPC2124内部JTAG接口使能,这样就可以直接进行JTAG仿真调试了。如果不需要使用JTAG,只需在用户程序中通过设置PINSEL2寄存器禁用JTAG即可。

4.7 GPS模块电路设计

本设计的GPS模块采用的是HoLux的GR.87模块。该模块支持NMEA 0183

V3.01标准输出,TTL接口电平,波特率可置。在本系统中,GR.87模块通过6PIN排线与主板相连,l脚为电源输入脚,接5v电源,2、3脚为GPs模块的数据接收和发送,接GM8123子串口2,5脚接地,6脚接LED指示灯。工作时,GPS模块由GM8123子串口2与主控制器LPC2124进行通信,通过设置模块定时输出GPS定位数据,由主控制器对GPS数据进行

处理,提取出经纬度,时间等有用信息,为自动报站及正点考核提供可靠数据,保证报站及正点考核功能的实现。这部分电路设计比较简单。

4.8 GPRS模块电路设计

本系统采用GPRs实现正点考核数据的远程传输,采用短信的方式实现车辆

紧急情况报警,这两大功能均依靠GPRS模块来实现。系统中GPRs模块采用SIMCOM公司的GSM/GPRS双频模块SIM300CZ,该模块主要为语音传输、短消息和数据业务提供无线接口,采用无铅设计,特别适合车载、移动电话、无线MODEM卡、无线PoS机、无线抄表系统以及无线数据传输业务的使用。sIM300cz模块为用户提供了功能完备的系统接口。60PIN的系统连接器是SIM300CZ模块与应用系统的连接接口,主要提供提供外部电源、RS.232串口,

SIM卡接口和音频接口。SIM300Cz模块可使用锂电池、镍氢电池或者其他外部

直流电源供电,电源电压范围为3.3V~4.6V,电源需要具有至少2A的峰值电流输出能力。由于GPRS模块对电源的特殊要求,系统在电路设计中选用了电源芯片MIC29302BT,对12V的电源稳压后得到4.2V电压供给GPRS模块使用。

SIM300cZ提供标准的Rs.232串行接口,用户可以通过串行口使用AT命令完成对模块的操作。串行口支持以下通信速率:300,1200,2400,4800,9600,19200,38400,57600,115200(起始默认)在本电路硬件设计中,SIM300CZ模块与主控制器LPc2124通过uAl玎1进行接口,使用模块默认的速率11 5200与模块通信。模块与控制器间的通信协议是AT命令集,除了串口发送(TX)、串口接收(RX)之外,微控制器与GPRS模块之间还有一些硬件握手信号,如DTR、CTs、DCD等。为了简化微控制器的控制,硬件设计时没有使用全部的硬件握手信号,而只使用数据载波检测(DataCa玎ier Detect,DCD)和终端准备(Data Teminal Ready,DTR)信号。DCD信号可以检测GPRS模块是处于数据传送状态还是处于AT命令传送状态。DTR信号用来通知GPRS模块传送工作已经结束。GPRS模块与ARM芯片通过TTL电平接口,无需电平转换。

4.9 语音及功放电路设计

本设计中语音处理模块选用高音质语音模块wTM.SD,该模块可播放MP3 格式文件,音质优美,通用性好,采用sD卡作为存储语音的载体,存储容量最

大可达2G,语音更新只需SD卡与电脑连接即可,十分方便,模块有四种工作模式:标准模式、按键模式、并口模式、串口模式,在本电路设计中采用串口模式工作,wTM.SD模块由主控制器UAl盯0口扩展出的子串口3进行控制,可以播放背景音乐,广告语,进行任意段语音的播放,该模块体积小巧,大小仅4lmm枣39mm,特别适合工业级应用。为了保证良好的语音质量,终端在功放电路设计中采用了专用的车载功放芯片TDA2003。TDA2003具有输出功率大、静态电流小、噪声低、保真度高、输入阻抗高、工作频带宽等特点。芯片谐波失真和交越失真小,且各引脚都有交、直流短路保护,使用安全可靠,负载上电压可冲至40V。TDA2003的体积较小,外围器件很少,在设计上也有简单灵活的特点。

4.10 硬件电路设计中需要注意的问题

在直流电源回路中,负载的变化会引起电源噪声。例如在数字电路中,当电路从一个状态转换为另一种状态时,就会在电源线上产生一个很大的尖峰电流,

形成瞬变的噪声电压。配置去耦电容可以抑制因负载变化而产生的噪声,是印制 电路板的可靠性设计的一种常规做法,好的高频去耦电容可以去除高到1GHz的 高频成分。陶瓷电容或多层陶瓷电容的高频特性较好。设计印制线路板时,每个 集成电路的电源、地之间都要加一个去耦电容。去耦电容有两个作用:一方面是 本集成电路的蓄能电容,提供和吸收该集成电路开门关门瞬间的充放电能;另一 方面旁路掉该器件的高频噪声。 电路设计中去耦电容的配置原则是:

(1)电源输入端跨接一个10pF~100肛F的电解电容器,如果印制电路板的位置允许,采用更大的电解电容器抗干扰效果会更好,如100pF以上。

(2)原则上每个集成电路芯片都应配置一个O.0l虾的瓷片电容。如遇到印

制电路板空间小而装不下时,可每4~1 O个芯片配置一个1 pF~10pF钽电解电容器。 (3)每10片左右的集成电路要加一片充放电电容,或称为蓄放电容,电容大小可选l O肛F。通常使用的大电容为电解电容,但是在滤波频率比较高时,最好 使用钽电容或聚碳酸酯电容。

(4)对于噪声能力弱、关断时电流变化大的器件和RoM、RAM等存储型器件,应在芯片的电源线(vcC)和地线(GND)间直接接入去耦电容。

(5)去耦电容一般是为开关器件或其他需要滤波、退耦的器件而设置的,布置这些电容就应尽量靠近这些元部件,不能离的太远。

(6)去耦电容的引线不能过长,引线越短,去耦效果越好。特别是高频旁路电容不能带引线。 (7)去耦不是越多越好,而是要注意滤波的效果,根据电路板和器件的时间情况来选用电容的个数和大小。

(8)去耦电容在要求较高的时候不用瓷片电容和电解电容,因为它们的容值精度差,分布电感大,要选用比较精确的钽电容或者聚酯电容等。

4.11 本章小结

在本章中,重点对智能公交车载终端的硬件设计进行了介绍,包括电源模块

设计、ARM中央处理器模块设计、串口及其扩展电路设计、GPS模块电路设计、

GPRS模块电路设计、语音及功放电路设计设计等。另外,就硬件设计中需要注意的问题进行了一些探讨。

5 智能车载终端系统的软件设计

本章详细介绍了车载 GPS 定位系统软件系统的设计方案,详细介绍了针对硬件平台的嵌入式操作系统ARM-Linux 的移植,以及在该操作系统下如何进行应用软件的编程。

5.1 嵌入式操作系统的选型

日前,市场上出现的嵌入式操作系统非常多,如:WinCE、VxWorks、Palm OS Linux等。本车载GPS 系统中我们选择了Linux[36]作为操作系统,因为Linux 为嵌入式操作系统提供了一个极有吸引力的选择,它具有以下一此特点:

1)Linux 是一个和Unix 相似、以核心为基础的、虚拟内存机制、多任务的操作系统。 2)Linux 具有广泛的硬件支持特性。Linux 最通常使用的微处理器是Intel X86 芯片家族,

但它同样能运行于Motorola 公司的68K 系列CPU;IBM、 Apple、Motorola公司的PowerPC CPU,SUN 公司的Sparc CPU 以及Intel公司的Strong ARM CPU等处理器系统,这念味着嵌入式Linux 将具有更广泛的应用前景。

3) Linux 系统是层次结构且内核完全开放。不同领域和不同层次的用户可以根据自己的应用需要很容易地对内核进行改造,在低成本的前提下,设计和开发出真正满足自己需要的嵌入式系统,再也不必担心像MS Windows 操作系统中“后门”的威胁Linux 具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以直接使用内核调试器来作操作系统的内核调试和查错。

4)Linux 还提供了强大的网络功能。Linux 诞生于因特网,它支持所有标准因特网协议,并且可以利用Linux 的网络协议栈将其开发成为嵌入式的TCP/IP 网络协议栈。

5.2 交叉编译环境的建立过程

建立交叉编译环境即可以下载直接解压的压缩包,例如cross-2.95.3.tar.gz,也可以自己下载必要的组件工具包来安装建立。如果下载的是已经建立好的压缩包就直接解压就可以了。但是这样建立的交叉编译环境里面含有里面有chill, fortran, java 等语言的编译器,这些都不是必须的,而且编译的时候有可能出现组件版本不匹配的情况,这个时候就需要自己下载组件包进行交叉编译环境的建立。主要需要的是binutils、gcc、glibc、glibc- linuxthreads这四个工具包。首先解压binutils工具包,然后进入生成的目录运行./configure --target=arm-linux--prefix=/usr/local/进行配置,target选项表示选定的目标代码格式,一般是arm- linux,prefix 表示在执行make install 时的安装根路径。然后运行make和make install进行安装。解 压 gcc 工具包, 进入生成的目录, 修改gcc/config/arm/t-linux 文件, 在TARGET_LIBGCC2_CFLAGS变量的设定中增加-Dinhibit_libc和-D__gthr_posix_h这两个变量。运行./configure --target=arm-linux--prefix=/usr/local -enable-languages=c--withheaders =ARMLinux源码目录下的include目录。这里前两个选项和上面binutils的安装类似,--withheaders是用来指定内核头文件的目录,一般就可以使用上面ARMlinux 的include 目录。需要注意的是这里的路径需要用全路径名,而不能使用相对路径。运行make和make install安装。解压glibc工具包,进入生成的目录,再解压glibc- linuxthreads工具包,运行CC=arm- linux-gcc 设置编译器, 运行./configure arm-linux -build =i686 - linux--prefix=/usr/local/arm-linux --enable-add-ons,运行make和make install安装,接下来还要重新安装gcc工具包,前面已经说了,在第一次安装gcc的时候还没有安装glibc库,因此对t-linux文件作了适当的修改,现在把在TARGET_LIBGCC2_CFLAGS变量的设定中增加-Dinhibit_libc和-D__gthR_posix_h去掉,重新安装一遍gcc ,至此交叉编译环境就建立好了。

5.3 配置编译内核

内核,是一个操作系统的核心,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。由于Linux 的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。在嵌入式linux 设计与应用中,或许你不需要经常升级你的内核,但是为了使你的目标板能够支持更多的外设,你将不得不自己设计驱动程序,或者有时你需要重新设定内核中的某些模块。所有这些工作,重新编译内核将使你更熟悉自己定制的系统。

5.3.1 内核源码的下载及安装

内核源码可以到ftp://ftp.kernel.org/pub/linux/kernel这个地址去下载,Linux的内核都是以Linux- x.y.z的形式给出,下载完内核以后还需要下载一个针对ARM的补丁,可以到ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel这个地址下载,一定要下载与内核版本号相对应的补丁,否则有可能编译不了。在ARM内核的树形图中在版本号加上了一个后缀,-rmkN,或–vrsN,这里'N'指的是补丁号。举个例子,2.4.26-vrs1,这表示需要用到的ARM内核的补丁号。(注意:2.6.0-test2以后版本的内核不再需要-rmk 或-vrs 补丁,因为些版本的ARM内核已将这些补丁集成了。)在本文中所使用的内核文件为linux-2.4.21.tar.bz2。ARM补丁文件为patch-2.4.21-rmk2.bz2。这两个文件都下载了以后还需要下载一个针对AT91RM9200 的补丁, 这个文件可以到http://maxim.org.za/AT91RM9200这个地址下载,下载的补丁也要与linux的版本号一致。在本文中使用的是2.4.21rmk2-at91-08032004.patch.gz。当这些文件都下载以后就可以在宿主机上安装linux内核了,并为内核打上相应的补丁。

5.3.2 配置内核

进入解压后的内核源码目录,修改主目录下的Makefile文件,找到ARCH :=

$(shell uname -m | sed –es /i.86/i386/-es/sun4u/sparc64/-es/arm.*/arm/-es/sa110/arm)和CROSS_COMPILE= 这两项, 修改为ARCH ?= arm 和CROSS_COMPILE ?=

/usr/local/bin/arm- linux- 。要注意的是将某种功能编译为模块方式会比编译到内核的方式速度要慢一些,不必要的驱动越多,内核就越大,不仅运行速度慢、.占用内存多,在少数情况卜、还会引发其他问题。确认当前的 shell 为bash,运行make menuconfig 就可以对内核进行配置了。

5.3.3 编译内核

配置好内核以后运行make dep生成文件的依赖关系,然后就可以编译内核了,编译内核有两种方式,分别是压缩方式和非压缩方式。

非压缩方式: 该方式下,内核在RAM中运行,需要先通过bootloader将内核的执行映象文件下载到指定位置,然后再跳转到下载地址处执行,一般内核大小会超过512K。这种方式使用make vmlinux来编译内核,或者直接运行make命令。

压缩方式:该方式下,内核从rom中启动,将被压缩的内核解压到ram,然后执行内核。其优点是可以将内核烧到flash中,而无需手工下载,同时压缩的内核也非常小,大概在200k至300k左右。这种方式用make bzImage来编译内核。编译成功后会在arch/arm/boot目录中生成内核的镜像,此镜像下载到flash中就可以通过bootloader引导了。

5.4 嵌入式引导程序移植

所谓引导程序(BootLader),即系统加电后运行的第一段软件代码,嵌入式系统的引导程序负责家在整个启动任务,整个过程包括硬件设备初始化、建立内存空间的映射图、配置合适的软硬件环境,以便能够调用操作系统的内核。BootLader的主要运行任务就是将内核映像从硬盘上读到RAM中,然后跳转到内核的入口点去运行,这样操作系统就开始启动。 Bootloader可以从SAMSUNG公司官方网站下载,经过交叉编译生成Bin文件,下载到ARM开发板上。

5.5 应用软件的设计

因为这个车载 GPS 系统用的是ARMLinux 做的操作系统,所以所有的应用程序都是在Linux 操作系统下编写的,然后通过交叉编译生成可以在ARMLinux 系统中直接运行的程序。整个软件涉及到 Linux 下的串口编程、Linux 下的网络编程和Linux 下的多线程编程三个方面,下面将分别予以介绍。

5.5.1 Linux 下的串口编程

Linux 操作系统从一开始就对串行口提供了很好的支持,Linux对所有各类设备文件的输入输出操作看上去就像对普通文件的输入输出一样,所以Linux 对串口的操作也是通过设备文件访问的。为了访问串口,只需打开相应的设备文件即可,在Linux下默认串行口COM1和COM2对应的设备分别为/dev/ttyS0和/dev/ttyS1。一个简单的串口初始化程序如下: InitCom{

struct termios options; /*定义一个termios 类型的结构体options*/ int fd2;

fd2=open(\打开串口*/ tcgetattr(fd2, &options);

cfsetispeed(&options, B4800); /*设置波特率*/ cfsetospeed(&options, B4800); /*设置波特率*/

options.c_cflag |= CS8 |CREAD | CLOCAL; /*设置串口属性*/ options.c_iflag |= IGNPAR |ICRNL; /*设置串口属性*/ options.c_lflag = 0; /*设置串口属性*/ options.c_oflag = 0; /*设置串口属性*/

options.c_cc[VMIN]=254; /*设置串口接收的最少字节树*/ options.c_cc[VTIME]=0; /*设置字符输入间隔时间*/

tcflush(fd2,TCIFLUSH); /*清空数据线,启动新的串口设置*/ tcsetattr(fd2, TCSANOW, &options);}

其中 c_cc[VTIME]和c_cc[VTIME]这两个参数比较重要,c_cc[VTIME] 设定字符输入间隔时间的计时器,而 c_cc[VMIN] 设置满足读取函数的最少字节数。他们的不同组合将影响串口输入的结果。当

MIN>0, TIME=0 时读取函数在读到了 MIN 值的字符数后返回。

MIN=0, TIME>0 : TIME 决定了超时值,读取函数在读到一个字节的字符,或者等待读取时间超过 TIME(t = TIME * 0.1s)以后返回,也就是说,即使没有从串口中读到数据,读取函数也会在 TIME 时间后返回。

MIN>0, TIME>0 : 读取函数会在收到了 MIN 字节的数据后,或者超过 TIME时间没收到数据后返回。此计时器会在每次收到字符的时候重新计时,也只会在收到第一个字节后才启动。

MIN=0, TIME=0 : 读取函数会立即返回。实际读取到的字符数,或者要读到的字符数,会作为返回值返回。这两个参数要根据具体的情况来配置,初始化了的串口就可以直接用 read()和write()函数从串口接受或者发送数据了。

5.5.2 Linux 下的网络编程

车载终端可以通过 TCP 或UDP 的方式与上位机进行连接。而TCP/UDP 程序的设计采用的是套接字的方式[46]。套接字是进行程序间通信的一种方法,在客户/服务器通信模型中,一个套接字就是通信的一端,因此可使不同主机间进程实现双向通信。套接字主要有三种类型。流式套接字是最常用的套接字类型,在TCP 协议中使用此类接口,提供面向连接的,无差错的,发送顺序一致的,包长度不限和非重复的网络信息包的传输。数据报套接字在UDP 协议中使用,提供无连接的服务,以独立的数据报进行网络传输,数据报的最大长度为32KB,传输不保证顺序性,可靠性和无重复性,通常用于单个报文传输或者对于可靠性要求不高的场合。还有一类称为原始报套接字,提供对网络下层通信协议的直接访问。原始套接字主要用于开发新的协议或用于提取协议比较隐蔽的功能。对于车载系统而言无论是用 TCP 还是UDP 方式与上位机通信,都只用开发客户端的程序就可以了。因为本系统用的是UDP 方式进行连接的所以详细介绍一下UDP方式的程序设计。UDP 是个面向数据报的简单传输层协议。它为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息单元,这个单元大小一般由发送方决定。它是—种无连接协议,即,它不像TCP 那样需要建立服务器与客户端的连接才可以工作,因此它不能及时地返回数据传输状态,因此不能保证数据可以可靠地传输到日的地。

5.5.3 Linux 下的多线程编程

线程技术早在60 年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,同进程相比线程彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便。 多线程程序作为一种多任务、并发的工作方式,具有以下的优点:

提高应用程序响应。这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操作,而使用多线程技术,将耗时长的操作置于一个新的线程,可以避免这种尴尬的情况。

使多CPU 系统更加有效。操作系统会保证当线程数不大于CPU 数目时,不同的线程运行于不同的CPU 上。

改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或

半独立的运行部分,这样的程序会利于理解和修改。

正是由于多线程程序由以上的优点所以整个车载终端的程序会按照多线程的方式进行编写。Linux 系统下的多线程遵循POSIX[48]线程接口,称为pthread。编写Linux 下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。创建一个线程的函数是extern int pthread_create __P ((pthread_t *__thread,__const pthread_attr_t *__attr,void*(*__start_routine) (void *),void *__arg));第一个参数为指向线程标识符的指针,第二个参数用来设置线程属性,第三个参数是线程运行函数的起始地址,最后一个参数是运行函数的参数。函数pthread_join 用来等待一个线程的结束。函数原型为:extern int pthread_join __P

((pthread_t __th, void **__thread_return)); 第一个参数为被等待的线程标识符,第二个参数为一个用户定义的指针,它可以用来存储被等待线程的返回值。这个函数是一个线程阻塞的函数,调用它的函数将一直等待到被等待的线程结束为止,当函数返回时,被等待线程的资源被收回。

当线程创建了以后就要考虑互斥和同步的问题。互斥,就是对某段代码或某个变量修改的时候只能有一个线程在执行,其它线程不能同时进入该段代码或同时修改变量。Linux 下可以通过pthread_mutex_t 定义互斥锁完成多线程的互斥操作。pthread_mutex_t定义互斥锁变量,用于保护临界区,互斥锁有locked,un locked 两种状态。pthread_mutex_init 用于对互斥锁变量初始化;pthread_mutex_lock 用于对互斥体进行加锁操作(互斥锁被置为locked) ,若互斥锁原来就为locked,则当前线程被阻塞;pthread_mutex_unlock用于用于对互斥体进

行解锁操作(互斥锁被置为unlocked) ,唤醒被锁定的线程。互斥锁一个明显的缺点是它只有两种状态:锁定和非锁定。而条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化。一旦其它的某个线程改变了条件变量,它将通知相应的条件变量唤醒正被此条件变量阻塞的线程。这些线程将重新锁定互斥锁并重新测试条件是否满足。一般说来, 条件变量被用来进行线程间的同步。pthread_cond_t用于定义条件变量,pthread_cond_init函数用于初始化一个条件变量,pthread_cond_wait函数使线程阻塞在一个条件变量上,并同时可以解开互斥锁,因此可以避免死锁的产生,pthread_cond_signal 用来释放被阻塞在条件变量cond 上的一个线程,pthread_cond_destroy 函数用于释放一个条件变量。

5.5.4 应用程序介绍

智能车载终端系统的应用程序在功能上可以分为7个功能模块,即初始化模块,控制模块,GPS数据获取模块,上行数据转换模块,用户界面模块,通信模块和下行数据处理模块。各模块的协作示意图如图5.1所示。 初始化模块 控制模块

GPS数据获取模块 上行数据转换模块 下行数据转换模块 用户界面模块 通信模块

初始化模块

控制模块 上行数据转换模块 用户界面模块 GPS数据获 取模块 下行数据转换模块 通信模块

图5.1 主程序各模块协作示意图

6 总结

本车载定位终端融合了 GPS 全球定位技术,GPRS 无线通信技术,ARM 嵌入式技术以及嵌入式Linux 系统的移植于编程,属于一个交叉学科的工程项目。尤其是采用GPRS 通信网络进行无线通信代替了传统的GSM 短信息通信模式,不仅节约了整个系统的运行成本,而且提高了数据的传输速度和可靠性。同时选用了工业级的带有内存管理功能的ARM9 芯片S3C2440作为处理器,并围绕它进行电路设计,使得该终端有很高的可靠性,并且能够适应比较恶劣的环境,因为选用了带内存管理功能的ARM9 芯片,所以可以移植ARMLinux 操作系统,该操作系统自带的资源十分丰富,使得应用程序的功能更加强大,同时也增加了软件的扩展性。

本文的重点即车载定位终端的设计,主要从硬件设计和软件设计两个方面进行了阐述。硬件设计主要包括各个模块的选型及格模块的实际硬件电路。软件部分主要阐述了Linux操作系统,几个关键技术如Linux 下的串口编程、Linxu 下的网络编程、Linux 下的多线程编程,然后把应用程序分成了初始化模块,控制模块,GPS 数据获取模块,上行数据转换模块,用户界面模块,通信模块和下行数据处理模块这七个模块予以介绍。

但限于本人水平和时间有限,还有许多地方需要完善,尤其是软件设计这一块。

参考文献

[1] 刘尚军, 张志兵等 ARM嵌入式技术与应用—基于Xscale处理器及 Vxworks操作系统 北京:北京航空航天大学出版社 2007.9

[2] 田泽 ARM9嵌入式Linux开发实验与实践 北京:北京航空航天大学出版2007

[3] 沈连丰 许波 夏玮玮等 嵌入式系统及其开发应用 北京:电子工业出版社 2011

[4] Embedded microcontrollers and processor Abhik Roychoudhury 北京:清华大学出版社 2010

[5] Embedded systems Tammy Noergaard 北京:人民邮电出版社 2008 [6]童永清 Linux C 编程实践 北京:人民邮电出版社 2008

[7]刘岚,尹勇 基于ARM的嵌入式系统开发 北京:电子工业出版社 2008 [8]三恒星科技 ARM9应用实例 北京:电子工业出版社 2007 [9]庞丽萍 操作系统原理 武汉:华中科技大学出版社 2008

本文来源:https://www.bwwdw.com/article/e7c7.html

Top