嵌入式实时操作系统(dynaLinux),及其开发平台

2024-06-24

嵌入式实时操作系统(dynaLinux),及其开发平台(精选7篇)

篇1:嵌入式实时操作系统(dynaLinux),及其开发平台

嵌入式实时操作系统(dynaLinux),及其开发平台

公司简介:

注册时间:2003年3月24日 经济性质:合资 从事领域:电子信息

资产状况:注册资金100万人民币 人员状况:12人 股本结构: 中方:方沛宇 60万元 杨海英 10万元

外方:今村博宣 20万元 日本力扬株式会社 10万元 项目情况:

我们采用独自的技术彻底改造了其Linux内核,使其成为一种完全意义上的实时操作系统。dynaLinux具有以下特点:(1)导入了基于OSPM/ACPI的动态电源管理机构,可以根据CPU的使用状态动态控制耗电量。(2)高速的boot机制。(3)坚固的安定性。(4)支持无MMU的CPU。

应用领域主要是面向:信息家电、PDA、手机、车载终端、GPS 等 国内外市场分析:

Linux操作系统在嵌入式系统中的应用近来成为一种趋势。据有关部门预测到2005年嵌入式系统中Linux的份额将占50%以上。但基于分时系统而架构的Linux存在许多先天的不足,故现有的嵌入式Linux还不能称为完全意义上的实时。我们采用独自的技术彻底改造了其Linux内核,使其成为一种完全意义上的实时操作系统。鉴于dynaLinux的优势,本公司被被富士通指定为支持其FR-V CPU的Linux提供商和全球技术总支持。融资和技术转让方案:

总项目投资:100万人民币 已完成投资状况:50万人民币 项目进展阶段:已完成Dyna-Linux(v 1.0)的开发 融资或转让方式:投资或融资 联系方式:

公司名称:北京华科力扬科技有限公司

通讯地址:北京市海淀区上地信息路2号国际创业园D栋612 邮编:100085 联系人:赵强 电话:82893150 传真:82781836 Email:zhaoq@dyna.cn

篇2:嵌入式实时操作系统(dynaLinux),及其开发平台

分 类:软件项目计划 使用者:E-fanciers

Version: 1.0

项 目 承 担 队伍:烟台大学

计算机学院 E-fanciers小组撰 写 人(签名): 许超 于歌

完 成 日 期: 2009-7-16 本文档使用小组: E-fanciers小组

评审负责人(签名): 孝瑞

评 审 日 期: 2009-7-19

目 录

一、引言.............................................3

1.1编写目的.......................................3 1.2项目背景.......................................3 1.3定义...........................................3 1.4参考资料:.....................................3

二、开发结果........................错误!未定义书签。

2.1产品..........................错误!未定义书签。2.2主要功能......................错误!未定义书签。2.3所用工时.......................................4 2.3所用机时.......................................4 2.3进度...........................................4

三、评价............................................4

3.1生产率评价.....................................4 3.2技术方案评价...................................4 3.3产品质量评价...................................4

四、经验与教训.......................................4

一.引言

1.编写目的(阐明编写总结报告的目的,指明读者对象。)

详细陈述项目开发过程,对项目开发做最后的总结完善,说明项目开发过程中遇到的难题及解决方案。

2.项目背景(说明项目的来源、委托单位、开发单位及主管部门。)

随着微电子技术、计算机技术和网络通信技术的发展,嵌入式系统已广泛应用在各个领域,包括消费电子、汽车电子、网络通信、工业设备、航空航天和国防军事等。随着嵌入式技术的发展,工业领域也一改过去传统的单片机应用模式,逐渐将一些新嵌入式技术引入到系统中。特别是作为软件基础的嵌入式操作系统已广泛为业界所接受,借以提高系统的开发效率和运行效率。是否采用嵌入式操作系统,已成为工业设备品质优劣的标志之一。

当今的嵌入式操作系统领域呈现百家争鸣的状态。据最近的调查数据显示,嵌入式操作系统有数十种之多的。这种多样性存在是必然的,是由嵌入式系统的定制性所决定的,是针对各个领域和行业的不同需求的应对。也就是说,各个嵌入式操作系统都有自己的应用领域,针对不同的应用没有绝对的优劣之分,不会出现一种操作系统垄断的局面。自主开发嵌入式操作系统绝对不是多余的,也是是对这种多样性的自然顺应,应该可拥有自己的用武之地。有些国内嵌入式厂商将希望寄托在Linux之上,以为它可以帮助解决所面临的版税和安全等问题。但事实并非完全如此,至少在嵌入式系统领域。首先,Linux还是泊来货,国人并未掌握其核心技术和进程,也并未解决对外依赖的问题。其次,Linux是为桌面系统而设计的,并不能很好地满足嵌入式系统高效性和灵活性的要求;再次,Linux的一统也违背了嵌入式系统应用灵活定制的本质特性。

3.定义(列出报告中用到的专门术语定义和缩写词的原意。)

int taskInit(void);

/*创建一个任务, 返回: 返回任务编号tid, >0: 成功, 其他: 失败.*/ /*name: 任务名称, entryPtr : 任务函数入口, stack_size: 任务栈大小, priority: 任务优先级*/ int taskCreate(char *name, void *entryPtr, int stack_size, int priority);/*启动一个任务, 让taskCreat创建的任务参加调度*/ int taskStart(unsigned char tid);/*tid: 任务编号, 由taskCreate返回*/ int taskPriorityGet(unsigned char tid);int taskPrioritySet(unsigned char tid, int newPriority);/*获取和设置任务优先级, 用于动态调整*/ int taskSuspend(unsigned char tid);/*将任务挂起, 该任务退出调度*/ int taskDelete(unsigned char tid);/*将任务删除 该任务退出调度且回收任务分配的资源*/ int semCreate(void);/*互斥信号量创建, 返回信号量标识sid, <0: 失败*/ int semTake(int sid);int semGive(int sid);/*互斥信号量获取和释放*/ int taskSleep(int ticks);/*任务睡眠(非忙等), 由任务自己调用, 主动阻塞一段时间.时间单位为tick, 即10ms*/ 4.参考资料(列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:(1)项目开发计划;(2)需求规格说明书;(3)概要设计说明书;(4)详细设计说明书;(5)用户操作手册;(6)测试计划;(7)测试分析报告(8)本报告引用的其他资料、采用的开发标准或开发规范。)(1)软件项目计划(2)需求规格说明(3)软件编写向导

(4)国家软件开发文档标准模板

二.开发结果

1.产品(可包括:(1)列出各部分的程序名称、源程序行数(包括注释行)或目标程序字节数及程序总计数量、存储形式;产品文档名称等。)

2.主要功能及性能 基本功能

1.基于参考硬件平台,建立硬件抽象层,完成基本硬件初始化,建立时钟中断; 2.在硬件抽象层基础上,建立多任务操作系统环境; 3.任务调度采用同级时间片轮询机制;

4.实现任务间基本通讯机制:互斥信号量(共享内存); 5.实现基本的时钟管理机制:任务睡眠阻塞;

6.实现一个RS232串口驱动。基于串口驱动实现一个命令行Shell(用一个独立的任务实现),可在超级终端显示信息和执行命令。

扩展功能

7.任务区分优先级,在同级轮询调度基础上添加优先级调度机制; 8.不同优先级任务之间实现抢占调度;

