首页 > 应用与设计 > 电器 > Service Robots > 服务型机器人 > TI机器人系统学习套件(TI-RSLK) >

服务型机器人

最新课程

热门课程

TI-RSLK 模块 19 - 讲座视频 - 低功耗蓝牙 - 简单网络处理器

大家好, 我是 Jon Valvano。 在本视频中,我想向您展示 简单网络处理器。 在第一个视频中,我们讨论了无线技术, 在第二个视频中,我们了解到低功耗 蓝牙具有配置文件、服务和特征。 但在本视频中,我们将讨论 您将用来实现蓝牙通信的协议, 您将用来实现蓝牙通信的协议, 这个协议称为简单网络处理器。 现在,我们开始吧。 好的。 这是我们的硬件,正如我在上个视频中提到的。 MSP432 负责运行您的机器人, 这是您的机器人上面的 2650 BoosterPack, 它使用这里的 UART 通道和两个握手信号 来传递数据。 当 MSP432 想要复位 2650 时, 它将会把复位线拉低, 同时将主设备就绪线拉高, 这将会导致 2650 中发生复位, 从而可以从一个已知的点启动。 现在,MSP432 是主设备, 2650 是从设备,而且它满足这个 命令响应协议。 命令可以来自 MSP432,也可以来自 2650, 这两个器件都需要 响应彼此的请求。 好的。 所以我们将把消息从它们中的一个发送到另一个。 如果您想执行某个操作, 您将会编码一条消息,消息是一串 非常长的 UART 数据包, 在本例中,它们将从 MSP432 传输至 2650,它们包含您想要传输的命令或数据。 传输至 2650,它们包含您想要传输的命令或数据。 握手的工作方式是, 当 MSP432 想要传输数据时, 便会作为主设备,而且它会在开始时 将主设备就绪线拉高。 对吧? 短时间内,如果从设备 注意到这一点,则会将其 信号拉低来表示已经为接收数据做好准备了。 第三件事情是传输数据, 当主设备完成传输时, 便会把自己的主设备就绪拉高, 然后,当从设备识别出该信号后, 则会将从设备就绪拉高。 通过这种方式,数据只能从主设备流至 从设备。 对吧? 所以,这是一个半双工通道。 也就是说,数据将在两个方向上流动, 但一次只有一个方向。 对吧? 这里的握手和配置 是通过这个有关主设备就绪和从设备就绪的握手信号来实现的。 如果从设备希望进行通信, 实际上确实有这种情况,消息通过无线方式传入, 必须发送出去,这时需要通信。 从设备会通过拉低从设备就绪线来启动通信。 如果主设备注意到这一点, 最好能够注意到,因为这是应该做到的, 便会把自己的主设备就绪拉低, 从而表示,好的,您想说什么? 然后,它将会通过一个有趣的协议 -- 稍后我们会介绍这个协议 -- 发送一条非常长的消息, 这是第三件事情。 这条消息结束后,从设备将会 把从设备就绪拉高,以表达没有其他数据了, 而主设备则会说非常感谢, 并将主设备就绪拉高。 然后它可以重复 -- 您可以想象到,这里是数据 向另外一个方向流动。 我们看到数据可以在两个方向上流动, 但一次只有一个方向, 这便是我们将其称为半双工的原因。 这是最底层的协议 -- 具有握手的 UART。 现在,我想谈谈实际传入的信息。 相关的手册很厚。 您需要读完所有的内容,但是我在这里 仅介绍一些您可以发送的消息。 如果您想要设置您的名字, 这将是一条从 MSP432 传送到 CC2650 的消息, 内容是,嘿,请叫我 shape the world。 所有的消息都是以这里的帧开始代码开头, 以帧校验代码结束 -- 我们稍后会讨论这一点。 接下来的两个字节是消息的长度。 在本例中为18 个字节长。 第 1-5 个字节是代码,命令代码。 这里是一个 16 位的命令代码。 就像我说的,有很多命令, 但这是通用访问服务中的设置 GATT 参数命令。 但这是通用访问服务中的设置 GATT 参数命令。 这是设备名,也就是我的设备的名字。 对吧? 然后,每条消息的结尾部分是 这个帧校验代码,用于 检查是否存在错误。 对吧? 这里的有效载荷是 L 个字节,即长度为 L。 好的。 这就是我们设置广播的方式。 当您实际运行时,您可以看到这些输出到 调试端口的消息。 这是实际的命令 -- 记住, 这是一个命令响应。 LaunchPad 向 CC2650 发出, 嘿,这是我的名字,CC2650 则回应, 好,我知道了。 这是设置一些广播参数。 好,我知道了。 设置一些广播参数 -- 广播是 如何初始化该通信。 好,我知道了。 然后它说,让我们开始广播吧。 现在,从设备可以与智能设备, 也就是您的手机,进行通信了。 因此,2650 和 MSP432 之间的每一条消息 都可以在调试端口上观察到。 它们都是以帧开始代码 FE 开头, 接下来的两个字节是长度, 接下来的两个字节是命令, 然后是有效载荷,最后是帧校验代码, 用以检查是否存在错误。 好的。 这是在您执行添加服务操作时的样子。 添加服务正好是 35, 81。 您记得配置文件是 -- 配置文件是固定的, 我们有通用配置文件,但是我们添加了一个服务, 在该服务下面,我们将会 添加一些特征。 这里显示了这些命令, 我们发出一条命令,内容是,给我一个服务。 它回应,好的,这是您的服务。 然后我们说,我们想要设置一个带有值的 特征。 我们可以设置与这个值有关的描述。 也就是说,它的单位是什么,有多少字节宽, 是可读的吗,是可写的吗,是可读写的吗, 是通知吗,然后我们就可以 注册系统的所有特征。 在启动代码中,您会看到一系列这类代码, 因为它正在创建蓝牙初始协议。 好的。 这是我们的设置,我们还有另外一组命令, 实际的通信是通过这些命令来完成的。 这实际上是从 CC2650 到 LaunchPad 的通信, 是您的手机想要向机器人 写入数据时的通信,或者大致类似的情况。 这是一个写入指示,这里是它要写入的 数据。 它想要一个响应。 它为您提供了句柄。 这是关于如何将数据传入您的设备中。 然后,您必须说,非常感谢,干得好。 好的。 同样,这是一个命令响应协议。 这个例子是一个 由手机发起的写入指示, 想要让您将数字 5 写入 LED、电机或其他类似的东西中。 在两个设备进行通信时, 您会看到它们发送这些消息。 读取指示 -- 这又要提到智能设备。 2650 和 MSP432 是服务器。 换言之,它们只是从设备。 在这里,手机会说,好吧, 你有什么? 这是一个读取指示。 您按下手机上的按钮, 手机便会与 2650 通信, 接着,2650 会发送这条消息。 您确切地知道它们想要什么,因为这一点 已经编码在了句柄中。 句柄会告诉您它想要与哪个 特征通信。 然后您会返回 与这个句柄关联的实际数据。 然后,这个数据将会 传回您的手机 -- 这便是读取指示。 综上所述,我们将使用 CC2650 来实现网络处理器。 CC2650 来实现网络处理器。 而 MSP432 上的则是应用处理器。 本视频的目的是提醒您 查看调试代码,它本质上是 2650 和 MSP432 之间的串口通信。 当这些命令在它们之间传递时, 您可以看到它在进行蓝牙传输时的想法。 好的。 希望您喜欢本次实验。 要学的东西太多了,但是我们希望 向您介绍一部分细节, 然后通过抽象方式将其他细节简化。 好的。 希望您喜欢本次实验。 [音乐播放]

