发布时间:2010-11-8 阅读量:2151 来源: 发布人:
中心议题
* 分析了蓝牙协议栈体系结构
* 研究了轻量级蓝牙协议栈
解决方案
* 在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得到了具体的验证和应用。
英特尔公司新一轮全球裁员行动正式启动。根据内部信息,其核心制造部门——英特尔代工厂(Intel Foundry)的“初步”裁员已于7月中旬展开,预计在本月底完成首阶段人员调整。公司高层在致工厂员工的备忘录中强调,该决策旨在“打造一个更精简、更敏捷、以工程及技术能力驱动的制造体系”,此举对于“赢得客户信任”及提升市场竞争力至关重要。
全球三大DRAM巨头——三星电子、SK海力士和美光科技——已正式拉开DDR4内存大规模停产的序幕,标志着主流内存技术加速进入更新换代期。继三星率先宣布其DDR4产品线将在2025年底结束生命周期后,美光也正式向核心客户发出通知,确认其DDR4/LPDDR4产品在未来2-3个季度内将逐步停止出货。
据行业消息,三星电子近期在其越南工厂启动115英寸RGB MicroLED电视的试生产。电视业务负责人Yong Seok-woo亲赴产线视察流程,标志着该技术正式进入量产准备阶段。尽管产品命名包含"MicroLED",但技术本质为采用RGB三色MiniLED背光的液晶电视(LCD),通过创新背光方案实现画质跃升。
AMD在AI Advancing 2025大会上正式宣布,其新一代MI350系列AI加速器将搭载三星电子与美光的12层堆叠HBM3E高带宽内存芯片。这是AMD首次公开确认三星的HBM3E供货身份,标志着双方战略合作进入新阶段。MI350X与MI355X两款芯片采用相同架构设计,仅在散热方案上存在差异,均配备288GB HBM3E内存,较上一代MI300X的192GB提升50%,比MI325X提升12.5%。
全球光学龙头舜宇光学科技(02382.HK)近期披露2025年5月出货量数据,呈现“车载领跑、手机承压、新兴品类崛起”的鲜明态势。在汽车智能化浪潮与消费电子结构性升级的双重驱动下,公司业务版图正经历深度调整。