中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 嵌入系统 >>电子行业新闻正文

嵌入式系统硬件抽象层的建立及软件的可移植性设计

时间:2007/6/5 9:16:00  作者:  来源:ic72  浏览人数:1266
 
 

      摘 要:在阐述嵌入式系统软件设计方法的基础上,介绍嵌入式系统底层软件可移值性设计和硬件抽象层的建立;举例说明利用此思想的嵌入式软件的设计及测试过程。

      关键词:设备驱动程序 嵌入式系统 软件设计 可移植性

      1 嵌入式系统设计

      由于嵌入式系统有着体积小、功能集中、可靠性高等优点,已被广泛地应用到日常生活的各个方面,如移动通信、工业控制、医疗器械,家用电器等。如何缩短嵌入式系统的开发周期,降低开发成本,以及提高产品的可靠性已成为嵌入式行业普遍关注的问题。在嵌入式系统设计中,通常采用以下设计方法。

      (1)瀑布模式开发过程

      瀑布模式开发过程工作模式简单,任务的划分协调及人员安排、物质材料的分配管理都比较容易。开发过程为从硬件到软件的流水线式进行。此类开发方式有以下特点:

      ◇ 小系统,如利用8051控制的低速率信号采集等;

      ◇ 开发所需人力、物力资源有限,一般1个或几个人即可完成;

      ◇ 要求开发人员对软、硬件设计和制作都比较熟悉;

      ◇ 对开发周期要求不高,此类开发过程无疑会使用最长的开发周期;

      ◇ 在开发过程中,任一环节的阻塞都会影响其它环节的开发。

      (2)V模式开发过程

      V模式开发过程为一种并行的工作方式,任务的划分协调及人员安排、物质材料的分配都必须考虑不同工作内容。

      开发过程为硬件和软件同时进行,最后联合调试。此类开发方式有以下特点:

      ◇ 大系统,如利用PowerPC等处理器设计的网络交换/访问设备;

      ◇ 开发人力、物力资源比较丰富;

      ◇ 开发人员分工比较明确,软件开发者可不需了解太多的硬件信息,而硬件开发人员对软件也可不做太多了解;

      ◇ 有利于缩短开发周期;

      ◇ 在开发过程中,软、硬件设计独立进行。 硬件开发的阻塞不会影响软件开发过程,同样,软件开发的阻塞不会影响硬件的开发过程。

      但在V模式开发过程中,仍存在以下问题:

      ◇ 设备驱动程序的可移值性差,与硬件和操作系统均有密切相关性;

      ◇ 软件测试需要等硬件完成以后才能进行;

      ◇ 对于每个设备驱动程序设计人员都需有软件和硬件的知识背景;

      ◇ 在测试过程中,很难判断错误是由硬件还是由软件造成的。

      为了克服V模式开发过程中的上述问题,本文将V模式开发过程稍作改进,增加了硬件抽象层,对系统软硬件起到隔离作用,从而提高系统软件的可移值性及有效地利用人力资源、缩短开发周期和提高产品的可靠性。

      2 基于硬件抽象层的系统软件设计特性

      (1)包含硬件抽象层的系统结构

      硬件抽象层完全把系统软件和硬件部分隔离开来,这样就使得系统的设备驱动程序与硬件设备无关,从而大大提高了系统的可移植性。从软硬件测试角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件的测试工作的并行进行成为可能。在抽象层的定义方面,需要规定统一的软硬件接口标准,其设计工作需要基于系统需求来做,代码工作可由对硬件比较熟悉的人员来完成。抽象层一般应包含相关硬件的初始化、数据的输入/输出操作、硬件设备的配置操作等功能。

      (2)包含硬件抽象层的系统开发过程

      在包含硬件抽象层V模式开发过程中,在系统需求分析并定义了软硬件各自的设计要求以后,就需要花费一定的时间来定义硬件抽象层的接口,以确保硬件设计和测试与软件设计和测试工作能够在相同的接口上进行,从而有利于最终的软硬件集成测试。

      在基于硬件抽象层的V模式开发过程,软硬件的设计和调试具有无关性,并可完全地并行进行。硬件的错误不会影响到系统软件的调试,同样软件设计的错误也不会影响硬件的调试工作,这样就可大大缩短系统的测试周期和提高系统的可靠性。

      (3)硬件抽象层的特点

      硬件抽象层接口的定义和代码设计应具有以下特点:

      ◇ 硬件抽象层具有与硬件密切相关性;

      ◇ 硬件抽象层具有与操作系统无关性;

      ◇ 接口定义的功能应包含硬件或系统所需硬件支持的所有功能;

      ◇ 接口定义简单明了,太多接口函数会增加软件模拟的复杂性;

      ◇ 具有可测性的接口设计有利于系统的软硬件测试和集成。

      3 硬件抽象层的设计示例

      硬件抽象层接口的设计一般应包含以下几个步:

      ◇ 分析接口的数据传输特性(双向/单向数据传输,字节型/数据帧型传输模式);

      ◇ 分析接口配置属性;

      ◇ 定义接口所需的相关函数。

      下面给出以字符为单位进行数据传输的UART接口硬件抽象层的接口定义内容:

      ◇ 设备初始化函数

      BOOL InitDevice(Device_Register *regs, Device_Attribute *attr)

      ① 第一个参数为指向设备寄存器结构的指针,用来索引设备的相关寄存器。

      ② 第二个参数为一个设备属性的结构,用于描述设备初始化设置的属性(波特率、校验位等等)。

      ③ 函数返回一个布尔类型,用于描述初始化过程的正确性。

      ◇ 设备字符输入

      BOOL ReadDevice(Device_Register *regs, unsigned char *c)

      ① 第一个参数为指向设备寄存器结构的指针,用来索引设备的相关寄存器。

      ② 第二个参数为指向字符的地址空间,用于保存设备输入的字符。

      ③ 函数返回一个布尔类型,用于描述设备字符输入的正确性。

      ◇ 设备字符输出

      BOOL WriteDevice(Device_Register *regs, unsigned char c)

      ① 第一个参数为指向设备寄存器结构的指针,用来索引设备的相关寄存器。

      ② 第二个参数为设备所要输出的字符。

      ③ 函数返回一个布尔类型,用于描述设备字符输出的正确性。

      ◇ 设备属性设置

      BOOL SetDevice(Device_Register *regs, Device_Attribute *attr)

      ① 第一个参数为指向设备寄存器结构的指针,用来索引设备的相关寄存器。

      ② 第二个参数为一个设备属性的结构,用于描述设备初始化设置的属性(波特率、校验位等等)。

      ③ 函数返回一个布尔类型,用于描述设备属性设置的正确性。

      4 结 论

      以上所述的是作者在多年嵌入式系统开发中所总结出的开发流程,并在实践应用中起到了很好的效果。相信在一个较为复杂的嵌入式系统开发过程中,很好地利用上述开发流程,将会有利于提高系统的可移植性、减少产品的开发和测试周期,并能很好地保证产品的可靠性。

 
【相关文章】
·Xilinx推出新型MICROBLAZE嵌入式套件
·在嵌入式系统中用FPGA进行开发的几个发展方向
·基于ET系列的嵌入式多媒体导游系统的设计
·嵌入式移动数据库中的移动Agent问题探讨
·嵌入式系统硬件抽象层的建立及软件的可移植性设计
·嵌入式图像采集传输系统的多进程控制
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9