TI的工程师大家好,在使用CC2530(2.5.1a版本协议栈)做串口透传应用时遇到如下问题,望高手帮忙解答。
客户原使用CC2430做了串口透传模块分别装在遥控器(终端)和主机(协调器)上,实现一对一无线传输,遥控器和主机使用前需经一次配对过程,后续即可直接使用或重新配对。现相关项目转到我的公司,我司计划使用CC2530对其作替代及兼容。据客户提供的源码(用CC2430 1.4.0版本协议栈修改)显示,其配对-连接流程为:
EndDevice加入网络后调用ZDP_MatchDescReq(),Coordinator在ZDO_ProcessMatchDescReq()内调用了ZDP_MatchDescReq(),这样EndDevice与Coordinator都会收到Match_Desc_rsp(在应用层的ZDO消息处理函数中),在此给双方上位机发送信息表示配对-连接成功(Coordinator配对时会存储EndDevice的MAC地址并在连接时使用该地址控制终端加入)。
现在为了和客户原版兼容,在CC2530编写程序时采用和客户原来一致的方式,但只有EndDevice可收到Match_Desc_rsp消息,协调器在应用层无法收到及处理该消息。两方均在串口透传应用初始化时用ZDO注册函数注册了相关消息,希望有工程师能告诉我为什么以及如何处理,谢谢!
VV:
协调器有没有把match req发送出来,end device有没有处理match req发送match rsp?
Shengze Wang:
回复 VV:
调试发现协调器发出了match req,但终端始终没有进入ZDO_ProcessMatchDescReq()函数,协调器收不到 match_desc_rsp,我的程序要做到和原来的CC2430方式兼容,两方都要收到rsp才可以。
Shengze Wang:
回复 Shengze Wang:
两方采用同样的ZDP_MatchDescReq()参数,地址是广播地址。