基于PDA的蓝牙通讯程序设计.docx
《基于PDA的蓝牙通讯程序设计.docx》由会员分享,可在线阅读,更多相关《基于PDA的蓝牙通讯程序设计.docx(56页珍藏版)》请在冰豆网上搜索。
基于PDA的蓝牙通讯程序设计
1引言
1.1课题的背景及意义
PDA是PersonalDigitalAssistant(个人数字助理)的缩写,是近来继传呼机、手机之后,迅速崛起的新兴电子消费性产品,即智能电脑工具,就其扩展意义上来讲,它是供人们沟通、连接和互动的移动数字设备,集计算、电话、传真和网络等多种功能于一身,尤为重要的是,这些功能都可以通过无线方式实现。
通常,狭义的PDA是指电子记事本、电子词典等;广义的PDA则主要指掌上电脑、手持电脑和智能手机,也包括其他类似功能的小型数字化设备。
目前,PDA从最初的实用型转向时尚型,开始向电脑、手持设备靠近。
“关于未来的PDA,加州柏克利大学的InfoPad计划是个不错的例子:
这个设备使用无线网络,可将资料(包括完整动态视讯)传送到一个能量充足的、方便携式轻薄型客户端上。
客户端使用的是一般标准电池,触摸式彩色屏幕,还内置手写与语音识别系统,你的资料将存在一个移动服务器(为移动设备提供信息服务的远端电脑)中,便携设备将一直与你同行,从家里到车上,非常方便,在此基础上,我们距离可穿戴的PDA甚至可嵌入的PDA已经近在咫尺了,剩下的只是时间问题。
蓝牙技术于1995年由爱立信公司提出,这个概念一经提出就受到业界的广泛接受,并马上形成了SIG(蓝牙特殊利益集团),这个利益集团的成员有爱立信、诺基亚、摩托罗位、3COM、IBM、INTEL等九个成员,这九个成员都是各个行业的领导者[1]。
随着工业技术的发展,DCS(集中控制分散管理)成了现代化工业的标准,而将蓝牙技术与PDA结合应用于工业现场,不但减少了很多不方便的接线,还使数据的管理更加精确与高效,控制更加集中与快捷。
你不必时刻呆在设备旁边,只要你在有效的距离内带上PDA就能随时随地的解决所有问题,而且不必担心会有问题遗漏,PDA会像力控一样将所有的报警信息按优先级排列出来以待你的处理。
无论你是坐在办公桌旁还是躺在沙发上甚至窝在床上,只要你掏出PDA就如亲临现场一般,真是一机在手,工作无忧。
1.2国内外研究现状
移动计算是国际上最近五年内发展起来的最新科技,且势头迅猛。
移动计算使计算机或其他信息设备在没有与固定的物理连接设备相连的情况下能将有用、准确、及时的信息与中央信息系统相互作用,分担其计算压力,使信息能够提供给任何时间、任何地点需要它的任何用户。
在硬件方面,全世界已经有包括IBM、MicroOptical、Xybernaut在内的超过100家公司生产与移动计算相关的产品,如带LCD显示器的眼镜、手执微型键盘、手执鼠标、声控输入设备等。
在应用系统开发方面,美国麻省理工学院、哥伦比亚大学和欧洲的瑞士联邦技术学院、荷兰Delft技术大学等都在医学、工业等各个移动计算领域进行应用系统的开发工作。
在地理界,美国爱荷华州立大学和加利福尼亚大学美国地理信息与分析中心(NCGIA)正在合作为NASA和联邦统计机构进行一项名为Batutta的计划,旨在研制一套专为地学野外采样使用的移动作业系统,包括地理环境与地理信息系统在无线移动环境中的集成以及穿戴式计算机、便携计算机、PDA和台式服务器的联合使用[2]。
国内PDA产品目前还只是高级白领的“游戏机”,一方面是由于硬件技术的不成熟,另一方面是国内的嵌入式软件开发刚刚兴起不久。
但是已经有一些公司开发出一些与地图密切相关的软件产品。
如:
1)北京灵图软件技术有限公司推出的在移动信息设备上提供地理信息以及位置信息服务的SmartInHand软件产品。
2)北京慧图公司新近推出一种可运行于掌上电脑、进行移动制图和GIS应用的野外地质数据采集系统:
TopMapCEGenius。
3)北京超图开发出地理信息系统开发平台-eSuperMap。
4)台湾“英瑞得信息”公司设计出支持GPS全球卫星定位系统专用软件“WalkMap地图随身走”。
目前PDA主要应用于地图导航领域,而蓝牙技术主要应用于手机电脑等电子产品,而在工业现场应用还较少。
除了国内某些医药物流行业用到PDA复核拣选外,其它行业还没广泛的应用。
不过相信不久的将来PDA一定会更加的推广流行,那时的工业现场作业会更加的方便与高效,现场作业人员也会成为真正意义上SOHO一族。
2蓝牙系统结构简介
2.1蓝牙技术与蓝牙系统结构简介
2.1.1蓝牙技术简介
蓝牙技术是用微波技术取代传统网络中错综复杂的连接电缆来实现家庭或办公场中的电话、便携式计算机、打印机、复印机以及其它外设之间的互连互通的一种新型通讯解决方案。
利用这一方案可实现点对点对多点的通讯传输,并把设计人员从无数错综复杂的电缆连接中解放出来,从而可以方便地设计自己的个人网络。
有了蓝牙技术,人们甚至不用掏出自己的移动电话,就可以用PDA(个人数字助理)通过口袋中的移动电话来查询新闻、预定机票以及进行其它电子商务活动。
蓝牙技术是一种取代数据电缆的短距离无线通信技术,能完成点对点对多点的无线难。
可以用蓝牙无线通信技术将家庭或办公室中的各种数据和语音设备取成一个PICONET网(也叫作微微网)。
而且可以将几个PICONET网进一步互连,组成一个更大的分布式网络(也叫作SCATTERNET网),以在各个设备之间进行快速方便的通信联系。
蓝牙技术的工作频段为全球开放的2.4GHzISM(工业、科学和医学)频段,该频段能够保证人们在施行时可以毫无障碍且方便可靠地合作蓝牙设备。
由于采用扩频技术,发射功率可增加到100mW。
但是,由于ISM频段对所有无线电都开放,汽车、微波炉以及其它高频微波设备都有可能成为蓝牙技术不可预测的干扰源,因此,一般的蓝牙技术方案都特别设计了快速确认和调频方案来确保通信的稳定连接和数据的可靠保密。
在目前公布的BluetoothV1.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。
蓝牙协议规范允许开发人员开发基于可互操作的无线模块和数据通信协议的交互式服务和应用,目的是使符合该规范的各种应用之间能够实现互操作。
蓝牙协议栈体系结构如图1所示。
图1蓝牙协议栈体系结构图
互操作的远端设备需要使用相同的协议栈,不同的应用需要不同的协议栈,但是,所有的应用都要使用蓝牙协议规范中的数据链路层和物理层。
协议栈各层都是相对分离的实体,通过回调表将精心设计好的接口暴露给上下层,除此之外协议栈内的各部分没有任何交互关系,每一层都是可替换的。
蓝牙1.0标准由两个文件组成。
一个是核心部分(FoundationCore),它规定的是设计标准。
另一个叫协议子集部分(FoundationProfile),它规定的是运作性准则。
蓝牙协议可以分为4层,即核心协议层、电缆替代协议层、电话控制协议层和采纳的其它协议层。
由于篇幅的限制,本文只介绍核心协议。
蓝牙的核心协议包括基带(baseband)、链路管理(LMP)、逻辑链路控制与适应协议(SDP)等四部分。
基带层:
蓝牙采用跳频扩频技术,每秒1600跳,从时间域看即每个时隙长度是625μs,即每个时隙从79个信道中选择一个。
蓝牙既支持电路型数据,也支持分组型数据;既支持点对点连接,也支持点对多点连接。
在一个微微网络(Pieconet)中,一个单元作为主节点,其他作为从节点,最多可以有7个从节点;但是允许有更多从节点与主节点保持在Park状态。
从节点对信道的接入由主节点控制。
微微网络在覆盖上可以有重叠:
每个网络有各自的跳频方案,一个网络的主节点可以同时作为另一个网络的从节点;一个从节点可以属于多个网络。
主节点向从节点发送数据只能占用偶时隙,反之从节点只能在奇时隙才能向主节点发送数据。
一个分组(Packet,实际上更习惯的说法是帧,因为在基带层其地位类似于OSI的第2层、部分涉及物理层,分组的确切用法在第3层,但是蓝牙基带层规范中采用Packet术语)的传送最多可以占用5个时隙,在一个分组的传送期内,维持初始时隙所占用的信道而不再跳频[4]。
链路管理(LMP)负责蓝牙组件间连接的建立。
通过连接的发起、交换、核实,进行身份鉴权和加密等安全方面的任务;通过协商确定基带数据分组大小;它还控制无线单元的电源模式和工作周期,以及微微网内蓝牙组件的连接状态。
逻辑链路控制与适应协议(L2CAP)位于基带协议层之上,属于数据链路层,是一个为高层传输和应用层协议屏蔽基带协议的适配协议。
其完成数据的拆装、基带与高协议间的适配,并通过协议复用、分用及重组操作为高层提供数据业务和分类提取,它允许高层协议和应用接收或发送长过64K字节的L2CAP数据包。
业务搜寻协议(SDP)是极其重要的部分,它是所使用模式的基础。
通过SDH,可以查询设备信息、业务及业务特征,并在查询之后建立两个或多个蓝牙设备间的连接。
SDP支持3种查询方式:
按业务类别搜寻、按业务属性搜寻和业务浏览(browsing)。
2.1.3蓝牙系统结构简介
MT1020基带控制器和PH2401无线收发器分别由MITEL公司和PHILSAR公司提供,两者配合可构成完整的低功耗的蓝牙模块,提供高至HCI(主机控制接口)层的功能。
它们在蓝牙系统中的位置如图2所示。
MT1020基带控制器负责蓝牙基带部分的功能,完成基带以及链路的管理,包括对SCO(同步)和ACL(异步)连接方式的支持、差错控制、物理层的认证与加密、链路管理等;PH2401实现数据的无线接收和发送;虚线以上部分由用户根据不同的应用需求来实现,分为用户主机端和用户PDA端。
特别值得一提的是,在该蓝牙模块解决方案中,即将推出的改进型基带控制器MT1020B可提供20K的用户ROM,使用户可以利用其内嵌的低功耗、高性能的32位ARM7TDMI内核,从而简化用户设计,实现最低楞耗、最高集成度的蓝牙产品。
图2蓝牙系统结构图
2.2MT1020A基带控制器和PH2401无线收发器介绍
工业现场接入点通过传感器将信号传入MT1020A中再经PH2401无线收发器将信号发射给上位机处理,本章主要介绍基带控制器与无线收发器的结构与原理。
2.2.1MT1020A基带控制器的结构与原理
MT1020A是MITEL公司推出的低成本、微功耗蓝牙基带控制器芯片。
它和其它的无线收发器一起可以构成一个完整的低功耗小于蓝牙技术系统。
MT1020A采用CMOS工艺制作,是低功耗无线通信应用系统中理想的蓝牙基带微处理器件。
它的引脚排列如图3所示:
图3MT1020A引脚排列图
MT1020A采用11×11球形焊珠阵列121脚SSBGA封装形式。
图3为其引脚排列图。
各引脚的功能如下:
A1(nScs<3>):
系统片选引脚,低电平有效;A2(Hst_usb_d_pls):
USB主机接口数据正端;
A3(Hst_uart_cts):
串行主机接口发送清零;A4(SubGND):
芯片接地端;
A5(LaVDD):
芯片电源引脚;A6(GND):
公共接地端;
A7(OpVDD):
系统I/O电源;A8(Sadd<1>):
地址端(19位总线);
A9(Sadd<5>):
地址端(19位总线);A10(SubGND):
芯片接地端;
A11(Bsio_clk):
串行I/O口时钟输出;
B1(Sdata<11>):
数据端(19位总线);B2(GND):
公共接地引脚;
B3(Hst_usb_d_mns):
SUB主机接口数据负端;B4(PLLVDD):
锁相环电源;
B5(nSoe):
系统输出使能端,低电平有效;B6(nScs<1>):
系统片选引脚,低电平有效;
B7(Sdata<0>):
系统数据端(15位总线);B8(Sdata<5>):
系统数据端(15位总线);
B9(Sdata<13>):
系统数据端(15位总线);B10(Bsio_data_in):
串行I/O口数据输入;
B11(Bsio_data_out):
串行I/O口数据输出;
C1(OpVDD):
系统I/O电源;C2(Sdata<1>):
系统数据端(15位总线);
C3(Sdata<2>):
系统数据端(15位总线);C4(Hst_uart_rts):
串行主机接口发送准备好;
C5(Hst_uart_rxd):
串行主机接口接收数据端;C6(Sdata<12>):
系统数据端(15位总线);
C7(Sdata<10>);系统数据端(15位总线);C8(Sadd<3>):
系统地址(19位总线);
C9(Sdata<15>):
系统数据端;C10(Bsio_ss):
串行I/O口从机选择;
C11(Gpio<0>):
通用I/O口;
D1(GND):
公共接地引脚;D2(nSub):
系统高位,低电平有效;
D3(Sadd<18>):
系统地址(19位总线);D4(Sdata<9>):
系统数据(15位总线);
D5(Hst_uart_txd):
串行主机接口数据发射端;D6(Sdata<3>):
系统数据端(15位总线);
D7(Sdata<8>):
系统数据端(15位总线);D8(Sdata<6>):
系统数据端(15位总线);
D9(Gpio<1>):
通用I/O口;D10(Gpio<2>):
通用I/O口;
D11(GND):
公共接地端;
E1(LaVDD):
芯片电源端;E2(U1cts):
UART1发送清零;
E3(U1txd):
UART1数据发送;E4(Sadd<0>):
系统地址(19位总线);
E5(PLL_at1):
锁相环1模拟测试引脚;E6(nScs<0>):
系统片选引脚,低电平有效;
E7(Sdata<4>):
系统数据(15位总线);E8(Gpio_<3>):
通用I/O口或芯片USB唤醒输出引脚;
E9(Gpio<4>):
通用I/O口或芯片USBHPWR输出引脚;E10(Gpio<5>):
通用I/O口或芯片USBHPWR输入引脚;
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<6>):
通用I/O或外部中断2;
F7(Sdata<14>):
系统数据(15位总线);F8(Gpio<7>):
通用I/O或外部中断1;
F9(Sdata<7>):
系统数据(15位总线);F10(Swait):
系统等待;
F11(OpVDD):
系统I/O电源;
G1(LaVDD):
芯片电源引脚;G2(Lin_pcm_clk):
16-bit线性PCM时钟主输出/从输入;
G3(Lin_pcm_frm):
16-bit线性PCM帧同步主输出/从输入;
G4(Tdo_bdiag_2):
ICE测试数据输出或者Xdiag<2>输出;
G5(Tck_bdiag-0):
ICE测试时钟输入或者Xdiag<0>输出;
G6(Ri_txd):
无线电数据发射端;G7(Ri_rx_act):
无线电数据解调接收端;
G8(Sadd<6>):
系统地址(19位总线);G9(Sadd<2>):
系统地址(19位总线);
G10(Sadd<7>):
系统地址(19位总线);G11(GND):
公共接地引脚;
H1(OpVDD):
系统I/O电源;H2(Tdi_bdiag_1):
ICE测试数据输入或者Xdiag<1>输出;
H3(Tms_bdiag_3):
ICE扫描测试模式输入或者Xdiag<3>输出;H4(Sadd<8>):
系统地址(19位总线);
H5(Ri_tx_en):
无线电发射使能;H6(Ri_spi_clk):
无线电串行接口时钟;
H7(Ri_spi_en):
无线电串行接口使能;H8(Hest):
测试使能端;
H9(Sadd<4>):
系统地址(19位总线);H10(Sadd<17>):
系统地址(19位总线);
H11(nSreset):
系统复位端,低电平有效;
J1(Sadd<14>):
系统地址(19位总线);J2(Sadd<10>)系统地址(19位总线);
J3(nTrst):
Xpins/diag模式或ICE复位和ARM/UIM测试模式,低电平有效;
J4(Sadd<11>):
系统地址(19位总线);J5(Ri_rx_en):
无线电接收使能;
J6(Ri_spi_misod):
无线电串行接口数据输入;J7(Lp_clk_in):
3.2kHz时钟输入,用于蓝牙休眠定时;
J8(SubGND):
芯片接地端;J9(nICE):
Xpins/diag模式或ICE模式,低电平有效;
J10(Ear_minus):
CODEC(多媒体数字信号编解码器)耳机听筒音频差分输出负端;
J11(Ear_plus):
CODEC(多媒体数字信号编解码器)耳机听筒音频差分输出正端;
K1(Sadd<9>):
系统地址(19位总线);K2(Sadd<13>):
系统地址(19位总线);
K3(nSwe<1>):
系统写使能引脚;K4(Sadd<16>):
系统地址(19位总线);
K5(OpVDD2):
系统无线电接口电源;K6(GND):
公共接地引脚;
K7(LaVDD):
芯片电源引脚;K8(Ri_reset_O):
系统无线电复位引脚;
K9(Mic_plus):
CODEC(多媒体数字信号编解码器)麦克风音频差分正输入端;
K10(VREF):
音频CODEC(多媒体数字信号编解码器)VREF滤波电容接入端,使用时应在该端与地之前接一个100nF的电容器;
K11(VDDP):
CODEC(多媒体数字信号编解码器)输出放大器模拟电源;
L1(SubGND):
芯片接地端;L2(nSwe<0>):
系统写入使能;
L3(Sadd<15>):
系统地址(19位总线);L4(Sadd<12>):
系统地址(19位总线);
L5(Ri_rxd):
无线电数据接收端;L6(Ri_spi_misod):
无线电串行接口数据输出;
L7(Clk_in):
系统时钟输入;L8(AVDD):
CODEC模拟电源端;
L9(Mic_minus):
CODEC(多媒体数字信号编解码器)麦克风音频差分负输入端;
L10(SubGND):
芯片接地端;L11(GNDp):
CODEC输出放大器接地端。
MT1020由嵌入式微处理器和蓝牙基带外设组成,如图4示。
在该芯片中,系统内部时钟可以低至5MHz、内核供电电压为2V、硬件解码、支持DMA传输,所有这些使得该芯片具有超低功耗[5]。
图4MT1020A的内部结构框图
MT1020A的基带外围电路主要由主机接口、总线接口、蓝牙链路控制器、12kB缓冲RAM、队列管理器、音频编解码器以及音频和其它通信接口电路功能块组成。
该部分可用最小的软硬件开销完成各种重要的蓝牙系统操作。
基带外围电路中的总线接口主要用于完成微处理器与基带外围电路之间的各种通信,而外围电路内部各部分之间的数据传输则使用外围电路中的BT总线来完成。
键路控制器用来完成与外部无线收发器之间的通信,以实现数据发送时的装配、加同步字、帧头和CRC校验以及数字接收时的解码和检错等。
缓冲RAM是专门存储蓝牙数据包和变量的存储器,容量为12kB。
队列管理器可实现缓冲RAM与链路控制器以及主机接口与音频或其它通信接口之间的DMA传输。
音频解码器是一个全双工的解码器,内含麦克风放大器和耳机驱动器,其中的数字转换器可进行线性PCM、A律PCM、μ律PCM和CVSD间的相互转换[6]。
2.2.2PH2401无线收发器与嵌入式控制内核功能介绍
PH2401单片无线收发器用砷化镓工艺制造,具有高集成度、超低功耗、体积小等优点,专门优化用于2.4GHz无线个人系统,完全兼容蓝牙规范“BluetooothV1.0”。
它工作于2.4GHz的ISM频段,以每秒1600次的速度在79个频道(2.402GHz-2.408GHz)上快速跳频,最大位传输速率可达1Mbit/s。
PH2401采用调制指数为0.3的高斯频移键控制(GFSK)调制方式,信道带宽为1MHz,频偏在140kHz-175kHz之间,满足蓝牙2级和3级操作,送功率可在-10dBm-+2dBm之间编程设定,发射范围为10-100m。
接收器由RF-IF下变频器、自动增益控制(AGC)、滤波器、双通道模/数转换器及调制器组成。
基带控制器通过串行总线与PH2401接口。
通过对其内部寄存器的读写实现跳频、调谐等其它控制。
工业现场,MT1020A和PH2401所组成的蓝牙系统框图如图5所示。
蓝牙系统的具体接线:
本文用该芯片的串行异步收发器1,也就是E3(U1txd):
UART1——数据发送端,和F3(U1rxd):
UART1——数据接收端与工业现场接入点的传感器信号或控制仪表相连;用蓝牙外围电路的无线接口J6(Ri_spi_misod):
(无线电串行接口数据输入)L6(Ri_spi_misod):
(无线电串行接口数据输出)与PH1024无线收发器相连;用C11(Gpio<0>):
通用I/O口,D9(Gpio<1>):
通用I/O口,D10(Gpio<2>):
通用I/O口,E8(Gpio_<3>):
通用I/O口或芯片USB唤醒输出引脚,这四个通用I/O端口连接一个液晶显示屏,以显示接收到的数据。
其它再具体的接线本文限于篇幅不再赘述[7]。
图5基于MT1020A的蓝牙系统框图
2.2.3USB蓝牙适配器介绍
蓝牙USB适配器采用CSRBlueCore04,可去市场购买,价格大概在三十到四十元左右,用时先向PC机里面装相应的驱动程序,再将USB适配器插入PC机的USB接口中即可与MT1020A端和PDA端进行通信。
至此工业现场通信的三方通信硬件平台的搭建已基本完成,三方通信框图如图6所示。
图6三方通信框图
2.3PDA移动手持终端介绍
本节主要介绍PDA的有关情况,包括PDA的基本知识,PDA的操作系统和PDA的内存管理。
2.3.1PDA的基本知识
PDA:
全称为PersonalDigitalAssistant;纸面意思就是“个人数码助理”。
PDA最初是用于PIM(PersonalInformationManagement:
个人信息管理),替代纸笔,帮助人们进行一些日常管理,主要为日程安排、通讯录、任务安排、便笺。
随着科技的发展,PDA逐渐融合计算、通信、网络、存储、娱乐、电子商务等多功能,成为人们移动生活不可缺少的工具。
PDA的样式有多种多样,下面只给出一种PDA以供参考,如图7所示。
图7PDA外型图
t1.jpg(41.62KB)
2006-10-2520:
11
由于PDA具有台式电脑某些功能,而且体积小巧,便于携带,所以有些人把PDA称作“掌上电脑”。
这个名字非常贴切,一看就能明白这台设备的主要功能。
不过截止到今天,“掌上电脑”也就是PDA,相对于普通电脑来说,只是一个功能精简的系统,并不是真正意义上具有普通电脑的所有功能。
它主要体现在便携方便上,也就是“掌上”,并不能完全代替电脑。
智能手机:
随着科技的发展,原来的PDA增加了手机功能,例如Palm、WindowsMobile、Linux系统;或者手机增加了PDA功能,例如Symbian系统。
这些手机又被统称为“智能手机”,以便与以前的传统手机相区别。
之所以称为“智能”,相当与传统手机来说,增加了PDA功能。
从以上