9.在抢占调度的基础上实现优先级逆转保护,避免逻辑死锁问题; 10.将代码移植到另一个硬件平台上运行,验证代码移植性。3.所用工时(按人员的不同层次分别计时。)

编码成员工时:60小时/周,共约400小时;

编写文档成员:共约60小时。

4.所用机时

5小时/天,共约300小时的机时。

5.进度(给出计划进度与实际进度的对比。)

根据敏捷开发方法的指导,每天查漏补缺,实际进度基本和计划进度一致。三.评价

1.生产率评价(如平均每人每周源程序行数、文档的字数等。)

源程序:200行/周

文档:1500字/周

2.技术方案评价

严格遵循开发流程,运用科学开发方法。

3.产品质量评价

按照大赛要求完成了应有功能的基础上有所添加自己小组的特色,譬如,设置相应的出错处理机制,为加强该系统的安全性与稳定性也做了相应的措施,总体来说,我们小组开发的嵌入式实时操作系统功能良好,稳定性强。

四.经验与教训

篇3:浅谈嵌入式实时系统开发与研究

一、嵌入式系统功能

1. 监视环境-从输入传感器读取数据, 然后处理数据并显示结果。

2. 控制环境-产生并向激励器发送命令。

3. 转换信息-转换并处理收集到的数据。

虽然通过传感器和激励器完成与外部世界的交互是嵌入式系统的重要特点, 但这些嵌入式系统还提供适合它们所在设备的特殊功能。嵌入式系统一般用来执行控制程序、有限状态机和信号处理算法。这些系统还必须检测内部计算环境和周围电磁系统中发生的故障并对此做出响应。

二、嵌入式系统特性

嵌入式系统的设计挑战是使嵌入式系统的独特性能与设备的特殊约束条件相一致。以下是一些嵌入式系统的重要特性:

1. 特殊应用系统-嵌入式系统不同于通用处理器, 它针对特殊应用进行了优化。

2. 反应性系统-反应性计算的意思是系统 (主要是软件部

分) 根据传感器信息对环境作出响应, 并利用激励器控制环境, 同时系统速度能与环境速度同步。

3. 分布式-嵌入式系统的一般特征是多个通信进程在多个通过通信链路链接的CPU或ASIC上运行。

4. 异类性-不同的嵌入式系统一般具有不同的结构, 以便

在处理严格设计约束的嵌入式系统时能够提供更好的设计便利性。

5. 苛刻环境-许多嵌入式系统并不工作在受控的环境中,

因此它们必须能够经受过热、振动、冲击、电源波动和其它恶劣的物理环境条件的考验。

6. 系统安全性和可靠性-由于嵌入式系统复杂度和运算量的不断增长, 需要更多地考虑系统安全因素。

三、实时系统的特性

实时系统要求在外部环境指定的时间间隔内对来自环境的激励信号作出响应 (包括物理时间的过渡) 。从输入时间到输出时间的延迟必须足够小, 以满足可以接受的时间值。通常实时系统需要对环境做出连续及时的响应。

实时系统开发中软硬件的并行设计会使用到各种分析技术, 包括:

1. 硬件与软件仿真;

2. 硬件/软件协同仿真;

3. 可调度的建模技术, 如速率恒定分析;

4. 原型设计和渐进式开发。

在作执行任何类型的处理器评估时, 首先要详细理解用户的功能和非功能性要求。

四、嵌入式实时系统选择处理器时需要注意几个方面:

1. 性能:处理器必须有足够的性能执行任务和支持产品生命周期。

2. 实现:

根据具体应用情况, 处理器可能需要被高度集成。在DSP应用中可以有好几种选择, 专用集成电路 (ASIC) 就是其中的一种。这些器件可以被用作DSP协处理器, 但对于许多通用信号处理来说显得不够灵活。

3. 工具支持:支持软件创建、调试、系统集成、代码调整和优化工具对整体项目成功与否非常关键。

4. 操作系统支持:

嵌入式系统应用需要使用有帮助的抽象来减少其复杂性。针对处理器系列产品作过优化的商用操作系统 (OS) 能够缩短设备开发周期和上市时间。

5. 过去的经验:拥有处理器或处理器系列产品的开发经验可以减少可观的学习新处理器、工具和技术的时间。

6. 仿真支持:

循环精确仿真对某些类型的应用来说非常重要, 特别是数字信号处理应用中许多功能正确性验证都是采用仿真技术完成的。嵌入式系统的软硬件协同设计模型也促使处理器仿真器成为开发流程中一个非常有用的工具。

7. 算法复杂性:某些处理器能够高效地处理某类算法, 因此最好选择能够与应用最佳匹配的处理器。

8. 成本:嵌入式应用对成本特别敏感, 而产品成本的稍许差别都可能导致市场的失败。

是自己设计还是购买成品呢?如果有可能不重新设计, 价格也比较合理的话, 购买要比自己开发更有利。

因此重要的是最终用户与技术人员必须参与COTS供应商的选择, 考虑的重点要放在业务需求上而非技术本身。性价分析所要考虑的因素应包括易学性、易用性、供应商名声和长期稳定性、许可方式和培训。所有与性能有关的声明必须尽可能采用内部或外部基准或演示来到得有效性认证。为了避免可能出现的偏差, 评估标准应该在收到供应商建前就制定好。选择供应商的主要工作包括研究和理解技术标准和相当的文件、采用类似建议请求 (RFP) 的标准模式征求供应商的建议、对供应商进行评估和排序、选择供应商并签署合同。

除了评估技术外, 还应对供应商本身进行评审。要充分了解供应商开业时间的长短、供应商的背景和名声、供应商的其它用户对它的评价和意见、供应商人力资源的投入和对你的计划或项目的支持情况, 以及供应商对业务和要求的理解程度, 甚至对未来项目的承诺。以前软件团队认为软件开发方案遵循类似于创建架构的特定模式。提供符合一般模式的抽象方法能够使软件团队定制符合他们特殊要求的方案, 同时遵循被前人证明是高效和正确的模式。

嵌入式系统供应商已经认识到需要通过提供软件组件和类似于设计模式的框架来加快软件开发进程。许多嵌入式实时系统必须满足一系列性能目标。一般来讲, 性能是一个软件系统或组件对时间要求满足程度的一种指示。这里的时间指标可以用响应时间和吞吐量来衡量, 该时间值是指响应某种要求所需的时间, 而吞吐量用以指示系统在特定时间间隔内能够处理的请求数量。可扩展性是嵌入式实时系统的另外一个重要指标, 可以用它来衡量系统要求提高时系统能够继续满足响应时间或吞吐量要求的能力。

如果在整个开发生命周期内得不到正确的性能管理, 那么即使选择了正确的处理器和软件也是徒劳的。性能故障的后果是非常严重的, 它可能损伤与客户的关系, 造成收入下降, 甚至导致整个项目失败。因此在整个生命周期内需要随时关注性能问题。性能管理可以被动或主动完成。被动方式需要采用一个较大的处理器解决性能问题, 它只在系统完成构架、设计和实现后处理性能问题, 在解决问题前一直处于等待状态, 直到实际需要测量的事件发生。主动方式是指整个生命周期内一直在跟踪和交流性能问题, 同时开发用以识别性能劣化的进程, 并在性能处理中培养团队成员。

