现在是一个万物互联的时代,既然要实现万物互联,各个物联网设备之间的通信就是一个不可回避的问题。我们常用的单片机的接口比如spi,i2c,uart等等,都属于有线连接,而且寻址和传输协议也相对来说比较简单,这也就决定了它们的主要适用范围主要是板级通信,传输速度不会太远。有线连接中,能够实现较远距离传输的,就是网络接口。借助互联网基础设施中的路由器、交换机以及光纤等转接和传输设备,基于复杂的TCP/IP协议栈,人类构建了庞大的互联网体系,并在此体系上衍生出了各种各样的应用,极大地提供了人们获取信息的速度。
但是,随着越来越多的设备都需要连接在网络上,进一步提高设备的在线能力,只靠有线通信已经越来越不能满足需求。所以无线通信技术蓬勃发展起来,这里面比较常见的通信协议,包括wifi,蓝牙,zigbee,2G,3G,4G,5G等等。这些无线通信协议,都有着自己的技术优势和劣势,以及时代性。目前来看,除去运营商覆盖的网络或者说移动通信网络(2G,3G,4G,5G等)外,最为常用的就是wifi和蓝牙通信技术,它们可以被认为是近距离通信(或者说固定无线通信)的解决方案中的佼佼者,比如我们的手机上一般都会配有wifi和蓝牙通信模块。其中wifi通信,因其天然具有连接互联网能力,所以应用范围更为广泛。
总体上来说,Wifi和蓝牙通信技术各有各的优势,wifi通信传输的数据量比较大,但是功耗高;蓝牙通信技术,数据传输速度相对要慢一些,但是功耗低。
另外,Wifi覆盖的范围相对蓝牙来说也更为广泛,覆盖半径可以达到300m,在家庭和办公室使用肯定是可以的。随着wifi技术的发展,有些wifi网络甚至可以覆盖整个办公大楼。蓝牙则不同,它的覆盖范围往往只有十几米。在频段上,蓝牙一直工作在2.45Ghz这个频段;但是Wifi目前有两个频段范,一个是2.4G频段,一个是5G频段。从上面的描述可以看出来,wifi要实现这些功能,具备强悍的穿墙能力肯定是必须的了,但是他们的工作频段是却是一样的,那么一个重要的区别就是他们的功率不一样了:Wifi的功率相对来说非常大,所以能够穿墙。如果从功耗方面来讲,设计10m有效传输距离的蓝牙模块,其功耗只有2.5mW左右,指望它实现穿墙功能,也是难为它了。
但是蓝牙的超低功耗对于其在电池供电的场景中的使用,提供了非常具有竞争力的优势,所以很多智能门锁主要的通信手段是蓝牙通信。因为Wifi通信功耗太高,一般不太适合电池供电的场景中。
我们今天着力分析物联网应用中的wifi模组。那么我们这里遇到的第一个问题,就是为什么我们这里提到的是模组,而不是模块呢?wifi模组和芯片有什么样的区别呢?单纯从名字上来看,wifi模组包含的东西就要比芯片要多。多出来的东西主要是什么呢?一般来说,主要是RF射频模块,存储芯片以及Wifi协议栈的实现。RF射频模块的开发,对信号质量,信号完整性都要求比较高,当然其开发难度也比较大,需要的设备也比较多。这个对小批量产品或者需要快速出货的产品,是一个极高的成本。另外,对一些技术能力较弱的公司,也是一个门槛。因此,市场上就出现了专门生产模组的公司,他们利用自己的技术实力把wifi芯片+存储芯片+射频模块等封装在一起,形成一个统一的解决方案。然后再通过通过商业营销,通过大规模的出货,去平摊他们的研发成本,并从中赚到一定的利润。这对物联网的开发者以及他们自己来说,都是一个双赢的方案。如果某款产品的出货量确实非常大,得到了市场的验证以后,这个时候它的开发者有能力也有动力去选择自己去开发wifi模块,去进一步降低成本或者作出更具特色的解决方案。实际上,从商业的角度讲,一般情况下使用通用的wifi模组可能成本更低,因为它的出货量更大。再一个,这些通用的WiFi模组,在实际应用中可能已经经历过各种各样实际场景的检验,进而模组的厂家可能会有不断的产品迭代,所以它的稳定性应该更为可靠。当然这些都是建立在选对wifi模组的基础之上的,如果选错了产品,可能就会适得其反。
那么我们该如何使用wifi模组呢?这里有两种方式,一种是直接使用wifi模组内部的单片机进行控制及数据采集功能的实现,不过模组内部的单片机一般情况下,性能相对来说没有那么强大而且引脚数量也受限,所以这种方案只能用在功能简单的场景中。再一个,是我们自己根据实际功能的需求,选择匹配的单片机;wifi模组呢,只是作为一个透传的工具而已。具体怎样使用,可以根据自己的实际情况来确定。
不管实现方式有何不同,wifi模组的使用者一般都只能使用AT命令来操作模组里面集成的wifi模块。当开发者参照模组说明,使用AT指令操作wifi模组时,wifi模组就可以按照命令进行正确的工作,比如联网什么的。
那么我们刚才提到的透传是什么意思呢?一般情况下,我们的主控单片机和wifi模组之间使用的是UART通信,主控单片机通过UART接口发送AT指令给我们的wifi,wifi模组收到指令之后,就按照AT指令的内容进行工作了。因此,从表面上看,我们的wifi模组好像不存在一样,就像我们使用uart接口在进行联网操作。这种场景下,wifi模组可以理解为一个透传模块。因为这种使用方式,我们需要使用两个单片机,相对来说成本比较高一些。但是因为我们要实现相对复杂的功能,如果wifi模组内部的单片机实现不了我们想要的东西,这个也是一个没有办法的选择。
这里我们拿市场上比较火(使用相对来说较为简单,或者说可能出货量比较大)的一块wifi芯片ESP8266来举例,它自己的内核本身就是一款32位的MCU,内核是Tensilica L1o,采样的是cortex-M3的架构,主频高达135Mhz,有一个32位的乘法器,一个定时器,15个中断。对于简单的IOT产品,ESP8266完全可以兼任MCU主控的工作,这样可以进一步降低成本。
基于这款芯片的模组,淘宝上卖得比较火的比如深圳安信可的ESP-12F等,就是在这款芯片的基础上额外封装了外置存储芯片和RF模块等等。对于较为简单的IOT应用,我们当然是可以直接使用它内部的单片机来实现相应的功能。
从图上可以看出这款模组使用的是板载天线,也就是上图中板子边缘上的金色的线条部分。经过相关资料查询,它的WiFi传输距离可以达到80米,SPI Flash的存储空间是32Mbits,总共有9个IO口。更为详细的参数表格,大家可以参考下图。
大家可以看一下,是不是单纯使用这个wifi模组就可以实现相对简单的一些IOT功能呀,比如温湿度采集什么的。
我们今天对物联网WIFI模组知识的总结就先到这里,后面有机会的话,我们可以使用这款片子进行一些简单的物联网应用开发,比如如何把采集的数据进行上云等。
参考资料
(复制链接在浏览器打开)
①Wifi和蓝牙哪个辐大
②Wifi和蓝牙的区别
③wifi芯片_芯片和模组有什么区别?
④物联网开发板ESP8266
⑤ ESP8266 开发笔记
⑥ zigbee 蓝牙 wifi三者有什么区别