首页| 资讯中心| 产品中心| 行情中心| 报价中心| 商家中心| 评测中心| 下载中心| 搜索中心| 人才中心| 娱乐中心
当前位置:>蓝牙专区>蓝牙开发指南文章搜索:
如何在Windows CE中实现蓝牙串口驱动程序
2006年08月28日 17时19分  作者:电子技术应用  编辑:晓风

  摘要:蓝牙通信平台在嵌入式系统的实现过程中,OBEX(对象交换)始终是很重要的一部分,基于OBEX的蓝牙文件传输得到广泛应用。而OBEX的实现是基于蓝牙仿真接口,所以蓝牙串口驱动程序的实现就有了很重要的意义。介绍了Windows CE下串口驱动程序的结构和一种具体的实现方法。

  关键词:蓝牙 OBEX 嵌入式系统 驱动程序

  Windows CE作为一种典型的嵌入式操作系统,通过将蓝牙应用移植到Widows CE中,对于如pSOS+、Nucleus等其它嵌入式系统,具有典型意义。由于OBEX上的文件传输应用建立在RFCOMM实现的蓝牙仿真串口上,本文介绍OBEX文件传输的蓝牙虚拟串口驱动程序的实现。

  1 Windows CE设备驱动程序概述

  Windows CE支持广泛的基于各种CE平台的设备驱动程序。目前,它提供了四种设备模型,其中两种是专用于Windows CE的模型,另外两种外部模型来自其它操作系统。基于Windows CE的两种模型是本机的设备驱动程序和流接口驱动程序。两种外部模型用于通用串行总线(USB)和网络驱动器接口标准(NDIS)的驱动程序。

  由于蓝牙协议是在无线技术下的仿真串口,蓝牙中OBEX的许多应用正是基于蓝牙仿真串口。而流接口驱动程序通过一组流接口函数使得应用程序可以通过文件系统中的特殊文件而与设备接口,因此蓝牙仿真串口的功能性更适合流接口驱动程序的结构。

2 Windows CE下蓝牙串口驱动程序的实现

  虽然蓝牙设备驱动程序的实现采用流接口驱动程序设计,但由于两种驱动程序的基本结构与原理相似,所以下文从本机设备驱动程序结构开始,可以更清楚地认识蓝牙设备驱动程序的实现原理。

2.1 本机设备驱动程序结构

  Windows CE中包含的样本设备驱动程序分为两种类型:单片驱动程序(Monolithic device driver)和分层的驱动程序(Layered Devicedriver)。单片驱动程序基于单个码片,该码片直接把硬件设备的功能性通过设备驱动程序接口传递给操作系统。与单片驱动程序相比,分层的驱动程序由两个设置好的层组成:上层是模型设备驱动程序(MDD),下层是依赖平台的驱动程序(PDD)。本文采用分层的驱动程序来连接蓝牙硬件和上面的文件传输应用。图1说明了两种驱动程序是如何在Windows CE操作系统中集成的。

  设备驱动程序接口(DDI)是在MDD中实现的函数集,GWES模块通过这个接口调用设备驱动程序;设备驱动程序服务器提供接口(DDSI)是在PDD中实现的函数集并由MDD调用。由于微软提供了所有与MDD模块相关的源代码,所以对这部分不用做任何改动,只需将自己的PDD模块与MDD模块链结成一个公用库。

  理解了本机设备驱动程序的结构后,从图1右边不难看出,流接口驱动程序只是把流接口作为它们的DDI使用。在这种情况下,不必要把这些驱动程序与GWES模块逻接起来。它们以普通的DLL方式存在并根据需要被调用。

2.2 蓝牙仿真串口驱动程序实现

  蓝牙仿真串口是用蓝牙RFCOMM协议实现无电缆的无线串口通信,与本机设备驱动程序一样,实现流接口的串口驱动程序同样只需实现蓝牙的PDD模块。

  PDD模块包括四部分:第一部分是必须自己实现的所有DDSI接口;第二部分是蓝牙协议栈包括FRCOMM、SDP、L2CAP以及HCI实体;第三部分是HCI传输层通过UART或者USB接口连接到蓝牙硬件;最后一部分是为蓝牙应用提供的图形界面接口和控制端口模块,用来对整个协议栈初始化、蓝牙硬件初始化、搜索附近的蓝牙设备以及发现指定设备上的服务。如图2所示。

  在图2所示的蓝牙仿真串口驱动程序的系统结构中,设备管理程序是用户层的程序,在基于Windows CE的平台上不停地运行着。设备管理程序不是内核的一部分,但它是与内核、注册表和注接口驱动程序DLL有相互影响的单独部分。它主要执行以下任务:

HWOBJ BluetoothObj={ /*描述蓝牙仿真串口特征*/

(PDEVICE_LIST)&SerDL,
THREAD_IN_PDD,/*中断处理全部由PDD层处理*/
0,
NULL,
(PHW_VTBL)&BluetoothVTbl/*包含需要实现的所有标准串口DDSI函数的列表*/
};
HWOBJ BluetoothCTRLObj={/*描述蓝牙控制端口特征*/
(PDEVICE_LIST)&SerDL,
THREAD_IN_PDD,
0,
NULL,
(PHW_VTBL)&CTRLVTb1
};
PHWOBJ rgpHWObjects[]={/*包含两个PDD实例的数组*/
&BluetoothObj,
&BluetoothCTRLObj
};
DEVICE_LIST SerDL={/*存储设备驱动程序中所有串口设备*/
“CESerial.dll”,/*串口驱动程序的名字*/
sizeof(rgpHWObjects)/sizeof(PHWOBJ),/*串口设备的数目*/
regHWObjects
};
PDEVICE_LIST GetSerialObject(VOID)
{
return (&SerDL);
}

   
  在串口驱动程序中注册了两个串口设备后,就要实现这两个PDD实例对应的流接口函数。微软为要实现的串口PDD模块提供了一个HWOBJ(Haredware Object)类型的串行对象表,这个结构列出了实现串口驱动的所有接口函数指针。见下面的描述:
 
