欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于 Bluecore 的手机蓝牙附件的设计实现.doc

    • 资源ID:5198357       资源大小:319.50KB        全文页数:8页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于 Bluecore 的手机蓝牙附件的设计实现.doc

    精品论文推荐基于 Bluecore 的手机蓝牙附件的设计实现周尤 北京邮电大学信息与通信工程学院,北京 (100876) E-mail: maemo8807摘要:无线个域网(Wireless Personal Area Network,WPAN)是指提供个人及消费类电子设备之间进行互联的无线短距离专用网络。无线个域网专注于便携式移动设备(如个人计算 机、外围设备、PDA、手机、数码产品等消费类电子设备)之间的互联,以及这些设备与人之间的双向通信技术问题。1999 年推出,作为短距离数字语音和数据传输的开放式标准的蓝牙技术 6 正在成为目前的实现无线个域网的主流技术。本文通过一个具有基本功能的手 机附件的设计实现介绍了使用全球领先的蓝牙芯片供应商 CSR 公司的 Bluecore 系列芯片以 及其 Bluelab 集成开发环境进行蓝牙设备开发的过程。关键词:蓝牙;单芯片;CSR中图分类号:TP3121. 引言手机蓝牙附件通过蓝牙与手机连接,通过蓝牙应用层profile扩充手机的功能,本文设计 实现的蓝牙手机附件具有显示手机端信息的基本的功能,通过这一具有基本功能的蓝牙附件 的设计实现,本文介绍了使用Bluecore系列芯片以及Bluelab IDE进行手机附件开发的过程。 Bluecore系列芯片是是全球领先的蓝牙芯片供应商CSR公司提供的集成了很多功能的SOC芯片。到目前为止,已经出了6代蓝牙芯片。Bluecore芯片最大的特点在于其双核结构, 即芯片中有一个ARM核用来运行协议栈的之外,还有一个通用DSP核。此外芯片所需的外 围电路器件很少,可用作蓝牙单芯片的解决方案,即用户程序以及协议栈(包括底层和用户 层profile)以固件的形式作为一个整体运行在一个Bluecore芯片上。与Bluecore系列芯片配套的集成开发环境被称为Bluelab,Bluelab可以完成程序的编译链 接与下载, Bluelab以库的形式向应用程序提供蓝牙上层的协议栈和Profile的实现,其协议 栈层次图如下图所示 4 :图1 Bluelab协议栈结构图-8-图中显示的是Bluelab蓝牙协议栈的实现形式,其中“Application”是对用户层次profile的实现,例如通用对象交换Profile (GOEP) 对象推送配置文件 (OPP) 串行端口Profile (SPP)等, “Connection Library”是和蓝牙协议有关的部分,而“Lower levels of Bluecore Stack”对上面两 层提供支持,隐藏了硬件的细节,例如封装了对于芯片外部PIO的操作。在Bluelab所提供的 协议层次当中,与开发应用程序最相关的就是“Application”层,即蓝牙面向应用的profile层,向用户隐藏蓝牙通信的细节 3 。CSR公司的Bluecore芯片以及Bluelab集成开发环境提供了蓝牙的单芯片解决方案,使得 用户能够以最快的速度在自己的设备中集成蓝牙通信功能。2. 硬件部分的设计实现由于 Bluecore 芯片号称提供单芯片解决方案,于是硬件上的设计就变得非常简单。项 目中考虑到今后要加入对于音频的支持,就选取了具有多媒体处理能力的 Bluecore5-MM 芯 片作为主处理器,Bluecore5-MM 芯片需要外接一个 16Mbit 的 flash 芯片存储固件程序,同 时根据项目的需要,还要通过 IO 管脚连接 R80 接口的液晶屏。图 2 Bluecore 芯片以及系统框图作为系统主要部分的 Bluecore5-MM 芯片,具有芯片有以下特点1 :对于蓝牙 V2.0+EDR 协议的支持;在主处理器核之外拥有一个 DSP 协处理器,称为 Kalimba;16 为内置立体声编解码模块;内置电源管理模块;内置电池充电模块;USB 以及 UART 主机接口;可支持最大 32M 位的 flash 芯片;支持 I2S,PCM 以及 SPDIF 音频输入接 口;音频增强降噪功能;支持与 802.11 协议共存。该芯片可以提供单芯片蓝牙应用的完整方案,外围电路很少,由于芯片为双核结构,有 利于芯片在处理蓝牙通信的同时进行一些应用程序的处理 方便了项目在下一阶段增加音频 功能。3. 软件模块的设计实现本文中提到的手机蓝牙附件通过蓝牙与手机连接并进行数据传输,并且实时显示手机发 送的一些信息。于是软件方面附件的功能可以分为与手机蓝牙通信的部分和数据的显示两部 分。根据设备的通信需求,蓝牙通信程序部分需采用用于设备之间传输数据对象 OPP Profile:Object Push Profile 8 ,由于 OPP profile 又细分为 OPPC (client) 端和 OPPS(server)端 profile, 这两个 profile 区别在于只有 client 端可以发起数据传输的过程,但是附件设备与手机通信的 情景中,既有手机发起数据传输请求也有设备侧发起传输请求的需要,所以要在设备中实现 OPPC 和 OPPS 两个 profile。关于数据显示,在本项目是由芯片中的 DSP 核完成液晶的驱动,显示信息由运行在 arm 核上的蓝牙部分软件接收到之后按一定格式发送到 DSP 侧显示,这样可以是软件的层次更 清晰。这必定要设计到 Bluecore 芯片 arm3.1 液晶驱动模块的设计实现图 3 系统软件框图液晶驱动模块运行在 Bluecore 芯片的 DSP 核上,Bluecore 芯片的 DSP 核必须使用汇编 语言进行开发。液晶驱动模块在完成液晶的初始化操作之后,其入口就是一个消息处理函数 display,这个函数接收或并且处理 MessageId 为 DISPLAY_MESSAGE 的消息,于是开始就 要注册此消息处理函数:r1 = &$myfirst_long_message_struct;r2 = $DISPLAY_MESSAGE;r3 = &$display;call $message.register_handler;。 。 。 。 。frame_loop:jump frame_loop; 主程序在此循环等待显示消息的到来。 Display接收到的显示消息被分为显示文本行,显示字符以及显示图片三种类型,分别通过Disptext Dispdigit和Dispic函数完成。其中显示字符和文本最终的函数最终是调用显示字 符的函数Writechar,显示字符的Writechar从根本上也是靠现实图片来实现,即显示预先定义好 的字库数据。于是显示都集中到显示图片的问题上了,液晶驱动硬件显示图片的基础是在每 个象素的位置按要求显示黑或白,即写入“0”或者“1”的过程,这是由函数Write0和Write1完 成的。液晶显示模块的函数调用关系图如下所示:图4 液晶驱动模块函数调用关系操作液晶写入显示数据的函数Write0和Write1是靠处理器PIO模拟R80接口LCD的驱动 时序来完成的,最基本的操作即是能对任何一个PIO管脚置高置低的操作,这些基本操作是由下面汇编PIOSet函数完成的 2 :PIOSet:push rLink;r1 = r1 XOR 65528;/* r1: operand address */r7 = r7 AND r1;r7 = r7 OR r2;/* r2: operand code */ M$PIO_OUT = r7;r0=1;call $timer.n_us_delay;pop rLink;rts;3.2 两核之间通信的实现由于Bluecore5芯片有arm和DSP协处理器两个处理器核,而项目中的蓝牙附件进行数据 通信的蓝牙协议栈运行在arm核的VM之上,而驱动液晶进行显示的工作是由DSP核来完成 得,于是在软件设计中要考虑到处理其的双核通信问题:首先要考虑的是两处理器核对于外设控制权的分配,要由arm侧把操作液晶的PIO控制 权给DSP侧,DSP侧才能对这些PIO进行控制。这需要用到在CSR的基本支持库中提供的相 应函数:PioSetKalimba(65520,65520)把PIO4到PIO15管脚的控制权交由协处理器DSP。PioSetDirKalimba32(65520,65520); 设置DSP处理器控制管脚的输入输出方向。 Bluecore5芯片中的两个处理器核通信的基本机制是通过共享内存,在Bluelab环境中实现了相关的库函数处理两核之间的通信,其基本的通信方式是靠注册消息响应函数的方式处 理对方发来的消息:Task MessageLongKalimbaTask 函数在ARM注册处理来自DSP消息的消息处理函数。KalimbaSendLongMessage 用于发送消息给DSP侧。$message.register_handler函数在DSP注册处理来自ARM消息的消息处理函数$message.send 用于发送消息给ARM侧。由以上四个函数即建立了两个处理器核的双向通信消息响应机制,如图所示。图5 Bluecore芯片双核通信示意图同时要注意到两个处理器核的地位不是完全对等,其中DSP为协处理器,arm侧需要对 其进行启动3 :FILE_INDEX index = FileFind (FILE_ROOT,kal,sizeof(kal)-1); KalimbaLoad(index);把DSP的程序固件加载进DSP内存。KalimbaSendMessage(KALIMBA_MSG_GO, 0,0,0,0) 发送KALIMBA_MSG_GO命令启动DSP程序的运行。 至此液晶驱动模块的设计编写已经完成,可以在arm侧VM上运行的程序中通过KalimbaSendLongMessage发送一定格式的显示消息把数据显示在液晶屏上。3.3 蓝牙功能部分的设计实现在Bluelab集成环境中的库已经实现OPPC以及OPPS Profile的库7 。Bluelab集成开发环 境中应用程序功能的实现采取了注册消息处理函数的机制使用Profile库所实现的功能,消息 处理函数实现了一个状态及,各profile库向应用程序返回的状态值驱动这个状态机,从而使 应用程序和profile库能够同步运行。具体在初始化Profile库之前要声明一个任务(task)处理 与库的交互,每个任务对应有一个消息处理函数,其中以switch 分支分别处理不同的消息, 大体的程序实现架构如下:profile.task.handler = profile_handler; ConnectionInit(profile.task);static void profile_handler(Task task, MessageId id, Message message)switch(id)Case:CL_INIT_CFM: OppcInit(task, 1);。 。 。 。 。 。Case :OPPC_INIT_CFM:OppcConnect(state->session, &state->bd_addr, 0xFF);OPPC_CONNECT_CFM: Case:OppcPushObject() Case:OPPC_PUSH_COMPLETE_IND:Case:OPPC_DISCONNECT_IND:。 。 。 。 。 。蓝牙连接的建立以及消息的推送过程涉及到应用程序模块与Bluelab提供的profile库之 间消息的交互。基本过程是用户程序初始化蓝牙连接库,由OPPS库消息处理函数 opps_handler与OPP Server profile库共同建立OPP服务端等待手机侧软件的连接请求,在接受 手机连接请求之后OPPC库初始化并且向手机端的OPP服务端发起连接,连接成功之后就建 立起了设备与手机间的双向通信。图中显示了应用程序中的connect_handler与Bluelab提供的 connection Library之间的消息交互过程(图6)。图6 蓝牙连接建立过程的消息关系图在设备和手机的蓝牙连接简历之后,当手机侧有信息需要显示在设备上时会把信息打包 推送(push)到设备侧的OPP Server,设备在接收到数据之后调用ParseBTmsg分析数据类型 并且发送信息给用户交互处理任务的消息处理函数UI_handler,UI_handler把信息格式化为 显示数据后发送给运行在DSP侧的液晶驱动模块,液晶驱动模块显示完毕后回发信息告知 UI_handler,图中显示了应用程序中的connect_handler与connection Library在接收手机端消息 时消息交互的过程,以及connect_handler接收到消息之后与UI_handler交互的过程。同时在 设备端有用户输入时,设备会通过类似的过程使用OPPC协议把按键值推送(push)到手机 侧告知手机做出反应(图7)。4. 总结图 7 手机向附件推送数据时的消息关系图完成蓝牙手机附件的设计与制板焊接以及调试之后,经过测试,使用单芯片固件方案完 全可以胜任手机蓝牙附件的设计要求,完成手机端信息的显示。而且在处理用户的输入消息 以及在液晶的刷新方面都有着比较高的响应速度,满足了设计的需求。通过基于 Bluecore 的手机蓝牙附件的设计与实现过程可以看出,Bluecore 芯片提供了手 机蓝牙附件的单芯片解决方案,适合可以快速地开发出产品。Bluecore 芯片有两个处理器核, 在一定程度增加了芯片在蓝牙处理协议栈之外运行应用程序的能力,但是并非所有蓝牙单芯 片方案都具有可进行编程的 DSP 核,而且 CSR 蓝牙芯片中的 DSP 核仅能使用汇编语言进行 开发,于是这种单芯片方案不利于运行较复杂的应用程序。参考文献1 CSR 公司 2_Bluecore5-Multimedia External Issue 6_ BC57E687B2 CSR 公司 bc05-ug-001Pc Bluecore5-Multimedia Kalimba DSP User Guide3 CSR 公司 blab-ug-002Pb_BlueLab xIDEuser guide 4 CSR 公司 CS-110742-UGP1_BlueLab_Libraries_3.6 5 CSR 公司 CS-110560-UGP5_AssemblerUser_Guide6 Bluetooth Core Specification v2.0 + EDR 7 Bluetooth Object Exchange (OBEX) profile 8 Bluetooth Object Push Profile (OPP) profileThe Design and Implementation of a Bluetooth AccessoryBased on Bluecore ChipsZhou YouBeijing University of Post and Telecommunication, Beijing, PRC, (100876)AbstractWireless Personal Area Network refers to short range wireless network that connect electronic devices.Wireless Personal Area Network devote into the connection issues and bidirectional communication between portable devices such as mobile phones and PDAs. Bluetooth introduced in 1999 has become the mainstream technology realizing Wireless Personal Area Network. This paper introduces the development of Bluetooth devices using the Bluecore series chips and the Bluelab IDE from the world leading Bluetooth provider CSR via the design and implementation of a Bluetooth accessory with basic functions.Keywords: Bluetooth; single chip; CSR

    注意事项

    本文(基于 Bluecore 的手机蓝牙附件的设计实现.doc)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开