机电之家行业门户网运行
文章 下载
最新公告:

  没有公告

设备维修与管理培训
您现在的位置: 设备维修与管理 >> 设备管理 >> 基础管理 >> 技术管理 >> 资讯正文
 
赞助商
 
 
最新文章
 
 嵌入式系统串行设备管理的研究与
 弱电系统集成及智能建筑设备管理
 数控机床设备管理与预防性维修实
 模具车间的数控机床设备管理与维
 计算机在数控设备管理与维修中的
 喷水织机前准备设备管理与维护
 简析自动化技术应用于设备管理的
 浅谈进口工程设备管理
 当前企业设备管理中应处理好的几
 防火门及防火卷帘的联动控制
 
推荐技术
 
 
相关文章
 
没有相关资讯
 
客户服务
 
如果您有设备方面好的文章或见解,您可以送到我们的投稿信箱
客服电话:0571-87774297
信   箱:88ctv@163.com
我们保证在48小时内回复


s

b

g

l

.

j

d

z

j

.

c

o

m

 

嵌入式系统串行设备管理的研究与实现           ★★★
嵌入式系统串行设备管理的研究与实现
作者:佚名 文章来源:网络 点击数: 更新时间:2009-8-8 16:57:55

 

引言

    随着微电子技术的发展,嵌入式系统的功能越来越强大,像 UART口、IrDA、USB、I2C以及SPI这些串行接口或设备同时存在于一个嵌入式系统中,实现对它们的统一管理将能极大地提高整个嵌入式系统的可移植性、易用性以及开发效率。本文通过对嵌入式系统串行设备管理技术的研究,提出了“带USB的串行管理”模型,并详细阐述了串行设备管理的实现过程。

    串行设备管理

    串行设备管理是指对COM,IrDA、I2C、modem等流设备和接口的统一管理。具体说,就是通过统一的上层应用层接口和下层驱动层接口实现对串行设备的统一管理和透明化处理,从而提高整个系统的易用性和可移植性。USB作为一种新型的高速串行总线,由于具有复杂性和高速性等特点,在嵌入式操作系统中一般专门为其建立一个USB模型而不放入串行设备管理中。虽然这样有利于全面地管理USB主机、USB Hub以及USB设备,但整个模型实现代码大而难,且在嵌入式系统下位机中多是USB设备而没有USB主机和USB Hub。针对这一特点,本文把对USB设备的管理加入到串行管理中,使得对USB设备的访问如同对一个串口的访问一样方便,从而提出了带USB的串行管理模型。

    带USB的串行管理模型

    整个管理模型由两层构成,上层为操作系统应用层接口函数集,主要是统一化的串行流接口函数,如OpenFile等;下层为硬件驱动程序层对象和函数。串行管理的设备对象由虚拟化的HWOBJ结构体来定义,虚拟对象的登记和管理则是通过对DEVICE_LIST结构体的管理来实现。HWOBJ结构体定义为:

    typedef struct _HWOBJ {
    void *device_parent;     //指向DEVICE_LIST结构
    unsigned short  device_index;  //物理设备号,指向实际的串行设备或接口
    unsigned long  bind_flags;     //中断服务线程处理标志位,预留
    unsigned long  IntID;       //指定中断类型,预留
    void  *reserved;
    PHW_VTBL func_tbl;     //硬件驱动函数对象表
    } HWOBJ, *PHWOBJ;
    DEVICE_LIST结构体定义为:
    typedef struct _DEVICE_LIST {
    char  *DllName;            //设备DLL文件名,预留
    unsigned long NumberOf Devices;   //设备数量
    void *DeviceArray;         //设备队列
    } DEVICE_LIST, *PDEVICE_LIST;

    为了解决USB的高速缓冲问题,专门采用了两个单独的循环队列,一个用于缓冲USB的IN传输数据,一个用于缓冲USB的OUT传输的数据。

    带USB的串行管理的实现

    为了便于给应用层编程人员和驱动程序编程人员提供良好的编程接口,接口函数采用了与Windows操作系统中提供的API函数一致的函数名和参数。整个带USB的串行管理的实现包括名字解析与应用层接口函数的实现、串行设备低层驱动接口、应用层接口函数与低层驱动接口的数据传输通道的实现。

    名字解析与应用层接口函数

    这一层的主要任务是实现设备文件到对应设备指针的映射。应用层主要接口函数有CreateFile 、OpenFile、WriteFile、 ReadFile、 CloseFIie等。具体实现上主要是设备名的登记和设备命名空间的管理。设备名的登记是指通过设备登记表来注册设备文件名所对应的物理设备文件名、函数操作指针和设备命名空间等。其中设备命名空间是指文件系统的统一文件与设备的访问接口表,应用程序通过文件系统里的特殊入口(设备文件名设备句柄)访问外围设备。

    串行设备低层驱动接口函数

    串行设备低层驱动接口通过提供以函数指针为成员的结构体来实现,每一个结构体函数指针成员对应一个具体的硬件驱动函数。

    带USB的串行管理的数据传输通道

    USB的管理

    由于相对于其它串行设备来说,USB是高速设备,且为典型的主从式设备,因此,除了专门为USB采用了两个循环队列外,还针对USB是主控制设备的情况,采取通过自定义双向访问协议包来解决下位机主动发起访问的情况。

    串行设备的单道访问

 

资讯录入:admin    责任编辑:admin 
  • 上一篇资讯:

  • 下一篇资讯: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    不良信息
    举报中心
    机电之家设备管理网
    致力于机电设备维修与管理技术
    网络110
    报警服务
    服务热线:0571-87774297 传真:0571-87774298 电子邮件:donemi@hz.cn 服务 QQ:66821730
    机电之家(www.jdzj.com)旗下网站 杭州滨兴科技有限公司提供技术支持

    版权所有 Copyright © 机电之家--中国机电行业门户·设备维修与管理

    主办:杭州高新(滨江)机电一体化学会
    网站经营许可证:浙B2-20080178-1