typedef struct _HW_VTBL{
PVOID(*HWInit)(ULONG Identifier,PVOID pMDDCon-text,PHWOBJ pHWObj);
…,
…,
BOOL(*HWIoct1)(PVOID pHead,DWORD dwCode,
PBYTE pBufIn,DWORD dwLenIn,PBYTE pBufOut,DWORD
DwLenOut,PDWORDpdwActualOut);
} HW_VTBL,*PHW_VTBL;
    用户通过修改串行口PDD的串行对象表改变函数集或函数名。下面的结构BluetoothVTbl的定义了蓝牙仿真串口DDSI函数的名称。
Const HW_VTBL BluetoothVTbl={
BluetoothInitSerial,
…,
…,
BluetoothIoctl
};
 
  同样用结构变量CTRLVTbl定义了控制端口的DDSI函数名列表。由于这个串口设备用作内部实现特殊的功能,下面只列出了需要关心的主要函数名。
 
Const HW_VTBL CTRLVTbl={
CTRLInitSerial,
CTRLDeinit,
CTRLOpen,
CTRLClose,
…,
…,
CTRLIoctl
};
 
  蓝牙作为一个驱动新经济的引擎,将会 对以嵌入式系统为主的“后PC机”时代的到来产生巨大的推动作用,同时它还将面临来自象IrDA、802.11、HomeRF等无线通信技术的挑战。而将OBEX成功引入蓝牙,使得在嵌入式系统下工作的蓝牙通信设备上传输文件、同步、打印等应用成为可能,因此在蓝牙中起着举足轻重的作用。

 
 
 
 
 
蓝牙适配器产品
MSI 立体声接收FS110
浦诺菲 PBA-2A
捷波朗 A125s
慧翰 AV
傲米子 5770
 
蓝牙适配器文章
·蓝牙产品的竞争对手 无线USB产品明年面市(2006.10.19)
·CSR打“高速率+低功耗传输”算盘(2006.05.29)
 
汽车专栏
凯美瑞订单排至明年3月
途锐与卡宴该如何选择?
07款斯巴鲁力狮试车手记
骏捷10月略缓解紧张局面
新品任我游300上市就跌
 
轻松一刻
·好消息!《水浒Q传》快活林系统全面开放(2006.11.02)
·拒日购!锦天自营《风云》官网倾情上线!(2006.11.02)
·盛世再回的序章 RF新版测试服火爆开放!(2006.11.02)
·太经典了!电脑术语是这样将男人分类的!(2006.11.02)
·曾经让世界震撼的愚人节世界十大经典玩笑(2006.11.02)
·我服了!“三十六计”竟然是这么解释的!(2006.11.02)
·计划生育口号竟然可以这么喊 真是笑死人(2006.11.02)
·绝对经典!——史上最有个性的QQ签名!(2006.11.02)
·老婆、情人和小姐的关系——超级搞笑!(2006.11.02)
·《x同志在全国城管代表大会上的讲话》(2006.11.02)
《天剑豪侠》之游戏攻略
经典十大网络游戏壁纸!
本月最值得玩的11大网游
一只特立独行的猪
大白天竟然裸装招揽顾客
 
 
蓝牙适配器报价
朗峰
技嘉
@pop
金瓯
3Com
磐正
AboCom
趋势
BlueShark
三喜
CCK
世纪飞扬
IOGEAR
特维
Kingjon
信帆
MSI
鹰泰
PROF
中怡数宽
SINKOHANG
诺基亚
SMC
和记
Tekram
CELL(高锐)
U-ideal
Billionton(百灵通)
Aigo(爱国者)
GoerTek(歌尔)
蓝牙适配器产品大全
朗峰
技嘉
@pop
金瓯
3Com
磐正
AboCom
趋势
BlueShark
三喜
CCK
世纪飞扬
IOGEAR
特维
Kingjon
信帆
MSI
鹰泰
PROF
中怡数宽
SINKOHANG
诺基亚
SMC
和记
Tekram
CELL(高锐)
U-ideal
Billionton(百灵通)
Aigo(爱国者)
GoerTek(歌尔)
蓝牙适配器经销商
沈阳朗峰科技有限公司
电话:024-62126791-802
武汉奥汀软件有限公司(广
电话:020-86001513
非常热点
·宋祖德要做女人啦!~
·书店里的“裸奔”事件!
·新版126免费邮命名"逍遥"
·女演员爆导演性交易?
·高二女生割自己双乳自残
·“大旗”倒下的启示!
·名校硕士当门童屈才吗?
·长这么丑还上街啊!
·吴彦祖被误认为“同志”
·女DJ轻生皆因男方风流!
在线逛三好
重点推荐: 手机 笔记本 MP3/MP4 DC/DV 品牌机 主板 显卡 核心配件 显示器 周边配件 办公外设 网络设备 服务器蓝牙专区 三好汽车 数字家庭 信息化专栏 在线逛三好
  关于SOSOL - 联系SOSOL - SOSOL生活 - 加入SOSOL - SOSOL大事记 - SOSOL服务 - SOSOL地图 - SOSOL律师
沈阳市和平区三好街奉天硅谷大厦A座 024-62126792 传真:024-62126793
Copyright ©2003-2006 SOSOL.com.cn All rights reserved. 三好在线 版权所有. 辽ICP证030214号