小结

显然开发嵌入式实时系统是一个相当复杂的过程, 本文旨在启发设计人员在分析初始要求时如何权衡硬件与软件之间的关系, 要时刻在系统灵活性、速度、成本、计划和可用工具之间做出权衡, 并充分考虑各个供应商提供长期可靠支持的可能性。

参考文献

[1]贾宗福, 新编大学计算机基础教程。北京:中国铁道出版社, 2006.4

篇4:嵌入式实时操作系统(dynaLinux),及其开发平台

嵌入式系统通常是一个包含微处理器的特殊计算机系统,是一个较大系统或设备的组成部分,它在很大程度上决定了设备的功能特性。许多具备数字接口的设备如微波设备、录像机(VCR)和汽车等都会用到嵌入式系统。有些嵌入式系统需要使用操作系统,有些则用单个程序实现整个逻辑,但所有嵌入式系统提供的功能都要比通用计算系统更专业些。嵌入式系统功能包括:

1、监视环境-从输入传感器读取数据,然后处理数据并显示结果

2、控制环境-产生并向激励器发送命令。

3、转换信息-转换并处理收集到的数据。虽然通过传感器和激励器完成与外部世界的交互是嵌入式系统的重要特点,但这些嵌入式系统还提供适合它们所在设备的特殊功能。嵌入式系统一般用来执行控制程序、有限状态机和信号处理算法。这些系统还必须检测内部计算环境和周围电磁系统中发生的故障并对此做出响应。嵌入式系统特性:

嵌入式系统的设计挑战是使嵌入式系统的独特性能与设备的特殊约束条件相一致。以下是一些嵌入式系统的重要特性:

1、特殊应用系统-嵌入式系统不同于通用处理器,它针对特殊应用进行了优化。

2、反应性系统-反应性计算的意思是系统(主要是软件部分)根据传感器信息对环境作出响应,并利用激励器控制环境,同时系统速度能与环境速度同步。

3、分布式-嵌入式系统的一般特征是多个通信进程在多个通过通信链路链接的CPU或ASIC上运行。

4、异类性-不同的嵌入式系统一般具有不同的结构,以便在处理严格设计约束的嵌入式系统时能够提供更好的设计便利性。

5、苛刻环境-许多嵌入式系统并不工作在受控的环境中,因此它们必须能够经受过热、振动、冲击、电源波动和其它恶劣的物理环境条件的考验。

6、系统安全性和可靠性-由于嵌入式系统复杂度和运算量的不断增长,需要更多地考虑系统安全因素。

7、小型化、重量轻-为了达到便携目的,许多嵌入式系统的重量必须设计得很轻。

8、成本敏感性-不同的嵌入式系统对成本的敏感性有很大的不同。

实时系统的特性

实时系统要求在外部环境指定的时间间隔内对来自环境的激励信号作出响应(包括物理时间的过渡)。从输入时间到输出时间的延迟必须足够小,以满足可以接受的时间值。通常实时系统需要对环境作出连续及时的响应

计算的正确性不仅依赖于结果,而且取决于输出发生的时间。一个实时系统必须满足有限响应时间约束条件,否则会产生严重的后果。如果后果是性能的劣化而不是故障,那么这种系统可以看作是一个软实时系统。如果后果是系统发生故障,那么这种系统就是一种硬实时系统。

实时系统有反应式和嵌入式两种类型。反应式实时系统会与环境发生连续的互作用,而嵌入式实时系统主要用于控制大型系统中安装的特殊硬件。

嵌入式系统开发生命周期

许多系统设计工程师都会经历硬件/软件协同设计的过程,此过程中硬件与软件将同时进行开发。理解硬件与软件功能相互之间的关系及界限有助于确保设计要求得到完整正确的理解和实现。

早在设计要求的定义与分析阶段,系统开发人员就必须与设计工程师协同分配硬件或/和软件方面的要求。这种分配的依据是早期系统仿真、原型设计和行为建模结果、工程师自己的经验以及上文提及的各种因素权衡结果。一旦分配结束,就可以立即着手具体的设计和实现。实时系统开发中软硬件的并行设计会使用到各种分析技术,包括:

1、硬件与软件仿真;

2、硬件/软件协同仿真;

3、可调度的建模技术,如速率恒定分析;

4、原型设计和渐进式开发。

可以在各种抽象层次使用的仿真技术主要用于开展早期的性能评估。低层仿真可以用来为总线宽度和数据流程建模,这对性能评估是非常有用的。高层仿真可以满足功能的交互,并促成硬件/软件权衡研究及有效性设计。利用仿真可以将一个复杂的系统向下抽象成基础组件和行为。仿真还助于解决功能性问题(数据与算法)、行为(进程排序)或性能问题(资源利用、吞吐量和时序)。

理解设计要求

在作执行任何类型的处理器评估时,首先要详细理解用户的功能和非功能性要求。功能性要求通常比较容易获得,而非功能性要求较难定量测量。但对于实时系统来说,定义响应时间这样的要求是非常重要的。实时要求可以有以下几种:

1、激励-激励(S—S):到系统去的两个激励之间的实时关系;

2、激励-响应(S—R):一个激励与来自系统的一个后序响应之间的实时关系;

3、响应-激励(R—S):一个响应与到系统去的一个后序激励之间的实时关系:

4、响应-响应(R—R):来自系统的两个响应之间的实时关系。

S-R和R-R关系定义了对指定系统的时序要求。这种情况下所实现的功能必须足够快(或足够慢)才能满足时序要求。S-S和R-S约束暗示系统必须能够从环境(可能是一个用户或另外一个系统)中检测出特定时序约束的破坏。这些约束与功能的快慢没有关系,相反它们能够检测出某些遭到破坏的时序约束并采取必要的措施。

因此要从最初系统要求设计时就很好地理解这一点,因为S-R和R-R约束可以引导设计工程师进行代码优化,而S-S和R-S约束需要用额外的软件来检测和响应时序冲突。

处理器选择

嵌入式实时系统比较适合用于系统优化。由于这些系统主要用来解决范围相对较窄的问题,因此硬件和软件能够得到最佳优化,并很好地应用于单一设备。这样做的目的是要在软硬件最佳折衷状态下开展系统设计。影响这一阶段设计的主要因素是处理器的选择、软硬件的分割和总体系统集成。

在为嵌入式实时系统选择处理器时需要考虑以下几个方面:

1、性能:处理器必须有足够的性能执行任务和支持产品生命周期。

2、实现:根据具体应用情况,处理器可能需要被高度集成。在DSP应用中可以有好几种选择,专用集成电路(ASIC)就是其中的一种。这些器件可以被用作BSP协处理器,但对于许多通用信号处理来说显得不够灵活。另外可以选择精简指令集计算机(RISC)处理器。这些处理器的时钟速度特别快,但可扩展性不是很强,而且会发生其它实时(可预测性)问题。现场可编程阵列(FPGA)是一种快速器件,能够快速高效地完成某些DSP功能,但与DSP相比开发难度比较大,因为在DSP中一个简单的程序就能完成相同的功能。如果是主信号处理应用,则最好采用性能强大功耗

也较大的通用处理器。如果需要快速升级信号处理应用,采用DSP等可编程器件比定制的硬件方案要更好些。

