嵌入式软件系统平台(精选12篇)
嵌入式软件系统平台 篇1
0引言
随着电网的不断发展, 控制中心在电网分析与控制方面的需求也越来越丰富, 这些具体的应用模块往往由不同的开发厂商提供, 并部署在控制中心的能量管理系统 (EMS) 之上, 为此需要各种应用模块与EMS进行有效的集成。在各种集成方案中, 嵌入式集成方案有以下显著优势:①功能分工清晰, 应用模块负责核心计算等功能, 而进程管理、人机交互、数据存储等由EMS平台统一提供;②数据源唯一, 便于维护;③可最大程度减少软硬件投资;④人机界面风格一致, 符合用户使用习惯。
随着未来智能电网调度技术支持系统在国家电网体系内的全面推广, 如何在此平台上实现应用软件的嵌入式集成已经成为业界关注的热点。本文提出了“即插即用”式嵌入式软件开发的框架与方法, 并以嵌入式自动电压控制 (AVC) 主站系统为实际案例进行详细阐述。
1设计思想
“即插即用”概念来源于硬件芯片设计思想, 芯片的核心电路功能可以采用不同方法实现, 只要保证芯片各引脚的功能 (与主板交互的数据) 相同即可。而这种“即插即用”的设计思想也一直是嵌入式软件系统设计所追求的目标。
嵌入式软件系统分为核心模块 (类似于芯片核心电路) 和接口模块 (类似于芯片引脚) 2部分, 针对不同的EMS (类似于外围设备, 如主板等) , 只需要改变相应的接口模块, 相当于构造嵌入式“软件芯片”, 如图1所示。
为实现上述软件框架, 需要解决以下关键问题:
1) 如何封装核心模块
核心模块完成数据处理与计算功能, 封装核心模块的目标是保证其独立于外部EMS。为此, 核心模块必须通过接口模块间接与EMS交互, 并将所有与外部EMS相关的代码在接口模块中实现。
2) 如何实现接口模块
作为核心模块与EMS的唯一交互接口, 需要对交互数据类型和可能的交互方式进行整理, 确保针对不同的EMS, 接口模块的功能定义不变, 改变的只是实现方式, 从而固化核心模块。
为解决上述2个关键问题, 需要对被嵌入的软件系统进行充分的分析和整理, 构建嵌入式接口并应用于实际应用系统。
2构建嵌入式系统接口
结合现场开发经验, 本文对控制中心应用软件与EMS的数据交换进行整理, 构建嵌入式系统接口。
2.1数据交换方式及交换内容
为构建嵌入式系统接口, 首先应明确双方需要交换的数据及可能的交换方式。嵌入式系统接口可以通过标准化、应用程序接口 (API) 、双方约定等3种方式来实现。
1) 标准化
IEC 61970系列标准化接口为实现不同系统间的数据交换提供了一种标准途径[1,2]。典型的标准化接口应用包括使用公共信息模型 (CIM) 标准文件交换模型数据、使用E语言文件格式交换实时数据, 使用组件接口规范 (CIS) 接口交换实时数据等。
使用标准化接口方式是实现系统间数据交换的重要方式, 已经得到了广泛应用[2,3]。但标准化接口只能对特定内容、特定格式的数据进行交互, 而且不同EMS对标准化接口的支持能力、标准化接口的稳定可靠性差别较大, 目前仅依靠标准化接口难以完全满足嵌入式应用数据交换的需要。
2) API
基于EMS提供的API完成相应的数据交换。在这种情况下, 嵌入式系统需要针对不同的EMS开发相应的接口模块。
EMS提供的API接口为EMS所有应用模块服务, 其稳定可靠性可以保障。但这种方式要求EMS本身具有较好的开放性。在这种方式下, 所有开发工作都在嵌入式系统侧完成, 不需要EMS进行改造。
3) 双方约定
受EMS自身平台功能的限制, 难以保证所有接口都可以使用API接口方式来实现, 对一些特殊数据, 需要EMS与嵌入式系统双方约定交换方法及数据格式。在这种情况下, 交换双方均需要进行相应的程序开发工作, 一般采用文件或者TCP/IP报文方式。
表1给出了3种接口方式在灵活性和使用工作量上的对比情况。在实际应用系统中, 应根据EMS功能及现场需要选择最合适的接口方式。
表2整理并分析了嵌入式系统与EMS所需要交互的数据, 同时针对各种数据交换类型提出了建议的接口实现方式。
2.2接口实现方式
接口模块实现的关键是将核心模块与EMS分离, 使它们都可以独立地变化。为此, 采用Bridge模式来设计实现接口模块:将EMS抽象接口和它的实现部分分别放在独立的类层次结构中。其中一个类层次结构针对EMS接口, 另外一个类层次结构针对平台相关的EMS实现部分[3]。图2以数据采集接口为例说明Bridge模式。
其中:类CEMS提供了嵌入式系统与EMS进行交互的接口并维护一个指向虚类CEMSImpl的指针;接口GetData () 用于描述CEMS提供的实时数据采集接口;虚类CEMSImpl定义了实现类的虚接口;CEMS通过调用CEMSImpl提供的接口来完成功能;CEMSImpl各子类 (CEMS1Impl, CEMS2Impl) 负责实现类的具体实现, 该实现通过上文提供的3种数据交换方式完成接口的具体实现。
图3以获取实时数据功能为例描述了嵌入式系统如何与EMS进行交互。
在嵌入式系统中, 专门启动数据采集进程从EMS获取实时数据。该数据采集进程调用CEMS类提供的GetData () 接口;具体的交互实现由CEMSImpl子类的EMSGetData () 接口来完成。
3嵌入式AVC主站实现方案
随着经济的发展和人民生活水平的提高, 电压质量问题日益突出, 使用AVC系统实现电网电压自动控制的需求日益迫切[4,5]。AVC系统最近几年刚刚起步, 并在国内多家网省调得到广泛应用[6,7,8,9]。一般来说, 在建设AVC主站系统时, 控制中心EMS及相关的软硬件条件已经比较成熟, 而且AVC主站系统与EMS往往由不同生产厂商提供, 因此不可避免地要在现有EMS运行环境中实现AVC主站系统的相关功能。在各种AVC主站系统的实现方案中, 嵌入式AVC主站系统由于嵌入式方案的显著优势脱颖而出。下文重点阐述嵌入式AVC主站系统的实现方案。
3.1数据流程
嵌入式AVC系统的数据流程如图4所示。
AVC系统从EMS获取模型类数据 (包括电网模型及AVC控制模型) 和实时数据, 通过控制计算生成实时控制策略;控制策略通过EMS提供的遥控、遥调接口下发给子站系统;AVC计算结果通过EMS人机接口在EMS人机界面上显示;AVC需要长时间保存的历史数据通过EMS提供的商用库访问接口保存在EMS商用数据库中。
3.2嵌入式AVC系统开发实现
AVC主站系统核心模块通过调用类CEMS提供的接口完成与EMS的交互。为提高系统稳定性, 各核心功能模块以独立进程方式运行, 进程间通过基于文件映射机制的实时数据库[10]进行通信, 充分保证了系统的运行速度, 并通过进程锁和流程控制机制对各功能模块进行组织和协调。
对于AVC主站系统, 主要在模型数据获取、实时数据采集、指令下发、历史数据管理、消息处理、结果显示等6个方面涉及与EMS的交互。为此, 在接口模块的类CEMSImpl中对该6大类接口功能进行封装, 并针对不同的EMS在CEMSImpl子类中完成相应的实现。表3描述了类CEMSImpl定义的各接口所交互的数据及接口实现方式。
3.3工程应用实施情况
本文设计的嵌入式AVC主站系统已经在多家网/省级电网得到实际应用, 包括南方电网总调、华东网调、江苏省调和湖北省调等。
从用户使用角度考虑, 嵌入式AVC主站系统相当于EMS应用的一个模块:AVC主站系统核心模块可以部署在EMS的某一应用服务器上 (比如电网应用软件 (PAS) 主机) , 无需新增硬件投资;AVC系统使用EMS提供的人机界面, 已有的EMS工作站都可以根据一定权限浏览和使用AVC功能;采用与EMS风格一致的人机界面, 符合用户使用习惯;维护界面一体化, 极大地减少了维护的难度和工作量;AVC系统使用EMS提供的API来完成历史数据存储, 不需要额外的历史数据服务器、商用数据库软件、磁盘阵列等硬件、软件设备。
从开发角度考虑, 对每一个新的工程项目, AVC系统主体框架和核心程序不需要改动, 只需要重新实现接口模块即可, 减少了程序代码的开发量, 并且各程序版本具有向下兼容性, 减少了程序版本的维护工作。
4结语
本文提出了“即插即用”的嵌入式系统框架和实现方法, 并根据该设计框架研究并实现了嵌入式AVC主站系统, 将EMS的平台优势与AVC系统的控制算法优势相结合, 提高了AVC系统的实用化水平。随着未来控制中心功能的不断扩展和用户需求的不断增加, 嵌入式的软件系统在控制中心调度自动化领域有着广阔的应用前景。
参考文献
[1]IEC61970Energy management system application program interface (EMS-API) :PartⅠCCAPI guidelines preli minary draft.1999.
[2]孙宏斌, 吴文传, 张伯明, 等.IEC61970标准的扩展在调度控制中心集成化中的应用.电网技术, 2003, 29 (16) :21-25.SUN Hongbin, WU Wenchuan, ZHANG Boming, et al.Application of extension of IEC61970standardin control center integration.Power System Technology, 2003, 29 (16) :21-25.
[3]GAMMA E, HELM R, JOHNSON R, et al.Design patterns:elements of reusable object-oriented software.New York, NY, USA:Pearson Education, 2002.
[4]孙宏斌, 张伯明, 郭庆来, 等.基于软分区的全局电压优化控制系统设计.电力系统自动化, 2003, 27 (8) :16-20.SUN Hongbin, ZHANG Boming, GUO Qinglai, et al.Design for global opti mal voltage control system based on soft identification of secondary control zones.Automation of Electric Power Systems, 2003, 27 (8) :16-20.
[5]张伯明.现代能量控制中心概念的扩展与前景展望.电力系统自动化, 2003, 27 (15) :1-6.ZHANG Boming.Concept extension and prospects for modern energy control centers.Automation of Electric Power Systems, 2003, 27 (15) :1-6.
[6]郭庆来, 孙宏斌, 张伯明, 等.江苏电网AVC主站系统的研究和实现.电力系统自动化, 2004, 28 (22) :83-87.GUO Qinglai, SUN Hongbin, ZHANG Boming, et al.Research and development of AVC systemfor power networks of Jiangsu province.Automation of Electric Power Systems, 2004, 28 (22) :83-87.
[7]郭庆来, 王蓓, 宁文元, 等.华北电网自动电压控制与静态电压稳定预警系统应用.电力系统自动化, 2008, 32 (5) :95-98.GUO Qinglai, WANG Bei, NI NG Wenyuan, et al.Applications of automatic voltage control systemin North China power grid.Automation of Electric Power Systems, 2008, 32 (5) :95-98.
[8]丁晓群, 黄伟, 章文俊, 等.基于电压控制区的主导节点电压校正方法.电网技术, 2004, 28 (14) :44-48.DI NG Xiaoqun, HUANG Wei, ZHANG Wenjun, et al.Apilot bus voltage correction method based on voltage control area.Power System Technology, 2004, 28 (14) :44-48.
[9]李端超, 陈实, 吴迪, 等.安徽电网自动电压控制 (AVC) 系统设计及实现.电力系统自动化, 2004, 28 (8) :20-22.LI Duanchao, CHEN Shi, WU Di, et al.Design and i mplementation of AVC system for power networks of Anhui province.Automation of Electric Power Systems, 2004, 28 (8) :20-22.
[10]吴文传, 张伯明, 徐春晖.调度自动化系统实时数据库模型的研究与实现.电网技术, 2001, 25 (9) :28-32.WU Wenchuan, ZHANG Boming, XU Chunhui.Study and i mplementation of real-ti me database management system (RTDBMS) model applied in EMS.Power System Technology, 2001, 25 (9) :28-32.
嵌入式软件系统平台 篇2
公司简介:
注册时间: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)的开发 融资或转让方式:投资或融资 联系方式:
公司名称:北京华科力扬科技有限公司
嵌入式软件系统平台 篇3
关键词:嵌入式系统;ARM;S3C44B0X;μCOS-II
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21601-02
Based on S3C44B0X and μCOS-II Embedded System Platform Design Analysis and Research
KONG Wei-qing,FAN Xiao-nan,CHEN Dai-mei
(Anhui University of Science and Technology,Huainan 232001,China)
Abstract:While the computer and electronic technology flourishing today, the embedded system comes to industrial field that is quite different from the conventional computer software and hardware and the electronic technology which functions widely in our daily life. In this paper, a prevalent embedded micro-processor ARM is introduced with the platform of S3C44B0X and μCOS-II, and elaborats how to build a develop platform of embedded system,the system principle of work and the application programming flow.
Key words:Embedded system;ARM;S3C44B0X;μCOS-II
1 引言
经过几十年的发展,嵌入式系统已经改变了人们的生活,深入到人们生活的方方面面,而且这种改变还在加速,现实中的嵌入式系统无处不在。当然,要给嵌入式系统下个定义,远非那么简单,所以这里引用IEEE对嵌入式系统的定义:嵌入式系统是:“用于控制、监视或者辅助操作机器和设备的装置”。本文讨论的主要是基于ARM的32位嵌入式系统开发平台的架构。一般情况下,从头开始设计一个系统通常是很花费时间和精力的,因此很多公司都提供了所谓的“开发平台”。开发平台为使用者提供了成熟的、开放式的软硬件资源,并且提供界面友好、功能强大的开发工具环境。利用这些资源,就能够方便地进行各种嵌入式系统产品的二次开发。
2 系统平台框架设计及开发流程
2.1 系统架构及流程:
由于嵌入式系统是一个受资源限制的系统,因此直接在嵌入式系统硬件(如ARM开发板)上进行编程显然是不合理的。我们通常采用的方法是:先在通用PC上进行编程,然后通过交叉编译和链接,将程序编译和链接成二进制的代码,最后下载到目标平台上的特定位置(如FLASH中),由开发板启动运行这段二进制代码,从而运行起一个嵌入式系统。
上述流程可见下面的流程图:
图1 系统开发流程图
2.2 软硬件平台:
PC机,S3C44B0X开发板, JTAG小板,安装在通用PC机上的一种IDE(如ADS1.2),JTAG调试代理,超级终端以及FLASHRMG等软硬件配置。S3C44B0X上的JTAG口接PC机上的并口,但需要在PC机上运行JTAG.exe这个调试代理,而板上的UART口则连接PC机上的串口。
2.3 S3C44B0X启动过程及地址空间的分配:
系统上电复位时,处理器就从0x0地址处开始取得指令运行。由于C程序的运行需要具备一定的条件,例如分配好的外部数据空间、堆栈空间和中断入口等。因此在编写应用程序之前要在程序入口处(0x0)加入必要的初始化代码,即Bootloader。S344B0X可以对8个bank进行寻址,每个bank的最大空间为32MB。由于整个平台都是以处理器为核心的,为了使处理器对各个设备的访问互不干扰,就将不同类型的设备映射到不同的bank内。在本文所用的S3C44B0X平台上,bank的空间分配如下:
图2 外设在S3C44B0X中寻址空间的安排
2.4 设置系统的程序空间和数据空间:
通过对链接器的参数设置来完成。将只读基地址(程序空间的开始地址)-r0-base 设置为0x0,读写基地址(数据空间的开始地址)-rw-base 设置为0x0c000000。在仿真调试程序时,即用JTAG进行在线调试时,将-r0-base 设置为0x0c000000,而将-rw-base设置为更高地址的位置上,比如0x0c400000,只要保证不和程序空间发生冲突。
3 嵌入式微处理器S3C44B0X
3.1 S3C44B0X简介:
S3C44B0X是三星公司生产的基于ARM7TDMI核的微处理器,采用了0.25μm CMOS工艺制造,并在ARM7TDMI核基本功能的基础上集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统,是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案。嵌入式系统的硬件是以嵌入式处理器为核心,配置必要的外围接口部件。见下图:
图3 S3C44B0X的扩展硬件结构图
3.2S3C44B0X中的存储器:
在基于ARM核的嵌入式应用系统中可能包含多种类型的片外存储器,如FLASH、ROM、SRAM、SDRAM等。
3.2.1 FLASH:
由于S3C44B0X本身不具有ROM,所以必须外接ROM器件来储存断电后仍需保存的代码和数据。FLASH具有非易失性,并且可以轻易擦写,因此,得到广泛的运用。这里以SST39VF160为例。如图4 所示,电路采用一片1MB×16位的FLASH(SST39VF160), FLASH ROM采用标准总线接口与处理器交互,处理器通过片选NGCS0与片外FLASH芯片相连。由于是16位的FLASH,空间为0x00000000-0x00200000。FLASH ROM的数据接口为DQ15~0,因此數据宽度是16位。
图4 接口电路
CPU对FLASH的接口不需要任何软件上的设置,但是要想使CPU正常的对FLASH进行操作,需要2个硬件上的设置:大/小端和Bank0总线宽度。一般情况下:系统都默认使用小端模式。由于FLASH映射在Bank0区,它可能有多种数据总线宽度,这个宽度可以通过硬件来进行设置,即通过OM1~0引脚上的逻辑电平进行设置。如图5所示:
图5 Bank0的数据总线宽度设置
由于这里采用SST39VF160的存储单元组织方式为1M×16b,因此应将Bank0的数据总线宽度设置为01,这样就设置好了总线宽度。
3.2.2 SDRAM:
通常RAM分为SRAM和DRAM两种。这里主要介绍SDRAM(同步动态RAM)。与FLASH相比,SDRAM不具有断电保持数据的特性,但其存取速度大大高于FLASH,且具有读/写的属性,因此,SDRAM在系统中主要用作程序的运行空间,数据以及堆栈区。SDRAM的基本原理和DRAM基本一样,但是这些存储单元的组织和控制就和DRAM大不一样了。SDRAM是多Bank结构,例如在一个具有2个Bank的SDRAM器件中,其中一个Bank在进行预充电期间,另一个Bank却马上就可以被读取,这样进行一次读取以后,又马上可以去读取另一个以及预充电的Bank的数据,无需等待而是可以直接读取。
4 操作系统μCOS-II
4.1 操作系统引入:
由于32位嵌入式系统性能较之8位的MCU已经有很大的提高,而且现在嵌入式开发过程中,完成的功能越来越强,所以代码量也急速增加,为了减少人们在嵌入式系统开发过程中的工作量以及降低人们在开发中的出错率,现在的嵌入式系统中一般都引入操作系统。
4.2 μCOS-II介绍:
μCOS-II是一个简洁、可裁减、可移植固化抢先式的多任务实时的嵌入式操作系统,可用于各种微处理器。由于它高效、简洁和源代码公开,所以现在越来越多的嵌入式系统开发者选用μCOS-II作为开发产品的操作系统。
4.2.1 μCOS-II的移植及判断是否移植成功:
所谓移植,就是使一个实时内核能在其他的微处理器或微控制器上运行。由于μCOS-II大部分的代码都是用ANSI C编写的,所以较之其他的OS,移植μCOS-II还是比较容易实现的,但是在编写与处理器硬件相关的代码时还是不得不使用汇编语言。移植的主要工作就是编写这些与处理器硬件相关的代码。
4.2.2 μCOS-II的扩展和使用:
μCOS-II操作系统只提供任务运行的内核程序,要实际使用它还要进行μCOS-II的扩展编程,这样才能使其成为一个实用的OS。扩展包括:为外设建立驱动程序及相应的API、创建GUI(如μCGUI、MiniGUI等)、文件系统等。
使用μCOS-II范例:以下函数实现在μCOS-II中创建2个任务Task1和 Task2,任务堆栈为Stack1和Stack2,任务的优先级为3和4。
Void main(void )
{ OSInit();/* 初始化μCOS-II */
OSTaskCreate(task1,(void )0,&stack1[STACKSIZE-1],3);/*创建了任务Task1*/
OSTaskCreate(task2,(void )0,&stack1[STACKSIZE-1],4);/*创建了任务Task2*/
OSStart();/* 开始任务调度 */ }
任务Task1和Task2是2个无限循环的函数,可以将要实现的功能放到2个任务里。
5 未来展望
8位MCU由于其性能方面的局限性,已经无法满足嵌入式技术的不断发展的要求。而且现在ARM核价格也在不断的下降,取代8位微控制器是大势所趋。嵌入式Internet是近几年发展起来的一项新的概念和技术。随着Internet技术
的不断成熟,宽带传送速度的不断提高,网上提供的信息内容日趋丰富,应用项目多种多样。
6 結束语
本文的着眼点:不仅对S3C44B0X和μCOS-II的一些重要功能、特点、工作原理、开发流程、硬件电路的搭建方面做
介绍,而且将二者融合在一起,从整体的角度,从设计开发的角度透彻的分析了如何搭建嵌入式平台。现已在本开发平台上已经顺利的进行了μCOS-II的移植,UART等基础实验,系统稳定性得到了实践的验证。由性能卓越的S3C44B0X和简洁高效的μCOS-II能够快捷地构建出性能稳定的系统平台。在此开发平台上只需搭载适当的应用程序,即可开发出实用的产品。
参考文献:
[1]Labrosse JJ.嵌入式实时操作系统μCOS-II(第2版).邵贝贝.等译.北京:北京航空航天大学出版社,2003.
[2]马文华.嵌入式系统设计与开发[M].北京:科学出版社,2006.
[3]三星公司.S3C44B0X Data Sheet 数据手册[M].http://www.samsung.com.
[4]ARM7TDMI(Rev 4) Technical Reference Manual.ARM DDI 0210B.2001 ARM Ltd.
嵌入式系统可信平台模块探究 篇4
一、嵌入式系统的发展对可信平台模块提出的新挑战
嵌入式系统具有一些特点, 这个系统有特定的应用场景, 硬件设计较为自由, 自主设计性强, 系统软件硬件设计都很灵活, 具有可裁剪性, 嵌入系统对TPM的功能、可靠性、成本、体积、功能等都有严格的要求。而目前, 传统的TPM还存在一些不足核问题, 比如, TPM的芯片缺乏主动控制能力, 而嵌入式系统的灵活性很强, 与之相比, TPM的主控能力却相对不足, 这就与嵌入式系统之间产生较大的矛盾, 对嵌入式系统的TPM提出了新的挑战。另外, TPM密码机制存在不足。
二、嵌入式系统可信平台模块设计
结合嵌入式系统的特点, 需要设计一种能够满足其需要的可信平台模块, 这种模块需要在传统TPM的基础上, 进行创新改进, 增加新的功能, 这对于TPM研究是一种新的挑战。通过可信平台模块的设计需要提升嵌入式系统的可靠性, 有效减低信息传递过程中的损失。新型的模块具体有总线仲裁模块、对密码引擎和备份恢复魔抗, 通过建立可信平台模块提升传统TPM的控制能力, 保障整个嵌入式系统的稳定新, 安全性和可靠性。
1. 总线仲裁模块。在可信计算平台中, 引入TPM后会产生两个问题, 第一, 启动流程问题, 在上电后, TPM需要先进行完整性的检验, 这是, 平台处理器和外设不能通电启动, 只有在TPM检验完毕后, 才能使平台处理器和外设开启, 第二, TPM与平台处理器对需要对外部存储器上的数据进行读取, 这种情况下, 必然会产生对存储器的互斥访问问题。主要解决以上的两个问题。通过总线总线仲裁模块对外部存储器总线控制权进行仲裁后, 对整个嵌入系统进行控制, 通过启动控制和系统仲裁功能, 以解决上述问题。
在进行设计的过程中, 为了保障TPM能够完成工作, 还需要增加两个寄存器, 也就是控制寄存器和状态寄存器。通过设置两个寄存器对信号进行复位, 并保障信号传播的有效性。
总线总裁模块引入到嵌入式系统可信平台模块建设中, 可以使传统的TPM突破自身的限制, 成为主设备控制计算机系统, 对计算机系统进行有效地控制, 使系统更具良好的扩展性能。同时, 新设计的ETPM能够进行平台启动控制, 进行系统完整性度量, 系统总线互斥访问和外设控制等功能都能实现, 这样, 不需要添加其他配件, 系统的安全可靠性能就可以得到有效的提升。这种设计使TPM更加符合嵌入式系统灵活多变的性能特点, 能够有效解决嵌入式系统中的一些问题, 提高系统的可信度。
2. 备份恢复模块。在TPM中加入备份恢复模块, 可以有效提高整个可信计算机平台的可靠性, 如果系统被非法更改, 备份恢复在发现异常时就会将系统关键数据进行恢复, 有效保障系统的稳定性和可靠性。加入备份恢复可以提高嵌入式系统平台的持续工作能力和抗击数据信息的篡改能力, 保障系统的高效性和安全性。
3. 对称密码引擎模块。在TPM内部设计一个对称密码引擎可以满足嵌入式系统对对称加解密的需求, 通过可信软件栈能够为上层应用提供对称密码加解密服务。加入对称密码引擎后, TPM就具有了对称密码和非对称密码加解密的功能, 从而有效发挥出系统的安全性能, 为用户提供安全的可靠的服务。
总之, 总线仲裁模块、对称密码引擎模块和系统备份恢复模块的设计都将有效提升TPM的稳定性, 使TPM更加符合嵌入式系统的工作环境, 通过可信平台模块在嵌入式系统环境下的功能设计, 嵌入式系统的功能价值将得到进一步提升, 嵌入式系统安全性将得到有效的保障。
参考文献
[1]张焕国, 李晶, 潘丹铃, 赵波.嵌入式系统可信平台模块研究[J].计算机研究与发展, 2011 (07) .
嵌入式软件系统平台 篇5
摘要: 介绍基于ARM的嵌入式Linux系统平台的系统硬件系统构架,软件系统的组成和主要功能模块的实现。由于本系统采用的S3C2440 ARM9芯片具有较高性能和丰富的外围接口资源,因此具有控制能力强,硬件结构简单,方便功能扩展等优点,在控制系统中有较高的实用价值。
关键词: 嵌入式系统;Linux;S3C2440
中图分类号:TP3文献标识码:A文章编号:1671-7597(2010)0610166-01
0 引言
随着计算机技术的发展,嵌入式系统已成为计算机领域的一个重要组成部分。由于嵌入式系统应用的场合日趋复杂,只使用嵌入式控制器控制将难以满足要求,所以嵌入式操作系统得到了飞速的发展。
本文拟采用RISC体系结构的ARM处理器扩展外设及存储器等作为硬件平台;采用功能强大,易于移植的嵌入式Linux作为系统软件平台便于有效管理内存、实现多任务编程,是对市面上较多以8位、16位机为主控CPU的控制器的发展进步。嵌入式Linux系统的特点
Linux是一套类Unix的操作系统,具有Unix系统的程序接口和操作方式,也继承了Unix稳定和高效率的特点。目前内核已发展到2.6版本。
Linux内核遵循开放系统互连(OSI:OpenSystem Interconnect)国际标准,凡遵循该标准开发的硬件和软件,都能彼此兼容,方便程序移植到其它系统平台。其次,Linux具有良好的用户界面。传统用户界面是基于文本的命令行界面,有很强的程序设计能力,系统调用是给用户提供编程时使用的界面,用户可以在编程时直接使用系统提供的系统调用命令。完善的内置网络是Linux的一大特点,Linux在通信和网络功能方面优于其他操作系统,为用户提供了完善的、强大的网络功能,这一点也是继承了UNIX的优良传统。嵌入式Linux系统硬件架构及开发平台
本文采用的硬件平台是基于ARM9构架的嵌入式芯片S3C2440A,主频533MHz,支持Linux,Wince等操作系统。此外,外接了64M RAM,64M Flash,以太网控制芯片CS8900A。外围接口配有以太网口、RS232,USB等以便为建立交叉开发环境做好通讯、调试等方面的准备;配置LCD,触摸屏等以便实现人机交互系统。
硬件设计分为系统电路和功能电路两部分,系统电路为S3C2440A运行操作系统提供最小系统;功能电路提供各种接口实现控制器功能需求。
系统电路主要包括:电源电路、复位电路、时钟电路、存储器扩展和JTAG接口。为了流畅运行操作系统,本文在存储器扩展部分选用2M NOR Flash存储启动代码和操作系统,64M NAND Flash存储文件系统和应用程序代码。前者选用AMD公司的AM29LV160DB(1Mb×16),后者用三星的K9F1208U0A(64Mb×8)。
功能电路主要包括:液晶、触摸屏电路、以太网接口电路、USB Host
接口电路等。主要提供人机交互系统,网络链接,usb设备链接的功能。嵌入式Linux系统软件的设计
在开发系统前,必须安装Linux操作系统。然后在宿主机即PC机上建立交叉开发环境,安装交叉编译器cross_2.95.3.tar.bz2。然后编译ARM Linux 内核,在Linux的终端下,先进入ARM Linux内核源代码的目录下,执行make menuconfig命令就会出来内核配置主界面。在配置内核的时候可以静态的把CS8900A芯片、LCD、触摸屏以及U盘支持的驱动加入内核。保存对内核的设置后退出,然后在命令行下输入:
#make dep 建立整个内核程序间的依赖关系
#make zImage编译内核为zImage模式
编译完成后,在arch/arm/boot 目录下将生成ARM Linux 内核映像文件zImage。这就是要下载到硬件系统的内核映像文件。此内核包含了上述的以太网、LCD等模块,为下面设计提供了必需的系统软件功能。上位机软件的具体实现功能:通过以太网口可以实现远程控制,LCD、触摸屏提供人机交互界面,通过USB接口实现U盘读取数据等。
在应用程序开发上,系统的软件模块主要实现U盘读写、键盘和触摸屏控制、液晶屏图形驱动显示、断电数据保护、内存管理和串口通讯,以太网通讯等。操作系统的移植以及扩展,辅助开发平台上已有完备的软件平台,无须做过多修改就可移植到我们的平台上。可以将各功能模块编制成独立的任务,通过操作系统提供的API,有效的调度任务,实现任务之间的同步与通信,更好的完成工作。以下便是各功能的简单介绍和具体实现过程。网络系统的设计
TCP和UDP是TCP/IP协议中的两个传输层协议,它们使用IP路由功能把数据送到目的地。TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输,对数据不进行重传和确认。当要求传输的数据完整、可控、可靠时,应该选择TCP协议。当强调传输的实时性而不是完整性时,例如传输音视频信号时,应选择UDP协议。
CS8900A是CIRRUS LOGIC公司生产的16位以太网控制器,芯片内嵌片内RAM,10BASE-T收发滤波器,直接ISA总线接口。该芯片的突出特点是使用灵活,其物理层接口、数据传输模式和工作模式等都能根据需要而动态调整,通过内部寄存器的设置来适应不同的应用环境。发送过程中,首先添加以太网帧头(包括先导字段和帧开始标志),然后生成CRC校验码,最后将此数据帧发送到以太网上。接受时,他将从以太网收到的数据帧在经过解码、去掉帧头和地址检验等步骤后缓存在片内。通过CRC校验后,它会根据初始化配置情况,通知主机CS8900A收到了数据帧,最后用上面介绍的某种传输模式传到主机的存储区中。液晶显示系统设计
本设计采用Linux为显示设备提供的帧缓冲(framebuffer)接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer设备驱动来完成的。结束语
解决方案采用先进的基于ARM的32位先进处理器,并移植扩展好的嵌入式实时操作系统构成我们的开发平台,提出了一种新的思路,做出了大胆的尝试,相信随着工作的进一步深化、进展,定能取得另人满意的控制效果。
参考文献:
嵌入式软件系统平台 篇6
关键词嵌入式设备驱动端口
1引言
随着多媒体、网络技术的迅猛发展和后PC机时代的到来,利用嵌入式系统实现远程视频监控、可视电话和视频会议等应用已成为可能。为了实现这些应用,嵌入式Linux系统平台上摄像头驱动的加载是个很重要的环节。Linux环境下设计驱动程序,思想简洁,操作方便,功能也很强大;而USB摄像头性能良好价格低廉应用广泛,易于集成到嵌入式系统中。尽管如此,由于Linux支持函数少,只能依赖Kernel中的函数,有些常用的操作要亲自动手编写,并且调试也不方便,使得在Linux下驱动USB摄像头并不如Windows环境下那般轻松。
由于相关课题采用的是HH S3C2410板,因此,本文简单介绍基于嵌入式Linux2.4的USB摄像头驱动的开发与加载。
2Linux设备驱动的基本概念
设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。作为内核的一部分,设备驱动程序可以实现如下功能:
(1)对设备初始化和释放;
(2)把数据从内核传送到硬件和从硬件读取数据;
(3)读取应用程序传送给设备文件的数据和回送应用程序请求的数据;
(4)检测和处理设备出现的错误。
Linux内核就是通过驱动程序来同外围设备打交道的,因此,系统设计人员必须为每个设备编写驱动程序,否则设备无法在操作系统下正常工作。
3Linux2.4下USB摄像头驱动的实现
3.1USB驱动程序的框架
在Linux下,一个完整的USB驱动程序必须包含:USB Core(usbcore.o),USB主控制器驱动和USB设备驱动三个模块。其层次关系如图1所示。其中USB Core模块封装了支持USB主控制器及USB设备驱动的特定API(Application Program Interface),它通过定义一系列的数据结构、宏和函数(在/usr/include/linux/usb.h里声明)来抽象化硬件并掩蔽硬件的具体细节,使得系统对各种设备的访问都采用统一的形式,做到了硬件无关。同时主控制器驱动和设备驱动均将各自的功能及数据结构注册在usbcore.o中,之间通过URB(USB Request Block)关联起来,从而实现USB设备的信息传递。
由于在Linux系统中已内置了usbcore.o,另外在嵌入式系统中,芯片的厂商一般都会提供主控制器的驱动模块。我们仅需开发USB设备端的驱动模块。
3.2USB摄像头驱动的编写
驱动程序的编写是要构造一系列可供应用程序调动的函数,如:open、release、read、write等。在驱动程序中,首先要根据程序功能的需要,实现file_operations结构中的函数,file_operations的变量会在驱动程序初始化时注册到系统内部,不需要的接口初始化为NULL。当系统对设备操作时,驱动程序注册的file_operations结构中的函数指针会被调用。
Linux Kernel源码目录中driver/usb/usb_skeleton.c提供了一个基础的USB驱动程序,被称为USB骨架。通过他仅需要修改极少的部分,就可以完成一个USB设备的驱动。我们的USB驱动开发也是从他开始的。
Linux USB驱动程序需要做的第一件事情就是在Linux USB子系统里注册,并提供一些相关信息,例如这个驱动程序支持哪种设备,当被支持的设备从系统插入或拔出时,会有哪些动作。所有这些信息都将传送到USB子系统中。以下代码完成USB摄像头的注册和注销功能:
static struct usb_driver spca5xx_driver = {
owner = THIS_MODULE,
name = "spca5xx",
id_table = device_table,
probe = spca5xx_probe,
disconnect = spca5xx_disconnect
};
static int __init usb_spca5xx_init(void)
{
……
proc_spca50x_create();
……
if (usb_register(&spca5xx_driver) < 0)
return -1;
info("spca5xx driver %s registered", version);
return 0;
}
static void __exit usb_spca5xx_exit(void)
{
……
info("driver spca5xx deregistered");
……
proc_spca50x_destroy();
……
}
module_init(usb_spca5xx_init);
module_exit(usb_spca5xx_exit);
在spca5xx_driver结构中,变量name是一个字符串,他对驱动程序进行描述。probe和disconnect是函数指针。
当插入USB 摄像头时,调用spca5xx_probe( )函数:
static void *spca5xx_probe(struct usb_device *dev,unsigned int ifnum,const struct usb_device_id *id)
nlc202309010116
{ ……
memcpy(spca50x->vdev, &spca50x_template, sizeof(spca50x_template));
……
if (video_register_device(spca50x->vdev, VFL_TYPE_GRABBER, video_nr) <
0) {
err("video_register_device failed");
goto error;
}
……
}
其中spca50x_template定义为视频设备文件操作结构:
static struct video_device spca50x_template = {
name:"SPCA5XX USB Camera",
type:VID_TYPE_CAPTURE,
hardware:VID_HARDWARE_SPCA5XX,
open:spca5xx_open,
close:spca5xx_close,
read:spca5xx_read,
mmap:spca5xx_mmap,
ioctl:spca5xx_ioctl
};
spca5xx_probe( )函数主要用来向视频子系统注册摄像头,因为USB摄像头不仅是一种USB设备,也是一种视频设备,所以在其插入主机后,还必须向Linux的视频子系统注册,即发送一个命令给video_register_device。当摄像头从USB总线拔掉,设备指针会调用spca5xx_disconnect( )函数:
static void spca5xx_disconnect(struct usb_device *dev, void *ptr)
{……
usb_driver_release_interface(&spca5xx_driver,&spca50x->dev->actconfig->interface[spca50x->iface]);
spca50x->dev = NULL;
up(&spca50x->lock);
……} ;
spca5xx_disconnect ( )函数用来清除那些被分配了的所有私有数据,关闭URBS ,并且从视频子系统上注销掉自己。
3.3设备驱动程序中的一些具体问题
3.3.1内存操作
在设备驱动程序中用返回物理地址的kmalloc动态开辟内存而不是返回线性地址的malloc,或者用get_free_pages直接申请页。可以用kfree或free_pages释放内存。
内存映射的I/O口,寄存器或是硬件设备的RAM一般占用F0000000以上的地址空间。在驱动程序中不能直接访问,要通过内核函数vremap获得重新映射以后的地址。用vremap映射后的内存,不用时应用unremap释放,否则会浪费页表。
另外,很多硬件需要一块比较大的连续内存用作DMA传送。这块内存需要一直驻留在内存,不能被交换到文件中去。因为kmalloc最多只能开辟128KB-16B的内存,所以需要通过牺牲小部分系统内存的方法来解决。
3.3.2I/O端口
同硬件打交道离不开I/O端口,老的ISA设备经常是占用实际的I/O端口,在Linux下,操作系统没有屏蔽I/O端口,这意味着,任何驱动程序都可对任意的I/O端口操作,这样就很容易引起混乱,因此每个驱动程序应该能避免误用端口。
内核函数中的check_region(int io_port,int off_set)和request_region(int io_port,int off_set,char *devname)可以保证驱动程序做到这一点。
3.3.3中断处理
同处理I/O端口一样,要使用一个中断,必须先向系统登记。
int request_irq(unsigned int irq,void(*handle)(int,void *,struct pt_regs *),unsigned int long flags,const char *device);
其中,irq:是要申请的中断;handle:中断处理函数指针;flags:SA_INTERRUPT请求一个快速中断,0正常中断;device:设备名。
如果登记成功,返回0,这时在/proc/interrupts文件中可以看请求的中断。
3.3.4其他问题
对硬件操作,时序很重要。如果用C语言写一些低级的硬件操作,gcc往往会对程序进行优化,这样时序就错了。如果用汇编写,gcc同样会对汇编代码进行优化,除非用volatile关键字修饰。最保险的办法是禁止优化。这当然只能对一部分自己编写的代码。如果对所有的代码都不优化,会发现驱动程序根本无法装载。这是因为在编译驱动程序时要用到gcc的一些扩展特性,而这些扩展特性必须在加了优化选项之后才能体现出来。
4驱动加载
首次编译设备驱动程序如有报错,可根据内核下的Config.in.rej文件和Makefile.rej文件所保存的内容进行修改。
4.1解决方案
根据内核下的Config.in.rej文件和Makefile.rej文件所保存的内容进行依次修改Config.in和Makefile文件,具体如下:
将Config.in.rej文件中的
“dep_tristate'USB SPCA5XX Sunplus Vimicro Sonix Cameras'CONFIG_USB_SPCA5XX $CONFIG_USB $CONFIG_VIDEO_DEV”
nlc202309010116
加到Config.in文件中;
将Makefile.rej文件中的
“subdir-$(CONFIG_USB_SPCA5XX) += spca5xx
ifeq ($(CONFIG_USB_SPCA5XX),y)
obj-y += spca5xx/spca5xx.o
endif?”
加到Makefile文件中
4.2内核配置
首先,到/HHARM2410-R3/kernel下,打开Makefile文件,把ARCH?:= $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
CROSS_COMPILE =
改为
ARCH:= arm
CROSS_COMPILE = /opt/host/armv4l/bin/armv4l-unknown-linux-
然后,执行make menuconfig,配置内核,只需选择如下两处:
Multimedia device --->
USB support --->
--- USB Multimedia devices
最后,执行make dep && make modules,因为不需要内核映像文件所以把make zIamge略去。
4.3编译加载模块
[root@localhost ~]# cd spca5xx[root@localhost spca5xx]# make[root@localhost spca5xx]# depmod ./spca5xx.o[root@localhost spca5xx]# modprobe spca5xx
亦可将spca5xx.o拷贝至/lib/modules/''uname -r''/kernel/drivers/usb下,并在此目录下执行insmod spca5xx)
4.4测试
执行lsmod |grep spca5xx及ls -lh /dev/video0,根据打印查看设备驱动模块是否加载情况,如正常加载,显示如下:
[root@localhost spca5xx]# lsmod |grep spca5xx
spca5xx 606256 0 (unused)
videodev 8288 0 [spca5xx]
usbcore 78784 1 [spca5xx usb-storage hid usb-uhci ehci-hcd]
[root@localhost usb]# ls -lh /dev/video0
crw------- 1 root root 81, 0 2003-01-30 /dev/video0
成功加载摄像头驱动后,可通过spcaview查看摄像头采集的视频图片的效果。
5总结
简单论述了Linux2.4下USB摄像头驱动程序的开发以及编译加载,其中包括开发过程中和加载过程中容易遇到的问题和实际的解决方法。
嵌入式软件系统平台 篇7
嵌入式软件开发平台内存管理模块
内存是整个系统中最为重要的组成部分, 内存管理功能高效与否, 直接决定了整个系统运行效率的高低, 嵌入式系统同样不例外。内存管理软件设计, 就是对软件的内存管理模块进行设计, 而该模块的设计, 通过嵌入式软件开发平台就能够实现。
在嵌入式软件中, 内存管理模块会为上层应用以及操作系统支撑平台 (OSS) 的其他模块提供一个统一的内存管理平台, 通过该管理平台, 可以对系统中的内存分块进行管理。而该内存管理平台的具体位置。
在对内存管理软件进行设计的过程中, 通常将管理模块分为核心数据区、进程堆栈数据区以及UC区三个区域, 并基于这三个区域的管理之上, 对整个内存管理软件进行设计。其中, 核心数据区的主要任务是对PCB进行分配和对PCB池空间的越界访问进行保护;在系统中, 所有的PCB都包含在核心数据区中[1]。进程堆栈区的主要作用是储存系统中所有进程的的堆栈和数据, 并对这些堆栈和数据进行分配和保护处理。UB区的主要作用是存放各种大小不同的UB块, 并对这些UB块进行分配、释放以及越界访问保护。
内存管理软件的设计方案
1核心数据区
核心数据区是存放系统PCB的地方, 因此, 在对其进行设计的时候, 只需要在初始化的时候, 先计算出核心数据区的大小, 根据其大小合理分配出一块区域, 然后再在该区域的两端分别加入一个1M的虚拟隔离区, 使其能够返回起始地址。另外, 在对核心数据区进行设计的过程中, 还应该在系统的支撑平台提供一个可供进程调度模块调用的计算核心数据区大小的函数, 并通过该函数获取核心数据区的头指针, 使进程调度模块能够在该区域内存储数据。在对核心数据区进行设计的过程中, 还应该注意, 要通过在进程控制块和全局变量区域的两端加设置虚拟隔离页来对核心数据区进行保护。
2进程堆栈区
进程堆栈区的主要作用是储存系统中的进程堆栈和数据, 所以分为堆栈区和数据区两部分, 其具体设计与核心数据区的设计相类似。在对其进行设计的时候, 需要在初始化的时候, 先计算出堆栈区的大小, 根据其大小合理分配出一块区域, 然后再在该区域的两端分别加入一个虚拟隔离区, 使其能够返回虚拟地址。与核心数据区设计不同的是, 虚拟隔离区要分别设置在堆栈区的栈顶和数据区的两端, 而不是整个堆栈区的两端。
在进程堆栈区的设计过程中, 该区会为操作系统平台提供分配进程堆栈和数据的接口, 用于对进程堆栈和数据的使用情况进行检测和查询。当系统对堆栈进行分配的时候, 会通过在堆栈区中填满“0x A5”来检测堆栈的使用状况;而放置堆栈和数据的时候, 会将其向高端靠齐。
3 UB区
UB区的主要作用是存放各种大小不同的UB块, 并对这些UB块进行分配、释放以及越界访问保护。在UB区中, 存放着数个不同大小的UB池, 不用的UB池中, 又包含着数个不同大小的UB块, 在对这些UB块进行管理的过程中, UB区会根据UB块大小的不同采取不同的分配、释放以及越界访问保护管理措施[2]。
在UB区中, 各UB池存在的主要目的, 使为了对动态申请内存和释放内存进行管理, 确保其准确性和高效性。在UB池中, 各UB块会按照一定的顺序进行排列, 并且, 每个UB块都可以根据系统的应用需要, 对自身进行职能配置, 满足需要。因此, 在对UB区进行设计的时候, 要先根据系统用户的具体需要对UB区进行初始化设置, 根据系统用户的具体需求, 先从系统中分配出一大块UB区, 然后将UB区分成数个不同的UB池, 并将UB池分成数个不同大小的UB块, 按照系统设置的排列顺序对其进行排列。在对UB块进行排列的过程中, 为了保证UB区的安全性, 要对UB头进行统一管理, 同时, 为了确保系统在普通UB块无法申请到时也能够正常运行, 还需要保留部分UB块。
结束语
嵌入式软件在电子设备中应用的越来越广泛, 因此, 为了能够有效解决电子设备越来越复杂而致使嵌入式软件越来越复杂的问题, 降低嵌入式软件的开发成本, 开发商就需要嵌入式软件开发平台内存管理软件的设计入手, 设法解除嵌入式软件无法在不同系统上的移植的限制。
嵌入式软件系统平台 篇8
1、研制测试平台的必要性
研制第三方配置项测试独立的测试平台的必要性主要包含以下几点:
(1) 受设计条件限制, 第三方配置项测试无法注入全面的测试激励, 对软件的性能测试、接口测试、安全性测试、可靠性测试等往往需要进行很多异常测试, 来验证软件对异常处理的正确性, 而实装平台上的软件通常已经固化, 无法模拟异常测试输入, 同时对相关的测试输出缺乏直观有效的观测对比手段, 研制独立的测试平台有利于测试的全面性;
(2) 某些应用于特殊场合的嵌入式系统 (如航空航天设备、国防装备等) , 研制任务重、研制周期短, 其软件开发, 系统联试, 第三方配置项测试等往往需要并行进行, 而供各方使用的实装平台往往只有一套, 无法同时满足各方的要求, 研制独立的测试平台有利于第三方测试的有效进行;
(3) 由于某些嵌入式系统的保密性要求, 其试验往往在条件差, 环境恶劣的场所进行, 且试验繁忙, 测试工作只能见缝插针进行, 不利于测试人员长期现场工作, 以及测试的全面充分。
2、接口转换计算机软件测试平台概述
接口转换计算机软件运行在接口转换及时统插件的接口转换计算机中, 在VxWorks实时操作系统支持下运行, 结合硬件电路实现嵌入式系统中各设备的接口适配和自动信息交换。
接口转换计算机软件接口配置如图1所示:
(1) 网络接口1:内部接口, 接口转换及时统插件通过嵌入式系统内部控制总线与系统内部各设备进行网络通信; (2) 网络接口2:外部接口, 接口转换及时统插件通过双冗余网络接口与嵌入式系统外部各设备进行网络通信; (3) RS-422串行通讯接口1:外部接口, 接口转换及时统插件通过串口与串口通讯设备进行通讯, 完成嵌入式系统与串口通讯设备之间的信息交换; (4) RS-422串行通讯接口2:外部接口, 接口转换及时统插件通过串口接收时统设备的准秒脉冲。
针对接口转换计算机软件第三方测评需要, 建设接口转换计算机软件测试平台, 对被测软件的功能、性能、接口、边界、强度、安全性等方面开展配置项测试。测试平台的研制包括被测件运行环境、外围通讯环境、测试管理环境和辅助环境四个主要组成部分的建设。
3、平台主要功能和技术特点
3.1 主要功能
测试平台的建立主要功能是模拟以下平台环境: (1) 建设接口转换及时统插件与武器系统内部各设备的内部网络通信环境; (2) 建设接口转换及时统插件与系统外部设备的外部网络通信环境; (3) 建设接口转换计算机与串口通讯设备的串口通讯环境; (4) 建设接口转换计算机与时统设备的串口通讯环境; (5) 实现UDP网络协议下的单播、组播、广播通讯; (6) 建设接口、边界、安全性异常状态的测试激励环境; (7) 建设可录取、监听、解析、回放的测试输出观测环境; (8) 关键输入输出单位的人机交互建设。
3.2 技术特点
接口转换计算机软件第三方配置项测试平台建设除了能够实现与实装设备上一致的所有网络通讯、串口通讯以及正常的功能、性能、接口等测试以外, 还包括以下几个技术特点:
(1) 开发外围模拟器, 使各模拟器功能更加全面, 可以模拟实装设备上无法实现的接口、边界、安全性等异常状态的测试激励, 来验证软件对异常处理的正确性;
(2) 通过模拟器的开发实现关键输入输出单位的人机交互、各状态参数的设置与观测, 通过安装EtherPeek网络分析软件, 对被测件交互报文进行实时收录与解析, 提供测试数据的观察与记录, 实现一个友好的测试输入、输出观测环境;
(3) 平台留有可扩展接口, 可在相应基础上进一步扩展, 增加外围模拟器组件和接口关系, 构建后续相关系列测试环境, 实现良好的可扩展性。
4、平台结构及组成
测试平台根据接口转换计算机软件的运行环境和外围接口, 实现对测试所需信号信息的激励、采集, 完成数据通讯。平台示意见下图2, 组成主要包括:被测件运行环境、外围通讯设备、测试管理环境、辅助环境。
接口转换计算机软件所运行的硬件环境包括接口转换计算机和时统板组成。接口转换计算机主要由一块PC104组成, 必须满足普军级要求, 同时满足一定的硬件配置要求, 包括CPU主频、内存容量、存储盘容量等以及包含所需要的相应接口。接口转换及时统板主要包括CPLD集成电路、时统产生芯片、译码电路以及插座等相关硬件组成。
根据接口转换计算机软件需求说明、接口协议等要求, 确定外围各模拟器的通讯需求和功能, 建立被测件外围接口通讯环境, 实现了: (1) 被测件外围通讯接口; (2) 接口、边界、安全性异常状态的设置与观测; (3) 关键输入输出单位的人机交互。
外围各模拟器的硬件环境主要是满足一定配置要求且性能稳定的工控机, 相应的硬件环境要求主要包括CPU主频、内存容量、硬盘容量等配置要求, 以及包含所需要的相应网络接口和串口等接口。x'�
各模拟器的软件环境为Visual Studio 2008 C++, 组装后实现模拟各外围设备与接口转换计算机软件的信息交互。
5、平台校验及测试
5.1 平台硬件
平台硬件校验主要验证被测件运行环境和模拟器运行环境是否符合平台硬件环境及外围各模拟器的硬件环境指标。
经校验接口转换计算机软件测试平台的被测件运行环境和模拟器运行环境均符合相应硬件环境指标。
平台软件的验证主要比对相同的测试
5.2 平台软件
用例在时装环境和在第三方测试平台上的运行情况, 查看两者的执行结果是否一致或在偏差范围内。接口转换计算机软件测试平台的验证情况如下:
(1) 选取部分正常功能测试用例分别在时装环境和接口转换计算机软件测试平台上执行, 正常功能在测试平台上的执行正确, 执行结果与实装环境下执行情况一致;
(2) 选取部分性能测试用例分别在时装环境和接口转换计算机软件测试平台上执行, 被测件在测试平台上的运行性能满足指标要求;
(3) 选取部分原来在实装环境下无法执行的异常接口和边界等测试用例在测试平台环境上执行, 经测试, 测试平台环境上可以完成原测试无法执行的异常接口和边界测试等。
6、结语
针对接口转换计算机软件的测试需求, 在借鉴通用测试工具技术的基础上实现了一个测试平台, 为测试人员提供了一个良好的测试环境, 平台具有很好的针对性和适用性。在使用接口转换计算机软件测试平台对接口转换计算机软件配置项进行功能、性能等测试时, 系统运行稳定, 不仅完成了原来在实装环境上的全套测试用例, 而且能够执行在实装环境上无法进行的异常测试用例, 为软件的可靠性提供了保障。
摘要:嵌入式系统的专用程度和可靠性要求高, 常用的测试方法不能对其进行有效和完善的测试。本文分析了嵌入式系统接口转换计算机软件测试要求, 研制了第三方配置项测试独立的测试平台, 包括测试平台的主要功能、技术特点、平台结构和组成、以及平台的校验测试, 并在该平台上完成了接口转换计算机软件的第三方配置项测试实验, 验证该平台具有很好的针对性和适用性。
关键词:接口转换计算机软件,软件测试,嵌入式系统
参考文献
[1]吕宝林, 王晓东等.航天遥感相机TDI CCD成像系统逻辑软件测试平台的设计.硅谷, 2010, (02)
[2]池云.嵌入式软件测试研究.中国科技信息, 2009, (02) .
嵌入式软件系统平台 篇9
1 嵌入式软件设计方法概述
一般来说,嵌入式软件的开发环境需要在交叉编译的条件下完成,于此同时在开发过程中还需要利用PC机与目标机之间的通信管道。此外,代码优化器、连接器、代码编辑器等都是嵌入式软件开发环境中的必备品。
目前,在我国国内嵌入式系统产品已经逐渐发展成为了较大的产业群,但是系统的设计方法相对还是比较滞后。具体表现在,产品相同,但软、硬件的使用却不同,这使得软件维护以及软件设计成本都有所增加。而嵌入式软件的设计在可预测性、上市时间、服务质量等方面都必须满足用户的需求,并且要进行非常严格的资源限制,例如,CORBA系统,EJB系统都比较复杂并且较为庞大,会带给平台较重的负担。以平台视野设计嵌入式软件时,其主要的设计思想就是复用,并将模块化、复用、分层、接口规范等方法作为基本设计方法。
2 平台视野下嵌入式软件系统的层次结构
嵌入式软件系统是以系统的可配置性、移植性以及重用性作为目标的,这些目标可以有效的根据其性能、功能的需求对平台软件功能进行裁剪。其特点决定了其开发没有统一的标准和规范,这带给嵌入式软件非常巨大的困难。以平台视野作为基础是一种非常好的设计理念,在平台视野下设计嵌入式软件一般可以将软件划分成六个不同层次进行设计,分别是硬件抽象层HAL、Boot Loader层、ROM Monitor交叉监控调试层、硬件驱动层、嵌入式实时操作系统层以及中间件和应用软件层,每个层次都将发挥自身的功能并且为上一个层次提供支持,这种设计原理不仅提高了软件的开发效率,而且软件自身的重用性和移植性也得以有效的发挥。如图2所示 :
3 以 T-Kernel 平台为基础嵌入式软件设计与实现
3.1 平台简介
以T-Kernel平台为基 础嵌入式 软件系统硬件平台是由稳定性能极强的手持扫描 设备PDT构成的,一般情况下PDT部件主要由以太口、28键键盘、SC4510CPU、条码扫描设备以及LED屏等设备构成。其CPU的基础应用系统性价比非常高,其核心是以太网RISC微控制器,这种控制器是16/32位。如果系统对功耗有非常高的要求或者对价位有所控制,使用这种控制器是最为合适的。除此之外,这种处理器还拥有方便调试、方便开发、使用便携、适用功耗较高、支持多种操作系统等特点。
3.2 以 T-Kernel 为基础的软件系统结构
以T-Kernel平台为基础对嵌入式软件进行设计时,将以层次化嵌入式软件设计和软件层次结构的设计方法得到实现。此软件系统是由上述嵌入式系统的六个层次构成的,其虽然声明、抽象并且定义了ROM Monitor层和Boot Loader层的有关信息,但并未对HAL层进行单独的定义。软件系统的硬件可以通过Bootloader层得到初始化,并且此层能够加载引导OS,为OS运行的提供必要环境,同时能将陷阱、异常、中断情况都予以解决。软件中操作寄存器和储存器都是由H-Monitor层完成的,其目标就是通过反汇编、数据加载、I/O口操作、跟踪执行等步骤完成具体监控T-Kernel/OS,T-Kernel/SM,T-Kernel/DS三个不同部分组成,其功能非常广泛,不仅能对OS基本功能进行实时控制,而且能进行任务管理和资源分配,为整个系统供应程序驱动接口,并且对总体系统进行管理并且调试。
3.3 Boot Loader 与中断处理程序的实现
第一,Boot Loader的设计与实现,一般情况下由S3C4510B作为开发板CPU的主要核心,在复位或者加电系统时第一条指令可以通过地址0x0获取,与此同时能够以CPU作为基础,对开发板进行基本构建,同时可以在预先安排的地址中映射FLASH。所以,系统加电 后FLASH将首先执行CPU发出的Boot Loader程序。S3C4510B的主要功能是将系统中特殊功能寄存器、片外存储器、片内存储器等进行统一编址,并通过64MB的地址空间映射出来,这样更加方便管理,用户只需通过设置尾指针和基指针就能达到映射存储器的目的。
第二,实现Boot Loader层功能的 流程,首先设置入口指针,在整套程序启动之前,要先将指针进行定义,对于这一整套程序而言入口指针仅有一个,而选择入口点时一般将程序编译链接中向量链接出现异常的部分,比如 :0x0地址处作为整个程序的入口点。其次,设置异常中断向量表,在设置向量表时ARM处于中断情况,此时必须将向量表保持在0至8×4字节的空间内,在此区间内非中断向量为,数据存取错误、软件中断、IRQ、复位、FIQ、数据存取错误、未定义指令错误等。最后,初始化存储系统,此系统能够根据存储器的情况有针对的初始化寄存器,然后将某部分存储器的基指针设置为前一个存储器的尾指针地址,当控制并且设定寄存器时,需要注意即使各组之间出现禁用情况,相连的存储器空间地址也不能出现重叠的现象。一般情况下将基指针向左移动16位,也就是每组的起始物理地址,而将尾指针向左移动16位 - 1其数据就为每组末尾的物理地址。
4 结束语
随着社会的发展,嵌入式软件的设计已经成为了时代的需求,嵌入式系统不仅能够满足软件、硬件平台的多样化,而且还要实现应用的多样化,这都表明了嵌入式系统在移植时需要遵循众多要求。
摘要:文章针对平台视野下嵌入式软件设计的方法进行了详细的分析,提出了层次化进行嵌入式软件设计的方案,并对开发嵌入式软件时进行的分层次移植和拓展情况做出了有针对性的设置。
嵌入式软件系统平台 篇10
关键词:嵌入式,无线传感器,无线监测,GPRS
1 引言
目前国内大部分地区的监控设备采用固定电话等有线通讯方式, 有的甚至无任何远距离通信功能, 采用人工方式进行监理, 不能远距离传输数据, 传输速率低下[1]。文献[2]提出一种采用单片机+GPRS+Zigbee的无线监控系统, 由于单片机速度、性能等条件的制约, 系统后期升级受到一定限制。本文提出一种基于嵌入式平台将无线传感器网络和移动通信网络有机结合起来的工业监测分布式系统。系统采用两级组网方式, 简化了仪器仪表设备之间的物理线路连接, 不仅简化了系统复杂度, 还可以降低成本。解决了数据采集系统和控制设备之间的数据传输问题。 (1)
2 总体设计方案
本系统结构框图如图1所示, Zigbee无线传感器网络采用星型拓扑结构设计, 即由一个Zigbee协调者 (Coordinator, coord) 和多个Zigbee终端 (ReducedFunctionDevice, rfd) 组成。各个Zigbeerfd连接各个设备, S3C 2410嵌入式处理器通过串口分别连接Zigbeecoord和GPRS模块, 基于linux2.4.18操作系统平台完成分布式无线远程设备监测功能。
远程用户可以通过两种方式监测各设备数据, 第一种被动形式, Zigbeerfd实时采集设备监测信息, 当监测信息超出了用户设定的范围, 通过无线传感器网络发送信息给Zigbeecoord, Zigbeecoord通过串口将信息转发给嵌入式平台, 嵌入式平台立刻通过AT命令配置GPRS模块, 将收到的信息以短信息的形式发送给远端用户;第二种主动形式, 用户可以通过发送特定短信息的形式给嵌入式平台, 例如“?设备号”, 嵌入式平台收到短信后给Zigbeecoord一个中断信号, 利用Zigbeecoord通过查询的形式读取各个Zigbeerfd设备数据, 并以短信息的形式发送给用户, 使用户随时随地了解工控现场的状况。下面从硬件组成和软件实现两部分详细讲解设计过程。
3 硬件组成
3.1 嵌入式平台
嵌入式平台利用S3C 2410微处理器做为整个系统的控制中心, 扩展了64M FLASH、64M SDRAM。S3C 2410是一款基于ARM 920T内核的高性能、低功耗、低价格的微处理器。内部采用高级微控制总线 (AMBA) 体系结构, 主频高达203MHz, 集成三通道UART[3], 其中两个串口, 分别连接一个Zigbeecoord和GPRS模块。
3.2 Zigbee模块
Zigbee模块采用TI公司推出的一款符合IEEE 802.15.4规范的SOC射频收发器———CC 2430。该芯片在内置80c51核的基础上整合了ZigBee射频 (RF) 前端和内存。具有128KB可编程闪存和8KB的RAM, 还包含模拟数字转换器 (ADC) 、AES128协同处理器以及21个可编程I/O引脚, 其中, P0、P1口是完全的8位口, P2口只有五个可使用的位[4]。通过软件设定一组SFR寄存器的位和字节, 可使这些引脚作为通常的I/O口或作为连接ADC、计时器或USART部件的外围设备I/O口使用。因此, 需要很少的外围部件配合就能实现信号的收发功能。大大降低了硬件开发周期和成本, 最大程度地降低了系统开发风险。Zigbeecoord通过DB 9公口插座连接S3C 2410嵌入式平台的串口1。
3.3 GPRS模块
GPRS (通用分组无线业务) 支持TCP/IP、PPP协议和透明数据传输, 理论带宽171.2kbps, 实时在线, 按数据流量计费。本系统GPRS的模块采用的是WAVECOM公司的GSM/GPRS双频SIM 300v7.03, 内嵌TCP/IP协议栈。通过异步通信接口与S3C 2410嵌入式平台的串口2相连, 使用AT命令实现GPRS通信。
4 软件设计
4.1 S3C 2410嵌入式平台控制设计
由于本系统是在嵌入式操作系统平台上开发, 支持多线程编程。根据需要, 主程序设计建立了四个线程, 分别是串口发送、接收线程, 短信发送、接收线程, 它们各自单独运行, 分别处理自己的信息, 各线程间通过全局变量完成相互通讯。
多线程在并发执行时可以按系统的实际情况让各线程间互斥或同步。本系统中用互斥锁来实现互斥, 用信号量来实现同步。
信号量本质上是一个非负的整数计数器, 它被用来控制对公共资源的访问。当公共资源增加时, 调用函数sem post () 增加信号量。只有当信号量值大于0时, 才能使用公共资源, 使用后, 函数sem wait () 减少信号量。
由于Linux引入了设备文件的概念, 读写串口数据可以像读写普通文件一样进行操作。
4.2 GPRS短信息收发设计
前面提到本系统通过两种方式监测各设备数据, 第一种被动形式比较简单, 由于篇幅有限, 不再描述, 本次主要讲授第二种, 既远程用户通过短信查询的形式实时掌握某联网设备状态信息。首先, 串口2的初始化、GPRS模块的初始化, 然后, 通过gprs read () 函数判断是否有短信息, 如有短消息则调用gprs read msg () 函数激活读线程, 读SIM卡中第1条信息赋值给全局变量Sd, 为防止溢出, 立刻清除串口缓冲区, 删除SIM卡中第1条信息。最后, 根据Sd的值判断要查询的设备x当前信息, 通过Zigbee网络查询设备x当前信息, 通过gprs resply msg () 反馈函数利用AT命令将设备x当前信息发送给某固定手机。主要流程如图2所示。
4.3 Zigbee网络收发设计
本系统的Zigbeecoord建立网络并对网络进行监控, 接收从Zigbeerfd传入的信息并通过串口传给S3C 2410嵌入式平台;接收从串口传入的信息并执行相应的处理, 即发送信息控制Zigbeerfd。
本系统的Zigbeerfd与设备相连采集设备当前状态和数据信息, 控制设备的状态;申请加入网络并及时将收集到的信息发送给Zigbeecoord;接收从Zigbeecoord传入的控制信息并做相应的处理。
4.3.1 Zigbeecoord节点设计
首先, Zigbeecoord节点扫描信道, 寻找网络中的一个空闲信道来建立新的网络, 如找到合适的信道, Zigbeecoord节点建立一个新网络, 为新网络选择一个唯一的PAN标识符, 并为自己选择一个16bit的网络地址, 16bit的网络地址在整个网络中是唯一的, 也就是802.15.4中的MAC短地址[3]。当有Zigbeerfd节点加入网络时, Zigbeecoord节点给它分配一个在该网络中唯一的网络地址, 并接收来自Zigbeerfd节点的第一帧 (节点代号) 保存在网络表里。以中断的形式接收来自串口的控制命令和Zigbeerfd节点的信息帧;将收到的串口命令以帧为单位存入串口命令缓冲区ttyc in;将来自Zigbeerfd节点的信息帧存入无线接收缓冲区rfd in。查询串口命令缓冲区ttyc in和无线接收缓冲区rfd in;若串口命令缓冲区ttyc in有控制命令, 解析并通过无线方式传送给Zigbeerfd;若缓冲区rfd in有Zigbee rfd节点的信息帧, 通过串口传送给嵌入式平台。
4.3.2 Zigbeerfd节点设计
首先Zigbeerfd节点进行初始化、加入网络、获得Zigbeecoord节点为其分配的网络地址、发送本节点的第一帧节点信息帧 (节点代号) 给Zigbeecoord节点。每隔30s查询本节点中各传感器的状况, 将此时状况信息与用户设定的范围比较, 当采集的数据超出了用户设定的范围, 将此数据存入无线发送缓冲区send to Coord, Zigbeerfd节点产生发送中断, 发送数据给Zigbeecoord, 此时中断优先级最高;若有来自Zigbeecoord节点的查询命令, 则将命令存入无线接收缓冲区Coord in后, 将查询的结果存入无线发送缓冲区send to Coord, 发送给Zigbeecoord节点。
5 实验结果与分析
我们在本系统设计过程中构造了10个Zigbee节点的小型网络。在Zigbee模块之间可视距、网络不繁忙、网络质量较好且发送数据量小于128Bytes时, 通过嵌入式平台向用户发送异常短信时, 用户短信接收正常, 但用户向嵌入式平台发送查询短信, 自动回复短信有较短暂延迟, 但当短时间内多次向嵌入式平台发送查询短信, 会引起GPRS数据包丢失或数据溢出。这主要是因为选用的SIM 300模块缓冲区较小造成, 需要适当控制网络数据流量。
本系统与传统技术相比, 无需布线, 大大缩短建设工期, 并且速度快, 系统稳定性、可靠性更高, 便于后期软件升级, 可以广泛应用于工业自动监控等监控点比较分散的领域。
参考文献
[1]佘青山, 苏宏业, 董利达.基于CDMA/GPRS/RADIO技术的无线环境监控终端设计[J].化工自动化及仪表, 2006, 33 (3) :39-43.
[2]朱运利.基于GPRS和无线传感器网络的现场监控系统[J].仪表技术与传感器, 2008, (12) :46-47, 71.
[3]Samsung Semiconductor.S3C2410A 32-Bit RISC Microproces-sor[M].Samsung, 2004
嵌入式软件系统平台 篇11
关键词: 温度传感器 嵌入式系统 测试系统
1.引言
温度传感器是一类被广泛应用且被最先开发的传感器。但大多数温度传感器没有对数字信号分析及处理,达到自动化控制的效果。因此,本设计基于这种情况,利用相关软硬件提高了温度传感器的实用价值。
2.总体设计
2.1系统功能模块设计
从需求分析可以看出,该系统的功能模块应包括以下几个部分:实时温度采集与更新模块、自定义温度警报模块、超温报警模块。DS18B20采用了单总线方式的传输协议,即只需要一根管脚就可以对输入输出进行控制。此种单总线传输协议在实际应用中有很大优势,使用此种协议的芯片不需要任何外围电路,对硬件设计时的复杂性大大简化了许多。
2.2系统软件设计方案
2.2.1嵌入式操作系统选择
在本设计当中,硬件平台完全支持Linux、开发便捷迅速、资料众多、内核小、效率高等优点决定了在本设计当中的稳定性等优点,均使得本设计采用了Linux作为开发的操作系统。
2.2.2应用层程序语言选择
应用程序使用C语言进行开发,使用Linux标准C语言接口,与驱动层进行交互。
3.硬件设计
3.1整体硬件电路设计
根据硬件设计方案,在开发中用到的硬件有Tiny6410开发板、DS18B20数字温度传感器、USB转串口数据线。
3.2硬件连接方式
将USB转串口线一端接在Tiny6410的串口1上,另一端连接PC机USB接口。两个DS18B20传感器的VCC与GND管脚并联起来,与Tiny6410开放的电源与地线接口相连,两个传感器的数据接口一起连接在S3C6410的GPIO的管脚上。
4.软件设计
4.1嵌入式系统架构
本系统在软件方面主要由Linux内核裁剪和移植、底层驱动程序开发、上层应用程序开发三部分组成。其中,Linux内核的运行需要有引导程序BootLoader、内核的配置裁剪与编译、根文件系统的编译三个部分支持。
4.2驱动程序设计
在本设计当中,对DS18B20数字温度传感器根据其数据手册上的传输协议及参数进行驱动编写,首先要明确其控制参数及流程。本系统中对传感器的操作流程如下:
DS18B20写操作:
(1)置数据线高电平;
(2)延时2微秒;
(3)置数据线低电平;
(4)延时15微秒;
(5)按从低位到高位的顺序发送字节(一次只发送一位);
(6)延时60微秒;
(7)数据线拉到高电平;
(8)循环上述步骤使9位传送完毕;
(9)数据线拉高电平。
DS18B20读操作:
(1)置数据线高电平;
(2)延时2微秒;
(3)数据线拉低电平;
(4)延时2微秒;
(5)数据线拉高电平;
(6)延时8微秒;
(7)读数据线状态进行数据处理;
(8)延时50微秒。
5.结语
本设计在温度的测量精度上较为准确,系统能快速反应并准确显示改变后的温度。在长时间运行下测量结果依然准确,在实际生产生活的温度测量工作中具有较大实用价值。同时系统中仍存在一些不足有待弥补。
参考文献:
[1]徐亦朱.DS18B20中文手册[M].安徽:安徽大学出版社,2013.
[2]沙占友.智能化集成温度传感器原理与应用[M].机械工业出版社,2002-7-1.
[3]罗苑棠.嵌入式Linux驱动程序和系统开发实例精讲[M].电子工业出版社,2009.
[4]Tiny6410刷机指南[M].广州友善之臂计算机科技有限公司,2013-05-14.
嵌入式软件系统平台 篇12
为了推动移动数字嵌入式系统产业的发展,支持国内外高等院校、研究机构、产品厂商的嵌入式系统的技术研发和技术学习,深圳市爱国者嵌入式系统科技有限公司于2009年在此开辟技术园地,为期一年。正式推出R&D aigo EMD系列移动多媒体/移动数字电视/无线网络WiFi/全球定位导航嵌入式系统开发与学习平台,欢迎交流。同时针对高等院校还可提供S D K配套资料的讲解、学习与培训,安排工程师协助老师按照课程要求设计实验指导书,针对具体要求提供部分硬件设计更改和实验指导书按要求设计,并且可与高校建立联合教学实验室,共同推动嵌入式系统学习与科研。
E M D系列S D K功能简介
·用于嵌入式移动多媒体开发与学习
·用于GPS开发与学习
·用于嵌入式移动数字电视开发与学习
·用于无线网络WIFI/Bluetooth开发与学习
·用于嵌入式linux内核开发与学习
·用于嵌入式linux应用软件 (产品界面) 开发与学习
应用范围
不仅可以用于高校教学和技术培训,而且可以用以开发医疗仪器、消费电子、工业控制、军事应用、汽车电子、多媒体等嵌入式终端设备的技术开发。
E M D系列S D K产品简介
1.R&D aigo EMD1001 ARM9/Linux/Multilmedia/WALN SDK
2.R&D aigo EMD1002 ARM11/Linux/Multilmedia SDK
3.R&D aigo EMD1003 ARM11/Linux/GPS SDK
4.R&D aigo EMD1004 ARM11/Linux/DTV SDK
5.R&D aigo EMD1005 ARM11/Linux/WIFI SDK
SDK平台套件的技术资源提供
1.Linux内核源代码
2.平台各个硬件驱动源代码
3.硬件驱动设计学习指导书及驱动测试程序源代码
4.基于EmTK的linux UI界面开发环境
5.丰富的UI开发例程及实验指导书
6.实验教学培训
联系电话:0755-26037899
【嵌入式软件系统平台】推荐阅读:
基于嵌入式平台的网络化OTDR模拟训练系统设计论文08-19
嵌入式仿真平台12-17
公共嵌入式平台01-11
ARM嵌入式平台06-04
嵌入式Linux平台08-12
嵌入式系统软件09-14
嵌入式软件系统07-19
嵌入式操作软件06-02
嵌入式导航系统06-03
嵌入式系统技术06-19