物联网技术复习资料

1 物联网的无线技术

4GLTE、NB-IOT、LoRa、wifi、Bluetooth、Zigbeee

1)ZigBee是IEEE 802.15.4协议的代名词。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。ZigBee可工作在2.4GHz(全球流行)频段上,有最高250kbit/s的传输速率,它的传输距离在50~200m的范围内,但可以继续增加。

2)802.11标准是IEEE最初制定的一个无线局域网标准,小范围的无线接入,业务主要限于数据存取。IEEE 802.11b/g/n即为Wi-Fi标准,工作频段在2.4GHz~2.4835GHz,传输速率分别可达11Mbps/54Mbps/600Mbps

3)蓝牙(Bluetooth),是一种支持设备短距离通信(一般10m内)的无线电技术。进行无线信息交换。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM频段。其数据速率为1Mbp采用时分传输方案实现全双工传输。

4)LoRa是基于LPWAN(低功耗广域网)的一种新型通信技术,其接受灵敏度达到了的-148dbm,这确保了网络连接可靠性。LoRa采用线性调频扩频调制技术, LoRa集中器/网关能够并行接收并处理多个节点的数据,大大扩展了系统容量。LoRa采用LoRaWAN协议,是LoRa联盟推出的一个基于开源的MAC层协议的低功耗广域网标准。LoRa主要在全球免费频段运行(即非授权频段),包括433、868、915 MHz等。

5)NB-IoT是一种基于蜂窝数据连接的LPWAN(低功耗广域网),NB-IoT只消耗大约180KHz的带宽,可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。

优势比较!

2 Zigbee节点

2.1 TI CC2530处理器

ZigBee新一代SOC芯片CC2530是真正的基于2.4-GHz IEEE802.15.4支持ZigBee协议的片上系统解决方案。其特点是以极低的总材料成本建立较为强大的网络节点。集成增强型8051 CPU,内置高性能RF收发器,系统内可编程闪存(32~256KB),8KB RAM ,广泛的外设集等许多其他模块的强大的功能。

CC2530与8051基本型的主要区别?

1.内置无线射频模块,全面实现 IEEE 802.15.4的PHY 层和MAC 层

2.内置ADC模块,提高了对传感器信号的采集效率。

3.CPU速度提高(单时钟指令),内存增加(8K的RAM,256K的ROM)。更好的支持传感器信号采集和无线通信。

4.更低功耗。

2.2 ZXBee无线节点

ZXBee 系列无线节点目前提供 4 种类型支持:

      • ZXBeeEdu(+)无线节点:用于实验室教学型节点。
      • ZXBeeLite 无线节点:用于创新套件或户外场合,带铝外壳,2 路工业 MD8/S 端子接口, 可外接各种商用/工业传感器。
      • ZXBeePlus 无线节点:用于创新套件或户外场合。

2.3 传感器

智能物联网综合系统工作框架:

  • 传感器:是一种能把特定的被测信号,按一定规律转换成某种可用信号输出的器件或装置,以满足信息的传输、处理、记录、显示和控制等要求。
  • 传感器作用:传感器处于研究对象与检测系统的接口位置,是感知、获取与检测信息的窗口,它提供物联网系统赖以进行决策和处理所必需的原始数据。

光传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近, 包括红外线波长和紫外线波长。

DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器 。DHT11 的串行接口DATA 用于微处理器与 DHT11 之间的通讯和同步,采用单总线数据格式,一次通讯时间 4ms 左右,一次完整的数据传输为 40bit,高位先出。数据格式:8bit 湿度整数数据 +8bit 湿度小数数据 +8bit 温度整数数据 +8bit 温度小数数据+8bit 校验和数据传送正确时校验和数据等于“ 8bit 湿度整数数据 +8bit 湿度小数数据+8bit 温度整数数 据 +8bit 温度小数数据 ” 所得结果的末 8 位。

SRF05 超声波测距模块可以提供 2cm-450cm 的非接触式距离感测功能,测距精度可达到 3mm;SRF05 基本工作原理:

采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号;

模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;

有信号返回,通过 io 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的 时间;

测试距离=(高电平时间*声速(340M/S))/ 2(最主要参数)

红外线传感器是利用红外线的物理性质来进行测量的传感器。。

3 ZigBee无线通信技术基础

