物联网短距离无线通信技术应用与开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.2 短距离无线通信技术的学习路线、开发平台和开发环境

1.短距离无线通信技术的学习路线

短距离无线通信技术的学习包括微处理器技术和射频技术的学习。微处理器技术的学习主要是对射频承载的芯片接口技术进行学习,射频技术的学习则是对网络特性和网络协议的学习。通过使用射频芯片实现数据收发,短距离无线通信技术的学习目的也就基本上达到了。

下面以ZigBee网络为例分析短距离无线通信技术的学习路线。ZigBee网络是一种低功耗、高效率、多点自组织、短近距离、可中继的无线传感器网络。承载ZigBee网络的芯片有很多,本书以TI公司研发的CC2530芯片为例。CC2530芯片是一个拥有增强型51内核的单片机,集成了符合ZigBee网络特性的射频组件。

先学习CC2530芯片的工作原理,然后学习CC2530的射频功能。在射频功能方面,很多半导体公司在芯片上开发了ZigBee网络协议栈,网络协议栈能够调用芯片的全部资源,并能够通过协议栈使开发者轻松地使用ZigBee网络。因此使用CC2530的ZigBee功能就是使用CC2530的ZigBee协议栈。

因此学习ZigBee网络,一方面学习芯片的使用,另一方面还在理解协议栈原理的基础上使用封装的ZigBee协议栈。

结合ZigBee网络的学习思路,短距离无线通信技术的学习路线如图1.14所示。

img

图1.14 短距离无线通信技术的学习路线

常见短距离无线通信技术的学习内容如表1.1所示。

表1.1 常见短距离无线通信技术的学习内容

img

表1.1中ZigBee网络、BLE网络、Wi-Fi网络均使用带射频功能的芯片,可直接使用官方提供的协议栈。但半导体公司的协议栈开发人员的程序开发水平远高于初学者,导致初学者对协议栈的学习和理解变得十分困难,因此本书的项目开发框架在原有的半导体公司提供的协议栈的基础上进行了封装和优化,可大大方便初学者的学习。

2.短距离无线通信技术的开发平台

本书的开发平台为xLab未来开发平台,提供两种类型的智能节点,即经典型节点ZXBeeLite-B和增强型节点ZXBeePlus-B,该开发平台集成了锂电池供电接口、调试接口、外设控制电路、RJ45工业接口等。

ZXBeeLite-B经典型节点采用CC2530作为主控微处理器,板载电源、电池信号指示灯和网络、数据两路功能按键,集成了锂电池接口、电源管理芯片,支持电池的充电管理和电量测量;集成了USB串口、TI仿真器接口、ARM仿真器接口;集成了两路RJ45工业接口,提供主芯片P0_0~P0_7输出,硬件包含IO、ADC3.3 V、ADC5 V、UART、RS-485、两路继电器接口等,提供两路3.3 V、5 V、12 V电源输出。xLab未来开发平台如图1.15所示。

img

图1.15 xLab未来开发平台

本书使用xLab未来开发平台来进行学习和应用开发,xLab未来开发平台支持多种无线传感器网络,包括ZigBee网络、BLE网络、Wi-Fi网络、LoRa网络、NB-IoT网络、LTE网络,其中本书主要使用的无线模组有ZigBee无线模组、BLE无线模组、Wi-Fi无线模组。无线模组功能描述如表1.2所示。

表1.2 无线模组功能一览表

img

续表

img

为深化在无线传感器网络中对节点时使用,书中的项目实例均用到传感器和控制设备。xLab未来开发平台按照传感器类别设计了丰富的传感设备,涉及采集类、控制类、安防类、显示类、识别类、创意类等。本书实例使用采集类开发平台(Sensor-A)、控制类开发平台(Sensor-B)和安防类开发平台(Sensor-C)。

1)采集类开发平台(Sensor-A)

采集类开发平台包括:温湿度传感器、光照度传感器、空气质量传感器、气压海拔传感器、三轴加速度传感器、距离传感器、继电器、语音识别传感器等,如图1.16所示。

img

图1.16 采集类开发平台

● 两路RJ45工业接口,包含I/O、DC 3.3 V、DC 5 V、UART、RS-485、两路继电器输出等功能,提供两路3.3 V、5 V、12 V电源输出。

● 采用磁吸附设计,可通过磁力吸附并通过RJ45工业接口接入节点进行数据通信。

● 温湿度传感器的型号为HTU21D,采用数字信号输出和IIC总线通信接口,测量范围为-40~125℃,以及5%~95%RH。

● 光照度传感器的型号为BH1750,采用数字信号输出和IIC总线通信接口,对应广泛的输入光范围,相当于1~65535 lx。

