长期以来 , 移动机器人研究中的数据通信问题一直困扰着研究人员 , 一些多关节、结构复杂的机器人系统不得不背负着大量的数据线 , 繁琐的线缆对机构的运动空间增加了额外的限制 , 使机器人的运动空间缩小,本文阐述了一种通用性好、通信性能较强、采用成熟技术、运行稳定安全的模块化通信系统, 适合大多数机器人应用 , 无论主控制器简单还是复杂 , 有无操作系统或使用任意一种操作系统 , 只需要使用通用标准的硬件接口和简单有限的数据帧定义就能构成一个无线透明通道 , 将大大简化无线通信的开发过程,本文所述的蓝牙无线通信模块 ,采用全双工、时分复用的通信方式 , 具有很强的抗衰减和抗干扰能力 , 与其它工作在相同频段的系统相比 , 跳频更快 , 数据包更短,其软硬件设计力求做到通用 , 使无线通信模块成为一个透明的通道 , PC 与机器人、机器人与机器人之间就像是直接通过串口通信一样,这种通信模块将具有广阔的应用前景。 1.系统结构 在球形机器人的开发过程中 , 遇到了无线通信的问题Λ为了阐述球形机器人对无线通信的需求 , 先将我们自行设计并研制成功的球形机器人的结构设计作一个简要介绍. 如图 1 所示 , 球形机器人结构上是一个全封闭的球形机械 , 包括内外两层结构 , 采用内驱动装
置Λ 固联在球壳内壁的电机 1 输出轴中心线与轴5 中心线处在同一直线上 , 构成转轴一 ; 固联在圆
环 4 上的电机 2 输出轴中心线与轴 6 中心线处在同一直线上 , 成为转轴二Λ转轴一中心线垂直相交
于转轴二中心线 , 且交点为球心Λ配重 7 固联在转轴二上Λ 电机 1 和电机 2 分别驱动配重绕转轴一
和转轴二转动 , 使配重中心偏离球心和球壳与地面接触点的连线 , 从而产生偏心力矩 , 驱动系统运
动。 球形外壳和内驱动单元使球形机器人实现了全向性运动 , 这也就使得球与外部无法用线缆连接 , 为了解决这个问题 , 就必须引入无线数据通信手段。 综合本系统对无线通信技术的要求 , 蓝牙是符合需求的通信技术 , 所以本项目分隔蓝牙协议栈 , 利用蓝牙底层协议实现无线连接和通信。 蓝牙通信模块如图 2 所示Λ 采用 RS 2 232 接口 , 软件上分割蓝牙协议栈 , 直接在 HC I 层完成查询、鉴权、连接和通信功能 , 构成一个无线通道Λ 只需了解模块的数据帧定义 , 无线部分的打包、解包、传送、接收、校验都对使用者透明。 1.1 PC与通信模块1(BS)的通信 PC 与接入点 ( BS ) 进行串行连接和数据传输 , 产生认证结果 , 显示认证结果 , 处理 BS 上传
数据 , 发送带有通信模块2(M S ) 地址的数据包到 BS, 管理网络 。 系统启动后 , 运行 PC 端程序 , PC 发送链路检测帧检测 PC 与 BS 的有线连接是否正常Λ收到 BS 返回链路确认帧无误表示正常Λ BS 查询工作范围内的蓝牙通信模块 , 将查询结果发送到 PC; PC 认证查询结果中的地址是否为目标地址 , 选择正确地址发送连接指令到 BS;BS按照连接指令连接 M S 并向 PC 报告连接状态Λ 连接建立起来后 , PC 就可以与机器人通信。 1.2 机器人主控制器与通信模块2(M S ) 的通信 机器人主控制器与 M S 通过串口连接 , 进行串行数据通信 ;M S 响应 BS 的查询 , 与之建立
连接 , 进行无线数据通信Λ M S 模块受控于 BS 发来的命令信息。 系统启动并完成初始化后 , 机器人主控制器检测与通信模块的串行连接是否正常Λ M S 缺省处于扫描 BS 的无线查询状态 , 扫描到 BS 查询时 , 发送本地地址和时钟值到 BS,BS 接到 PC连接指令时连接 M S Λ连接完成后 M S 向机器人发送连接状态帧 ,M S 接收 BS 发送过来的数据解包后转发至主控器并接收主控器发送的数据打包发送至 BS Λ 机器人主控器与通信模块 2( M S ) 通信中使用的通信帧格式与 PC 和 BS 通信使用的帧格式定义相同。 1.3 蓝牙通信模块设计 BS 和 M S 分离来看各是一个能够独立脱机运行的嵌入式设备。 蓝牙有两种主要状态 : Standby 和 Connection [1] , 通过 Inquire 和 Page 过程转换Λ蓝牙的连接只需知道对方的地址就可以通过 Page 过程建立连接Λ 在不知道对方地址时 , 通过 Inquire 过程查询得到对方的蓝牙地址然后再进行 Page ,因为工作范围内可能存在其他外部蓝牙设备 , 所以在连接过程中实施鉴权Λ具体来说是在 BS 和M S 中事先设置一个相同的 P IN 码 , 根据蓝牙协议中的算法进行比对无误后才能连接成功,通信中的无线信号使用密文传输 , 增加了通信的安全性,设计的实用通信模块如图 3 所示。
程序上电后 ,M CU 通过串口通讯向蓝牙模块发出复位指令 , 并获取蓝牙模块的应答 , 检查应答是否有效Λ,若没有应答或无效 , 将重新向其发出复位指令 , 始终无效将报故障灯 , 应答有效后 , 系统进入休眠状态 ,20 s ~ 1 m in 将其唤醒 , 然后再次向蓝牙模块发出复位命令Λ M CU 向蓝牙
模块发出 HC I 指令 , 蓝牙模块返回应答 ,M CU 对应答事件进行处理Λ BS与 M S 的通信过程如图 4 所示。
1.4 无线网络通信与管理功能 如图 5 所示 , 利用蓝牙通信强大的网络管理功能 , 使用一台控制 PC,通过一个与 PC 串口连接的 BS 自动发现、连接并控制多个工作范围内的机器人 , 步骤如下 (1) BS 周期性查询工作范围内的 M S, 控制 PC 能够检测到所有进入工作范围内的机器人 2) 控制 PC 验证 M S 的合法性并命令 BS 连接合法的 M S, 接收 M S 上传的蓝牙数据包 ,根据 PC 指令将 PC 数据打包通过 BS 下传到指定的 M S, 控制指定的机器人 。 (3) BS 最多能够同时与 255 个 M S 保持连接状态 , 其中处于 A ctive 状态的只有一个 , 其余处于 Park 连接模式 , 即控制中心能够以时分复用的方式控制多达 255 个机器人 。 (4) BS 能够根据 PC 指令使当前处于A ctive 状态的 M S 变为 Park 模式 , 然后将任意指定的 M S 转换到 A ctive 状态 , 具有较强的网络管理能力。 2 测试结果 单机测试中 , 我们将 BS 和 M S 分别接到 PC 机的不同串口上Λ 接通 BS 和 M S 电源 , 待 BS 自动查询并与 M S 建立无线连接后 , 使用串口调试工具向 BS 发送数据 ,BS 收到数据自动完成解包并按蓝牙格式打包无线发送到 M S;M S 收到 BS 发送的数据包后解包还原发送到 PC 机上显示Λ 测试中发送了如下数据帧 :7E0110101112131415161718191A 1B1C1D1E1F01
测试中 , 从 PC1 的串口 1 发送的以上数据帧被蓝牙模块成功地用无线方式传送到 PC2 的串口 1, 并在串口调试工具窗口中显示出来Λ测试中 PC 串口的波特率被设置为 9 600 bit ? s Λ当采用自动发送方式时 , 仍然采用以上数据帧 , 单向发送间隔设置为 50 m s Λ 连续大密度传送数据 , 传送 1 G 数据量测试无故障Λ双向发送间隔时间为 100m s, 连续大密度传送数据 , 运行 1 G数据量无故障Λ 当发送时间间隔缩短时 , 由于 BS 选用的单片机处理能力有限 , 测试中出现丢包现象 , 稳定性有所下降。 系统测试中 , 采用了一个和两个 M S,BS 与 PC 串口相连 ,M S 脱机运行Λ 测试程序中 M S将接受到的 PC 数据原样发送回 PC 并显示 , 数据帧及波特率设置与单机测试相同Λ 发送间隔时间为 100 m s, 连续大密度传送数据 , 运行 1 G 数据量无故障。 3 结 论 该通信模块可以简化机器人研究工作中无线通信的开发进程 , 研究人员只需要了解一种统一的数据帧格式 , 自行编写一个打包解包模块 , 使蓝牙模块成为一个透明的通信通道 , 就可以方便地通过串口直接与机器人实现双向数据收发Λ 由于蓝牙技术是通信领域内一项国际通用的统一规范 , 世界范围内 IT 业界各知名大公司投入了大量的人力、物力和时间对该技术进行完善和研究开发 , 保证了这项技术的可靠性和稳定性 , 随着人们对蓝牙技术的进一步了解和推广 , 相信在机器人研究领域内有更多的人会用到这项技术Λ本系统经测试证明系统运行效果良好 , 具有可推广价值。 来自海洋兴业仪器http://www.hyxyyq.com
|