首页资源分类电源技术 > Windows CE中实现蓝牙串口驱动程序.pdf

Windows CE中实现蓝牙串口驱动程序.pdf

已有 456470个资源

下载专区

文档信息举报收藏

标    签: WindowsCE中实现蓝牙串口驱动程序

分    享:

文档简介

Windows CE中实现蓝牙串口驱动程序.pdf

文档预览

?@3AB "#$%&’( ,* 中实现蓝牙串口驱动程序 北 京 北 方 交 通 大 学 电 子 信 息 工 程 学 院 =!"""IIF 张 敬 高 强 : ; / 蓝 牙 通 信 平 台 在 嵌 入 式 系 统 的 实 现 过 程 中 #.5+6 $ 对 象 交 换 % 始 终 是 很 重 要 的 一 部 分 # 基 于 .5+6 的 蓝 牙 文 件 传 输 得 到 广 泛 应 用 & 而 .5+6 的 实 现 是 基 于 蓝 牙 仿 真 串 口 # 所 以 蓝 牙 串 口 驱 动 程 序 的 实 现 就 有 了 很 重 要 的 意 义 & 介 绍 了 #$%&’() *+ 下 串 口 驱 动 程 序 的 结 构 和 一 种 具 体 的 实 现 方 法& < = > / 蓝 牙 .5+6 嵌 入 式 系 统 驱 动 程 序 #$%&’() *+ 作 为 一 种 典 型 的 嵌 入 式 操 作 系 统 ! 通 过 将 蓝 牙 应 用 移 植 到 #$%&’() *+ 中 ! 对 于 如 ,-.- / "01$ 2341) 等 其 它 嵌 入 式 系 统 ! 具 有 典 型 意 义 # 由 于 .5+6 上 的 文 件 传 输 应 用 建 立 在 78*.99 实 现 的 蓝 牙 仿 真 串 口 上 ! 本 文 介 绍 .5+6 文 件 传 输 的 蓝 牙 虚 拟 串 口 驱 动 程 序 的实现$ ! "#$%&’( )* ! " # $ % & ’ ( #$%&’() *+ 支 持 广 泛 的 基 于 各 种 *+ 平 台 的 设 备 驱 动程序$ 目前!它提供了四种设备模型!其中两种是专用 于 #$%&’() *+ 的 模 型 ! 另 外 两 种 外 部 模 型 来 自 其 它 操 作 系 统 $ 基 于 #$%&’() *+ 的 两 种 模 型 是 本 机 的 设 备 驱 动 程 序和流接口驱动程序$ 两种外部模型用于通用串行总线 %:-5&和 网 络 驱 动 器 接 口 标 准 %0;<-&的 驱 动 程 序 $ 由于蓝牙协议是在无线技术下的仿真串口!蓝牙中 .5+6 的 许 多 应 用 正 是 基 于 蓝 牙 仿 真 串 口 $ 而 流 接 口 驱 动程序通过一组流接口函数使得应用程序可以通过文 件系统中的特殊文件而与设备接口!因此蓝牙仿真串口 的功能性更适合流接口驱动程序的结构$ + "#$%&’( ,* ) * + , - . $ % & / 01 虽然蓝牙设备驱动程序的实现采用流接 口驱动程序设计! 但由于两种驱动程序的基 本结构与原理相似! 所以下文从本机设备驱 动程序结构开始! 可以更清楚地认识蓝牙设 备驱动程序的实现原理$ -.! 23!4.$5&67 #$%&’() *+ 中 包 含 的 样 本 设 备 驱 动 程 序 分 为 两 种 类 型 ’ 单 片 驱 动 程 序 =9’%’3$>?$2 &4$ @$24 &A$@4AB 和 分 层 的 驱 动 程 序 =CDE4A4& ;4@$24 &A$@4A F $ 单 片 驱 动 程 序 基 于 单 个 码 片 ! 该 码 片 直接把硬件设备的功能性通过设备驱动程序 接口传递给操作系统$与单片驱动程序相比! 分层的驱动程序由两个设置好的层组成’上 层 是 模 型 设 备 驱 动 程 序 %9;; & ! 下 层 是 依 赖 !" !!!"#$%&$%"’& !!!"($%&$%"’)*+’& 平 台 的 驱 动 程 序 %G;; & $ 本 文 采 用 分 层 的 驱 动 程 序 来 连 接蓝牙硬件和上面的文件传输应用$ 图 ! 说明了两种驱 动 程 序 是 如 何 在 #$%&’() *+ 操 作 系 统 中 集 成 的 $ 设 备 驱 动 程 序 接 口 %;;<& 是 在 9;; 中 实 现 的 函 数 集 !H#+- 模 块 通 过 这 个 接 口 调 用 设 备 驱 动 程 序 ( 设 备 驱 动 程 序 服 务 器 提 供 接 口 %;;-<& 是 在 G;; 中 实 现 的 函 数 集 并 由 9;; 调 用 $ 由 于 微 软 提 供 了 所 有 与 9;; 模 块 相 关的源代码!所以对这部分不用做任何改动!只需将自己 的 G;; 模 块 与 9;; 模 块 链 结 成 一 个 公 用 库 $ 理解了本机设备驱动程序的结构后!从图 ! 右边不 难 看 出 ! 流 接 口 驱 动 程 序 只 是 把 流 接 口 作 为 它 们 的 ;;< 使 用 $ 在 这 种 情 况 下 ! 不 必 要 把 这 些 驱 动 程 序 与 H#+模 块 链 接 起 来 $ 它 们 以 普 通 的 ;CC 方 式 存 在 并 根 据 需 要 被调用$ -.- *+89,-.$5&01 蓝 牙 仿 真 串 口 是 用 蓝 牙 78*.99 协 议 实 现 无 电 缆 的无线串口通信!与本机设备驱动程序一样!实现流接 口 的 串 口 驱 动 程 序 同 样 只 需 实 现 蓝 牙 的 G;; 模 块 $ !电子技术应用" !""# 年第 !" 期 !"#$% #$$ 模 块 包 括 四 部 分 ! 第 一 部 分 是 必 须 自 己 实 现 的 从图 - 可以看出= 蓝牙流接口驱动程序中一个 所 有 $$%& 接 口 " 第 二 部 分 是 蓝 牙 协 议 栈 包 括 ’()*++ # +$$ 模 块 对 应 着 两 个 #$$ 模 块 ’ 即 实 现 了 两 个 仿 真 串 %$# #,-).# 以 及 /)& 实 体 " 第 三 部 分 是 /)& 传 输 层 通 口 设 备 ! 一 个 是 控 制 端 口 ’ 用 来 完 成 蓝 牙 协 议 和 硬 件 的 过 0.’1 或 者 0%2 接 口 连 接 到 蓝 牙 硬 件 " 最 后 一 部 分 是 初 始 化 ’ 给 *2:< 应 用 程 序 提 供 一 个 发 现 设 备 和 服 务 的 为蓝牙应用提供的图形界面接口和控制端口模块$用来 接口’这个串口只供具体应用内部使用"另一个才是真 对整个协议栈初始化%蓝牙硬件初始化#搜索附近的蓝 正的为其它蓝牙应用使用的蓝牙仿真串口’它通过实现 牙设备以及发现指定设备上的服务& 如图 - 所示& 一 组 系 统 提 供 的 标 准 串 口 $$%& 接 口 函 数 ’ 实 现 蓝 牙 在 图 - 所 示 的 蓝 牙 仿 真 串 口 驱 动 程 序 的 系 统 结 构 ’()*++ 协 议 的 串 口 仿 真 & 中 ’ 设 备 管 理 程 序 是 用 户 层 的 程 序 ’ 在 基 于 3456789 ): 加载驱动程序是由设备管理程序通过查找注册表 的 平 台 上 不 停 地 运 行 着 & 设 备 管 理 程 序 不 是 内 核 的 一 部 中 />:?@,*).,@+.)/&A:B$C4DEC9B 目 录 ’ 注 册 的 串 口 驱 分 ’ 但 它 是 与 内 核 % 注 册 表 和 流 接 口 驱 动 程 序 $,, 有 相 动 程 序 的 相 关 信 息 完 成 ’ 因 此 必 须 至 少 注 册 两 个 蓝 牙 串 互影响的单独部分& 它主要执行以下任务! 口 设 备 & 3456789 ): 中 ’ 一 个 串 口 被 初 始 化 前 +$$ 层 (在 系 统 启 动 时 或 收 到 用 户 在 基 于 3456789 ): 的 平 会 先 调 用 FEG%EC4HI*JKELG * + 函 数 得 到 串 口 驱 动 程 序 中 实 台上增加了外围设备的信息时’初始化驱动程序的加载" 现的串口设备数目) 因此在蓝牙串口驱动程序的初始化 (向 内 核 注 册 特 定 文 件 名 ’ 该 文 件 名 把 应 用 程 序 使 时 ’ 由 如 下 代 码 实 现 ! 用 的 流 &;* 函 数 映 射 到 流 接 口 驱 动 程 序 的 那 些 函 数 的 /3*2M 2INEG77GO*JK P Q ;R 描述蓝牙仿真串口特征 R; 实现" S#$:T&):@,&%1U V%EC$,= (通 过 从 外 围 设 备 获 得 即 插 即 用 标 识 符 或 激 活 一 个 检查子程序来发现可以处理该设备的驱动程序’为外围 设备找到合适的设备驱动程序" (通 过 读 写 注 册 值 加 载 和 跟 踪 驱 动 程 序 " (当 不 再 需 要 设 备 时 ’ 卸 载 驱 动 程 序 ) 流接口驱动程序是用户一级的动态链接库’用来实 现一组固定的流接口函数’这些流接口函数使得应用程 序可以通过文件系统中的特殊文件而与设备进行接口’ 因 此 对 上 面 的 *2:< 应 用 程 序 来 说 ’ 使 用 非 常 方 便 & 1/’:.$@&A@#$$ = ;R 中断处理全部由 #$$ 层 处理 R; "= A0,, = S #/3@T12,U V2INEG77GOT1JI ;R 包 含 需 要 实 现 的 所 有 标 准 串 口 $$%& 函 数 的 列 表 R ; WX /3*2M 2INEG77GO)1’,*JK P Q ;R 描 述 蓝 牙 控 制 端 口 特征 R; S#$:T&):@,&%1U V%EC$,= 图 - 3456789 ): 下 蓝 牙 串 口 驱 动 程 序 !电子技术应用" !""# 年第 !" 期 本 刊 投 稿 邮 箱 $ !"#$%&’! ( &)* ( &% !! %&’() VWL2KNa1Fa$NN T 用 户 通 过 修 改 串 行 口 $NN 的 串 行 对 象 表 改 变 函 数 "T 集 或 函 数 名 + 下 面 的 结 构 I47(.&&./?VC4 定 义 了 蓝 牙 仿 真 FPbb T [$WMa?VIb\ c5VLb?VC4 d= $WMQI^ %,OWMQCY(’.8 e f g h ‘ i 包 含 两 个 $NN 实 例 的数组 i‘ cI47(.&&./QCY T cI47(.&&./5VLbQCY d= N2?152ab1:V :(%Nb g h ‘ i 存 储 设 备 驱 动 程 序 中 所 有串口设备 i‘ &52:(%*34 R)44 ’ T ‘i 串口驱动程序的名字 i‘ 8*G(&-[%,OWMQCY(’.8\‘8*G(&-[$WMQI^ \T ‘i 串口设备的数目 i‘ %,OWMQCY(’.8 d= 串 口 NN:1 函 数 的 名 称 ( ’&+8. WMa?VIb I47(.&&./?VC4 g h I47(.&&./1+*.:(%*34 T *T *T I47(.&&./1&’.4 d= 同 样 用 结 构 变 量 5VLb?VC4 定 义 了 控 制 端 口 的 NN:1 函数名列表( 由于这个串口设备用作内部实现特殊的功 能$下面只列出了需要关心的主要函数名( ’&+8. WMa?VIb 5VLb?VC4 g h 5VLb1+*.:(%*34 T 5VLbN(*+*. T 5VLbQO(+ T 5VLb54&8( T $N2?152ab1:V j(.:(%*34QCY(’.[?Q1N\ h %(.7%+ [c:(%Nb\= d 在串口驱动程序中注册了两个串口设备后$就要实 现 这 两 个 $NN 实 例 对 应 的 流 接 口 函 数 ( 微 软 为 要 实 现 的 串 口 $NN 模 块 提 供 了 一 个 WMQI^ !W3%()k3%( QCY(’. " 类型的串行对象表$这个结构列出了实现串口驱动的所 有接口函数指针( 见下面的描述% .;O()(- 8.%7’. aaWMa?VIb h $?Q1N [iWM1+*.\[PbQFj 1)(+.*-*(%T $?Q1N O6NN5&+ J .(l.T $WMQI^ OWMQCY\= )T *T *T *T 5VLb1&’.4 d= 蓝牙作为一个驱动新经济的引擎$ 将会对以嵌入式 系 统 为 主 的 &后 $5 机 ,时 代 的 到 来 产 生 巨 大 的 推 动 作 用 $ 同 时 它 还 将 面 临 来 自 象 1%NK-m">R!! -W&<(L9 等 无 线 通 信 技 术 的 挑 战 + 而 将 QI2n 成 功 引 入 蓝 牙 $使 得 在 嵌 入 式 系统下工作的蓝牙通信设备上传输文件-同步-打印等应 用成为可能$因此在蓝牙中起着举足轻重的作用+ !"#$ ! N%3-. 9&7+3.*&+ R :O(’*-*’3.*&+ &- ./( I47(.&&./ :;8.(< R @! R" . ^74; $!000 > KV1RF7’4(78 $478 1+.(%+348 R !000 IQQb [iWM1&’.4\[$?Q1N OW(3)T NMQLN )k5&)(T S *8*R $:Q:o ?>RS P8(%p8 L(-(%(+’( 63+734R!000 $IEV2 OI7-1+ TNMQLN )kb(+1+T$IEV2 OI7-Q7. TNMQLN X 金 纯 $ 许 光 辰 $ 孙 睿 R 蓝 牙 技 术 R 北 京 % 电 子 工 业 出 版 社 )kb(+Q7.T$NMQLN O)kK’.734Q7.\= d WMa?VIbT i$WMa?VIb = ! 收 稿 日 期 % >""XJ"#J S" " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !上接第 # 页" $%&’(()*+, &- ./( !000 1222 1+.(%+3.*&+34 5&+-(%(+’( &+ 674.*8(+8&% 978*&+ 3+) 1+.(44*,(+. :;8.(<8 = > ?344(%3+) :.(@(A B3+C3%3 6383;7D*A E&D&;3 F3&D3G7H I*+&’J 743% ?*8*&+JI38() K7,<(+.() L(34*.; :;8.(< M*./ K+ 1+J ’%(38() L(,*8.%3.*&+ N(O./ P8*+, N;+3<*’ 5&%%(’.*&+ Q- 9(3 J .7%( $&8*.*&+8R $%&’(()*+,8 RQ- ./( >""S 1222T ?*%.734 L(34*.; R 63%’/ >""S # ?&4R>>$># AO>U! $>U> S B(* QD3)3 A 6383;7D* 1+3C3 R 1+.(,%3.*&+ Q- L(34J V*<( I*+ J &’743% :.(%(& ?*8*&+ K+) M/&4( I&); 1+-&%<3.*&+ 9&% N;+3 J <*’ M34D*+, F3@*,3.*&+ Q- W7<3+&*) L&C&.R1222 5&+-(%(+’( &+ 674.*8(+8&% 978*&+ 3+) 1+.(%,%3.*&+ -&% 1+.(44*,(+. :;8.(<8 !> !!!"#$%&$%"’& !!!"($%&$%"’)*+’& >""S X E3Y7+ 93+, A 1’/*%& 6383D*A 3+) I(%./&4) W&%+R N(O./J I38() V3%,(. :(,<(+.3.*&+ -&% 1+.(44*,(+. ?(/*’4(8 Z 978*&+ &- L3)3% 3+) I*+&’743% :.(%(&R 1222 V%3+83’.*&+8 Q+ 1+.(44*,(+. V%3+8O&%.3.*&+ :;8.(<8A >""> =S[S\ ] 543%D 9R Q48&+ T W3C*C KC*J L3’/()T 6*+, E( T ^&+3./3+ $H W(+)%*’/ H M*)( _I38(4*+( :.(%(& ?*8*&+ 9&% 63%8 L&@(%8 R $%&’(()*+,8 Q- V/( >""S 1222‘L:^ 1+.4R 5&+-(%(+’( Q+ 1+_ .(44*,(+. L&C&.8 K+) :;8.(%<8 R Q’.&C(% >""S # 高庆吉$洪炳熔$阮玉峰R 基于异构双目视觉的全自主足 球 机 器 人 导 航 R 哈 尔 滨 工 业 大 学 学 报 T >""S= S][ 0 \ ! 收 稿 日 期 % >""X_"]_ S" " !电子技术应用" !""# 年第 !" 期

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。