发布时间:2010-11-8 阅读量:2049 来源: 发布人:
中心议题
* 设计一种基于蓝牙协议栈BlueZ的蓝牙Ad-Hoc网络构建方法
* 适用于多机器人系统中娱乐机器人间的通信
解决方案
* 在BNEP协议层上进行Socket网络编程
* 选用Linux蓝牙协议栈BlueZ进行移植
* 搭建了蓝牙技术的嵌入式开发平台
0引言
在多机器人系统中,为了有效地交流和协商,必须解决机器人之间的信息处理与传输问题,即多机器人通信问题。本文对多娱乐机器人系统(即娱乐机器人组成的多机器人系统)中通信网络的构建问题进行了研究。针对娱乐机器人工作场合面积较小、电磁干扰较少的特点,本文基于蓝牙协议栈BlueZ进行了多娱乐机器人系统蓝牙Ad-Hoc网络的构建。由于蓝牙规范尚未对蓝牙的Ad-Hoc网络形成问题做出具体描述,没有形成一个统一的标准,本文在蓝牙网络封装协议(BNEP)、蓝牙个域网(PAN)应用模型、Socket网络编程等技术基础上,提出了一种适合多娱乐机器人系统的蓝牙Ad-Hoc网络构建方法,实现娱乐机器人简单、自主、灵活的通信。
1多机器人系统中蓝牙技术的应用
多娱乐机器人系统通信主要通过构建小型无线网络实现。当前无线自组织网络(Ad-Hoc)已成为多机器人系统通信的重要解决方案。Ad-Hoc网络具有无中心、自组织、动态拓扑等特性,并且为机器人提供地位平等的通信,特别适用于多机器人系统的通信。
在短距离无线通信技术中,蓝牙被认为是组建多跳Ad-Hoc网最有前途的技术之一。蓝牙技术可以提供点对点的和点对多点的通信。点对多点网络有Piconet和Scatternet两种,均被称为蓝牙Ad-Hoc网络。Piconet(如图1a所示),是指一台主设备和k(k≤7)台从设备构成的主/从式无线网络,适用于小型多娱乐机器人系统主/从式通信;Scatternet(如图1b所示),通过将Piconet桥接起来,形成更复杂的散射网(Scatternet),适合大型多机器人系统应用的要求,并且可为机器人提供平等通信。
本文所构建的蓝牙Ad-Hoc网络是一种易于实现、拓扑简单的scatternet网络,并且由于蓝牙产品价格低廉,易于集成,使其更加适合于多娱乐机器人系统通信的应用。
2蓝牙技术开发平台的搭建
为了实现嵌入式系统对蓝牙技术的支持,本文选用了Linux蓝牙协议栈BlueZ进行移植,搭建了蓝牙技术的嵌入式开发平台。
2.1 BlueZ蓝牙协议栈
BlueZ是Linux下的蓝牙协议栈,它提供了对核心蓝牙层和协议的支持,包含蓝牙内核子系统核心、HCI层、L2CAP层、同步面向连接链路SCO的音频内核层、参考串口模型(RFCOMM)、BNEP等,各层之间通过标准Socket接口通信。BlueZ具有完全的模块化实现,硬件抽象化,对称多重安全处理,多线程处理数据等特点,因此在BlueZ基础上的蓝牙应用开发更加灵活、高效。BlueZ在Linux系统中的结构如图2所示。
2.2蓝牙协议栈BlueZ的移植
针对BlueZ的内核空间和用户空间两个部分,本文对蓝牙协议栈的移植也分成两部分完成,具体步骤如下:
(1)嵌入式平台的搭建。该嵌入式平台硬件部分由三星公司推出的一款高性价比32位的RISC处理器S3C2440和蓝牙CSR BC4芯片构成;软件部分则移植了2.6.13版本的嵌入式Linux操作系统;
(2)创建交叉编译环境。将GNU提供的ARM工具链ARM-LINUX-GCC-3.3.2安装于开发用的PC机上,为BlueZ协议栈的交叉编译和移植做准备;
(3)BlueZ内核代码的实现。在2.6的内核中BlueZ已经成为Linux内核的一部分,要实现内核对BlueZ的支持,只需通过内核配置实现。在编译内核时开启对蓝牙USB模块的支持:makemenuconfig后按“Y”选中:L2CAP protocol support,SCO links support,RFCOMM protocol support,RFCOMM TTY support,BNEP protocol support,HIDP protocol support,另外在Bluetooth device drivers里选上HCI USB driver,然后进行make zImge即可;
(4)BlueZ库和工具包的移植。先将下载的bluez-libs-2.25.tar.gz和bluez-utils-2.25.tar.gz软件包在PC端交叉编译并安装,将得到的库和工具拷贝至开发板文件系统的相应位置,制成文件系统镜像。
(5)下载镜像。将前面生成的内核镜像与文件系统镜像依次下载到开发板对应的位置,完成蓝牙协议栈BlueZ的移植。
(6)试验平台测试结果。对嵌入式蓝牙开发平台进行测试,结果表明蓝牙协议栈BlueZ移植成功,平台可用。
3蓝牙Ad-Hoc网络的构建
本文蓝牙Ad-Hoc网络的构建采用在BNEP协议层上通过BSD Socket网络编程加以实现。
3.1 BNEP协议
蓝牙网络封装协议BNEP(Bluetooth Network Enether sulation Protoeol)是用于PAN应用模型的蓝牙协议。BNEP协议的存在使得网络层可直接映射到L2CAP层,无需通过PPP和RFCOMM层。
BNEP支持IEEE802.3/Ethernet封装所支持的所有网络协议,为上层IP协议提供了类似于以太网的接口,网络中数据包的转发可以通过IP层实现。由于IP层独立于链路层,蓝牙的基带被看作是OSI参考模型中和以太网、令牌环、ATM处于同一层次的传输介质。
BNEP协议实现简单,安全性好,在其PAN应用模型中支持分组Ad-Hoc网络(Group Ad hoc Network),定义了主单元GN和从单元PANU。该结构中Piconet从单元数据交换须通过主单元转发来实现。本文借鉴PAN应用模型,通过BNEP协议层上网络编程实现蓝牙Ad-Hoc网络各设备之间通信。
3.2 Socket编程
BSD Socket是一个通用的系统接口,它不仅支持各种网络工作形式,还是一种进程间通信机制。在BSD Socket层的下层是BlueZ Socket层,该层增加AF_BLUETOOTH蓝牙地址族,实现蓝牙协议栈和BSD Socket层的接口。BlueZ使用了与以太网通信相同的层次模型,并且每层都提供了各自的Socket接口用于和其它程序通信。实现了Socket网络编程对蓝牙网络应用的支持。Socket通信的流程(流式套接字)如图3所示。
本文使用Socket套接字编程软件实现蓝牙Ad-Hoc网络,将每个娱乐机器人视为一个蓝牙Ad-Hoc网络节点,首先各成员进行初始化并随机运行服务器程序或客户端程序,建立通信套接字。随后服务器端率先进入监听状态,客户端套接字则发出连接请求,服务器端收到请求后被动应答,建立另一个套接字进行通信,而原来负责监听的套接字仍进行监听。
本文针对GN和PANU分别设计了服务器端1serve和客户端2client两个程序模块,并进行了通信测试。
测试中首先运用蓝牙工具包为PAN应用模型提供的命令建立GN和PANU连接,实现对网络层的支持;然后分别为两个蓝牙模块运行1serve和2client程序,最终实现GN向PANU发送字符串“hello??”,从而验证了两程序模块的可用性。
3.3蓝牙Ad-Hoc网络的构建算法
针对蓝牙Ad-Hoc网络存在三种类型节点:主节点GN、从节点PANU和桥节点BRG。本文设计的GN运行1serve程序模块,进行PANU设备的侦听;PANU运行2client程序模块,搜索发现周围的GN节点,并向其中一个搜索到的GN设备发出连接请求;BRG则同时运行1serve和2client程序模块,以双重身份连接加入网络。
在网络构建算法中,文中引入了三个变量,角色标志变量s,网络权值w和节点数目m。s以[0,1]间的随机数初始化,用于节点初始化角色的设定,建联后则以0/1二值变化,作为桥节点标志位,s=1为桥节点,s=0为非桥节点;w为大于0的整数,用作标定该节点连接的PANU数;m亦为大于0的整数,用作该节点搜索到的节点数目的标示。具体蓝牙Ad-Hoc网络的构建过程为:
(1)程序初始化。各节点进行初始化,将w和m值置为0,将s赋值为一个[0,1]的随机数;
(2)判断s。若1/3<s<2/3,则设定该节点为GN,运行1server,进入侦听状态等待其它蓝牙连接,否则设定为PANU,运行2client,进行搜索发现周围的GN;
(3)组建Piconet。GN与PANU随机构建Piconet,并保存节点信息,并将搜索到的节点数赋值给m,将连接的PANU数赋值给w。
(4)进行PANU节点侦听。上一步构建的Piconet中若GN所连接的PANU数饱和(w=7),则依次将其所连接的PANU的角色标志位s置1,运行1serve程序模块进行侦听;
(5)在PANU中选择桥节点BRG。比较步骤4中PANU侦听到的节点,将侦听到新PANU进行比较,优先选取侦听到节点最多(即m最大)PANU和所侦听到的新节点不被其他成员涵盖的PANU为桥节点BRG,比较中若m相等则优先选择先进行侦听的PANU为桥节点BRG。
(6)进行GN节点搜索。将GN节点的角色标志位s置1,运行PANU模块程序,进行节点搜索;
(7)在GN中选择桥节点BRG。比较步骤6中搜索到的节点,将该节点与侦听到的新节点进行比较,比较权值w,权值大的设为GN,权值小的设为桥节点BRG,w相等时比较m,m大的设为桥节点BRG,w、m均相等时优先进入搜索的GN设为桥节点BRG。
(8)loop查找新节点。该步骤主要是步骤4、5、6、7循环进行,为发现新节点,直到不再有新节点发现则进入步骤9;
(9)网络优化。若经过步骤7无新发现,则汇总节点信息并保存,根据各节点信息按照使高一级网络成员w最大化原则进行网络优化;
(10)建联完毕,继续监听网络变化。
其蓝牙Ad-Hoc网络构建流程图如图4所示。
在蓝牙Ad-Hoc网络构建过程中还需要解决中间节点网桥和数据转发问题。中间节点在与多个蓝牙建立BNEP连接后,会创建多个BNEP接口,如果给每个BNEP接口都分别配置一个IP地址,则会造成IP地址的利用和管理混乱。另外,再实现多跳通信时,必须在BNEP接口之间进行数据的转发。因此本文采用以太网网桥技术(802.1d Ethernet Bridging),将几个独立的BNEP(x)接口连接成PAN0,以此作为所有BNEP接口的代理,PAN0作为唯一的接口,各个BNEP接口数据的转发通过网桥实现数据的转发。
3.4蓝牙Ad-Hoc构建分析
本文以9个蓝牙节点的组网(如图5所示)过程对蓝牙Ad-Hoc网络构建过程进行分析。首先对蓝牙模块进行初始化随机进入GN/PANU状态。则节点1、6成为GN,进入侦听状态,而其余节点则作为PANU进入连接请求状态,如图5a所示;随后进入Piconet组建过程。经过几个时隙,构建成Piconet1(1、2、3、4、5)和Piconet2(6、8、9)两个Piconet,并仍有一个自由节点7,如图5b所示;Piconet组网结束后,进行节点搜索,取得节点信息并比较,初步完成蓝牙Ad-Hoc网络的构建,如图5c所示;最后,综合比较网络中的节点信息,按照高一级网络权值w最大的原则对网络进行优化,使得4号节点胜出成为网络主节点GN,6号节点胜出为桥节点BRG,最终完成蓝牙Ad-Hoc网络构建,如图5d所示。
由构建结果可以看出,任两个节点在通信范围内的都建立了相应的链路,并且拥有最少的桥节点数目,简化了网路的拓扑结构,提高了建联的的实时性,是一种较为理想的结果。因此,本文提出的蓝牙Ad-Hoc网络构建方法是一种切实可行多娱乐机器人系统通信解决方案。
4结论
本文设计的蓝牙Ad-Hoc网络构建方法,简单有效,易于编程实现。按照该方法构建的网络,实现了网络层上的娱乐机器人间的平等通信,具有拓扑简单,成本低廉等特点,满足多娱乐机器人系统简单、自主、灵活的通信需求。本文为多娱乐机器人系统通信网络的构建提供了一种可行性方案,也为后续的多娱乐机器人系统的研究奠定了基础。
随着汽车电子化、智能化加速,车载系统对ESD(静电放电)防护的要求日益严苛。虹扬电子推出的车规级ESD保护二极管AH05C325V0L,采用SOT23封装,符合AEC-Q101标准,专为CAN总线、车身控制单元(BCU)及电子控制单元(ECU)等场景设计。其核心特性包括80W浪涌吸收能力、5V反向工作电压、单向电流设计,以及低漏电流和高抗静电能力(±30kV接触放电),为敏感电子元件提供高效防护。
全球显示面板核心元器件市场呈现企稳态势。根据TrendForce最新研究报告显示,2023年第一季度面板驱动IC产品均价环比下降幅度收窄至1%-3%区间,第二季度虽仍存在价格下行压力,但降幅预计将控制在2个百分点以内。这标志着自2020年疫情引发的剧烈市场波动后,驱动IC价格曲线首次出现明显筑底信号。
在全球5G网络部署与边缘计算需求井喷的背景下,易飞扬创新推出基于O波段的100G QSFP28 DWDM光模块,直击城域网络升级痛点。该产品通过零色散传输架构与硅光集成技术,突破传统C波段方案在中短距场景下的性能瓶颈,以低于3.5W的功耗实现30km无补偿传输,同时兼容开放光网络架构。据行业测算,其部署成本较同类方案降低40%,为5G前传、分布式AI算力互联及绿色数据中心建设提供了高性价比选择,或将成为运营商边缘网络改造的关键技术引擎。
在全球能源转型与欧盟新电池法规(EU 2023/1542)的驱动下,旭化成微电子(AKM)于2025年2月正式量产AP4413系列充电控制IC,以52nA超低功耗、94.8%充电效率及多电压适配等核心技术,重新定义小型设备供电逻辑。该产品通过电容器预充电机制破解完全放电恢复难题,并凭借动态电压调节算法兼容光能、振动等微瓦级能源输入,显著优于TI、ADI等国际竞品。面对国产替代窗口期,AP4413依托BCD工艺与专利壁垒抢占先机,有望在智能家居、工业传感等千亿级市场替代传统一次性电池方案,成为环保供电赛道的标杆级解决方案。
作为全球电子元器件分销领域的领军者,贸泽电子始终以"技术赋能创新"为核心战略,通过构建覆盖1200余家原厂的供应链网络,为工业自动化、汽车电子、智慧农业等前沿领域提供关键技术支持。2025年第一季度,公司新增物料突破8,000项,其中多项产品体现了行业技术演进的三大方向: