这学期搞了个校长基金项目,也是头次做项目!一接手就是个从来没接触过的IEEE802.15.4网络节点设计,看了下项目资料,知道就是设计一个网络节点来采集数据,然后发往上位机!整个网络中有协调器,路由器和采集节点,就像一个计算机网络一样!大一看了本计算机网络的书,凭兴趣看得,看得迷迷糊糊,所以这次项目感觉挺难!
结果几个礼拜的琢磨,准备用TI的CC2430这个款无线单片机,它将一个8051单片机内核与射频前端都集成在一块芯片上了,硬件上就可以完成IEEE802.15.4的物理层,mac层得功能,高效,低功耗!
参考了下大部分人的设计思路,都是从TI官网下载Z-stack协议栈,然后再IAR EW8051上将Z-stack带的历程修改然后编译,下载进自己的板子里,完成设计!以前一直用的是keil4,所以有学起了IAR,真麻烦它们的之间的编程语法还是有好多不同!我觉得像大部分人那样做,挺麻烦,要知道好多Z-stack协议栈里面的函数调用还有头文件里定义的宏,结构,枚举,,,等等,太麻烦了!我不想那样做!
我觉得不用那个TI的协议栈,自己写程序,完全的自己写,按照任务要求,像一般的单片机应用系统的开发流程一样开发!对于那些网络协议不就是按照一定的格式将要发送的数据进行封装吗,按照一定的格式!这些我不想用协议栈提供的API,而是自己手工编写程序来打包,也即就是在数据头和尾添加一些域,比如IP头,TCP头。。。然后将打包好的数据通过一个另外自己写的说句,送到CC243的无线发送FIFO中,给无线模块下达一些命令后就可以把封装好的数据发送出去了!对于接受来得数据,从接受FIFO中取出后,也相应的按照协议中的封装格式进行拆封,按照数据前面的域值调用不同的处理函数,比如说从类型域中得知是控制包,就调用控制的处理函数.......
这就是我现在的设计思路,真不想去搞那协议栈的api太多了!不知道这样的设计思路可行不?我没有点经验!