切换到宽版
登录
注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
最新公告
产品
排行榜
Ranklist
Zigbee+Matter国产芯片模组及网关开发社区
»
论坛
›
物联网教程
›
物联网开发教程
›
“飞比”Zigbee论坛CC2530开发板学习教程(六)-- RemoT ...
1
2
3
/ 3 页
下一页
返回列表
查看:
27203
|
回复:
22
“飞比”Zigbee论坛CC2530开发板学习教程(六)-- RemoTI例程详解
[复制链接]
outman
当前离线
积分
4021
IP卡
狗仔卡
outman
发表于 2010-9-29 14:59:58
|
显示全部楼层
|
阅读模式
最近不少网友都在询问开发板项目的进度,希望能早点拿到手。首先向关注与支持“飞比”的网友表示感谢,我们全力以赴,争取能在国庆放假回来后能正式发行。同时,由于项目紧,时间有限,很多网友在论坛与群里的问题,我们也无法一一进行回复,敬请谅解。
“飞比”CC2530开发板的一个很大的特色就是将Zigbee与RF4CE两种流行协议在同一开发板上进行了整合,分别采用的是TI公司的ZStack与RemoTI两种协议栈。并且在原有官方RemoTI开发板的基础上,增加了传统红外遥控器(IR)的兼容。
本篇将基于FB2530EB开发板,对RemoTI的基本功能进行详解。
[注:本文源自
www.feibit.com
--“飞比”Zigbee论坛,为尊重劳动者成果,如需转载请保留此行,并通知作者]
作为开篇,我们首先来看一下RemoTI到底是什么,然后认识一下FB2530EB开发板,讲解如何将其设置成为一个RemoTI的开发套件。然后,从三个例程中仔细了解其功能及原理。
一、RemoTI是什么?
RemoTI,顾名思义,即Remote + TI, 它是由TI公司按照国标标准的RF4CE协议规范开发的一个遥控协议栈。可实现一个2.4G的遥控器的功能,同时也可兼容传统的红外遥控器。其相对于传统遥控器来说,具体远距离,智能化,标准化等特点。
二、RemoTI开发板实现什么样的功能?
作为入门,我们可以简单地将其功能理解为一个2.4G遥控器(RC)加一个遥控接收板(Target board)。我们先从TI提供套件的图片中,直观地看下其功能:
如图,遥控器发送命令码,接收板将其接收下来,然后传给其控制的系统的主控MCU,例如,可通过USB线连接电脑,对电脑其进行控制,连接方式如下图所示:
为节约成本,让更多的人了解这门技术,我们在CC2530的开发套件上进行了硬件改进,使其整合了TI官方提供的SmartRF05EB与RemoTI两套开发板的功能,将遥控器的按键进行了删减,共可实现8个键的功能,并且由串口来替代USB与上位机的连接。同时,我们对软件也进行了更改,虽然压缩了成本,但并不影响实际的学习效果。
整合以后的套件如下图所示:
(图片待传)
了解了RemoTI开发套件的基本功能以后,下面我们对其三个基本例程进行一一讲解,例程一为遥控功能测试例程(RC TEST),同时也实现了误包率(PER)的测试;例程二为串口升级接收板软件的例程;例程三演示了遥控器软件的空中升级(OAD)。
例程一、遥控功能测试例程(RC TEST)
[一]程序功能
按下遥控器的按键,发送一个相应的CERC(即符合RF4CE标准的)命令码,空中传送到接收板以后,由接收板对其进行解码,将实际的控制指令通过串口发送至其控制的上位机,同时可以对传输性能参数之一的误包率(PER)进行测试。功能如下图所示:
[二]操作说明
一、遥控器的操作
1、跳线设置
注:RemoTI例程暂不支持LCD显示,所以这几个实验可以将LCD板取出。
2、编译与下载
首先将CC Debugger与FB2530EB连接,如下图所示:
(图片待传)
如果CC Debugger的LED指示灯为红色,则按下CC Debugger上的Reset按键,LED指示为绿色表示连接成功,可以正常下载。
打开IAR软件,选择.. \RemoTI-1.1\Projects\RemoTI\BasicRemote\CC2530RC目录下的rsa_cc2530.eww文件,在左侧workspace下拉框中选择“CC2530F256”项目,点击project == > build all进行编译,然后点击project == > debug进行下载。此时,如果无需仿真,则可点击”stop debugging”,拔掉debug线,按板子上的reset键,则遥控器的程序已经正常运行了。
二、遥控接收板的操作
1、跳线设置与硬件连接
跳线设置如下图所示:
(图片待传)
硬件连接图:
(图片待传)
2、编译与下载
连接方式请参考上述遥控器连接,然后打开IAR软件选择 \RemoTI-1.1\Projects\RemoTI\RNP\CC2530EB目录下的rnp_cc2530.eww文件,在左侧workspace下拉框中选择“CC2530F256”项目,然后进行编译、下载,其操作与遥控器相同。此时拔掉debug线,连接好串口线,如上图所示。按下板子上的reset键,则接收板也进入工作状态了。
三、软件模拟遥控码收发
此实验实现的功能,我们可以想象成电视的遥控器所完成的功能,遥控器发出控制指令,电视主控IC进行接收并执行相应的指令,如换台,音量加减等。但在这套系统中,增加了一个遥控接收板(Target Node)进行指令的中转。也就是说,先由接收板接收到指令,然后再转达给电视的主控IC。
在TI的RemoTI开发套件中自带一个软件仿真器(Target Emulator,以下简称仿真器),其通过串口与遥控接收板进行连接,实现上述电视主控IC的功能。
打开..\ RemoTI-1.1\bin目录下的TargetEmulator.exe软件,在”Target”菜单下选择”start target emulator”,如下图所示:
然后选择数据传输方式为串口(Serial Port):
选择相应的端口号:(如不清楚端口号,可在windows设备管理器中查看)
然后从弹出的支持设备列表中选择一种,作为基本的讲解,这里我们选择电视(Television)
此时,将打开如下界面:
至此,软硬件均已准备完成。
下一步,两个设备之间首先要进行“绑定”才可以互相通讯,还记得在教程(四)-Serial App的实验中,中国小伙与美国姑娘是怎么认识的吗?其概念类似,想象一下,2.4G的信号是可以穿墙的,如果没有这个“绑定”的过程,那隔壁家的遥控器是不是也能控制到你家的电视呢?相信没人希望这样吧!
那在这个实验中,如何实现这个“绑定”的过程呢?
首先,点击仿真器上的“pair”键,弹出对话框中选“确认”,此后的30秒内,按遥控器上的”S1”键进行确认,则仿真器上的“paired controllers”计数值由0变为1,则证明两个设备成功地进行了绑定。值得指出的是,一个遥控器可以和多个接收板进行绑定,同时一个接收板也可以接收多个遥控器的指令,甚至是遥控器之间也可以互相通讯。从这里我们可以看出RF4CE遥控器的优势了吧?设备间可以相互对话,物物相联!
在实现绑定之后,我们就可以模拟遥控码的收发过程了。
按遥控器Joystick的“上”、“下”和“左”键,看看发生什么了?左侧遥控器上对应的“上”“下”和数字“1”键是不是出现红色的高亮显示了?同时,右侧“received packets”值是不是也加了一个?这说明电脑已经接收到了遥控器发出的指令,并执行了相应的动作。
需要特别说明一点:TI官方的RemoTI开发套件里的遥控器实现了全键盘的按键扫描功能,但我们的“飞比”FB2530EB开发板中,由于整合ZStack 与RemoTI两套功能,因功能复杂,遥控器只保留了8个按键,但对开发和学习来讲,相信只要能实现一个键的功能,其他的并不是难事!
下面,列举一下在RemoTI例程中,每个按键的具体功能
按键位置
按键名称
功能描述
Joystick
上
Up
向上
Joystick
下
Down
向下
Joystick
中
OK
确认
Joystick
左
Num 1
数字1,“测试模式”下的“开始”键
Joystick
右
Poll
空中升级遥控器时的“开始”键
S1
Pair
遥控器的“绑定确认”键
S6
Test Mode
进入“测试模式”
S2
保留
此键为接MSP430板时的保留按键,也可通过跳线接到某IO口使用。暂时保留。
实现了基本的遥控收发实验后,下面我们来看看RC TEST这个实验中的“测试模式”。在这个模式下,遥控器将持续地发“OK”键的命令码,发一定的数量之后,停止发送,按“OK”键,可将本次的测试结果发送至PC端。
我们通过下面的图来了解下“测试模式”的工作流程:
从图中可以看出,在遥控器正常工作模式下,首先按下“TEST MODE”键,LED慢速闪烁,按下数字1,开始发送数据,此时软件仿真器上不断接收到“OK”键,发送1000次之后,LED灭,此时按下OK键,软件仿真器收到如下报告:
图中,PER值为0表示发出的1000个包全部收到,下面列表将这1000个包的接收时间做了列举,从中可以看出这1000个包全部在10ms以内收到的。如果接收时间长的包占多数,则表明传输质量相对较差。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
outman
当前离线
积分
4021
IP卡
狗仔卡
楼主
|
outman
发表于 2010-9-29 15:33:12
|
显示全部楼层
例程二、遥控接收板的串口软件升级(SB)
[一]程序功能
此例程实现了遥控接收板的串口软件升级,此功能非常有用,可以灵活地对接收板的功能通过串口进行软件升级,以支持更多的设备。其原理是在接收板里先下载一个串口bootloader,这个bootloader与PC终端上的用于升级的软件(RemoTI_SBDemo.exe)通过UART进行通讯,将程序的二进制文件复制到CC2530的flash中,从而实现软件的升级。
其功能如下图所示:
[二]操作说明
serial bootloader自带UART的驱动,可自行进行串口收发操作。所以它可以对程序的镜像文件进行操作,来实现升级。
1、编译与下载serial bootloader程序
从IAR中打开..\RemoTI-1.1\Projects\RemoTI\SerialBoot\CC2530RC_Src文件夹下的SerialBoot.eww文件,在workspace中选择CC2530项目,此项目是用UART来通讯的,另外一个CC2530_SPI,则使用SPI方式来进行通讯。
编译与下载方式与前述相同,下载完成后点stop debugging,取掉debug线,按reset,程序准备就绪。
2、编译应用程序的镜像文件
上述步骤1,只是将一个bootloader下载到了目标板中,应用程序需要生成一个二进制的镜像文件,然后通过串口进行升级。
从IAR中打开..\RemoTI-1.1\Projects\RemoTI\RNP\CC2530EB目录下的rnp_cc2530.eww文件,在左侧workspace下拉框中选择“CC2530F256_SB”项目,然后进行编译。编译完成后,进入.. \RemoTI-1.1\Projects\RemoTI\RNP\CC2530EB\CC2530F256_SB\Exe文件夹下,看看是不是生成了一个rnp_cc2530.bin的文件?这就是升级所用的二进制镜像文件。
3、通过Serial bootloader对遥控接收板的程序进行升级
连接好串口线,进入到..\ RemoTI-1.1\bin目录下,打开RemoTI_SBDemo.exe程序,其界面如下:
点击“…”按钮,选择步骤2中生成的rnp_cc2530.bin文件,然后在“COM Port”中填写对应的串口端口号,点击“Load Image”,则出现如下进度条:
表示程序正在升级中,完成后会有升级成功的提示。此时,读者可重复例程一的实验,或者更改部分代码对其进行测试。
例程三、遥控器软件的空中升级(OAD)
这是非常有用的一个功能,比如在家庭增加一个新的机顶盒的时候,并不需要相应增加一个遥控器,而是对原有遥控器进行一次程序升级即可,这和现在的客厅茶几上一堆遥控器的状况相比,是不是进步不少呢?
[一]程序功能
我们先一起来看一下其系统原理图:
首先,遥控的程序升级数据,是以二进制文件的形式存放在电脑上,通过串口传输给遥控接收板,然后空中传输至遥控器进行程序升级。
[二]操作说明
与接收板的SB模式升级程序有所不同,遥控器的升级,首先要将OAD程序下载至遥控器,然后下载bootloader,最后才通过接收板进行空中升级。
1、编译OAD程序,并下载至遥控器
打开IAR软件,选择.. \RemoTI-1.1\Projects\RemoTI\BasicRemote\CC2530RC目录下的rsa_cc2530.eww文件,在左侧workspace下拉框中选择“CC2530F256_OAD”项目,点击project == > build all进行编译, 然后点击project == > debug进行下载。此时,如果无需仿真,则可点击“stop debugging”,完成下载,但不要关闭IAR。
2、编译bootloader并下载至遥控器
打开.. \RemoTI-1.1\Projects\RemoTI\OadBoot\CC2530RC_Src目录下的OadBoot.eww文件,在左侧workspace下拉框中选择“CC2530F256”项目,点击project == > build all进行编译,然后点击project == > debug进行下载。此时,如果无需仿真,则可点击“stop debugging”,拔掉debug线,按板子上的reset键,则遥控器即做好了OAD的准备,由于步骤1中下载了应用程序,所以此时的遥控器已经是一个全功能的遥控器了。
3、通过接收板进行空中升级
为测试是否成功升级,读者可对遥控程序进行修改,比如对换两个按键的位置等。然后重复步骤1,在..\CC2530RC\CC2530F256_OAD\Exe文件夹下生成了一个名为rsa_cc2530.bin的二进制文件,用于程序升级。
用于OAD升级的windows软件RemoTI_OadDemo.exe,位于..\RemoTI-1.1\bin目录下,其界面如下图所示:
因为此软件与TargetEmulator.exe都需要操作串口,同时打开会引起冲突,暂时不打开此软件,而按照如下步骤进行操作:
1)、按照例程1的描述,打开TargetEmulator,并对遥控器进行绑定
2)、关闭TargetEmulator
3)、运行RemoTI_OadDemo.exe,此时Device List窗口为空。
4)、在COM Port里选择与接收板连接的串口的端口号,点击connect,此时在Device List窗口中会显示出步骤1中绑定好的设备,其中包括准备升级的遥控器
5)、在Device List窗口中选择我们要升级的遥控器
6)、点击“…”按钮,选择前面生成的rsa_cc2530.bin文件的位置
7)、点击“Download Image”,此时下文进度条没有任何反应
8)、按遥控器上的“POLL”键,具体位置见上文按键表。此时程序正式开始下载,完成后将有成功完成的提示。
9)、关闭RemoTI_OadDemo,重新打开TargetEmulator,测试遥控是否按更改后的功能运行。
回复
支持
反对
使用道具
举报
显身卡
wuxiujiang
当前离线
积分
301
IP卡
狗仔卡
wuxiujiang
发表于 2010-10-8 17:29:55
|
显示全部楼层
果然是高科技啊!! 兴奋……
回复
支持
反对
使用道具
举报
显身卡
xingqing
当前离线
积分
544
IP卡
狗仔卡
xingqing
发表于 2010-10-8 22:14:00
|
显示全部楼层
先顶后看 呵呵 我也在研究这个
回复
支持
反对
使用道具
举报
显身卡
xingqing
当前离线
积分
544
IP卡
狗仔卡
xingqing
发表于 2010-10-8 23:04:52
|
显示全部楼层
看着这些东西 我觉得有种找到希望的感觉了 嘿嘿 顶你曼哥。。。。
回复
支持
反对
使用道具
举报
显身卡
xiaoyige
当前离线
积分
59
IP卡
狗仔卡
xiaoyige
发表于 2011-1-27 17:16:25
|
显示全部楼层
呵不错我刚调试完TI的程序
回复
支持
反对
使用道具
举报
显身卡
沧浪之水
当前离线
积分
131
IP卡
狗仔卡
沧浪之水
发表于 2011-2-21 15:30:32
|
显示全部楼层
1、请问一个遥控接收板最多可配多少个遥控器啊?/
2、遥控器不按下时,功耗是多少?是不是一直在休眠模式啊?
3、07协议中终端离开网络,貌似会一直搜索网络,不会进入休眠,
RF4CE的协议中,如果遥控器离开的网络,遥控器会咋样动作呢?
回复
支持
反对
使用道具
举报
显身卡
yuqihong
当前离线
积分
93
IP卡
狗仔卡
yuqihong
发表于 2011-4-11 22:46:22
|
显示全部楼层
我也去试试!哈哈哈
回复
支持
反对
使用道具
举报
显身卡
yuqihong
当前离线
积分
93
IP卡
狗仔卡
yuqihong
发表于 2011-4-13 15:47:09
|
显示全部楼层
回复
2#
outman
果然是高科技啊
让人兴奋!
回复
支持
反对
使用道具
举报
显身卡
李晓千
当前离线
积分
25
IP卡
狗仔卡
李晓千
发表于 2011-5-11 10:30:36
|
显示全部楼层
大爱奥特曼
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
3
/ 3 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表