首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» 嵌入式系统硬件抽象层的建立及软件的可移植性设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
嵌入式系统硬件抽象层的建立及软件的可移植性设计
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2015-11-27 11:03
|
只看该作者
嵌入式系统硬件抽象层的建立及软件的可移植性设计
嵌入式
,
软件
,
硬件
摘要:在阐述
嵌入式
系统软件设计方法的基础上,介绍
嵌入式
系统底层软件可移值性设计和硬件抽象层的建立;举例说明利用此思想的
嵌入式
软件的设计及测试过程。 关键词:设备驱动程序
嵌入式
系统 软件设计 可移植性 1
嵌入式
系统设计 由于
嵌入式
系统有着体积小、功能集中、可靠性高等优点,已被广泛地应用到日常生活的各个方面,如移动通信、工业控制、医疗器械,家用电器等。如何缩短
嵌入式
系统的开发周期,降低开发成本,以及提高产品的可靠性已成为
嵌入式
行业普遍关注的问题。在
嵌入式
系统设计中,通常采用以下设计方法。 (1)瀑布模式开发过程 瀑布模式开发过程工作模式简单,任务的划分协调及人员安排、物质材料的分配管理都比较容易。如图1所示,开发过程为从硬件到软件的流水线式进行。此类开发方式有以下特点: ◇ 小系统,如利用8051控制的低速率信号采集等;
◇ 开发所需人力、物力资源有限,一般1个或几个人即可完成; ◇ 要求开发人员对软、硬件设计和制作都比较熟悉; ◇ 对开发周期要求不高,此类开发过程无疑会使用最长的开发周期; ◇ 在开发过程中,任一环节的阻塞都会影响其它环节的开发。 (2)V模式开发过程 V模式开发过程为一种并行的工作方式,任务的划分协调及人员安排、物质材料的分配都必须考虑不同工作内容,如图2 所示。 开发过程为硬件和软件同时进行,最后联合调试。此类开发方式有以下特点: ◇ 大系统,如利用PowerPC等处理器设计的网络交换/访问设备; ◇ 开发人力、物力资源比较丰富; ◇ 开发人员分工比较明确,软件开发者可不需了解太多的硬件信息,而硬件开发人员对软件也可不做太多了解; ◇ 有利于缩短开发周期; ◇ 在开发过程中,软、硬件设计独立进行。 硬件开发的阻塞不会影响软件开发过程,同样,软件开发的阻塞不会影响硬件的开发过程。 但在V模式开发过程中,仍存在以下问题:
◇ 设备驱动程序的可移值性差,与硬件和操作系统均有密切相关性; ◇ 软件测试需要等硬件完成以后才能进行; ◇ 对于每个设备驱动程序设计人员都需有软件和硬件的知识背景; ◇ 在测试过程中,很难判断错误是由硬件还是由软件造成的。 为了克服V模式开发过程中的上述问题,本文将V模式开发过程稍作改进,增加了硬件抽象层,对系统软硬件起到隔离作用,从而提高系统软件的可移值性及有效地利用人力资源、缩短开发周期和提高产品的可靠性。 2 基于硬件抽象层的系统软件设计特性 (1)包含硬件抽象层的系统结构 比较图3和图4,硬件抽象层完全把系统软件和硬件部分隔离开来,这样就使得系统的设备驱动程序与硬件设备无关,从而大大提高了系统的可移植性。从软硬件测试角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件的测试工作的并行进行成为可能。在抽象层的定义方面,需要规定统一的软硬件接口标准,其设计工作需要基于系统需求来做,代码工作可由对硬件比较熟悉的人员来完成。抽象层一般应包含相关硬件的初始化、数据的输入/输出操作、硬件设备的配置操作等功能。 (2)包含硬件抽象层的系统开发过程 如图5给出的包含硬件抽象层V模式开发过程,在系统需求分析并定义了软硬件各自的设计要求以后,就需要花费一定的时间来定义硬件抽象层的接口,以确保硬件设计和测试与软件设计和测试工作能够在相同的接口上进行,从而有利于最终的软硬件集成测试。 从图5可以看出,在基于硬件抽象层的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 结 论 以上所述的是作者在多年
嵌入式
系统开发中所总结出的开发流程,并在实践应用中起到了很好的效果。相信在一个较为复杂的
嵌入式
系统开发过程中,很好地利用上述开发流程,将会有利于提高系统的可移植性、减少产品的开发和测试周期,并能很好地保证产品的可靠性。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
ARM
X86
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议