1、 理 工 学 院本科生毕业设计(论文)学院(系): 电子与电气工程系 专 业: 自动化 学 生: xx 指导教师: xx 完成日期 2010 年 5 月xx 理工学院本科生毕业设计(论文)基于 PDA 的蓝牙通讯程序设计软件设计The Program Design of Bluetooth Communication Based on PDASoftware Design总 计: 40 页表 格: 0 个插 图 : 14 幅基于 PDA 的蓝牙通信程序设计软件设计1南 阳 理 工 学 院 本 科 毕 业 设 计(论文)基于 PDA 的蓝牙通讯程序设计软件设计The Program Design
2、 of Bluetooth Communication Based on PDASoftware Design学 院(系): 电子与电气工程系 专 业: 自动化 学 生 姓 名: xx 学 号: 96106054 指 导 教 师(职称): xx(副教授) 评 阅 教 师: 完 成 日 期: 2010 年 5 月 17 日 xx 理工学院xx Institute of Technology基于 PDA 的蓝牙通信程序设计软件设计2基于 PDA 的蓝牙通讯程序设计的软件设计软件设计自动化 xx摘 要 随着工业技术的发展,对工业现场通信与数据实时处理的要求越来越高。特别是在环境恶劣与布线不便的工业场
3、所,设备间的无线通讯与 PDA 辅助处理成了工业现场的最佳选择。采用 MITEL 公司推出的蓝牙基带控制器芯片 MT1020A 结合 PH2041 无线收发器接收并发送工业接入点数据,实现了工业现场、PDA 与上位机的三方通信。MT1020A端的程序采用 C 语言编写,PDA 上的 WINDOWS 应用程序采用 C#在 Viso studio 2008环境下开发编写,PC 端的程序采用 VC+编写。实现了 PDA 与单片机和 PC 机间的数据通讯,和 PDA 对接收数据的辅助处理。关键词 蓝牙; HCI 协议;无线通信;蓝牙基带控制器;个人数字助理The Program Design of B
4、luetooth Communication Based on PDASoftware DesignAutomation Specialty xxAbstract: As long as the developing of the industrial technique, the need of industrial field communication and real-time digital operation is becoming better quantity. Wireless communication and PDA assistance between the indu
5、strial filed devices is the best choice, especially, at the environment of odious and wiring inconvenient. This article used the Bluetooth basic controller chip MT1020A combined PH2041 Bluetooth wireless receive-set device published by MITEL to realize the wireless communication of MT1020A,PDA and P
6、C, which realized the third side communication image of industrial-filed, PDA and PC. The program of MT1020A terminal is developed in C, the Windows applicant program on PDA is developed in C# under the environment of Visual studio 2008, and the PCs program is developed by VC+. It realizes the digit
7、al communication of signal chip, PDA and PC and assists you to operate the received digitals.Keywords: Bluetooth; HCI protocol;Wireless communication; Bluetooth basically-belt controller; PDA基于 PDA 的蓝牙通信程序设计软件设计3目 录 1 引言.11.1 课题的背景及意义.11.2 国内外研究现状.12 蓝牙系统结构简介.22.1 蓝牙技术与蓝牙系统结构简介.22.1.1 蓝牙技术简介.22.1.2
8、蓝牙协议(HCI)介绍 32.1.3 蓝牙系统结构简介.42.2 MT1020A 基带控制器和 PH2401 无线收发器介绍 52.2.1 MT1020A 基带控制器的结构与原理 52.2.2 PH2401 无线收发器与嵌入式控制内核功能介绍 .82.2.3 USB 蓝牙适配器介绍 .92.3 PDA 移动手持终端介绍 92.3.1 PDA 的基本知识 92.3.2 PDA 的操作系统 102.3.3 PDA 的内存管理 113 Visual Stdio 2008 环境下的 PDA Windows 应用程序设计 .113.1 MT1020A 端的软件设计 113.1.1 初始化.113.1.2
9、 蓝牙交互.123.1.3 处理数据.123.2 PDA 端的软件设计 143.2.1 配置资源参数153.2.2 打开串口资源.163.2.3 PDA 通信读写操作 163.2.4 关闭串口183.3 PC 端的软件设计 183.3.1 蓝牙适配器驱动程序接口函数的调用.183.3.2 驱动程序流程图的编写.194 基于 PDA 的工业现场蓝牙通信系统设计 194.1 PDA 上应用程序的安装和调试 194.2 工业现场蓝牙系统的整体调试与应用设想.21基于 PDA 的蓝牙通信程序设计软件设计4结束语.22参考文献.23附录.24致 谢.40基于 PDA 的蓝牙通信程序设计软件设计11 引言
10、 1.1 课题的背景及意义PDA 是 Personal Digital Assistant(个人数字助理)的缩写,是近来继传呼机、手机之后,迅速崛起的新兴电子消费性产品,即智能电脑工具,就其扩展意义上来讲,它是供人们沟通、连接和互动的移动数字设备,集计算、电话、传真和网络等多种功能于一身,尤为重要的是,这些功能都可以通过无线方式实现。通常,狭义的 PDA 是指电子记事本、电子词典等;广义的 PDA 则主要指掌上电脑、手持电脑和智能手机,也包括其他类似功能的小型数字化设备。目前,PDA 从最初的实用型转向时尚型,开始向电脑、手持设备靠近。 “关于未来的 PDA,加州柏克利大学的 Info Pad
11、 计划是个不错的例子:这个设备使用无线网络,可将资料(包括完整动态视讯)传送到一个能量充足的、方便携式轻薄型客户端上。客户端使用的是一般标准电池,触摸式彩色屏幕,还内置手写与语音识别系统,你的资料将存在一个移动服务器(为移动设备提供信息服务的远端电脑)中,便携设备将一直与你同行,从家里到车上,非常方便,在此基础上,我们距离可穿戴的 PDA 甚至可嵌入的 PDA 已经近在咫尺了,剩下的只是时间问题。蓝牙技术于 1995 年由爱立信公司提出,这个概念一经提出就受到业界的广泛接受,并马上形成了 SIG(蓝牙特殊利益集团) ,这个利益集团的成员有爱立信、诺基亚、摩托罗位、3COM 、IBM 、 INT
12、EL 等九个成员,这九个成员都是各个行业的领导者 1。随着工业技术的发展,DCS(集中控制分散管理)成了现代化工业的标准,而将蓝牙技术与 PDA 结合应用于工业现场,不但减少了很多不方便的接线,还使数据的管理更加精确与高效,控制更加集中与快捷。你不必时刻呆在设备旁边,只要你在有效的距离内带上 PDA 就能随时随地的解决所有问题,而且不必担心会有问题遗漏, PDA会像力控一样将所有的报警信息按优先级排列出来以待你的处理。无论你是坐在办公桌旁还是躺在沙发上甚至窝在床上,只要你掏出 PDA 就如亲临现场一般,真是一机在手,工作无忧。1.2 国内外研究现状移动计算是国际上最近五年内发展起来的最新科技,
13、且势头迅猛。移动计算使计算机或其他信息设备在没有与固定的物理连接设备相连的情况下能将有用、准确、及时的信息与中央信息系统相互作用,分担其计算压力,使信息能够提供给任何时间、任何地点需要它的任何用户。在硬件方面,全世界已经有包括IBM、 MicroOptical、Xybernaut 在内的超过 100 家公司生产与移动计算相关的产品,如带 LCD 显示器的眼镜、手执微型键盘、手执鼠标、声控输入设备等。在应用系统开发方面,美国麻省理工学院、哥伦比亚大学和欧洲的瑞士联邦技术学院、荷兰 Delft 技术基于 PDA 的蓝牙通信程序设计软件设计2大学等都在医学、工业等各个移动计算领域进行应用系统的开发工
14、作。在地理界,美国爱荷华州立大学和加利福尼亚大学美国地理信息与分析中心(NCGIA)正在合作为NASA 和联邦统计机构进行一项名为 Batutta 的计划,旨在研制一套专为地学野外采样使用的移动作业系统,包括地理环境与地理信息系统在无线移动环境中的集成以及穿戴式计算机、便携计算机、PDA 和台式服务器的联合使用 2。国内 PDA 产品目前还只是高级白领的“游戏机”,一方面是由于硬件技术的不成熟,另一方面是国内的嵌入式软件开发刚刚兴起不久。但是已经有一些公司开发出一些与地图密切相关的软件产品。如:1)北京灵图软件技术有限公司推出的在移动信息设备上提供地理信息以及位置信息服务的SmartInHan
15、d软件产品。 2)北京慧图公司新近推出一种可运行于掌上电脑、进行移动制图和 GIS 应用的野外地质数据采集系统:TopMap CEGenius。3)北京超图开发出地理信息系统开发平台-eSuperMap。 4)台湾 “英瑞得信息” 公司设计出支持 GPS 全球卫星定位系统专用软件“WalkMap 地图随身走”。目前 PDA 主要应用于地图导航领域,而蓝牙技术主要应用于手机电脑等电子产品,而在工业现场应用还较少。除了国内某些医药物流行业用到 PDA 复核拣选外,其它行业还没广泛的应用。不过相信不久的将来 PDA 一定会更加的推广流行,那时的工业现场作业会更加的方便与高效,现场作业人员也会成为真正
16、意义上 SOHO 一族。2 蓝牙系统结构简介2.1 蓝牙技术与蓝牙系统结构简介2.1.1 蓝牙技术简介蓝牙技术是用微波技术取代传统网络中错综复杂的连接电缆来实现家庭或办公场中的电话、便携式计算机、打印机、复印机以及其它外设之间的互连互通的一种新型通讯解决方案。利用这一方案可实现点对点对多点的通讯传输,并把设计人员从无数错综复杂的电缆连接中解放出来,从而可以方便地设计自己的个人网络。有了蓝牙技术,人们甚至不用掏出自己的移动电话,就可以用 PDA(个人数字助理)通过口袋中的移动电话来查询新闻、预定机票以及进行其它电子商务活动。蓝牙技术是一种取代数据电缆的短距离无线通信技术,能完成点对点对多点的无线
17、难。可以用蓝牙无线通信技术将家庭或办公室中的各种数据和语音设备取成一个PICONET 网(也叫作微微网) 。而且可以将几个 PICONET 网进一步互连,组成一个更大的分布式网络(也叫作 SCATTERNET 网),以在各个设备之间进行快速方便的通信基于 PDA 的蓝牙通信程序设计软件设计3联系。蓝牙技术的工作频段为全球开放的 2.4GHzISM(工业、科学和医学)频段,该频段能够保证人们在施行时可以毫无障碍且方便可靠地合作蓝牙设备。由于采用扩频技术,发射功率可增加到 100mW。但是,由于 ISM 频段对所有无线电都开放,汽车、微波炉以及其它高频微波设备都有可能成为蓝牙技术不可预测的干扰源,
18、因此,一般的蓝牙技术方案都特别设计了快速确认和调频方案来确保通信的稳定连接和数据的可靠保密。在目前公布的 Bluetooth V1.0 蓝牙技术规范中,数据的最大传出速率为 721kbit/s,系统的最大跳频速率为 1600 跳/秒,在 2.402GHz 到 2.480GHz 之间,采用 79 个 1MHz 带宽的频点。采用时分双工传输方案实现全双工传输。通信距离为 10 米。如果加大发射功率,其通信距离可加大到 100 米左右 3。2.1.2 蓝牙协议(HCI)介绍蓝牙 SIG 开发了蓝牙协议规范, 已发布版本包括 1.0,1.0b,1.1 和 2.0。蓝牙协议规范允许开发人员开发基于可互操
19、作的无线模块和数据通信协议的交互式服务和应用, 目的是使符合该规范的各种应用之间能够实现互操作。蓝牙协议栈体系结构如图 1 所示。图 1 蓝牙协议栈体系结构图互操作的远端设备需要使用相同的协议栈, 不同的应用需要不同的协议栈, 但是, 所有的应用都要使用蓝牙协议规范中的数据链路层和物理层。协议栈各层都是相对分离的实体, 通过回调表将精心设计好的接口暴露给上下层,除此之外协议栈内的各部分基于 PDA 的蓝牙通信程序设计软件设计4没有任何交互关系, 每一层都是可替换的。蓝牙 1.0 标准由两个文件组成。一个是核心部分(FoundationCore) ,它规定的是设计标准。另一个叫协议子集部分(Fo
20、undationProfile) ,它规定的是运作性准则。蓝牙协议可以分为 4 层,即核心协议层、电缆替代协议层、电话控制协议层和采纳的其它协议层。由于篇幅的限制,本文只介绍核心协议。蓝牙的核心协议包括基带(baseband) 、链路管理(LMP ) 、逻辑链路控制与适应协议( SDP)等四部分。基带层:蓝牙采用跳频扩频技术,每秒 1600 跳,从时间域看即每个时隙长度是625s,即每个时隙从 79 个信道中选择一个。蓝牙既支持电路型数据,也支持分组型数据;既支持点对点连接,也支持点对多点连接。在一个微微网络(Pieconet)中,一个单元作为主节点,其他作为从节点,最多可以有 7 个从节点;
21、但是允许有更多从节点与主节点保持在 Park 状态。从节点对信道的接入由主节点控制。微微网络在覆盖上可以有重叠:每个网络有各自的跳频方案,一个网络的主节点可以同时作为另一个网络的从节点;一个从节点可以属于多个网络。主节点向从节点发送数据只能占用偶时隙,反之从节点只能在奇时隙才能向主节点发送数据。一个分组(Packet,实际上更习惯的说法是帧,因为在基带层其地位类似于 OSI 的第 2 层、部分涉及物理层,分组的确切用法在第 3 层,但是蓝牙基带层规范中采用 Packet 术语)的传送最多可以占用 5 个时隙,在一个分组的传送期内,维持初始时隙所占用的信道而不再跳频 4。链路管理(LMP )负责
22、蓝牙组件间连接的建立。通过连接的发起、交换、核实,进行身份鉴权和加密等安全方面的任务;通过协商确定基带数据分组大小;它还控制无线单元的电源模式和工作周期,以及微微网内蓝牙组件的连接状态。逻辑链路控制与适应协议(L2CAP)位于基带协议层之上,属于数据链路层,是一个为高层传输和应用层协议屏蔽基带协议的适配协议。其完成数据的拆装、基带与高协议间的适配,并通过协议复用、分用及重组操作为高层提供数据业务和分类提取,它允许高层协议和应用接收或发送长过 64K 字节的 L2CAP 数据包。业务搜寻协议(SDP)是极其重要的部分,它是所使用模式的基础。通过 SDH,可以查询设备信息、业务及业务特征,并在查询
23、之后建立两个或多个蓝牙设备间的连接。SDP 支持 3 种查询方式:按业务类别搜寻、按业务属性搜寻和业务浏览(browsing) 。2.1.3 蓝牙系统结构简介MT1020 基带控制器和 PH2401 无线收发器分别由 MITEL 公司和 PHILSAR 公司提供,两者配合可构成完整的低功耗的蓝牙模块,提供高至 HCI(主机控制接口)层的功能。它们在蓝牙系统中的位置如图 2 所示。MT1020 基带控制器负责蓝牙基带部分的功能,完成基带以及链路的管理,包括对 SCO(同步)和 ACL(异步)连接方式的支持、差错控制、物理层的认证与加密、链路管理等;PH2401 实现数据的无线接收和发送; 虚线以
24、基于 PDA 的蓝牙通信程序设计软件设计5上部分由用户根据不同的应用需求来实现,分为用户主机端和用户 PDA 端。特别值得一提的是,在该蓝牙模块解决方案中,即将推出的改进型基带控制器 MT1020B 可提供20K 的用户 ROM,使用户可以利用其内嵌的低功耗、高性能的 32 位 ARM7TDMI 内核,从而简化用户设计,实现最低楞耗、最高集成度的蓝牙产品。图 2 蓝牙系统结构图2.2 MT1020A 基带控制器和 PH2401 无线收发器介绍工业现场接入点通过传感器将信号传入 MT1020A 中再经 PH2401 无线收发器将信号发射给上位机处理,本章主要介绍基带控制器与无线收发器的结构与原理
25、。2.2.1 MT1020A 基带控制器的结构与原理MT1020A 是 MITEL 公司推出的低成本、微功耗蓝牙基带控制器芯片。它和其它的无线收发器一起可以构成一个完整的低功耗小于蓝牙技术系统。MT1020A 采用CMOS 工艺制作,是低功耗无线通信应用系统中理想的蓝牙基带微处理器件。它的引脚排列如图 3 所示:图 3 MT1020A 引脚排列图MT1020A 采用 1111 球形焊珠阵列 121 脚 SSBGA 封装形式。图 3 为其引脚排列图。各引脚的功能如下:A1(nScs):系统片选引脚,低电平有效; A2(Hst_usb_d_pls):USB 主机接口数据正端;A3(Hst_uart
26、_cts):串行主机接口发送清零; A4( SubGND):芯片接地端;基于 PDA 的蓝牙通信程序设计软件设计6A5(LaVDD ):芯片电源引脚; A6(GND):公共接地端;A7(OpVDD):系统 I/O 电源 ; A8(Sadd):地址端(19 位总线);A9(Sadd):地址端( 19 位总线); A10(SubGND):芯片接地端;A11(Bsio_clk):串行 I/O 口时钟输出; B1(Sdata):数据端( 19 位总线); B2(GND ):公共接地引脚;B3(Hst_usb_d_mns):SUB 主机接口数据负端; B4(PLLVDD ):锁相环电源;B5(nSoe)
27、:系统输出使能端 ,低电平有效; B6(nScs):系统片选引脚,低电平有效;B7(Sdata ):系统数据端(15 位总线); B8(Sdata ):系统数据端(15 位总线);B9(Sdata):系统数据端( 15 位总线); B10(Bsio_data_in ):串行 I/O 口数据输入;B11(Bsio_data_out):串行 I/O 口数据输出;C1(OpVDD):系统 I/O 电源; C2(Sdata):系统数据端(15 位总线);C3(Sdata ):系统数据端(15 位总线); C4(Hst_uart_rts):串行主机接口发送准备好;C5(Hst_uart_rxd):串行主
28、机接口接收数据端; C6(Sdata ):系统数据端(15 位总线);C7(Sdata);系统数据端(15 位总线); C8(Sadd ):系统地址(19 位总线);C9(Sdata):系统数据端 ; C10(Bsio_ss):串行 I/O 口从机选择;C11(Gpio):通用 I/O 口; D1(GND):公共接地引脚; D2(nSub):系统高位,低电平有效; D3(Sadd ):系统地址(19 位总线); D4(Sdata):系统数据(15 位总线);D5(Hst_uart_txd ):串行主机接口数据发射端 ; D6(Sdata):系统数据端(15 位总线);D7(Sdata):系统数
29、据端(15 位总线); D8(Sdata):系统数据端(15 位总线);D9(Gpio):通用 I/O 口; D10(Gpio):通用 I/O 口;D11(GND):公共接地端;E1(LaVDD):芯片电源端; E2(U1cts):UART1 发送清零;E3(U1txd):UART1 数据发送 ; E4(Sadd):系统地址(19 位总线);E5(PLL_at1 ):锁相环 1 模拟测试引脚; E6(nScs ):系统片选引脚,低电平有效;E7(Sdata):系统数据( 15 位总线); E8(Gpio_ ):通用 I/O 口或芯片USB 唤醒输出引脚;E9(Gpio ):通用 I/O 口或芯
30、片 USB HPWR 输出引脚; E10(Gpio ):通用 I/O 口或芯片USB HPWR 输入引脚;E11(LaVDD):微处理器电源端;F1(GND ):公共接地端; F2(Lin_pcm_in):16-bit 线性 PCM 输入数据流;F3(U1rxd):UART1 数据接收端; F4(U1rts):UART1 发送准备好;F5(Lin_pcm_out):16-bit 线性 PCM 输出数据流; F6(Gpio):通用 I/O 或外部中断 2;F7(Sdata):系统数据(15 位总线); F8(Gpio):通用 I/O 或外部中断 1;基于 PDA 的蓝牙通信程序设计软件设计7F9
31、(Sdata):系统数据(15 位总线); F10(Swait):系统等待;F11(OpVDD):系统 I/O 电源;G1(La VDD):芯片电源引脚; G2(Lin_pcm_clk):16-bit 线性 PCM 时钟主输出/从输入;G3(Lin_pcm_frm):16-bit 线性 PCM 帧同步主输出/ 从输入 ;G4(Tdo_bdiag_2 ):ICE 测试数据输出或者 Xdiag输出;G5(Tck_bdiag-0):ICE 测试时钟输入或者 Xdiag输出;G6(Ri_txd ):无线电数据发射端; G7(Ri_rx_act):无线电数据解调接收端;G8(Sadd):系统地址(19
32、位总线); G9(Sadd ):系统地址(19 位总线);G10(Sadd ):系统地址(19 位总线); G11(GND ):公共接地引脚;H1(OpVDD):系统 I/O 电源 ; H2(Tdi_bdiag_1):ICE 测试数据输入或者 Xdiag输出;H3(Tms_bdiag_3):ICE 扫描测试模式输入或者 Xdiag输出; H4(Sadd):系统地址(19 位总线);H5(Ri_tx_en):无线电发射使能; H6(Ri_spi_clk):无线电串行接口时钟;H7(Ri_spi_en):无线电串行接口使能 ; H8(Hest):测试使能端;H9(Sadd):系统地址(19 位总线
33、); H10(Sadd ):系统地址(19 位总线);H11(nSreset):系统复位端,低电平有效;J1(Sadd):系统地址(19 位总线); J2(Sadd)系统地址(19 位总线);J3(nTrst):Xpins/diag 模式或 ICE 复位和 ARM/UIM 测试模式,低电平有效;J4(Sadd):系统地址(19 位总线); J5(Ri_rx_en):无线电接收使能;J6(Ri_spi_misod):无线电串行接口数据输入; J7(Lp_clk_in):3.2kHz 时钟输入,用于蓝牙休眠定时;J8(SubGND ):芯片接地端; J9(nICE ):Xpins/diag 模式或
34、 ICE 模式,低电平有效;J10(Ear_minus):CODEC(多媒体数字信号编解码器)耳机听筒音频差分输出负端;J11(Ear_plus ):CODEC(多媒体数字信号编解码器)耳机听筒音频差分输出正端;K1(Sadd):系统地址(19 位总线); K2(Sadd ):系统地址(19 位总线);K3(nSwe):系统写使能引脚; K4(Sadd):系统地址(19 位总线);K5(OpVDD2):系统无线电接口电源; K6(GND):公共接地引脚;K7(LaVDD ):芯片电源引脚; K8(Ri_reset_O):系统无线电复位引脚;K9(Mic_plus):CODEC(多媒体数字信号编
35、解码器)麦克风音频差分正输入端;K10(VREF):音频 CODEC(多媒体数字信号编解码器)VREF 滤波电容接入端,使用时应在该端与地之前接一个 100nF 的电容器;K11(VDDP ): CODEC(多媒体数字信号编解码器)输出放大器模拟电源 ;L1(SubGND):芯片接地端; L2(nSwe):系统写入使能;基于 PDA 的蓝牙通信程序设计软件设计8L3(Sadd ):系统地址(19 位总线); L4(Sadd):系统地址(19 位总线);L5(Ri_rxd):无线电数据接收端; L6(Ri_spi_misod):无线电串行接口数据输出;L7(Clk_in):系统时钟输入; L8(
36、AVDD):CODEC 模拟电源端;L9(Mic_minus):CODEC(多媒体数字信号编解码器)麦克风音频差分负输入端 ;L10(SubGND):芯片接地端; L11(GNDp):CODEC 输出放大器接地端。MT1020 由嵌入式微处理器和蓝牙基带外设组成,如图 4 示。在该芯片中,系统内部时钟可以低至 5MHz、内核供电电压为 2V、硬件解码、支持 DMA 传输,所有这些使得该芯片具有超低功耗 5。图 4 MT1020A 的内部结构框图MT1020A 的基带外围电路主要由主机接口、总线接口、蓝牙链路控制器、 12kB缓冲 RAM、队列管理器、音频编解码器以及音频和其它通信接口电路功能块
37、组成。该部分可用最小的软硬件开销完成各种重要的蓝牙系统操作。基带外围电路中的总线接口主要用于完成微处理器与基带外围电路之间的各种通信,而外围电路内部各部分之间的数据传输则使用外围电路中的 BT 总线来完成。键路控制器用来完成与外部无线收发器之间的通信,以实现数据发送时的装配、加同步字、帧头和 CRC 校验以及数字接收时的解码和检错等。缓冲 RAM 是专门存储蓝牙数据包和变量的存储器,容量为 12kB。队列管理器可实现缓冲 RAM 与链路控制器以及主机接口与音频或其它通信接口之间的 DMA 传输。音频解码器是一个全双工的解码器,内含麦克风放大器和耳机驱动器,其中的数字转换器可进行线性 PCM、A
38、 律 PCM、 律PCM 和 CVSD 间的相互转换 6。2.2.2 PH2401 无线收发器与嵌入式控制内核功能介绍PH2401 单片无线收发器用砷化镓工艺制造,具有高集成度、超低功耗、体积小等优点,专门优化用于 2.4GHz 无线个人系统,完全兼容蓝牙规范 “Bluetoooth V1.0”。 它工作基于 PDA 的蓝牙通信程序设计软件设计9于 2.4GHz 的 ISM 频段,以每秒 1600 次的速度在 79 个频道(2.402GHz-2.408GHz)上快速跳频,最大位传输速率可达 1Mbit/s。 PH2401 采用调制指数为 0.3 的高斯频移键控制(GFSK)调制方式,信道带宽为
39、 1MHz,频偏在 140kHz-175kHz 之间,满足蓝牙 2 级和 3级操作, 送功率可在-10dBm-+2dBm 之间编程设定,发射范围为 10-100m。接收器由 RF-IF 下变频器、自动增益控制(AGC)、滤波器、双通道模/数转换器及调制器组成。基带控制器通过串行总线与 PH2401 接口。通过对其内部寄存器的读写实现跳频、调谐等其它控制。工业现场,MT1020A 和 PH2401 所组成的蓝牙系统框图如图 5 所示。蓝牙系统的具体接线:本文用该芯片的串行异步收发器 1,也就是 E3(U1txd):UART1 数据发送端,和 F3(U1rxd):UART1数据接收端与工业现场接入
40、点的传感器信号或控制仪表相连;用蓝牙外围电路的无线接口 J6(Ri_spi_misod):(无线电串行接口数据输入)L6(Ri_spi_misod ):(无线电串行接口数据输出)与 PH1024 无线收发器相连;用 C11(Gpio):通用 I/O 口, D9(Gpio):通用 I/O 口, D10(Gpio ):通用 I/O 口, E8(Gpio_):通用 I/O 口或芯片 USB 唤醒输出引脚,这四个通用 I/O 端口连接一个液晶显示屏,以显示接收到的数据。其它再具体的接线本文限于篇幅不再赘述 7。图 5 基于 MT1020A 的蓝牙系统框图2.2.3 USB 蓝牙适配器介绍蓝牙 USB
41、适配器采用 CSR BlueCore 04,可去市场购买,价格大概在三十到四十元左右,用时先向 PC 机里面装相应的驱动程序,再将 USB 适配器插入 PC 机的 USB 接口中即可与 MT1020A 端和 PDA 端进行通信。至此工业现场通信的三方通信硬件平台的搭建已基本完成,三方通信框图如图 6 所示。基于 PDA 的蓝牙通信程序设计软件设计10图 6 三方通信框图2.3 PDA 移动手持终端介绍本节主要介绍 PDA 的有关情况,包括 PDA 的基本知识,PDA 的操作系统和 PDA的内存管理。2.3.1 PDA 的基本知识PDA:全称为 Personal Digital Assistan
42、t;纸面意思就是 “个人数码助理”。PDA 最初是用于 PIM( Personal Information Management:个人信息管理),替代纸笔,帮助人们进行一些日常管理,主要为日程安排、通讯录、任务安排、便笺。随着科技的发展,PDA 逐渐融合计算、通信、网络、存储、娱乐、电子商务等多功能,成为人们移动生活不可缺少的工具。PDA 的样式有多种多样,下面只给出一种 PDA 以供参考,如图 7所示。图 7 PDA 外型图由于 PDA 具有台式电脑某些功能,而且体积小巧,便于携带,所以有些人把PDA 称作“掌上电脑” 。这个名字非常贴切,一看就能明白这台设备的主要功能。不过截止到今天,“
43、掌上电脑”也就是 PDA,相对于普通电脑来说,只是一个功能精简的系统,并不是真正意义上具有普通电脑的所有功能。它主要体现在便携方便上,也就是“掌上”,并不能完全代替电脑。智能手机:随着科技的发展,原来的 PDA 增加了手机功能,例如 Palm、Windows Mobile、Linux 系统;或者手机增加了 PDA 功能,例如Symbian 系统。这些手机又被统称为“智能手机”,以便与以前的传统手机相区别。之所以称为“智能 ”,相当与传统手机来说,增加了 PDA 功能。从以上定义来看,其实掌上电脑和智能手机都是 PDA 的一种,而且掌上电脑范围涵盖智能手机,一台智能手机从功能上来说,也算的上是掌
44、上电脑。不过日常一般为基于 PDA 的蓝牙通信程序设计软件设计11了便于区分,我们常说 PDA掌上电脑智能手机。这里的 “掌上电脑”主要指本身不具备手机功能的 PDA,也就是传统的 PDA。 PDA 最大的特点就是,该设备具有一个开放的系统,就像电脑的操作系统一样,人们可以根据自己的需要,安装不同的软件,实现不同的功能。这也是“智能手机” 、 “智能设备”被称作 “智能”的根本原因 8。2.3.2 PDA 的操作系统创建基于 PDA 的蓝牙通信系统的第一步就是选择开发应用程序的操作系统(operating system,OS) 。因为大多数蓝牙系统都是在 Palm 操作系统或 Pocket P
45、C 平台上设计的。Palm 操作系统是 PalmSource 开发的一种功能强大的操作系统 ;Pocket PC 操作系统由微软开发,是运行 PDA 设备的 Windows CE 的子集。这两种操作系统都是针对小型和移动应用来设计的,因此相对于台式机,这两种开发环境在功能、软件工具,以及内存选项上都存在不足。还有一种操作系统就是 1999 年诞生的 Symbian OS,它是一款专门为手机量身定作的操作系统。2.3.3 PDA 的内存管理Palm 和 Pocket PC 操作系统使用的存储器和文件管理系统有很大区别。 Pocket PC使用类似于台式机 Windows 操作系统的系统,例如,P
46、ocket PC 应用程序使用的内存容量受限于板载存储器的容量(目前最高为 64MB) 。然而,因为应用程序需要使用一些空间来保持状态,所以不是所有的内存都可以给数据使用。与 Pocket PC 操作系统不同,Palm 操作系统目前不使用传统的文件系统。它将数据保存在被称作“ 记录”的存储块中,并且组成数据库。 Palm 操作系统将所有文件都组织成数据库的形式,每个数据库最多可以有 64000 个记录,每个记录最大为 64KB。这样,由于 Palm 操作系统这种连接各应用程序的方式,每个应用程序都不能超过 64KB(顶层应用程序除外,它可以包含若干个程序,文件总容量可以超过 64KB) 。对于
47、代码之外的所有事物,应用程序也受到大约 160KB 的堆、或动态存储空间的限制。与 Pocket PC 操作系统一样,Palm 应用程序使用一些内存来保存状态信息,所以也不是所有的内存空间都用于存储数据。因为任何超过可用内存容量的 PDA 应用程序都将立即停止,所以了解内存管理是至关重要的。鉴于工业现场通信的特点和各个操作系统的内存管理特点,本文采用 Pocket PC 操作系统。3 Visual Stdio 2008 环境下的 PDA Windows 应用程序设计3.1 MT1020A 端的软件设计单片机端的软件在 Keil 平台下进行嵌入式 C 编程实现, 传输层采用 UART,单片机通过 UART 控制蓝牙模块。软件包括初始化, 蓝牙交互 , 处理数据三个模块。基于 PDA 的蓝牙通信程序设计软件设计123.1.1 初始化初始化包括系统初始化和蓝牙初始化。系统初始化包括 CPU 时钟初始化, 管脚分配, 串口初始化等,蓝牙初始化是通过 UART 给蓝牙模块发送一系列初始化命令 , 蓝牙模块返回事件, 交互完成一系列的复位, 鉴权, 读地址等初始化操作。初始化程序主函数如下:main.cmain( ) 主函数sys_init( ) 系统初始化, 包括设置看门狗 , 初始化时钟, 键盘及液晶, 配置端口bt_init( ) 蓝