关于RF协议移植(温感器)的注意事项

本文详细记录了在一款RF低功耗产品上进行二代到三代RF协议迁移的过程。主要涉及协议文件的导入、宏定义使用、串口收发函数的修改以及应用层功能的对接和调试。通过分析和实施,实现了RF协议的顺利移植,加深了对程序结构和操作的理解。在遇到问题如串口中断、按键中断、重传功能等时,逐一解决,最终软件成功送测。
摘要由CSDN通过智能技术生成

开发背景:

1.  公司有一款RF低功耗产品,然后想在该产品上扩展一个RF(B端)的设备 。

由于B端设备的RF协议是旧版(二代),而现有的协议是新版(三代),两者之间的协议不兼容,协议帧格式不同,RF模块和软件不同 ,所以要做移植(迁移)

实施方案分析:

1. 方案A: 可以新建一个工程,在二代RF工程软件之上修改应用层,RF协议层不变。

2. 方案B: 可以在现有三代RF工程软件之上修改RF协议层,应用层不变。

最后分析讨论认为可以在同一版软件(工程)之上进行RF协议层修改和移植。

实施细则:

一开始我并不知道如何迁移协议层,后来大概清楚了怎么回事,要如何操作 。

总的说来就是:

1.将RF二代的协议文件 RF_B.c  ,RF_B.h  加入到工程中,通过宏定义框起来,然后在串口收发函数中通过宏定义调用RF二代的串口收发处理函数(这里就是RF协议层的处理)。

2.  找到串口收发的入口后,剩下的就是跟应用层功能函数的对接和调试。

期间遇到一些疑问或问题,也一一解决,现将主要的罗列出来,以备后续查看

1. 串口中断函数是否需要修改?

主要是串口中断接收函数,该函数接口已经在用,直接调用RF二代的接收函数。

 

2. 对于按键中断和处理函数需要做变更吗?

一般该功能不涉及到协议层,不需要变更。

3.  协议层的核心是啥?

就RF协议层来说最主要的就是迁移RF串口接收函数,和发送函数接口。

在接收函数和发送函数中可能有些应用层的功能条件判断,这些应用层的功能可以删掉,只保留协议收发的部分 ,参照二代RF协议的收发机制,进行串口收发。

4. 当设置好串口收到函数接口后,接下来就是初步编译新软件,并确保可以编译成功。

5. 然后就是调试迁移过来的串口收发接口是否可以正常进行串口通讯。可以打开RF的串口收发debug, 确认Rfsend()的数据是否有ACK ?  如果有ACK说明muc跟RF模块串口通讯正常。

6 . 下一步则是根据协议功能进行逐个实现和验证 。

一般首先验证RF配对(配网)/退网操作 ,该功能正常才能进行进一步的功能验证 。

这里我发现退网操作不可用,原来B端不需要退网操作。

7.  接下来就是自检,联动测试,联动报警,静音等功能验证。

8.  关于应用层,尽管说是不需要变更,但应用层的polling 定时器功能函数有许多是在RF.c 也就是协议层文档中,所以需要一并从三代RF.c 迁移到二代RF_B.c 中 。

9.  最后说下重传功能函数,可能涉及到定时器使用,不一定用二代的定时器,用现在的即可。

综上,经过这一次协议迁移,对程序的理解更深了一步,对程序的操作也更加熟练了。

说实话,一开始感觉不知如何入手,但在同事的帮助下,和我自己的努力下,终于比较完美的实现协议的移植任务。软件成功送测。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值