kl800.com省心范文网

基于嵌入式平台的车载终端设计与应用


1 绪论 1.1 选题背景及意义

目前嵌入式技术作为数字系统市场的主要部分,已经成为消费电子,航天应用,办 公自动化,电信以及数字通信等领域的关键技术⑴。与通用计算机相比嵌入式处理器更 具有针对性的特点,支持特殊专用的功能,嵌入式设备通常应用于特定的场所[2]。嵌入 式系统的软、硬件设计具有灵活性,依据设计需要,在嵌入式研发过程中,可根据实际 需要添加软硬件相应模块,实现相应功能[3]。传统的嵌入式系统软件编程过程中,主要 釆用主函数循环,中断分支响应设计,往往导致设计程序过于复杂,引入嵌入式操作系 统实现多任务管理机制,即可减轻程序设计负担,又大大提高的嵌入式系统的性能[4]。 嵌入式操作系统可以兼容嵌入式硬件设备的差异性,将操作系统引入嵌入式系统开发已 经成为一种趋势。 另一方面,汽车作为重要的出行工具,随着其持有量的逐年上升,伴随而来的是道 路拥挤问题凸显,道路拥堵严重影响人们的正常工作生活,合理的车辆调度以及智能的 导航服务成为出行必备条件[5]。车辆导航是当前汽车电子行业研究的热点问题,全球定 位系统以及智能交通系统发展迅速。导航系统可为司机提路况信息服务,提高车辆行驶 效率与行车安全。全球定位系统(GPS)能为车辆提供精准的位置信息,地理位置信息 系统(GIS)为用户提供完整的路况信息,车辆监控中心为行驶车辆提供合理的调度[6_7]。 嵌入式车载设备将 GPS,GIS 技术结合应用,提供嵌入式电子地图具有浏览,查询,计 算等功能,为用户提供方便的导航服务。车载设备的多功能服务要求嵌入式系统运行要 具有高可靠性与实时性。嵌入式电子地图的设计与嵌入式设备的内存,显示界面,CPU 速度以及接口性能有着密切的关系[8]。嵌入式处理器作为车辆导航系统的终端设备,通 过网络实现设备与监控中心间的通信,嵌入式系统对车载终端性能具有很大影响[9]。将 嵌入式操作系统应用于车载导航设备中,实现终端多功能应用,极大程度为用户安全, 稳定,及时的导航服务。

1.2 嵌入式系统研究的发展现状 嵌入式系统自问世以来,系统功能需求日益复杂,嵌入式处理器研发技术不断提高, 嵌入式芯片在功耗,尺寸等方面的改进,使嵌入式系统产品成本不断降低目前市场 上已经推出处理能力更加强大的嵌入式处理器如 32 位,64 位处理器芯片以及 DSP 芯片 等,来提高嵌入式处理器处理数据速度[n]。同时在处理器上移植专用的嵌入式操作系统, 操作系统采用多任务处理机制,并提供个性化人机交互界面,支持丰富 API 程序接口[12]。 -1 基于嵌入式平台的车载终端设计与应用

2 车载终端嵌入式平台构建方案 2. 1 嵌入式系统设计思路 嵌入式系统设计开发过程中,需依据一定的幵发流程,正确合理地进行系统开发[26]。 (1)系统需求分析:根据需求确定系统设计的实现功能和目标。并制定可行性方案, 综合考虑设计系统需完成的基本功能、系统性能,以及设备开发成本,功耗等因素。 (2)系统结构设计:依据系统的设计任务与目标,设计实现目标方法,选择合适的 处理器,以及选择嵌入式操作系统。 (3)硬件与软件设计:根据系统需实现功能的特点和实际拥有的设备条件,进行相 应的软件与硬件模块设计。 (4)系统集成:对系统的软硬件进行集成调试,改正设计过程中出现的错误。 (5)系统测试:对系统进行测试,测试其是否达到设计目标,最终生成产品。 2.2 车载终端平台设计

2.2.1 车载终端平台设计目标 本课题是在 ARM7 核处理器上构建|aC/OS-n 实时操作系统的软件平台,完善操作 系统内核功能。在^iC/os-^系统内核基础上移植^iCFS 文件系统,mCGUI 图形界面系 统,TCP/IP 协议栈,实现完整的操作系统应用平台,并在构建平台的基础上实现上层车 载终端导航功能。车载终端通过 GPS 模块获得当前设备的位置、速度、时间信息,将 车载终端当前位置通过液晶显示器显示在由 GIS 生成的电子地图上。存储设备实现重要 的状态信息存储。车载终端设备通过网络实现与监控中心间信息交互,监控中心可通过 浏览器查询当前终端状态。系统组成结构如图 2.1 所示。 信息监控倍息存储电子地图 GPS 信息 ^^ n

\7 \7 II 网络 图形交互界面 iz iz ik

嵌入式 nc/os-n 操作系统 图 2.1 系统组成结构 Fig. 2.1 Structure of system -4-

大连理工大学硕士学位论文

根据车载终端导航系统的设计需求,系统需实现以下功能: (1)构建完整的嵌入式操作平台。车载嵌入式处理器为车载终端实现的核心,负责 整个系统的功能实现。需要稳定,健全的系统平台满足其上层的多任务管理调度,选择 合适的操作系统,构建完整的操作系统平台。稳定的平台基础是应用层实现车载终端的 前提条件。 (2) GPS 数据信息读取与存储功能。获取当前车载终端 GPS 数据,是系统实现其 他功能任务的基础,系统获得 GPS 接收机传送的数据信息,处理器处理 GPS 模块传送 的数据,提取与系统所需相关的经讳度、时间、速度、日期信息。根据用户需求将这些 信息通过文件系统存储与 Flash 设备当中,作为黑匣子进行数据备份,以便用户对当前 数据与历史数据的查询,并且处理器处理的位置数据需要达到一定的精度,确保设备位 置信息的准确性。 (3)电子地图功能。电子地图作为车载终端系统实现的主要功能,决定了车载终端 的使用意义与价值。Mapinfo 软件导出 GIS 文件中大连市地图路况信息存入相关文件中, 系统通过读取相关数据信息,通过点、线、面的形式将路况数据分层显示在液晶显示器 上构成完整的电子地图,系统结合 GPS 数据实现车载静态定位功能。系统提供地点查 询,电子地图显示,电子地图缩放、移位以及路径导航等功能。 (4)人性化人机交互功能。车载终端为用户提供信息提示服务,简洁规整的提示界 面便于用户操作,节省了驾驶人员读取信息时间。终端提供系统化的操作界面,并结合 简单易懂的文字提示,方便驾驶员进行相关操作。

(5)监控中心功能。在处理器上构建 B/S 模式服务器,每辆车载终端具有独立固定 的 IP 地址。监控中心通过网络打开浏览器,登录相应网址获取当前设备的状态信息, 便于监控中心对车辆进行调度,提供相应帮助与服务功能。 2.2.2 硬件平台 车载终端系统硬件设计主要包括 S3C44B0 处理器,GPS 接收机模块,LCD 触摸屏 人机交互模块,以太网接口模块,Flash 存储器模块等几部分组成。其中 S3C44B0 处理 器是整个系统设计的核心。GPS 接收机模块获取全球定位系统发送的数据信息,以太网 模块负责车载终端与监控中心的数据通信,LCD 触摸屏模块主要功能为接收用户操作输 入,与车载导航系统的电子地图与数据信息的显示。Flash 存储模块负责存储重要的数 据信息。系统的硬件平台框图如图 2.2 所示。 -5 基于嵌入式平台的车载终端设计与应用

网络化也是嵌入式系统发展的必然趋势,将嵌入式系统与互联网相连,依据信息时代的 电子设备联网需求,使得嵌入式设备幵发支持 TCP/IP 协议等软件,提供标准网络接口 [〗3]。目前国外的嵌入式商用操作系统例如 VxWorks 高性能操作系统支持多种开发平台, Windows CE 是由微软推出的嵌入式操作系统,具有与 Windows —致的开发界面,但其 内存占用过大[14]。这些操作已经是成熟,提供方便的开发与调试工具,但是由于其价格 昂贵,致使幵发成本较高,商业化的操作系统受着用户需求以及硬件资源的限制随 着 Linux 操作系统的产生,开源代码的操作系统受到追捧,开源代码操作系统产品得到 广泛推广。iiC/OS-II 是一种高性能的嵌入式操作系统,具有源代码公开,占用资源少,

实时性能高的特点[16]。PC/OS-II 大部分代码由 C 语言编写,内核便于剪裁,可根据用 户不同需求增减相应功能模块,非常适合小型嵌入式系统幵发,具有很大的灵活性。国 内自主的嵌入式操作系统主要有 silver 公司推出的 DeltaOS 操作系统,桑夏 2000 操作系 统以及中科院推出的 Hopen 操作系统等,具有一定的应用价值,但是推广程度不够 117]。 1.3 车载终端系统的发展现状 GPS 是由美国国防部研制的卫星导航定位系统,起初为军方服务用于收集情报,定 位导航,通过太空卫星定位计算,地面接收机接收当前位置信息数据[“8]。自市场化以来 GPS 导航技术得到推广,GPS 能够为全世界用户提供及时,精确的位置,速度以及时间 信息。随着 GPS 成本降低,其应用范围也越来越广,在测量、航海、航空、气象、定 位跟踪、车载导航等领域有着重要的作用。GIS 将计算机技术,数据库技术与测绘技术 相结合[I9]。GIS 通过测绘技术得到与地理相关的位置、大小、形态等数据信息,并将这 些地理信息数据转化为可用点、线、面来描述的数据对象存储与数据库中,并配有相关 的属性信息,GIS 将类型相近的地理数据归为同一图层,电子地图由不同图层的绘制而 成,便于用户查询路况信息。将 GPS 技术与电子地图数据结合的车载导航系统使得 GPS 在汽车行业得到广泛应用[20]。用户根据车载导航系统显示的电子地图确定行驶路径,系 统为用户提供可靠及时的信息服务。 我国汽车销量每年持续增长,世界各大汽车公司将企业发展的战略重心转移到中国 市场,车载导航产品研发迅速[2^。国外的基于 GPS 智能导航产品十分成熟,美国通用 的 On-Star 系统,将无线技术与 GPS 技术相结合,为驾驶员提供安全服务。福特的 Wingcast 系统,日本作为智能交通系统最为发达的国家之一,由丰田公司的 G-Book 系 统,基于 3G 联网为用户提供智能的信息服务都已经成为健全完善的服务平台。国 内汽车信息服务系统起步较晚处于研究阶段,在国内由于一些关键技术较为滞后,例如

GIS, GPS 和无线通信技术,以致我国的车辆导航系统研究与开发较晚 I23]。此外,道路 -2 基于嵌入式平台的车载终端设计与应用

JTAG 调试^=0 触摸屏 Flash LCD 、 ^嵌入式处、^

理器 I 、 S3C44B0 , J SDRAM <^=C>网卡 RS-232 ¢=^ GPS 图 2.2 系统硬件平台框图 Fig. 2.2 Diagram of system hardware platform (1) S3C44B0 处理器 嵌入式处理器是嵌入式系统的核心,S3C44B0 是 ARM7 系列 32 位处理器,提供了 丰富的内置部件其中包括:外部存储器控制器、LCD 控制器、UART 串口、A/D 转换器, 定时器、外部中断、可选的内部 SRAM、PPL 倍频模块使最高工作频率高到 66MHZ 等 功能其功能满足设计需求,可作为核心处理器。

(2) SDRAM 模块 本系统中使用的 SDRAM 模块为 16 位的数据宽度,存储容量为 8M 字节 I29]。当系 统启动时,处理器 CPU 从复位地址运行,为减少 Flash 的读写次数以及提高数据读取 速度,将程序代码加载到 SDRAM 中运行。 (3) Flash 模块 本系统中使用 Hash 模块为 16 位数据宽度,存储容量为 4M 字节,系统设计分配 2M 存储空间作为程序代码段,1M 空间作为重要数据信息存储区,Flash 生产及使用过 程中都有可能产生坏块,这会造成数据无法正常写入存储器内。系统用 1M 的空间作为 坏块的备份空间。 (4)触摸屏模块 S3C44B0 处理器内置 LCD 控制器,可以支持 256 级颜色的彩色 LCD 屏,采用系统 存储器作为触摸屏的显示缓冲区触摸屏尺寸为 320X240,较高的屏幕刷新速率为 用户提供清晰细腻的现实界面。本系统为提供更清晰地图显示功能另采用 800X480 分 辨率液晶显示器作为显示界面。该显示器通过串口实现与处理器通信,屏满足用户对图 面的显示高清晰度的需求。 (5) GPS 接收机模块 -6 大连理工大学硕士学位论文

交通设施不断建设更新使中国幵的车辆导航系统成果并不理想,随着国内相关技术的发 展,车辆导航系统已经成为交通和自动控制领域的热点课题[24]。2011 年我国发射北斗