3.1 技术特点

  • 数据传输速率低:10KB/秒~250KB /秒,专注于低传输应用
  • 功耗低:在低功耗待机模式下,两节普通5号电池可使用6~24个月
  • 成本低:ZigBee数据传输速率低,协议简单,所以大大降低了成本
  • 网络容量大:网络可容纳65,000个设备
  • 时延短:通常时延都在15ms~30ms
  • 安全: 提供了数据完整性检查和鉴权功能,采用AES-128加密算法
  • 有效范围小:有效覆盖范围10~75米,
  • 工作频段灵活:使用频段为2.4GHz、868MHz(欧洲)和915MHz(美国),均为免执照(免费)的频段
  • 传输可靠:采用碰撞避免策略,同时为需要固定带宽的业务预留专用时隙。

3.2 技术体系

ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,从下往上依次是物理层,MAC层,网络/安全层,应用支持子层,应用层。

物理层

  • 调制方式:扩频通信
  • 信号传输距离:~50m(室内),~150m(室外)。

3.3 设备与网络

从节点类型来分类ZigBee设备包括:协调器(上电启动和配置网络)、路由器、终端节点(检测传感器信息并上传)。

ZigBee有三种网络拓扑,即星形、树形和网状网络。

  • 星形网络中,所有节点只能与协调器进行通信,而他们相互之间的通信是禁止的;
  • 树形网络中,终端节点只能与它的父节点通信,路由节点可与它的父节点和子节点通信;
  • 网状网络中,全功能节点之间是可以相互通信的。

宏定义修改HOME_CONTROLS的网络模式 (NWK_MODE),来选择不同的网络拓扑。

树状网:NEW_MODE_TREE;网状网:NEW_MODE_MESH

4 ZStack协议栈

4.1 ZStack的设计

ZStack采用操作系统的思想来构建,采用事件轮循机制,当各层初始化之后,系统进入低功耗模式,当事件发生时,唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式,如果同时有几个事件发生,判断优先级,逐次处理事件,这种软件构架可以极大地降级系统的功耗。

4.2 ZStack源码工程架构:

APP(Application Programming):应用层目录,这是用户创建各种不同工程的区域

HAL(Hardware (H/W) Abstraction Layer):硬件层目录,包含有与硬件相关的配置和驱动及操作函数。

MAC:MAC 层目录,包含了MAC 层的参数配置文件及其MAC 的LIB 库的函数接口文件。

MT(Monitor Test):实现通过串口可控各层,与各层进行直接交互。

NWK(ZigBee Network Layer):网络层目录,含网络层配置参数文件及网络层库的函数接口文件,APS 层库的函数接口。

4.3 地址分配

ZStack 中定义了两种地址,64 位的扩展地址(IEEE 地址)和 16 位网络短地址。

  • 扩展地址是 全球唯一的,就像网卡地址;
  • 网络短地址是加入 ZigBee  网时,由协调器动态分配,在特定的网络 中是唯一的但是不一定每次都是一样。由三个参数决定:
  1. MAX_DEPTH 代表网络最大深度,协调器为 0 级深度,它决定了物理上网络的―长度。
  2. MAX_CHILDREN 决定了一个协调器或路由器能拥有几个子节点
  3. MAX_ROUTERS 决定了一个协 调器或路由器能拥有几个路由功能的节点

4.4 ZStack工作流程

整个ZStack的主要工作流程,大致分为系统启动,驱动初始化,OSAL初始化和启动,进入任务轮循几个阶段。

main 函数一共做了两件工作,一个是系统初始化,另外一个就是开始启动操作系统。

4.6 串口应用

使用串口的基本步骤:

  • 初始化串口,包括设置波特率,中断等;
  • 向发送缓冲区发送数据或者从接收缓冲区读取数据。

ZigBee协议栈中提供的与串口操作相关的三个函数为:

  • uint8 HalUARTOpen(uint8 port, halUARTCfg_t *config);
  • uint16 HalUARTRead(uint8 port, uint8 *buf, uint16 len);
  • uint16 HalUARTWrite(uint8 port, uint8 *buf, uint16 len)。

4.5 自定义事件

用户也可以自定义事件,用户事件值只能设置为0x0000~0x00FF,大于0xFF的是系统事件。#define MY_REPORT_TEMP_EVT  0x0002

通过osal_start_timerEx( uint8 taskID, uint16 event_id, uint16 timeout_value );函数可以产生用户事件。