3、工具支持:支持软件创建、调试、系统集成、代码调整和优化工具对整体项目成功与否非常关键。

4、操作系统支持:嵌入式系统应用需要使用有帮助的抽象来减少其复杂性。针对处理器系列产品作过优化的商用操作系统(OS)能够缩短设备开发周期和上市时间。

5、过去的经验:拥有处理器或处理器系列产品的开发经验可以减少可观的学习新处理器、工具和技术的时间。

6、仿真支持:循环精确仿真对某些类型的应用来说非常重要,特别是数字信号处理应用中许多功能正确性验证都是采用仿真技术完成的。嵌入式系统的软硬件协同设计模型也促使处理器仿真器成为开发流程中一个非常有用的工具。

7、应用支持:应用支持有多种方式,从通过热线或网站取得的应用专家支持,到预打包的软件和应用框架,甚至完好的测试平台。一些DSP处理器能够提供外围器件的驱动器、板级支持包和其它“启动帮助组件”。有了这些软件组件后,应用开发师就无需再编写器件驱动器等“无附加值”的软件,相反,他们可以把精力放在具有附加值的功能开发上,使他们的产品能独树一帜。

8、成本:嵌入式应用对成本特别敏感,而产品成本的稍许差别都可能导致市场的失败。

9、功耗:市场上有许多依靠电池工作的便携嵌入式实时系统,此时电池寿命将成为系统的重要参数。这种情况下应该考虑使用针对便携式应用优化的低功耗器件。

10、传统代码:如果选中的处理器需要设计人员编写与现存代码的接口,将会导致整个设计流程的严重滞后。因此需要选择一款代码兼容的器件来避免或减少这一步骤造成的影响。

11、算法复杂性:某些处理器能够非常高效地处理某类算法,因此最好选择能够与应用最佳匹配的处理器。例如,具有许多控制代码的有限状态机应用应该映射为类似ARM处理器的RISC器件。编码、解码和回波抵消等信号处理应用应该映射为数字信号处理器,或具有信号处理加速器的某种器件。

12、上市时间:项目的完成时间会加快处理器的选择过程,这一过程与先前讲述的几个关键事项密切相关,如Os的可用性、其它软件组件以及便携性问题。

设计还是购买?

是自己设计还是购买成品呢?如果有可能不重新设计,价格也比较合理的话,购买要比自己开发更有利。由于嵌入式系统预算的缩减、实时操作系统(RTOS)和TCP/IP堆栈等商用技术的改进、嵌入式系统要求的扩展,采用商业性现成(COTS)技术正变得越来越普遍。采用COTS技术能够缩短开发周期中编码、调试、单元测试和代码检查阶段的时间。

然而,作出购买而非设计的决定会改变一个组织的基础开发流程。一个组织希望实现的新业务有:供应商调研和评估、产品评估以及实时的供应商交流与关系建立。产品开发的其它活动不会取消,但会作出一些改变。这些变化包括更关注如何将系统硬件与软件更好地组合在一起,而不再把重点放在模块自己内部的运作上。另外必须更侧重于兼容性、可配置性和可集成性等结构上的问题。

必须很好的理解和高效地管理由于决定采用“购买”而非“设计创建”方式所导致的结果。首先,自然是对供应商提出产品要求、产品可靠性、计划和产品文档等依赖请求。这种情况下产品要求中的灵活性会打些折扣。购买商用产品意味着接受现有的产品要求,但这种要求也许不能完美地匹配自身产品的要求,这就需要设计人员把这种缺点与COTS技术提供的成本与上市时间优势作一个理智的权衡。

因此重要的是最终用户与技术人员必须参与COTS供应商的选择,考虑的重点要放在业务需求上而非技术本身。性价比分析所要考虑的因素应包括易学性、易用性、供应商名声和长期稳定性、许可方式和培训。所有与性能有关的声明必须尽可能采用内部或外部基准或演示来到得有效性认证。为了避免可能出现的偏差,评估标准应该在收到供应商建议前就制定好。选择供应商的主要工作包括研究和理解技术标准和相当的文件、采用类似建议请求(RFP)的标准模式征求供应商的建议、对供应商建议进行评估和排序、选择供应商并签署合同。

除了评估技术外,还应对供应商本身进行评审。要充分了解供应商开业时间的长短、供应商的背景和名声、供应商的其它用户对它的评价和意见、供应商人力资源的投入和对你的计划或项目的支持情况,以及供应商对你业务和要求的理解程度,甚至对未来项目的承诺。以前软件团队认为软件开发方案遵循类似于创建架构的特定模式。提供符合一般模式的抽象方法能够使软件团队定制符合他们特殊要求的方案,同时遵循被前人证明是高效和正确的模式。

嵌入式系统供应商已经认识到需要通过提供软件组件和类似于设计模式的框架来加快软件开发进程。在DSP领域,供应商向DSP设计工程师提供包括参考框架(RF)在内的上百个以DSP为核心的软件组件用于产品和系统开发。设计完好的参考框架能够在设备开发的早期阶段让设计人员快速入门。RF内含方便易用并且适合多种应用的源代码。由此可以取消许多早期的低层设计决策,使开发人员能有更多的时间用在真正显示产品特色的代码开发上。设计人员可以选择能够最大程度满足他们系统需要的专业RF,然后集成适配的算法(可以是其它供应商出售的DSP COTS算法,或供应商自己的算法)生成适合各种终端设备的特殊应用,如宽带、语音、视频图像、生物测量和无线设施。这些RF提供百分之百的c语言源码,并且没有版税要求。

软件性能工程

许多嵌入式实时系统必须满足一系列性能目标。一般来讲,性能是一个软件系统或组件对时间要求满足程度的一种指示。这里的时间指标可以用响应时间和吞吐量来衡量,该时间值是指响应某种要求所需的时间,而吞吐量用以指示系统在特定时间间隔内能够处理的请求数量。可扩展性是嵌入式实时系统的另外一个重要指标,可以用它来衡量系统要求提高时系统能够继续满足响应时间或吞吐量要求的能力。如果在整个开发生命周期内得不到正确的性能管理,那么即使选择了正确的处理器和软件也是徒劳的。性能故障的后果是非常严重的,它可能损伤与客户的关系,造成收入下降,甚至导致整个项目失败。因此在整个生命周期内需要随时关注性能问题。性能管理可以被动或主动完成。被动方式需要采用一个较大的处理器解决性能问题,它只在系统完成构架、设计和实现后处理性能问题,在解决问题前一直处于等待状态,直到实际需要测量的事件发生。主动方式是指整个生命周期内一直在跟踪和交流性能问题,同时开发用以识别性能劣化的进程,并在性能处理中培养团队成员。

小结

篇5:嵌入式实时操作系统(dynaLinux),及其开发平台

单片机具有面向控制的能力, 因此在工业生产控制、智能仪表、家用电器、外设控制、机器人以及军事设备装置等领域都具有广泛的用途, 可见单片机对我们的生活有着重要的影响, 因此不断的优化单片机的性能对于改变人类的生活有重要的意义, 在长期的单片机使用过程中, 单片机实现任务的时候有出现错误的情况, 变成编程人员不能解决这一问题, 而 μC/O S - II是多任务嵌入式实时操作系统, 其具有很多的优点, 如:可移植性好、具有占先式、源代码公开、多任务、确定性以及中断管理等, 将 μC/O S - II移植到单片机中, 就可以解决单片机多任务运行时出错的问题, 极大的提高了单片机的性能。