● 空气质量传感器的型号为MP503,采用模拟信号输出,可以检测气体酒精、烟雾、异丁烷、甲醛,检测浓度为10~1000 ppm(酒精)。

● 气压海拔传感器的型号为FBM320,采用数字信号输出和IIC总线通信接口,测量范围为300~1100 hPa。

● 三轴加速度传感器的型号为LIS3DH,采用数字信号输出和IIC总线通信接口,量程可设置为±2g、±4g、±8g、±16gg为重力加速度),16位数据输出。

● 距离传感器的型号为GP2D12,采用模拟信号输出,测量范围为10~80 cm,更新频率为40 ms。

● 采用继电器控制,输出节点有两路继电器接口,支持5 V电源开关控制。

● 语音识别传感器的型号为LD3320,支持非特定人识别,具有50条识别容量,返回形式丰富,采用串口通信。

2)控制类开发平台(Sensor-B)

控制类开发平台包括:排风扇、步进电机、蜂鸣器、LED、RGB灯、继电器接口,如图1.17所示。

img

图1.17 控制类开发平台

● 两路RJ45工业接口,包含I/O、DC 3.3 V、DC 5 V、UART、RS-485、两路继电器输出等功能,提供两路3.3 V、5 V、12 V电源输出。

● 采用磁吸附设计,可通过磁力吸附并通过RJ45工业接口接入节点进行数据通信。

● 排风扇为小型风扇,采用低电平驱动。

● 步进电机为小型42步进电机,驱动芯片为A3967SLB,逻辑电源电压范围为3.0~5.5 V。

● 使用小型蜂鸣器,采用低电平驱动。

● 两路高亮LED,采用低电平驱动。

● RGB灯采用低电平驱动,可组合出任何颜色。

● 采用继电器控制,输出节点有两路继电器接口,支持5 V电源开关控制。

3)安防类开发平台(Sensor-C)

安防类开发平台包括:火焰传感器、光栅传感器、人体红外传感器、燃气传感器、触摸传感器、振动传感器、霍尔传感器、继电器接口、语音合成传感器等,如图1.18所示。

img

图1.18 安防类开发平台

● 两路RJ45工业接口,包含I/O、DC 3.3 V、DC 5 V、UART、RS-485、两路继电器输出等功能,提供两路3.3 V、5 V、12 V电源输出。

● 采用磁吸附设计,可通过磁力吸附并通过RJ45工业接口接入节点进行数据通信。

● 火焰传感器采用5 mm的探头,可检测火焰或波长为760~1100 nm的光源,探测温度为60℃左右,采用数字开关量输出。

● 光栅传感器的槽式光耦槽宽为10 mm,工作电压为5 V,采用数字开关量信号输出。

● 人体红外传感器的型号为AS312,电源电压为3 V,感应距离为12 m,采用数字开关量信号输出。

● 燃气传感器的型号为MP-4,采用模拟信号输出,传感器加热电压为5 V,供电电压为5 V,可测量天然气、甲烷、瓦斯气、沼气等。

● 触摸传感器的型号为SOT23-6,采用数字开关量信号输出,当检测到触摸时,输出电平翻转。

● 振动传感器在低电平时有效,采用数字开关量信号输出。

● 霍尔传感器的型号为AH3144,电源电压为5 V,采用数字开关量输出,工作频率宽(0~100 kHz)。

● 采用继电器控制,输出节点有两路继电器接口,支持5 V电源开关控制。

● 语音合成传感器的型号为SYN6288,采用串口通信,支持GB2312、GBK、UNICODE等编码,可设置音量、背景音乐等。

3.短距离无线通信技术的开发环境

学习短距离无线通信技术就是学习无线传感器网络承载的芯片和网络协议栈。对无线传感器网络的学习与开发就是对芯片的程序开发。既然要开发程序,就需要开发环境和相关的开发工具。

为了避免多个开发和编译环境的使用造成初学者对学习无线传感器网络的困扰,本书选用TI开发平台,ZigBee、BLE和Wi-Fi的芯片都使用TI公司研发的芯片。这三种芯片的协议栈开发环境均为IAR集成开发环境。另外三种网络选用的是射频模块加控制芯片的组合,在程序开发上只需要对控制芯片进行操作即可。芯片选用的是意法半导体公司生产的基于ARM内核的STM32芯片,IAR集成开发环境对此款芯片也有很好的支持。因此在无线传感器网络的学习中程序的开发均使用IAR集成开发环境。

除了开发环境,意法半导体公司还为芯片的开发提供了许多可用的工具,如网络调试工具、抓包工具等,为了方便初学者对无线传感器网络的学习,也开发了功能强大的综合调试工具。