5 嵌入式网关设计

网关(Gateway)又称网间连接器、协议转换器。在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。

物联网智能网关是一个中央数据转换单元,基于传统嵌入式技术,运行复杂的嵌入式操作系统,实现传感无线网数据与电信网/互联网之间的数据交互。

智能网关采用嵌入式高性能ARM处理器,运行Linux操作系统,实现网络的数据M2M交互。

主芯片采用ARM CortexTM-A8内核的S5PV210,通过串口外挂Zigbee协调器,蓝牙模块(Master模式),WiFi模块(ap模式),4G通信模块。

5.1 软件架构(Android)

数据上行(终端节点数据到用户):协调器将终端节点上报的信息通过串口与 Android 网关的串口进行数据通信。

数据下行(用户指令到终端节点):用户程序先建立 socket 连接,将数据下发到该网关服务程序,然后网关服务程序将 socket 数据向串口进行发送。

JNI技术,使得开发者可以通过java程序(代码)调用到操作系统相关的技术实现的库函数,从而与其他技术和系统交互,使用其他技术实现的系统的功能;JNI是一种函数调用格式标准。

Socket 服务的作用就是实现串口服务线程的数据和客户端程序的 socket 客户端的数据的交换。Socket 服务分为 Socket Server 和 Socket Client

BOA服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器。

5.2 通信协议设计

  • 根据数据流向将通信分为三层:第一层为上层应用程序与 Zigbee 网关之间的通信(应用层通信协议);第二层为 Zigbee  网关与 Coo  节点之间的通信(串口通信协 议),采用 TI 提供的标准串口通信;第三层为 Coo 节点与普通节点之间的通信(协议栈通信协议)
  • 前两层通信协议帧通过网关服务程序进行转换,第三层通信 协议帧封装在前两层通信协议帧中。

6 实验

6.1 P2P点对点通信(点播)

void main(void)

{   halMcuInit();     //初始化mcu

    hal_led_init();   //初始化LED   

    hal_uart_init();  //初始化串口   

    if (FAILED == halRfInit()) { 

        HAL_ASSERT(FALSE);    } 

    basicRfConfig.panId = PAN_ID;          //个域网 ID 标示

    basicRfConfig.channel = RF_CHANNEL; //通信信道

    basicRfConfig.ackRequest = TRUE;       //应答请求

#if NODE_TYPE  //节点类型:0-接收节点,1-发送节点

    basicRfConfig.myAddr = SEND_ADDR;     //发送地址

#else

    basicRfConfig.myAddr = RECV_ADDR;     //接收地址

#endif

   

    if(basicRfInit(&basicRfConfig)==FAILED) {

      HAL_ASSERT(FALSE);

    }

#if NODE_TYPE

  rfSendData();       //发送数据

#else

  rfRecvData();       //接收数据

#endif

ifdef SECURITY_CCM

    basicRfConfig.securityKey = key;       //安全秘钥

#endif

}

CC2530 芯片使用了 2.4GHZ 频段定义的 16 个信道,节点使用相同的信道才能进行通信。

6.2 广播通信

程序与点对点通信的主要区别

/* 射频模块发送数据函数 */

void rfSendData(void){

     while (TRUE) {      

       ret = basicRfSendPacket(0xffff, pTxData, sizeof pTxData);     //广播发送数据包   

...

       } }

若目的地址为自己的 地址或广播地址则接收数据。

6.3 RSSI信号采集实验

RSSI:Received Signal Strength Indication 接收的信号强度指示,定位技术.

CC2530 芯片中有专门读取 RSSI 值的寄存器,

6.4 绑定实验

通过绑定,节点之间可以在不知道对方地址的情况下实现数据传输。

配置设备绑定服务,有两种机制:如果目标设备的扩展地址已知,可通过调用zb_BindDeviceRequest()建立绑定条目;如果目标设备的扩展地址未知,可实施一个“按键” 策略实现绑定。

采用按键策略绑定:

  • 只有分别在两个节点的简单描述结构体(simple descriptor structure) 中,同时注册了相同的命令标识符(command_id)并且方向相反(一个属于输出指令“output”,另 一个属于输入指令“input”),才能成功建立绑定。

zb_ BindDevice(TRUE, TOGGLE_LIGHT_CMD_ID, NULL); //发送绑定请求

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章