1 嵌入式实时系统简介

当今世界信息技术不断的发展, 外部环境也在不断的变化, 外部事件的发生以及数据的产生, 都需要对其进行收集并及时的处理, 进而在规定的时间内将处理结果输出以控制生产过程达到控制的目的, 要想实现这一操作嵌入式实时操作系扮演着重要的角色, 常见的嵌入式实时操作系统有 μC/O S - II、Linux、e COS等。嵌入式实时操作系统对我们的生活有着重大的改变, 嵌入式实时操作系统是嵌入式系统的一种, 它主要体现在对外界时间能够及时的做出响应, 主要分为对外部时间的识别、对事件或数据的处理、处理结果的输出三个步骤。

嵌入式实时操作系统分为两类, 一类是硬实时另一类是软实时, 硬实时系统在确保任务执行没有错误的同时要将处理的结果准确的输出, 否则会对生产以及运行造成很严重的后果, 软实时系统最主要的是快速的对各个任务进行运行处理, 响应时间的界定具有一定的灵活性。嵌入式实时操作系统通过对任务进行及时的调度, 为系统资源管理提供一个稳定的平台, 尽管嵌入式实时操作系统是一个简单的系统, 但是其具有很重要实际应用, 对我们的生活有着重要的作用。

2 嵌入式实时操作系统的结构体系以及性能指标

2.1 嵌入式实时操作系统的结构体系

嵌入式实时操作系统经过多年的发展, 人们对其的结构了解的已经非常清晰, 嵌入式实时操作系统最基本的机构是由模块结构和层次结构构成, 最一般的结构化设计是模块结构, 模块结构主要分为设备管理、处理器管理、文件管理、存储管理等模块, 建立在系统功能模块分类基础上的是层次结构, 是一种模块集合作为“层”的结构, 熟知的单内核就是模块结构, 但是内核又是层次概念, 因此嵌入式实时操作系统按照模块间功能调用方式分类分为单内核和微核两类。由于文件系统是建立在存储器上的逻辑功能, 因此可以说当今的嵌入式实时操作系统是硬件组合模块的软件表达形式, 是计算机的硬件逻辑映射。还有建立在嵌入式实时操作系统应用扩展模型上的两种模式是虚拟机模式和服务器模式。

2.2 嵌入式实时操作系统的主要性能指标

成熟度—是指嵌入式实时操作系统从研发成功到后续的投入使用过程中, 能够稳定可靠的运行, 并通过长期的使用不断优化慢慢走向成熟, 是评价嵌入式实时操作系统稳定性以及可靠性的重要指标。

安全性—主要是评价研发生产出的嵌入式实时操作系统能否符合国家以及国际上规定的标准, 达到抵御外部恶意的攻击, 能否满足第三方使用的重要指标。

稳定性—主要是反映嵌入式实时操作系统在运行过程中能够稳定的运行不出现异常情况, 是操作系统稳定可靠的重要指标。

可靠性—主要是反映嵌入式实时操作系统在运行过程中抵抗外界干扰的能力, 可靠性通常用系统稳定运行的时间长短来衡量。

实时性—主要是反映嵌入式实时操作系统及时处理外界时间的能力, 通常通过任务切换时间、信号量混洗时间、系统调用时间、中断响应以及延迟时间等来进行衡量。

3 μC/OS - II移植条件

μC/OS - II的移植到单片机中需要具备以下条件才能进行移植, 才能弥补单片机在使用过程中的不足之处。

(1) 处理器的C编译器可以生成可重入代码。这是因为 μC/OS-II需要同时运行多个任务, 是一个多任务的实时操作系统, 存在通过调用同一个函数的可能性, 因此要所形成的函数必须是可重入的。

(2) 可以用C语言进行编程, 进行对其控制, 顺利的实现打开、关闭以及中断。

(3) 处理器应当可以中断, 并且是定时中断。

(4) 处理器应当能够容纳足够量的数据的硬件堆栈, 因为每个任务在运行过程中都要一定数量的堆栈保存和寄存器有关的CPU寄存器内容, 不同的任务堆栈也不同。

(5) 处理器应当可以将堆栈指针与其他的16 位、32 位、64 位的寄存器读出和存储到堆栈或内存中的指令。

4 结语

嵌入式实时操作系统对于单片机的性能优化具有重要的作用, 单片机的很多不足之处得到了完美的弥补, 对工业生产、电器设备以及人类的生活做出了巨大的贡献, 本文对嵌入式实时操作系统进行了详细的介绍, 将 μC/OS - II移植到单片机中, 使整个系统运行起来, 从而优化了单片的性能, 为嵌入式实时操作系统在单片机的上的开发与应用提供了一些借鉴的意义。

摘要:随着科技的进步, 单片机的应用离我们的生活越来越近, 嵌入式实时操作系统在单片机上的应用, 可以弥补单片机在使用过程中的很多不足之处, 使单片机的性能得到很大的提升。本文中阐述了μC/O S-II实时嵌入式操作系统移植到单片机上的条件, 对嵌入式实时操作系统在单片机上的应用具有借鉴意义。

关键词:嵌入式操作系统,μC/O S-II,移植

参考文献

[1]哈焱.基于MC9S12XS128单片机的智能车路径识别探究[J].广东石油化工学院学报, 2011 (06) .

[2]崔业梅.基于嵌入式系统的图像采集系统[J].长沙航空职业技术学院学报, 2011 (01) .

篇6:嵌入式实时操作系统(dynaLinux),及其开发平台

关键词: 嵌入式系统;μC/OS-II;温度控制

中图分类号:TP39文献标识码:A文章编号:1009-3044(2007)16-31108-03

Applications of Temperature Control Based on the Embedded Real-time Operating System

Songlin-Wang, Zhengqin-Wang

(Computer Department Anhui business college Vocational Technology, Wuhu 241000)

Abstract:The paper introduces the design of the temperature-controlled based on the embedded real-time operating system. Analyses mainly the construct of system and the design method of hardware and software. The embedded operating system μC/OS-II has been transplanted in the software design. It will reduce the difficulty in software design because of the new method of multitask program. The system has many advantages such as high temperature accuracy, good quality, etc.all of which have been laboratorial experimented and proved.

Key words:embedded system;μC/OS-II;temperature-controlled

1 引言

嵌入式系统是以应用为中心,满足应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,它将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,具有软件代码小、高度自动化、响应速度快等特点。特别适合于要求实时的和多任务的监控系统。论文利用嵌入式系统的设计方法及测试技术,结合RTOS的选取原则,选用了源码公开的嵌入式实时操作系统μC/OS-II,设计、实现对多点温度进行控制的嵌入式系统。

2 系统开发环境与技术

考虑系统性能、成本、可靠性等因素,系统的主控芯片选用了台湾Syncmos公司生产的以80C52为内核的8位微控制器SM5964,嵌入式操作系统的软件开发平台选用了源代码公开的RTOS ---μC/OS-II,运用嵌入式系统较常用的设计与测试技术。下面对其详细介绍。

2.1系统的开发环境与工具

2.1.1系统的开发