导航卫星,北斗导航卫星系统已经进入试运行阶段,预计 2020 年通过发送更多卫星后, 定位范围将覆盖全球。同年,我国大唐电信与长春一汽启明公司发展合作关系,研发具 有自主产权的汽车导航服务系统[25]。我国车载信息系统技术的研发需要不断探索与创 新。 1.4 论文的主要内容 论文共分为五个部分。 第 1 章:绪论。分析了车载导航系统对嵌入式系统的性能需求,介绍了嵌入式系统 的应用现状和发展趋势以及车载导航系统的特点和发展,最后介绍本文研究的主要内容 和方法。 第 2 章:嵌入式系统平台总体设计。介绍嵌入式系统设计发开思路,车载导航系统 设计目标,软硬件平台的选择与设计。 第 3 章:操作系统 C/OS-II 内核改进。详细描述了 C/OS-II 操作系统内核存在的 优先级反转问题,并提出内核动态切换的改进方法。 第 4 章:操作系统平台构建。通过移植文件系统,图形界面系统,TCP/IP 协议构成 完整的嵌入式操作系统平台, 第 5 章:车载终端多任务设计。并将平台与外围设备相连,设计车载终端多任务应 用程序,最终实现车载终端系统的上层应用幵发。 最后对本文研究内容和方法进行了总结,并对以后的工作提出展望。 -3 基于嵌入式平台的车载终 i 晶设计与应用

