第一篇:《智能车辆技术》学习总结报告
《智能车辆技术》学习总结报告
经过一个多月的学习,我对智能车辆技术有了基本的了解。
首先,智能车辆是一个集环境感知、规划决策、智能控制等功能于一体的综合系统。它分为自主驾驶智能车辆、基于车辆间通讯的智能车辆和基于车路间通讯的智能车辆。智能车辆技术主要包括自主导航和安全保障。
其次,控制理论在智能车辆的研究中起着不可忽视的作用。控制理论分为经典控制理论和现代控制理论。经典控制理论主要针对单输入单输出系统,现代控制理论主要针对多输入多输出系统。现代控制理论用状态空间方程描述系统,通过系统的状态方程和输出方程可以得到可控性矩阵和可测性矩阵,判明系统的可控性和可观测性。针对智能车辆的不确定性有两种基本的控制策略,一是自适应控制,包括参考模型自适应法和自校正自适应法;一是鲁棒控制,包括基于反馈线性化的鲁棒控制和变结构控制。
对于鲁棒控制,我不是很了解,为此我查阅了一些资料。
鲁棒控制(Robust Control)方面的研究始于20世纪50年代。在过去的20年中,鲁棒控制一直是国际自控界的研究热点。所谓“鲁棒性”,是指控制系统在一定(结构,大小)的参数摄动下,维持某些性能的特性。根据对性能的不同定义,可分为稳定鲁棒性和性能鲁棒性。以闭环系统的鲁棒性作为目标设计得到的固定控制器称为鲁棒控制器。
现代鲁棒控制是一个着重控制算法可靠性研究的控制器设计方法。其设计目标是找到在实际环境中为保证安全要求控制系统最小必须满足的要求。一旦设计好这个控制器,它的参数不能改变而且控制性能能够保证。
一般鲁棒控制系统的设计是以一些最差的情况为基础,因此一般系统并不工作在最优状态。常用的设计方法有:INA方法,同时镇定,完整性控制器设计,鲁棒控制,鲁棒PID控制以及鲁棒极点配置,鲁棒观测器等。
鲁棒控制方法适用于稳定性和可靠性作为首要目标的应用,同时过程的动态特性已知且不确定因素的变化范围可以预估。飞机和空间飞行器的控制是这类系统的例子。过程控制应用中,某些控制系统也可以用鲁棒控制方法设计,特别是对那些比较关键且不确定因素变化范围大或稳定裕度小的对象。
再次,对于老师在课堂上讲的一些不熟悉的应用方法,包括kalman滤波、小波理论和DS证据理论等我做了些许了解。
一、kalman滤波
kalman滤波是一种高效率的递归滤波器(自回归滤波器), 它能够从一系列的不完全包含噪声的测量(英文:measurement)中,估计动态系统的状态。
kalman滤波属于估计理论范畴,是现代控制理论的一个重要分支。估计理论认为,客观世界总存在干扰与噪声,就系统而言,一般都存在输入噪声和测量噪声,一部分是确定的,一部分是随机的。估计(滤波)的实质就是从测量数据中尽可能地把噪声滤掉,分离出需要的信息。
kalman滤波的一个典型实例是从一组有限的,对物体位置的,包含噪声的观察序列预测出物体的坐标位置及速度.在很多工程应用(雷达, 计算机视觉)中都可以找到它的身影.kalman滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测),也可以是对过去位置的估计(插值或平滑).二、小波理论
从数学的角度讲,小波是构造函数空间正交基的基本单元,是在能量有限空间L2(R)上满足允许条件的函数。从信号处理的角度讲,小波(变换)是强有力的时频分析(处理)工具,是在克服傅立叶变换缺点的基础上发展而来的。
小波即小区域的波,是一种特殊的长度有限、平均值为零的波形。它有两个特点:一是“小”,即在时域具有紧支集或近似紧支集;二是正负交替的“波动性”,也即支流分量为零。傅立叶分析是将信号分解成一系列不同频率的正弦波的叠加,同样小波分析是将信号分解为一系列小波函数的叠加,而这些小波函数都是由一个母小波函数经过平移和尺度伸缩得来的。
小波分析优于傅立叶分析的地方是,它在时域和频域同时具有良好的局部化性质。而且由于对高频成分采用逐渐精细的时域或频域取样步长,从而可以聚焦到对象的任何细节,所以被称为“数学显微镜”。小波分析广泛应用与信号处理、图像处理、语音识别等领域。
三、DS证据理论
证据理论是由德普斯特(A.P.Dempster)首先提出,并由沙佛(G.Shafer)进一步发展起来的一种处理不确定性的理论,因此又称为D-S理论。
证据理论:用先验概率分派函数去获得后验的证据区间,证据区间量化了命题的可信程度。可将证据分派给假设或命题,提供了一定程度的不确定性,即证据既可指定给互不相容的命题,也可指定给相互重叠、非互不相容的命题。
证据理论满足比概率论更弱的公理系统,当概率值已知时,证据理论就变成了概率论。证据理论有如下一些特点:证据理论满足比概率论更弱的公理系统。当m的焦元都是单元素集合时,即若|A|>1 则m(A)=0时,证据理论就退化为概率论; 当m的焦元呈有序的嵌套结构时,即对所有的m(Ai)≠0,有A1⊆A2⊆„⊆An时,证据理论退化为Zadeh的可能性理论。
证据理论能够区分不知道和不确定。证据理论可以处理证据影响一类假设的情况,即证据不仅能影响一个明确的假设(与单元素子集相对应),还可以影响一个更一般的不明确的假设(与单元素子集相对应)。因此,证据理论可以在不同细节、不同水平上聚集证据,更精确的反映了证据收集过程。
证据理论的缺点是:要求辨别框中的元素满足相互排斥的条件,在实际系统中不易满足。而且,基本概率分配函数要求给的值太多,计算比较复杂。
最后,从老师在课堂上讲解的论文中,我知道了任何一项研究都不可能一蹴而就,更不是投机取巧就可以完成的,我们必须付出时间、努力和实践才有可能完成,其中查阅文献和大量的阅读是必不可少的。只有站在巨人的肩膀上我们才会有所创新,才会有长足的进步。以上就是我的一些学习总结和心得,这些知识和经验对于我的个人发展和以后的研究都是非常重要的,我会继续努力前行。
在此,也感谢老师的悉心教诲。
汇 报 人:*** 指导教师:***
第二篇:基于物联网技术的智能车辆管理系统
基于物联网技术的智能车辆管理系统
引言
物联网是指通过各种信息传感设备,如射频识别技术、全球定位系统、红外感应器、激光扫描器、气体感应器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,与互联网结合形成的一个巨大网络。其目的是实现物与物、物与人,所有的物品与网络的连接,方便识别、管理和控制。
本文设计了一种基于物联网相关技术的区域智能车辆管理系统,实现缴费无人化,信息透明化、实时化,能够减少缴费时间,缓解交通压力,节省人力、财力,最终实现交通管理智能化。设计背景
电子不停车收费系统是目前世界上最先进的收费系统,是智能交通系统的服务功能之一,过往车辆通过道口时无须停车,即能够实现自动收费。车辆在通过收费站时,通过车载设备实现车辆识别、信息写入(入口)并自动从预先绑定的IC卡或银行帐户上扣除相应资金(出口),使用该系统,车主只要在车窗上安装感应卡并预存费用,通过收费站时便不用人工缴费,也无须停车,高速费将从卡中自动扣除。这种收费系统每车收费耗时不到两秒,其收费通道的通行能力是人工收费通道的5到10倍。
ETC系统由后台系统、车道控制器、速度传感器装置和微波通讯设备等组成。
本文引入gprs提供了对车主的收费信息通知功能;并在此基础上,结合物联网中的其他关键技术,将之利用在车辆管理系统中。当代车辆管理系统大多依靠人工登记,在一个大型停车场中,入口和场内都需要有相关人员进行监护和登记,在车辆进出高峰期存在人员不足、调度失调、存在安全隐患等不足;在车辆数量的低谷时期又存在人员冗余的问题,所以一种无人值守的智能车辆管理系统亟须融入到现代物流管理系统中。
目前已经开发出来的比较先进的车辆管理虽然能够一定程度实现无人化管理,但是存在很多问题。首先,仅仅使用了射频识别技术,能够做到自动收费,但是在无人监管下存在收费不透明的问题。而我们设计的系统将语音播报和电话告知加入到停车收费中,这样大大增加了收费的透明度。其次,目前的系统对停车场所得监管缺少更全面的措施,有线监控设备存在线路容易被破坏的缺点,因此在安防中有很大盲区。而我们设计的系统采用无线通信方式传回图像信息,并且在车位安装了无线传感器网络节点,这样可以将监控措施具体到每一个车位,极大增强了停车区域的安全系数。
最后,出于安全考虑,在GPRS建立的人机交互中,增加了事故播报等功能。这样即便发生了事故,车主也能第一时间了解到情况从而做出最快的方案。设计原理
2.1 设计思路
出于完善和更人性化电子不停车收费系统、解决大型停车场以及小区停车场的车辆管理调度的目的,本设计以物联网为背景,将嵌入式技术、移动通信技术、检测与转换技术、数字控制等技术有效地集成运用于交通运输管理体系。
系统包含以下几个部分:车辆射频识别和信号处理部分、视频监控及图像传输部分、区域内部无线传感器网络部分、GPRS通讯部分、上位机综合决策部分,其系统总体结构如图2所示:
2.2 模块设计
2.2.1 RFID读写设备
RFID读写设备主要完成车上卡片与主机上的信息的交换,用于识别车辆信息以及完成收费等一系列服务,此部分要求模块稳定度高,灵敏度高,可以实现2米以上读卡,读卡速度可以设定,至少是10ms,相同ID信息输出时间间隔设定为2分钟以上,与上位机通信采用232接口,系统可以在很短时间内稳定地实现收费等系列服务。
无源RFID系统由无源RFID标签、天线、RFID读卡器组成,如图3所示:
2.2.2 视频监控及图像传输部分
摄像头作为RFID读写器的辅助设备,可以在缴费、登记时对车辆进行监控、抓拍,防止在无人值守情况下发生车辆作弊行为。
应用基于WIFI的无线IP摄像头作为监控设备。选用88W8510 WIFI模组来实现一个具有IEEE 802.11b/g功能的无线桥接设备,以构建无线传输环境,将摄像头DSP送出的数字信号经过打包分组,通过无线环境传送到电脑或无线网络,在上位机决策终端显示图像信息。图7为无线摄像头监控界面以及车库中反射式红外传感器的测量返回值,用以判定车辆是否进入。其工作原理图如图4所示:
2.2.3 无线传感器网络
项目中,每个车库或者车位都装有一套基于CC2530的无线传感器节点,以CC2530为核心,搭建温度、湿度、位置传感器等相关外设,可以实时采集车位信息,并以一定的时间间隔将数据互发送给子网的主机,再由主机发送给上位机决策端,在必要的情况下可以通过GPRS模块把车位信息迅速传给车主,保证了停车场及车主财产的安全。传感器节点模块如图
5、图6所示。
2.2.4 GPRS通信设备
采用MC52i 模块作为GPRS通信的核心,如图7所示。当车辆进出停车场时,可将RFID读写器对车主的射频卡进行的操作以短信或者语音播报的形式告知车主,这样可以将停车场的收费信息、停车场的车位情况、环境信息及时传达给车主,如图8所示。
2.2.5 综合决策终端
本文设计的上位机综合决策终端作为智能车辆管理系统的核心,软件采用C#语言编,写能够实时显示RFID读写器的工作情况,将读取的车辆信息、车辆停放时间、收费情况、停车场车位情况、环境信息等数据存入数据库,方便存档和调用。同时,和GPRS模块相连,能够由管理员在适当的时候向车主发送信息,或者预设好发送信息的时间,系统可以通过实时时钟定时给每一位进出停车场的车主报送相关信息。实现快速信息处理,缩短服务时间,提高工作效率。结语
综上所述,本文设计的车辆管理系统可以实现不停车收费,既省时又省力。通过GPRS及时将收费信息、出入时间等反馈给用户。利用ZigBee技术组建无线传感器网络,将停车场信息融入到控制终端,方便物流管理。该套系统综合性价比极高,不仅适用于小区车辆管理,还用于高速不停车收费系统、图书馆管理,仓库管理,畜牧管理,军事管理等领域,推进了物流管理的智能化发展。
第三篇:中国科学院合肥智能机械研究所智能车辆技术中心
中国科学院合肥智能机械研究所智能车辆技术中心
工作会议纪要
[2008]第39号
时间:2008年12月29日(星期一)9:15am 地点:中心会议室
参加:梁华为、张涛、牛润新、李碧春、许铁娟、郜文、唐国明、赵盼、李继来、王芳成、鲁伟斌、刘伟、刘欣、程若发、张卫忠、夏静霆、黄健
缺席:陈茅(病假)列席:王少平主持:梁华为 纪录:黄健 整理:张涛 内容:
1、所办公会议相关情况通报:
(1)所年终总结大会时间:1月19日上午8:30,请大家准时参加;
(2)春节安排:1月21日到2月6日放假,2月7日正式上班;(3)1月8日上午进行中层干部考核,重点汇报作为部门负责人的工作;
(4)研究院统一作息时间:上午8:00-12:00,下午13:00-17:00;(5)研究院09岗位聘用即将开始,请大家注意研究院网站相关通知。
上周工作总结:
2、汇总各子课题任务书,初步完成无人车项目试验验证和功能设计任务书;
3、总结、成果登记和职工考核工作;
4、智能汽车预研项目考核和计划;
5、中心日常事务:组织元旦联欢会节目排练;年底报销事宜,完成重点设备采购报销; 本周工作计划:
6、根据所里的要求进行部门总结和职工考核(梁华为、张涛);
7、组织省工程中心申报工作,申报截止期为1月26日,成立由梁华为、张涛、牛润新、许铁娟、黄健组成的材料准备小组,即日起开始材料准备工作;(梁华为、张涛)
8、讨论无人车项目技术方案,明确各子系统任务和接口;拟元旦后安排控制系统相关人员至奇瑞交流,确定平台改造方案;(牛润新、梁华为)汽车电子实验室 上周工作总结:
9、863倾角项目:完成倾角传感器的产品检验工作,办理产品检验报告;
10、无人车感知系统:与SICK供应商商谈传感器配置和采购事宜;
11、验证平台:编写、调试Visual C++的CAN通信程序;
12、ESC:完成ESC控制器电路设计,进行PCB布板设计及元器件采购;
13、嵌入OS:从任务管理的角度修改OS内核,完成对任务控制块属性,状态类型等的修改。
14、虚拟传感器:通过模拟激光传感器,取得了障碍物到车辆的距离,并实现障碍物识别。本周工作计划:
15、863倾角项目:10套样机装配、调试和标定;(王芳成)
16、ESC:完成PCB板图设计,本周完成加工;在环控制器设计;(李继来、王芳成)
17、验证平台:CAN通讯程序调试,在MFC中加入数据打包和发送功能;(李碧春)
18、嵌入OS:完善任务管理的功能,并根据OSEK相关定义修改资源结构体及资源数组,实现用于解决“优先级翻转”问题的“优先级天花板”协议;(郜文)
19、无人车感知系统:无人车惯性导航系统调研选型;(许铁娟)20、虚拟传感器:解决一些算法上的疏漏,如:对障碍物检测的不连贯性;(赵盼)
智能车辆虚拟样机实验室 上周工作总结:
21、与“智能车辆功能验证半物理仿真平台”各子系统负责人交流,完成明年1~4月份该项目的工作计划;
22、与蒋山讨论,确定采用锻铁作为转鼓的材料,表面采用花纹形式;与周平老师商定,由于电控制所涉及的技术较新,短期内难以实现,所以采用电涡流形式对转鼓加载;
23、制作镂空的护栏纹理,并添加到场景中,在vp环境下观察效果并进行调试。
24、学习TNO 汽车公司的无人驾驶汽车在底盘测功机上做ACC实验的原理;
25、完成虚拟场景中多从车辆对主车辆的碰撞检测;与HP工作站代理商联系解决了图形工作站操作系统的问题; 本周工作计划:
26、学习轮胎在地面上滚动时的摩擦生热问题;(唐国明)
27、与蒋工和周工就路面模拟装置中有些不确定因数继续沟通;撰写路面模拟装置的方案向梅老师汇报;(刘伟)
28、解决从车辆按预设路径自主驾驶过程中车体方向与路径点方向不一致的问题;(刘欣)
29、完成岛内一部分建筑物模型的搭建,包括亭子,房屋,水塔。(鲁伟斌)
会议主持人:(签名)
智能车辆技术中心 2008年12月29日
第四篇:《嵌入式技术》学习总结报告
《嵌入式技术》学习总结报告
目录
一、嵌入式系统简介............................................................................................2
1.1 嵌入式系统的定义和特点....................................................................2 1.2 嵌入式系统的构成.................................................................................3 1.3 嵌入式系统的应用.................................................................................5 1.4 嵌入式系统的工具链.............................................................................6 1.5 嵌入式系统的发展趋势.........................................................................7
二、嵌入式系统的学习实践................................................................................8
三、实验内容........................................................................................................9
3.1ZedBoard-Zynq7000介绍........................................................................9 3.2 软件的安装设置...................................................................................10 3.3 main函数分析.......................................................................................10 3.4 任务管理...............................................................................................12
3.4.1 任务优先级.........................................................................................13 3.4.2 任务的堆栈.........................................................................................13 3.4.3 任务的状态.........................................................................................14
3.5 就绪任务的管理...................................................................................15 3.6 任务调度...............................................................................................17
3.6.1 任务抢占.............................................................................................17 3.6.2 轮转调度.............................................................................................18 3.6.3 调度时机.............................................................................................19 3.6.4 调度实现.............................................................................................19
3.7 上下文切换...........................................................................................20
四、工作总结......................................................................................................2
21/ 22
《嵌入式技术》学习总结报告
一、嵌入式系统简介 1.1嵌入式系统的定义和特点
嵌入式操作系统(Embedded Operation System,EOS)是一种“嵌入机械或电气系统内部、具有专属功能的计算机系统”,通常要求实时计算性能。被嵌入的系统通常是包含硬件和机械部件的完整设备。相反,通用计算机如个人计算机则设计灵活,以满足广大终端用户的需求。现在常见的很多设备都采用嵌入式系统控制。EOS负责嵌入系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。嵌入式系统与对象系统密切相关,其主要技术发展方向是满足嵌入式应用要求,不断扩展对象系统要求的外围电路(如ADC、DAC、PWM、日历时钟、电源监测、程序运行监测电路等),形成满足对象系统要求的应用系统。因此,嵌入式系统作为一个专用计算机系统,要不断向计算机应用系统发展。因此,可以把定义中的专用计算机系统引伸成,满足对象系统要求的计算机应用系统。“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。对象系统则是指嵌入式系统所嵌入的宿主系统。另外,在理解嵌入式系统定义时,不要与嵌入式设备相混淆。嵌入式设备是指内部有嵌入式系统的产品、设备,例如,内含单片机的家用电器、仪器仪表、工控单元、机器人、手机、PDA等。
嵌入式系统的特点与定义不同,它是由定义中的三个基本要素衍生出来的。不同的嵌入式系统其特点会有所差异。与“嵌入性”的相关特点:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求的特点。与“专用性”的相关特点:软、硬件的裁剪性。满足对象要求的最小软、硬件配置等。与“计算机系统”的相关特点:嵌入式系统必须是能满足对象系统控制要求的计算机系统。与上两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。
目前,已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特点:
(1)可装卸性。开放性、可伸缩性的体系结构。
(2)强实时性。EOS实时性一般较强,可用于各种设备控制当中。(3)统一的接口。提供各种设备驱动接口。
(4)操作方便、简单、提供友好的图形GUI,图形界面,追求易学易用。
2/ 22
《嵌入式技术》学习总结报告
(5)提供强大的网络功能,支持TCP/IP协议及其它协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口.(6)强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统调用命令向用户程序提供服务。
(7)固化代码。在嵌入系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统.(8)更好的硬件适应性,也就是良好的移植性.1.2嵌入式系统的构成
嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU、SoC)。嵌入式系通常由嵌入式处理器、外围设备、嵌入式操作系统和应用软件等几大部分组成。嵌入式系统与对象系统密切相关,其主要技术发展方向是满足嵌入式应用要求,不断扩展对象系统要求的外围电路(如ADC、DAC、PWM、日历时钟、电源监测、程序运行监测电路等),形成满足对象系统要求的应用系统。因此,嵌入式系统作为一个专用计算机系统,要不断向计算机应用系统发展。
(1)嵌入式处理器
嵌入式处理器是嵌入式系统的核心部件。嵌入式处理器与通用处理器的最大不同点在于其大多工作在为特定用户群设计的系统中。它通常把通用计算机中许多由板卡完成的任务集成在芯片内部,从而有有利于嵌入式系统设计趋于小型化,并具有高效率、高可靠性等特征。嵌入式处理器大概可分为两类。一类是普通微处理器:使用独立的集成电路存储器和外设。另一类是单片机:具有片上外设,降低了功耗、尺寸和成本。嵌入式系统的软件是为某种应用定制的,而不是像个人计算机那样的由终端用户安装的商品,因此可以使用各种不同的基本CPU架构:既有范纽曼型架构也有不同程度的哈佛结构;既有RISC也有非精简指令集处理器;字长从4位到64位甚至更高,当然最典型的仍然是8/16位。多数架构由几家不同的公司生产,使用了大量不同的变量和类型。嵌入式系统也会使用通用型微处理器,但比单片机需要更多外围电路。大的硬件厂商会推出自己的嵌入式处理器,因而现今市面上有1000多种嵌入式处理器芯片,其中使用最为广泛的有ARM、MIPS、PowerPC、MC6800等。
SoC是一种常见的为超大批量嵌入式系统设计的可配置阵列。它在单个芯片内包含了多处理器、乘法器、缓存和接口,形成一个完整的系统;通过特定用途集成电路或现场可编程门阵列来实现。
(2)嵌入式主板
3/ 22
《嵌入式技术》学习总结报告
嵌入式主板一般理解为嵌入在设备里面做控制、数据处理使用的CPU板,也就是设备的“大脑”。嵌入式到设备里面,当然就会对主板的体积以及功耗(嵌入式主板的散热问题)有比较严格的要求。所以一般来讲嵌入式主板会具备尺寸小、高集成度、低功耗等特性。目前嵌入式主板比较常见的一般有两大类:基于X86的嵌入式主板(一般使用INTEL、威盛、AMD或其他产家的X86芯片如:台湾RDC、台湾ICOP等等);基于RISC的ARM 嵌入式主板(由ARM公司授权生产,每个芯片产家各有自己特殊的功能)。嵌入式的ARM板一般都是板载CPU,而基于x86 CPU的主板则不一定。基于RISC 的ARM板一般都是根据产品的要求做具体设计,所以主板在尺寸外观上面通常没有做定义。
PC/104和PC/104+是小型、小批量嵌入式强固系统的标准之一,大多基于x86架构;通常比标准PC要小,而比多数简单的8/16位嵌入式系统要大;使用MSDOS、Linux、NetBSD,或实时嵌入式操作系统如MicroC/OS-II、QNX、VxWorks。有时这些主板也会使用非x86处理器。在某些应用中,小巧、高效并非主要关注点,因而可以使用与x86型PC主板兼容的部件。VIA EPIA系列板卡则可以弥补这个空缺,它兼容PC但是高度集成、体积较小,或提供其他对嵌入式工程师很有吸引力的特性。这种方法的好处是低成本商品也可以使用通用的软件开发工具。用这种方法构建的系统仍然是嵌入式系统,因为它嵌入在较大的设备中、用于满足单一用途。例如ATM和电子游戏机,它们都包含了针对各自应用的代码。
多数嵌入式主板都不是围绕PC设计的,也不使用ISA或PCI总线。如果采用SoC处理器,用标准总线连接分立组件就不是上策,此外软硬件开发环境都可能会很不一样。一种常用的设计模式是采用小型系统模块——也许只有商务卡片大小,容纳高密度的BGA芯片如ARM处理器和外设、用于存储的外部闪存、作为内存的DRAM。模块厂商通常会提供引导软件和操作系统选项,一般包括Linux和一些实时操作系统。这些模块由熟悉专业测试方法的组织大批量生产,配合较小批量的、带特殊应用外设的定制主板使用。
(3)外围设备
外围设备是指在一个嵌入式系统中,除了嵌入式处理器以外用于完成存储、通信、调试、显示等辅助功能的其它部件。根据外围设备的功能可以分为存储器、接口和人机交互。嵌入式系统通过外设与外部通信串行,包括通信接口:RS-232、RS-
422、RS-485等;同步串行通信接口:I2C、SPI、ESSI等;USB;多媒体卡:SD卡、CF卡等;网络:以太网、LonWorks等;现场总线:CAN总线、LIN总线、PROFIBUS等;定时器:PLL、捕获比较模块和时间处理单元;分立IO:GPIO;模拟-数字/数字-模拟转换(ADC/DAC);调试接口:JTAG、ISP、ICSP、BDM端口、BITP、DP9端口等。
(4)嵌入式操作系统
4/ 22
《嵌入式技术》学习总结报告
在大型嵌入式应用系统中,为了使嵌入式开发更方便、快捷,需要具备一种稳定、安全的软件模块集合,用以管理存储器分配、中断处理、任务间通信和定时器响应,以及提供多任务处理等,即嵌入式操作系统。嵌入式操作系统的引入大大的提高了嵌入式系统的功能,方便了应用软件的设计,但同时占用了宝贵的嵌入式系统资源。一般在比较大型或需要多任务的应用场合才考虑使用嵌入式系统。嵌入式系统常常需要有实时要求,所以嵌入式操作系统往往又是“实时操作系统”。早期的嵌入式系统几乎都用于控制目的,从而或多或少都有些实时要求,所以从前“嵌入式操作系统”实际上是“实时操作系统”的代名词。今年来由于手持式计算机和掌上电脑等设备的出现,也有了不带实时要求的嵌入式系统。另外一方面,由于CPU速度的提高,一些原先认为是“实时”的反应速度现在已经很普遍了。这样,一些原先需要在“实时”操作系统上才能实现的应用,现在已不难在常的操作系统上实现。在这样的背景下,“嵌入式操作系统”和“实时操作系统”就成了不同的概念名词。
常见的嵌入式操作系统有: Android、Firefox OS、iPhone OS、uC/OS、uCLinux、VxWorks、pSOS、Nucleus、PalmOS、Windows CE、Windows XP Embedded、Windows Vista Embedded、嵌入式Linux、ECOS、QNX、Lynx、Symbian、Arm-Linux等。
(5)应用软件
嵌入式系统的应用软件是针对特定的实际专业领域,基于相应的嵌入式硬件平台,并能完成用户的预期任务的计算机软件。用户的任务可能有时间和精度的要求。有些应用软件需要嵌入操作系统的支持,但在简单的场合下不需要专门的操作系统。由于嵌入式应用软件对成本十分敏感,因此,为减少系统成本,除了精简每个硬件单元的成本外,应尽可能的减少应用软件的资源消耗,尽可能的优化。
1.3嵌入式系统的应用
嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用计算机的外部设备中就包含了5-10个嵌入式微处理器。嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括:工业控制:业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统;交通管理:在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块,GSM模块的移动定位终端已经在各种运输行业获得了成功的使用;信息家电:这将称为嵌入式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。即使你不在家里,也可以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。家庭智能管理系统:水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控
5/ 22
《嵌入式技术》学习总结报告
制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能;POS网络及电子商务:公共交通无接触智能卡(Contactless Smartcard, CSC)发行系统,公共电话卡发行系统,自动售货机,各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天下。环境工程与自然:水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。军事领域:战机、火控系统、导弹、火箭。
1.4嵌入式系统的工具链
工具对工程师设计开发的成功所起的决定性因素也在提高。应用越来越复杂,工具的选择也越来越重要。现在市场上有些工具是免费的,也有很多商业工具。无论是免费的还是商业的,工具的好坏往往会影响整个工程的最终结果。现在的嵌入式系统开发工具非常多样化,市场分散。目前据不完全统计,全世界嵌入式处理器的品种数已经超过1000多种,流行体系结构有30多个系列,在其上运行的操作系统环境也非常多样化,包括VxWorks、QNX、Linux、Nuclears、WinCE等等。不仅各种操作系统有各自的开发工具,在同一系统下不同的开发阶段也有不同的开发工具。如在用户的目标板开发初期,需要硬件仿真器来调试硬件系统和基本的驱动程序,在调试应用程序阶段使用交互式的开发环境进行软件调试,在测试阶段需要专门的测试软件进行功能和性能的测试等等。对于设计人员来说,要掌握、驾驭这样庞大的开发体系是一件非常困难的事情,而且编程的复杂度相当大。
在选择工具时,主要需要注意以下几个方面:编译器的性能和稳定性、代码覆盖、仿真(不仅是对CPU的仿真,还有对其他硬件和设备的仿真)。工具链,一般由编译器、连接器、解释器和调试器组成,在嵌入式开发中一般指交叉工具链。在嵌入式开发中,往往在机器A中使用工具链生成可执行程序,而在机器B中执行程序。而机器A和机器B的指令系统往往不同,常见的是利用x86机器上的工具链开发基于ARM或MIPS的嵌入式系统。工具链的构成往往与目标对象和使用工具链的操作系统平台有关。通常构建交叉工具链有如下三种方法:(1)分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具链。该方法相对比较困难,适合想深入学习构建交叉工具链的读者。如果只是想使用交叉工具链,建议使用下列的方法二构建交叉工具链。(2)通过诸如Crosstool等脚本工具来实现一次编译,生成交叉编译工具链。该方法相对要简单许多,并且出错的机会也非常少,建议大多数情况下使用该方法构建交叉编译工具链。(3)直接通过网上下载已经制作好的交叉编译工具链。该方法的优点不用多说,当然是简单省事,但该方法有一定的弊端就是局限性太大,因为毕竟是别人构建好的,也就是固定的,没有灵活性,所以构建所用的库以及编译器的版本也许并不适合6/ 22
《嵌入式技术》学习总结报告
你要编译的程序,同时也许会在使用时出现许多莫名其妙的错误,建议慎用此方法。
对于新手而言,直接下载一些厂商提供的集成开发环境(IDE),能够快速入手嵌入式开发。常用的IDE有Keil MDK、Xilinx ISE、Xilinx EDK、TKStudioIDE、Atmel的AVR Studio(for AVR以及AVR32)、Microchip的MPLab(for PIC、PIC18与dsPIC等)、Aiji的EDS(for ARM),南京万利的MedWin(for 8051)、IAR Embedded Workbench等。“整体解决方案是毒药”,我们使用IDE但是不要迷信整体解决方案。
嵌入式系统开发工具的发展已经有二十多年的历史,目前开放性和开放源码成为一股强大的潮流,推动嵌入式系统设计技术向前发展,传统的嵌入式系统开发工具已不能适应这一潮流。最新的发展趋势是,使用Eclipse开放源码集成化开发环境(IDE)平台,采用插件技术,在这样的平台基础上扩展许多开发工具套件。越来越多的嵌入式系统软件供应商将Eclipse平台作为自身工具的基础,推出个性化的开发工具套件,除提供标准的编译器、编辑器、调试器,还提供增强的操作系统内核级调试手段和高级的系统分析工具,如内存泄漏检测、系统性能监控等。总之,嵌入式开发工具将向高度集成、编译优化、具有系统设计、可视化建模、仿真和验证功能方向发展。
1.5嵌入式系统的发展趋势
在嵌入式系统开发领域,技术发展的最新趋势可以从企业层面、平台层面和部件层面分别观察,其核心是以尽可能快的速度、尽可能低的成本来满足迅速变化的市场需求。(1)以往,嵌入式软件开发的技术问题主要是在工程师和开发团队的层面来解决。不同的工程师和开发项目之间可以共享的资源并没有得到足够的重视和利用,这是业界经常说的一个问题—制造每辆汽车都必须从轮子开始。共享资源、提高软件部件的可重用性,这是整个软件业界几十年来的普遍趋势,只是这个趋势在嵌入式软件领域的步伐比企业软件慢了不少。随着DSO(Device Software Optimization,设备软件优化)概念的提出,嵌入式软件的可重用性将会得到快速提高。这就是嵌入式软件在企业层面的主流趋势。(2)从开发平台层面来看,开放已经成为一种主流思想,对于开放系统首先会让人想到的就是Linux。不过,开放本身不是一种技术,而是一种包容先进技术的思路和方法。新技术往往是从封闭开始,通过走向开放而发挥更大的价值。(3)从部件层面来看,最主流的趋势是多核技术的兴起。这个趋势从处理器芯片巨头的动向可以一目了然。对于嵌入式软件工程师来讲,采用开放、高效并且能够让自己不断积累开发成果的开发平台与工具,让自己能够专注于产品功能特性的开发,而不是花费太多精力去做维护工具和基础性、重复性的功能开发。
7/ 22
《嵌入式技术》学习总结报告
二、嵌入式系统的学习实践
目前从事嵌入式开发的主要有两类人。一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,需要开发一些与硬件关系最密切的最底层软件:BootLoader、Board SupportPackage(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作。目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头”可做的,所以搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。
中国的学生能够在大学相关课程中充分对MCU基础知识进行学习,这已经走在了很多国家(甚至包括日本)的前面。但中国新一代工程师面对的主要问题是如何去积累经验。嵌入式系统的开发通常是硬件和软件同时进行的,其在开发过程中出现不良状况的原因有可能是硬件或是软件,有时甚至可能是两者同时发生故障。在这样的状况下,就要求从事硬件的技术人员要相当程度的懂得软件,从事软件的技术开发人员也要在一定程度上懂得硬件。另外,目前该行业存在最终产品的寿命较短的情况,这就意味着每年都有必要开发新的产品。但是从初级阶段进行开发,需要花费大量的开发成本及开发时间。因此,有效地归纳总结现有的开发成果,并有效地投入新开发中加以利用是十分重要的。
很多工程师在设计嵌入式系统的时候往往选择最底层的工具,把绝大部分的时间都花在了底层的细节,而往往忽视了创新性和系统级的把握。工程师无论是为了自身的发展还是为了所设计产品的竞争力,这两点其实都是至关重要的。
首先是“工欲善其事,必先利其器”,若有条件要尽可能采用更快更强的工具进行开发。其次是“磨刀不误砍柴工”,要尽可能挖掘集成开发软件中的资源,如花些时间去了解许多实用辅助软件,如DMA、Cache和片内带宽分析工具等。同时,在至少一个领域中具有深入的技术知识。工程师能够分析问题或是编写程序是远远不够的,他们还要能够利用自己的知识完成独特创新的设计。所以,工程师要体现自身价值,必须有系统性的眼光,能够进行有创新性的设计。在这种情况下,工程师们更多的应该从底层的编程细节中脱身,让工具去处理那些“常
8/ 22
《嵌入式技术》学习总结报告
规”事务,而工程师本身就可以专注于自己的设计或研究领域,从更高的角度来看待自己在设计的系统,而不是只见树木,不见森林。
三、实验内容
我所在的小组的实验任务,基于ZedBoard-Zynq7000的μC/OS-III代码的分析和调试,重点分析μC/OS-III操作系统的任务调度机制。
3.1ZedBoard-Zynq7000介绍
ZedBoard是一款基于赛灵思Zynq-7000可扩展处理平台(EPP)的低成本开发板,也是行业首款面向广大开源小区的Zynq-7000 EP可扩展处理平台开发工具包。开发板为基于Linux、安卓、Windows或其它操作系统/实时操作系统的设计开发提供了所需的一切。另外,该平台提供数款扩展连接器,便于用户访问处理系统和可编程逻辑。Zynq-7000 EPP紧密集成了ARM®处理系统和7系列可编程逻辑,充分利用它们的优势,并结合ZedBoard可以开发出独树一帜且功能强大的设计。
图一:ZedBoard-Zynq7000 Zynq7000系列是基于Xilinx的可编程SOC架构,集成了一个双核的ARM® Cortex™-A9 处理器,一个Xilinx可编程逻辑(PL)。Zynq7000集成有仿真芯片,提供了板载USB-JTAG编程、USB-UART,方便开发者进行调试。
9/ 22
《嵌入式技术》学习总结报告
图二:Zynq-7000 AP SoC系统框架
3.2软件的安装设置
(1)安装UART驱动。目前只有32位版本的,在windows 7以下可安装。在windows 8安装失败。
(2)安装Vivado Design Suite.选择默认安装即可。
(3)uCOS-III项目的构建。Micrium-ZC702-uCOS-III源码压缩包中有“Micrium ZC702 uCOS-III Readme.pdf”说明书。打开Xilinx SDK,安装说明书里面的步骤一步一步进行配置即可完成uCOS-III 项目的构建。
3.3main函数分析
结合《Micrium-uCOS-III-UserManual》对代码进行静态分析,最好的方法是找到程序入口函数main(ZC702_uCOSIIIApplicationapp.c),然后在main函数内逐行代码分析从而对程序的流程有一个大体的了解。在分析过程中碰到关键或感兴趣的函数或结构可以进一步跟入分析。
intmain(void){ OS_ERR os_err;
10/ 22
《嵌入式技术》学习总结报告
Xil_DCacheDisable();//关数据cache
Xil_ICacheDisable();//关 instruction cache
Reset_Handler();/* Scatter loading is complete.*/ /* Now the caches can be activated.*/
BSP_BranchPredictorEn();/* Enable branch prediction.*/
BSP_L2C310Config();/* Configure the L2 cache controller.*/
BSP_CachesEn();/* Enable L1 I&D caches + L2 unified cache.*/
CPU_Init();/* Initialize the uC/CPU services */
BSP_Init();
OSInit(&os_err);/* Initialize uC/OS-III.*/
OSTaskCreate((OS_TCB *)&AppTaskStartTCB,//任务控制块 /* Create the start task */(CPU_CHAR *)“Startup Task”,(OS_TASK_PTR)AppTaskStart,//任务地址(void *)0,(OS_PRIO)APP_CFG_TASK_START_PRIO,(CPU_STK *)&AppTaskStartStk[0],(CPU_STK_SIZE)APP_CFG_TASK_START_STK_SIZE / 10u,(CPU_STK_SIZE)APP_CFG_TASK_START_STK_SIZE,(OS_MSG_QTY)0u,(OS_TICK)0u,(void *)0,(OS_OPT)(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),(OS_ERR *)&os_err);
OSStart(&os_err);/* Start multitasking(i.e.give control to uC/OS-III).*/
for(;;){
11/ 22
《嵌入式技术》学习总结报告
} } 对main函数内调用的一些函数和结构做进一步分析,可知OS_TCB(ZC702_uCOSIIIuCOS-IIISourceos.h)是系统用于表示一个任务的结构,是系统的核心数据结构之一。OSInit(ZC702_uCOSIIIuCOS-IIISourceos_core.c)函数是值得重点看的函数。main->OSInit->OS_IdleTaskInit,通过调用OS_IdleTaskInit的调用创建了系统的一个名叫“uC/OS-III Idle Task”的任务,其优先级值为31。这个任务相应执行的函数,基本没有做任何操作,简单对OSIdleTaskCtr、OSStatTaskCtr两个系统计数进行增加。OSIdleTaskHook()是用户可以自定义的函数,uCOS-III代码中有大量这种Hook函数,方便用户进行功能扩展。当然用户也可直接对任意代码进行修改,但是对系统Hook函数进行重写能够很好地保持原有uCOS-III系统的完整性。
void OS_IdleTask(void *p_arg){ „„
while(DEF_ON){
CPU_CRITICAL_ENTER();
OSIdleTaskCtr++;#if OS_CFG_STAT_TASK_EN > 0u
OSStatTaskCtr++;#endif
CPU_CRITICAL_EXIT();
OSIdleTaskHook();/* Call user definable HOOK */
} } main->OSInit->OS_TickTaskInit创建了一个名叫“uC/OS-III Tick Task”的任务(优先级为10),任务的创建都得通过OSTaskCreate来创建,main函数中又创建“Startup Task”任务。这三个任务对应的运行函数内都包含了while死循环,因此系统运行起来后至少有三个任务,分别是Idle任务、Tick任务、Startup任务。
3.4任务管理
12/ 22
《嵌入式技术》学习总结报告
μC/OS-III支持多任务,理论上可以支持任意多个任务,但实际通常受限于系统内存的多少。所有任务管理都是基于OS_TCB结构来进行的,接下来我们详细分析OS_TCB的定义(uCOS-IIISourceos.h),可知一个任务有优先级、状态、堆栈,下面分别予以介绍。
3.4.1 任务优先级
μC/OS-III的优先级共有32个(0-31),数值越小优先级越高,一般地优先级0和31保留给系统使用。中断处理任务的优先级最高,空闲任务的优先级最低。
图三:μC/OS-III任务优先级
3.4.2 任务的堆栈
在利用OSTaskCreate创建新任务前,必须先创建好任务堆栈,如Startup任务就用如下代码来分配堆栈:
13/ 22
《嵌入式技术》学习总结报告
static CPU_STK
AppTaskStartStk[APP_CFG_TASK_START_STK_SIZE]; 堆栈主要的大小是可以由用户自己定义(需考虑任务里函数的嵌套层数和局部变量占用空间多少。另外在嵌入式开发中,应尽可能避免递归的调用),堆栈是向下增长的。堆栈溢出(这里的溢出是指堆栈空间不够用)是操作系统必须考虑的问题,μC/OS-III有三种解决方法:(1)利用内存管理单元(MMU)或内存保护单位(MPU);(2)利用某些CPU提供的堆栈溢出检测功能;(3)基于软件实现的堆栈溢出检测。前两者都依赖于硬件提供该功能。
图四:μC/OS-III堆栈结构
3.4.3 任务的状态
OS_TCB结构中的TaskState表示任务的状态。在μC/OS-III中,从用户的角度来看任务有五个状态:静止(Dormant)、就绪(Ready)、运行(Running)、挂起(Pending)、中断(Inrerrupted)。任务的状态是动态转换的,构造好OS_TCB结构后,此时任务处于静止状态,OSTaskCreate函数中调用OS_TaskInitTCB函数将任务状态设为OS_TASK_STATE_RDY并调用OS_RdyListInsertTail将任务插入相应优先级的就绪队列中。
14/ 22
《嵌入式技术》学习总结报告
图五:任务状态的转换
3.5就绪任务的管理
任务在运行前都处于就绪状态或中断状态,CPU的调度基本上就是以某种策略从所有就绪任务中挑选一个任务运行。μC/OS-III利用一个就绪优先级位图和一个就绪队列表来管理就绪任务。
OSInit->OS_PrioInit()中对任务优先级位图表进行了初始化。μC/OS-III 有OS_CFG_PRIO_MAX优先级(见os_cfg.h),优先级值越小表示优先级越高。优先级0表示最高级别,优先级OS_CFG_PRIO_MAX-1最低(在本实验中OS_CFG_PRIO_MAX=32).如果某个优先级上存在就绪的任务,那么就在位图表中相应的位设置为1,否则设置为0.位图宽度可以是8bit、16bit、32bit,这样依赖于CPU_DATA的值即依赖所用CPU的特性(本实验中是32bit,优先级总数为
15/ 22
《嵌入式技术》学习总结报告
32,因此位图大小为32*1)。查找最高就绪的优先级,只需在优先级位图中找第一不为0的bit。
OS_PRIO OS_PrioGetHighest(void){ CPU_DATA *p_tbl;OS_PRIO prio;prio =(OS_PRIO)0;p_tbl = &OSPrioTbl[0];while(*p_tbl ==(CPU_DATA)0){
prio += DEF_INT_CPU_NBR_BITS;)p_tbl++;} prio +=(OS_PRIO)CPU_CntLeadZeros(*p_tbl);return(prio);}
图六:就绪优先级位图
就绪列表实际上是一包含OS_CFG_PRIO_MAX个OS_RDY_LIST(见os.h)类型实体的数组(OSRdyList[])。OS_RDY_LIST实体包含三个成员:Entries、TailPtr、HeadPtr。Entries表示该优先级别上任务个数,TailPtr和HeadPt用于创建包含该所有优先级别上的就绪任务的双向链表。代码中包含了OS_RdyListInit()、16/ 22
《嵌入式技术》学习总结报告
OS_RdyListInsert()、OS_RdyListInsertHead()、OS_RdyListInsertTail()、OS_RdyListMoveHeadToTail()、OS_RdyListRemove()等函数用于操作就绪列表。
图七:任务创建后加入就绪列表
3.6 任务调度
3.6.1 任务抢占
在μC/OS-III中,任务调度器(scheduler)即分发器(dispatcher)负责任务的调度。μC/OS-III使用基于优先级、抢占式的调度策略。抢占是指当由于某种原因使更高优先级任务变成就绪状态(较当前任务),那么调度器立即将CPU分别给该更高优先级任务,而当前任务变成挂起状态。类似地,当中断服务程序(ISR)将一个处于挂起状态的更高优先级任务唤醒时,当前被中断的任务保持挂起状态,被唤醒的那个更高优先级任务得到执行。如图八,是一种直接的抢占方式,μC/OS-III还支持一种较Post Defferd即延时的抢占方式(图九)。延时抢占方式,多一步ISR Handler(在操作系统中被称为中断软处理,主要目的是减少关中断的时间)用于处理在ISR(中断硬处理)中来不及处理事情。
17/ 22
《嵌入式技术》学习总结报告
图八:任务抢占
图九:带延迟处理的任务抢占
3.6.2轮转调度
如果未开启轮转策略,正在执行的任务除非主动放弃执行(包括等待某些时间、或者调用睡眠函数)或者被抢占,那么同级别的任务得等到该任务执行完采用机会执行。当同一个优先级上有两个以上就绪任务时,μC/OS-III 采用时间片策略使得该优先级上所有任务得到依次轮转执行。当然如果一个任务的时间片未
18/ 22
《嵌入式技术》学习总结报告
用完,也可主动放弃CPU使得下个任务得到执行。轮转调度策略不是必须的,μC/OS-III允许用户开启或关闭该策略。
图九:时间片调度
3.6.3 调度时机
调度可能发生时机包括:(1)一个任务给其他任务发送(send)消息或信号时;(2)任务OSTimeDly()或者OSTimeDlyHMSM();(3)任务调用等待函数OS???Pend()等待尚未发生的任务;(4)任务放弃挂起:其它任务调用OS???PendAbort()改变该任务状态;(5)任务创建时:创建的任务可能拥有比当前任务较高优先级;(6)任务被删除时:如果该任务就是当前任务;(7)内核对象被删除时;(7)任务优先级发生改变时;(8)任务调用OSTaskSuspend()挂起自己;(9)任务调用OSTaskResume()唤醒了其它任务;(10)所有嵌套的ISR退出时:调度由OSIntExit()发起而不是OSSched();(11)调度器被解锁;(12)任务调用OSSchedRoundRobinYield()主动放弃时间片;(12)用户调用了OSSched();(13)任务时间片用完了。
3.6.4 调度实现
调度器的实现在函数OSSched()和OSIntExit()中。其中,OSSched()由任务级别代码发起而OSIntExit()是有中断服务程序发起。任务的调度是基于前面提及的就绪任务的相关数据结构:就绪优先级位图和就绪队列。
19/ 22
《嵌入式技术》学习总结报告
图十:调度时主要用到的数据结构
3.7 上下文切换
上下文切换:当μC/OS-III要执行另一任务时,需要将当前任务使用的那些CPU寄存器值保存当前任务堆栈中,同时加载要执行的任务的上下文给CPU的寄存器进而开始另一任务的执行。上下文切换存在一些开销,通常CPU寄存器越多(任务用到的寄存器越多),开销就会越大。上下文切换的时间开销取决于有多少个CPU寄存器需要被存储和载入。
图十一:上下文在堆栈中的存储
20/ 22
《嵌入式技术》学习总结报告
存在两种上下文的切换:普通任务的上下文切换、中断服务程序的上下文切换。前者在函数OSCtxSw()中实现(其实是由宏OS_TASK_SW()调用,后者在函数OSIntCtxSw()中实现。这两个函数都是采用汇编语言实现,因此是CPU相关的(见uCOS-IIIPortsARM-Cortex-AGenericGNU os_cpu_a_vfp-d32.S)。这里只介绍OSCtxSw()的实现。
OSIntCtxSw:
BL OSTaskSwHook@ OSTaskSwHook()@
MOVW R0, #:lower16:OSPrioCur@ OSPrioCur = OSPrioHighRdy@ MOVT R0, #:upper16:OSPrioCur MOVW R1, #:lower16:OSPrioHighRdy MOVT R1, #:upper16:OSPrioHighRdy LDRB R2, [R1] STRB R2, [R0]
MOVW R0, #:lower16:OSTCBCurPtr@ OSTCBCurPtr = OSTCBHighRdyPtr@ MOVT R0, #:upper16:OSTCBCurPtr MOVW R1, #:lower16:OSTCBHighRdyPtr MOVT R1, #:upper16:OSTCBHighRdyPtr LDR R2, [R1] STR R2, [R0] LDR SP, [R2] @ SP = OSTCBHighRdyPtr->OSTCBStkPtr@
OS_CPU_ARM_FP_REG_POP R0 @ RESTORE NEW TASK'S CONTEXT: LDMFD SP!, {R0} @ Pop new task's CPSR, MSR SPSR_cxsf, R0 LDMFD SP!, {R0-R12, LR, PC}^ @ Pop new task's context.如图,当有更高优先级就绪任务需要被执行,任务调度器就会调用OSCtxSW()。主要有以下步骤:
(1)OSTCBCurPtr指向当前正运行的任务对应的OS_TCB,然后任务级调度器调用OSSched().(2通过OSTCBHighRdyPt指针,可以找到即将要运行的任务的OS_TCB;(3)OSTCBHighRdyPtr->StkPtr指向将要被执行的任务的堆栈的顶部;(4)执行任务上下文切换,将CPU的相关寄存器存储到当前任务(即将被调出CPU的任务)的堆栈。由于保存了上下文(以栈帧形式存储),将来该任务可以被恢复现场,以便继续运行。
(5)调用OSSched()后,CPU堆栈指针TSP会指向任务的堆栈。
21/ 22
《嵌入式技术》学习总结报告
图十二:OSCtxSw()所执行操作
四、工作总结
学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式操作系统方面。对于搞嵌入式软件的人,最重要的技术显然是:(1)掌握主流嵌入式微处理器的结构与原理。(2)必须掌握一个嵌入式操作系统。(3)必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。
通过本门课程的学习,我对嵌入式系统有了较直观的理解,并加深了操作系统一些概念的理解。但毕竟时间有限,希望可以在后续的进一步学习中加强实践,希望早日能在嵌入式领域做一些开发工作。
22/ 22
第五篇:智能车辆稽查方案
创羿科技基于有源RFID技术的车辆远距离稽查方案
一.系统介绍
系统采用世界领先的微波频段远距离射频识别技术,每部车辆上均安装有一张预先在系统注册的有源感应卡(CY-TPW-151)。有源感应卡会不断的发射微波信号,当在附近的远距离读写器(手持机CY-RMO-203)接收到感应卡信号后,远距离读写器通过GPS/GPRS与控制中心进行信息对比自动识别判断卡片的合法性,如果合法,则允许放行,否则手持读写器即报警提醒并自动记录车辆信息。手持远距离读写器可由考查工作人员随身携带,用来随时随地监控车辆,包括车辆部门、司机姓名、牌照以及照片等信息。
二、系统功能介绍
该系统适用于对车辆不良现象的考查,如稽查假、套牌车辆,稽查违章、肇事逃逸车辆,稽查其他类型的违法车辆,其它扩展功能等
稽查假、套牌车辆
在合法车辆的内部挡风玻璃后安装一个录有该车车辆信息和车主信息的有源远距离识别卡,管理平台和数据服务器适时将相应信息下传至各稽查系统(手持远距离读卡器或固定远距离读卡器);在所有合法车辆均安装了远距离识别卡的前提下,手持稽查系统定向接收到电子信息并显示出相应的车辆信息,执法人员将车辆的物理特征与显示的车辆信息进行比对,不相符者或接收不到电子信息者为假、套牌车辆;车载稽查系统或固定稽查系统通过图象识别系统和电子信息接收系统对指定车辆的物理特征和电子信息进行自动比对,信息不一致或系统只接收到图象信息者为假、套牌车辆,系统将立即语音和数显报警,执法人员可实施及时拦截检查。
稽查盗抢、走私车辆
将被盗抢车辆的车牌号码等信息通过管理平台,录入稽查系统,并加入到黑名单,如果被盗抢的车辆沿用原来的车牌号码,当驶入稽查范围时,系统能即时监测到并报警;如果不用原来的车牌号码,则将被视为假、套牌车被识别并拦截,进一步核对车辆特征后可确定是否为盗抢车辆。对于走私车,由于无法获得合法牌照,只能是假、套牌车,同样会被及时查获。
稽查违章、肇事逃逸车辆
将违章、肇事逃逸车辆的车牌号码及违规记录等信息通过管理平台,录入稽查系统,并加入到黑名单,当这种车辆驶入稽查范围时,系统能即时监测到,并提示该车辆特征及违章、肇事逃逸等情况,执法人员可即时进行拦截。稽查其他类型的违法车辆
系统还可将报废车辆、未年检车辆、欠费欠税车辆等问题车辆的车辆和车主信息录入管理平台,并加入到黑名单,当这些问题车辆驶入稽查范围时,系统能即时监测到,并提示该车辆特征及其违规情况,执法人员可即时进行拦截执法。
其它扩展功能
系统提供了多种功能接口,可以很方便地增加交通管理和公共安全需要的功能,例如高速公路不停车收费,小区及停车场出入管理、车辆驾驶员身份判定等;再结合GPS、GPRS技术,可实现远程车辆状态监控、被盗车辆远程熄火、车辆违章自动告知等功能。
“黑车”除了每年可逃漏车辆保险、养路费、车辆通行费、税费、营业费等规费外,还可少支出每年交警部门的车辆检测、司机的驾证年审等费用,一年就可以少支出几千元至上万元;而一部用于营运的“黑车”,每年能够逃漏高达数万元的费用。
套牌车的交通违法行为被电子警察拍摄后,收到罚单的肯定是原车主;更为严重的是,套牌车一旦交通肇事,大多会选择逃逸,交警很难查到真正的肇事者,真正的车主将蒙受不白之冤。
乱闯禁区、超速等交通违法行为尤以各种“黑车“最为突出;对从事客运的“黑车”来说,由于成本低廉,车主通常都会以较低的价格与正规营运车辆恶性竞争,严重扰乱了客运市场和营运秩序。
三、系统组成
CY-RMO-203 手持读写器;
2、2.45G远距离车辆电子标签;
3、系统管理软件(1套)
4、手持读写器wince软件(1套)
5、系统计算机控制中心
四、系统工作原理
基于有源RFID技术的车辆自动识别系统(AutomaticVehicleIdentification-AVI),包括车载射频标签,固定基站AVI、手持基站AVI系统。这里我们介绍手持的方法。
1、电子标识卡是一种有源电子射频卡,功率约为1/1000瓦,其内存可作到存储包括车辆型号、车牌照号、车主的相关资料等各种信息,是一个完善的汽车身份卡和信用卡。
2、手持AVI系统:在一些应用中,如公安刑侦、路政稽查、重要会议安全保卫,需要配备手持的AVI系统,随时开动并停靠在指定的路旁(或会场入口),对过往车辆进行突击检查和识别。手持AVI系统用手机通过移动通信网(GSM),以发短消息的方式(或者其他方式),与系统控制中心保持通信联系或进行数据信息交换。如果需要报告手持AVI系统的位置,车上也可配置GPS接收机,通过GSM发短消息的方法,向指挥中心传输移动站的地理位置。在某些应用场合,还可以使用简式移动稽查设备(CY-RMO-203手持阅读器)。稽查人员可以在某些狭隘地带使用PDA阅读器检查过往车辆。PDA阅读器事先下载了车辆信息,一旦读取到不合法信息,则立即报警。
五、方案特点
远距离:阅读距离10米以内轻松实现。由于车辆识别的实际要求,读卡距离不宜过长。本方案无须人工靠近刷卡或要在指定区域内通过才能识别,实现全自动识别,可以避免在恶劣天气下司机必须摇窗靠近阅读器才能刷卡等问题。先进的防碰撞技术,支持多标签识别写,在高峰时间可有效缓解出入库车辆过多、排队刷卡带来的堵塞问题;
运行稳定:有源卡阅读距离稳定,不易受周边环境影响。而且,有源卡可以有效突破汽车防爆金属网的屏蔽作用,顺利与阅读器交换数据。使用频道隔离技术,多个设备互不干扰;
支持高速度移动读取:标识卡的移动时速可达200公里/小时。
高可靠性:环境温度-40℃-85℃内能完全正常运行(MTBF≥70000小时),尤其是在北方低温和南方高温状态下更显优势,可以有效抵抗煤矿地区环境下空气中的高粉尘和污染物以及阴雨等环境下,能够保证设备正常使用。
加密计算与认证,确保数据安全,防止链路窃听与数据破解;
高抗干扰和防雷设计:对现场各种干扰源无特殊要求,满足工业环境要求,安装方便简单。
全球开放的ISM微波频段,无须申请和付费。
超低功耗:使用寿命长,平均成本低,并且对人体安全、更健康,无辐射损害。可配置微波模块工作方式,发射功率可调;
多识别性:可以同时识别200个以上标示,如果现场有多与200个以上的标示,我们有办法进行处理。
六、产品技术参数
1、有源车辆感应卡CY-TPW-151 有源感应卡为标识每辆汽车唯一身份的有源电子标签,其主要技术性能如下:
识别距离最远80米(与2.45G读卡器模块,空气中)
工作频段2.4-2.45G 接收灵敏度-80dbm~-90dbm 存储空间16M 期望电池寿命>6年,实际电池寿命>2年。电池电量过低时自动报警
掉电保存期10年以上
工作温度-40℃~+80℃
保存温度-60℃~+80℃
抗电磁干扰10V/m0.1~1000MHzAM调幅电磁波
震动10~2000Hz15g三个轴
自由跌落1500mm混凝土地面,每个面各两次
2、阅读器(刷卡器)CY-RFS-205(固定读卡器)和CY-RFS-205(手持读卡器)
CY-RFS-205固定式读卡器
CY-RFS-205手持读卡器
主要技术性能如下:
识别速度100个标签/秒(仅限ID号)防碰撞处理200个标签同时读取
识别距离最远80米
工作频段2.4-2.45G 输出功率≤3dBm(可软件调整)
微波通讯检错CRC16循环冗余校验
天线极化定向/全向
电源+3.0V~3.6VDC 通讯接口RS232/485波特率:9600-19200 工作温度-40℃~+80℃
保存温度-60℃~+80℃
可靠性MTBF≥70000小时
七、售后服务 创羿科技有限公司承诺对本公司产品
1、终生免费维修,并提供技术指导,一旦出现故障,可实现设备快速更换; 如果超过1年,要收取相应的成本费。2、7个工作日内帮助解决故障(若遇不可抗力因素可协定);接到报修一个工作日内提供远程技术指导;
3、该系统整体建设工期总工期可在三个月内完成,其中施工可一个月完成。
4、如果您对当前的系统不满意,我们可以为您量身定制产品,周期短,价格低,质量好。