PC选用的开发环境是:Windows 2000 Server;嵌入式系统开发集成环境:Keil C51 7.0、VC++ 6.0;选用的程序设计语言是:汇编、C语言。

2.1.2嵌入式微控制器

SM5964 微控制器是系统的核心器件,它是80C52 微控制器家族的派生产品,其硬件特征和强大的指令系统使它成为一种性能价格比高的控制器。除具有通用80C52优点之外,其特点如下:

(1)集成度高:它具有丰富的片内资源,包括3个16位定时器、1个看门狗定时器、全双工串口通道等,其PDIP 封装具有32个I/O口而PLCC/QFP封装则具有多达36个I/O口。

(2)存储量大:它内置了64 KB Flash ROM和1 KB RAM。

(3)ISP特性:它具有在系统可编程(ISP)功能,可以通过串口或者并口利用ISP功能实现系统的程序在线修改或升级。片内有多达4KB的存储空间供ISP编程之用。

(4)PWM特性:片上有5路PWM通道可供用户使用。

2.1.3嵌入式操作系统μC/OS-II

在进行嵌入式系统设计时,选择适合自己的实时操作系统是至关重要的,我结合具体的应用,考虑开发成本等因素,根据嵌入式操作系统的选取原则并基于μC/OS-II的许多特点,选用了源代码公开的实时操作系统μC/OS-II。μC/OS-II的主要特点有:

(1)公开源代码:源代码全部公开,这样使系统变得透明,很容易就能把操作系统移植的各个不同的硬件平台上,并可根据需要进行扩充。

(2)可移植性:μC/OS-II绝大部分源码是用ANSI C写的,可移植性(Portable)较强。它可以在绝大多数8位、16位、32位甚至64位微处理器、微控制器、数字信号处理器(DSP)上运行。

(3)占先式:μC/OS-II完全是占先式(Preemptive)的实时内核,总是运行在就绪条件下优先级最高的任务。大多数商业内核也是占先式的,μC/OS-II在性能上与它们类似。

(4)可确定性:全部μC/OS-II的函数调用与服务的执行时间具有其可确定性。μC/OS-II的系统服务的执行时间不依赖于应用程序任务的多少。

(5)稳定性与可靠性:μC/OS-II自1992年以来已经有很多成功的商业应用,其稳定性和可靠性都有很好的保证。

μC/OS-II的其硬件和软件体系结构如图1。

图1 u C/OS-II硬件与软件的体系

2.2 嵌入式系统协同设计技术

如何工程实际性能出发,依据相应的指导原则和分配算法对硬件/软件功能进行分析及合理的划分,从而使得系统的整体信能、运行时间、能量损耗、存储能量达到最佳状态,即为硬件/软件协同设计技术的重要研究内容。

典型的硬件/软件协同设计过程是:首先,选用独立于任何软硬件的功能性规格方法对系统进行描述;然后,在系统描述基础上对硬件/软件的功能模块进行划分;最后,需对硬件、软件的功能划分的结果进行评估。如果评估结果不满足要求,说明划分方案的选择是不合理的,需要重新划分硬件/软件模块,以上过程重复直到系统获得一个满意的硬件/软件实现为止。

软硬件协同设计过程可以归纳为:需求分析、软硬件协同设计、软硬件实现、软硬件协同测试和验证。

2.3 嵌入式系统的测试技术

嵌入式系统软件的测试必须考虑时间和硬件影响的问题。对于硬件,一般是采用专门的测试仪器进行测试;而对于实时嵌入式软件,则需要有关的测试技术和测试工具的支持,需要采取特定的测试策略。

测试技术指的是软件测试的专门途径,以及提供的能够更加有效的运用这些途径的特定技术。测试技术主要有回归测试(基于代码的测试或白盒测试)、第三方的验证和确认测试(功能测试或黑盒测试)及维护中的修改或升级测试(回归测试)等。目前,大量的实时嵌入式软件是面向对象编程和基于部件开发的,它们对时空和宿主机、目标机的交叉开发方式,论文选用该测试技术。

3 温度控制系统的设计与实现

嵌入式的多点温度监控系统需完成测量和控制两大功能。系统测量功能包括:多点温度数据采集、信号转换、信号传输等功能;系统的控制功能包括:温度数据的分析处理、输出控制信号、显示、通信等功能。下面将详细说明各个功能模块的设计与实现。

3.1系统的硬件设计

温度控制系统主要有键盘输入、数据采集、输出控制、LCD显示、通信及电源模块等组成。系统结构如图2。

图2 系统结构框图

3.1.1键盘输入电路

键盘是一组按键的组合,它是常用的输入设备,可以通过键盘输入数据或者命令,实现简单的人机对话。键盘可分为独立联接式和行列式(矩阵式)两类,每类按其译码方式又分为编码式及非编码式两类,设计中使用的是独立联接非编码式键盘。每个按键使用的是一个瞬时接触开关,这种联接方式可以容易被微处理器检测,但由于按键会产生机械抖动,在按键被按下或者抬起的瞬间,一般持续5~15ms,因此设计中要去除键抖动。可以通过硬件双稳态电路或者软件延时来实现,设计中采用延时20ms实现的。

3.1.2数据采集电路

本系统实现对两路温度信号的采集,为了节省硬件成本,在前向通道中采用了多路选择开关,使用了两个多路模拟开关器件CD4052,实现信号的差分输入,完成对两路温度信号的轮流采样,然后将信号送入一个公共的模数转换器LTC2430,完成模数转换。由微处理器的P1.2、P1.3两引脚实现信道的选择。电路如图3。

图3 数据采集电路图

3.1.3模数转换电路

系统模数转换采用LTC2430,设计中使其工作在外部时钟驱动模式下,工作状态分为转换(Conversion)、休眠(Sleep)和数据输出(DataOutput)三个状态。

3.1.4通信电路

系统所进行的通信是实现与PC机的通信,选择最为广泛的通信标准RS232通信标准。由于PC机使用的是RS232电平,而SM5964输出是TTL电平,因此选用MAX232解决电平匹配的问题。电路如图4。

图4 通信电路原理图

SM5964的串行发送端口TXD和接收端口RXD经MAX232芯片进行电平转换后,分别与PC机的数据接收端口RXD和数据发送端口TXD相连接。在设计中,使用了两个发光二极管D7和D8监视通信的工作状态。

3.1.5 LCD显示电路

对于LCD MGLS-12864,内置HD61202图形液晶显示模块,厂家为其设置了7条指令来完成对它的控制,有两条指令用于显示状态的设置,其余指令用于数据读/写操作,在此不对其进行详细的说明。

MGLS-12864与微处理器的连接方式有两种:一种是直接访问方式,一种为间接控制方式。直接访问方式就是将液晶显示模块的接口作为存储器或者I/O设备直接挂在计算机总线上,计算机以访问存储器或者I/O设备的方式操作液晶显示模块的工作。而间接控制方式是计算机通过自身的或者系统中的并行口与液晶显示模块连接,通过对接口的操作达到对液晶显示模块的控制。设计中论文采用了间接控制方式,这种方式的特点是电路简单,控制时序有软件实现,可以实现高速计算机与液晶显示模块的接口。

3.1.6输出控制及报警指示电路

