发布时间:2010-11-8 阅读量:2215 来源: 发布人:
中心议题
* 分析了蓝牙协议栈体系结构
* 研究了轻量级蓝牙协议栈
解决方案
* 在lwIP基础上对该TCPIP协议栈做了进一步在蓝牙网络中的应用
* 物理层采用了串行接口和蓝牙模块通信
0 引言
蓝牙是一种低功耗的无线技术,工作在全球通用的2.4GHZ ISM(工业、科学、医疗)频段,目的在于取代现有的PC、打印机、传真机和移动电话等设备的有线接口。其优点在于,结构紧凑,使用便捷,功耗低,对人体危害小,成本低廉,易于推广等。
然而作为蓝牙协议栈本身,仍具有一定的复杂性,这对于在资源分配相对有限的嵌入式系统中的移植和应用带来了一定的瓶颈,譬如linux中的BlueZ往往就很难在80C51系列单片机或内置RAM仅有几十K的ARM7系列处理器上得到移植。于是轻量级蓝牙协议栈的研究与应用将显得尤为重要,因为这对于产品的方案策划提供了一条新的思路,同时也将大大降低产品成本。本文介绍一种lwBT轻量级蓝牙协议栈。该蓝牙协议栈的设计基于lwIP TCP/IP网络协议栈,目的是使得lwIP协议栈可以在蓝牙链路上传输IP包,进一步拓展lwIP协议栈的应用。
lwIP是由瑞典计算机科学院Adam Dunkels所编写的一套开源的TCPIP协议栈,协议设计考虑了低端系统资源的有限性,整个协议栈只占用十几K的RAM和40K左右的FLASH,这也给lwBT对蓝牙协议栈的裁剪带来了可能。
1 蓝牙协议栈体系结构
蓝牙体系结构中的协议可以分为以下四层(如图1所示):
·核心层协议 基带、LMP、L2CAP、SDP;
·电缆替代协议 RFCOMM;
·电话传输控制协议 TCS二进制、AT命令集:
·可选协议 PPP、UDP、TCP、IP、OBEX、WAP、vCard、vCal、IrMC、WAE。
除了以上的协议外,还有如主机控制器接口HCI,为链路管理器、基带控制器、硬件状态和控制寄存器提供统一的命令接口。
·基带协议 基带和链路控制LMP协议确保了匹克网内的蓝牙设备之间有射频构成物理连接。蓝牙的射频系统为了提高抗干扰性,采用了跳频技术,任一分组在指定时隙、指定频率上发送,它使用查询和寻呼进程来使不同设备间的发送频率和时钟同步。基带数据分组提供了两种数据连接方式,面向连接(SCO)和无连接(ACL)。
·链路管理协议(LMP) LMP负责匹克网中蓝牙设备连接的建立和设置。主要功能有连接的发起、交换、和身份验证和加密;协商基带数据分组的大小、工作模式、工作周期;各设备的连接状态回报。
·逻辑链路控制和适配协议(L2CAP) L2CAP是基带上层协议,和LMP在同层次上工作,他们的区别在于当业务数据不经过LMP是,L2CAP为上层提供服务, L2CAP允许高层协议以64KBtyes数据分组。
·服务搜索协议(SDP) SDP提供了应用发现可用服务,以及确定可用服务特点的方法。服务在蓝牙协议架构中起到至关重要的作用,它是所有用户模式的基础,从而在蓝牙设备间建立相应的连接。
·电缆替代协议
RFCOMM是基于ETSI07. 10规范的串行仿真协议,在蓝牙基带协议上仿真RS232控制和数据信号,为使用串行传输机制的上层协议提供服务。
·电话控制协议
电话控制协议是面向比特的协议。它定义了蓝牙设备间建立语音设数据呼叫的控制信令,定义了处理蓝牙TCS设备群的移动管理进程。
2 lwBT对蓝牙协议栈的简化
lwBT是在lwIP基础上对该TCPIP协议栈做了进一步在蓝牙网络中的应用,继承了lwIP的设计思路和风格,如内存管理、消息处理、错误处理等等。目前的版本可以支持LAP(LAN Access Point)、DUN(Dial-UpNetwork)等。图2为lwIP协议内核与实现。
2. 1 lwIP的特点
(1)支持多网络接口下的IP转发;
(2)支持ICMP, IGMP, PPP, PPPoE;
(3)支持IP分片;
(4)支持专门的内部回调接口(Raw API)用于提高应用程序的处理速度;
(5)支持直接TCP与UDP模块函数调用接口和lwIP API函数调用接口及SocketAPI (多线程环节下);
(6)支持操作系统模拟层接口。
2. 2 lwBT的体系结构
LwBT实现了蓝牙协议中必要的协议部分,如RFCOMM、L2CAP、SDP、HCI等,同时对蓝牙协议的可选协议PPP、NAT、TCP/UDP/IP做了支持,物理层采用了串行接口和蓝牙模块通信。这里需要指出的是lwBT中使用的PPP协议没有采用lwIP中自带的模块,而是另外设计的更为方便的PPP模块,支持PPP协议里的LCP(Link Control Protocol)、IPCP ( Internet Protocol ControlProtocol)。lwBT对HCI层也做了简化,只提供了部分命令接口来初始化和控制ACL链接,但结构上可以很容易地扩展出更多的命令接口是事件处理。
3 lwBT接口
LwBT的设计沿用了lwIP的设计思想,程序运行基于事件处理回调函数,协议栈和控制程序可以运行在同一个线程中。每个回调函数将当前蓝牙连接的状态作为参数传递,同时,为了保持程序运行的状态,回调函数被调用时,还将传递一个独立的参数。其中用来设置应用程序连接状态函数有:
其中参数pcb是当前连接的控制块, arg是将要传递给回调
函数的参数的指针。
3. 1 lwBT系统编程接口
lwBT的编程接口比较清晰,主要有lwbt_memp_init(), phybusif_init(), hci_init(), l2cap_init(), sdp_init(), rfcomm_init(), ppp_init(), l2cap_tmr(), rfcomm_tmr(), ppp_tmr()和phybusif_input()。大多数是用来对蓝牙协议栈的初始化, phybusif_input()在接收到ACL数据包时被调用, _tmr函数必须在系统运行中每秒调用一次,用来处理数据包的超时重传等。
3. 2 lwIP设备驱动编程接口
L2CAP层需要有以下的底层支持:
lp_connect_req():让LMP层创建与一个具体蓝牙设备的连接。
lp_acl_write():发送到ACL连接的数据。
lp_connect_cfm():确认基带的来连接请求是否成功。
lp_disconnect_ind():指示基带的已经关闭或超时。
l2cap_input():?处理接受到得L2CAP包,传递给上层。
4 lwBT的应用
CSR公司的蓝牙模块已经成为市场中的一大主流,这里采用了CSR公司的BlueCore2-Audio系列的BC213159A,该芯片具有4Mbit的内部可编程ROM,可以通过下载不同的Firmware来支持不同的产品方案, (如图4所示),该芯片具有AudioInOut,SPI,UART,USB, PIO, PCM等接口。BC213159A支持不同的蓝牙软件协议栈,可以在主机和设备之间灵活地分配功能模块。为了实现一个非对称的嵌入式网关,即将SPI、CAN总线上的数据转发到蓝牙网络中,HOST端采用AT91sam7x128的ARM芯片通过UART连接,蓝牙协议栈实现在HOST端,同时具备SPI和CAN的传输功能。
5 结语
本文介绍了蓝牙协议栈的整体框架结构,在此基础上阐述了一轻量级蓝牙协议栈lwBT的简化原理和具体的编程接口,并把CSR公司的BC213159A和AT91sam7x256相结合,把蓝牙协议栈运行在HOST端,实现非对称的嵌入式网关, lwBT得到了具体的验证和应用。
在2025年7月24日,谷歌母公司Alphabet(纳斯达克代码:GOOG, GOOGL)正式发布了截至6月30日的第二季度财务报告。财报显示,该公司在2025财年第二季度实现了强劲的整体增长,多项核心指标超出市场预期。具体来看,Alphabet本季营收达964亿美元,较去年同期的847亿美元攀升14%,若按固定汇率计算,增幅为13%。同时,净利润达到282亿美元,同比增涨19%。这些数据反映了Alphabet在AI技术驱动的转型中持续领先,业务多元化战略效果显著。
根据TrendForce集邦咨询最新研究,全球服务器市场进入平稳发展期,AI服务器成为各大ODM厂商的战略重心。英伟达Blackwell平台产品(如GB200 Rack/HGX B200)自第二季度起扩大量产,新一代B300/GB300系列已步入样品验证阶段。预计2024年Blackwell GPU将占英伟达高端GPU出货量的80%以上,奠定其在AI算力领域的统治地位。
据供应链确认,台积电2nm制程将于2025年下半年正式量产,初期月产能规划达4万片晶圆。根据产能爬坡计划,2026年1月将提升至5.3万片,同年年中突破8.5万片,2026年底实现10万片目标。至2028年,总月产能预计突破20万片,创先进制程产能新纪录。
LG电子正在加速拓展日本市场战略版图,通过汽车零部件研发机构扩建和消费电子业务复兴双轨并行。2024年7月,该公司在横滨、名古屋等核心工业区启动专项招聘,重点招募桥梁工程师、嵌入式开发及质量管控专家,以强化与丰田、本田等头部车企的技术协作。
全球领先的电子元器件与工业自动化产品授权代理商贸泽电子(Mouser Electronics)宣布,即日起正式供应Nexperia推出的PESD1ETH10L-Q和PESD1ETH10LS-Q两款高性能ESD(静电放电)保护器件。新品严格遵循OPEN Alliance技术规范,专为10BASE-T1S汽车以太网应用场景设计,满足车载网络对信号完整性与系统可靠性的严苛需求。