物联网短距离无线通信 课件 10-WIFI协议栈程序分析_第1页
物联网短距离无线通信 课件 10-WIFI协议栈程序分析_第2页
物联网短距离无线通信 课件 10-WIFI协议栈程序分析_第3页
物联网短距离无线通信 课件 10-WIFI协议栈程序分析_第4页
物联网短距离无线通信 课件 10-WIFI协议栈程序分析_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物联网短距离无线通信技术项目十

WiFi协议栈程序分析1.项目场景2.CC3200协议代码流程分析目录CONTENTS3.传感器应用接口分析4.项目实践项目场景项目场景

夏天的空调、冬天的暖气,总是能让你生活在冰火两重天的世界。智能家居中的环境温度的感知与智能控制是非常重要的一个领域,智能家居系统通过温湿度传感器感知环境数据,通过智能处理中心记录分析并做出相关设备联动操作。16:20

/3任务目标

某公司需研制一款基于WiFi网络的智能家居产品,这款智能家居产品能自动获取温度信息,并通过WiFi

AP将数据发送至指定的网络地址,从而实现家电的智能控制。目前该产品正处于测试阶段,为了解产品的稳定性需要对设备中的程序执行流程进行监控,以此掌握程序的动态执行过程。16:20

/4CC3200协议代码流程分析

WiFi协议具体流程图WIFI的协议栈是一个用于实现WIFI网络功能的完整系统。WIFI协议栈启动代码需要完成初始化硬件平台和软件架构所需的要的各个模块,为操作系统的运行做好准备工作,主要分为板载初始化,初始化系统时钟,初始化DMA,引脚复用配置,初始化各个硬件模块,初始化串口,启动simplelink设备,AT命令初始化,传感器初始化,连接WIFI设备,定时触发等十余部分。

WiFi协议栈-main()voidmain(){longlRetVal

=-1;//BoardInitializationBoardInit();

//板载初始化SysTickInit();

//初始化systick定时器//Initialize

the

uDMAUDMAInit();

//初始化DMA控制//Configure

the

pinmux

settings

for

the

peripherals

exercisedPinMuxConfig();

//引脚复用配置LEDInit();//LED初始化//Configuring

UARTInitTerm();//配置串口DisplayBanner(APPLICATION_NAME);

//打印应用名称InitializeAppVariables();//初始化应用}

WiFi协议栈-main()voidmain(

){lRetVal

=ConfigureSimpleLinkToDefaultState();

//配置simpleLink为默认状态(station)if(lRetVal

<0){//如果配置失败if

(DEVICE_NOT_IN_STATION_MODE

==lRetVal)LOOP_FOREVER();}

//无限循环lRetVal

=

sl_Start(0,0,0);

//启动simplelink设备if

(lRetVal

<0){//如果启动失败LOOP_FOREVER();}//无线循环ucfg_read();int

mode

=1;//0

trans,

1

at

modeint

at_ret

=0;macInit();ATCommandInit();ZXBeeInfInit();//获取网络配置#ifndef

CC3200_SerialsensorInit();//传感器初始化#endif}16:20

/7

WiFi协议栈-main()voidmain(

){while

(1){if

((IS_CONNECTED(g_ulStatus))

&&

(IS_IP_ACQUIRED(g_ulStatus)))

{if

(iSockID

<0){SocketInit();}

else

if

(at_ret

<=0){int

ret

=SocketCheck();if

(ret

>0)

{SocketRecvMessage(SockBuf,

ret);}}}

else

{static

char

s

=0;static

unsignedlong

led_tm

=0,

conn_tm=0;unsigned

longt

=UTUtilsGetSysTime();if

(t

-led_tm

>200){if

(s)LEDOff(1);else

LEDOn(1);s

=!s;16:20

/8led_tm

=t;}

WiFi协议栈-main()voidmain(

){if

(conn_tm==0||

t

-

conn_tm>60*1000){InitializeAppVariables();if

(strlen(cfg.ssid)

>0){WlanConnect();

//连接到WiFi设备}conn_tm=

t;}}if

(mode

==1){at_ret

=

at_check();}#ifndef

CC3200_SerialsensorLoop();#endif_SlNonOsMainLoopTask();}传感器应用接口分析

传感器应用接口函数函数名称函数说明sensorInit()传感器硬件初始化sensorLinkOn()节点入网成功操作函数sensorUpdate()传感器数据定时上报sensorControl()传感器/执行器控制函数sensorCheck()传感器预警监测及处理函数ZXBeeInfRecv()解析接收到的传感器控制命令函数sensorLoop()启动定时器触发事件智云框架是在应用接口和API接口上搭建起来的,通过合理调用这些接口,使WIFI项目的开发形成一套系统的开发逻辑。具体应用接口在sensor.c文件中实现,包括:传感器初始化、控制设备的操作、传感器数据的采集、报警信息的实时响应、系统参数的配置更新等,

智云传感器程序执行流程智云框架下WIFI无线节点示例程序基于WIFI协议栈框架开发,

智云传感器程序执行流程智云框架下BLE无线节点示例程序基于BLE协议栈框架开发项目实践项目实践

硬件功能设计16:20

/12项目实践

软件逻辑设计16:20

/13项目实践

软件逻辑设计16:20

/14项目实践

程序通信协议数据方向协议格式说明上行(节点往应用发送数据)temperature=XX表示采集的温度值X为0表示关闭继电器,1表示开启继电器。下行(应用往节点发送指令)cmd=X16:20

/15项目实践

传感器初始化温度传感器初始化代码如下:void

sensorInit(void){DebugMsg("sensor->sensorInit():

Sensor

init!\r\n");//温度传感器初始化//初始化继电器代码relay_init();}//

继电器初始化16:20

/16项目实践

传感器主动上报传感器数据void

sensorUpdate(void){char

pData[32];char

*p

=

pData;//温度采集(0~40随机数)temperature

=(uint16)(rand()%40);//更新温度的值sprintf(p,

"temperature=%.1f",

temperature);sendMessage(p,strlen(p));DebugMsg("sensor->sensorUpdate():

temperature=%.1f\r\n",

temperature);}16:20

/17项目实践

循环定时触发void

sensorLoop(void){static

unsignedlong

ct_update

=0;if

(t4exp(ct_update))

{sensorUpdate();ct_u

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论