QST青软实训学员学习总结-2020/4/22-ZigBee

时光飞逝,日月如梭,时间滴答滴答的就过去了。
转眼间就迎来了四月的尾声,我国国内的疫情情况呈逐渐向好的方向,外防输入,内防反弹。成为我国当前防疫工作的主要目标。但纵观世界的疫情局面任然严峻,我们还是不能掉以轻心。我国加快复工复产的节奏更快了,各个省市直辖市的初中、高中已经开学,有的省市也在为学校开学筹备相应的计划,武汉也得以解封,整个城市整个被新冠病毒打压患者,都在慢慢好起来。至此,我依然还想对那些义无反顾的白衣天使们,致以最崇高的敬意。

今天内蒙古自治区教育厅发出通知:5月13日起,经评估达到开学复课疫情防控标准的高等院校,可以安排开学复课。这条通知的发出,评论区瞬间炸开了锅,众多大学生感叹到:幸好我没有放弃,终于等到你!可我依然高兴不起来,因为我在苦等山东青岛的开学复课通知,希望早日能得到你消息!亲!

在四月份的网课学习中,主要是以《ZigBee技术开发》这门课程开展学习的。我认为学习ZigBee技术与之前所学的其他技术有一个很明显区别,之前我们在学习《单片机》课程,我们就是要学会熟练掌握相关MCU的一些基础功能。就比如我们在学习STC89S52时,我们主要的一些实验就是一些对GPIO、串口通信、定时器/计数器,还有相关的LED、LCD、DS18B20温度传感器的驱动和使用方法。其实本质就是看着数据手册对各个寄存器去赋值罢了。而对于学习ZigBee技术来说是CC2530 MCU + Z_Stack。

CC2530结合了RF 收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其它强大的功能。CC2530 具有不同的运行模式,使得它尤其适应超低功耗要求的系统。和我们之前所学的STC89S52都是8051的内核,这一点对我们来说对CC2530的学习就更加熟悉了。有一些区别就是功能更多了更强大了,比如:有RF收发器、DMA读写、ADC采集、睡眠定时器等功能。一下是我对一些突出学习问题的总结:
1.关于中断服务子程序的编辑写。
1)不要在中断里使用for/while …类似的循环语句。
2)不要在中断里运算float…。
3)不要在中断里解释UART的数据。
4)尽量不要在中断中设置EA=0/1。
5)中断服务子程序的代码越短越好,要简洁高效。

:因为中断的产生会打断原本CPU的正常运行流程,在进入中断后应该尽可能的快速跳出中断,更少的占用CPU资源,才能减少对CPU的影响,所以类似的循环、大量的运算,数据转换,我们可以利用协议栈中消息、事件的方法来实现,中断里也可以执行osla_start_timerEx()…这样的软定时,通过这个函数再去触发事件。

Z_Stack协议栈是我们第一次所接触的知识点,ZigBee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些API,给用户调用。Z-Stack协议栈一个核心就是OSAL操作系统。

OSAL操作系统是一个基于任务轮询方式的操作系统,其任务调度和资源分配由操作系统抽象层OSAL管理着。在任务轮询过程中,系统将会不断查询每个任务是否有事件发生,如果有事件发生,就执行相应的事件处理函数,如果没有事件发生,则查询下一个任务。深入理解OSAL的调度机制和工作机理,是灵活应用Z-Satck协议栈进行Zigbee无线应用开发的重要基础。关键是要理解任务初始化函数osalInitTasks()、任务标识符taskID、任务事件数组taskEvents[]和任务事件处理函数指针数组tasksArr[]之间的对应关系以及它们在OSAL运行过程中的执行情况。

总之对于Zigbee技术的学习,Z_Stack协议栈毫无疑问是一块比较难啃的骨头,学习就是从一切的未知开始,进行不断的摸索,寻找解决问题的突破口,从而对这个问题加深印象,积累经验,学习不再是从入门到“入土”,而是让我们一起携手打开ZigBee的大门,从入门到“巅峰”。

你可能感兴趣的:(QST青软实训学员学习总结-2020/4/22-ZigBee)