simpliciti 源码移植其他片子上可以吗

全是自己凭自己的理解写的,可能有理解或者错误错误的地方,欢迎大家指正。
先废话两句,好久没有写关于无线方面的程序了,今天兴致比较高,就把前一段时间一个项目上用到的SimpliciTI协议之的心得写一下,和大家一块分享,可以帮助新手更加快速入门,废话不多说了。
移植这个协议栈之前,最好有过CC1101或者CC2500等射频收发芯片的使用经验,要不然你会很头大,SimpliciTI协议栈主要针对TI的射频收发芯片,不是TI的需要修改的比较多一点,如果你是高手,可以不去用他提供的底层的,只用网络层,那样就和芯片没有关系了。
1、SimpliciTI协议栈包括了四个层,BSP,MRFI,NWK,NWK_APPLICATION,其中BSP是最基础的板级硬件,包括一些MCU相关的函数以及LED、按键之类的基础器件驱动,;MRFI是属于射频接口层,提供射频芯片的选择,射频芯片的配置参数,射频芯片的驱动以及通信接口,;NWK和NWK_APPLICATION是网络层和网络应用层,真正属于SimpliciTI协议栈的内容,包括网络的建立,网络地址的分配,网络数据帧结构、数据消息队列,数据消息处理,网络通信安全加密等一系列复杂机制。
2、用户一般只需要修改BSP和MRFI层即可实现SimpliciTI协议的移植和使用,BSP层要注意时钟初始化的选择,LED数目和接口,按键的数目和接口等,一般我们修改的比较多,主要是要和自己的板子相适应,MRFI层比如涵盖芯片初始化函数,发送函数,接收函数等,所以我说这里一般要有经验一点,不然很难理解的需要注意射频IC的选择,我选的是CC1101,以及射频芯片的配置,采用433MHz,配置文件需要进行修改。选择CC1101这个宏定义比较隐蔽,需要修改IAR,我这里截图一张。
3、在SimpliciTI中一般有四种类型,AP,也就是Access Pointer, ED,也就是End Device,RE,也就是Range Extemder。其中AP就是我们常说的路由,网关,集线器,数据中心这类
的意思,在无线传感网一般我们要确保AP电力,一般不采用干电池,不考虑AP功耗。ED就是节点,一般是带各种传感器的节点,考虑低功耗,一般用电池供电。RE是为了距离扩展才引入的,为了更远距离中转,另外一种更不常用。如果直接使用TI的工程,我们这里要对节点类型选择,选择节点类型如下图所示。
4、一般采用AP和ED组网时,多个ED节点和AP正确建立通信连接后,AP都会给ED分配一个相应的地址。当某个ED出现意外,比如电源问题,和AP断开连接,AP并不将该ED节点的地址消除。当该ED恢复正常,重新申请加入网络时,AP会检测该ED仍然分配原来的地址继续使用,如果是新的ED申请加入网络时,会分配一个新的网络地址。SimpliciTI协议也并非支持无线多个节点,肯定不会超过256个,因为AP为ED分配标号的Tid变量是8位的,好像官方数据说挂载30多节点吧,我就测试过挂载8个,个数限制中可以修改smpl_config.dat中的NUM_CONNECTIONS值。
5、关于节点地址,每个ED节点的4字节地址都不应相同,地址作为节点区分的标志,如果不使用软件自动分配给该节点地址,那么则应该修改相应的smpl_config.dat中的THIS_DEVICE_ADDRESS值,特别是网络中含多个ED节点,默认的使用都是同一个地址,不修改的话出第一个外是加入不了网络的。我们也可以使用读取Flash地址作为本机节点的地址,或者使用随机函数参数,则无需修改,如果使用随机地址作为节点地址,在SimpliciTI协议栈中必须要开启I_WANT_TO_CHANGE_DEFAULT_ROM_DEVICE_ADDRESS_PSEUDO_CODE宏
6、SimpliciTI协议组成的网络实现过程一般是,AP先启动,初始化协议栈后,处于接收状态,等待ED加入网络和接收数据;ED启动后,向AP发送建立网络请求,然后一直处于这个请求建立网络状态,直到建立正常的网络连接为止。
7、AP在协议初始化时会引入一个函数指针到协议初始化函数中SMPL_Init(sCB);这里的sCB就是这个函数指针,是指向SimpliciTI的中断回调函数的函数指针,sCB中断回调函数在无线收发的接收中断服务函数中会被调用一次。sCB中断回调函数是个非常重要的函数,收到数据分为节点加入网络请求数据和节点发送普通数据,通过lid识别区分,如果是加入网络请求,sJoinSem++;也就是SimpliciTI网络加入帧加一次,AP在主函数检测sJoinSem是否为0,不为0说明有节点请求加入网络,如果没有达到最大节点限制数目,AP就一直处于和该ED建立网络连接,直到建立正常网络连接为止。那么如果是普通数据,sPeerFrameSem++;也就是SimpliciTI网络节点数据帧加一次,AP在主函数检测sPeerFrameSem是否为0,不为0说明有节点发送数据包,就接收处理一下数据包,这个我们以前不用协议栈也是大致这样处理。
8、ED在协议初始化时不会引入一个函数指针到协议初始化函数中SMPL_Init(0);也就是没有中断回调函数,然后一直向AP发送网络请求帧,直到成功。这时连接指示标号Lid变量就为1,这个1就是指AP,ED以后通信参数lid都为1,不会变;而AP通信lid这个参数不一定为1,是几就表示第几个加入网络的节点,这里可能大家不太明白,如果自己研究后就会立马明白了。一般为了保证通信可靠性,ED每发送一次数据之前都和AP连接一次,确保自己处于网络中。关于SimpliciTI协议的二次开发,高手请进!-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
关于SimpliciTI协议的二次开发,高手请进!
来源:互联网 发表时间: 5:04:46 责任编辑:王亮字体:
为了帮助网友解决“关于SimpliciTI协议的二次开发,高手请进!”相关的问题,中国学网通过互联网对“关于SimpliciTI协议的二次开发,高手请进!”相关的解决方案进行了整理,用户详细问题包括:关于SimpliciTI协议的二次开发,高手请进!最近用到基于CC1110芯片的SimpliciTI协议二次开发,基本情况如下,请高手指点是否可行,如有善长搞这方面的,希望能够进合作(QQ:)。该协议的Access&Point&as&Data&Hub应用方案已能够满足我的基本需求,但还需进一步完善部分细节内容.1)将RE与ED在同一硬件设备节点集成(Combine&Range&Extender&and&End&Device&,TI官网SimpliciTI&FAQ中有对此的详细说明供参阅);2)使用AP串口指令,切换节点类型(ED&---&ED&RE,其中ED&RE≤4);3)使用AP串口指令,设置节点RF发射功率;4)使用AP串口指令,进行ED休眠/唤醒操作;5)稳定传输定制数据包,节点容量100个左右。请搞过这方面的指点一下以上需求是否能实现,谢谢!,具体解决方案如下:解决方案1:没这么做过,帮楼主顶一下。如果RE和ED能集成在一块的话,应该是可以通过外部设置来进行配置的。解决方案2:可以实现,只要你的单片机ram够大,这些都在一个配置文件中,忘了具体哪一个,好几年没玩了
1个回答1个回答1个回答2个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号后使用快捷导航没有帐号?
查看: 3394|回复: 11
STM32+TICC2500可以使用SimpliciTI协议吗?
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
有人做过这种应用吗?这类方案是否行的通?
如果可以,SimpliciTI移植过程大概是怎样?
希望大侠帮忙解决。谢谢!
&&&&&&&&&&
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&我觉得可以,具体的移植过程就不太清楚了
在线时间2 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 4, 距离下一级还需 1 积分
一粒金砂(初级), 积分 4, 距离下一级还需 1 积分
& & & & & & & & & & & & & & & &&&哥们,真的可以吗?如果可以的话,我就继续走下去了。如果不行,就的趁早撤退。还望多多借鉴前人的经验。
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&楼主还是等等版主主的答复吧
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
& & & & & & & & & & & & & & & &&&版主主,能否出来解答一下啊。
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&不要等我,我不会用TI的东西。
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
谢谢版主,
还有其他大侠出来了一下啊。知道的,不知道的。。都来发表下意见啊。
圈圈,匠人。。。。。。
在线时间8 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&继续顶起。。
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
& & & & & & & & & & & & & & & &&&只要STM32发送的指令CC2500能识别就OK啊,稍微改动程序即可。
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&兄台,这么讲没讲到simpliciTi协议啊。我现在不用协议已经可以通讯了啊。
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&STM32跟CC2500是通过SPI口 写东西就可以了啊。
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&那是与RF模块的通讯方式,我现在问的是如何移植simpliciTi协议。。。5555。
Powered by
逛了这许久,何不进去瞧瞧?

我要回帖

更多关于 simpliciti 源码 的文章

 

随机推荐