大家好,

我是 Jon Valvano。

在本视频中,我想向您展示

简单网络处理器。

在第一个视频中,我们讨论了无线技术,

在第二个视频中,我们了解到低功耗

蓝牙具有配置文件、服务和特征。

但在本视频中,我们将讨论

您将用来实现蓝牙通信的协议,

您将用来实现蓝牙通信的协议,

这个协议称为简单网络处理器。

现在,我们开始吧。

好的。

这是我们的硬件,正如我在上个视频中提到的。

MSP432 负责运行您的机器人,

这是您的机器人上面的 2650 BoosterPack,

它使用这里的 UART 通道和两个握手信号

来传递数据。

当 MSP432 想要复位 2650 时,

它将会把复位线拉低,

同时将主设备就绪线拉高,

这将会导致 2650 中发生复位,

从而可以从一个已知的点启动。

现在,MSP432 是主设备,

2650 是从设备,而且它满足这个

命令响应协议。

命令可以来自 MSP432,也可以来自 2650,

这两个器件都需要

响应彼此的请求。

好的。

所以我们将把消息从它们中的一个发送到另一个。

如果您想执行某个操作,

您将会编码一条消息,消息是一串

非常长的 UART 数据包,

在本例中,它们将从 MSP432

传输至 2650,它们包含您想要传输的命令或数据。