输出控制电路采用12V直流继电器对外电路进行控制,通过控制继电器的吸合时间来实现对温度的控制,继电器是与强电控制电路(大电流、高电压)联系在一起,会对应用系统产生严重干扰,使系统不能正常工作。为了消除干扰,在微机接口与继电器之间分别加了光耦,使系统主机部分的地与强电控制电路的地隔开。当温度超限或者系统出现致命错误时,系统会发出报警指示且实现在LCD上显示。

3.2系统的移植

系统移植是指使一个实时操作系统能够在某个微处理器平台上运行。每个实时嵌入式操作系统都支持很多种处理器,为了使其在具体的硬件平台上工作,必须根据具体的硬件平台完成移植工作。μC/OS-II需要用户独立完成此工作。由于在设计时已经充分考虑了可移植性,移植工作并不太复杂,要根据具体硬件平台,对文件OS_CPU.H、OS_CPU_C.C和OS_CPU_A.ASM进行合理的修改。要使其正常运行,处理器首先需满足以下要求:

(1)处理器的C编译器能产生可重入代码;

(2)用C语言就可以打开和关闭中断;

(3)处理器支持中断,并且能够产生定时中断(通常在10Hz至100Hz之间);

(4)处理器支持能够容纳一定数量数据(可能是几千字节)的硬件堆栈;

(5)处理器有将堆栈指针和其他CPU寄存器读出和存储到堆栈或内存中的指令。

3.3系统的软件模块设计

系统软件设计平台RTOS作为一种专门为嵌入式微处理器设计的模块化、高性能的实时操作系统,提供了一种基于开放系统标准的完善的多任务环境。它作为嵌入式应用软件的基础和开发平台,是一段嵌入在目标代码中的软件,在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于其上的各个任务,RTOS根据各个任务的要求进行资源管理、消息管理、任务调度、异常处理等工作。

系统软件的体系结构如图5所示。硬件抽象层(HAL)把实时内核与硬件隔离开,实现了操作系统内核与设备无关,提高了应用系统的可靠性。内核层是一个是实时多任务操作系统(RTOS)内核。内核层上面是高层驱动和库函数,提供通用的API、I/O管理器。应用程序层是用户的不同的任务。

图5 RTOS体系结构

3.3.1任务划分

根据要实现的功能,系统划分为如下6个任务:按键处理、LCD显示、串行通信、输出任务、控制运算、信号采集处理。从系统设计方面,可以划分为人机交互模块、串行通信模块、温度测量及控制模块和远程加载模块。

3.3.2基本界面设计

为了完整地实现系统的控制功能,需要在界面上显示全部的信息。显示的信息量较多,采用了六个显示界面分屏显示,界面的切换、菜单的选择、参数的选择及修改等是通过不同的按键来实现。

图6 系统基本界面

3.3.3串行通信模块设计

串行通信模块是系统设计中的一个重要部分。它要实现与PC机通信,接收PC机发来的命令帧,在确认正确后进行分析执行,并向PC机发送相关信息和数据。该模块设计工作主要为串口设备驱动程序设计与串行通信应用程序的设计,前者主要完成串口的工作方式、波特率等环节的设置,该部分工作具有系统设计共性,在此主要分析串行通信设计。

在系统中串行通行程序是专门用于接收PC机发送来的读写命令,根据命令的不同,完成不同的操作,既可以对系统当前的运行状态或参数进行改变,也可以把PC机需要的数据信息打包发送。在设计中,为简单起见,系统作为从机,只能被动接收PC机发来命令,对命令帧分析处理之后执行,可以改变系统当前的运行方式和参数。当需要向PC激发信息时,它要按要求把相关信息组帧发送,如当前继电器状态、第一路温度值、第二路温度值等。程序流程如图7所示。

图7 串行通信流程图

3.3.4温度测量及控制模块设计

数据信号的采集处理是把实际过程中的模拟量、开关量以及其它信息量通过相关的方式送入计算机,再由计算机进行存储和进一步的处理(如计算、显示、控制等)。模拟量的采集是将模拟量转换成数字量并送入计算机。然后调用处理算法将这些数字量存储并进行二次计算处理,一方面要输出显示便于观察,另一方面调用相关的控制模块,对被测对象进行控制。

系统要实现对两路温度进行采集控制,温度信号经两个模拟转换开关CD4052之后,以差分式输入模拟转换器LTC2430的输入端子,转换后的数字量送入微控制器SM5964,从而完成信号的采集。控制模块采用了时间最优控制和PID算法相结合的控制方法合理的控制算法对被控对象进行控制,设计中取得很好的效果。

3.3.5远程加载模块设计

此功能模块就是利用“在系统编程”(In-System Programming,简称ISP)技术,可以实现对系统进行在线升级。所谓“在系统编程”技术是指在用户设计的微控制器系统中为配置新的系统功能而对器件进行重新编程,并在线地将程序代码(固件)下载到程序存储器中的一种编程技术。它的出现是对传统编程方法的重大突破。在设计中,PC机利用串口向系统发送各种命令,如片擦除、页擦除、编程等命令,系统正确接收之后分析执行,从而完成加载升级功能。

4 结论

论文基于嵌入式系统设计框架,选用代码开发的μC/OS-II操作系统,在模块化、高性能的RTOS软件平台上采用多任务编程技术、分层体系思想完成系统各个软件模块的设计,利用系统的ISP功能,实现系统程序加载和动态更新,利用RS232串行通信技术实现通过PC的远程控制功能。嵌入式温度控制系统的实时性、可靠性等工程性能优良,并具有升级更新能力。

参考文献:

[1]巴内特,奥卡尔.嵌入式C语言编程与Microchip PIC/Embedded C Programming and the Microchip PIC [M].清华大学出版社,2005.

[2]江申,陈首先,王子健.基于嵌入式技术的温度测量系统[J].微计算机信息,2005,21(10-2):25-27.

[3]孙瑞志,史美林.基于S3C44BOX的嵌入式温度湿度实时监控系统[J].微计算机信息,2006,22(6-2):207-208.

[4]叶以民,赵会斌,耿增强.等.嵌入式系统中的实时操作系统[J].测控技术,2000,19(4):6-8.

篇7:嵌入式实时操作系统(dynaLinux),及其开发平台

随着国家经济的迅速发展,人民的生活水平日益提高,人们对安全防范意识逐渐提高,迫切希望通过监控的方式来预防和减少各种破坏和犯罪活动,视频监控作为一种重要手段体现出了其重要性,随着网络技术的发展,传统的受地域限制的监控系统已经不能胜任更高的要求,如何将网络与视频监控系统有效结合,在各种复杂环境下实现远距离有效的实时监控,成为备受关注的新的技术的问题。

1、网络数字实时监控系统的特点

随着数字信号的迅猛发展,视频压缩编码,多媒体技术,网络技术已经越来越成熟,数字视频监控系统随之迅速崛起,数字信号经过压缩编码占用较小带宽,方便信号在各种有线,无线介质中传输,而且不易受其他信号的干扰,结合网络技术更易于管理和存储,成本降低,因此网络视频监控系统将逐渐成为市场的主流。网络视频实时监控系统主要由3大模块:一是嵌入式系统,二是视频编解码算法,三是网络打包传输。其中的最关键技术是视频编解码算法的实现,目前的视频压缩编码方式较多,MPEG系列,一直发展到最新的高性能H.264编解码,其压缩比为MPEG的2倍左右,对于带宽有线的传输,高效的压缩算法能使视频流畅传输,而且H.264通过信道编码具有很强的纠错能力。

