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网络,以降低部署成本、实现平滑升级。
优势比较!
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.更低功耗。
ZXBee 系列无线节点目前提供 4 种类型支持:
智能物联网综合系统工作框架:
光传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近, 包括红外线波长和紫外线波长。
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(最主要参数)
红外线传感器是利用红外线的物理性质来进行测量的传感器。。
ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,从下往上依次是物理层,MAC层,网络/安全层,应用支持子层,应用层。
物理层
从节点类型来分类ZigBee设备包括:协调器(上电启动和配置网络)、路由器、终端节点(检测传感器信息并上传)。
ZigBee有三种网络拓扑,即星形、树形和网状网络。
宏定义修改HOME_CONTROLS的网络模式 (NWK_MODE),来选择不同的网络拓扑。
树状网:NEW_MODE_TREE;网状网:NEW_MODE_MESH
ZStack采用操作系统的思想来构建,采用事件轮循机制,当各层初始化之后,系统进入低功耗模式,当事件发生时,唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式,如果同时有几个事件发生,判断优先级,逐次处理事件,这种软件构架可以极大地降级系统的功耗。
APP(Application Programming):应用层目录,这是用户创建各种不同工程的区域
HAL(Hardware (H/W) Abstraction Layer):硬件层目录,包含有与硬件相关的配置和驱动及操作函数。
MAC:MAC 层目录,包含了MAC 层的参数配置文件及其MAC 的LIB 库的函数接口文件。
MT(Monitor Test):实现通过串口可控各层,与各层进行直接交互。
NWK(ZigBee Network Layer):网络层目录,含网络层配置参数文件及网络层库的函数接口文件,APS 层库的函数接口。
ZStack 中定义了两种地址,64 位的扩展地址(IEEE 地址)和 16 位网络短地址。
整个ZStack的主要工作流程,大致分为系统启动,驱动初始化,OSAL初始化和启动,进入任务轮循几个阶段。
main 函数一共做了两件工作,一个是系统初始化,另外一个就是开始启动操作系统。
使用串口的基本步骤:
ZigBee协议栈中提供的与串口操作相关的三个函数为:
用户也可以自定义事件,用户事件值只能设置为0x0000~0x00FF,大于0xFF的是系统事件。#define MY_REPORT_TEMP_EVT 0x0002
通过osal_start_timerEx( uint8 taskID, uint16 event_id, uint16 timeout_value );函数可以产生用户事件。
网关(Gateway)又称网间连接器、协议转换器。在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。
物联网智能网关是一个中央数据转换单元,基于传统嵌入式技术,运行复杂的嵌入式操作系统,实现传感无线网数据与电信网/互联网之间的数据交互。
智能网关采用嵌入式高性能ARM处理器,运行Linux操作系统,实现网络的数据M2M交互。
主芯片采用ARM CortexTM-A8内核的S5PV210,通过串口外挂Zigbee协调器,蓝牙模块(Master模式),WiFi模块(ap模式),4G通信模块。
数据上行(终端节点数据到用户):协调器将终端节点上报的信息通过串口与 Android 网关的串口进行数据通信。
数据下行(用户指令到终端节点):用户程序先建立 socket 连接,将数据下发到该网关服务程序,然后网关服务程序将 socket 数据向串口进行发送。
JNI技术,使得开发者可以通过java程序(代码)调用到操作系统相关的技术实现的库函数,从而与其他技术和系统交互,使用其他技术实现的系统的功能;JNI是一种函数调用格式标准。
Socket 服务的作用就是实现串口服务线程的数据和客户端程序的 socket 客户端的数据的交换。Socket 服务分为 Socket Server 和 Socket Client
BOA服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器。
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 个信道,节点使用相同的信道才能进行通信。
程序与点对点通信的主要区别
/* 射频模块发送数据函数 */
void rfSendData(void){
while (TRUE) {
ret = basicRfSendPacket(0xffff, pTxData, sizeof pTxData); //广播发送数据包
...
} }
若目的地址为自己的 地址或广播地址则接收数据。
RSSI:Received Signal Strength Indication 接收的信号强度指示,定位技术.
CC2530 芯片中有专门读取 RSSI 值的寄存器,
通过绑定,节点之间可以在不知道对方地址的情况下实现数据传输。
配置设备绑定服务,有两种机制:如果目标设备的扩展地址已知,可通过调用zb_BindDeviceRequest()建立绑定条目;如果目标设备的扩展地址未知,可实施一个“按键” 策略实现绑定。
采用按键策略绑定:
zb_ BindDevice(TRUE, TOGGLE_LIGHT_CMD_ID, NULL); //发送绑定请求