无线传感器网络开发环境与调试工具汇总如表1.3所示。

表1.3 无线传感器网络开发环境与调试工具汇总

img

续表

img

由于所有网络均使用IAR集成开发环境,此处将对IAR集成开发环境的使用进行分析,其中CC2530和CC2540采用的是IAR for 8051,CC3200使用的是IAR for ARM,两者界面和调试方法相同。IAR集成开发环境是一个专门用于开发嵌入式设备程序的开发环境,使用方便简单。

1)IAR集成开发环境的主窗口界面

IAR集成开发环境的主窗口界面如图1.19所示。

img

图1.19 IAR集成开发环境的主窗口界面

(1)Menu Bar(菜单栏):包含IAR的所有操作及内容,在编辑模式和调试模式下存在一些不同。

(2)Tool Bar(工具栏):包含一些常见的快捷按钮。

(3)Workspace Window(工作空间窗口):一个工作空间可以包含多个工程,该窗口主要显示工作空间中工程项目的内容。

(4)Edit Window(编辑窗口):代码编辑区域。

(5)Message Window(信息窗口):包括编译信息、调试信息、查找信息等内容。

(6)Status Bar(状态栏):包含错误警告、光标行列等一些状态信息。

2)IAR集成开发环境的工具栏

工具栏上是主菜单部分功能的快捷按钮,这些快捷按钮之所以放置在工具栏上,是因为它们的使用频率较高。例如,编译按钮,这个按钮在编程时使用的频率相当高,这些按钮大部分也有对应的快捷键。

IAR的工具栏共有两个:主工具栏和调试工具栏。编辑(默认)模式下只显示主工具栏,进入调试模式后会显示调试工具栏。

主工具栏可以通过菜单打开,即“View→Toolbars→Main”,如图1.20所示。

img

图1.20 通过菜单打开IAR集成开发环境的主工具栏

(1)IAR集成开发环境的主工具栏。在编辑模式下,只显示主工具栏,其中的内容也是编辑模式下常用的快捷按钮,如图1.21所示。

img

图1.21 IAR集成开发环境的主工具栏

● New Document:新建文件,快捷键为Ctrl+N。

● Open:打开文件,快捷键为Ctrl+O。

● Save:保存文件,快捷键为Ctrl+S。

● Save All:保存所有文件。

● Print:打印文件,快捷键为Ctrl+P。

● Cut:剪切,快捷键为Ctrl+X。

● Copy:复制,快捷键为Ctrl+C。

● Paste:粘贴,快捷键为Ctrl+V。

● Undo:撤销编辑,快捷键为Ctrl+Z。

● Redo:恢复编辑,快捷键为Ctrl+Y。

● Quick Search Text Box:快速搜索文本框。

● Find Previous:向前查找,快捷键为Shift+F3。

● Find Next:向后查找,快捷键为F3。

● Find:查找(增强),快捷键为Ctrl+F。

● Replace:替换,快捷键为Ctrl+H。

● Go To:前往行列,快捷键为Ctrl+G。

● Toggle Bookmark:标记/取消书签,快捷键为Ctrl+F2。

● Previous Bookmark:跳转到上一个书签,快捷键为Shift+F2。

● Next Bookmark:跳转到下一个书签,快捷键为F2。

● Navigate Forward:跳转到下一步,快捷键为Alt+右箭头。

● Navigate Backward:跳转到上一步,快捷键为Alt+左箭头。

● Compile:编译,快捷键为Ctrl+F7。

● Make:编译工程(构建),快捷键为F7。

● Stop Build:停止编译,快捷键为Ctrl+Break。

● Toggle Breakpoint:编辑/取消断点,快捷键为Ctrl+F9。

● Download and Debug:下载并调试,快捷键为Ctrl+D。

● Debug without Downloading:调试(不下载)。

(2)IAR集成开发环境的调试工具栏。调试工具栏是在程序调试模式下才显示的快捷按钮,在编辑模式下,这些按钮是不显示的,如图1.22所示,各个图标说明如下。

img

图1.22 IAR集成开发环境的调试工具栏

● Reset:复位。

● Break:停止运行。

● Step Over:逐行运行,快捷键为F10。

● Step Into:跳入运行,快捷键为F11。

● Step Out:跳出运行,快捷键为F11。

● Next Statement:运行到下一语句。

● Run to Cursor:运行到光标行。

● Go:全速运行,快捷键为F5。

● Stop Debugging:停止调试,快捷键为Ctrl+Shift+D。

逐行运行也称为逐步运行,跳入运行也称为单步运行,运行到下一语句和逐行运行类似。