传输至 2650,它们包含您想要传输的命令或数据。

握手的工作方式是,

当 MSP432 想要传输数据时,

便会作为主设备,而且它会在开始时

将主设备就绪线拉高。

对吧?

短时间内,如果从设备

注意到这一点,则会将其

信号拉低来表示已经为接收数据做好准备了。

第三件事情是传输数据,

当主设备完成传输时,

便会把自己的主设备就绪拉高,

然后,当从设备识别出该信号后,

则会将从设备就绪拉高。

通过这种方式,数据只能从主设备流至

从设备。

对吧?

所以,这是一个半双工通道。

也就是说,数据将在两个方向上流动,

但一次只有一个方向。

对吧?

这里的握手和配置

是通过这个有关主设备就绪和从设备就绪的握手信号来实现的。

如果从设备希望进行通信,

实际上确实有这种情况,消息通过无线方式传入,

必须发送出去,这时需要通信。

从设备会通过拉低从设备就绪线来启动通信。

如果主设备注意到这一点,

最好能够注意到,因为这是应该做到的,

便会把自己的主设备就绪拉低,

从而表示,好的,您想说什么?

然后,它将会通过一个有趣的协议 --

稍后我们会介绍这个协议 -- 发送一条非常长的消息,

这是第三件事情。

这条消息结束后,从设备将会

把从设备就绪拉高,以表达没有其他数据了,

而主设备则会说非常感谢,

并将主设备就绪拉高。

然后它可以重复 --

您可以想象到,这里是数据

向另外一个方向流动。

我们看到数据可以在两个方向上流动,

但一次只有一个方向,

这便是我们将其称为半双工的原因。

这是最底层的协议 --

具有握手的 UART。

现在,我想谈谈实际传入的信息。

相关的手册很厚。

您需要读完所有的内容,但是我在这里

仅介绍一些您可以发送的消息。

如果您想要设置您的名字,

这将是一条从 MSP432 传送到 CC2650 的消息,

内容是,嘿,请叫我 shape the world。

所有的消息都是以这里的帧开始代码开头,

以帧校验代码结束 --

我们稍后会讨论这一点。

接下来的两个字节是消息的长度。

在本例中为18 个字节长。

第 1-5 个字节是代码,命令代码。

这里是一个 16 位的命令代码。

就像我说的,有很多命令,

但这是通用访问服务中的设置 GATT 参数命令。

但这是通用访问服务中的设置 GATT 参数命令。

这是设备名,也就是我的设备的名字。

对吧?

然后,每条消息的结尾部分是

这个帧校验代码,用于

检查是否存在错误。

对吧?

这里的有效载荷是 L 个字节,即长度为 L。

好的。

这就是我们设置广播的方式。

