时间:2023-07-10 16:33:16
序论:好文章的创作是一个不断探索和完善的过程,我们为您推荐十篇嵌入式设计系统范例,希望它们能助您一臂之力,提升您的阅读品质,带来更深刻的阅读感受。
中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)34-9742-02
The Design on UML Embedded Systems
YU Hai-wen
(College of Information Engineering Nanchang University(Pre-Lake Campus), Nanchang 33000, China)
Abstract: UML is the the most popular standard modeling language, embedded systems are professional computer system on the centre of application and the base of computer technology, embedded systems are the integrity of software and hardware; The design's quality of embedded systems is the key of success about digital products. The paper discuss the important conception of UML,and how to use the technology of UML OOD in the design of embedded systems, then show us the steps based on the example of microwave light.
Key words: UML; embedded systems; OOD modeling; two-way engineering
近年来,数字家电、汽车电子、MP3、Smart Phone等跃居电脑产业的主流地位,数字整合的需求日益增长,嵌入式软件(Embedded Software)系统愈来愈复杂,涉及到的接口越来越多,这种软、硬件结合的协同设计(Hardware/Software Co-design)需要不同技术背景的人共同开发,如何使这些具有不同技术背景和专长的人联合开发、协同设计?UML可以解决这个问题。统一建模语言UML(Unified Modeling Language)采用一种简单而直观的图形化方式描述系统设计中的各个问题和细节。不同技术背景的设计师只需懂得UML 符号就可以与对方交流、共同设计。
本文将重点讨论如何在嵌入式系统设计中使用 UML 技术,并结合实例“微波炉小灯”演示采用 UML 的嵌入式系统设计过程。
1 UML OOD建模
1.1 UML基本概念介绍
1.1.1 UML事物
UML中事物是实体抽象化的最终结果,是模型中的基本成员,UML中包含结构事物、行为事物、分组事物和注释事物。
1.1.2 UML建模图
图是事物集合的分类,UML中包含多种图:1)类图(Class Diagram);2)对象图(Object Diagram);3)包图(Package Diagram);4)组件图(Compoment Diagram,也称构件图);5)部署图(Deployment Diagram);6)用例图(Usecase Diagram);7)时序图(Sequence Diagram);8)协作图(Collaboration Diagram);9)状态图(Statechart Diagram);10)活动图(Activity Diagram)。
由于篇幅原因,本文将结合一个需求非常简单的“微波炉小灯”的实例,给出几个重要的图。本文介绍的图采用业界使用最广泛的UML建模工具Rational Rose。Rational Rose为团队开发和规范的开发过程管理提供了良好的支持。
1.2 UML OOD建模
从应用的角度上来讲,面向对象的系统设计一般需要完成如下工作:
1)描述需求;2)根据需求建立系统的静态模型;3)建立系统的动态模型:即描述系统的行为。
1.2.1 描述需求
“微波炉小灯”的实例需求很简单,即微波炉里有个小灯,微波炉门打开时,它就亮起来,一旦关上门,就熄掉了。本文将根据此需求说明,采用UML设计一个控制程序来感应微波炉对象的状态变化,并且触发小灯对象的状态变化。
1.2.2 建立系统的静态模型
用例图(Use Case Diagram):UML的Use Case图1描述User对整体系统的功能需求,本例中,User会有两项动作――“开微波炉”与“关微波炉”,而且期待开微波炉时会亮小灯,关微波炉时小灯会自动熄掉。
类图(Class Diagram):如图2,类是OOD中一个重要概念。软件组件的模块通称为组件的类(Class),OOD设计理念是程序指令写在类里,其所检验测试的对象都是类,等到电脑执行时才由电脑在内存中定义实体组件(对象)。
1.2.3 建立系统的动态模型
建立系统的动态模型实质就是描述系统的行为。
时序图(Sequence Diagram):图3这个时序图反映了开微波炉过程中触发小灯亮的详细执行过程。
状态转换图4(Statechart Diagram):对对象行为做详细的描述。就小灯而言,消息的传达是个事件(Event),这事件令小灯改变状态(亮或熄)。
2 双向工程
2.1 正向工程
Rational Rose中可实现正向(为模型产生相应的代码,即程序框架)、逆向(从用户原来的软件系统导出该系统的模型)和双向工程(实现模型和代码之间的循环工程),从而保证模型与代码的高度一致,这个功能意味着降低了开发人员编写程序的复杂度和工作量。
Rational Rose支持C++、Visual C++、Java、Smalltalk、Ada、Visual Basic、PowerBuilder等语言和开发工具,并能为CORBA 应用生成接口定义语言(IDL),为数据库应用生成数据库描述语言(DDL)等。Rational Rose默认支持的语言是Java。
本例中,在完成了“微波炉小灯”类图制作后,选择菜单“Tools” “Java/J2EE”“generate code”即可生成Java代码,当原建模文件更新时,代码会同步更新。
2.2 逆向工程
前面所述正向工程虽然只是得到了代码框架,实现功能部分的代码仍需开发人员输入。随着软件功能的实现及新的用户需求的加入,原建模文件在需要更新时,可不需要重新画图,只需进行逆向工程操作即可。本例中,在完成了“微波炉小灯”代码后,选择菜单“Tools”“Java/J2EE”“reverse engineer”即可生成新的建模文件。
3 小结
在软、硬件设计领域中,采用UML进行软件组件设计及其架构(Architecture)规划技术逐渐成为业界关注的焦点。根据本文及“微波炉小灯”实例,显然从UML设计图到Java(C及C++)代码的过程很流畅。
参考文献:
引言
黑盒测试是从用户观点出发的测试,依据需求功能说明书中的预期用途、定时和性能的要求,推断测试结果。黑盒测试根据测试阶段可分为单元测试、集成测试、确认测试、系统测试四个阶段[1]。嵌入式计算机系统具有与传统软件测试不同的新特性,因此需要采取针对性的测试方法。通用的测试方法可分为静态时间分析和动态时间分析。
1嵌入式软件测试的环境分析
在线仿真配备了CPU芯片接口,提供和应用程序交流信息桥,不足之处在于对硬件的依赖性较强,测试范围较窄;目标机仿真测试结果真实,但由于实际运行中连接外部设备,很难辨识软件和硬件错误。在实际测试中,根据测试效率、成本、可靠性、自动化程度等因素选择测试环境[2]。
2嵌入式测试系统的技术实现
CodeTest一方面吸取软件插桩技术,另一方面从硬件测试那里吸取从总线获取数据的技术,并进行升级改造。在硬件测试时,CodeTest选择插入点的方式为主动获取关键数据。和CodeTest相比,纯软件测试对目标测试的影响大大降低。因此选用Cereal仿真器。嵌入式软件测试系统由功能测试模块、代码测试模块、数据分析和文档报告模块、通信接口转换模块组成。对于黑盒测试来说,功能测试模块居主导地位,它主要通过接收目标系统输出信号和需要的信号进行比对来判定目标系统在功能上是否达到最优[3]。
3词法语法分析的设计与实现
3.1Lex⁃Yacc
Lex是检测字符匹配性的词法生成程序,Yacc是测定语法的生成程序。一个Lex程序由三段组成:首先是C和Lex定义;第二段是C代码;第三段是C函数。一个Yacc程序也是由三段组成,分别是声明、语法规则和C代码。Lex同Yacc的工作原理如图1所示。
3.2Lex⁃Yacc之间的联系
Lex程序用来计算数字字符串,能对各种符号进行识别,当插码时可以以注释的形式插入插桩代码,等程序完成,可以自行取消代码插桩,不影响整体进程。Yylval用来传递Lex与Yacc之间数字字符串转化后的数值,利用lineno传递正在处理的代码行号和标号。本次设计全程在Linux下,通过Lex编译后生成词法分析程序的C代码,通过Yacc编译后生成语法分析程序的C程序代码。两者通过gcc命令进行编译形成综合分析。最后运行该综合分析器就可以对51系列的汇编语言进行分析[4⁃5]。
3.3被测源程序静态结构分析
Lex⁃Yacc工具对单文件逐行扫描,得出当前语句各类参数类型,不同参数类型分别进入不同的单链表中。其中除了顺序单链表外,其他四种处理方式基本相同。待词法、语法分析完毕,五个单链表中存储了对应的汇编程序。因为单链表本身只是一个转换器,无法显示汇编程序之间的逻辑关系,所以需要对程序进行二次分析,确定所有逻辑关系。其中五个单链表形成的流程图如图2所示。针对程序流程图的建立,首先搜索匹配节点,根据节点不同进入相应分支处理。当前语句在顺序节点,则进入顺序处理模块。从关键字“结束行号+1”开始遍历单链表,存在两种结果:一是算法出错;另外一种就是在主程序中时则表明当前分支分析完成。接着要判断条件跟踪链表中的顺序分支(规定为右分支)是否都已分析完毕。
4覆盖率分析及评测
4.1被测源程序覆盖率分析
虚拟插桩技术就是在汇编语言基本结构的特点上,在源程序的插桩点处设置断点,在源程序执行到断点处,响应断点处指令,给出具体的PC地址,自动记录并打印出来,接连下去形成PC值的数据链。通过查询五类单链表与之建立对应关系,就可以获得到源程序的真实运行轨迹,进而计算出各类覆盖指标。
4.2基于代码的覆盖评测
在仿真测试平台原型系统上,基于代码的覆盖测试首先需要选定适合用作黑盒测试的子过程模块。提取的子过程模块必须具备独立运行的能力,根据覆盖测试的标准和要求对代码逻辑结构进行认真分析,设计出多个测试用例,然后通过手工运行该子程序的方式,在某一特定测试用例驱动下运行,测定出运行路径,通过计算得出两种覆盖率理论评测指标,与仿真测试平台上实现的两种覆盖率相对比,得出覆盖率分析法与虚拟插桩的正确性验证结果。
5嵌入式系统平台设计
设计一个可以代替人工进行黑盒测试的平台系统,见图3,其基本原理是通过脚本语言记录状态信息,之后通过PC回放测试信息以判断结果是否与记录脚本一致,以此决定本次测试是否通过。为此,在编辑源代码时就需要满足录制脚本和脚本回放两个阶段的需求。
5.1插装代码分析
在PC上运行插装系统最重要的原则就是要保证软件原有功能的稳定性和完整性。因此在设计嵌入式系统的插装代码时不能改变程序的原有逻辑和原有执行流程,应尽量降低在嵌入式系统所占的资源,尽可能将部分功能和操作交付于PC进行。嵌入式系统中的模拟用户输入模块的主要功能是将计算机发送的命令进行分析,并将结果回复到处理模块中,其操作模拟流程见图4。
5.2系统状态的定义和获取
(1)声音信息的获取嵌入式系统中对声音信息的获取主要是通过识别每个声音惟一的ID编号和固定的音频编码进行的。工作时,由系统中的服务函数获得ID声音的音频编码并发送到PC中。(2)获取LED信息LED的运行方法和声音相似,都有一套惟一的LED编码,并由LED控制器控制。常用的设计方法是将LED中的编码放到嵌入式系统中的缓冲区内,通过定时刷新函数提取LED信息[6]。(3)获取LCD信息由于LCD需要显示的信息较多,且各消息属性复杂,因此较难提取。目前常用的提取方法是点阵截取法和消息截取法。由于点阵截取法操作简单、测试结果准确率高,因此本文使用点阵截取法获取LCD信息。(4)系统状态的获取主动请求和被动获取是嵌入式系统获取信息的主要方式。主动请求是指嵌入式系统在处理完PC发出的操作命令时,主动将搜集好的信息发送到PC上。被动获取是指嵌入式系统并不主动发送检测信息,而是当状态出现时才决定是否继续后续操作。
5.3自动化比较和测试
软件是否准确输出结果,需要经过多次测试实际输出和预期输出的差别。本文在设计嵌入式系统时综合考虑了一些智能比较思想来优化设计流程。由于实际的嵌入式系统会产生上百个复杂的状态信息[7],为便于比较,本文采用了相对比较的办法对录制脚本时的状态变迁进行比较。最后设计完成的嵌入式系统需对脚本进行测试,这是交互式应用的重要组成部分。脚本测试的准确度主要依赖于所选用的测试工作和脚本技术。当前主要的脚本技术有共享脚本、数据驱动脚本、结构化脚本等。这些脚本都包括了三个命令,即人工操作命令、状态检查命令、逻辑控制命令。测试脚本主要就是对这三个命令进行检查,其中在自动化检测中采用何种脚本记录测试结果可依据模块要求进行选定。
6结语
黑盒测试技术的汇编语言测试系统用例研究在我国已经很多,本文最大的亮点是引入虚拟插桩技术,实现真正插桩,即在被测源程序的插桩点处设置中断指令,当源程序运行到该点处时自动运行断点指令,给出具体的PC地址,进而给出一系列地址数据,根据事先设定的用例判定运行效果,得出黑盒测试的正确验证结果。此方法最大的优点在于高效、精确、成本较低,在实际运用中具有较高的实用价值。
参考文献
[1]孙昌爱,靳若明,刘超,等.实时嵌入式软件的测试技术[J].小型微型计算机系统,2000,21(9):920⁃924.
[2]杜晓东.面向嵌入式系统的测试工具研究[D].成都:电子科技大学,2003.
[3]苏铭,宋宗宇,王华.多计算机的自动插桩与监测系统[J].计算机工程与应用,2002(4):79⁃82.
[4]杨作梅,张旭东.1ex与yacc[M].北京:电子工业出版社,2003.
[5]邓支益,何亦征,田翼.嵌入式软件测试研究[J].航空电子技术,2003,34(1):37⁃42.
中图分类号:TP274;TP3680
引 言
经过近几年的快速发展,嵌入式系统(Embedded System)已经成为电子信息产业中最具增长力的一个分支。随着手机、PDA,GPS、机顶盒等新兴产品的大量应用,嵌入式系统的市场正在以每年30%的速度递增(IDC预测),嵌入式系统的设计也成为软硬件工程师越来越关心的话题。
在嵌入式系统设计中,低功耗设计(Low Power Design)是许多设计人员必须面对的问题。其原因在于嵌入式系统被广泛应用于便携式和移动性较强的产品中,而这些产品不是一直都有充足的电源供应,往往是靠电池来供电的;而且大多数嵌入式设备都有体积和质量的约束。另外,系统部件产生的热量和功耗成比例,为解决散热问题而采取的冷却措施进一步增加了系统的功耗。为了得到最好的结果,降低系统的功耗具有下面的优点:
(1) 电池驱动的需要。在强调绿色环保时期,许多电子产品都采用电池供电。对于电池供电系统,延长电池寿命,降低用户更换电池的周期,提高系统性能与降低系统开销,甚至能起到保护环境的作用。
(2) 安全的需要。在现场总线领域,本安问题是┮桓霆重要话题。例如FF的本安设备,理论上每个网段可以容纳32个设备,而实际应用中考虑到目前的功耗水平,每个网段安装10个比较合适。因此降低系统功耗是实现本安要求的一个重要途径。
[JP2](3) 解决电磁干扰。系统功耗越低,电磁辐射能量越小,对其他设备造成的干扰也越小。如果所有的电子产品都能设计成低功耗,那么电磁兼容性设计会变得容易。[JP]
(4) 节能的需要。特别是对电池供电系统,功耗与电压的平方成正比即:P=V2fC+P┆static,б虼私谀芨为重要。
1 功耗产生的原因
[BT3]1.1 集成电路的功耗
目前的集成电路工艺主要有TTL和CMOS两大类,无论哪种工艺,只要电路中有电流通过,就会产生功耗。通常,集成电路的功耗主要有4个:
(1) 开关功耗。对电路中的电容充放电而形成,其表达式为:
(2) 静态功耗和动态功耗。当电路的状态没有进行翻转(保持高电平或低电平)时,电路的功耗属于静态功耗,其大小等于电路电压与流过电流的乘积;动态功耗是电路翻转时产生的功耗,由于电路翻转时存在跳变沿,在电路翻转瞬间,电流比较大,存在较大的动态功耗。目前大多数电路都采用CMOS工艺,静态功耗很小,可以忽略。起主要作用的是动态功耗,因此从降低动态功耗入手来降低功耗。
(3) 短路功耗。因开关时由电源到地形成的通路造成的,其表达式为:
(4) 漏电功耗。由亚阈值电流和反向偏压电流造成。目前大多数电路都采用CMOS工艺,故漏电功耗很小,可以忽略。
1.2 电阻的功耗和有源器件的功耗
通常为负载器件和寄生元件产生的功耗。有源开关器件在状态转换时,电流和电压比较大,将引起功率消耗。另外, CMOS电路中最大的功耗来自于内部和外部的电容充放电产生的功耗。
2 硬件低功耗设计
[BT3]2.1 选择低功耗的器件
选择低功耗的电子器件可以从根本上降低整个硬件系统的功耗。目前的半导体工艺主要有TTL工艺和CMOS工艺,CMOS工艺具有很低的功耗,在电路设计上尽量选用,使用CMOS系列电路时,其不用的输入端不要悬空,因为悬空的输入端可能存在感应信号,它将造成高低电平的转换。转换器件的功耗很大,尽量采用输出为高的原则。
嵌入式处理器是嵌入式系统的硬件核心,消耗大量的功率,因此设计时选用低功耗的处理器;另外,选择低功耗的通信收发器(对于通信应用系统)、低功耗的访存部件、低功耗的电路,目前许多通信收发器都设计成节省功耗方式,这样的器件优先采用。
2.2 选用低功耗的电路形式
完成同样的功能,电路的实现形式有多种。例如,可以利用分立元件、小规模集成电路,大规模集成电路甚至单片实现。通常,使用的元器件数量越少,系统的功耗越低。因此,尽量使用集成度高的器件,以减少电路中使用元件的个数,减少整机的功耗。
2.3 单电源、低电压供电
一些模拟电路如运算放大器等,供电方式有正负电源和单电源两种。双电源供电可以提供对地输出的信号。高电源电压的优点是可以提供大的动态范围,缺点是功耗大。例如,低功耗集成运算放大器LM324,单电源电压工作范围为5~30 V。当电源电压为15 V时,功耗约为220 mW;当电源电压为10 V时,功耗约为90 mW;当电源电压为5 V时,功耗约为15 mW。可见,低电压供电对降低器件功耗的作用十分明显。因此,处理小信号的电路可以降低供电电压。
2.4 分区/分时供电技术
一个嵌入式系统的所有组成部分并非时刻在工作,基于此,可采用分时/分区的供电技术。原理是利用“开关”控制电源供电单元,在某一部分电路处于休眠状态时,关闭其供电电源,仅保留工作部分的电源。
2.5 I/O引脚供电
嵌入式处理器的输出引脚在输出高电平时,可以提供约20 mA的电流,该引脚可以直接作为某些电路的供电电源使用,如图2所示。处理器的引脚输出高电平时,外部器件工作;输出低电平时,外部器件停止工作。需要注意,该电路需满足下列要求:外部器件的功耗较低,低于处理器I/O引脚的高电平输出电流;外部器件的供电电压范围较宽。
2.6 电源管理单元设计
处理器全速工作时,功耗最大;待机状态时,功耗比较小。常见的待机方式有两种:空闲方式(Idle)和掉电方式(Shut Down)。其中,Idle方式可以通过中断的发生退出,中断可以由外部事件供给。掉电方式指的是处理器停止,连中断也不响应,因此需要进入复位才能退出掉电方式。
为了降低系统的功耗,一旦CPU处于“空转”,可以使之进入Idle状态,降低功耗;期间如果发生了外部事件,可以通过事件产生中断信号,使CPU进入运行状态。对于Shut Down状态,只能用复位信号唤醒CPU。
2.7 智能电源设计
既要保证系统具有良好的性能,又能兼顾功耗问题,一个最好的办法是采用智能电源。在系统中增加适当的智能预测、检测,根据需要对系统采取不同的供电方式,以求系统的功耗最低。许多膝上型电脑的电源管理采用智能电源,以笔记本电脑为例,在电源管理方面,Intel公司采取Speed Step技术;AMD公司采取Power Now技术;Transmeta公司采取Long Run技术。虽然这三种技术涉及到的具体内容不同,但基本原理是一致的。以采用Speed Step技术的笔记本电脑为例,系统可以根据不同的使用环境对CPU的运行速度进行合理调整。如果系统使用外接电源,CPU将按照正常的主频率及电压运行;当检测到系统为电池供电时,软件将自动切换CPU的主频率及电压至较低状态运行。
2.8 降低处理器的时钟频率
处理器的功耗与时钟频率密切相关。以SAMSUNG S3C2410X (32 b ARM 920T内核)为例[8],它提供了四种工作模式:正常模式、空闲模式、休眠模式、关机模式,各种模式的功耗如表1所示。[HJ1][HJ]
由表1可见,CPU在全速运行的时候比在空闲或者休眠的时候消耗的功率大得多。省电的原则就是让正常运行模式远比空闲、休眠模式少占用时间。在类似PDA的设备中,系统在全速运行的时候远比空闲的时候少,所以可以通过设置,使CPU尽可能工作在空闲状态,然后通过相应的中断唤醒 CPU,恢复到正常工作模式,处理响应的事件,然后再进入空闲模式。因此设计系统时,如果处理能力许可,可尽量降低处理器的时钟频率。
另外,可以动态改变处理器的时钟,以降低系统的总功耗。CPU空闲时,降低时钟频率;处于工作状态时,提高时钟频率以全速运行处理事务,实现这一技术的方法。通过将I/O引脚设定为输出高电平,加入电阻R1,将增加时钟频率;将I/O引脚输出低电平,去掉电阻R1,可降低时钟频率,以降低功耗。
2.9 降低持续工作电流
在一些系统中,尽量使系统在状态转换时消耗电流,在维持工作时期不消耗电流。例如,IC卡水表、煤气表、静态电能表等,在打开和关闭开关时给相应的机构上电,开关开和关状态通过机械机构或磁场机制保持开关的状态,而不通过电流保持,可以进一步降低电能的消耗。[JP]
3 软件低功耗设计
3.1 编译低功耗优化技术
编译技术降低系统功耗是基于这样的事实:对于实现同样的功能,不同的软件算法,消耗的时间不同,使用的指令不同,因而消耗的功率也不同。对于使用高级语言,由于是面向问题设计的,很难控制低功耗。但是,如果利用汇编语言开发系统(如对于小型的嵌入式系统开发),可以有意识地选择消耗时间短的指令和设计消耗功率小的算法来降低系统的功耗。
3.2 硬件软件化与软件硬件化
通常的硬件电路一定消耗功率,基于此,可以减少系统的硬件电路,把数据处理功能用软件实现,如许多仪表中用到的对数放大电路、抗干扰电路,测量系统中用软件滤波代替硬件滤波器等。
需要考虑,软件处理需要时间,处理器也需要消耗功率,特别是在处理大量数据的时候,需要高性能的处理器,这可能会消耗大量的功率。因此,系统中某一功能用软件实现,还是用硬件实现,需要综合计算后进行设计。3.3 采用快速算法
数字信号处理中的运算,采用如FFT和快速卷积等,可以大量节省运算时间,从而减少功耗;在精度允许的情况下,使用简单函数代替复杂函数作近似,也是减少功耗的一种方法。
3.4 软件设计采用中断驱动技术
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2012) 21-0000-02
1 项目背景
越来越多的卷烟加工企业通过MES系统实现了对整个卷烟生产过程的优化管理,并掌握了大量的生产过程数据,特别是为保证产品质量所记录下的水分、温度、流量、质量检验等过程工艺数据。如何把整合了实时与核心业务流程并最大限度地利用生产资本的MES系统和SPC有效集成起来,不但同时收集实时生产数据和执行实时统计分析,建立动态反馈和闭环控制流程,还可以为生产决策人员和管理人员提供定制的控制图表以及提醒实时潜在的质量问题,成为了卷烟企业信息化项目实施过程中的一个重要课题。
2 设计思路
卷烟生产属于流程性材料加工方式,如何才能科学地区分出生产过程中产品质量的偶然波动与异常波动,发现过程异常及时告警,并及时采取措施,消除和避免异常波动,使过程处于正常波动状态,恢复过程的稳定,从而持续优化和改进产品质量。要解决这个艰巨的挑战,可以通过建立结合工业技术、灵活的MES并集成在线统计过程控制系统(SPC)的制造基础结构来实现。我们提出把SPC作为MES的一个功能模块嵌入MES系统,共享基础数据和各业务数据表,从而实现嵌入式SPC系统与MES系统的真正有效集成。
3 业务需求
我们在MES系统整体功能设计时就提出要把数据的统计和深入分析放在同等重要的地位,将MES和SPC进行深度整合,MES通过自动采集或人工补充的方式对过程数据进行全面收集,嵌入式SPC实现对实时过程数据进行采集、分析,同时还应强调对质量检验结果、质量评价结果等事后数据进行分析,最终达到改进生产操作的目的。关键需求如下:
Abstract: based on embedded system design of the structure of the geographic information system, and puts forward the comprehensive GIS architecture using a variety of modern technology, they include GIS technology and embedded technology, and RS technology, GPS technology, mobile computing technology and communication technology, etc.
Keywords: geographic information systems; Embedded; Global positioning system; Spatial data
中图分类号:S611文献标识码:A 文章编号:
1.引言
随着GIS技术的不断成熟和它给人们带来的巨大便利,以及嵌入式设备性能的提高和普及,两者的结合成为一种必然的发展趋势。近年来,嵌入式GIS技术正成为GIS发展的热点之一,它的应用包括了汽车导航、野外测绘、物流运输、军事指挥等众多的领域。我国也已经开发出了自己的嵌入式GIS产品,比如武汉中地软件的MAPGIS-Embedded和北京超图公司的eSuperMap等。本章提出了一种基于嵌入式设备的地理信息系统的完整的体系架构,对于架构中涉及到的技术以及每一个模块都做了比较详细的说明。同时需要指出的是:这个架构不仅具有一定的理论价值,还具有很强的现实意义。我们已经按照此架构中提出的思想进行了代码实现,当然由于时间和精力的关系,只是实现了其中的一些基本的功能,但这却是自主开发嵌入式地理信息系统的一次有意的尝试,并具体介绍实现的过程和步骤,以及实现过程中一些难点、关键问题的解决。
2.嵌入式GIS体系架构
嵌入式地理信息系统的体系架构如图1所示。从图中可以看出,整个系统是基于C/S模式的,它由嵌入式设备、高性能计算机、全球定位系统(GPS)和空间数据库四个部分组成。
嵌入式设备由嵌入式硬件系统和嵌入式软件系统构成,其中嵌入式硬件系统要集成GPS定位信息的接收功能;在嵌入式硬件之上的一层是嵌入式操作系统(如ARM-Linux等),它是嵌入式软、硬件之间的桥梁,主要负责文件管理、进程调度等功能;运行在嵌入式设备上的GIS软件(也就是客户端程序)包括地图的显示、缩放、漫游、缓冲分析、通讯等几个模块,通讯模块可以通过无线网络与高性能计算机(服务器)进行通信和数据传输。
高性能计算机(服务器)要实现最短路径、最优路径的查询等地理信息系统中比较复杂的功能,同时还要实现与客户端进行通讯、文件格式的转换,以及访问数据库服务器等功能。
对于系统中数据的存储,我们采取的是客户端-服务器两级数据存储模式,大部分的数据存放在服务器端(高性能计算机),客户端(嵌入式设备)只保留少量常用的数据;如果系统中的数据量过于庞大,甚至可以由一个具有海量存储器的计算机专门来存储服务器端的数据,并向服务器提供访问接口,这样可以减轻服务器的负担,提高整个系统的效率和处理数据的速度。在必要时,客户端可以向服务器提出更新数据的请求,服务器在接到请求后把相应的数据文件回传给客户端。
图1 基于嵌入式设备的GIS架构示意图
对系统的功能模块进行了划分,把地图显示、图层管理、缓冲分析、缩放和漫游等比较简单,对硬件资源消耗小的应用放在客户端,而把最优路径、最短路径的分析等复杂的应用放在服务器端。这样做的原因在于嵌入式硬件本身的资源非常有限,如存储空间偏小、处理器的速度也不是十分理想等,所以它不可能发展较为复杂的GIS空间分析功能。当客户端需要调用最短(优)路径查询等复杂的GIS分析功能时,就向服务器发出请求(其中包括客户端当前的位置、目的地等参数),服务器根据客户端传递的参数,对数据库进行一系列的查询、检索等操作后,将分析的结果回传给客户端,从而为客户提供决策支持,同时也减轻了嵌入式设备的负担,提高了它的工作效率。
3.全球定位系统及3S集成技术
3S技术为科学研究、政府管理、社会生产提供了新一代的观测手段、描述语言和思维工具。3S的结合应用,取长补短,是一个自然的发展趋势,三者之间的相互作用形成了“一个大脑,两只眼睛”的框架,即RS和GPS向GIS提供或更新区域信息以及空间定位,GIS进行相应的空间分析(图2),以从RS和GPS提供的浩如烟海的数据中提取有用信息,并进行综合集成,使之成为决策的科学依据。RS、GIS、GPS集成的方式可以在不同的技术水平上实现,最简单的办法是三种系统分开而由用户综合使用,进一步是三者有共同的界面,做到表面上无缝的集成,数据传输则在内部通过特征码相结合,最好的办法是整体的集成,成为统一的系统。
图2 3S的相互作用与集成
4.空间数据的无线传输
空间数据无线传输技术是完善嵌入式GIS 功能的重要技术之一。但是目前该技术的发展受到诸多因素的制约,下面就这些制约因素加以阐述和分析,并针对无线传输网络提出相应的解决方案。虽然GPRS是作为现有GSM网络向第三代移动通信演变的过渡技术,但是它相对于原来GSM的拨号方式的电路交换数据传送方式,在许多方面都具有显著的优势。正是由于GPRS具有以上的这些特点和优势,在我们设计的基于嵌入式设备的GIS系统架构中,采用了GPRS作为空间数据的无线传输网络。
5.试验结果
ECI GIS的开发严格遵循了软件工程的思想,并且针对嵌入式软件开发的特点,对软、硬件平台以及专业需求等因素也进行了综合的分析和考虑。但由于时间、技术等方面的原因,我们的软件只是实现了GIS中的一些基本功能。本节将重点向您介绍这些功能的实现,即程序运行的结果。说明:地图中的当前图层为上海市区县和主要河流。
图3全图显示
图4属性数据库的显示
结束语
ECI GIS1.0是一个基于嵌入式设备的地理信息系统软件,它经过了架构的搭建、模块设计、代码实现、软件移植和应用检验几个阶段,具备了地图缩放、信息查询等基本的功能。ECI GIS与其他的嵌入式地理信息系统相比,最大的特点就是它没有借助任何商业的操作系统(如WinCE)和GIS系统软件,实现过程中用到的Linux和GDAL函数库的源代码都是免费开放的。ECI GIS1.0是我们为开发出中国拥有自己完全版权的GIS软件而进行的有意的尝试和探索,这一点或许远远大于其在商业上的价值。
参考文献:
[1] 龚健雅. 地理信息系统基础[M]. 北京:科学出版社,2001.
[2] 张超,陈丙咸,邬伦.地理信息系统[M]. 北京:高等教育出版社,1995.
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)32-7230-02
随着电子信息技术的发展,计算机在不同领域中得到了广泛的应用,人们根据不同领域的实际需求,针对性的开发了具有相应功能的软件,从而提高实际的工作效率,但是在计算机出现的早期,受到其体积和性能上的限制,其应用的范围很小,随着晶体管和集成电路的出现,计算机的体积和性能得到了极大的提升,从计算机的发展可以看出,每次技术的更新,都是为了减小其体积,同时提高其性能。计算机的出现是革命性的,由于其能够自行的处理任务,如果应用在实际的工业生产中,就能够实现生产的自动化,这也是近些年计算机应用发展的方向,但是通过实际的调查发现,计算机在应用的过程中,虽然经过了多年的发展,出现了笔记本电脑,在体积上得到了极大的控制,但是在工业控制领域中,这样的体积依然很庞大,在这种背景下,人们发明了单片机这种微型计算机,并在工业控制中得到了广泛的应用。
1 嵌入式架构简述
1.1 嵌入式架构的概念
嵌入式架构是随着计算机的发展,逐渐形成的一门学科,现在很多高校中,都开设了这门课程,为社会培养大量的相关人才,学生在毕业后,能够掌握到充足的嵌入式架构知识,从而能进行计算机系统的设计,我国受到特殊的历史因素影响,经济和科技发展的起步较晚,与西方发达国家相比,存在较大的差距,尤其是在电子信息领域。虽然近年来随着国家的重视,出台了很多优惠的政策法规,鼓励和扶持我国相关产业的发展,经过了多年的发展,现在我国嵌入式架构的研究,已经得到了很大的提高,但是通过实际的调查发现,嵌入式架构使用的单片机等设备,目前还都是国外的公司生产的,我国技术人员在完成系统的开发后,都需要采用国外的设备,由于我国一直受到西方国家的技术封锁,很多先进的设备都无法进口,在很大程度上影响了我国嵌入式架构的发展。对于嵌入式架构的概念,国际电气和电子工程师协会给出了具体的解释,是控制、监视等辅助设备工作的系统,目前对于嵌入式架构的理解,主要基于计算机技术,一般情况下,可以把带有控制程序的处理器,看成是一个嵌入式架构,在不同的时期,人们对于嵌入式架构概念的理解,也存在一定的差异,但是从根本上来说,都是为了更好的使用嵌入式系统。
1.2 嵌入式架构的特点
与传统的计算机技术相比,嵌入式架构具有鲜明的特点,首先就是体积更小,在嵌入式架构出现的早期,主要是在计算机的基础上,进行系统的开发,但是随着相关技术的发展,嵌入式架构自身有了很大的进步,尤其是单片机等微型计算机的出现,使得其应用的范围更加广泛,从某种意义上来说,单片机的出现,就是由于嵌入式架构应用的需要。其次嵌入式架构具有控制的特点,随着电子信息化的发展,很多机械设备都采用了智能芯片,通过这些芯片的使用,可以写入特定的控制程序,从而达到相应的控制目的,近几年软件技术有了很大的发展,尤其是在人工专家模块出现后,计算机软件可以实现一定的智能化,在遇到一些问题时,可以通过检索以前的经验,对问题自行进行处理,如果将这个技术应用到嵌入式架构中,就可以实现工业生产的自动化控制。从根本上来说,工业的自动化控制技术,就是在单片机等微型计算机的基础上发展起来的,而单片机的使用,大多都是在嵌入式架构,通过硬件和软件的针对性设计,可以最大程度的提高单片机应用的效率。
2 单片机系统设计的现状
2.1 单片机系统设计的发展
单片机的出现,主要是由于实际应用的需要,传统的计算机受到体积上的限制,虽然在很多领域中得到了应用,但是在实际的工业生产中,要想对生产过程中的每个环节进行控制,必须将所有的环节通过特定的方式连接起来,然后设置一个中央服务器,通过硬件和软件等方式,对生产进行实时的控制,只有这样才能够最大程度提高生产的效率。由此可以看出,单片机系统的发展,可以分成硬件和软件两个部分,而这两个部分都受到计算机技术的影响,尤其是软件方面,在初期使用机器语言进行编程时,还没有单片机的出现,而汇编等低级语言使用,单片机程序的编写,也采用这些低级语言,随着计算机软件技术的发展,逐渐的出现了C语言等高级语言,相应的单片机系统设计,也开始使用这些高级语言,极大的提高了软件编写的效率。单片机系统硬件的发展,由于其出现和发展都在西方发达国家,而且由于社会和经济的体制不同,这些国家对我国一直存在技术上的封锁,因此我国很难接触到先进的单片机系统知识,在很大程度上影响了我国单片机技术的发展,目前使用的单片机设备,都是国外公司生产的,而且一些最新的单片机,对我国还存在进口的限制。
2.2 单片机系统设计中存在的问题
单片机从出现开始,到现在已经使用了多年,在应用的过程中,其自身的理论在不断的完善,通过单片机系统的使用,可以轻松的实现工业生产的自动化,进而提高生产的效率,正是由于单片机系统的这个特点,使得每个企业都希望能够通过这样的方式,来提高自身的生产效率,但是在实际应用的过程中,不同公司加工的产品不同,生产设备也存在一定的差异,如果使用同样的单片机系统,显然无法最大程度的提高生产效率。因此现在单片机系统的使用,都会根据实际的需求,对单片机系统的功能,进行针对性的设计,但是通过实际的调查发现,目前单片机系统设计中,还存在着一些问题,使得设计的系统不是很完善,在实际使用的过程中,经常会出现一些漏洞,影响产品的加工效率,由于单片机系统设计可以分成软件和硬件两个部分,因此对系统设计存在的问题,也可以从这两个方面进行分析。首先就是硬件性能不合格,在设计完实际的电路后,对各个元器件的性能,都有具体的要求,如果这些器件的性能达不到相应的指标,那么电路显然就无法正常的运行,其次就是软件设计的不完善,由于软件自身的特殊性,无法编写出完美的程序,程序自身越复杂,存在的漏洞也就越多,如果在程序编写完成之后,没有经过科学的测试,那么在应用时,就可能会出现问题。
3 基于嵌入式架构的单片机系统设计分析
3.1 基于嵌入式架构的单片机系统硬件设计
在单片机出现的早期,由于还没有形成嵌入式架构的概念,因此在实际的系统设计中,而且单片机系统的使用,都是对现有的生产线进行改进,通过在生产设备上增加一些线路,然后用单片机对其进行控制,在这种模式下,硬件设备的选择,主要是根据环境来进行,对硬件设备的体积要求比较严格。随着硬件设备的发展,现在生产单片机的公司有很多,可以实现同样功能的元器件有很多,而自动化技术的出现,使得生产线在设计的过程中,会根据控制的需求,进行相应的变化,这种单片机系统使用方式上的转变,极大的促进了其应用的发展,为了达到更高的控制效率,人们将单片机放到生产线的每个环节中,然后将这些单片机连接到一个服务器上,就能够实现对生产的全面控制。现在单片机系统设计中,首先进行的就是硬件上的设计,通常情况下,会根据生产的实际情况,对控制的功能进行需求分析,单片机系统硬件的设计,会和生产线的硬件设计同步进行,如果控制系统的硬件出现问题,可以根据需要,对生产线进行一定的修改。
3.2 基于嵌入式架构的单片机系统软件设计
嵌入式系统与传统的应用方式相比,最明显的特点就是多了辅助设备,如以往应用计算机的过程中,都是计算机的单独使用,人们直接利用计算机来处理一些问题,或者利用计算机来控制某些设备的工作,没有任何的辅助设备,而嵌入式架构下,需要借助单片机等设备,如一条生产线通常包括多个加工工艺,如果采用计算机的统一控制,就无法实现对每个环节的单独控制,而利用单片机系统,在每个加工环节中,都嵌入一个单片机,然后将这些单片机连接到一个计算机服务器中,就可以实现局部的控制。而要想完成这个过程,就要通过相应的软件功能,对于同样的单片机系统,如果根据实际应用的需要,设计不同的程序,能够实现不同的控制功能,由此可以看出,软件设计是单片机系统工作的核心。
4 结束语
作为以计算机为基础的技术,嵌入式架构的发展,很大程度上受到计算机技术的影响,如在计算机刚出现时,由于其性能比较,甚至还不如现在的电子计算器,因此实际的应用很少,只是在实验室中进行科研使用,但是人们从计算机的特点能够看出,随着技术的进步,将来计算机一定会得到普及应用。在这种背景下,很多专家和学者对计算机进行了研究,通过大量的实践,极大的推动了计算机的发展,于是计算机越来越多的用来处理实际问题,为了提高控制的效率,人们对程序进行了完善,经过全文的分析可以知道,嵌入式架构和单片机的出现,都是由于实际应用的需要,而单片机在实际应用的过程中,还存在很多问题,如果能够采用嵌入式架构,那么就能够极大的提高单片机系统的使用效果。
参考文献:
[1] 金玉涛,马军勇.基于80C52的三相可控整流电路触发脉冲的实现[J].河南教育学院学报:自然科学版,2007(3):37-39.
[2] 何兵.基于MCS-51单片机的步进电机正反转控制实现[J].泸州职业技术学院学报,2008(1):56-59.
中图分类号:TP274 文献标识码:A 文章编号:1007-9416(2016)04-0000-00
网络控制系统并不仅仅为一个进行数据传输的通信系统,更是一个利用网络来实现控制功能的自控系统,在满足数据传输的基础上,还需要通过所传输数据与指令,来完成各项计算、操作以及控制等功能。网络控制系统设计具有较高的难度,而嵌入式网络控制系统的设计,必须要明确系统设计需求,从整体上确定系统构架,然后以实现各项功能为目的完成设计。
1嵌入式Linux操作系统分析
对嵌入式Linux操作系统进行分析,可以确定其具有多项特点如具有高效可裁剪微小内核、开放源代码,且可支持多种硬件运行,具有优秀的网络功能,操作运行更安全可靠。Linux操作系统内核最小可以达到134KB,运行时产生的消耗非常少,并且资源运用具有很高的可靠性与稳定性。在实际应用中其可以支持多种CPU与硬件平台运行,并且可以无故障运行多年,现在已经被广泛的应用到数据中心[1]。另外,嵌入式Linux操作系统在网络应用方面具有良好的效果,可以向TCP/IP协议提供可靠的支持,以及可以支持以太网、令牌网、无线网络以及光纤等。
2嵌入式网络控制系统设计需求分析
2.1 服务器可行性
主要包括两个方面,即应用可行性与技术可行性。随着计算机网络技术的快速发展,以太网现在已经被广泛的应用到生活工作中,嵌入式技术在网络产品中的应用具有广阔的发展前景。就嵌入式技术与以太网技术连接进行分析,势必会推动嵌入式设备远程控制与管理效果的发展。
2.2数据采集功能
嵌入式网络控制服务器可以通过以太网来满足现场数据采集的要求,以太网选择用UDP协议,则应保证其能够按照指定数据通信协议,对现场数据进行采集与分析,且还应实现与数据节点的连接,并保证通信链路的正常运行。另外,嵌入式网络的设计,还应保证数据的有效性,对于未按照指定通信协议祖帧传送的数据,应将其丢弃。
2.3 数据存储功能
应建立指定需求数据库以及数据库表,且此创建工作只有在嵌入式网络控制服务器相关功能运行前完成,并确定数据库能够稳定运行。嵌入式网络控制系统数据存储功能的实现,还需要保证数据的完整性,确保收集到的数据不会被丢失。在对设备节点所发数据接收后,及时对数据进行存储,并且要做好数据采集相关信息的记录。
3嵌入式网络控制系统设计方式
3.1 系统结构设计
嵌入式网络控制系统的设计,其中服务器通过HTTP协议与Web浏览器实现信息交互,并提供设备控制页面与数据查询页面。并且嵌入式网络控制服务器还可以支持多个Web浏览器访问与数据同步,并对系统用户进行设限,提高系统运行安全性。系统控制服务器需要满足四项功能,即实时采集网络节点数据、远程控制设备节点、Web浏览器用户配置与动态采集和显示以及数据库存储。为实现各项目功能,需要进行模块设计,且利用多线程技术来对应各功能模块,接受并处理各项业务,如图1所示。
3.2 模块功能设计
3.2.1主模块设计
(1)数据变量初始化。执行主函数时,需要对部分重要数据进行初始化处理,如服务端与网络节点端套接字描述符、网络地址结构等变量、程序运行状态标志位等。(2)设备节点表缓存。设备节点表缓存为嵌入式网络控制系统服务器中关键的全局变量,其中缓存主要存放设备节点实时采集的数据。(3)线程池初始化。能够对线程池进行初始化处理,其中包括内存设置、线程创建以及线程属性设置等。
3.2.2网络采集节点模块
嵌入式网络控制服务器与设备节点选择利用UDP协议进行通信,因此在系统设计时,需要对线程建立UDP网络,实现与各节点间的数据交换。
3.2.3通信模块
积极嵌入式网络控制服务器与Web界面通信模块设计,两部分主要通过Java Applet程序进行通信的线程,线程选择用TCP协议进行通信,能够提高程序运行的稳定性。其中,利用socket()函数建立TCP流式套接字描述符,bind()函数进行网络地址结构绑定,以及listen()函数进行网络监听。
4结语
嵌入式网络控制系统的设计,需要明确系统各功能模块,以满足实际应用需求为目的,建立系统结构并完成对所有模块的设计。嵌入式系统现在已经有着广泛的应用,在基于嵌入式技术进行网络控制系统设计时,可以提高系统可靠性与适应性。
参考文献
中图分类号:TP273.5 文献标识码:A 文章编号:1674-7712 (2014) 12-0000-01
当前时代,科学技术快速发展,信息技术被应用于我们日常生活的各个方面。高科技为我们的生活带来了无限的便利,目前采用高科技手段为人们提供一个安全的生活和工作环境。本文针对嵌入式系统在门禁卡的应用上进行研究,解决了传统门禁卡很多的不便功能。为实现门禁卡自动、智能化管理提供建议,以此来对门禁卡功能与嵌入式系统软件设计与实现相关问题进行研究[1]。
一、嵌入式门禁系统设计
(一)嵌入式系统设计介绍。随着科学技术的快速发展,嵌入式门禁卡系统已经逐渐进入人们的生活,逐渐由传统的门禁卡系统转变为现代的生物特征识别技术门禁卡系统。嵌入式系统的门禁卡主要分为了图像采集、自动照明、语音提示、申请功能、无人监测等具体功能实现[2]。其具体的架构如图1所示。
图1 门禁系统功能图示
(二)系统硬件设计概述。如果要设计出完善的门禁系统,不仅需要软件系统的支持,还需要硬件支撑,否则整个软件系统难以实现。嵌入式多功能门禁系统其本质由嵌入式技术与图像处理技术融合应用。其中嵌入式的硬件支撑硬件结构主要有照明控制、网络接口、摄像头、按键、CF卡、音频接口、LVDS以及DDR2等。
二、嵌入式系统在门禁卡中的实现
(一)图像采集实现。量化后的数字图像信号和连续信号取样的数字图像信号是数字图像处理的对象,当这些最原始的信号经过图像处理后即可获得可观测的连续信号。对连续信号进行取样其本质是将信号的空间离散化,而量化则是将离散后的图像信号幅度上进行离散化,所以量化和取样后的图像信号应该是原始连续图像信号。
对于视频图像的获取方法通常有两种,一是利用视频捕捉卡中的SDK工具获取,二是使用Video for Windows,这给视频捕获编程带来了很大的福利,对视频捕获的灵活性有很大的提高。视频数据的实时采集主要是调用AVICap32.dll来穿件一个AVICap窗口类,它给应用程序提供了一个简单而方便的数据接口,使用户能够访问音频和视频,并且还能在硬盘上对视频捕获进行控制,它在捕获视频的能力很强,可以直接访问视频缓冲区,也不生成中间文件,视频捕获的速度快,及时性高,也可以将视频保存在设置好的文件夹中,整个视频捕捉过程都可以实现控制[3]。
(二)自动照明实现。整个照明系统主要分为了两个部分,照明系统通过发送指令给单片机实现对整个电路进行调整。整个照明系统分为控制部分和图像亮度检测部分,照明系统中的图像检测与电路照明具有很强的联系。嵌入式软件系统进行照明摄像控制时,通过采集信息的亮度,而其亮度与图像的象素有关,将图像做为一个二维图像,横坐标表示图像各个像素点的灰度级r;纵坐标则表示弧度制出现的概率Pr(r);那么对于某一个灰度值ri的象素个数为ni。则概率密度为:Pr(r)= ; =1。
(三)语音提示实现。该系统运用的是ALC655音频解码器,Mic用于连接麦克风,Line用于录制声源的声音,Audio_Out用于扬声器或者耳机。本系统主要根据不用的命令来实现功能,通过调用不同文件得到不同的效果,根据不同情况播放不同的提示音。系统中的MFC附带的音频播放组可以有效的提高开发是速度,通过媒体控制接口API实现停止功能MCI提供了控制媒体接口的能力,对波形音频设备、CD/视频播放设备等媒体进行控制。系统对音频的播放采用的是DirectX,作为低级应用程序的编程接口,在开发上降低难度。对于声音,主要的API是DirectSound,具备播放、处理混音、录音等功能,Microsoft DirectSound API为声音的捕获、播放、混音的处理、录音提供了链接,DirectSound可以给多媒体提供直接访问声音设备、低延迟混合、硬件加速。
(四)申请功能实现。所谓的申请来访功能主要门禁卡在进行检测的时候如果遇到不相匹配者,则需要进行申请之后才能够进入。系统通过语音告知模块的主人,采取系统中断方式来进行受访申请。受访者来进行访问申请时,需要按下按钮然后系统给予语音提示,并且显示出来访者的面貌,以此来进行判断,决定通过或者拒绝。嵌入式软件系统在门禁卡的显示上将来访者的信息显示在LVDS屏幕桑,然后通过系统对来访人员进行判断[4]。
(五)无人监测功能实现。无人监测功能则是当受访者进行访问时,遇到公司无人的时候,由门禁卡系统提示访问者内部无人,并且拍下来访者的照片,发送到系统设定的邮箱之中。在此自动发送邮件的功能中,该系统主要采取以太网作为接口进行数据通讯,并且根据TCP/IP协议来发送报文,实现信息交换。
三、结束语
随着科学技术的不断发展,新型的软件技术被应用到我们日常的生活之中,本文主要针对嵌入式系统在门禁卡中的应用情况,以及在系统设计过程中所占据的地位进行研究。实现嵌入式软件系统在门禁卡中的应用探索,主要针对门禁卡的各项功能的设计与实现进行了详尽的介绍,希望为采用嵌入式方法进行门禁卡开发的企业提供借鉴。
参考文献:
[1]周海龙.嵌入式门禁系统的设计与实现[D].西安电子科技大学,2012.
1.背景
如今嵌入式系统在日常生活中扮演着越来越重要的角色。从消费电子产品到航天工业,从热门的电子应用(如智能手机和平板电脑等)到相对不起眼的应用(如人造卫星等),嵌入式系统直接或间接地影响人们生活的方方面面。嵌入式系统的巨大潜力使得教育工作者对它的讨论从来没有停止过。世界无数的教育工作者提出了大量新颖和具有创造性的方法和理论,以促进嵌入式系统教育水平的提高,他们大都赞同嵌入式系统具有与实际应用紧密联系的显著特点。
嵌入式系统应用在一个广阔的领域,如简单的微控制应用、控制系统、分布式嵌入式控制、片上系统、网络、嵌入式PC、关键系统、机器人、计算机设备、无线数据系统和信号处理。同时,一些交叉领域知识对于嵌入式系统设计者也同样重要,如安全、可靠性、节能、软件/系统工程、实时计算和人机交互等。
对于想成为合格嵌入式系统设计者的学生来说,他们希望能够亲手接触这些嵌入式应用,因此设计一个高效的实验系统非常重要。实验平台应该能联系抽象的理论知识和实际应用,以帮助学生领会嵌入式系统的知识奥秘。
2.嵌入式系统实验教学的特点
嵌入式系统实验教学与其他课程实验教学有两个方面的不同:软硬件高度结合、知识和技术更新速度快。嵌入式系统实验教学的特点如图1所示。
嵌入式系统实验教学的第一个特点是软硬件高度结合。一个完整的嵌入式系统需要在软硬件基础之上工作。在嵌入式实验教学中,任何一个环节的缺失或弱化都是错误的。我们过去就犯过这方面的错误。嵌入式系统是清华大学计算机科学与技术系大四本科生的一门专业必修课。学生希望在课程结束后对嵌入式系统有一个完整的认识,但是发现在学习完这个仅有2个学分的课程后,依然无法设计出一个软硬件兼备的完整嵌入式系统。因此,我们让学生使用开源软件工具设计诸如鼠标或键盘等设备的驱动程序,但是效果并不理想,冈为学生仅仅熟悉了他们所实验的部分内容,而这些内容只是他们应该掌握内容的一小部分,这不仅是由于实验任务的限制,还因为学牛无法接触硬件层面的操作,无法全面领会嵌入式系统。
嵌入式系统实验教学的另一个特点是嵌入式系统知识和技术更新速度快。在第1节我们曾提到过,紧跟实际应用是嵌入式实验教学的一个关键元素。由于嵌入式系统技术日新月异,嵌入式实验课程讲述的知识和技能以及嵌入式实验设备和组件都必须不断发展。我们在对清华大学计算机科学与技术系学生的调查问卷中发现,对传统嵌入式实验平台的主要批评是实验设备和组件过于陈旧,实验平台与当前技术联系不够紧密,实验内容缺乏吸引力。
综上所述,设计一个高效的嵌入式实验平台必须考虑软硬件结合和嵌入式技术飞速发展这两个因素。
3.当代学生的特点
除了嵌入式实验课程本身,学生是不可忽略的另一个关键因素。学生是实验的参与者,他们对实验的感受影响着实验课程教学的成败,但是我们发现传统的实验方法令当代学生逐渐失去学习兴趣,这主要是因为学生一代一代地不断发展与进步,而传统的实验方法却多年不变。
文献[2]指出当代学生与过去的学生有所不同:缺乏钻研精神、缺乏耐心和依赖于软件。当代学生的特点如图2所示。
当代学生的第1个特点是缺乏钻研精神绝大多数学生成长于用户至上主义日益流行的社会环境。相对于基础原理,他们更关注功能;相对于架构,他们更关注表象。简而言之,当代学生中很少有人理解嵌入式系统的基本原理,另一方面,传统的实验平台专门为演示和验证书本中讲述的原理而设计,因此学生渐渐地无法将实际应用与特别设计的实验相联系,产生的问题是如果学生无法预见所学知识的未来应用前景,就会将关注点转移到其他方面。由此可见,将实验平台与时兴技术相结合非常重要。
当代学生的第2个特点是缺乏耐心。生活节奏的日益加快和互联网络的日益普及,使得当代学生渐渐缺乏耐心。他们习惯在实验开始后急于见到结果,就好像点击鼠标后立刻能在屏幕上看见反应,但是在传统的教学方法中,教学总是从对课程的全面描述分析开始。实践证明这种描述很必要,它可以帮助学生全面了解课程的知识结构,但是这些内容有时会让学生退却,因为学生感觉课程非常抽象与枯燥。鉴于这些问题,新实验平台应该在嵌入式系统的第一堂课就引起学生的兴趣,同时提供一个吸引人的“结果”。
当代学生的第3个特点是依赖于软件。嵌入式系统的发展通常被认为是民众赋予的。在某种程度上,这种发展是电子工程向更智能化发展的结果。然而,电子工程这种不可见的层面,通常被复杂的用户界面和其他图标所伪装,使得大家将其归功于计算机科学,而不是电子工程。许多大学并没有意识到这个问题,而将大部分注意力放在嵌入式软件设计,忽略硬件层次的介绍。这种在嵌入式系统教学中的错误关注导致出现“软件比硬件更加重要”的错误认识。为了纠正这个偏见,我们应该重视硬件并将其引入嵌入式系统课程。
总之,为了设计一个高效的实验平台,当代学生的特点不容忽视。
4.设计嵌入式实验平台的原则
基于上述讨论,我们提出嵌入式系统教学实验平台的几项设计原则。
完整性:实验平台应该相对完整。学生不但能接触软件,而且能操作硬件。这个原则主要解决两个问题:首先纠正学生偏重于软件的错误;其次在第一节课就能吸引学生,告诉他们课程最后能够建立一个基本的却相对完整的系统。
开发性:实验平台应该能帮助学生自由地实现创新思想。实验平台在软件和硬件上都应为学生预留足够数量和种类的接口,使学生能够以此为基础构建自己的嵌入式系统。在实践过程中,越来越多的基于实际应用的嵌入式系统由学生实现,同时学生的创造热情也被激发出来。
从教学的角度看,实验平台应包含以下特点。
可升级性:平台的软硬件应该能分别扩展和升级,而无需对整个平台进行修改。如第2节所述,嵌入式系统技术升级速度快,尤其是硬件设备。为了满足经常升级的需要,可升级性原则应该被放在关键位置。
灵活性:实验内容应该能根据课程的要求而裁剪,以便于实验平台的广泛推广。大多数定制的实验平台在灵活性上有所欠缺,其实验内容无法增加或减少,而为了适应课程学时的变化不得不重新设计实验。
为了达到上述目标,我们提出一个完整的概念模型。目标系统的概念模型如图3所示。
这个概念模型由3个中间层和2个层组成。中间层包括主系统层、中间通道层和从系统层。层包括应用层和组件层。我们将解释这个模型如何能实现前面提出的目标。
完整性:把中间3层看作一个整体,这个基本模型由一个典型嵌入式系统中的主要元素组成,从最顶层的应用层到最底层的功能组件层。学生可以接触完整系统的每一个组件。
开放性:模型的最顶层和最底层向学生开放。实验平台的设计者将足够多的软硬件接口提供给学生,这些接口必须是完整的和用户友好的。使用硬件接口,学生能够通过连接所需的硬件模块构建一个创新的嵌入式设备;使用软件接口,学生可以方便地加载硬件模块所需的软件资源。
可升级性:实验平台设计应该模块化和层次化,每一层为上一层提供上层接口,为下一层提供下层接口。每一层可独立地进行扩展和升级,与相邻层次的接口保持兼容。模型的中间层被设计为3层结构,这个灵感来自于Phidgets的设计,它能为实际设备的实现提供更多可能性。
灵活性:每个层次都能根据课程的重点而被加强或削弱,因此实验内容可根据课程要求而变化。实验课可被安排在两层或更多层之上。基础实验要求学生建立一个基本的嵌入式系统,而在高级实验中,学生能深入研究模型中的各个层,以实现创意设计。
1 引言
随着经济的发展和城市化速度的加快,汽车的数量每天都在以指数倍数递增,同时交通事故也在与日递增。智能交通系统是解决这一问题的关键措施之一,智能交通系统涵盖了交通信息服务、交通管理、公共交通、车辆控制、货运管理、紧急救援等等一系列内容。其中车牌识别系统是智能交通系统中一项很重要的内容,对它的研究可以维护我国交通的顺畅和安全,对于车辆的自动化管理具有很重大的意义。本文通过对车牌识别系统的阐述和分析,研究和实现了一种基于嵌入式的车牌识别系统。
2 车牌识别系统的现状
由于车辆的剧增,车牌识别系统具有很大的实用价值并且具有很远大的意义。从上个世纪八十年代开始,人们就对车牌识别系统进行和关注和研究,车牌识别系统最主要的内容就是利用图像处理技术对车牌的图像进行识别和分析,提取出车牌的信息。现今,人们已经利用不同的方法实现了车牌识别,并且取得了很大的成就,但是软件实现的成本相对较高。本文将车牌识别和嵌入式系统结合在一起,能够有效的节省设计的成本,提高系统的性能。
3 车牌识别系统的构成
3.1 车牌识别系统的图像识别
一个完整的车牌识别系统必须包括五个部分,分别是获取图像、信息预处理、定位车牌、分割字符、字符识别。
在采集车牌信息时,必须采集到完整的车牌图样,我们可以使用手机、摄像头、相机等等电子产品来收集车牌图片。当有车辆经过时,系统采集车辆的车牌信息并将车牌信息传输到电脑端。
在采集到车牌的信息时,我们需要定位我们需要的那一部分车牌信息,对它进行分割和读取。在这里,对车牌定位的精度要求是很高的,这也关乎我们后期对图片的处理结果。
车牌包含的信息是多个字符,想要对车牌进行识别,首先我们需要将车牌的多个字符进行分割处理。
字符分割技术将车牌的多个字符分割为单一字符,我们利用识别技术对字符进行识别。主要的识别技术有神经网络法和模块匹配法等。目前最重要的是必须提高系统的识别率。
3.2 车牌的底色检测
车牌颜色不是单一的,所以在识别的过程中我们还需要对车牌的颜色予以区分。通过我们对车辆车牌的研究发现,车牌的底色一般为蓝色或者黄色,而车牌上字符的颜色一般为白色或者是黑色。我们根据RGB模型对车牌的色进行检测,通过检测区域的像素点与RGB模型的关系我们就可以区分出检测区域的颜色。因为车牌底色和字符颜色所在区域的位置和比例是不一样的,我们可以根据各个颜色面积和位置的不同区分出底色和字符的颜色。
3.3 车牌字符分割
车牌分割就是将一连串的字符分割成单独的一个一个的字符。车牌字符的分割在车牌识别系统中占据了很重要的地位。
字符的边框区域对字符识别存在很大的影响,所以在字符分割中需要将多余的区域分割出去。本文中采用了字符分割算法对车牌的字符进行分割。字符分割算法是通过对图形的扫描确定进入到字符区域的第一个像素点的坐标和出去图像区域的第一个像素点的坐标,以这两点的坐标确定字符的大致位置以及字符的高度。
我们采取同样的方法确定字符的左右坐标和宽度。在确定了字符的高度和宽度之后,对字符进行分割。
3.4 车牌字符识别
我国的车牌字符是由24个英文字母、10个阿拉伯数字和各地的省会简称组成的。同时每一类的字符在车牌上都对应着不同的位置。所以我们将字符分为汉字、字母和数字三类进行区分。字符识别的方法有很多,本文采用的识别方法是神经网络,通过构造一个三层的神经网络对分割的字符进行识别。字符识别中对特征值的选取是非常重要的,特征值选取的好坏直接关系到识别的准确度。
4 车牌识别系统的硬件结构
车牌识别系统的主要工作流程就是对获取车牌图像,通过嵌入式系统对车牌图像进行预处理、对图像进行分割和识别。为了完成整个系统流程,系统硬件结构包括以下模块,摄像头、CPU、RAM、LCD显示屏、各种网络接口等等。其中摄像头是用来捕捉图像的,CPU是用来处理图像信息的,RAM是用来存储信息的,LCD显示屏是用来显示我们捕捉到的车牌图片信息的,各种网络接口是用来实现程序下载、在线监控等功能的。
5 总结
本文通过对车牌识别系统现状的分析,发现现今车牌识别系统虽然发展较为成熟但是成本较为昂贵。所以本文在其基础上提出了基于嵌入式的车牌识别系统,此系统能够提高识别系统的识别性能和降低设计的成本。然后,文章从车牌识别系统的图像识别、底色检测、字符分割、字符识别四个方面论述了车牌识别系统的结构。最后,文章对车牌识别系统的硬件结构进行了介绍和分析。通过实验表明,本文采用的基于嵌入式的车牌识别系统设计安全可靠,在提高字符识别正确率的同时还能提高字符识别的速度。这一方法的实现对车牌识别系统的研究具有很重大的意义。
参考文献
[1]张洪涛,郑浩,叶声华.基于目标边缘的图象二值化方法研究[J].理论与实践,2002(04):3-5.
[2]赵雪春,戚飞虎.基于彩色分割的车辆牌照自动识别技术[J].上海交通大学学报,1998,32(10):4-9.
[3]杨明,刘强,尹忠科,等.基于轮廓追踪的字符识别特征提取[J].计算机工程与应用.
[4]张引,潘云鹤.工程图纸自动输入字符识别的二维隐性马尔可夫模型方法[J].计算机辅助设计与图形学报,1999,11(05):403-406.