版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湖南文理学院课程设计报告课程名称:嵌入式系统课程设计专业班级:自动化班学号(2位丿学生姓名:指导教师:完成时间:2013年7月1日掖告成绩:湖南文理学院制 TOC o 1-5 h z摘要III一、设计题目6 HYPERLINK l bookmark8 二、设计要求6 HYPERLINK l bookmark10 三、设计的作用目的6 HYPERLINK l bookmark12 四、智能车载终端总体设计6 HYPERLINK l bookmark14 4.1主要模块基本功能介绍8 HYPERLINK l bookmark16 模块选型8 HYPERLINK l bookmark18 GPS模块
2、8 HYPERLINK l bookmark20 GPRS模块8 HYPERLINK l bookmark22 语音模块9 HYPERLINK l bookmark24 液晶显示9 HYPERLINK l bookmark26 五、系统硬件设计10 HYPERLINK l bookmark28 ARM微控制器模块10 HYPERLINK l bookmark30 2时钟及复位电路11 HYPERLINK l bookmark32 FLASH存储器电路设计11 HYPERLINK l bookmark34 GPS模块电路设计12 HYPERLINK l bookmark36 GPRS模块电路设计
3、12 HYPERLINK l bookmark38 六、系统软件设计13 HYPERLINK l bookmark40 1嵌入式操作系统的选型13 HYPERLINK l bookmark42 配置编译内核14 HYPERLINK l bookmark44 6.3嵌入式引导程序移植14 HYPERLINK l bookmark46 6.4应用软件的设计14 HYPERLINK l bookmark48 Linux下的串口编程14 HYPERLINK l bookmark50 Linux下的网络编程16 HYPERLINK l bookmark52 Linux下的多线程编程16 HYPERLIN
4、K l bookmark54 各模块协作示意图17 HYPERLINK l bookmark56 七、系统调试应注意的问题18 HYPERLINK l bookmark58 八、设计总结18 HYPERLINK l bookmark60 九、参考文献19摘要近年来,随着我国经济的快速发展,我国城市人口规模不断扩大,汽车保有量也逐步增长。由此引发的城市交通问题越来越突出,如交通拥挤、交通堵塞、噪音污染、废气污染等,严重影响城市的可持续发展和居民的正常生活。大力发展城市公共交通势在必行。智能公交系统是现代控制技术、定位技术和无线通信技术等多种技术的有机结合,它的建设可以改善公交公司的企业管理方式,
5、提高公交系统的运营效率和服务水平,是旨在解决城市交通问题的一项根本性方案。GPS是由美国建立的新一代卫星导航与定位系统,具有全球性、全天候、陆海空全能等特点,特别适用于交通运输行业,配合中国移动稳定可靠、覆盖面广、数据传输速度极快的GPRS网络作为信息传输的媒介,以GPS、GPRS为主要技术的智能公交系统较以往利用射频、数传电台技术方式建造的公交系统具有更加稳定、实时性更高等特点,是当前智能公交系统设计的理想方案。本论文在研究国内外智能公交现状和现有GPS、GPRS等技术的基础上,提出了基于ARM的公交智能车载终端的设计与实现方法,包括终端总体设计方案、关键技术的研究、软件的设计、产品实现等内
6、容。文章在总体设计中提出了终端的功能要求,并针对功能要求提出了相应的设计方案;在硬件设计中给出了具体的硬件设计原理图,并就硬件选型、原理图设计中的关键问题进行了探讨;在软件设计中给出了终端主要软件设计的程序流程图,并对程序设计思路进行了细致的讲解;最后对个模块进行了调试和功能测试。关键词:车载终端,智能报站,ARM,GPS,GPRSAbstractInrecentyears,withtherapideconomicdevelopmentofourcountry,ourcountrycitypopulationscaleunceasinglyexpands,thecarhasalsogradua
7、llyincrease.Causedbytheurbantrafficproblemisbecomingmoreandmoreserious,suchastrafficcongestion,trafficjams,noisepollution,wastegaspollutionandsoon,theseriousinfluencethesustainabledevelopmentofthecityandpeoplesnormallife.Todevelopurbanpublictransportationisimperative.Intelligentbussystemisthemodernc
8、ontroltechnology,positioningtechnologyandwirelesscommunicationtechnologyandsoonthemanykindsoforganiccombinationoftechnology,itcanimprovetheconstructionofthebuscompanymanagement,improveoperationefficiencyofthepublictransportsystemandservicelevel,isdesignedtosolvethetrafficproblemsofcityaradicalplan.G
9、PSistheUnitedStatestosetupbyanewgenerationofsatellitenavigationandpositioningsystem,hastheglobal,all-weather,landairnavalall-aroundandothercharacteristics,especiallysuitablefortraffictransportationindustry,withChinamobileisstableandreliable,coverage,datatransmissionisextremelyfastspeedofGPRSnetworks
10、asofinformationtransmissionmediumtoGPSandGPRSasthemainskillstheintelligentbussystemoperationthaneverbefore,digitalradiotechnologyusingrfwayofthepublictransportsystemhasbuiltmorestable,real-timehigher,andotherfeatures,isthecurrentsmartbussystemdesignidealscheme.Thispaperstudiesthestatusquoandtheexist
11、ingdomesticandforeignintelligencebusGPS,GPRStechnology,andonthebasisofthebusisproposedbasedonARMintelligentcarterminaldesignandimplementationofthemethods,includingterminaloveralldesignscheme,keytechnologyresearch,softwaredesign,theproductrealization,etc.Basedonthegeneraldesignwasputforwardbythefunct
12、ionalrequirementoftheterminal,andinthelightofthefunctionrequirementputforwardthecorrespondingdesignproject;Inthehardwaredesigngiveaspecifichardwaredesignprinciplediagram,andthehardwareselection,designofthekeyprinciplediagramdiscussed;Insoftwaredesigngivesthemainterminalthedesignofsoftwareprogramflow
13、chart,andtheprogramdesignideasofthedetailexplains.Finallyamoduletothecommissioningandfunctiontesting.Keywords:thecarterminal,intelligentthestops,ARM,GPSandGPRS 设计题目基于ARM系统的公交车多功能终端的设计二、设计要求完成电子收费、报站、GPS定位等功能三、设计的作用目的智能公交系统运用系统工程理论,将信息控制、GPS卫星定位、GIS、多媒体、网络通信等技术集成,应用于整个公共交通领域,实现了公交车辆的智能调度,方便了公车车辆的运营管理
14、,提高了公交服务水平。使乘坐公交车出行变的更加快捷、方便和舒适。从而使一部分人舍弃自驾车或打出租车出行,改乘公交车,进一步减少交通堵塞现象。另外大力发展智能公交系统,也可以通过提高交通效率而节省大量的燃料和时间,减少交通事故的发生,能够创造巨大的经济和社会效益。四、智能车载终端总体设计智能车载终端是一款以ARM处理器为核心,利用GPS、GPRS等先进技术,集车辆实时监控、正点考核、紧急事件报警等功能于一身的专为公交车辆设计的嵌入式智能终端产品。它是整个智能公交系统的数据来源,也是车载功能的执行者,因此它是整个系统是的重要组成部分。车载终端主要实现的功能包括:到站自动播报到站提示音,出站自动播报
15、出站提示音;定时向数据中心发送车辆位置信息,实现中心对车辆的监控;能够任意设置站点为考核点,对车辆运行正点情况进行考核;液晶屏幕实时显示时间、车辆运行速度、当前停靠站点等信息;按键控制特殊语音播报、背景音乐播放;按键控制紧急情况报警短消息发送;驱动车载LED屏,实现站点名称、广告语的显示。根据功能要求,我们在设计中将终端分解为如下几个模块:ARM中央处理器模块GPS定位模块GPRS无线通信模块语音及功放模块LCD液晶显示模块键盘控制模块电源模块串口及其它外围电路模块终端系统结构框图如图41所示图41智能车载终端结构框图4.1主要模块基本功能介绍整个智能车载终端分为若干功能模块,每个模块除完成自
16、身功能外,还配合其它模块共同工作,实现车载终端整体功能。ARM中央处理器模块:作为车辆终端核心控制模块,完成GPS数据的提取解析,经纬度数据匹配,GPRS无线通讯、语音播放控制等功能。高性能高可靠性的ARM处理器选取是系统稳定运行的关键。GPS定位模块:通过不断的接收卫星传来的导航电文,为系统提供经纬度、时间、速度等信息。GPRS无线通信模块:系统的数据传输模块,将车辆定位信息等通过GPRS网络发送至车辆调度中心,实现实时监控等功能。语音及功放模块:提供高质量、高清晰的语音及音乐播放功能。LCD液晶显示模块:实时显示当前时间、车辆当前所在站点、车辆当前运行速度等信息。键盘控制模块:为使用者提供
17、简洁方便的设备操作方式。电源模块:为系统多个功能模块提供适当的工作电压,保证各功能模块的稳定工作,本终端中需要提供的电压分别有1.8V、3.3V、4.2V、5V、12V。模块选型GPS模块系统GPS模块采用HoLux的GR87模块H0LUXGR87Sirf3代GPS模块采用SiRF第三代高灵敏度、低耗电量芯片StarIII,内建ARM7TDMICPU可符合模块需求,具备快速定位及追踪20颗卫星的能力,内置标准陶瓷GPS天线模块,并预留外接口。体积超小,仅25X25X2mm。芯片内建200000个卫星追踪运算器,大幅提高搜寻及运算卫星讯号能力。内建wASS/EGNoS解调器。低耗电量,具备有省电
18、模式(Trickle.Power)功能,以及在设定的时间才启动的定时定位(Push.to.Fix)功能。支持NMEAOl83.22版本规格输出。该模块的应用范围主要包括:车用导航、航海导航、舰队管理、基地服务、自动驾驶、个人导航、旅游设备、轨迹设备、系统及绘图应用程序。GPRS模块系统GPRS模块选用SIMCOM有限公司提供的SIM300C模块。SIM300C是小体积即插即用模组中完善的三频/四频GSM/GPRS解决方案。使用工业标准界面,使得具备GSM/GPRS900/1800/1900MHz功能的SIM300C以小尺寸和低功耗实现语音、SMS、数据和传真信息的高速传输。SIM300C的优良
19、性能让它应用于许多方面,例如WLL、M2M、手持设备等。SIM300C外形尺寸为40X33X2.85mm,支持用户定制的MMI和键盘/LCD,内嵌强大的TCP/IP协议栈,具有标准的AT命令接口,能够以小尺寸和低功耗实现语音、短信和GPRS数据传输等业务。模块通过串口进行数据的通信,通信速率最快可以达到115200b/s,模块与控制器间通信协议是AT命令集,其中大部分是符合协议“ATcommandsetforGSMMobileEquipment(ME)(GSM07.07version6.4.0Release1997)的,也有一些是SIMCOM自己定义的AT命令。语音模块为了保证良好的音质,本系
20、统采用wTM.SD高音质MP3模块,为终端提供语音及音乐播放功能WTM.SD模块是一款可重复擦写语音内容的大容量存储类型的语音模块,外挂体积小巧的最大容量为1GB的MicroSD卡存储器,支持加载wAv格式语音文件和MP3格式语音文件。WTM.SD模块采用DIP16直插形式封装,有MP3控制模式,按键一对一控制模式,按键组合控制模式,并口控制模式以及二线串口控制模式等控制模式。WTMSD模块的主要应用领域包括汽车电子(防盗报警器、倒车雷达、GPS导航仪、电子狗、中控锁)、智能家居系统、家庭防盗报警器、医疗器械人声提示、音乐播放、家电(电磁炉、电饭煲、微波炉)、娱乐设备(游戏机、游乐机)、学习模
21、型(早教机、儿童有声读物)、智能交通设备(收费站、停车场)、通信设备(电话交换机、电话机)、工业控制领域(电梯、工业设备)、玩具等。液晶显示系统米用金鹏电子C系列液晶模块OCMJ2木8C。该C系列中文模块可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能。提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口。所有的功能包括显示RAM、字型产生器,都包含在一个芯片里面,只要一个最小的微处理系统,就可以方便操作模块。内置2M位中文字型ROM(CGROM)总共提供8192个中文字型(16X16点阵),16K位半宽字型ROM(HCGROM)总共提供126个符号字型(
22、16X8点阵),64X16位字型产生RAM(CGRAM),另外绘图显示画面提供一个64X256点的绘图区域(GDRAM),可以和文字画面混和显示。提供多功能指令:画面清除(Displayclear)、光标归位(Returnhome)、显示打开/关闭(Displayon/off)、光标显示/隐藏(Cursoron/off)、显示字符闪烁(Displaycharacterblink)、光标移位(Cursorshift)、显示移位(Displayshift)、垂直画面卷动(Verticallinescroll)、反白显示(By-linereversedisplay)、待命模式(standbymode
23、)。五、系统硬件设计ARM微控制器模块微控制器(MCU)是系统的核心,也是实现系统功能的关键,适当的微控制器的选取,不仅能够大大提高系统性能,还能够最大程度上保证系统稳定可靠的运行。现在市面上的MCU种类繁多,价格和性能也是千差万别,MCU的范围包括了从成本低于20美分的非常简单的家庭应用型MCU到20美元的控制工业机械主要器件的32位MCU,分辨出哪种才是适合系统应用的MCU是一个关键的问题。选择一款MCU时,我们需要考虑的因素有以下几个方面:第一,MCU的电源范围、工作频率。MCU对电源的要求需要与系统中其它大部分部件对电源的要求一致;第二,MCU的I/O口、定时器、中断等资源数目。需要满
24、足系统的要求,避免资源的浪费;第三,MCU的吞吐量。符合MCU对系统执行控制时的处理能力;第四,MCU的极限性能。能够在系统可能处于的极限工作环境中正常运行,如低温或高温环境;第五,MCU的抗干扰性能、加密性能、程序写入方式等;第六,MCU的市场价格。在产品的设计中需要严格的控制产品成本,固价格也是MCU选取中的重要一点,需要选取具有高性价比的MCU芯片。综合考虑以上因素及本系统对控制器的要求,我们选用了ARM9微处理器LPC2124作为系统的微控制器。作为整板的主控制器,LPC2124是整个电路系统的核心,以LPC2124为核心的中央处理器模块设计则是决定整个硬件电路成败的关键,ARM微控制
25、器模块设计主要包括电源、时钟及复位电路、调试与测试接口及ARM芯片接口电路四大部分。5.2时钟及复位电路目前所有的微处理器均为时序电路,需要一个时钟信号才能工作。LPC2124可使用外部晶振或外部时钟源,内部PLL电路可调整系统时钟,使系统运行速度更快。本电路中,LPC2124使用微控制器内部的晶体振荡器设计时钟电路,采用外部11.0592MHZ晶振做为振荡源,用1M电阻并接到晶振两端,使系统更容易起振。用11.059MHZ晶振的原因是使串口波特率更精确,同时能够支持LPC2124内部的PLL功能和ISP功能。另外,微控制器在上电时的状态并不确定,这将造成微控制器不能正确的工作,为了解决这个问
26、题,所有微控制器均需要一个复位逻辑,负责将微处理器初始化为某个确定的状态。一些微处理器在上电时自身会产生复位信号,但大多数微控制器需要外部输入这个信号,本终端微处理器LPC2124即属于后者。针对LPC2124来说,I/O口供电电压范围为3.3V3.6V,故复位门槛选择为2.93V,复位芯片选用SIPEX公司的SP708S。该芯片属于微处理器岬监控器件,其集成有众多组件,可监测uP及数字系统中的供电及电池的工作情况,该芯片可以有效地增强系统的可靠性及工作效率。本系统复位电路设计成用户重启的按钮控制。SP708S发出RESET信号送给CPU的RESET引脚和JATG接口电路的复位脚。当复位按键R
27、ST按下时,SP708S立即输出复位信号使系统复位,平时SP708S的RST输出高电平,系统正常运行或进行JTAG仿真调试。5.3FLASH存储器电路设计Flash存储器在系统中通常用于存放程序代码,系统上电或复位后从此获取指令并开始执行,因此用了PC15做了Flash的片选引脚即与CE相连,Flash的R/B引脚与PC14引脚相连,IOOIO7与DOD7相连,图5.1描述了Flash模块实际连接电路。U123V3图5.1K9F5608U0A电路设计图GPS模块电路设计本设计的GPS模块采用的是HoLux的GR.87模块。该模块支持NMEA0183V3.01标准输出,TTL接口电平,波特率可置
28、。在本系统中,GR.87模块通过6PIN排线与主板相连,1脚为电源输入脚,接5v电源,2、3脚为GPs模块的数据接收和发送,接GM8123子串口2,5脚接地,6脚接LED指示灯。工作时,GPS模块由GM8123子串口2与主控制器LPC2124进行通信,通过设置模块定时输出GPS定位数据,由主控制器对GPS数据进行处理,提取出经纬度,时间等有用信息,为自动报站及正点考核提供可靠数据,保证报站及正点考核功能的实现。这部分电路设计比较简单。GPRS模块电路设计本系统采用GPRs实现正点考核数据的远程传输,采用短信的方式实现车辆紧急情况报警,这两大功能均依靠GPRS模块来实现。系统中GPRs模块采用S
29、IMCOM公司的GSM/GPRS双频模块SIM300CZ,该模块主要为语音传输、短消息和数据业务提供无线接口,采用无铅设计,特别适合车载、移动电话、无线MODEM卡、无线PoS机、无线抄表系统以及无线数据传输业务的使用。sIM300cz模块为用户提供了功能完备的系统接口。60PIN的系统连接器是SIM300CZ模块与应用系统的连接接口,主要提供提供外部电源、RS.232串口,SIM卡接口和音频接口。SIM300Cz模块可使用锂电池、镍氢电池或者其他外部直流电源供电,电源电压范围为3.3V4.6V,电源需要具有至少2A的峰值电流输出能力。由于GPRS模块对电源的特殊要求,系统在电路设计中选用了电
30、源芯片MIC29302BT,对12V的电源稳压后得到4.2V电压供给GPRS模块使用。SIM300cZ提供标准的Rs.232串行接口,用户可以通过串行口使用AT命令完成对模块的操作。为了简化微控制器的控制,硬件设计时没有使用全部的硬件握手信号,而只使用数据载波检测(DataCa玎ierDetect,DCD)和终端准备(DataTeminalReadyDTR)信号。DCD信号可以检测GPRS模块是处于数据传送状态还是处于AT命令传送状态。DTR信号用来通知GPRS模块传送工作已经结束。GPRS模块与ARM芯片通过TTL电平接口,无需电平转换。六、系统软件设计6.1嵌入式操作系统的选型日前,市场上
31、出现的嵌入式操作系统非常多,如:WinCE、VxWorks、PalmOSLinux等。本车载GPS系统中我们选择了Linux36作为操作系统,因为Linux为嵌入式操作系统提供了一个极有吸引力的选择,它具有以下一此特点:Linux是一个和Unix相似、以核心为基础的、虚拟内存机制、多任务的操作系统。Linux具有广泛的硬件支持特性。Linux最通常使用的微处理器是IntelX86芯片家族,但它同样能运行于Motorola公司的68K系列CPU;IBM、Apple、Motorola公司的PowerPCCPU,SUN公司的SparcCPU以及Intel公司的StrongARMCPU等处理器系统,这
32、念味着嵌入式Linux将具有更广泛的应用前景。Linux系统是层次结构且内核完全开放。不同领域和不同层次的用户可以根据自己的应用需要很容易地对内核进行改造,在低成本的前提下,设计和开发出真正满足自己需要的嵌入式系统,再也不必担心像MSWindows操作系统中“后门”的威胁Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以直接使用内核调试器来作操作系统的内核调试和查错。Linux还提供了强大的网络功能。Linux诞生于因特网,它支持所有标准因特网协议,并且可以利用Linux的网络协议栈将其开发成为嵌入式的TCP/IP网络协议栈。配置编译内核内核,是一个操作系统的
33、核心,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。由于Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。在嵌入式linux设计与应用中,或许你不需要经常升级你的内核,但是为了使你的目标板能够支持更多的外设,你将不得不自己设计驱动程序,或者有时你需要重新设定内核中的某些模块。所有这些工作,重新编译内核将使你更熟悉自己定制的系统。6.3嵌入式引导程序移植所谓引导程序(BootLader),即系统加电后运行的第一段软件代码,嵌入式系统的引导程序负责家在整个启动任务,整个过程包括硬件设备初始化、建立内存空间的映射图、配置
34、合适的软硬件环境,以便能够调用操作系统的内核。BootLader的主要运行任务就是将内核映像从硬盘上读到RAM中,然后跳转到内核的入口点去运行,这样操作系统就开始启动。Bootloader可以从SAMSUNG公司官方网站下载,经过交叉编译生成Bin文件,下载到ARM开发板上。6.4应用软件的设计因为这个车载GPS系统用的是ARMLinux做的操作系统,所以所有的应用程序都是在Linux操作系统下编写的,然后通过交叉编译生成可以在ARMLinux系统中直接运行的程序。整个软件涉及到Linux下的串口编程、Linux下的网络编程和Linux下的多线程编程三个方面,下面将分别予以介绍。6.4.1Li
35、nux下的串口编程Linux操作系统从一开始就对串行口提供了很好的支持,Linux对所有各类设备文件的输入输出操作看上去就像对普通文件的输入输出一样,所以Linux对串口的操作也是通过设备文件访问的。为了访问串口,只需打开相应的设备文件即可,在Linux下默认串行口C0M1和COM2对应的设备分别为/dev/ttySO和/dev/ttySI。一个简单的串口初始化程序如下:InitComstruettermiosoptions;/*定义一个termios类型的结构体options*/intfd2;fd2=open(/dev/tts/1,O_RDWR|O_NOCTTY);/*打开串口*/teget
36、attr(fd2,&options);efsetispeed(&options,B4800);/*设置波特率*/efsetospeed(&options,B4800);/*设置波特率*/options.e_eflag|=CS8|CREAD|CLOCAL;/*设置串口属性*/options.e_iflag|=IGNPAR|ICRNL;/*设置串口属性*/options.e_lflag=0;/*设置串口属性*/options.e_oflag=0;/*设置串口属性*/options.e_eeVMIN=254;/*设置串口接收的最少字节树*/options.e_eeVTIME=0;/*设置字符输入间隔
37、时间*/teflush(fd2,TCIFLUSH);/*清空数据线,启动新的串口设置*/tesetattr(fd2,TCSANOW,&options);其中c_ccVTIME和c_ccVTIME这两个参数比较重要,c_ccVTIME设定字符输入间隔时间的计时器,而e_eeVMIN设置满足读取函数的最少字节数。他们的不同组合将影响串口输入的结果。当MIN0,TIME=0时读取函数在读到了MIN值的字符数后返回。MIN=0,TIME0:TIME决定了超时值,读取函数在读到一个字节的字符,或者等待读取时间超过TIME(t=TIME*0.1)以后返回,也就是说,即使没有从串口中读到数据,读取函数也会在
38、TIME时间后返回。MIN0,TIME0:读取函数会在收到了MIN字节的数据后,或者超过TIME时间没收到数据后返回。此计时器会在每次收到字符的时候重新计时,也只会在收到第一个字节后才启动。MIN=0,TIME=0:读取函数会立即返回。实际读取到的字符数,或者要读到的字符数,会作为返回值返回。这两个参数要根据具体的情况来配置,初始化了的串口就可以直接用read()和write()函数从串口接受或者发送数据了。Linux下的网络编程车载终端可以通过TCP或UDP的方式与上位机进行连接。而TCP/UDP程序的设计采用的是套接字的方式。套接字是进行程序间通信的一种方法,在客户/服务器通信模型中,一个
39、套接字就是通信的一端,因此可使不同主机间进程实现双向通信。套接字主要有三种类型。流式套接字是最常用的套接字类型,在TCP协议中使用此类接口,提供面向连接的,无差错的,发送顺序一致的,包长度不限和非重复的网络信息包的传输。数据报套接字在UDP协议中使用,提供无连接的服务,以独立的数据报进行网络传输,数据报的最大长度为32KB,传输不保证顺序性,可靠性和无重复性,通常用于单个报文传输或者对于可靠性要求不高的场合。对于车载系统而言无论是用TCP还是UDP方式与上位机通信,都只用开发客户端的程序就可以了。Linux下的多线程编程多线程程序作为一种多任务、并发的工作方式,具有以下的优点:提高应用程序响应
40、。这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操作,而使用多线程技术,将耗时长的操作置于一个新的线程,可以避免这种尴尬的情况。使多CPU系统更加有效。操作系统会保证当线程数不大于CPU数目时,不同的线程运行于不同的CPU上。改善程序结构。一个既长又复杂的进程可以分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。正是由于多线程程序由以上的优点所以整个车载终端的程序会按照多线程的方式进行编写。Linux系统下的多线程遵循POSIX48线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件
41、pthread.h,连接时需要使用库libpthread.a。创建一个线程的函数是externintpthread_create_P(pthread_t*_thread,_constpthread_attr_t*_attr,void*(*_start_routine)(void*),void*_arg);第一个参数为指向线程标识符的指针,第二个参数用来设置线程属性,第三个参数是线程运行函数的起始地址,最后一个参数是运行函数的参数。函数pthread_join用来等待一个线程的结束。函数原型为:externintpthread_join_P(pthread_t_th,void*_thread_return);第一个参数为被等待的线程标识符,第二个参数为一个用户定义的指针,它可以用来存储被等待线程的返回值。这个函数是一个线程阻塞的函数,调用它的函数将一直等待到被等待的线程结束为止,当函数返回时,被等待线程的资源被收回。当线程创建了以后就要考虑互斥和同步的问题。Linux下可以通过pthread_mutex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 含氮杂螺芴中性配体稀土配合物:合成路径与发光性能的深度剖析
- 同轴磁绝缘传输线支撑问题的深度剖析与解决方案探究
- 同位模式空间数据挖掘算法:原理、创新与GIS应用深度剖析
- 吉林省农村社会保障体系:现状、问题与优化策略研究
- 防电信诈骗知识宣传教育主题班会课件(下载直接用)
- 幼儿园幼儿一日生活过渡环节
- 2026年妇产科护理学模考试题(含答案)
- 读懂骨质疏松化验单与检查指标
- 2026年药士初级职称考试试题及答案
- 具身智能在特殊教育助教中的应用方案
- 新版部编人教版四年级上册道德与法治(课件)9安全文明上网
- 建筑公司安全生产资金投入保障制度范本
- 2026秋小学新版苏教版数学六年级上册教学设计(附目录)适用于新课标
- 教科版2026年小学四年级科学上册全册教案
- 2026宁夏医科大学总医院自主招聘事业单位工作人员87人考试备考题库及答案详解
- 2026年道路运输企业主要负责人和安全生产管理人员考试机考题库及答案
- 2026辽宁沈阳汽车集团有限公司所属企业沈汽华制(沈阳)汽车产业服务有限公司招聘12人笔试备考题库及答案详解
- 2025年中级会计职称中级会计实务考试真题及答案
- 2026年保密工作自查报告范本(2篇)
- 水利水电工程单元工程施工质量检验表与验收表(SLT631.7-2025)
- 新时代中职生礼仪规范全套课件
评论
0/150
提交评论