当您实际运行时,您可以看到这些输出到

调试端口的消息。

这是实际的命令 -- 记住,

这是一个命令响应。

LaunchPad 向 CC2650 发出,

嘿,这是我的名字,CC2650 则回应,

好,我知道了。

这是设置一些广播参数。

好,我知道了。

设置一些广播参数 -- 广播是

如何初始化该通信。

好,我知道了。

然后它说,让我们开始广播吧。

现在,从设备可以与智能设备,

也就是您的手机,进行通信了。

因此,2650 和 MSP432 之间的每一条消息

都可以在调试端口上观察到。

它们都是以帧开始代码 FE 开头,

接下来的两个字节是长度,

接下来的两个字节是命令,

然后是有效载荷,最后是帧校验代码,

用以检查是否存在错误。

好的。

这是在您执行添加服务操作时的样子。

添加服务正好是 35, 81。

您记得配置文件是 -- 配置文件是固定的,

我们有通用配置文件,但是我们添加了一个服务,

在该服务下面,我们将会

添加一些特征。

这里显示了这些命令,

我们发出一条命令,内容是,给我一个服务。

它回应,好的,这是您的服务。

然后我们说,我们想要设置一个带有值的

特征。

我们可以设置与这个值有关的描述。

也就是说,它的单位是什么,有多少字节宽,

是可读的吗,是可写的吗,是可读写的吗,

是通知吗,然后我们就可以

注册系统的所有特征。

在启动代码中,您会看到一系列这类代码,

因为它正在创建蓝牙初始协议。

好的。

这是我们的设置,我们还有另外一组命令,

实际的通信是通过这些命令来完成的。

这实际上是从 CC2650 到 LaunchPad 的通信,

是您的手机想要向机器人

写入数据时的通信,或者大致类似的情况。

这是一个写入指示,这里是它要写入的

数据。

它想要一个响应。

它为您提供了句柄。

这是关于如何将数据传入您的设备中。

然后,您必须说,非常感谢,干得好。

好的。

同样,这是一个命令响应协议。

这个例子是一个

由手机发起的写入指示,

想要让您将数字 5 写入

LED、电机或其他类似的东西中。

在两个设备进行通信时,

您会看到它们发送这些消息。

读取指示 -- 这又要提到智能设备。

2650 和 MSP432 是服务器。

换言之,它们只是从设备。

在这里,手机会说,好吧,

你有什么?

这是一个读取指示。

您按下手机上的按钮,

手机便会与 2650 通信,

接着,2650 会发送这条消息。

您确切地知道它们想要什么,因为这一点

已经编码在了句柄中。

句柄会告诉您它想要与哪个

特征通信。

然后您会返回

与这个句柄关联的实际数据。

然后,这个数据将会

传回您的手机 --

这便是读取指示。

综上所述,我们将使用

CC2650 来实现网络处理器。

CC2650 来实现网络处理器。

而 MSP432 上的则是应用处理器。

本视频的目的是提醒您

查看调试代码,它本质上是

2650 和 MSP432 之间的串口通信。

当这些命令在它们之间传递时,

您可以看到它在进行蓝牙传输时的想法。

好的。

希望您喜欢本次实验。

要学的东西太多了,但是我们希望

向您介绍一部分细节,

然后通过抽象方式将其他细节简化。

好的。

希望您喜欢本次实验。

[音乐播放]

视频报错
手机看
扫码用手机观看
收藏本课程

相关下载

查看全部

视频简介

TI-RSLK 模块 19 - 讲座视频 - 低功耗蓝牙 - 简单网络处理器

所属课程:TI机器人系统学习套件(TI-RSLK) 发布时间:2018.08.27 视频集数:69 本节视频时长:10:25
将TI SimpleLink™ BLE CC2650 Module BoosterPack™ Plug-in 模块与SimpleLink MSP432P401R LaunchPad™ 开发套件UART相连接。
已有6人参与了讨论去论坛跟帖交流