(1) Bootloader 设计 Bootloader 程序通常存放在系统的 Hash 存储器上,系统掉电程序信息不丢失,嵌 入式系统上电后即可从起始地址执行 Bootloader 程序,Bootloader 作为整个系统软件的 设计基础,决定着系统的资源配置,对于系统的稳定高效运行起着重要作用。 (2)嵌入式操作系统 嵌入式操作系统为程序扩展功能提供软件平台,对于决定整个系统的性能起着至关 重要的作用。目前嵌入式操作系统的种类特点各异,^iClinux 开放源代码,具有优秀的 网络功能,标准丰富的 API 接口,但是供实时性操作的实时软件模块在内核空间运行时 会影响系统的可靠性;VxWorks,Windows CE 等商业操作系统具有高效的任务管理功 能,然而由于其价格昂贵,软件的研发和维护成本都很高;^iC/OS-II 源代码公开,内核 小巧,扩展能力强,可根据系统设计需要,增添相应功能模块,灵活性强。选择 hC/OS-II 作为操作系统不但低成本且能根据设计需求扩展相应功能模块满足设计需求[33]。 l^C/OS-II 是一种支持多任务实时调度系统内核,内核主要五个部分核心部分:主要 负责操作系统的初始化,设置时钟节拍,任务调度等;任务处理部分:在^1(3/05-11 中以 任务为单位进行程序调度,对任务进行基本处理操作;时钟部分:时钟节拍是^1(:/05-11 中任务切换的最小时钟单元;通信部分:liC/OS-II 以信号量、邮箱、队列的方式实现任 务间同步与通信;与处理器接口部分:i-iC/OS-II 作为通用性的的操作系统,需要根据具 体处理器寄存器特点编写相应的移植程序。^iC/OS-II 内核具体特点如下[35]: ①公开源代码:源代码可免费获取,内核可以根据设计需要对其进行修改与裁剪; ②可移植性强:代码绝大部分是用 C 语言编写,移植部分用汇编语言编写,便于移 植到处理器上; ③稳定性高:^iC/OS-II 目前已广泛应用于商业应用设计;

④抢占式内核:实时处理优先级最高的就绪任务。 ⑤多任务:用户根据系统需求将程序以任务为单元模块化调度,并根据任务的特性 分配不同的优先级; ⑥系统服务:nC/OS-II 提供多种通信机制,保证任务在互不影响的前提下资源共享; (3)文件系统 由于嵌入式系统设备资源有限,需要外接存储设备。但由于嵌入式系统对数据存储 量大,数据刷新频繁,这使得延长 Flash 存储器的使用寿命,减少对其的擦写次数非常 重要[36]。由于嵌入式设备中数据存储量大,存储类型不同,可移植文件系统,实现对存 储的数据进行管理[37]。分层设计嵌入式软件系统,文件系统作为中间层,设计在内核与 应用程序之间,是软件设计的基础与支撑,对优化嵌入式应用软件性能有重要作用,决 -8 大连理工大学硕士学位论文

JP-13 型 GPS 接收机作为 GPS 接收模块,在 GPS 接收机在通电的情况下接收定位 系统传送的数据信息,数据遵循 NMEA0183 协议[31]。处理器通过串口与接收机连接, 通过解析接收机传送的数据,获取相应的经讳度、速度,时间信息,为设备其他功能提 供数据。 (6)以太网模块 CS8900 网卡作为硬件设备,数据传输速率为 10M。通过配置网卡的 MAC 地址, 工作模式初始化网卡,在网卡上移植 TCP/IP 协议找实现网卡的基础通信[32]。并在处理 器上构建 B/S 模式服务器,构建车载终端网站。监控中心通过登录网站获当前车载终端

状态信息。 2.2.3 软件平台 本课题在硬件模块的基础上以嵌入式操作系统 U C/OS-II 为软件核心,U C/OS-II 操 作系统内核小巧,便于移植,可方便用户系统进行开发。基于操作系统多任务调度优点, 便于系统上层应用程序的模块化调度。在操作系统内核的基础上通过扩展支持图形界面 系统,文件系统,网络系统使操作系统平台更加健全,功能更加丰富。在构建的操作系 统平台上实现上层车载终端应用程序开发,实时为驾驶员提供导航位置信息等。嵌入式 操作系统实现车载模块多任务总体调度。图形系统设计可以提供用户操作串口界面,实 时显示当前位置图形信息以及速度时间等相关信息,便于用户轻松操作。文件系统的设 计可以将所需的重要信息进行备份,便于车辆出现故障时,为发现故障原因提供可靠的 参考数据。网络系统设计,个体车辆将当前数据通过网络反馈到信息中心,便于信息中 心及时掌握当前车辆运行信息,对车辆进行控制调度。相关模块在操作系统内核上的移 植以及上层应用程序的设计至关重要。系统软件平台框图如图 2.3 所示。 上层应用程序 ^ 图形界面系统 件 h络 ^ $ H C/OS-II 内核 会;

Bootloader 启动程序 图 2.3 系统软件平台框图 Fig. 2.3 Diagram of system software platform -7-

大连理工大学硕士学位论文

定着整个系统的可扩展性。缩短嵌入式系统幵发周期,通过文件系统可以很好的实现操 作系统数据管理。在数据交互日益频繁的电子设备中,使得嵌入式系统需要文件系统的 支持,而 uC/OS-II 内核不包含文件系统,开发人员需要根据系统设计建立相应的文件 系统。 文件系统种类繁多,广泛应用的文件系统有 FAT12、FAT16、FAT32、YAFFS, NTFS 等[38]。在嵌入式系统中一般采用 FAT12/16/32 文件系统,使得设备存储数据文件与 PC 机存储文件格式一致,便于进行信息的交互[39]。文件系统实现嵌入式设备对 Flash 存储 器以块为单位操作,并且文件系统申请数据缓存区,减少了系统对的擦写次数, 延长了 Hash 存储设备的使用寿命。FAT16 是微软较早推出的文件系统,数据按照目录 索引以及簇链式结构存储,广泛应用与存储设备中[4^。uC/FS 文件系统是 Micrium 公 司开发的一种针对嵌入式设备的文件系统,与 W C/OS-II 操作系统具有相似的设计风格, 易于 U C/OS-II 操作系统结合实现系统平台构建,U C/FS 文件系统具有如下特点[4〗]: ①支持 FAT12、FAT16、FAT32 多种文件格式,可根据设计需求定义系统文件格式; ②提供多种硬件存储器驱动接口,使系统实现访问不同类型的存储器; ③支持操作系统,^10?5 可以移植到任何操作系统中,支撑系统的多任务调度; ④模块化分层设计,提供标准 API 接口,硬件驱动结构简单仅需编写硬件初始化以 及读写程序即在存储器上建立文件系统; (4)图形界面系统 嵌入式显示界面中带触摸屏的液晶显示技术已成为主流,为使设备提供美观的显示

界面,系统更加注重图形界面的开发由于嵌入式系统内存资源有限,如 windows 这样占用内存较大的显示界面不适宜应用在嵌入式设备中。故设计需要具有占用内存少 功能完善的图形界面系统。 uCGUI 是 Micrium 公司开发的专门面向嵌入式系统开发的图形界面系统,是高效 的用户图形接口,可独立于处理器及 LCD 控制器应用于使用 LCD 图形显示的设备上[43]。 口 CGUI 可在多任务的系统上运行,具有很强的可移植性,并且消耗较少的系统资源, 占用 RAM 和 ROM 的空间都很小,适用于嵌入式系统的多任务管理。CGUI 作为嵌入 式支撑软件,是应用程序设计的基础,决定着整个系统的可扩展性与稳定性通过 y CGUI 图形界面系统可以很好的实现操作系统图形与界面的管理。CGUI 具有如下特 点、[45-46]: ①可移植到 8、16、32 位嵌入式处理器上,提供标准的 API 接口,显示屏大小可配 置,支持比实际显示器更大尺寸的虚拟显示功能; -9基于嵌入式平台的车载终端设计与应用

②支持彩色 LCD 显示与多边形绘制,并且提供有效的位图转换器,便于用户开发直 接将图片转化为相应代码便于应用开发; ③为应用程序提供不同种类的字体,提供字体转换器,并且可以根据用户需求定义 新的字体; ④支持视窗管理与相应的窗口控件,支持触摸屏以及鼠标操作,触摸屏与视窗控件 是 U CGUI 系统输入输出的完整统一,支持触摸屏的功能将 CGUI 系统与触摸屏相结

合,充分体现界面系统的实用价值; (5) TCP/IP 协议栈 开发人员在设计与研制新型电子相关产品时都会留有网络接口,以实现设备间远程 数据的传输和监控 TCP/IP 协议是 Internet 的重要组成部分,系统设计中考虑到嵌入 设备资源限制以及网络结构复杂实现难度较大,TCP/IP 协议栈作为网络系统的一部分, 将其移植入嵌入式处理器中可以实现网络功能【48]。 U C/OS-II 操作系统内核并不支持网络功能,需要移植协议栈构成完整操作平台。 目前嵌入式领域中应用较为广泛的协议找有 C/IP,U IP, LwIP 等。uC/IP 是专门为 U C/OS 设计的协议栈,但是由于其网络应用支持不足,应用具有局限性 LwIP 是 Light Weight IP 协议的缩写。LwIP 幵发源代码,按照分层结构设计,够独立实现 TCP/IP 协 议的套件。LwIP 在较少资源使用量的同时实现 TCP/IP 协议功能,这使得 LwIP 适用于 拥有几 KB 的 RAM 与 40KB 的 ROM 的嵌入式系统中。LwIP 协议栈具有如下特点 ①支持 DHCP 客户端,DNS 客户端,APIPA 自动私有 IP 地址,SNMP 简单网络管理 协议代理; ②专有 API 接口增强系统性能,可选择的 Berkeley 接口 ; ③支持扩展功能:多个网络接的 IP 转发,TCP 拥塞控制、RTT 估计和快速恢复/快 速重新传输; ④支持插件的应用:HTTP 服务器、SNTP 客户端、SMTP 客户端、Ping、NetBIOS 命名服务器; -10大连理工大学硕士学位论文

3 操作系统 y C/OS-II 内核改进 3.1 车载终端多任务调度特点 车载终端嵌入式系统需实现较多应用功能,需通过与 GPS 接收机相连获得当前设 备的经炜度信息与时间速度等状态信息。显示界面实现实时显示当前位置图形信息及速 度时间等相关信息。系统需将所需的重要状态信息进行备份。并且将汽车当前运行信息 传输到信息中心平台,实现终端信息交互信息中心通过浏览器登录终端网址提取相应数 据,便于及时掌握当前车辆运行信息,对车辆进行控制调度。车载嵌入式系统根据各功 能性能要求不同,对各功能进行合理的调度与协调分配。并且系统的经讳度、速度等状 态信息作为系统的共享信息,在不同功能使用共享资源时不能被其他功能篡改数据,这 就要求共享信息在使用的时候被合理保护。车载终端实现任务功能复杂,共享信息刷新 频繁,增加的嵌入式系统的设计难度。 3. 2 内核任务调度存在的问题 车载嵌入式系统运行不但具有高可靠性而且对任务处理的实时性的要求也越来越 高。uC/OS-II 在内核调度中存在优先级反转问题,也是一直以来对嵌入式系统不断改 进和完善设计中的热点问题[51]。车载终端中各任务对与临界资源的共享会发生优先级反 转问题,问题关键在于多任务访问临界资源时,高优先级任务被较低优先级任务阻塞而 延时,甚至造成任务等待资源而死锁现象,以致从整体结构上降低系统运行的稳定性。 目前提出的解决方法在一定程度上解决了优先级反转问题,但存在影响其他高优先级任 务调度与内核修改过于复杂的缺点。本文针对内核任务队列引入一种任务动态切换思 想,解决了其他协议的不足,达到改善优先级多任务调度的执行效率的目的。 3. 2. 1 U C/OS-I I 内核任务调度机制分析

U C/0S-I1 内核中调度具有最高优先级的就绪任务立即执行,而其他任务被挂起。 内核调度过程中通过查找就绪表,调度其中优先级最高的任务。临界资源每次只允许一 个任务访问的资源,C/OS-II 内核通过信号量管理机制实现任务对临界资源的访问, 任务访问临界资源前须先获得保护该临界资源的信号量。任务在等待保护该临界资源的 信号量时,若信号量授权该任务,即可继续访问临界资源,访问完毕后,任务释放信号 量的授权,以便其他任务执行。若信号量没有授权与该任务,内核会将等待该信号量授 权的任务从就绪表中调入等待任务列表中,即该任务被挂起,内核转去调度当前优先级 -11 基于嵌入式平台的车载终端设计与应用

最高的就绪任务。当信号量的授权释放后,挂起的任务则转变为就绪态,相应的也要从 等待任务列表调入就绪表中等待内核调度。内核任务调度过程如图 3.1 所示。 事件控制块链表 任务控制块列表 ~ 専件类型=? I 调度就绪任务 争什 5^:土_ 伴各狀太= ^ 计数器(信号量)=? … I^ t ‘任务状态=等待信号量 I 事件类型=信号量~ (賊)

计数器(信号量)=1$ i :仏‘一. ||计数 yss;)=口 ?議.就绪」 ★ 0 任务状态=... 图 3.1 内核任务调度过程 Fig. 3.1 Secheduling mechanism of kemal 3. 2. 2 u C/OS-1 I 内核优先级的反转问题 优先级反转指一个任务因等待比它优先级低的任务释放临界资源而被阻塞,此时又 有中等优先级的就绪任务,内核则调度中等优先级任务,使高优先级任务阻塞时间延长 甚至死锁现象[52]。liC/OS-II 内核调度中如图 3.2 所示系统运行三个任务(H、M、L), 各任务的优先级依次降低。系统运行后任务 L 就绪执行并占用临界资源,n 时任务 H 就 绪后开始运行。/2 时由于任务 H 访问临界资源而此时临界资源被任务 L 占用,任务 H 挂起,等待任务 L 释放临界资源。时任务 M 就绪并抢占内核,使任务 H 阻塞时间延 长,直至时任务 M 运行结束与,5 时任务 L 释放临界资源后,任务 H 才能占用临界资 源,由挂起态变为就绪态执行。由此可知优先级反转严重影响了系统的实时性。 任』 〖高 , I 务 ; : ;_ — 优 i ; m 口油. 先 * iZ-i 挂起

—…

‘ I : la 占用资源 I i—.?誦?——""""""i 一 T—: : ? t\ h h U h 运行时间 图 3.2 优先级反转现象 Fig. 3.2 Priority inversion -12大连理工大学硕士学位论文

3.2.3 优先级反转问题解决现状的讨论 目前解决优先级反转问题主要有两种常用的方法:优先级上限协议与优先级继承协 议["]。 优先级上限协议为占用临界资源的任务定义了的一个上限优先级[54],优先级上限协 议在应用过程中将占用临界资源任务的优先级替换为上限优先级,使得不需要临界资源 的部分任务无法抢占内核,影响了内核正常调度就绪任务。 优先级继承协议实现了同等优先级任务的轮询调度[55-56],优先级继承协议需修改内 核任务等数据结构,使内核调度支持轮询算法,这违背了实时系统设计内核时不允许出 现同优先级任务的初衷。 针对基于优先级上限方法任务的优先级改变后会影响到其他任务的正常调度,基于

轮询调度方法实现过于复杂影响内核调度效率的情况。在解决优先级反转问题的过程 中,解决方法旨在优先调度占用临界资源的低优先级任务,使其尽快释放临界资源。本 研究目的是在不改变任务优先级并且保证内核调度效率的前提下,引入通过动态切换中 等优先级就绪任务解决优先级反转问题,在高优先级任务申请低优先级任务占用的临界 资源时,通过动态切换任务状态的方法,实现中等优先级就绪任务在就绪表与等待列表 的之间的切换,从而避免优先级反转的发生。 3. 3 多任务动态切换调度方法的提出 3. 3. 1 任务动态切换调度方法的引入 y C/OS-II 内核中如图 3.3 (a)所示设此时有三个任务的优先级分别为 3, 4,5。 任务控制块列表 任务控制块列表 任务优先级=... I I 任务优先级=... 调度就绪任务 任务状态=... 调度就绪任务 任务状态=... 任务优先级=3 广 4I 任务优先级=3 任务状态=就绪 、'餅^

任务状态=等待信号 fi:(挂起 ) I 任务切-----1 任务体先级=4....... 任务妨态=就绪 1 任务:?牵=挂起甲 任务优先级=5 ” 、

1

任务状态=就绪 任务状态=就绪 任务优先级=...

任务优先级=... 任务状态=... 任务状态=... (a)任务动态切换前 (b)任务动态切换后 图 3.3 任务动态切换模型 Fig. 3.3 Dynamic switching model -13基于嵌入式平台的车载终端设计与应用

任务 3 访问任务 5 占用的临界资源,由于任务 3 需获得信号量后执行,因此任务 3 被挂起。此时通过修改内核调度算法,将任务 4 从就绪表中移除(将该任务的状态由就 绪态改为挂起态,将该优先级从就绪表中删除) 。内核继续调度任务 5。直至任务 5 释 放临界资源后,判断此时任务 4 是否可还原为就绪态,若该任务可还原为就绪态,则将 该任务从等待任务列表删除,插入到就绪表中,如图 3.3 (b)所示改进后的内核调度当 前优先级最高的就绪任务 3,阻止优先级反转发生。 3.3.2 任务动态切换优先级调度的实现 由于任务在共享临界资源时须先获得其相应的信号量,通过修改就绪表的方法对操 作系统中信号量相关结构及函数进行修改,解决优先级反转问题,以满足设计要求。 在事件结构体中加入当前占用信号量的事件优先级变量 Cur_Prio,先前占用信号量 的事件优先级变量 Pre 一 Prio,当前事件优先级反转标志 Convert—Flag,以此判断是否有 优先级反转现象发生。并在 OSSemCreateO 函数中对创建的相关变量进行初始化。改进

的事件结构体如下: typedef struct os 一 event {…… INT8U Cur—Prio; //当前占用信号量的事件优先级 INT8U Pre_Prio; //先前占用信号量的事件优先级 INT8U Convert_Flag; //当前事件优先级反转标志 } OS—EVENT; 在等待信号量函数 OSSemPendO 中,首先判断当前信号量是否被其他任务占用,若 没有被任何任务占用,则将信号量的当前优先级变量设置为该等待信号量任务的优先 级。若该信号量已被占用,判断占用其任务的优先级是否高于当前等待该信号量任务的 优先级,若高于此时会发生优先级反转。首先设置当前信号反转标志,并将当前任务优 先级变量 Cur_Prio 赋值给先前任务优先级变量 Pre_Prio,并将当前等待信号量任务优先 级的数值赋给 CurJPrio。判断 Cur_Prio 与 Pre_Prio 任务优先级之间是否存在中等优先级 就绪任务,若存在则将该任务移出就绪表并挂起,这样占用临界资源的低优先级任务可 以尽快执行,髙优先级等待信号量的任务继续等待,不会发生优先级反转,其他更高优 先级任务可以正常执行,不会发生阻塞现象。改进算法如下: if(pevent->Cur—Prio > OSTCBCur->OSTCBPrio) { pevent->Convert_Flag=l ; pevent->Pre_Prio=pevent->Cur_Prio; pevent->Cur_Prio=OSTCBCur->OSTCBPrio; -14-

大连理工大学硕士学位论文

for(查找就绪表) { if(高低优先级之间是否存在就绪任务) { if (存在就绪任务) {将该任务移出就绪表; 将该任务的状态设为挂起态;}}} } 在释放信号量函数 OSSemPostO 中,首先判断当前信号量反转标志,若信号量反转 标志为 1 则查找就绪表,判断 Cur 一 Prio 与 Pre—Prio 任务优先级之间是否存在中等优先级 挂起任务,若存在并且该任务可还原为就绪态,则将该任务状态改为就绪态,并将该任 务添加到就绪表中等待调度,若不存在则继续查找直至 Cur 一 Prio 与 Pre_Prio 任务优先级 之间没有中等优先级挂起任务,最后将信号量优先级反转标志清零。内核正常调度,改 进算法如下: i f(pevent->Convert_F lag ! =0) {for(查找就绪表) {if(高低优先级之间是否存在处于挂起态的任务) if(((ptcb->OSTCBStat &=?OS—STAT 一 SUSPEND) -= OS—STAT—RDY)&& (ptcb->OSTCBDly == 0)) {将该任务插入就绪表;}} pevent->Pre_Prio=0;

pevent->Cur_Prio=0; pevent->Convert_Flag=0; } 3.4 改进后内核的移植 S3C44B0 处理器支持中断、多线程程序操作,内部有足够寄存器作为硬件堆栈,编 译器能产生可重入代码,适合^iC/OS-II 操作系统的移植。要将 t^C/OS-II 移植到 S3C44B0 处理器上,需要编写底层移植文件 OS 一 CPU.H、OS_CPUj:.C、OS_CPU_A.Sc (1)宏定义头文件 OS_CPU.H 该文件主要根据 y C/OS-II 提供的 API 标准接口对数据类型重新定义,并定义与 ARM 体系结构相关的堆栈类型,其中包括:堆栈增长方向、任务堆栈个数等。在该文 件中进行了开中断、关中断的宏定义,为保证任务间资源共享且互不影响执行。 (2)汇编语言文件 OS—CPU—A.S 由于该文件中的函数直接对处理器进行操作,所以该文件内的程序需用汇编语言编 -15基于嵌入式平台的车载终端设计与应用

写,其中包括任务调度、任务切换、幵关中断等函数。 (3) C 语言文件 OS_CPU_C.C 在该文件中对用户任务堆栈进行初始以及系统相关硬件初始化、设定定时器作为时 钟节拍等函数。 完成以上三个文件的编写基本实现了 li C/OS-II 操作系统的移植。

-16 基于嵌入式平台的车载终端设计与应用

BPB

每族扇区数 隐藏扇区数 根目录项数 I 每 FAT 占用扇区数 I FAT rw] ["mn i i i i i i CUD [ZZ: dZD CZD EZD Ciz:] CZI] [ZZ] 口录项 数据簇 I 文件名(name) j I 扩展名 I 符族巧-(02H) 图 4.2 FAT16 文件系统结构 Fig. 4.2 FAT 16 file system structure

保留区位于第一个扇区,其中定义了每簇扇区数、隐藏扇区数、根目录项数、总共 扇区数等用于记录 FAT 表结构参数的重要信息。FAT 文件中数据信息的读取以族为单 位,Flash 的读写以扇区为单位,通过定义每簇扇区数将文件系统与硬件设备的读写单 元联系起来。定义的根目录项数确定了文件系统支持的最大根目录数。FAT 区占用扇区 数决定了文件系统在单独文件的情况下的文件容量。 FAT 区包含有两张 FAT 表,其中一张 FAT 表作为系统的备份表。FAT1 表被修改 后,FAT2 也会同步更新。在 FAT16 文件系统中,文件数据的存储以族为单位,FAT 表 是一一对应于数据区族号的列表,FAT 表中每单元记录的是文件所在的簇号,FAT 表从 02 簇号为起始,每个单元中内容为该文件数据所在的下一个簇号,这样构成簇链式的存 储结构,当单元中记录数据为 FF 时,表明该文件结束。FAT 表通过簇号确定文件的位 置。 根目录区中目录项每项 32 个字节,根目录区记录了文件名、扩展名、属性、文件 长度、首族号等信息。系统通过文件名以及首族号来索引文件在 Flash 中的存储位置。 数据区设在根目录区后,以簇为单位,用于存储文件的数据信息。 -18大连理工大学硕士学位论文

FAT 文件系统查找文件的过程为:首先根据文件名在根目录区中找到相应的目录 项,然后根据目录项记录的首簇号在 FAT 表区找到首簇号的位置,该位置所对应的内 容为该文件的下一族的簇号,通过 FAT 表的链式存储结构,直至找到最后一个簇号。 最后通过 FAT 表中的簇号在数据区找到其对应的位置后读取数据,实现了文件系统的

数据查找。以上图为例:应用程序需读取文件名为 name 的文件,首先从跟目录区查找 相关文件名,找到文件名为 name 目录项后,查找该文件的首簇号,该文件的首簇号是 02H,这样在 FAT 表中簇号为 02 的地址内存放的数据内容,内容为 03H 表明,簇号 03 的地址内也存放该文件数据,这样通过链式的查找,知道族号地址内容为 FFH 为止, 表明该文件结束。通过 FAT 表查找得知 name 的文件数据存放在簇号为 02H、03H、04H 三个簇内,最后通过读取数据区内相应簇地址内的数据信息。 4.2.2 文件系统移植 y C/FS 文件系统可实现 FAT12/FAT16 格式文件,u C/FS 文件系统的分层关系模式 分为应用接口层、文件管理层、逻辑块层、介质驱动层,文件系统层次分明,函数调用 关系清晰,u C/FS 文件系统的结构如图 4.3 所示。 应用程序 ;-- 4^----^^ 嵌 I 应用接口层 丨& 、丨 丨嵌 SI I 入 ^ i 文件管理层 丨 I 件一 zzzzmzzz: I 件 J ! 逻辑块层 内i I ‘‘ 核丨 iJ

介质驱动层 丨

——丄--:子—__ 硬件设备 图 4.3 y C/FS 文件系统体系结构图

Fig. 4.3 Structure diagram of y C/FS file system 移植文件系统前首先掌握目前存储器的相关信息,根据存储器的相关信息确定文件 系统的存储容量、每簇大小、本系统釆用 4M 容量的 Flash 存储器,每扇区 512 字节, 设定每族扇区数为 1,即每族大小为 512 字节。由于 4M 的存储空间需要分配 2M 空间 用作程序代码存储,剩余的 2M 空间中用 1M 空间可作为文件系统。文件系统在 Flash 中所占的空间为 1M-2M 之间的存储区,文件系统在 Flash 的起始地址为 0x100000。本 -19大连理工大学硕士学位论文

4 车载操作系统平台构建 uC/OS-II 只为操作系统内核,并不能作为整个系统实现复杂的应用功能需求,所 以需要移植文件系统、图形界面系统、网络系统构成完整的嵌入式系统操作平台。 4. 1 BootLoader 设计 在欺入式系统中,系统上电后程序从起始地址运彳了。系统会将 Bootloader 程序放在 该地址中,由 Bootloader 完成整个系统的加载任务。因此 Bootloader 决定系统硬件资源 的分配,中断向量设置,内存空间的分配以及应用程序的执行,本系统的 BootLoader 设计流程如图 4.1 所示。 C^“)

、丄乂 中断系统频率设置

设置中断向量表 ^

I ——

堆找初始化

关-麵二超觀 I 将 Flasl4 的程序 i 拷入 R^M 中 设置看门狗’非缓冲 ^

^ 将全局变量初始化 进行硬“口设一 ,B」 。ader、 、结束 j 图 4.1 Bootloader 设计流程图 Fig. 4.1 Design flow of BootJoader 4. 2 文件系统的实现 本系统中选择 FAT16 文件格式存储数据信息,将 y C/FS 文件系统移植入 Flash 存 储器上作为系统的文件系统。 4.2.1 FAT16 文件系统架构 FAT 16 是用来记录文件在 Flash 的存储位置的表格,FAT16 是以 16 位的寻址方式 査找定位的族链式结构,FAT16 最大的寻址范围为 2GB,本系统中 Flash 的容量为 4MB, 满足系统设计需求。FAT16 文件系统由保留区、FAT 区、根目录区、数据区组成,FAT16 结构如图 4.2 所示。

-17基于嵌入式平台的车载终端设计与应用

系统 Flash 存储器为 16 位寻址方式,需将文件系统的 8 位寻址方式经过转换成 16 位后 进行相应读写操作。Flash 每块的容量为 8KB,以块为单位进行对 Flash 进行一次性读写 可以减少 Flash 的擦写次数,延长 Hash 的使用寿命。故根据设计需求在对 Flash 进行格 式化时确定了文件系统的引导扇区的相关信如表 4.1 所示。 表 4.1 保留区相关参数设定 Tab. 4.1 BPB parameters setting 保留区相关参数 个数 —

每簇扇区数 0x01 隐藏扇区数 0x0001 根目录项数 0x0040 总扇区数 0x1000 每 FAT 占用扇区数 0x0002

编写相关 Flash 读写驱动函数,通过文件系统中层次之间的调用完成文件系统在 Flash 存储器上的移植。应用程序通过调用文件系统上层函数来读取数据信息,上层函 数通过各层之间的函数调用关系将调用底层读写 Flash 函数对存储器进行操作。由于 Flash 存储器是以块为单位进行数据擦除的,为减少 Flash 的擦写次数,申请与 Flash 块 容量大小相同的缓冲区,当数据信息写满一块后,一并写入 Flash 中,延长的储存器的 使用寿命。 Flash 驱动层文件 flash—drv.c:该文件的主要功能实现了 Hash 底层驱动与上层文件 的链接,通过定义存储设备类型结构体 FS—flashdevice—driver,来实现上层函数对底层 的访问。结构体定义描述如下: const FS—device 一 type FS—flashdevice—driver = { "FLA^H device", — //设备、区动名称 —FS—FLASH—DevStatus, //FS 检测设备状态 _FS_FLASH_DevRead, //FS 设备读驱动 _FS_FLASH_DevWrite, //FS 设备写驱动 FSFLASHDevIoCtl //FS 设备控制 }; 该结构+_FS_FLASH_DevReadO 为从存储器中读取数据函数,该函数通过调用 flash—x—hx.c 文件中的 FS—FLASH—ReadSectorO 函数实现文件系统对于底层 Flash 的驱 动 flash—Read—sectorO 函数的调用,读取 Flash 相应页中的数据。 _FS_FLASH_DevIoCt 丨 0 为功能控制函数,其中的 FS—CMD—FLUSH—CACHE 命令 为文件系统缓冲区操作命令,该命令先不将每页数据写入 Flash 中,而是将数据存储到

-20大连理工大学硕士学位论文

缓冲区中,在关闭文件时,对缓冲区数据进行处理,调用 flash_x—hx.c 文件中的 write 一 cached 一 data()函数, 实现文件系统对于底层 Flash 的驱动函数调用, 最终完成 Flash 相应块的锁定,擦除以及写入数据的功能。文件系统函数层次调用关系如图 4.4 所示。 flash_drv.c flash_x_hx.c nflash.c PC FT ACT4 rv T^rti I I I I unlock—one 一 blockO (FS'CMD FLUSH CACHE) write—cached_data() =^> erase jlock—arndg 、— - '一 flash Write. sectorQ

—FS_FLASH_DevReadO 〉FS—FLASH_WriteS ectorQ 〉 flash_Read_sector() 图 4.4 文件系统函数调用关系图 Fig. 4.4 Call graph of file system fiinction 4. 2. 3 文件系统坏块查找 完成文件系统移植后,为完善文件系统使用性能,保证数据存的可靠性,但 Hash 可能产生坏块。这会造成块擦除时出现错误无法得到正确结果。在存储数据时,Flash 存储器的读写操作频率非常高,可能使 Flash—部分数据块由于被频繁擦写而损坏。系 统需要对坏块进行处理,保证数据读写的可靠性。为此在 Hash 存储器中将 2M 以后的 部分空间作为坏块备份空间,通过对 Flash 中作为文件系统的部分进行块遍历进行擦写

并读取擦写数据,若回读的数据不为 FFH,说明存储器出现坏块,并记录该块地址,用 备份区中的地址代替,直至:Flash 文件系统存储地址空间遍历为止。在上层应用程序与 对坏块之地操作时,将数据写入备份地址中,完成坏块的替换,保证文件系统正常操作, 坏块查找结构体以及坏块查找代码如下所示: typedef struct { FS_ul6 Num_Badblock; //坏块个数 FS_u32 Addr_Badblock[256]; //坏块地址 FSja32 Addr_Reserveblock[256]; //备份区地址 }FS—Badblock—Index; /*FS—Check—BadblockO 函数功能为查找坏块地址并用备份地址替代*/ void FS 一 Check—Badblodc(FSJBadblock—Index Find—Badblock) { for(count_block=0;count_block<256;count_block++) //IM 空间内进行块遍历 { 将每块进行数据擦除写入 OxFF; for(count_page=0;count_page<16;count_page++) //块空间内进行页遍历 {读取每页数据; if(OxFF!-buffer[i]) //判断页内容是否为 OxFF -21 基于嵌入式平台的车载终端设计与应用

{保存坏块地址;

坏块个数加 1; 用备份区地址替代坏块; } 4.3 图形界面系统的实现 图形界面系统作为嵌入式系统的输出设备,直观反映了当前系统运行状态与系统的 性能,而触摸屏即可作为输出设备又可作为输入设备节约嵌入式设备占用空间,C/GUI 图形界面系统将触摸屏的输入功能与输入功能结合为同一的整体,并提供系统化的显示 界面。 4. 3. 1 U C/GUI 图形系统架构 tiC/GUI 是针对嵌入式系统的图形软件,采用模块化分层结构设计,代码由 C 语言 编写,可以移植到任意处理器上。功能模块主要包括 LCD 驱动模块,GUI 内核模块, 视窗管理器模块,窗口控件模块,和触摸屏及字体和位图等模块,liC/GUI 设计架构如 图 4.5 所示。iiC/GUI 系统支持多任务与多窗口机制,提供了丰富的图形字体库与窗口 控件类,并支持鼠标、触摸屏等功能。 应用层 I 字体与位图 J

触摸屏 窗口控件 视窗管理器

内存设备 GUI 内核 抗锯齿 LCD 驱动 图 4.5 P C/GU1 系统架构 Fig. 4.5 System framework of P C/GUI LCD 驱动模块包含很多类型 LCD 显示器的驱动程序与接口函数。便于用户根据系 统 LCD 型号选择合适的或者相近的驱动程序完成显示器的移植。 -22大连理工大学硕士学位论文

抗锯齿模块用于优化处理显示图形的边缘锯齿效果,在图形显示过程中,图形的转 动可能会造成图像边缘出现锯齿现象,抗银齿模块通过将前景色与背景色相融合,使图 形边缘平滑,减少的图形的失真现象。 GUI 内核模块是图形界面系统的核心部分,其中包含 GUI 对点、线、区域的绘制 的绘图函数;GUI 显示字体,文本,数字,字符串旳相关函数;GUI 支持鼠标,触摸屏 等功能函数;这些功能函数实现图形界面系统的最基本的显示个功能,使 GUI 构成一个 完整的显示系统。 内存设备模块主要功能为防止在绘制重叠图像时出现的闪烁现象,若显示系统不支 持存储设备,在绘制重叠图像时,重叠的绘制会导致显示屏出现闪烁现象。支持存储设 备后相关操作会在存储区内进行,操作完毕后再将数据传送到显示屏上,避免了闪烁现 象的发生,为系统提供更好的显示效果。

视窗管理器模块实现了系统的窗口显示功能,并且提供一整套函数支持对窗进行创 建、移动等操作。并且管理器可同时显示多个窗口为用户可视化管理带来便捷。 窗口控件模块为系统提供了丰富的控件支持,控件支持的函数与视窗管理器相结 合,通过窗口回调机制实现系统的功能切换,为用户个性化显示设计提供充分的条件。 触摸屏模块实现功能类似与 windows 下的鼠标功能,通过触摸屏模块显示系统读取 用户输入的坐标信息,并将信息封装成鼠标信息显示在显示器上,并将所在位置信息与 其相应的空间想结合完成用户设备的控制。 字体与位图模块中系统提供位图转化器可在 PC 下将图形转化为 GUI 可识别相关的 数据结构,缩短开发人员的开发周期。并通过模块相应函数实现对图像信息的显示。 4.3.2 tiC/GUI 系统移植 将 yC/GUI 显示系统应用于嵌入式设备中,移植主要针对 LCD 底层驱动与 U C/OS-II 操作系统两方面。 (1) LCD 底层驱动设计 处理器通过对内部 LCD 控制器进行配置,将 LCD 设置为 256 色彩色模式,8 位单 扫描方式。LCD 屏水平尺寸为 320,垂直尺寸 240,以及设定扫描频率,设置抖动模式 寄存器,使显示为最佳效果。申请 LCD 显示缓存区 Buffer 大小为 320X240。当 LCD 需显示数据时,控制器需将显示内容存储到缓冲区内,之后以帧的形式显示在显示器上, 将处理器 LCD 初始化程序作为 y C/GU1 系统 LCD 控制器初始化程序,缓冲区同样作为 tiC/GUI 缓存。 (2) iiC/GUI 相关参数配置 根据 LCD 显示器的特性,对 yC/GUI 进行相关配置,其中包括 liC/GUI 屏幕显示 -23-

基于嵌入式平台的车载终端设计与应用

尺寸,每点像素使用位数,LCD 控制器选择,RGB 颜色设定以及对 GUI 各模块支持使 能等设定定义如表 4.2 所示。U C/GUI 的 LCD 控制选择为与 S3C44B0 控制器相似的 1375 型的 LCD 控制器,这样可以简化系统移植步骤,只需 S3C44B0LCD 控制器显示缓存区 的地址赋给 1375 控制器读写存储空间的地址,即可完成缓存区分配问题。配置中将 S3C44B0LCD 控制器的初始化程序设定为 C/GUI 1375LCD 初始化程序,通过以上步骤 即可完成 LCD 底层驱动的结合问题,使 P C/GUI 可控制 S3C44B0LCD 显示器的相应操 作功能。 表 4.2 y C/GUI LCD 参数配置 Tab. 4.2 Parameter configuration of LCD in w C/GUI ti C/GUI 参数配置 设定值 LCD—XSIZE //水平尺寸 ^ LCD_YSIZE //垂直尺寸 240 LCD_BITSPERPIXEL //每点像素位数 8 LCD_CONTROLLER //控制器选择 1375 LCD_FIXEDPALETTE //RGB 设定 323

LCD_BUSWIDTH //总线宽度 8 LCD_IMT_CONTROLLER() LcdJnitQ //初始化程序

U C/GUI 设定为支持操作系统,如表 4.3 所示设定显示系统可最大支持任务数为 4, 自行设计的字体为系统的默认字体,uC/GUI 分配 12500 大小控件作为窗口的内存,使 uC/GUI 支持虚拟窗口显示功能。通过各模块配置,使得 U C/GUI 满足嵌入式系统设计 需求。 表 4.3 U C/GUI 模块相关配置 Tab. 4.3 Module configuration of u C/GUI — P C/GUI 参数配置 设定值 GUI—OS ‘ //操作系统支持 i GU1_SUPP0RT_T0UCH //触摸屏支持 1 GUI_MAXTASK //最大任务数 4 GUI—DEFAULT—FONT //支持字体 &GUI_FontHZ12 GUI—ALLOC—SIZE // 内存分配 12 5 00 GUI_WINSUPPORT //窗口支持 1

GUI_SUPPORT_MEMDEV //存储器支持 1 GUI_SUPP ORT_AA //抗银齿支持 1

(3) uC/OS-II 接口相关配置 uC/GU 丨支持多任务调度,为保证上下文切换时保护共享资源,GUI 通过上锁 -24基于嵌入式平台的车载终端设计与应用

触摸屏 Y+i

i JIr‘II X_AD i Y 电极 i Hx-! X X1 ■>、一"I~ 电 电一 I i 丨极 极丨 J 丨 Y 电极 i

Y AD i I i 1 I~I I 丨 III x+ "‘ 图 4.8 触摸屏连接框图 Fig. 4.8 Connection diagram of touch screen (1)触摸屏电压信息采集 电阻式触摸屏为显示器上的两层导电薄膜,两层薄膜隔离层中有许多隔离点。在电 阻式触摸屏中,电极两端分别接高低电平,当某一层薄膜上电时会在两极之间产生电压 梯度,当触摸屏被按压时,两层导电薄膜接触,在未上电的另一层薄膜上可测得触点的 电压值。如图 4.8 所示,当 Y 电极上电时,按下触摸屏,两层薄膜接触,由于 X 极未上 电,在 X 极层电压信号经过 AD 转换获得的数字信息为与 Y 轴坐标位置相关的数据信 息。X 极同理。触摸屏通过两层电极分别上电获得 X, Y 坐标相关信息。系统将处理器 外部中断与 X 电极相连,并设定外部中断为下降沿触发模式,当触摸屏被按压后,外部 中断接收信号产生中断。系统处理通过两个 A/D 转换端口传送的数据信息进行处理。 (2)触摸屏坐标信息校准 触摸屏产生电压信号后,两极电压值分别经 16 次 A/D 转换取平均值后转变成数字信 号。为使数字信息与触摸屏坐标值相匹配,需进行校准工作,本系统采用两点校准法进 行线性校准。将触摸屏左上角坐标(10, 10),右下角坐标(310, 230)的 X 轴、Y 轴 电压数值信息。取平均值获得触摸屏 X, Y 两极最大最小电压信息的数字量。由于电压 降成线性关系,固当触摸屏按下某一点时,获取的电压信息与两端坐标的电压信息成比

例关系,即可获得当前触点的坐标值。 (3)触摸屏坐标信息封装 当处理器采集到触摸屏触点坐标信息后,将触摸屏的坐标信息封装成为鼠标信息, 即将触摸屏的触点坐标值赋值给建立的鼠标控件中,并将鼠标状态设为被按下状态。这 样在显示器上便及时显示出鼠标来表示当前按压的触点位置,完成了触摸屏坐标信息封 装。为使鼠标信息及时获取到触摸屏触点位置的更新信息,鼠标信息要及时释放掉前一 次得到的触摸屏信息并将状态该为空闲,以便获取下一次触摸屏信息。 -26大连理工大学硕士学位论文

4.4 LwIP 协议钱的移植与实现 将嵌入式设备联网实现设备间通讯,为用户使用设备带来极大的便捷。但由于网络 功能复杂,嵌入式设备资源有限,为部分实现网络通讯功能,本系统将 TCP/IP 协议栈 移植入嵌入式系统中作为网络模块。 4.4. 1 Lw IP 协议钱架构 LwIP 是专门为嵌入式系统开发的 TCP/IP 协议钱,占用资源少,便于移植到操作系 统当中。LwlP 按照分层结构思想设计,与其他网络协议相同 LwIP 分为网络接口层、网 络层、传输层与应用层。针对嵌入式系统,LwIP 提供相关模块支持包括内存管理模块 与操作系统模拟模块等,LwIP 系统架构如图 4.9 所示。 TCP/IP 应用程序 操 LwIP AP 丨接口 I

缓 作 冲 系 与 统 UDP 协议 TCP 协议 内 模 存 拟 管 层 IP 协议 1CMP 协议 ARP 协议 网络接口 I 理

图 4.9 LwIP 体系结构 Fig. 4.9 Structrue of LwIP 应用层提供一些网络软件服务,使用户通过应用层访问网络系统,包括 Http,Ftp, Telnet 等协议软件。 传输层为用户提供端到端服务,包含 UDP 模块与 TCP 模块,通过端口实现应用程 序之间的数据通讯。 网络层实现数据分组转发到目标地址,其中包含 IP 模块,ICMP 模块,ARP 模块。 ARP 模块完成目的 IP 地址与 MAC 地址之间的映射,IP 模块完成 IP 数据包的接收,发 送,转发等功能。 网络接口层为以太网卡驱动程序编写提供函数接口,便于 LwIP 移植到网卡上,使 数据在硬件设备上传送。

LwIP 的操作系统模拟层提供进程间通信接口函数,修改接口函数即可完成相应操 作系统移植。 -27 基于嵌入式平台的车载终端设计与应用

内存管理模块提供内存与缓冲空间为设备使用。 本系统中主要通过 TCP/IP 协议完成网络间通讯,系统发送数据时 LwIP 将数据分段, 逐层封装后发送到网卡设备;接收数据时 LwIP 将数据重组,逐层拆包后为应用层使用。 LwIP 的 TCP/IP 通讯进程如图 4.10 所示。 应用程序 ? 二:......‘ tcp_write() / tcp_receive() 传输层 士 / 、= tcp_enqueue() / tcp_process() -I / 厂 tcp_output tcp_input() ip_route() ip_output_if() Ip_input() ----一?------- :―丄—_____‘二 netif_output() netif—input。 | 网络接口层 图 4.10 TCP 通讯进程图 网络戸

Fig. 4.10 Communication process diagram of TCP 4.4.2 LwIP 协议栈移植 将 LwIP 协议栈移植入嵌入式系统当中,移植主要针对 C/OS-II 操作系统与网卡驱 动两方面。 (1)与 U C/OS-II 操作系统接口 LwIP 的操作系统模拟层提供进程间通信接口函数。将 LwIP 移植入 U C/OS-II 操作 系统中,以信号量机制为例,在 LwIP 中通过信号量的等待与释放保证任务同步,其函 数调用关系如图 4.11 所示。 LwIP U C/OS-II sys_sem_new(count) sys—sem—signal(pSem) OSSemPost(pSem) sys_arch_sem_wait(pSem) 〉 OSSemPend (pSem) 图 4.11 LwIP 信号量函数调用关系 Fig. 4.11 Signal function call of LwIP -28 大连理工大学硕士学位论文 〉pSem = OSSemCreate(count)

GUI_X_LockO 与解锁 GUI_X—UnlockO 函数来实现共享资源的保护。该功能与 C/OS-II 中信号量的调用机制一致,如图 4.6 所示 GUI 上锁与解锁函数是通过调用 U C/OS-II 信 号量相关函数实现其功能。

U C/GUI W C/OS-II GUI_X_GetTaskld() =j)[ (OSTCBCur->OSTCBPrio) GUI_X_lnitOS() 二=0 DispSem=OSSemCreate(l)

GUI_X_Unlock() OSSemPost(DispSem) GUI_X_Lock() OSSemPend(DispSem) 图 4.6 u C/GUI 系统相关函数 Fig. 4.6 System function of P C/GUI 在 GUI 系统中对于窗口相应,以及其他窗口的任务调度需要延时等其他时间相关操 作,GUI 时间管理功能是通过调用 C/OS-II 相应的时间调用函数实现的,如图 4.7 所示。 U C/GUI 口 C/OS-II GUI_X_GetTime() ==^ GUI_X_Delay(Period) OSTimeDly(Period) GUI_X—ExecIdleO =[> OSTimeDly(l) 图 4.7 U C/GUI 时间相关函数 Fig. 4.7 Time function of y C/GUI 通过对处理器 LCD 配置,GUI 系统模块配置以及与 y C/OS-II 接口设定,系统即可 完成 y C/GUI 的移植,C/GUI 可实现基本的显示功能。 4.3.3 触摸屏实现 U C/GUI 对触摸屏模块的支持,可实现触摸屏设备的应用。本系统采用的是电阻式 OSTimeGetQ

触摸屏,将触摸屏与处理器外部中断相连,并且将触摸屏产生的电压信号在处理器进行 A/D 转换,将模拟信号转换成电压信号,实现对输入信号的信息采集,触摸屏连接结构 框图如图 4.8 所示。 -25 * 大连理工大学硕士学位论文

LwIP 中邮箱机制调用关系与信号量机制类似,但是在 LwIP 中邮箱信息以队列的形 式存储,uC/OS-II 通过内存管理模块分配一定空间给邮箱队列,并通过创建,占用, 释放等操作完成空间的动态分配,保证了邮箱消息的缓冲与数据传递。LwIP 通过获得 和发送邮箱信息,完成任务间的消息传递。 LwIP 为每个网络线程都提供一个等待超时计时器,作为当前线程超时等待时间标 准,根据系统需求会带有相关的超时回调处理函数,线程超时后会调用该函数执行设定 操作。若该线程的等待时间为空,则说明该线程对链接永远等待。 (2) LwIP 网卡移植 本系统采用的是 CS8900 网卡,将网卡接收中断端口与嵌入式处理器的外部中断相 连接,有数据接收时引发中断进入处理程序。CS8900 为 16 位寻址方式,将 LwIP 协议 移植在网卡上需对网卡进行初始化,与收发数据等程序的编写。 网卡初始话函数主要负责芯片重启确保芯片正常工作,并对网卡的物理地址,接收 巾贞格式以及工作模式等相关参数进行设置。并且开启中断,数据收发功能。网卡初始化 流程如图 4.12 所示。 (附,跳)

设置中断端口 —^— 设置接收中断

重启芯片 ^

i 幵启发送 设置网卡 接收功能 物理地址 ★—

T iq 使能中断 设置接收帧格式 -T-

7 ] ■① 设置全 T 工模式 I ( M 图 4.12 网卡初始化流程图 Fig. 4.12 Initialization flow of network card 在网卡初始化后,编写网卡收发数据相关函数,接收函数中首先从寄存器中获取接 收数据长度,之后开始读取数据将读取的数据放入缓存中以备上层应用程序调用。在数 -29大连理工大学硕士学位论文

5 车载终端任务设计 5. 1 车载终端多任务流程 随着车辆日益普及,城市建设导致道路交错复杂,驾驶员对 GPS 车载导航系统更 为依赖,电子地图作为车载导航设备的主要功能,为驾驶员提供正确的道路信息,方便 快捷的指示用户到达目的地点。本系统以嵌入式平台为基础,实现车载终端导航应用, 提供电子信息服务。 本系统中车载终端作为车载结点设备,通过与 GPS 接收机相连获得当前设备的经 玮度信息与时间速度等状态信息。图形界面系统实现实时显示当前位置图形信息及速度 时间等相关信息。文件系统设计将所需的重要数据如速度,时间,位置等信息进行备份。 网络系统是通过建立的 B/S 模式服务器,通过网络连接,将汽车当前运行信息传输到信 息中心平台,实现终端信息交互信息中心通过浏览器登录终端网址提取相应数据,便于 及时掌握当前车辆运行信息,对车辆进行控制调度。车载终端应用如图 5.1 所示。 ^, 域 图 5.1 车载终端应用 Fig. 5.1 Application of vehicle terminal 5.2 车载终端多任务调度 依据车载设备功能需要,在操作系统内核的基础上通过扩展支持图形界面系统,文 件系统,网络系统使操作系统平台更加健全,功能更加丰富。在构建的操作系统平台上 实现上层车载终端应用程序幵发,实时为驾驶员提供导航位置信息等。UC/0S-I1 内核

-31 大连理工大学硕士学位论文

处于显示状态,该任务的优先级在系统中最低,保证在显示任务仍提供画面显示的前提 下,便于其他任务获得 CPU 使用权限运行。 (1)电子地图静态显示 随着城市不断建设,城市的道路信息日趋复杂为驾驶员的出行带来诸多不变,电子 科技的发展已经使车载电子地图已经取代纸质地图成为驾驶人员出行的必备条件。GIS 可以很好的反映路况信息,GIS 系统将城市地理信息按照点、线、面等地理类型进行分 层管理。本系统在设计过程中通过使用 Mapinfo 软件读取大连市电子地图信息。首先将 wor 格式的大连市电子地图信息导入 Mapinf 中,通过 Mapinfo 软件导出所需要的地理信 息,考虑到嵌入式系统内存限制本系统中电子地图显示的地理信息中面类型信息包括区 界、县界、湖泊水库、绿地;线类型信息包括国道、高速公路、一级道路、二级道路、 三级道路;点类型信息包括城区地物信息。Mapinfo 软件中为幵发人员开发提供的数据 格式主要有 mid 与 mif 两种文件格式:mid 文件中主要包含了某类型地理信息对象中的 各成员的名称属性;mif 文件中主要包含了该类型地理信息对象的各成员经讳度坐标信 息,成员个数,每个成员中的元素以及该成员的绘制信息。通过对以上两个文件的分析, 编写程序读取地理信息数据。 以高速公路数据信息为例,设计程序实现电子地图数据显示。定义道路类结构体及 调用关系如图 5.3 所不。 MapLine=^pMLs;//折线数据 My Point—lt*points; int SCount;//多少条折线 經―标数^edef struct {

mt color; //线条 1?颜色 IntLcount; //折线的点数 P^int'Itmct, char* Sname //折线名称 char* Lname; //名称 占 |玉据 6±知’ } MapLineSet; //折线集合结构体} MapLine; 图 5.3 道路信息结构体及调用关系 Fig, 5.3 Road information structure and call relationship 由于高速公路为线类型结构,高速公路信息在 mif 文件中主要由三条路段组成,每 条路段都是由多组的经玮度坐标点的折线以及该路段名称构成,首先定义高速公路类集 合结构体其成员包含高速公路类名称,高速公路的颜色,高速公路由多少条路段构成以 及每路段的数据指针。路段的数据指针指向路段结构体,该结构体主要定义了每条路段 -基于嵌入式平台的车载终端设计与应用

依据不同功能特性不同,将各功能划分为不同的任务,通过内核实现多任务调度。如图 5.2 所示,系统通过 LCD 显示器显示釆集到的数据信息,并提供电子地图为用户提供导 航服务,由于系统时刻处于显示状态固将该任务的优先级设为系统任务中的最低优先 级;设备通过串口与 GPS 接收机相连获取信息,将该任务的优先级设置中等优先级; 信息存储与读取,网络通信,这些任务具有较高的优先级,并且监控中心需要及时查询 当前设备的运行状态,固将网络任务优先级设为最高。由于速度与位置信息数据为非常 重要的数据,不同的任务在调用该资源时需单独对其进行访问,但是当显示任务占用存 储该数据信息的临界资源,若此时网络任务需通过调用该临界资源实时显示该数据,由 于系统其他中等优先级一直处于运行状态,网络任务容易产生优先级反转现象,造成网 络系统无法显示数据甚至死机现象,影响系统稳定性。网络任务要求有较高的实时性,

为避免了优先级反转发生,通过移植改进的 iiC/OS-II 系统内核,使整个系统运行更加 稳定。 网络通信任务 GPS 串口任务 电子地图显示任务数据信息存储任务 I m L 临界资源 j! 车载嵌入式终端设备 图 5.2 车载终端 C/OS-II 系统平台的任务调度示意图 Fig. 5.2 Scheduling diagram in vehicle terminal based on p,C/OS-II platform 系统通过 BootLoader 将程序指针指向系统主函数,在主函数中,首先对处理器进行 相关配置设置处理器工作频率,设置系统中断与操作系统时钟节拍;之后进行操作系统 平台相关软件初始化;完成平台初始化后对文件系统进行格式化分配 1MB 的 Flash 空间 作为文件系统存储器;创建信号量与邮箱,并任务根据任务重要性将网络通信、保存信 息、读取信息、GPS 通信以及人机交互任务由高到低依次分配优先级并创建任务;最后 启动操作系统,系统进入任务调度程序。 5. 2. 1 人机交互 本系统人机交互任务是通过液晶显示器为用户提供大连市电子地图显示、校园地图 导航以及重要信息查询等功能,即时显示当前设备的运行状态。由于人机交互任务一直 -32基于嵌入式平台的车载终端设计与应用

据包发送函数中首先重启网卡芯片判断其处于空闲状态后,将数据长度以及数据存入相

关寄存器中,待发送完毕后程序结束。 LwIP 驱动层文件 netif.h:该文件的主要功能实现了 LwIP 网络接口层的函数调用, 通过定义网络接口层数据结构 netif 来实现上层函数对底层的访问。其结构体如下: struct netif { struct netif *next; struct ip_addr ip_addr,netmask, gw; // 设定 IP 地址、子网掩码、网关 err_t (* input)(struct pbuf *p, struct netif *inp); //网络接口输入函数 err—t (* output)(struct netif *netif, struct pbuf *p, struct ip_addr *ipaddr); //IP 模块输出函数 err t (* linkoutput)(struct netif *netif, struct pbuf *p);//ARP 模块输出函数 }; 该结构体中主要包括的网卡的物理地址,IP 地址,网关,网络接口的输入输出函数。 其中成员 input 此时指向 lowJevel_input()函数实现底层设备驱动向 tcpip 协议层传递数 据包功能;ip 层向网络接口层发送一个数据包时调用成员 output 此时指向 low_level— outputO 函数,一般先将 ip 地址解析为 mac 地址,然后在发送数据;当 arp 模块需要向 接口层发送数据包时调用 linkoutputO 函数。LwIP 系统调用网卡驱动流程如图 4.13 所示。 ethernetif 一 init() ;———1 low_leve]」nit() I ? low_leve]_output() ? EMACSendPackel()

^ EMACTnit()

?

1^ 1^ 1

^ GetlnputPacketLenO ^ EMACReadPacket()

ethemetif_input() ? low_level_input() 图 4.13 LwIP 调用网卡驱动

Fig.4.13 Call process of network driver in LwIP ethernetif_init()函数中定义新的网络接口结构体,其中包括定义 low_level_output() 接口输出函数,low_level_init()接口底层初始化函数。在 low_level_output()中调用了网 卡数据发送函数。low_level 一 init()中定义了硬件的物理地址,网卡初始化,网卡中断初 始化等函数。low—level— inputO 函数实现网卡接收数据函数的调用。netif 网络接口完成 了将 LwIP 上层应用与底层网卡相关联,实现了整个 TCP/IP 协议的数据传输。 -30基于嵌入式平台的车载终端设计与应用

将波特率设定为 38400bps,8 位数据位,1 位停止位无校验位。由于 GPS 不间断传输数 据信息,固需设置串口与定时器中断,定时打开串口接收 GPS 获得的信息数据。 GPS 接收机通过与定位卫星无线通讯接收的当前所在地点的相关位置数据信息, GPS 接收数据遵循 NMEA0183 协议,协议传送不同格式的数据顿,本系统中读取巾贞头 S$GPRMC 的巾贞信息作为读取数据的标准,$GPRMC 顿格式信息如表 5.1 所示。 SGPRMC,071459.000,V,3853.2639,N,12131.4913,E,1.03, ,210711,,* 13<CR><LF> 表 5.1 $GPRMC 格式信息 Tab. 5.1 Format informaton. of SGPRMC 中贞格式信息 数据内容说明

SGPRMC ^ 071459.000 UTC 时间 hhmmss 格式 3853.2639,N 讳度及讳度方向 12131.4913,E 经度及经度方向 1.03 速度 210711 速度 DDMMYY 格式 串口通过 GPS 接收机获取的是当前设备的经纟韦度,速度,时间状态信息,这些信 息作为系统的共享资源需要进行数据保护,系统通过申请固定内存地址信息存储共享资 源,他任务是共享资源时,读取该地址信息即可。由于 GPS 不间断传送数据信息,为 保证其他优先级任务能够获得 CPU 的使用权限,程序会将 GPS 通讯任务定时关闭串口 并将该任务挂起释放 CPU 使用权。在解析 GPS 数据过程中,将系统所需的位置,速度, 时间信息提取出来存入相应存储器内,由于 GPS 所釆集的经玮度信息按照度分秒为单 位存储,而电子地图所采用的是以度为单位的格式存储,需对 GPS 所采集到的信息进 行换算避免后续显示出现错误。串口获取 GPS 信息代码如下: void re—gps(void) { temp=rURXHO; //获得串口数据

if(temp == '$') //起始标志 { Re—Flag =1; //接收标志 Re—counter = 0; //字节计数器 Re_Seg = 0; //每句段计数器 return;} if(Re_Flag) { if(temp ==‘;) { ++Re_Seg; //段计数器加 1 Re—counter = 0; } //字节数器清空 -36基于嵌入式平台的车载终端设计与应用

的名称,构成路段的坐标点数以及坐标数据指针,最后指向坐标信息数据,完成道路层 次的数据调用。 由于电子地图数据量较大,首先需将电子地图数据进行合理剪裁,在保证地图数据 不失真的前提下即可减少嵌入式系统存储负担又可加快显示器画图速率。将剪裁后的数 据通过图形界面系统画图函数,依据道路宽度,颜色以及坐标信息通过数据坐标转换即 可将道路图形画于现实器上。应用程序以此可分层将区域、道路、点地理信息画于显示

器上完成电子地图的现实。 根据应用程序功能需求,实现电子地图缩放、位移等功能,由于显示器的像素为 320 X240,虽然 GUI 提供虚拟显示功能,为保证屏幕的刷新速率提高电子地图相应速率, 在绘制电子地图过程中通过增加边界限制使得画坐标点时至显示显示器像素内的数据, 这样减少的电子地图的绘制量提高了屏幕的响应速率。在实现地图缩放移位等功能中, 通过对坐标数据值进行统一的加减乘除运算,使得地图数据进行统一的放大缩小处理, 以此完成车载电子地图的缩放移位功能。 (2)校园地图导航 由于大连市电子地图道路结构复杂,数据信息量大对整个大连市道路进行路径导航 规划对嵌入式 ARM7 处理器负担较重,数据存储空间不足。而对于某区域的导航即可满 足用户需求又可提高处理器处理数据速率,固本系统实现校园地图的导航功能。在校园 电子地图导航中,触摸屏作为控制输入设备,迪文显示终端作为显示设备。首先将校园 地图图片存入迪文终端显示器存储器中,系统通过模拟 GPS 移动数据,经坐标转换将 数据显示在迪文显示器上,根据校园地图信息设定 11 个校园地理位置作为导航结点, 建立网络拓扑结构有向图,通过计算查找当前距离模拟车载位置信息最近的导航结点, 通过 dijkstra 最短路径査找算法,对结点有向图权值进行遍历计算,最终计算该导航结 点与目的结点的最短路径,将导航结点用线连接显示,完成校园地图路径导航。 (3) GUI 窗口调度过程 U C/GUI 图形界面系统通过窗口管理机制与控件功能实现用户对车载终端设备的 操作与车载功能切换。本系统通过设计为驾驶员提供菜单选择功能,用户根据触摸屏按 下相应控件,C/GUI 根据窗口相应消息完成各功能函数的调用,在进入窗口显示函数 后显示背景图片与按钮控件提示用户进入菜单界面,当系统接收到触摸消息后,进入菜

单选择界面。菜单选择界面用按钮控件的形式列出车载系统提供的服务功能,系统再根 据输入的触摸消息进入对应的窗口完成相应功能。界面调用流程如图 5.4 所示。 -34大连理工大学硕士学位论文

C 人机交互)



GUI 系统、电子地图初始 化,显示!景窗口 进入背景窗口回调困数 r—n —背景窗口重绘 进入功能选择窗口 〈觀―TOUCH 进入选择窗口"“I 回调函数 〈判断消息类型^ 1=--=^=?^L 绘制大连市 I 显示设备当目 U I 显示设备历史 I 校园地图导航 I rra ^ 电图 I 状态,录丨状态录丨_ I 选择目对也点 I I LU 上 I 敬;I /?\n

I

<^ WM_TOUCH

<^ WM_TOUCH

<^ WM_TOUCH

<" WM_TOUCH

进入选 ^^择 I 迸入选择选择 I 窗口回调函数 I 窗口回调函数 I 缩放移位操作 I V I 刷新窗口 I I II - j 丨窗口 I ^ 返回上级菜单 ‘丨

I 图 5.4 GUT 界面显示流程图 Fig. 5.4 Interface display flow in GUI 5. 2. 2 GPS 通信 车载设备通过 GPS 接收机获得当前设备的经讳度、速度等状态信息,经讳度信息 是车载设备实现其他功能的基础,本系统通过串口与 GPS 接收机相连,设定串口通讯 -35基于嵌入式平台的车载终端设计与应用

5. 2. 4 网络通信 网络通信是车载终端与监控中心信息通信的重要渠道,监控中心通过网络可获得当 前车辆的状态信息。本系统中通过以太网模拟监控中心与车载终端间通信,实现对车载

终端运行状态查询功能。 (1) HTTP 协议 Web 技术作为网络信息交互平台之一,以其易于幵发,执行效率高的特点得到普遍 应用。通常 Web 网络通信实现方式为两种:B/S (浏览器/服务器)模式与 C/S (客户端 /服务器)模式。由于 C/S 模式下为客户端采集数据,每个客户端将数据发送给服务器, 客户端与服务器根据自身设备情况编写数据通信程序,程序开发相对复杂。而 B/S 模式 下服务器采集数据,开发人员只需编写服务器数据通信程序,通过任意浏览器可完成浏 览器与服务器之间的通信,在不需编写浏览器代码的前提下实现方便简单。固本系统通 过在嵌入式处理器上建立 B/S 模式服务器实现网络通信。 Web 技术是通过 HTTP 协议格式实现网络信息传送,HTTP 协议通信基于请求/响应 模式实现浏览器与服务器之间的通信。通信过程如图 5.6 所示。 建立连接一 发送请求信息 I Web 嵌入式 浏览器<发送响应信息服务器 关闭连接一 图 5.6 HTTP 通信过程 Fig. 5.6 Communication process of HTTP 建立连接:嵌入式 Web 服务器通过调用函数 netconn_listen ()监听 80 端口,等待客 户端发送连接请求。 发送请求信息:建立连接后浏览器发送请求报文,一般请求报文包含两种命令类型

Get 或 Post 命令,Get 命令主要获取服务器信息,Post 功能为向服务器添加信息。在本 系统中浏览器读取服务器数据信息,固浏览器发送 Get 命令读取由 URL 所标识的信息。 发送响应信息:系统接收请求报文后,并判断浏览器请求报文内容。根据命令请求, 发送响应信息,响应信息不仅含有状态信息还包括静态 HTML 文本显示静态网页或者 CGI 接口程序实现其他响应功能。 -38大连理工大学硕士学位论文

关闭连接:当浏览器与服务器结束本次信息传送后需通过调用 netconn—dose()函数 关闭当前连接。 (2) HTML 语言与 CGI 接口 Web 中用 HTML 超文本标记语言描述网页文档结构,HTML 为网页多样化设计 提供了可能。浏览器通过解释 HTML 文件来显示网页内容,网页内容可图文并茂,风 格迴异具有特色。网页的格式结构由 HTML 语言定义,例如结构,标题,段落等格式 信息。HTML 可提供 Form 表单命令功能,通过填写表单实现浏览器与服务器的信息交 互。HTML 文件为用户提供格式规范的信息显示界面。本系统中 HTML 页面中常用到 的格式命令如表 5.2 所示。 表 5.2 HTML 语言格式命令 Fig. 5.2 Command format of HTML 常用命令符 命令作用 <html></html>

表明该文档为 html 文件 <head></head> 文档标头 <title></title> 文件标题 <body></body> 文档正文 <form></form> 表单功能

在 HTML 文件中定义 Form 表单元素时必须指定两个属性信息,①Method 信息:该 属性指定通过哪种 http 方式实现信息传送,常规传送方式为 Get/Post/Head 三种方式, 为简化编程在本系统中统一采用 Get 方式传送信息。②Action 信息:该属性决定响应表 单信息后对处理数据程序的地址,便于 CGI 程序调用,调用相应函数对提交信息进行处 理响应。 在 PC 机操作系统网页设计中可用到的调用方式有很多种,例如 PERL, JSP, ASP 等语言,但由于嵌入式处理器限制,高级语言占用内存较多,开发较为复杂。CGI 公共 网关接口用 C 语言实现,具有高效,简洁,连接性好的特点非常适合嵌入式网页开发。 CGI 是运行在 HTTP 服务器上的外部接口程序,网页在没有 CGI 的情况下只能提供 静态网页的显示,根据浏览器传送的内容调用相应的 CGI 程序,在本系统中浏览器通过 发送 Get 格式命令,在 action 属性之后加入相应索引字符,操作系统后台进根据字符查 找相关 CGI 程序,程序执行结果由 HTTP 服务器传送给浏览器,完成网页的动态操作。 本系统网络通信首先初始化 LwIP 协议栈设定 IP 地址,网关等信息,并在网卡初始

化中定义设备的物理地址。在网络接口初始化后建立 HTTP 服务器线程通过监听 80 端 口等待浏览器登录相应 IP 网址发送连接请求,服务器接收请求数据后判断接收到的 Get 命令后 Action 属性所携带的索引信息,通过索引信息查询调用相应的 CGI 程序处理浏 -39大连理工大学硕士学位论文

switch(Re_Seg) //分段处理 { case 0: if(Re_counter == 3) //段 0,语句类型判断 switch(temp) { case 'M':Command = 2; //语句类型 $GPRMC break;} break; case 1: ...... //提取相应数据信息 break;}}} } 5.2.3 信息存储 车载终端的地理位置、速度信息是整个系统的重要数据,用户通过读取这些数据的 来判断车辆的运行状态,所以车载终端不但需要对这些数据信息进行实时显示,更需要 将重要的数据信息进行备份作为黑匣子功能为以后车载信息査询提供数据资源。 在文件系统格式化过程中分配 1MB 的 Hash 存储空间作为文件系统内存,之后对文

件系统坏块进行查找与处理。在初始化文件系统后,系统将文件的读、写任务分配不同 的优先级,并在第一次写任务过程中新建一文件 flashl.txt 作为数据的存储文件,在以后 写文件操作过程中只需打开此文件以追加的写入方式将数据信息写入即可。并在文件读 写操作后将文件系统关闭,在读写任务过程中通过信号量保证信息存储任务与窗口任务 间的同步。文件系统读写任务流程如图 5.5 所示。 (写文件开始) C 开始) 打幵文件 nashl .txt 窗口 I 丨

数据信号参 整理需保存的数据 i 读取信息 打开文件 flashl .txt 数据信息读入缓冲区 在文 I"?结尾 写入数★据信息 关闭文件 ^^

I 1 图 5.5 信息存储流程图 Fig. 5.5 Flow of information storage

-37基于嵌入式平台的车载终端设计与应用

览器的请求。实现车载终端网站的登录以及状态信息查询等功能,HTTP 信息处理流程 如图 5.7 所示。 〔mmin ) LwIP 协议找初始化 I 二 网络接口初始化 建立 HTTP 服务器线程 监听 80 端口 读取 S 览器 I 发送数据信息 I 进入登录界面 显示▼车载 提万了错误 状态数据 返回登录 ^4 1 图 5.7 HTTP 服务器通信流程图 Fig. 5.7 Communication flow of HTTP server

5.3 测试结果与分析 5. 3. 1 移植内核测试 在以 JiC/OS-II 为核心的操作系统中运行 3 个任务:H、M、L 任务,任务优先级依 次降低,系统运行状态如表 5.3 所示。加入修改就绪表方法前,任务 L 运行后占用临界 资源,任务 H 由于等待临界资源在 100ms 时被挂起,此时任务 M 就绪抢占内核运行约 1770ms,任务 L 与任务 H 被挂起直至任务 M 运行结束,在 2020ms 时任务 L 释放临界 资源,任务 M 才能够运行,假设任务 M 运行时间较长则严重影响了操作系统抢占式内 核运行高优先级任务的初衷与系统的实时性,甚至造成系统瘫痪。加入修改就绪表方法 后,任务 L 占用临界资源并运行,100ms 时任务 H 等待临界资源被挂起,由于修改就绪 表,任务 M 被挂起,任务 L 继续运行,在 520ms 时任务 L 释放临界资源,任务 H 由挂 -40基于嵌入式平台的车载终端设计与应用

规划,绘制出当前模拟位移与目标结点的连接路线,通过刷新图片实现动态导航功能。 ^ llaBSfiQ""“r I pHas;^^J

; : I; :?、i :Vr^ fcilMJ. V 图 5.8 人机交互效果图

Fig. 5.8 Effect picture of human-computer interaction 5. 3. 3 GPS 通讯测试 当前车载终端位置信息如图 5.9 所示。车载终端设备通过串口与 GPS 接收机相连, 通过系统菜单按钮选择大连市电子地图显示后,设备解析 GPS 接收机传送的时间、经 讳度、速度等状态信息后将经纬度信息进行坐标变换,显示在大连市电子地图上。 職 4 ”丨丨 ■ 41?? ’ : 图 5.9 GPS 通信效果图 Fig.5.9 Effect picture of GPS communication -42大连理工大学硕士学位论文

5.3.4 文件系统测试 车载终端文件系统实现重要数据的实时显示与备份查找功能,通过菜单栏按钮可选 择当前数据记录与历史数据记录两项功能,进入当前记录窗口后 GUI 通过列表控件显示 当前设备的日期时间、经炜度、速度信息,并将这些信息写入 flashl.txt 文件中存入 Flash 存储器内。当进如历史记录窗口后,系统通过读取文件信息将读取的记录依次显示先列 表控件中。文件系统效果图如图 5.10 所示。 講 mm H :¥ ^ C 2 : -41-7 ;二、‘ ? LIM ! ‘

mmn - Li!眼侧碼遞勸? - ‘ - :d FM!3i4mnM3mi3 m t: H :-:權:H mi 嗎 IK!::、 图 5.10 文件系统效果图 Fig. 5.10 Effect picture of file system 5.3.5 TCP/IP 协议栈测试 车载终端服务器效果图如图 5.11 所示。本设计中车载终端通过以太网与监控中心通 信,首先通过打幵浏览器登录车载终端设定的网址 http://192.168.0.48/。 丨 111"1.. 11 1 ..... 、 X/t-Z> ????? **■£> : i*‘ .. 乂. ) ) ? 0fe* ?..,.(.克;/■'** .叙枕* B U' ^ 綴 ■ ^ ?ts ; \p :ss K* ?? ?? : ' OBK st ? aJ ' * ■ £t5>* X*珍、..* 显示 H 前车载终端信息 欢迎进入车载终端网页 Sft 3£?i _?入新査找车褒信息 m m I*5i 物《 應膽 9^1

请按键■ * i!tf . 0 i?t3 I ,v **?* ?*??* i Si

1 aa j-"-

图 5.】1 HTTP 服务器效果图 Fig. 5.11 Effect picture of HTTP server 进入车载终端服务器登录界面,根据界面提示信息,在对话框中输入相应的车牌与 密码确定后进入车载终端状态显示界面,主要显示车载系统当前的经纬度信息与速度信 息。监控中心查询完毕后关闭浏览器网址断幵与车载终端服务器连接。 -43 基于嵌入式平台的车载终端设计与应用

结论 本文设计了基于嵌入式操作系统的车载终端应用系统,详细阐述了以 UC/OS-II 操 作系统内核与 ARM7 嵌入式处理器为核心的嵌入式操作系统平台的开发流程。本文完成 了对 UC/OS-II 内核的改进,通过动态任务切换的方法在任务调度过程中修改任务就绪 表将中等优先级就绪任务移出队列,解决了 UC/OS-II 内核存在的优先级反转问题,并 将改进后的内核移植入 ARM 处理器上作为系统内核,在此基础上构建完整平台实现车

载终端应用。根据车载功能特点,系统完成了车载多任务设计。设计窗口化管理的人机 交互界面,移植 PC/GUI 系统实现人性化的显示界面,通过触摸屏完成用户输入操作, 便于用户与设备间交互。提供良好的文件管理系统,移植 FAT16 文件系统,将设备需 要保存的重要数据信息进行存储备份,并可及时查询当前设备状态信息。支持网络接口, 移植 LwIP 协议栈,构建 B/S 模式服务器实现监控中心监控与调度。 系统测试结果表明,基于任务切换方法改进的 P C/OS-II 内核解决了车载多任务调 度出现的优先级反转问题,并且该方法比上限协议与继承协议具有更高的执行效率。车 载多任务调度运行稳定,设计的系统平台具有实用性。 随着课题研究的不断深入,嵌入式车载终端系统平台在以下几方面有待改进与完 善: (1)车载导航范围改进:由于设备存储器内存有限,车载导航拓扑结构复杂,本 系统只设计了校园地图的导航功能。系统可构建车载复杂的车载结点拓扑结构,完成大 连市的车载导航功能。 (2)文件系统改进:由于 PC/FS 中 FAT32 的文件系统为收费软件,本文移植了 FAT16 文件系统,文件关系能力受到限制。在以后的研究中可以移植其他文件系统实现 FAT32 文件系统。 (3)服务器网页改进:本系统在网页中仅提供了经纬度,速度状态的数字信息。 为美化网页界面,便于观察。可以将数字信息与地图相结合,直观显示当前设备的运行 位置。 -44大连理工大学硕士学位论文

起态转化为就绪态运行,避免了由于优先级反转而造成高优先级任务被无时限挂起的现 象,使系统更加稳定,解决了优先级反转问题。表 5.3 中,^表示任务 H 申请信号量的 时间,/2 表示低任务 L 释放信号量的时间,?3 表示任务 H 得到信号量的时间。 表 5.3 内核改进前后效果对比 Tab. 5.3 Contrast of effect in modifying the kernel ti /ms t2 /ms /3/ms 内核改进前 100 2020 2020 内核改进后 100 520 520

将任务动态切换方法与上限协议以及继承协议进行对比,效果如表 5.4 所示,优先 级反转发生 1000 次后,任务动态切换方法执行速度比上限协议算法快约 200 P s,比继 承协议算法快约 700 ns。优先级反转发生 2000 次后,任务动态切换方法执行速度比上 限协议算法快约 300u s,比继承协议算法快约 750P s。由此可知,任务动态切换方法提 高了内核执行速度,在解决同样优先级反转时更具有高效性,在不改变原有任务优先级 并且不阻塞其他较高优先级任务运行的情况下,加快了任务响应速度,更好的解决了优 先级反转问题。表 5.4 中,n 表示优先级反转发生 1000 次,任务 H 获得临界资源的时间, /2 表示优先级反转发生 2000 次,任务 H 获得临界资源的时间。

表 5.4 不同算法执行时间对比 Tab. 5.4 Contrast of executive speed by different algorithm ?i /ms ^/ms 动态切换方法 10479400 20979900 优先级上限协议 10479600 20980500 优先级继承协议 10480100 20981400 5. 3. 2 人机交互测试 图 5.8 为人机交互效果图。系统启动后显示 GUI 界面,通过按钮进入菜单窗口,用 户根据菜单窗口按钮信息进行选择。 大连市电子地图显示界面:系统首先显示大连市地图全貌,在根据 menu 菜单提示, 用户可对地图进行缩放、移位操作,地图根据放大的尺寸不断显示出细致的多级道路与 城区地物信息。 校园地图导界面:界面加载校园地图图片信息,并绘制出设定的 11 个导航参考结 点。系统通过下拉框选出目标位置结点,并根据当前模拟 GPS 位置信息进行最优路径 -41 大连理工大学硕士学位论文

参考文献 [1]刘红.嵌入式系统技术发展趋势浅析[J].中国建设教育.2006,10(10):51-54. [2] Libin Wu,JinLin Wang, Peng Sun, Jianliang Hu. A Media File Snapshot Technique Based on Embedded System. Computer Science and Software Engineering, 2008 International Conference on,2008,110(113):12-14. [3]张焕国,李晶,潘丹铃等.嵌入式系统可信平台模块研究[J].计算机研究与发展,2011,48(7): 1269-1278. [4]田野,张浩.ii C/OS-n 操作系统在数码相框中的应用[J].计算机应用.2010,29(8):36-39.

[5]唐建湘,陈特放,石英春.基于嵌入式系统汽车行驶记录仪的研制计算机[J].测量与控 制.2007,15(6):837-840. [6] Fuquan Pan, Lixia Zhang, Fengyuan Wang. GIS and GPS Based Vehicle Guidance System. International Conference on Intelligent Computation Technology and Automation.2008:251-254. [7] 黄 晶 , 魏 贵 玲 . 基 于 GPS/GIS/DR 的 低 成 本 车 载 导 航 仪 研 究 [J]. 压 电 与 声 光 ,2009 , 31(6):791-793. [8]文广超,邓寅生,郭梅荣等.嵌入式电子地图设计中 MIF 文件的读取与转换[J].山西建 筑,2007,33(33):3-5. [9]罗功坤,潘绍明,陈政强,林川.基于 ARM 的 GPS 定位信息系统设计与实现[J].电子测量 技术. 2009,32(9):114-117. [10]于小亮.嵌入式系统应用现状及发展趋势概述[J].电脑知识与技术,2008,4(28):239-241. [11]白博,郭宝龙.智能移动机器人实验平台设计[J],电子元器件应用.2007,9⑴:45-48. [12]胡曙辉,陈健.几种嵌入式实时操作系统的分析与比较[J].单片机与嵌入式系统应用. 2007,5:5-9.

[13]胡俐蕊,王则林,胡传志.基于 LwIP 的 y 与软件. 2010,27(4):271-273.

C/OS-II 网络应用程序设计方法[J].计算机应用

[14]王树红.嵌入式系统的现状及发展趋势[J].太原理工大学学报.2007,8(2):121-123. [15]刘承广,常宇健,杨卫东等.uCOS-II 在车载 GPS 移动终端中的应用[J].微计算机信 息,2005,(2): 103-104. [16] Yujun Bao, Xiaoyan Jiang. Construction of Embedded System Platform which Based on ji C/OS-II and ARM7 Kernel Microprocessor.Computer Network and Multimedia Technology, 2009. CNMT 2009. International Symposium on,2009,1(4): 18-20. [17]任哲.潘树林.房红征.嵌入式操作系统基础 y 版 社.2006. [18]孙健,邰定蓉,李署坚,孙洁.基于嵌入式的 GPS 模拟信号源的设计与实现[J].计算机测量 与控 制.2007,15(5):670-673. [19] 李 文 君 , 岳 曾 敬 . 基 于 嵌 入 式 Linux 电 子 地 图 系 统 的 研 究 软 件 [J]. 幵 发 与 应 用.2008,27(4):94-96. [20]李晓侠,彭楚武,易珂, 黎职富.基于嵌入式 Linux 的车载定位系统设计[J].汁算机信息.2008, 24(5):188-190. -45 基于嵌入式平台的车载终端设计与应用 C/OS-II 和 Linux[M].北京航空航天大学出

[21] Wang Ping. Research on the Embedded System Teaching. Education Technology and

Training, 2008. and 2008 Internationa] Workshop on Geoscience and Remote Sensing. ETT and GRS 2008. International Workshop on, 2008,191(21):21-22. [22]李永钧.中国汽车导航业面临的机遇与挑战[J].汽车工业研究,2012,(10):22-24. [23] Roger C 丄 anctot.充满挑战的中国汽车导航业[J].汽车与配件,2012,(23):42-43. [24] TSP 或将主导汽车导航市场未来发展方向[J].汽车零部件,2011,(9):33. [25]诸葛斌,周荷琴,刘光远等.汽车动态导航终端的研制[J].汽车工程,2006,28(7):639-642. [26]刘振兴.ARM 嵌入式技术实践教程[M].北京航空航天大学出版社.2005. [27]李岩, 荣盘祥.基于 S3C44B0X 嵌入式 nCLinux 系统原理及应用[M].北京: 清华大学出版社, 2005. [28] 张 波 , 朱 新 华 . 基 于 ARM 的 数 据 采 集 系 统 设 计 [J]. 火 力 与 指 挥 控 制 , 2009 , 34(2): 127-129. [29]沈建华,罗悦怿?基于 NAND Flash 的 FFS 设计与实现.计算机应用与软件[J].2005,22(6): 87-89. [30] 王 科 俊 , 李 国 琴 , 韩 敏 艳 . 触 摸 屏 在 S3C44B0 上 的 应 用 [J]. 自 动 化 技 术 与 应 用.2006,25(5):46-48 [31]唐康华,何晓峰,吴美平等.面向嵌入式应用领域的 GPS 接收机设计[J].仪器仪表学报, 2007, 28(8):1497-1501. [32]吴绍根,李洛,廖永红.U 轻工 C-TCP/IP 在基于 P C/OS-II 的 LPC2210 系统的移植实现[J].广东

职业技术学院学报.2008,7(3):5-8. [33]王剑峰, 马艳萍.pC/OS-II 在 ARM7 处理器的移植与测试应用[J].青岛大学学报, 2005,26(5): 443-447.

[34]邵贝贝.嵌入式实时操作系统 nC/OS-II(第 2 版)[M].北京:北京航空航天大学出版社,2003. [35]宁杰城,王春,周新志.ARM7 内核上的 pC/OS-II 嵌入式系统移植[J].中国测试技术, 2005,31(2): 65-66. [36]韩方,李忠一.在 P C/OS-II 中文件系统的分析与建立[J].计算机工程.2007,33(4):275-277. [37] Se Jin Kwon, Tae-Sun Chung. An Efficient and Advanced Space-management Technique for Flash Memory using Reallocation Blocks. IEEE Transactions on Consumer Electronics.2008: 631-638. [38] Juan Zhang, Hai-bing Su, Qin-zhang Wu. Research of DSP File System Based on CF Card. The Second International Conference on Computational Intelligence and Natural Computing Proceedings,2010:80-84. [39]彭兵,步凯,徐欣.NAND Flash 坏块管理研究[J].微处理机.2009,2:113-115. [40] Zhang Juntao, Yao Kun. Research on Reliability Improvement of NAND Flash Memory in FAT File System. International Conference on Biomedical Engineering and Computer Science.2010: 1-4. [41]王超,刘伟.基于文件系统的高速数据记录系统[J].北京理工大学学报.2010,30(5):543-547. [42] Tang Yawei,Jiang Kai, Fu Xiuquari, Li Dingli. Low Power Dual-Core Holter System Based on MSP430 and ARM7. The Third International Conference on Bioinformatics and Biomedical Engineering. 2009:1-3. -46大连理工大学硕士学位论文

[43] 王 丁 , 闫 瑶 , 张 廷 字 . 触 摸 屏 校 准 的 一 种 通 用 算 法 [1]. 自 动 化 技 术 与 应 用 .2008 , 27(2):116-118. [44] 史 蕊 , 蔡 浩 , 王 振 , 张 素 芬 . 基 于 S3C4480X+UCOS-II 的 触 摸 屏 设 [J], 电 测 与 仪 表 +2007,44(494): 50-53. [45]吴丽彬,王劲林,胡建良,孙鹏.基于边缘平滑双线性插值算法的 PCGUT 高清显示技术 术[J],计 算机应用研究.2008,25(11):3382-3384. [46]吴倚龙,郝卫东,赵瑞芳.P CGUI 和 y COS-II 在 S3C2410 上的整合移植实现[J].桂林电子 工业 学院学报.2006,26 叫:27 卜 27. [47] Hongzhe Xu, Xiaohui Peng, Li Yue, Chen Ming Research and Application of Signal Mechanism in Remote Embedded Data-Gather System. PACIIA the Eighth Pacific-Asia Workshop on Computational Intelligence and Industrial Application,2008:761-767. [48]孔栋, 郑建宏.嵌入式 TCPIP 协议栈 LWIP 在 ARM 平台上的移植与应用[J].通信技术,2008, 41(6):38-40. [49]陈川,李雪梅,郭勇等.基于 SOPC 的嵌入式 Web 服务器系统设计与实现[J].科技导 报,2011,29(23):62-65. [50] Junyan Shang; Huafeng Ding,Application of lightweight protocol stack LwIP on embedded Ethernet, Electrical and Control Engineering (ICECE),2011 International Conference on,2011, 3373(3376):16-18. [51]薛安琪,屈玉责, 赵宝华?一种新的实时系统内核调度算法[J】 .计算机工程.2011,37(6):286-2 肌 [52]赵奇,索晓冉.实时系统优先级反转研究[J].计算机应用研究.2008,25(6):1728-1730.

[53] Ketan Kotecha,Apurva Shah. Adaptive Scheduling Algorithm for Real-Time Operating System. IEEE World Congress on Computational Intelligence.2008:2109-2112. [54]王溪波,周本海, 于戈.PC/OS-II 中解决优先级反转问题的实现方法研究[J].沈阳工业大学学 报.2007,29(4):427-431. [55] Jae-Ho Lee, Heung-Nam Kim. Implementing Priority Inheritance Semaphore on P C/OS Real-time Kernel.Software .IEEE Workshop on Technologies for Future Embedded Systems. 2003:83-86. [56] 马 德 新 , 徐 鹏 民 . 实 时 操 作 系 统 PC/OS-II 调 度 算 法 的 研 究 [J]. 嵌 入 式 操 作 系 统 应 用.2007,23(6): 73-75. -47基于嵌入式平台的车载终端设计与应用

攻读硕士学位期间发表学术论文情况 1 张贺,杨素英.yC/OS-II 在车联网终端设备中的应用,大连理工大学研究生网络学 刊,2013.已录用(本硕士学位论文第三章、第五章) -48 — 大连理工大学硕士学位论文

致谢

转眼研究生即将毕业,感谢老师、同学给予我的鼓励与帮助,使我不断地成长。研 究生期间的学习与生活是我人生最为美好的回忆。 在这次毕业设计的过程中,首先要感谢杨素英老师。在杨老师的指导和帮助下,我 不断地克服困难、整理学习思路,杨老师严谨的治学态度,实事求是的工作作风,让我 获益菲浅。并且杨老师在毕设期间为本科生提供了良好的学习环境和学术气氛,让我不 断地进步。在此,谨向杨老师致以崇高的敬意! 同时,感谢科技园 A0713 的全体研究生们,是师兄师姐们的无私帮助,在我遇到问 题时的悉心指导,让我不断鼓起勇气面对困难。 感谢一起做毕业设计的同学们,毕设期间大家一起努力,共同克服困难,遇到问题 互相帮助,让我们更加体会到了集体的温暖。 最后,感谢在百忙之中抽出时间来评阅和答辩的所有老师。 -49大连理工大学硕士学位论文

大连理工大学学位论文版权使用授权书 本人完全了解学校有关学位论文知识产权的规定,在校攻读学位期间 论文工作的知识产权属于大连理工大学,允许论文被查阅和借阅。学校有 权保留论文并向国家有关部门或机构送交论文的复印件和电子版,可以将 本学位论文的全部或部分内容编入有关数据库进行检索,可以釆用影印、 缩印、或扫描等复制手段保存和汇编本学位论文。 学位论文题目:

作者签名: H

曰期:她年》月 v 曰

导师签名:1 如务革) 日期:二?年_,月?日


赞助商链接