1.1 设计方法总体介绍

本文主要设计实现一个以S3C2440微处理器为核心的嵌入式网络视频监控系统,该芯片是三星公司的ARM9系列芯片,通过开源操作系统Linux对整个系统进行管理,外部配置NANDFLASH存储程序,hynix芯片作为内存供系统使用,USB摄像头采集视频信号经过处理后在TMS320DM642芯片中经过H.264压缩后,通过Internet采用UDP协议传输给远端客户机监视器上。双路视频采集处理在本系统上通过单进程下的多线程来实现,进程的资源在子线程下共享,在节省系统资源的前提下,实现了单进程下两路普通USB摄像头VGA分辨率(640x480)的实时传输,传输帧率为15帧/秒,传输画面流畅,在保证换面质量的前提下实现了整个系统成本的缩减,为扩展更多路的视频传输打下了良好基础。

2、嵌入式实时网络监控系统的硬件设计

在此选用三星公司的ARM系列嵌入式微处理器S3C2440A芯片作为整个系统的控制核心,外扩N A N D F L A S H芯片,SDRAM芯片,以太网控制器DM9000,USB接口,传输YUV信号的USB摄像头,音频处理芯片UDA1341等,S3C2440A系统资源丰富:400MHZ的ARM920T内核;具有MMU,支持Linux操作系统;32KB的Cache等。系统存储器采用2片SDRAM(HY57V561620)组成64MB内存,一片NAND FLASH(K9F1208)组成128MB外部存储器。U S B集线器控制器采用AU9254芯片,该集线器产品使用广泛,整个集线器与系统连接只用四根线。

3、嵌入式实时网络监控系统的开发平台

嵌入式平台是嵌入式视频实时监控的软件核心,嵌入式操作系统具有任务调度,中断处理,进程管理等一般操作系统的功能,由于嵌入式平台的资源有限,一般采用交叉编译的方式进行开发调试,在此我用的宿主机采用开源Linux(Fedora 13)操作系统,此系统可视化强,便于操作,模块可以动态加载,可根据需要定制内核。目标板通过网卡,串口,JTAG口与宿主机通信。

3.1 Linux内核移植

Linux是C语言编写的符合POSIX标准的开源操作系统,可移植性强,可裁减性强,在此我在网上下载源码后在目标板上移植了2.6.31内核的Linux操作系统,U-Boot类似于电脑的BIOS,负责引导内核的加载,内核加载后负责加载文件系统镜像。对内核的编译采用arm-linu-gcc 4.1.2的交叉编译器,环境搭建好后首先要对内核进行配置,这里主要对USB驱动,V4L2,声卡,网卡进行配置,配置完后进行编译,编译成功后会在tools文件夹下会生成一个ZImage镜像,将这个内核镜像通过U-Boot下载到NAND FLASH对应地址下即可完成内核的移植。

3.2 文件系统镜像的制作

根文件系统是内核启动时挂载的第一个文件系统,里面包含Linux系统的核心部分,包括软件和库,以及所用来支持视频框架的服务器应用程序,并存储相应的数据。Busy Box是制作文件系统的关键性工具,在手动创建相应目录的前提下配置编译BusyBox,会在相应目录下生成几个文件,把这些文件拷入自己制作的文件系统即可。视频采集服务器应用程序在启动脚本中设置好后,便可开机自动加载相应的视频采集程序。文件系统制作完成后用mkyaffs2工具将原始文件系统做成镜像,通过U-Boot下载进开发板即可。

4、视频采集和图形压缩设计

由于一般的USB摄像头采集到的信号不同,这里我试过一些免驱摄像头,最终选定以中星微为核心的台电TL型号的USB摄像头,该摄像头采集到的信号支持JPG流和YUV流两种可选模式,由于要通过DSP芯片进行编码,所以通过驱动选择采集YUV4:2:2信号流为原始信号,并通过DM642进行压缩编码。本地目标板显示则通过YUV转RGB算法直接显示。

在嵌入式系统中,操作系统屏蔽了驱动程序的具体实现步骤,当内核需要使用某个设备时,找到该设备的驱动程序,通过标准的API接口函数调用驱动程序的相应函数来控制设备。系统调用是操作系统和应用程序的接口,设备驱动则是操作系统和设备之间的接口,Linux对设备的管理采用文件的方式,应用程序可以像操作普通文件一样对硬件操作。对设备文件的操作方式就是一些系统调用,通过file_operations这个结构图数据把驱动程序和系统调用关联起来,编写设备驱动程序的主要工作就是编写子函数,并填充file_operation的各个域。

Video4Linux2是Linux操作系统中关于视频设备的内核驱动API函数,我们的USB摄像头就是通过该驱动中的接口函数实现采集的控制。由于USB摄像头采集数据量大,要实现网络传输,并且传输通畅必须选择一个好的压缩算法,这里我采用H.264这种具有很强的抗误码特性,可适应丢包率高,干扰严重的信道视频传输。用专用的强大的多媒体处理器DM642来实现H.264的压缩编码,H.264遵循逐级编码,依次为帧级编码,ilsce级编码,宏块级编码。本课题针对CIF格式视频传输,具体通过移植编码器JM86来实现。主程序先为各个变量分配内存空间,循环调用帧编码函数进行帧编码,JM86中编码算法为先通过main函数循环调用encode_one_frame编码,然后循环调用函数encode_one_slice进行序列中的帧编码,通过循环调用函数encode_one_macroblock对每帧中的slice进行编码。

5、视频网络传输的实现

采集到的视频信号经过H.264压缩后,就可以通过无线或者有线网络传输出去,从而实现实时监控。网络传输协议我选择UDP传输协议和TCP传输协议相结合的方式,目标板作为服务器端,内部移植Boa小型WEB服务器,将做好的网页放进根文件系统var目录下,建立相应的脚本文件,插好网线启动目标板后,服务器自动运行,在任意一台windows下通过浏览器输入目标板IP地址即可实现实时视频监控访问。这里用TCP传输协议传输控制信息,用UDP传输协议传输视频图像数据,TCP协议是面向连接的网络协议,对控制信息提供可靠服务。而UDP协议属于不可靠服务,是无连接的网络协议,传输速率高,有可能在传输过程中丢包。控制通道和视频数据通道采用不同的通信端口,在服务器断建立以SOCKET为类型的监听,控制套接字,在客户端建立SOCKET为类型的请求套接字,控制套接字。通过组播类实现传输UDP协议的封装数据包。

6、总结

虽然在实验室平台下传输效果比较理想,但是没有考虑网络因素,网络质量不是很好时,视频质量会受到影响,应对协议进行改进,加入流量控制与带宽控制算法,为用户提供质量较好的视频服务。

参考文献

[1]郑灵翔等.嵌入式系统设计与应用开发.北京.北京航空航天大学出版社.2006.

[2]杨宗德,邓玉春.LINUX高级程序设计[M].北京:人民邮电出版社.2009.10.

上一篇:初中《狼王梦》读后感下一篇:“解放思想、赶超跨越”大讨论活动、“学用政策抓落实、强化执行促跨越”活动第一阶段总结