欢迎来到天天文库
浏览记录
ID:52759980
大小:654.18 KB
页数:31页
时间:2020-03-30
《物联网系列专业课程之智云硬件层驱动设计.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Internet+EducationSolutions智云硬件层驱动设计中智讯(武汉)科技有限公司目录Contents智云硬件Hal层驱动框架采集类传感器驱动设计控制类传感器驱动设计安防类传感器驱动设计EducationSolutions智云硬件层设计实例Internet+智云硬件HAL软件框架(ZigBee)基于CC2530处理器的智云节点采用ZStack协议栈,参考工程如下:dht11.c/.h温湿度传感器的驱动UserApp.c/.hZXBee协议驱动代码sensor_init()#传感器硬件初始化sensor_up
2、date()#定时主动上报传感器数值sensor_control()#传感器控制逻辑sensor_check()#监测传感器报警状态值usr_process_command_call()#解析收到的控制命令MyEventProcess()#自定义处理事件AppCommon.cZStacksapi接口实现zb_HandleOsalEvent()#OSAL事件zb_ReceiveDataIndication()#接收到无线数据包process_package()#ZXBee数据包解析_process_command_call()#解析收到
3、的控制命令16:27/3ZXBee驱动框架开始否入网成功是传感器初始化sensor_init()否接收数据是设置定时器开启用户任务事件接收数据处理usr_process_command_call()否事件发生上报传感器值/执行控制等操作是用户任务事件处理MyEventProcess()ZXBee驱动基于sapi框架开发,详细的程序设置定时器流程图如上所示开启用户任务事件16:27/4ZXBee驱动框架voidzb_HandleOsalEvent(uint16event)(event&ZB_ENTRY_EVENT)事件:1.判断/设置节
4、点类型2.设置网络信号LED灯闪烁3.调用sensor_init()函数进行传感器初始化(event&0x000F)事件:1.进入用户自定义事件(0x0001~0x000F),该函数在UserApp.c文件内MyEventProcess()函数实现voidzb_StartConfirm(uint8status)检测是否正确入网,入网成功后网络信号LED灯长亮voidzb_ReceiveDataIndication(uint16source,uint16command,uint16len,uint8*pData)处理接收到的无线数据包s
5、taticvoidprocess_package(char*pkg,intlen)处理并分解ZXBee无线数据包,提取命令键值对staticint_process_command_call(char*ptag,char*pval,char*pout)1.处理ZXBee无线数据包内的命令键值对(通用命令)2.调用usr_process_command_call(ptag,pval,pout)函数处理用户命令16:27/5ZXBee用户程序设计智云平台为ZigBeeZStack协议栈上层应用提供分层的软件设计结构,将传感器的私有操作部分
6、封装到UserApp.c文件中函数名称函数说明sensor_init()传感器硬件初始化sensor_update()传感器数据定时上报sensor_check()传感器报警状态实时监测sensor_control()传感器/执行器控制函数usr_process_command_call()解析接收到的传感器控制命令函数MyEventProcess()自定义事件处理函数,启动定时器触发事件MY_REPORT_EVT16:27/6目录Contents智云硬件Hal层驱动框架采集类传感器驱动设计控制类传感器驱动设计安防类传感器驱动
7、设计EducationSolutions智云硬件层设计实例Internet+采集类传感器设计示例案例:设计智能温湿度采集终端根据ZXBee协议定义,协议设定如下:传感器属性参数权限说明温度值A0R温度值,浮点型:0.1精度湿度值A1R湿度值,浮点型:0.1精度温湿度上报状态D0(OD0/CD0)R(W)D0的Bit0表示温度上传状态、Bit1表示湿度上传状态上报间隔V0RW修改主动上报的时间间隔16:27/8采集类传感器设计示例温湿度传感器程序逻辑开始sensor_init()初始化MY_REPORT_EVT事件接收到无线数据
8、上报A0温度、A1湿度值数据解析D0参数CD0/OD0控制上传状态A0=?读取温度值并上报V0参数V0控制上传时间间隔A1=?读取湿度值并上报自动上传D0=?读取上传状态并上报V0=?读取上传间隔并上报16:27/9采集
此文档下载收益归作者所有