时间:2023-05-26 17:45:29
序论:写作是一种深度的自我表达。它要求我们深入探索自己的思想和情感,挖掘那些隐藏在内心深处的真相,好投稿为您带来了七篇嵌入式设计系统范文,愿它们成为您写作过程中的灵感催化剂,助力您的创作。
关键词:UML;嵌入式系统;OOD建模;双向工程
中图分类号: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] 徐宝文. UML与软件建模[M]. 北京:清华大学出版社,2006.
关键词:传感器网络;道路监控系统;图像识别;车载嵌入式系统
一、概述
如今,数量众多的车辆都嵌入了GPS。作为车载模块,GPS可以相对有效地储存一些静态兴趣点(staticPointsOfInterest)的位置信息(如家庭,公司和商场信息等等)。然而,GPS还不能获得更多的信息用来判定一些动态兴趣点(dynamicalPointsOfInterest)的位置信息(如动态的车辆信息,路人信息或动态的车位空闲状态信息)[1]。随着嵌入式技术的发展,越来越多的感知模块也被嵌入到车辆当中,用以辅助提升整车的智能化。我们可以将车辆的GPS模块和摄像模块进行整合再开发,用以侦测动态的兴趣点。更进一步的,借助诸如车载自组网等类似技术,将分散用户采集的数据快速有效收集至云端处理,进而分析得出实时的空闲车位,事故状况等详细信息可以被共享给更多用户。
二、理论设计
首先,装备了车载摄像系统的车辆负责采集原始图像,并搜寻最佳的数据链路将图像数据传送至路边基站(RSU:RoadSideUnit)。图像信息再由RSU转送至云服务器(CCS:CloudComputingSystem)。根据客户不同的需求,实时的图像可以被分类解析出不同的结果,以满足不同的需求。系统可用于寻找可用的空闲车位。车辆巡弋道路的同时,通过摄像模块捕捉街景用以搜寻可用的空闲停车位(图中扇形探索区域),通过GPS模块采集地理位置等相关信息。这些图像信息经由RSU被上传至CCS,云端程序将对图像进行分析,并据此更新数据库中可用空闲车位的时间和位置。在客户端,那些激活车位搜寻功能的车辆可以接收到实时的信息,并由系统引导至可用的停车位。
三、系统实现
为协助客户搜寻目标车辆和目标人物,描述了数据传输和数据分析的过程:车载端完成对图像的实时采集、地理坐标的标注和图像的加密压缩;路边基站RSU接收车载端的数据,并将这些数据合理上传至CCS;在CCS中,数据首先需要被解密解压,而后车牌的识别,人脸的识别等相关算法可以对数据进行处理分析,再由各自动化脚本对处理所得的结果,进行数据比对和数据库更新的工作。整个车载端模型以RaspberryPi微处理器为中心,扩展以摄像模块进行图像采集,GPS模块地理位置采集,以及电源、网卡等其他模块。RSU将由两台PC进行模拟,多个自动化脚本进行网络配置、文件管理和流量控制。图像信息将经由此上传至CCS。CCS采用AmazonElasticComputeCloud实现,服务器将配置数据库、网页服务器和文件管理等诸多系统,同时核心的图像解析程序,也将由服务器自动调用,并根据处理结果,更新数据库信息。图像处理部分,使用C#语言和Emgu库解析图像,提取人脸信息,读取车牌信息。车载端将拍摄的街景经由RSU上传至云端,云系统将对采集的图像数据进行分析。之后,系统将解析出的人脸和车牌,与客户所要搜寻的目标进行比对,反馈一组可能的人或车辆,以及相应的地理位置和时间信息。如果某一目标得到客户的确认,则根据其GPS信息和时间标签等数据,系统会将目标出现的轨迹绘制在以GoogleMap为基础的网页上。
四、结束语
文中设计了一款新颖的道路监控系统构架,据此完成了实验室模型,并为模型开发了车牌识别和人脸读取的应用。通过这些实践,表明了该理论设计可以支持对动态兴趣点的检测和定位。
参考文献:
[1]曹冲.国内外车载GPS系统的应用现状和发展趋势[J].全球定位系统,2000(01):4-8.
[2]ObstM,HobertL,ReisdorfP.Multi-sensordatafusionforcheckingplausibilityofV2Vcommunicationsbyvision-basedmultiple-objecttracking[C]//VehicularNetworkingConference(VNC),2014IEEE.IEEE,2014:143-150.
[3]PauG,WengJT,GerlaM.Pics-on-wheels:Photosurveillanceinthevehicularcloud[C]//2013InternationalCon-ferenceonComputing,NetworkingandCommunications(ICNC).IEEEComputerSociety,2013:1123-1127.
[4]SharefBT,AlsaqourRA,IsmailM.Vehicularcommu-nicationadhocroutingprotocols:Asurvey[J].JournalofNetwork&ComputerApplications,2014,40(2):363-396.
[5]WhaiduzzamanM,SookhakM,GaniA,etal.Asurveyonvehicularcloudcomputing[J].JournalofNetwork&ComputerApplications,2014,40(1):325-344.
【关键词】嵌入式;系统;低功耗;研究
一、嵌入式系统设计
嵌入式系统由软件模块以及硬件模块组成,其中软件模块需要在硬件模块中运行才可以实现其功能。嵌入式系统中的硬件部分是嵌入式系统的基础部分,主要提供嵌入式系统的I/O端口、外设接口等,而软件是嵌入式系统的控制核心,通过运行,给硬件提供指令,指示硬件进行相应的动作,也就是说软件必须在硬件部分上运行,才可以起到很好的作用。
二、嵌入式系统趋向低功耗的必要性
1.节能的需求
嵌入式系统是一个相对复杂的系统,各个模块工作时工作量是很大的,这就需要电源供应正常,保证系统的正确运行。而随着系统的不断扩大,各个模块会造成更大的功耗,因此,为了更有效的利用嵌入式系统,延长嵌入式系统的工作时间,需要采取节能措施。
2.增强抵抗能力
在嵌入式系统工作的过程中,难免会受到外界的干扰,特别是嵌入式系统中敏感电子元器件,更应该做好防磁的措施,如果处理不当,不能很好的增强抵抗力,将严重影响系统的正常工作。嵌入式系统的功耗越高的话,电磁辐射能量就会越大,这样嵌入式系统自身以及外设都会受到影响,造成精度的降低。
三、利用嵌入式系统硬件设计方法降低功耗
对于嵌入式系统而言,硬件功耗问题是主要原因,对于嵌入式系统低功耗设计的影响因素最大,处理好硬件低功耗设计,会对嵌入式系统低功耗做出重大贡献。
1.优先选择低功耗芯片、元器件
在嵌入式系统工作的过程中,芯片元器件对电源的消耗非常的大,因此,在嵌入式系统设计前,对于元器件的选择,除了满足设计性能指标的需求,还需要满足功耗问题,尽量选择低功耗芯片。现在比较成熟的工艺主要有两种,一个是TTL工艺,另一种是CMOS工艺,其中CMOS工艺耗能很少,可以优先选择。对于芯片的设计或者焊接时,需要注意的是芯片引脚不要出现悬空端,悬空端容易引进外界噪声信号,对嵌入式系统的电源会产生很大的影响,造成高低电平的转换。在默认的情况下,如果高低电平转换,功耗会很大,这个时候,最好选择高电平输出,确保耗能降到最低。
2.采用不同步供电技术
一个完整的嵌入式系统包含很多部分,比如说包含AD采样、DA转换、UART异步串行通信等等,这些模块在系统工作时不会同时工作,有可能在进行完一个模块后才进行下个模块,为了降低功耗,可以选择不同步,即采取分时方法,当某一模块工作完后如果需要隔很长时间才会再执行操作,那就可以选择执行完后将此模块设置为休眠状态,从而降低功耗。
3.合理利用I/O端口资源
嵌入式系统工作时,需要频繁的使用I/O口,I/O口在输出的情况下可以输出约为20mA的电流,对于次,可以采取有效的措施,很好的利用这一电流,对其他外设采取供电的办法,当然,外设对电流的需求需要小于20mA。采取这种办法,可以很好的利用这一资源,得到充分的利用,更好的降低功耗。
4.加强智能电源设计工作
解决好嵌入式系统低功耗的问题,需要注意的就是减少耗能问题,而解决好耗能问题,还可以从另一个角度解决,优化电源设计,趋向于智能化方向发展。在智能电源中安装自动检测芯片,这样可以确保系统处于不同的情况下时,采取不同的策略,及时的做出处理,这样就可以对CPU以及外设模块采取不同的处理措施。比如说,当系统在外部正常供电时,这个时候电源供应可以采取正常供电的方法,提供正常的工作频率,保证电压的正常使用;而如果电源模块检测到系统工作在外部电池状态下,那这个时候,根据检测的结果,可以降低系统主频率,将电压降低到最小运行值,确保嵌入式系统工作在低功耗的状态下。
四、利用嵌入式系统软件设计方法降低功耗
1.减少编译运行时间
嵌入式系统的工作离不开软件的执行,一个小模块的正常运行往往需要很多条代码执行编译。嵌入式系统在运行中需要几个模块先后都运行,也就是说,需要大量的代码执行编译过程,这样的话,就会直接造成功率极大消耗。针对于此,可以对程序进行优化,因为代码有单周期、双周期、四个周期之分,对代码优化,尽量选择与底层密切、周期短的指令,这样,程序代码在编译的过程中,会提高处理速度,降低功耗。一般来讲,低级语言,比如说汇编语言,相对高级语言,比如说C语言、C++语言功耗要低很多。
2.鼓励使用软件代替硬件,硬件代替软件的方法
嵌入式系统在执行某个指令或者为了实现某个功能某块时,可以既选择硬件模块实现,也可以用软件方法实现,比如说软件程序FIR滤波与硬件设计模拟低通滤波,这两种方法都可以实现滤掉高频信号,确保低频信号全部通过。这个时候,可以比较这两种方法,哪一种最优,最节省功耗。软件中处理器需要时间,编译消耗功率,而硬件中电路工作也会消耗功率,因此,通过比较,可以做出最佳选择。
3.采用快速运算处理的计算方法
嵌入式系统在处理接收到的数据时,往往需要大量的运算,才会得到期望的结果。为了有效的降低功耗,提高处理速度,对一些算法可以进行优化。比如说在进行DFT傅立叶变换时,传统的思想是利用DFT设计,求出结果,但是这种设计相对FFT快速傅立叶变换而言,运算量大,时间也很长,这个时候就可以采用FFT的方法。在进行设计时,对各种算法都进行充分比较,在需求的精度都满足的情况下,优先选择算法处理快的。
4.软件设计建议多采用中断程序
嵌入式系统在工作时,当系统上电初始化时,主程序只会实现系统的初始化,这其中包括各个模块寄存器的初始化,外部设备的初始化。对于系统软件降低功耗,还可以采取的办法就是当程序没有动作需要执行的时候,可以将系统设置在低功耗状态,而当系统有动作要发生时,这个时候,可以利用中断程序,让系统跳到要执行动作的程序中,也就是说此时仅仅中断程序会消耗功率,其他模块不会。待中断程序执行完之后,系统继续回到低功耗的状态,节省电量的消耗。
五、结束语
随着社会的发展,科技不断进步,嵌入式系统日益趋向于智能化、自动化方向发展。在各行各业中,嵌入式系统都得到了很好的应用。不过随着功能的增强,应用增多,电源供应成了问题,很多嵌入式系统的耗能都很严重。考虑到嵌入式系统由软件以及硬件两大部分组成,因此,为了降低嵌入式系统的功耗,可以通过硬件措施以及软件措施,实现目的。对硬件方法主要考虑到硬件的电源、芯片选择以及I/O的有效利用;而对于软件而言,主要就是对程序进行很好的优化,充分将软件与硬件结合,只有这样,才能更好的解决嵌入式系统的功耗问题,促进嵌入式系统更好的发展。
参考文献
[1]郑杰.嵌入式系统中的低功耗设计[J].设计技术,2005(2).
[2]王怀瑞.嵌入式系统中的低功耗设计研究[J].河北省科学院学报,2008(4).
[3]王志超.基于硬件构件的嵌入式系统低功耗研究[J].信息化研究,2010(5).
[4]杨天池.嵌入式系统的低功耗设计[J].仪器仪表学报,2006(6).
[5]张健.嵌入式系统低功耗电路设计[J].光电技术应用,2005(6).
[6]姚伟.嵌入式系统低功耗软件技术研究[J].计算机技术与发展,2011(1).
本文通过对嵌入式数据库系统进行详细介绍,对嵌入式数据库进行内涵介绍,并且对嵌入式数据库的各种应用特点进行全面分析,结合嵌入式数据库的发展情况,对嵌入式数据库系统选择进行阐述,对嵌入式数据库对于数据的处理以及存储过程进行详细的分析,并且对嵌入式数据库的主体架构进行介绍,望可以对我国嵌入式数据库的发展给予支持。
关键词:嵌入式;数据库;系统设计
1 嵌入式数据库系统介绍
1.1 嵌入式数据库系统内涵
随着计算机技术的不断发展,数据处理系统中也逐渐将嵌入式进行融合,对该系统自身功能进行全面完善,根据软硬件的不同的需求进行应用实现, 能够满足系统在进行应用过程中对数据库系统的功能以及可靠性进行一定程度的提升。在嵌入式数据库系统中毫无疑问的融入了计算机高新技术、电子操作技术以及更加先进的半导体技术,将这些先进的技术进行融合无疑是对数据库系统处理数据的时候进行速度提升。另外融合了嵌入式技术的数据库系统并不和传统的数据库桌面相同,因为嵌入式系统内存比较小,所以这种类型的数据库系统所需要的内存以及磁盘空间都比较小,同时因为这种数据库系统总是需要将不同类型的数据进行模型建造,所以可以将其分为层次性、网状性以及关系型等集中类型。
从我国目前所制定的嵌入式数据库系统的标准数据模型以及同步技术来看,嵌入式数据库系统已经成为同类型中的新兴焦点,该系统中不管是嵌入式的操作程序还是数据管理系统,所需要的内存都比较小,所以运行效率一般都比较高。但是因为在嵌入式环境中使用数据库系统方面还是存在部分难度,因为不同的嵌入式应用模块具备独特的特点以及应用条件,而普通的数据处理系统只能够完成相对比较简单的数据查询以及处理流程,所以在这方面还得加深研究。
1.2 嵌入式数据库系统特点分析
嵌入式数据库系统之所以能够被广泛运用,与其自身所具备的有点是有很大的关系的,根据同类型的数据库系统相比较,这种新型的数据库系统占有的系统资源很小,但却能保证高度可靠性,安全性也不低,系统自身可移植性也比较很高,系统所具备的易用性也是相当成功的,所以结合我国嵌入式数据库系统发展的实际情况,对其自身所具备的特点进行分析,现总结为下文所述。
1.2.1 系统资源占有量较小
由于嵌入式系统内部存储资源很是有限,所以一般内部不会设置一些存储空间比较大的设备,所以嵌入式数据库系统就组织结构就必须设计合理,以便能够在有限的内部存储空间中储存更多有用的数据,与此同时,嵌入式系统内部存储空间一般都比较小,所以就决定着嵌入式数据库体积比较小,并且运行效率很高的特点。另外影响嵌入式数据库系统占有很小的系统资源是因为必须为其他应用程序预留一些磁盘空间,所以必须对系统占有资源进行最小化,这样才能保证系统能够正常运行。
1.2.2可靠性
因为嵌入式数据库在运行过程中通常需要在移动环境中进行操作,就注定工作人员不能够对嵌入式数据库进行现场技术支持,所以注定嵌入式数据库必须可靠,并且还必须保证在没有工作人员进行维护的情况下也能够保证嵌入式数据库进行正常运行,所以对于嵌入式数据库来说,必须具备可靠性。
1.2.3良好的可移植性
因为一般的嵌入式数据库系统是根据具体情况进行需求满足之后才设计出来的,所以为了能够保证与其他软件能够进行数据通信,所以嵌入式数据库开发人员必须在进行系统开发的时候提供必备的模块,以实现嵌入式数据库的可移植性,在应用对象有所变化的时候可以根据需求进行功能实现,可移植性能够保证资源不好出现大范围的浪费。
2 嵌入式数据库系统设计方案
2.1 嵌入式数据库系统选择
嵌入式数据库在进行设计的时候,通常都是选择嵌入式Linux系统,该系统是一种源代码完全公开的嵌入式操作系统,它是对标准Linux操作系统经过小型化裁剪后,能够固化在容量只有几百千字节或者几兆字节的存储器芯片中,并且应用于特定嵌入式环境的专用Linux操作系统。而且,Linux操作系统具有稳定性好、网络能力优异、支持多种文件系统等优点。因此,嵌入式Linux一般具有性能可靠、软件资源丰富、网络功能强大、使用成本低等优点,而且支持多任务多线程,支持实时性扩充。同时,其内核可以灵活地进行配置,因此具有很强的适用性。
Linux的内核小、效率高,内核的更新嵌入式Linux速度很快,Linux是可以定制的,其系统内核最小只有约134KB。第三,Linux是免费的OS,在价格上极具竞争力。 Linux还有着嵌入式操作系统所需要的很多特色,突出的就是Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种CPU。而且性能稳定,裁剪性很好,开发和使用都很容易。很多CPU包括家电业芯片,都开始做Linux的平台移植工作。移植的速度远远超过Java的开发环境。也就是说,如果今天用Linux环境开发产品,那么将来换CPU就不会遇到困扰。同时,Linux内核的结构在网络方面是非常完整的,Linux对网络中最常用的TCP/IP协议有最完备的支持。提供了包括十兆、百兆、千兆的以太网络,以及无线网络,Toker ring(令牌环网)、光纤甚至卫星的支持。
2.2 系统处理过程分析
由嵌入式应用程序的界面控制部分等待使用设备用户的输入。当等到一条用户输入的数据请求时,首先分析该数据请求是否能够在本地使用设备数据库中得到满足。若能够借助本地使用设备数据库实现数据请求,则将数据请求交给使用设备嵌入式数据库管理系统:否则,将数据请求交给使用设备同步程序。当使用设备嵌入式数据库管理系统接到数据请求时,它首先分析数据请求的合法性,若合法,则响应请求,访问嵌入式数据库,得到处理结果,并将其返回给嵌入式应用程序;否则,向嵌入式应用程序返回出错信息。当使用设备同步程序接收到数据请求时,它与PC同步程序联系,建立连接后,将数据请求发送过去,由PC同步程序进行后续处理。PC同步程序的监听线程监视串口状态,发现来自PDA的数据请求便将该请求交给PC同步程序的主线程。主线程接到数据请求后,将其交给ODBC接口模块进行处理。ODBC接口接到来自PC同步程序的数据请求后,解析数据请求,并判别其合法性,若合法,则访问ODBC主数据源,得到处理结果,并将该处理结果交给PC同步程序,由其回馈给PDA;若非法,则通知PC同步程序向PDA报告出错信息。
2.3 系统数据存储过程分析
当前流行的数据库管理系统基本上都采用关系数据模型。关系模型己经成为数据库中数据模型事实上的标准,采用关系数据模型有利于为广大开发社区接受。同时关系模型的描述能力比较强,效率高。对于嵌入式计算,数据库应该是轻量级的,不宜采用面向对象模型。嵌入式设备的一个主要特征是其资源紧张性。另外,嵌入式数据库本质上还是面向个人服务的数据库管理系统,数据管理的功能相对于传统的企业级数据库来说要求相对较弱。基于上述原因,这里我们将采用效率更高的关系模型。存储组织包括数据表示和存储空间管理两个方面。数据表示是数据库中应用数据的物理存储的表现方式,它受到数据库系统所采取的存储模型的制约。存储空间组织是对存储设备可用存储空间的应用组织策略,它的目标有两个:高效利用存储空间和为快速的数据存取提供便利。在嵌入式数据库中,数据将分为“永久版本”和“临时版本”。
数据库在运行的大部分时间中都只关心临时版本,只在系统空闲或显式要求的情况下才将临时版本中的数据更新到永久版本中。这是一种乐观的持久化策略。因此,对嵌入式数据库来说,我们首先关注的是数据在主存中的高效的存取,其次,才会考虑数据的文件组织形式,尽可能地提高数据在内外存之间的调入、调出效率。因此,嵌入式数据库避免直接操作外存,而使用操作系统提供的文件系统接口实现外存处理;同时,不再使用数据缓冲区,而使用高活跃度数据存储区域替代,两者的不同在于前者在内存中按页面来组织缓冲区,每个页面对应磁盘上的一个存储块,后者则以记录为单位存储频繁被存取的数据。同时,因为数据字典占用空间很小且存取频繁,所以将其常驻内存。
2.4 系统主题架构
由于嵌入式系统地存储量有限,因此在终端嵌入式数据库中的数据不能存储大量的数据,同时,由于嵌入式系统处理器的主频较低,运行速度较慢,以及网络速度的原因,系统也不可能将每次的用户请求都提交到服务器端后台数据库处理数据,因此这就要求我们将大多数的数据处理放在终端数据库系统中处理,为了保证终端嵌入式数据库数据的有效性和实时性,我们必须保证嵌入式数据库和服务器端数据库的数据同步复制。 当终端数据库发生更新时,立即将更新的请求发送给终端同步程序,由终端同步程序和服务器端同步程序建立连接,再由服务器端同步程序将该请求交给服务器端数据库实现后台数据库的更新。
由于嵌入式系统地存储量有限,因此在终端嵌入式数据库中的数据不能存储大量的数据,同时,由于嵌入式系统处理器的主频较低,运行速度较慢,以及网络速度的原因,系统也不可能将每次的用户请求都提交到服务器端后台数据库处理数据,因此这就要求我们将大多数的数据处理放在终端数据库系统中处理,为了保证终端嵌入式数据库数据的有效性和实时性,我们必须保证嵌入式数据库和服务器端数据库的数据同步复制。当终端数据库发生更新时,立即将更新的请求发送给终端同步程序,由终端同步程序和服务器端同步程序建立连接,再由服务器端同步程序将该请求交给服务器端数据库实现后台数据库的更新。
结论
随着信息技术的不断发展,各行业中所需要处理的数据大量化,并且对于数据具体的处理结果保密性也在逐步要求保密,而嵌入式系统因其强大的保密性、可移植性以及体积小等特点,在数据处理过程中被广泛运用,嵌入式数据库由此诞生。通过对嵌入式数据库系统特点进行全面分析,对其系统选择过程进行分析,并且结合嵌入式数据库运行范围进行处理过程分析,对嵌入式数据库在对具体数据进行处理之后的存储过程进行分析,对嵌入式数据库的主题架构进行全面了解,由此可以将嵌入式数据库系统进行全面分析,对该系统与传统数据库进行对比,可以将其优越性进行全面展示。相信随着相关科技技术的不断发展,嵌入式数据库一定会发展的更为迅速,更为全面。鉴于本人学识有限,在本文撰写过程中存在一些不足之处,望各位同仁能够及时指出,以便日后及时作出修正。
参考文献
[1]张永.嵌入式数据库系统的设计与实现[D].清华大学,2012.
[2]殷晓伟,杨尚霖.关于嵌入式数据库系统设计的研究[J].科技创新与应用,2014.
[3]张媛媛.嵌入式数据库管理系统的研究与实现[D].华东师范大学,2011.
关键词:软件测试控制系统嵌入式
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9416(2012)05-0151-01
1、嵌入式系统的特点以及实现方法
嵌入式系统的主要特点如下:嵌入式系统的硬件和软件的紧密结合,具有很强的依赖性之间的软件和硬件,嵌入式系统的功能和性能通过软件和硬件来实现。因此,在硬件平台上的嵌入式软件系统的测试。在硬件,嵌入式软件系统测试。这是一个不同的主机平台上的软件,只能在电脑平台的主机平台软件系统测试,不需要专门的硬件平台测试。嵌入式系统的要求非常苛刻的时间。嵌入式系统,实时控制系统,为要求苛刻的实时场合。嵌入式系统的硬件资源有限,存储容量和速度的嵌入式CPU和应用环境的制约。
软件测试的方法可以分为黑盒测试和白盒测试两大类:黑盒测试是一种基于需求的测试,以验证测试软件是否满足软件的需求。白盒是基于结构的测试,软件控制流测试包括语句覆盖,分支覆盖,等等和数据流测试。覆盖测试原理是:测试软件,测试工具的使用静态分析,以确定代码中的分支点,并统一编号,分配给每个分支点。计划执行的历史信息和路径,你可以从这份文件中,为了计算的代码覆盖率。嵌入式软件与主机平台上的软件有不同的特点,所以从主机平台软件测试,测试也明显不同。
2、嵌入式系统的应用
嵌入式系统为中心,基于计算机技术,利用可定制的功能性,可靠性,成本,体积,功耗严格要求,设备专用计算机系统111硬件和软件。它一般由嵌入式微处理器,硬件设备,嵌入式操作系统和用户应用程序,控制其他设备,监事或管理由四部分。最典型的嵌入式系统的特点是与人民生活密切相关的,任何一个普通的人可能有各种使用嵌入式微处理器技术的电子产品,MP3,PDA等数字设备,数字家电,智能家电,地理信息系统的车辆。事实上,新的嵌入式设备的数量远远超过通用计算机。其硬件系统表现如右:
嵌入式操作系统和通用操作系统有许多功能,如可靠性,可削减,可扩展性,实时等。前三嵌入式应用环境的要求。“实时”,以满足系统内容的实时性要求。通常在一些嵌入式操作系统,通常被称为“实时操作系统,但它是操作系统的性能有一个更好的实时能力。在一个特定的嵌入式应用系统中,没有实时的结论。不同的嵌入式操作系统,可以有不同的实时能力。嵌入式操作系统应符合设计实时任务调度,运行速度快,实时性能的内容嵌入式操作系统的能力,可以更容易地实现实时的应用程序。
3、应用航天业的条件和发展
今天的软件和硬件技术的发展,嵌入式系统被广泛用于航空航天,国防,军工,电子通讯等行业,其中软件变得越来越复杂。应用嵌入式系统的特点,这些地区往往是高安全性,关键任务系统,软件,小缺陷可能会严重威胁生命和国家安全的,巨大的天文财产损失。这使得它保证嵌入式软件的质量和可靠性变得至关重要。
4、航天业的应用条件
嵌入式系统的任务有一定量的时间限制。据截止时间,实时系统,实时被分为“硬实时时间”和“软实时”。可以完全满足硬实时应用的需求,否则,导致发生重大安全事故,甚至造成了生命和生态破坏。
可预见性是一个系统,能够实时执行任务的时间来判断,以确定它是否能满足任务的期限。在航空航天工业实时系统需要严格的时间限制,称为实时系统的可预测性是一个重要的性能要求也至关重要。除了硬件延迟的可预见性,也需要软件系统的可预测性,包括应用程序的可预测性的响应时间可预测的,也就是说,在有限的时间内完成必要的工作;和操作系统,即实际运行时的开销时间原语,调度功能应范围内,以确保应用程序的执行时间为界。
5、与外部环境的相互作用
航天业需要的外部环境是独一无二的,这样的外部环境是一个实时系统不可或缺的组成部分。空间计算机子系统控制系统,它必须在规定时间内作出回应外部请求。外部物理环境经常指责子系统,两个互动,以形成一个完整的实时系统。为此,该系统需要一个静态的分析,并保留资源和冗余配置,系统可以工作在最坏的情况下,或避免损失。可靠性已成为航空航天工业的实时系统性能不可缺少的一个重要指标来衡量。
6、结语
随着嵌入式系统的广泛使用,其实时性已经吸引了越来越多的关注。实时嵌入式系统是一个综合性的问题,应考虑在嵌入式系统设计,硬件不仅是软件的选择也应注意。在这些领域的嵌入式系统应用的特点,往往是高安全性,关键任务系统,软件,小缺陷可能会严重威胁生命和国家安全的一个巨大的天文数字的财产损失。这使得它变得至关重要,以确保嵌入式软件的质量和可靠性。
参考文献
[1]谢东,李昌禧.基于LabVIEW的嵌入式软件黑盒测试系统的研究[J].工业控制计算机,2005年12期.
[2]杨顺昆,刘斌,陆民燕.WindowsNT下几种定时器的实现原理及性能比较[J].测控技术,2002年12期.
[3]崔小乐,刘斌,钟德明,阮镰,高小鹏.实时嵌入式软件仿真测试平台的体系结构设计[J].测控技术,2003年07期.
[4]崔小乐,刘斌,杨顺昆,阮镰.嵌入式软件仿真测试平台的建模环境设计[J].测控技术,2004年02期.
关键词:计算机技术;嵌入式系统;UML语言
UML语言又被称为标准建模语言,主要是被用来进行软件开发与支持模型化的计算机图形化的语言。在软件开发过程中,可以通过标准建模语言提供的可视化与模型化支撑进行软件规格、配置及构造的最优化。与此同时,它还是一种易于表达、功能强大、定义良好的建模语言,基于这些优势,将UML语言应用到嵌入式系统的开发设计中,能实现目前用户对该系统的功能、体积、功耗及可靠性的要求。
1嵌入式系统应用背景的产生
嵌入式系统是基于计算机技术,融合了电子技术、半导体技术,并对应用领域实际需求产生的一种具有功能强大、可塑性强及应用广泛的知识集成系统。由于该系统自身的优势,因此,被广泛应用于技术、资金密集的工业生产中。目前,市场中的电子产品、汽车、数码等都应用了嵌入式系统进行生产。嵌入式系统最早形成时还形不成“系统”概念,因为最初的嵌入式系统主要是依靠单片机运行的,只能执行单线程的工作程序[1]。随着计算机技术及商业社会的发展需求,嵌入系统初步形成,可以运用计算机嵌入式系统进行应用软件的编辑,执行任务管理和内存管理等功能。发展到至今,嵌入式系统已经可以实现实时的多任务操作,成为目前应用软件开发的主流,发展与应用前景广阔。
2UML语言及其框图的应用模式分析
UML语言是一种应用于计算机系统编程的可视化建模语言,在具体应用操作中可以实现满足用户对系统需求的刻画、分析、设计集成以及实现和测试,实现系统功能的构建更加合理[2]。UML建模语言可以将建立的模型数据信息运用标准的图形元素直观地展示在用户、测试人员、管理人员以及开发人员或是其他项目相关人员面前,使他们可以对系统的功能、结构设计进行更好的交流,实现对系统的良好构建。目前,市场上最为常用的建模语言主要有Booch、OMT及UML三种语言,相较于其他两种建模语言来讲,UML语言更加简化,操作简单、适用范围广泛,因此,被许多企业采用。UML语言不仅可以对静态的结构进行建模,还可以对具有动态行为的系统进行建模,因此,适用于系统的全部开发阶段。UML语言是一种可视化的建模语言,因此,该语言中的所有语素都是由一个个的框图组成的。系统设计人员应用在UML语言时,就是通过对框图的描述来实现对整个系统的设计。UML语言的框图有很多种,现针对几种主要框图进行分析。BusinessUseCase框图与UseCase:这两种框图所对应的语素不同,BUC框图所代表的语素主要是对整个系统的机构功能进行描述;而UC框图则主要是根据用户对系统的需求,进行系统功能描述。因此,经常被用来与客户之间进行交流,提取有效建构信息。Class框图:此种框图是一种静态图,代表语素主要被用来对系统中的类进行描述。通过对该框图的观察,可以清楚地了解系统中类的内容、功能以及结构关系。StateChart框图:该框图主要被用来对建模对象的状态及各个建模对象之间的转换关系进行描述,主要用来提供建模系统的动态功能[3]。此种框图在实际应用中被广泛运用到系统的实际建立中,可以生成系统构建所需的全部代码。Collaboration框图与Sequence框图:这两种框图都是对系统对象之间的相互关系进行描述的框图。但Sequence框图在进行描述时主要以时间顺序进行,而Collaboration框图则是针对系统角色与显示对象之间的交互进行着重描述。通过Collaboration框图,可以让系统建筑师与质量保证工程师及时了解分析对象的分布情况,若出现不合理状况,系统建筑师便可及时进行调整或重新分配。UML语言中包含的这些框图,在进行系统设计、建模以及分析的过程中,会提供多种不同的图片表达形式,因此,可以用在系统开发的不同阶段。将UML语言中的这些框图应用在嵌入式系统开发中,通过它们之间的有机结合可以构建出一个功能完整、一致的高效系统。
3UML语言在嵌入式系统中的有效应用
3.1以车载GPS终端为例
嵌入式系统在各个领域被广泛应用,在本文中,我们以车载GPS终端为例进行UML语言在嵌入式统中的有效应用研究[4]。机动车的车载GPS终端是用来进行实时定位的装置,被广泛应用在出租车或运输车这类需要进行调度、定位的车队中。该终端的功能实现主要通过车载GPS终端与卫星进行实时的信号传输,实现对机动车位置的掌握,进而进行准确定位。准确定位后,再通过无线通讯网络将机动车位置反馈给远程的中心系统。此时,中心指挥系统就可以清楚掌握终端反馈的位置信息,实现对机动车的远程控制与跟踪。在机动车遇到特殊情况时,中心系统可以通过终端对车辆进行控制,实现车队的正常运行。与此同时,若是车辆遇到险情,车载终端还可以起到电话功能,进行远程报警。
3.2进行嵌入式设计时对UML语言的需求分析
运用UML语言对嵌入式车载GPS终端系统需求进行分析时,可以通过UseCase框图进行系统功能分析。UseCase框图在进行系统功能表达时,在图中显示的车载GPS终端系统功能需求将其分为两部分来展示,即角色与案例。所谓的角色就是指与系统之间进行交互的人和物,而其中的案例则是用来表示系统所提供的功能块。通过UseCase框图对系统进行观察,可以帮助人们将系统实现与系统目标进行分离,因此,可以使系统开发人员详细了解系统的重要组成部分。最后,设计出的系统功能能实现用户的需求,而不会使设计人员在系统细节实现上过多地浪费时间[5]。通过观察UseCase框图发现,车载GPS终端中的角色定位主要有两类,即车载终端的用户与监控中心的用户。车载终端的用户可以通过终端进行报警。而监控中心系统的用户则可以通过系统查询车辆位置信息及发送调度信息。
3.3通过UML语言对产品进行规格说明
对系统的规格说明要求要比需求分析的显示更为详细,因此,运用UML语言进行嵌入式系统的设计,可以使系统规格说明更加清晰与直观。在对车载终端系统中的规格进行说明时,首先、可以通过Class框图进行描述。该框图可以对系统处理的数据结构进行描述,对接收到的GPS卫星信号进行描述。其次,Class框图在进行规格说明时,还要将系统进行功能模块划分,并且找出所有系统,对主要对象进行识别。之后再通过UML语言中的Collaboration框图对各对象之间的关系进行描述。最后,在进行规格说明的业务描述时,也就是对规范的操作系统完成主要功能流程的显示,此时,可以运用UML语言中的Activity框图进行展示。
4结语
通过对嵌入式系统开发需求以及UML语言的功能进行分析,发现利用UML语言进行嵌入式系统设计可以满足提高该系统的开发速度与产品质量要求。与此同时,还可以增加系统设计的可重复使用性,实现了对系统设计的优化及利用,满足了用户对系统的各项需求,具有广阔的应用前景。
参考文献
[1]禚百田.UML在空调嵌入式系统开发中的应用研究[D].青岛:山东科技大学,2010.
[2]王承启.嵌入式系统设计方法研究与嵌入式避障机器人的实现[D].北京:北京交通大学,2009.
[3]廖晓文.基于UML与Petri网的嵌入式系统建模方法的研究[D].广州:广东工业大学,2005.
[4]曹雷,薛平贞.UML建模在嵌入式系统开发中的应用[J].现代电子技术,2013(16):41-44.
关键词:ARM;嵌入式系统;linux;BootLoader
中图分类号:TP274文献标识码:A文章编号:1009-3044(2008)09-11724-02
The Design and Realization of Embedded System Based on ARM
LIN Hua
(Computer Science College of Yangtze University, Jingzhou 434023, China)
Abstract: This paper designed a new embedded system based on ARM.Firstly, it introduced the embedded system hardware design, Secondly, it analyzed detailedly the compile and transplant course of the uCLinux, in the end it discussed on the communication software design for uCLinux.
Key words: ARM; Embedded System; Linux; BootLoader
随着计算机技术和半导体技术的发展,嵌入式系统在个人数据处理、多媒体通信、在线事务处理、生产过程控制、交通控制等各个领域内得到了广泛的应用,各种嵌入式相关的新产品纷纷涌现。嵌入式系统越来越引起人们的关注,对嵌入式系统的研究,是掌握信息技术的核心。本文以处理器S3C44B0为核心,设计出一个基于ARM+uCLinux的嵌入式系统,对于嵌入式系统有独到的研究。
1 嵌入式硬件方案设计
1.1 系统硬件平台
系统的硬件平台主要是由嵌入式处理器、FLASH、SDRAM、以太网接口、USB接口、UART接口、JTAG接口、I/O接口、I2C、系统电源、复位电路等组成。系统硬件结构图如图1所示:
1.2 主要硬件的设计
1.2.1 ARM嵌入式处理器的设计
处理器采用Samsung公司的S3C44B0微处理器,S3C44B0最突出的特点是它的CPU核使用ARM公司的16/32位ARM7TDMI RISC结构。ARM7TDMI系统扩充包括Thumb协处理器、片上ICE中断调试支持和32位硬件乘法器。S3C44B0通过在ARM7TDMI内容基础上扩展一系列完整的通用器件,主要包括:8KB的Cache,外部存储器控制器,LCD控制器,2通道UART,4通道DMA, 71个通用I/O端口,8个外部中断源等。
1.2.2 网络接口的设计
采用RTL8019AS芯片作为网络接口芯片,RTL8019AS是一种高度集成的以太网芯片,能简单的实现Plug and Play并兼容NE2000,芯片内部集成了DMA控制器、ISA总线控制器、16KSRAM,用户可以通过DMA方式把需要发送的数据写入片内SRAM中,让芯片自动将数据发送出去;而芯片在接收到数据后,用户可以通过DMA方式将数据读出。
1.2.3 USB接口的设计
采用PDIUSBD12作为USB接口芯片,PDIUSBD12是一款性价比很高的USB器件,完全符合USB1,1版的规范,它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口,它还支持本地的DMA传输。
2 软件体系的设计
软件开发过程包括BootLoader设计、uCLinux的编译和移植、uCLinux下的网络编程和应用程序开发等。
2.1 BootLoader的设计与实现
在嵌入式系统中,BootLoader的作用与PC机上的BIOS类似,BootLoader可以完成对系统板上的主要部件进行初始化,也可以下载文件到系统板、对CPU、SDRAM、Flash,通过串行口Flash进行擦除与编程。
BootLoader作为系统复位或上电后首先运行的代码,一般应写入Flash存储器中并从起始物理地址0x0开始。BootLoader根据实现的功能不同,其复杂程度也各不相同。一个简单的BootLoader程序可以仅仅完成串行口的初始化,并进行通信,而功能完善的BootLoader可以支持比较复杂的命令集,对系统的软硬件资源进行合理的配置与管理。因此,用户可根据自身的需求实现相应的功能。BootLoader的设计步骤一般如下:
2.1.1 系统初始化
系统初始化主要实现以下的几个功能:
(1)进入SVC32工作模式(管理模式),以取得访问一些系统资源的权限。
(2)禁止所有的中断并清除所有中断标志。
(3)初始化SYSCFG寄存器。
(4)导入链接器预定义的变量,为存储器的重映射做准备。
2.1.2 Memory Remap的实现
Memory Remap就是地址重映射,即存储空间的重新分配,主要分为以下几个步骤:
2.1.2.1 初始化SDRAM
系统刚上电后,只有Flash是可用的, SDRAM没有被初始化,是不可用的。此时Flash被映射到0-2M的地方。通过配置相关寄存器完成SDRAM的初始化后,SDRAM被映射到了2-18M的位置上。此时的Memory Map为:0-2M是Flash,2-18M是SDRAM
2.1.2.2 将BootLoader从Flash中复制到SDRAM中
在此之前,BootLoader一直是在Flash里面执行的。为了实现Memory Remap,并且保证remap后BootLoader可以继续执行,需要把BootLoader自己全部复制到SDRAM里面去。BootLoader的大小利用链接器预定义的程序段变量。此时,在SDRAM里己经有了一个BootLoader的拷贝,但是必须注意,BootLoader还是在Flash里面执行。此时的Memory Map为:0-2M还是Flash,2-18 M还是SDRAM,但是SDRAM里面多了一个BootLoader的拷贝。
2.1.2.3 地址重映射
通过设置S3C44B0的相关寄存器,可以完成最后的地址重映射。SDRAM在0-16M的位置,而Flash被Map到了16-18M的位置。由于在SDRAM有一份BootLoader的拷贝,所以Remap以后BootLoader将转到SDRAM里面来执行。
2.1.3 Kernel的装载
此处的Kernel即为uClinux的内核映像,完成Kernel把控制权交给了uClinux来管理,Kernel将被装载到的装载后,系统就0x8000处。Kernel的装载过程如下所示:
(1)将RW段复制到OxA0,0000处,ZI段清零。
(2)设置堆栈指针SP=0x80,0000。
(3)跳转到函数loadkernel()中。
(4)将Kernel装载到0x8000,同时将PC指向0x8000。
(5)Kernel获得控制权,接管整个系统。
2.2 嵌入式操作系统的编译与移植
本系统采用uCLinux作为操作系统,uCLinux包含一整套的编译、调试等开发工具、内核源代码、各种文件系统、图形接口、各种协议、驱动程序以及丰富的应用程序。uCLinux操作系统主要由内核、Shell、文件结构组成;其中内核是系统的心脏,是运行程序和管理磁盘、打印机等硬件设备的核心程序。Linux的内核主要由5个子系统构成:进程调度、内存管理、虚拟文件系统、网络接口和进程间通信,在设计时,可以根据需要配置内核选择体系结构和裁剪内核。
2.2.1 uClinux交叉编译环境
uClinux交叉编译环境的建立可分为以下两个步骤:
(1)要在宿主PC机上安装标准Linux操作系统(也可以在Windows环境下安装Cygwin,模拟Linux环境,但可能在开发过程中产生兼容性错误,因此不推荐),如RedHat Linux,并对计算机的硬件设备如网卡进行配置,确认网络配置正确。
(2)要在宿主PC机上安装交又编译的一些工具链,主要有以下这些: arm-elf-binutils,arm-elf-gcc, genromfs,arm-elf-gdb, elf2flt等。
2.2.2 uClinux内核的编译和移植
uClinux内核采用模块化的组织结构,通过增减内核模块的方式来增减系统的功能,因此,通过正确合理的设置内核的功能模块,只编译系统所需功能的代码以减少内核的大小。编译工作的具体步骤下所示:
(1)解压源代码文件并进入到uClinux-Samsung目录中。
(2)make menuconfig进行内核配置。
(3)make dep寻找文件依赖关系。
(4)make clean清除无用文件。
(5)make lib only 编译库文件。
(6)make user_ only编泽用户应用程序文件。
(7)make image编泽内核文件。
(8)make编译完成,生成内核文件。
编译上述步骤后,会在images目录下看到一些文件,如:linux.text,linux.data,romfs.img,image.bin,image.rom,image.ram,boot.rom。
最后,将image.rom烧写入Flash存储器的0x0处,当系统复位或上电时,内核会自解压到SDRAM,并开始运行。可以通过串行口观察uClinux的启动情况。
如果编译和加载的过程都正确,就可以在超级终端中看到uClinux移植成功的相关提示。
2.3 uCLinux下的网络编程
2.3.1 uCLinux下的网络编程协议简介
uCLinux下的TCP/IP网络协议栈的各层之间是通过一系列互相连接层的软件来实现Internet地址族的。其中BSD socket层由专门用来处理BSD socket的通用套接字管理软件来处理,它由INET socket层来支持。INET socket为基于IP的协议TCP和UDP管理传输端点。 UDP是一个无连接协议,而TCP(传输控制协议)是一个,TCP靠的端对端协议。传输UDP包的时候,uCLinux不知道也不关心它们是否安全到达了口的地。TCP则不同。在TCP连接的两端都需要加上一个编号,以保证传输的数据被正确接收。在IP层,实现了Internet协议代码,这些代码要给传输的数据加上一个IP头,并且知道如何把传入的IP包送给TCP或者UDP协议。在IP层以下,就是网络设备来支持所有的uCLinux 网络工作,如PLIP, SLIP和以太网。
2.3.2 uCLinux环境下的socket编程
网络的socket数据传输是一种特殊的I/O,socket也是一种文件描述符,也具有一个类似文件的函数调用socket()。该函数返回一个整型的socket描述符,随后的连接建立、数据传输等操作都是通过该socket函数实现的。常用的socket类型有两种:流式socket和数据报式socket。两者的去别在于:前者对应于TCP服务,后者对应于UDP服务。uCLinux中socket编程中用到的函数有:
(1)socket函数:为了执行I/O,一个进程必须做的第一件事情就是调用socket函数,指定期望的通信协议类型(使用IPv4的TCP、使用IPv6的UDP, Unix域字节流协议等)。
(2)connect函数:TCP客户用connect函数来建立一个与TCP服务器的连挂。
(3)bind函数: 函数bind给套接口分配一个本地协议地址,对于网际协议,协议地址是非颠倒2位IPv4地址16位的TCP或UDP端口号的组合。
(4)listen函数:仅被除数TCP服务器调用。将未连接的套接口转换成被动套接口,指示内核应接受指向此套接口的连接请求。根据TCP状态转换调用函数listen导致套接口从CLOSED状态转换到LISEN状态。listen函数还规定了内核为此套接口排队的最大连接个数。
(5)accept函数:accept函数由TCP服务器调用,从已完成连接队列头返回下一个己完成连接。若己完成连接队列为空,则进程睡眠。
3 小结
嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统已经在各个领域 得到了广泛的应用,如远程监控、智能仪表、数控系统、消费产品等。随着嵌入式系统软硬件技术的飞速发展,其在行业的应用领域必将更为广阔,嵌入式系统的研究将会有非常广泛的前景。
参考文献:
[1] 魏忠,蔡勇,雷红卫.嵌入式开发详解[M].北京:电子工业出版社,2003.
[2] 王陈赜.ARM嵌入式技术实践教程[M].北京:航空航天大学出版社,2005.