浅谈物联网开发

@TOC

1 基础知识

1.1 物联网是个啥

物联网,都不用解释,看字面就知道,就是物体和物体之间的联网,英文就叫做 Internet of Things,简称 IOT。
undefined
这个称谓是为了有别于电脑,手机之间的联网, 因为电脑,手机都是人来操作的,所以电脑手机之间的联网,可以理解为人和人的联网,也就是互联网和移动互联网。
在 2015年以前, 还没有 IOT 这个名字,但是有 M2M 这个概念。 M2M 就是 machine to machine 的意思,机器和机器之间的通信。在 2015 年的某个时间,有个中国人,具体是谁不知道了,在某个国际会议上, 提出了 IOT 的说法,但是据他说,IOT 也不是他提出来的, 而是 1991 年有麻省理工学院的 Kevin Ashton 教授提出来的,只不过当时提出来的时候,没什么人关注。从此以后, 世人都说 IOT, 没人再说 M2M 这个词了。对于通信从业者来说,物和物之间联网,具有无限大的想象力。长久以来,没人知道物联网是干啥的,只知道它是个很牛掰的行业。也就是这几年,物联网突然火起来了,为什么火起来,也没人知道。很可能是因为手机付钱方便了之后,对联网的物体付费更快了,所以突然联网收费的设备多起来了,从共享单车开始,无人售货机,共享充电宝
undefined

1.1.1 物联网的核心价值

undefined
人和人之间,通过互联网,提升了沟通效率,促进了人类能力的大发展。
物和物之间联网, 有什么好处呢?
物和物之间联网,有利于人类更好的了解物体;
一棵荒漠里面的珍贵的树木,如果能够联网,人类不需要花费很多费用去亲临现场,也可以很容易的知道这棵树的生长状况;
危险环境的设备如果联网,人类可以很容易监控设备的运行状态,不需要亲临仙境,承担生命的风险。
人类可以更容易操控设备
如果一台叉车能够联网, 人只要坐在控制房里面,就可以远程操控这台叉车,不用坐在驾驶室里面, 忍受高温或者高寒的环境;
自行车,充电宝,实现了联网,人类在任何有单车和充电宝的地方,用手机扫码一下,就可以使用充电宝和单车的服务,只需要付租金,不需要购买一个单车或者充电宝;
煤气表,水表,电表联网之后,自动把计量信息上报云端服务器,服务器自动就可以出账单给到用户,用户直接付款即可,不需要人工再去用户家里面抄表;
人类可以更方便的收集行业数据,方便决策
物体联网之后,每天都上报数据,这些数据日积月累, 形成大数据,方便人类做决策。
格力出厂的每一个空调, 都具备了联网能力,这些空调销售到各个渠道,渠道销售到各个用户家里。通过这么多空调的数据上报,格力就可以很容易的知道, 空调都销售到了哪些地区,所以格力可以更方便做供应链的决策;
腾讯通过把联网的收款喇叭销售到各个商户,这些喇叭每天上报交易数据,腾讯可以很容易知道商户的分布,生意好坏,所以更容易针对各个地区进行商业布局。
总而言之,物和物之间的联网,是在人和物之间,建立纽带,不仅提升物体的运行效率,也提升人类活动的效率。

1.1.2 物联网构成

物体联网的目的是上报数据,以及做设备的控制,管理。
要达到这个目标, 物联网除了传统的物体之外,还需要有数据采集,设备控制,通信模块,云端应用,以及人机界面。

数据采集终端

水表的计量, 空调的温度湿度计量,充电宝的电量采集,共享单车的锁的状态的采集,都是数据采集的单元。
数据采集单元, 在传统不联网的设备也是有的,只不过采集的结果, 是展现在设备的界面上,没有进行上报而已。

设备控制器

手机扫码之后,把共享单车的锁打开, 或者是授权弹出一个充电宝,都是设备控制的典型场景。
有了设备控制单元,设备的使用效率可以得到极大的提升,设备的运营可以创造出很多的商业模式。

通信模块

通信模块是物体联网的通信载体,有了通信模块, 才能在物体和云端服务器之间建立一个通信的通道。
通信模块有很多的方式,WIFI,蓝牙,zigbee,Lora,2G,4G,5G,NBIOT,都是不同的通信方式。根据不同的需求,用户可以选择更合适的通信方式。

云端应用

云端应用是用来接收物体上报的数据,存储到数据库, 并通过服务器端的软件,做数据分析,也可以呈现给人类来查看。
人类控制设备的人机界面软件,也大多数是通过云端的软件, 下发命令给到物体,去控制这个物体。

人机界面

人机界面是呈现给人类查看和操作的界面,有 PC的浏览器界面,PC客户端软件,还有手机APP,手机小程序,以及手机浏览器。
通过这些丰富的界面,人类可以很方面的查看数据,控制物体。

1.1.3 物联网分类(短距无线通信与蜂窝无线通信)

物联网通信分为短距离和广域网两种通信方式。
短距离通信是指没有运营商基站的通信方式,蓝牙,WIFI,都属于短距离通信方式。
广域网通信是指需要通过运营商的基站进行通信的方式,包括2G,3G,4G,NBIOT 这些方式。
短距离通信
短距离无线通信的优点,最关键的就是不需要给运营商缴纳流量费。
最关键的缺点,也是因为不缴纳流量费,所以通信的质量无法保障,只能用在点对点的近距离传输(比如蓝牙耳机),如果是需要路由器这样的中转通信的时候,通信的质量往往得不到很好的保证。
广域网通信
广域网通信包括 2G,3G, 4G,NBIOT,5G 四种主流通信方式。
3G 是最先被淘汰的通信制式,除了在海外有些地区还在应用之外,在全球的大多数国家, 3G 都已经不是主流的通信制式了。
2G 在未来的几年,也会逐步退网。 中国联通在几年前就已经宣布不再提供 2G 的物联网业务。 中国移动也宣布在 2020年底不再发放支持 2G的物联网卡,从而达到逐步退网的目标。
4G 在将来的5年,将会成为主流的物联网通信制式。
4G 物联网的通信,又分为 Cat4 和 Cat1 两种方式。 二者的区别是 Cat4 速度较快,通信模块成本高,Cat1 速度较慢,通信模块成本低。 从2020年开始,随着Cat1 专用芯片的逐渐量产,Cat1 通信方式逐渐成为主流。
NBIOT 的优点是,通信模块的成本比Cat1还要低,功耗也比 Cat1 低。缺点有两个, 一个是网络覆盖不如 4G 好,另一个是通信速率太慢。
5G 在2020年开始,在手机逐步普及了,但是在物联网行业,可能需要3-5年才能逐步大规模应用。

1.2 蜂窝物联网

1.2.1 基本概念

蜂窝物联网,就是基于广域网通信的物联网。因为运营商的基站,呈现蜂窝状的分布,所以广域网通信也称为蜂窝通信。

1.2.2 发展历程

自从 GPRS 通信技术在90年代诞生之后,蜂窝物联网就存在了。 只不过当年大家更愿意称之为 M2M 通信,而不是物联网。
当年的 GPRS 模组价格相当的贵,一个模组最贵的时候,要超过1万元RMB。
蜂窝模组的发展,可以参考下这篇文章: GPRS模块为什么会低至十几元?我所经历的物联网模块国产化过程

1.2.3 2G、3G、4G等制式

2G,3G,4G,5G,NB 都是不同的通信方式,其中 4G 又有了 Cat1 的分支。
这些制式中,2G和3G 即将退出,5G 火候未到,估计还得三五年或者七八年才能大规模应用。
当前,比较普及和大规模应用的,就是 Cat1 和 NB 两种方式了。
在2021 年,Cat1 是即将一统蜂窝物联网江山的通信方式。

1.2.4 蜂窝物联网组成

蜂窝物联网的组成部分,跟普通物联网也没啥区别,不过为了蒙人, 这里还是放一张蜂窝物联网的图片,来解释一下蜂窝物联网系统都有些什么东西:
undefined
这张图,你看了可能还是很懵逼,不过没关系,继续看下去,你可能会更懵逼。
直到,你用了共享单车或者共享充电宝之后,对照一下这张图,可能就不那么的懵逼了。
任何一个物联网系统, 如果没有传感器或者控制器, 或者没有通信模块, 那就不算是物联网。
传感器和控制器是用来监控和控制物体的, 通过通信模块的连接作用,实现监控或者控制物体的目的。
怎么控制物体呢?
通过云端服务器转达人类的指令给到物体,才能达到控制的目的。
那么,云端服务器就是这个系统必备的看家神器。
手机 APP 作为天然的控制方式,在物联网系统里面也经常能找到。
当然,微信小程序也能替代部分 APP,我们不会忘记这点的。

1.2.5 模块在蜂窝物联网中的作用

废话,都说了这么多了,当然是起到通信的作用了,这个不用多说了吧。再说真成废话了。

1.2.6 典型应用

典型的例子特别简单,一个是共享单车,一个共享充电宝。
公交车安装一个通信模块,上报自己的位置,在车站的站台上,显示各个公交车到哪个站了,也是一个有意思的应用。
这些应用,都需要服务器,手机APP,通信模块,以及终端的采集或者控制单元。

1.3 模块

通讯模块作为当代信息产业的结晶体伴随着物联网的兴起形成了一个庞大的产业。那下面我们一起来认识一下模块是个啥?

1.3.1 基本概念

遇事不决,先查百度。 上面关于模块的定义是这样的: 模块,又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合(即程序代码和数据结构的集合体)。它具有两个基本的特征:外部特征和内部特征。外部特征是指模块跟外部环境联系的接口(即其他模块或程序调用该模块的方式,包括有输入输出参数、引用的全局变量)和模块的功能;内部特征是指模块的内部环境具有的特点(即该模块的局部数据和程序代码)。
听起来是不是一头雾水,下面我用白话文翻译一下,模考本质就是一个独立的出来的一小块电路或者软件,能出色的完成特定的功能。模块跟外边通过接口相连。 接口分为硬件和软件两部分,模块和外部通过接口进行通讯。
对于一个通讯模块而言,首要的特征是能与外网云服务器进行数据通讯,通过内部的运算部件, 一般包含运算,发射,接收等功能。
下面是一个经过极简化过的通讯模块模型
undefined

作为通讯模块肯定要消耗一定的的电能,所以要有Power Input,模块需要与外部进行信息交换,这往往是通过各种各样的总线来完成的,也就是Sigal Bus 也就是与外部通信接口, 后面我们还会再详细的讲各种常见的总线。

1.3.2 模块的基本硬件组成部分

下面我们以上海合宙通信科技有限公司出品的一款经典GPRS物联网为例来看一下模块的基本组成部分。
undefined

一个典型的通信模块由三部分构成:CPU主芯片,基带调制芯片(Transceiver),射频功率放大及接收器模组(RF PAM)
其中主芯片完成整个通讯模块的控制任务,又可以细分存储器(Memory)、运算器(Controller)、电源管理器(PMU)以及各种外部总线设备,比如音频处理器(audio)和各种总线处理器(UART、SPI、I2C、GPIO)等等。 对于新一代的物联网通信模块由于性能进一步的增强,往往还有多核处理器、高速数据处理器(DSP)等辅助模块,但是大体上还是上面结构的一个延伸。

1.3.3 物联网通信为什么需要模块?

这是很多初学者都会问到的一个常见的问题。 我们接触到的大多数电路都是由芯片和被动元器件直接构成的,为什么偏偏物联网通信要用模块这样一种特殊的电路结构。 这个问题需要从几个方面来解释清楚
一、从电路结构上看,物联网通信模块所承担的功能相对比较明确,清晰与其他电路的耦合度不高。 通常以与广域网通信为主,数据界面直接面向外部基站,外部电路通过模块进行数据双向传输,易于独立出来进行专精化,由于电路模块化后,往往可以采用尺寸封装更小,质量更可靠的原件,往往既节约了用户开发成本又便于缩小最终产品的尺寸。
二、从实施难度上看,物联网模块对电磁兼容性设计提出了十分苛刻的要求,牵涉非常多的高级电路设计技术,包括但不限于,高频布线、EMC控制、阻抗控制、超高密度走线、时钟同步。 而且设计出来后的生产工艺也非常复杂,设计很多超高精度的元器件的组装和制造,对于生产容许的误差也非常小,远远高于常规电路开发的水平,所以通信模块部分的电路所要求的设计生产能力往往远超普通的电子厂能承担的水平。
三、从经济效益上看,模块厂可以集中大规模采购元器件,在品控和采购价格方面都有绝对的优势。 毫不夸张的说,除极少数头部企业,常规的厂家如果自行采购模块所需的成本将会大大超过当前的模块市场售价。且模块行业由于其特殊性还需要有各种繁杂的国家认证要通过,这种成本更是一般企业承受不起的。
undefined

上图是目前行业里炙手可热的物理网cat1通讯新秀Air724的内部结构照片,可以看到其内部结构相当精巧复杂。
综合以上三点可以看出,模块行业能发展到今天这个规模是有客观的需求存在的,而且也将在相当长的时间长期存在下去。

1.3.4 模块的发展历程

模块行业是一个与手机伴生的移动通信领域的细分行业,历史也相当悠久,自1993年就诞生了。 那时候的手机主流还是黑白屏幕也尚未普及。 而后几乎所有的大厂都在该领域进行了不懈的努力,国际大厂包括 Siemens、Sierra、Telit、Motorola等,比较早期的有 Simcom、Quectel、LongSung、Huawei、ZTE等,合宙作为通讯行业的后来者,Luat开发团队凭借在过去10年间的技术积累,以领先行业的Luat二次开发技术在最近5年发力迅速成长,并凭借一款Air202产品在GPRS模块领域奠定了坚实的基础,在最新的4G Cat1模组市场上则开始展示王者的实力,领先于全行业。
值得一提的是,合宙物联网的秦鹏董事长把这几十年的风风雨雨都写成了公众号文章,您可以通过关注合宙公众号,进行阅读.
undefined

合宙公众号《GPRS模块为什么会低至十几元?我所经历的物联网模块国产化过程》 发布日期为2018年6月23日

1.3.5 模块的能力介绍

作为通信模块,最基本的功能当然是进行通信,完成本地电路与云端服务的数据通信功能,但是随着近几十年模块技术的飞速发展,现在的模块已经不单单能完成数据传输的功能,开始担当起SOC的角色。 在很多的应用场景,一片应用luat技术的模块可以直接承担起完成的业务逻辑,并驱动相应的外部设备。 我们以合宙最新出品的Cat1模组Air724为例,罗列一下Luat模块的基本功能。当然其他的供应商也开发出相关的cat1物联网模组,功能上大同小异。

1.3.5.1 联网功能

Air724 是一个支持中国全网通的通信模块,移动联通电信物联网卡均支持,并提供高速的数据传输服务。 下面是基本的参数
频段
LTE-TDD:B34/B38/B39/B40/B41
LTE-FDD:B1/B3/B5/B8
数据
LTE-TDD:
上下行配比2
最大 8Mbps (DL)/最大 2Mbps (UL)
上下行配比1
最大 6Mbps (DL)/最大 4Mbps (UL)
LTE-FDD:
最大 10Mbps (DL)/最大 5Mbps (UL)
以上的数据可能稍微显得抽象一点,下面我简要介绍下。 所谓频段就是指通讯占用的频率空间。 手机在传输信号的时候肯定要向空中发射信号,同时也要从空中接收基站发来的信号。 模块发送信号被称为上行也就是UL,模块接收信号被称为下行,也就是DL,通常上下行都要占用一定的频谱资源。 也就是占用特定的一个频率范围,这个范围在世界范围内根据电信组织的规定被定义成了一个一个的信道,通过信道对照表就可以查到对应频段所占用的频率。 举一个例子 LTE-TDD 使用34信道,通过查表可以得知,占用的是2010MHz - 2025MHz这个频率范围。 我们根据这个频率就可以购买支持相应频段的天线了。
undefined

由于上下行都需要占用独立的带宽,所以根据使用的不同,就有不同的上下行配比,也就是上下行各分配多大的频率空间,这个一般是由运营商决定的。
对于绝大多数物联网场景,Cat1模块均能轻松应对,相对于2G GPRS领域在通信时延、通道带宽上都有近百倍的提升。

1.3.5.2 其他功能

作为一个拥有RTOS操作系统的SOC,现代通信模块除了完成基本的物联网通信功能以外,往往还内置了其他丰富的资源,下面简介如下:
一、 USB高速通讯接口
二、 外部通讯总线如 UART、I2C、Camera、SPI等,通过总线可以和外部的其他设备相连
三、 音频编解码,可通话、可播放Mp3、可直接文本发音(TTS)
四、支持30万像素摄像头图像采集
五、 两路ADC模拟量采集可以进行高速电压测量
六、内存卡接口可以进行外存容量扩充(MMC)
七、外部显示屏接口、可以驱动高分辨率的LCD全彩显示屏
这些只是一些基本的介绍,详细的参数您需要查阅air724的硬件手册。 从以上参数可以看出 Air724已经是一台性能接近手机的全功能SOC硬件平台,事实上可以完成绝大多数的常见物联网任务,且无需添加额外的单片机。

1.3.6 模块的使用方法介绍

通过以上的介绍,我们可以看到通信模块的功能还是比较丰富的,但这些功能其实都是可裁剪的,简单的讲,您需要用到相应的功能才需要去熟悉对应的接口,而对于最基本的物联网通信,事实上只需要提供供电电源、接上天线就可以了。 与外部电路的通讯可以是串口也可以是USB接口,作为最简单的应用,仅需要将模块的USB接口连接到电脑上,就可以让普通的电脑具有上网功能,而模块此时则成为一块上网卡。模块的使用就是这么简单。
如果您希望更好的利用模块的片上资源,就需要通过编程完成,下面我把几种常见的开发方式进行简要介绍。

1.3.6.1 AT模式(模块内置协议栈)

AT指令是目前业界历史最悠久,使用领域最广泛的通讯指令集。 合宙的通信模块不仅实现了AT指令的全支持,也对物联网常用通信协议栈进行了集成,比如TCP/IP,UDP/IP,FTP等 并支持多链路的同时连接操作。 对于更为高级的平台级协议如MQTT等支持,合宙也把这些繁杂的功能集成进了协议栈,简化了用户使用。

1.3.6.2 单CPU模式 (二次开发模式)

我们刚才讲到,随着模块性能的提高,最新一代的物联网通信模块均具备了SOC的潜质,所谓SOC就是把功能都把功能都集中在一起,像一台小电脑一样,因此可以通过二次开发(片上编程)完成较为复杂的逻辑控制任务,目前行业里比较流行的方式有OpenCPU方式,使用C语言进行二次开发,和Luat方式,使用Lua语言进行开发。 笔者认为C语言作为单片机通用语言,更适合完成一些高级编程功能,但效率远低于脚本语言编写。 作为快速开发而言,脚本语言在物联网领域更胜一筹,未来将引领模块行业的未来发展趋势。

1.3.6.3 MODEM模式(PPP拨号上网)

MODEM作为一个历史非常悠久的词汇,曾经是上网设备的通用代名词,这里我们特指的是传统的串口通讯方式的上网模式,采用TTL电平的串口方式,模块可以与外部设备相连进行网络通讯,联网方式通过PPP协议实现。 由于有更加高速便捷的联网方式出现,这种通讯方式目前的应用场景正在缩小。

1.3.6.4 无线网卡模式

这也就是开头提到的Rndis、ECM上网方式,使用通用的网络协议,仅需要连接USB接口模块就可以使具有Linux\Windows\Android的系统实现透明上网。

1.4 SIM卡

SIM卡大家都不陌生,每台手机里都有一片SIM卡,对于介入公网要进行通信的物联网设备,SIM卡也是不可或缺的

1.4.1 基本概念

SIM( Subscriber Identity Module)卡是GSM系统的移动用户所持有的IC卡,称为用户识别卡。GSM系统通过SIM卡来识别GSM用户。同一张SIM卡可在不同的手机上使用。GSM手机只有插入SIM卡后,才能入网使用。
移动电话机与SIM卡共同构成移动通信终端设备。无论是GSM系统还是CDMA系统,数字移动电话机用户在“入网”时会得到一张SIM卡。SIM卡也称智能卡或用户身份识别卡,数字移动电话机必须装上此卡后才能使用。SIM卡就是一个在内部包含有大规模集成电路的卡片,卡片内部存储了数字移动电话客户的信息、加密密钥等内容,它可供网络对客户身份进行鉴别,并对客户通话时的语音信息进行加密。

1.4.2 物联网卡与普通SIM卡的区分

物联网卡与普通的sim卡最大的区别是物联网卡主要是用来数据联网,一般非实名的物联网卡往往不支持进行语音通话,说白了就是不能打电话。 除此之外在技术参数上也有细微的差别,下面我简单的介绍下:
一、 普通SIM卡使用11位号码,而物联网卡使用13位号码
二、 资费水平不同、物联网卡一般资费低
三、 除特殊申请外,物联网卡一般不支持语音通话
四、 物联网可以支持集团化业务管理,如流量池,专网VPN等
五、 物联网卡支持更多的形态,比如芯片卡,和纯虚拟卡VSIM等
undefined
1.4.3 VSIM、ESIM、插拔卡
VSIM卡是一种由运营商授权的通过秘钥嵌入式的方式直接把一段代码和秘钥写入模块里以实现sim卡功能的卡片形式。 这种方式是纯软件的,不占用硬件资源,但一旦未能及时进行流量充值,则模块就有可能无法继续使用。
ESIM也就是芯片卡,通过焊接的形式集成在电路板上,功能与普通SIM卡相同,兼有高可靠性和可替换性的优点,且新型的ESIM卡体积非常小,甚至可以集成到模块内部。
插拔卡也就是最传统的物联网卡,根据体积不同又分为普通卡(SIM)、小型卡(Micro SIM)、迷你卡(Nano SIM)

2.合宙产品线

2.1 产品线分类

上海合宙的产品线目前主要分为三类:2G模块产品线、4G Cat.1模块产品线和4G Cat.4模块产品线。cat.1模块是重点产品线。

2.2 产品型号

2G、4G Cat.4、4G Cat.1 所有产品型号见下图

undefined

2.3 重点产品线(cat.1)

合宙Cat.1系列模组内置紫光展锐LTE Cat.1 bis物联网芯片平台——8910DM,可广泛应用于共享产品、金融支付产品、POS终端、能源、工业控制、儿童手表、公网对讲等低速率场景。
8910DM作为全球首款LTE Cat.1 bis物联网芯片平台,该芯片采用28nm成熟工艺,支持LTE Cat.1 bis和GSM双模,上行速率达5Mbps,下行速率达10Mbps,并拥有高集成度,同时集成了蓝牙通讯和Wi-Fi室内定位,可实现更稳定的连接,支持VoLTE,通过系统优化设计,使得展锐8910DM可实现显著的低功耗优势。

undefined

总的来说,上海合宙的4G Cat.1系列模组已经深受广大用户的喜爱。满足大部分中低速率场景需求。具备蓝牙、Wi-Fi定位、VoLTE、模拟语音、TTS、SPI Camera等多样化功能。那么合宙4G Cat.1的产品有哪些呢?如下,我给大家整理了一份选型表,方便各位更好的选对合适的模组。

undefined

2.4 为什么cat.1模块是重点产品线

随着2G、3G的退网成为必然选择,2G网络环境日益恶化,基于4G/5G(NB-IoT+4G+5GNR)的物联网技术将担当起开启万物互联的大任。研究数据显示,移动物联网高中低连接的市场分布大致遵循“1-3-6”的比例,即10%高速率、30%中速率、60%低速率。相比高速率,中速率物联网需要更广的连接范围,但对速率和时延没有太高的要求;相比低速率,中速率物联网更加强调移动性和连接速率,应用主要包括可穿戴设备、智能家居、智能硬件、健康养老、对讲设备、金融服务、共享经济等速率需求在1~10Mbps的规模化消费类场景。同时,从技术选择来看,没有最好的技术,只有更适合某些特定场景需求的技术,Cat.1技术在那些对传输速率要求不高,但对信号的稳定可靠性和低成本要求较高的物联网连接需求中“游刃有余”,如今又赢得了政策的青睐。所以合宙自然选择了CAT1作为了重点产品线。

作为厂家的合宙还是建议大家切换4G Cat.1产品。既可以覆盖2G低传输速率的场景需求,也可以满足客户开发的中等速率的场景需求。同时Cat.1也会是未来的物联网的趋势。

2.5 cat.1与cat.4的区别

1、Cat.1相较于Cat.4具有明显的成本优势:
芯片成本方面:经过系统优化后,有更高的集成度,更简单的模组硬件架构,外围硬件成本更低;

2、速率应用:
Cat.4:下行150Mbps/上行50Mbps
Cat.1:下行10Mbps/上行5Mbps

3 硬件

下面介绍一下模块的硬件结构,不同的模块硬件结构虽然并不完全相同,但是大体上都是类似的,下面我以上海合宙出品Air720 4G通讯模组为例进行介绍,其他模块也都是类似的。
undefined

3.1 接口相关

模块与外部电路进行连接大致可以分为两类,一类是电源,另一类称为接口,也就是模块与外部电路交换信号的连接点。

3.1.1 射频相关

模块把绝大多数的射频电路都封装在了模块内部,因此外部结构相对简单,作为air720,一共有两个天线,MAIN_ANT为主天线,负责向基站发出射频信号,并从基站收取信号,这个过程是准双工的,也就是说,虽然在逻辑层收发是同时进行的,但天线是要通过硬件开关的方式进行时分复用,通过内置集成的射频开关完成这个收发切换动作。 为了提高数据吞吐量,air720还集成了分集天线 DIV_ANT,这个天线仅用于数据接收,可以分担主天线的负担,在高速传输状态下实现真正的全时双工通讯。

频段
4G模块由于运营商和通讯制式制式不同,拥有不同的编码方式和频段,下面是中国三大运营商的频段分配情况。实话讲有点让人眼花缭乱,我们只需要记住,使用模块前咨询相应的模块厂商,是否支持对应的运营商即可。
undefined
发射功率
下面是典型的4G模块的发射功率(以Cat1 Air724模块为例),相对于2G网络动辄33dBm的发射功率,4G由于频谱利用率更高,调制算法更先进,因此速度虽然得到了极大地提高,但发射功率反而有所降低,仅为23dBm,电磁污染更小

LTE-TDD: Class3(23dBm+1/-3dB)

LTE-FDD: Class3(23dBm±2dB)

接收灵敏度
下面是典型的4G模块的接收灵敏度(以Cat1 Air724模块为例),接收灵敏度体现了模块所能分辨的最小的射频信号值,通常是负数,且越小越好。 值越小,代表模块的灵敏度越高,俗称信号越强。 由于受集成电路制成能力限制,不同频段及调制方式的接收灵敏度略有差别

FDD B1: -99dBm (10M)

FDD B3: -98dBm (10M)

FDD B5: -99dBm (10M)

FDD B8: -99dBm (10M)

TDD B34: -98dBm (10M)

TDD B38: -98dBm (10M)

TDD B39: -98dBm (10M)

TDD B40: -98dBm (10M)

TDD B41: -98dBm (10M)

天线
天线是物联网通信中非常重要的一环,却常常没有引起足够的重视,很多用户往往随随便便的找一个天线插上,感觉也能工作就不去管它了,其实这样做对于稳定运营是有害的。

对于公网物联网,市售的常用天线主要有两种形式,吸盘式和船桨式。 前者灵敏度相对比较高。 特别要注意的是有很多2G天线仍然充斥着市场,且价格低廉,被很多用户误用到了4G模块上,这样将人为导致收发频段的不平坦,从而造成频繁掉网等故障。4G物联网模块用户选购前应详细咨询供应商,选择支持对应运营商频段的宽频天线。
undefined

3.1.2 音频

音频作为通讯模块的一个常用功能,从2G时代就有支持,主要包括有模拟音频采集、合成、处理等功能、对于4G Cat1 模块 还引出了音频通路的概念,具有多个音频通路。 作为音频电路,最基本的构成是 A/D 和D/A电路,其中A/D电路负责从麦克风或者线路输入拾取音频信号,经过转换变换成数字信号,在经过DSP进行编码压缩处理,进行传输。 D/A电路反过来将数字音频信号还原成PCM形式通过转换变换成模拟信号驱动扬声器或者耳机发生。
undefined

我们还是以合宙的Cat1系列模组为例,此模组采用紫光展锐的8910DM芯片组,图中红色方框部分为音频电路,可以看到把LDO和充电电路也放进去了,这主要可能是因为这部分电路和音频电路具有相同的制造工艺,我们不管这个,专看上部和下边,忽略中间部分。从图中可以看出8910芯片组具有两路A/D转换电路,三路模拟输入电路,也就是说同时可以容许两路信号同时采集,这种主、辅麦克风设计一般是用来检测并消除环境噪声而设计的,主麦克风用来拾取语音,副麦克风拾取环境造成,然后二者相减,从而抵消环境噪声。8910DM同时具有三路D/A转换电路和5路模拟输出,也就是说可以支持立体声耳机播放的同时提供外部铃音的功能。

3.1.2.1 音频通道分类

Air724模块将多数的模拟输入输出端口都进行了封装
undefined

喇叭通道 (SPK+ SPK-)是一组差分输出通道,可以直接驱动8欧姆的喇叭。

听筒通道 (EAR_P EAR_N) 是一组差分输出通道,也可以直接驱动16-32欧姆听筒

耳机通道 (HP_L HP_R) 是一组单端输出通道,可以驱动耳机,发出立体声音频

3.1.2.2 默认音频通道

Air724 默认的音频通道为MIC + Speaker ,也就是说外接一个驻极体话筒和8Ohm喇叭在 MIC+ MIC- 和 SPK+ SPK-上, 很多新手买了合宙的开发板然后随手找一个3.5MM的耳机插到开发板上却没有声音就是因为没有设定默认的音频通路。

3.1.2.3 音频问题

回声问题

由于话筒的拾音灵敏度一般比较高和扬声器的距离又都比较近,所以真实的产品中如果不加以处理就会产生回授(回声),造成严重的重音或者啸叫。 针对这个问题厂商都推出了自己的数字回声抑制技术,加以解决。 但是由于麦克风和喇叭的位置千差万别,出厂时无从知晓,所以对于产品级电路,在产品定型后需要利用原厂提供的软件对音频回路进行重新校准才能获得比较理想的效果。 这部分可以参考合宙的文档地址为:

http://doc.openluat.com/article/1676

http://doc.openluat.com/article/1877

背景噪声问题

模块作为一个通讯器件,在进行通讯时射频功率往往比较大,会产生一定的射频干扰,这种信号如果串入音频回路,就会造成严重的背景噪声,针对这个问题,需要在麦克风的差分输入两端接入共模和差模抑制电容,具体电路如下:
undefined
undefined
由于射频干扰信号频率都是G赫兹级别,通过增加10pf和33pf的旁路电容,可以对干扰进行有效地抑制。 需要注意的是,这些电容的摆放位置一定要按照手册要求放置在相应的器件附近,不然起不到相应的作用。

3.1.3 图像采集与显示

3.1.3.1 LCD

undefined
对于air724模块而言,显示的驱动部分是在底层的core部分采用C语言实现的,而且绘图指令具有硬件加速,因此效率非常高,可以呈现相当不错的动画效果,最高分辨率高达320X240,且支持全彩。 有兴趣进行图形编程的可以参考 吴总关于LittleVGL的介绍文章地址为:

https://luatdoc.papapoi.com/1246/

通过更改配置文件,目前Air724可以支持多种屏幕,已知支持的屏幕驱动型号包括ST7735,ST7789,IL9341等。

除了上述的高速显示接口外,合宙的Air724还能支持单色的OLED显示屏,这种屏幕通常使用I2C接口采用纯Lua方式编写的驱动,所以效率比较低,但在一些静态显示场合也非常有用,如果您有性趣可以参考文章:

https://luatdoc.papapoi.com/701/

3.1.3.2 摄像头

得益于高速的处理器和较大的内存,目前的物联网模块大多具有摄像头和显示屏的驱动能力,对于合宙出品的Air724而言,支持30M像素的摄像头和320X240分辨率的全彩显示屏。 而且对于显示屏和摄像头都有专属的接口。 下面我进行简单的介绍:
undefined
从图中我们可以看出,摄像头由一个标准的24pin摄像头接口连接,采用4线串行数据和I2C方式进行通讯,共有8根数据线、一路模拟电路供电,一路1.8V数字供电。 合宙商城提供了Air724所支持的摄像头,价格仅有不到10元非常超值。

3.1.4 扩展存储

对于合宙的Air724模块受制于成本因素存储的容量非常优先,因此不适合挂载大量的媒体文件,幸运的是您可以通过外挂flash或者SD卡的方式加以扩展,最大可以扩展至32G!

flash芯片
连接在模块的标准SPI接口上,flash型号选择需要注意以下三点

SPI两线或者4线

必须是NOR flash

1.8V电源电压

SDIO接口的SD存储卡
一般常用普通的microSD卡(TF卡),支持SD卡的特性:

文件系为FAT32格式

支持的SD卡最大容量为32GB

对于扩展存储的使用,AT版本和lua版本都有对应的接口,只需要把flash芯片和SD卡座按照硬件参考设计连接在模块上,通过对应的软件接口访问对应的路径即可。

两种存储方式的对比
flash芯片: 通常容量比较小,一般是4MB,8MB,16MB,通常是焊接到板子上的方式,所以可靠性比较好,读取速度也很快,通常用来存储一些设备需要使用的临时文件,资源文件,数据等,成本较低。

SD卡:通常容量较大,G级别,通常是用插卡座的方式。读取速度相对比较慢,通常存储一些大文件,如视频文件,语音文件等用户文件,可以方便拿出读取。类似于电脑的U盘。但是可靠性比较差,擦写的次数也少于flash芯片。

3.1.5 串口

串口是当今物联网系统中最为流行的一类通信接口,我们常见的I2C、SPI、UART接口其实都属于串口的范畴,顾名思义,串口就是把数据连成串进行传输,串口的全称是串行总线接口,是一类接口的总称。 由于最早使用的最常见的串口是RS232接口的串口,所以单用“串口”这个名词也往往特指RS232接口,下面我做一简单介绍。

我们先介绍串口这个大类的含义

串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,相对于并口每个数据位都要使用一根数据线而言,串口大大降低了成本。
undefined
可以看到RS232接口的数据线只有RX和TX两根,一根用于接收一根用于发送。 其余的控制线在早期的串口里还是存在的比如DSR、RTS、CTS、RI这些信号线都是用来描述数据是否准备好,和是否传输完的,由于当今的串行收发设备往往具有一定深度的缓冲区,而且串口传输速率相对于硬件的处理速度而言也比较慢,所以现在的RS232,多数情况下只用RX、TX两根数据线加一根GND公共地线就可以了

数据的串行化也带来一些额外的问题,那就是同步问题,我们把若干位的数据放在一根线上传输,如果来有效的划分位于位之间的间隔是一个很重要的问题。 这通常有两种方式: 第一种同步信号,我们可以额外的附加一根CLK线,用CLK的上升沿或者下降沿来描述每个数据位的中心点,这样就可以准确的读取数据了,比如这样的传输方式
undefined
但是这样又要多占用一根额外的电线,不够简洁,所以我们聪明的前辈有发明了另一种数据同步方式,也就是约定波特率。 比如我们在串口读写的时候往往会说9600bps,112500bps的波特率,这就是指时钟的频率了。时钟的同步有两种方式,一种是手动设定,我们告诉硬件以什么样的频率对数据进行提取,另一种是通过从数据流里面进行锁相环提取的,但是这种方式要先发送足够数量的前导字符才能让收发两端形成同步。

下面我简单的介绍下模块中常用的几种串行总线:

UART接口
UART接口是目前单片机领域使用最多的串行总线,他的数据传输格式和串口是完全一致的,区别主要是电平表示方式不同,UART以高电平代表逻辑1,低电平代表逻辑0,传输速率通常在9600bps到115200之间,air724为了提高向下兼容性和更高的数据传输效能支持超低传输速率和超高传输速率,范围拓展到了从2400bps-912000bps
undefined
SPI 接口
SPI接口的全称是”Serial Peripheral Interface”,意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。

SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,分为三线式和四线式通讯,其中Air系列物联网模块主要支持4线式,其接口定义如下:

(1)接口名:MOSI 模块引脚:SPI_DOUT – 模块输出,从器件数据输入

(2)接口名:MISO 模块引脚:SPI_IN – 模块输入,从器件数据输出

(3)接口名:SCLK 模块引脚:SPI_CLK – 时钟信号,由主器件产生

(4)接口名:/SS 模块引脚:CS – 从器件使能信号,由主器件控制
undefined
I2C总线
I2C总线是由Philips公司在1982年提出的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。

I2C接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持高电平。
undefined

3.1.6 并口

并口在计算机发展初期曾经是最为流行的一种数据接口,根据位宽,一般分为8位,16位,甚至可以是32位。 老式打印机的外部并口就是一种常用的并口,老式的硬盘与主板通讯的IDE接口也是一种并口,常用的内存也有不少是并口的。 因为并口和计算机的存储方式相互匹配,最容易处理,且内部的硬件也最为简化,所以在早期高速的数据传输基本上都依赖于并口。

近几年由于串行总线相对于并行总线在物理结构上更加的简洁可靠,所以并口使用的范围正在变窄,但并口也有其特有的优势,比如线上数据频率较低,数据处理接口简单等。 所以在某些高速领域仍在在使用,最典型的就是RAM接口,下图是使用62256RAM的一款电路。
undefined
因为模块里我们用的不多,所以在这不做过多展开了,有兴趣可以在网上自行搜索相关知识。

3.1.7 输入输出

GPIO
通用型输入输出,简称输入输出,英文名为GPIO,或者IO,是通过寄存器的读写来读取或控制外部芯片引脚的电平的功能。 基本上现在主流的单片机都有配置,是最基本的一种电路接口形式。按照接口类型,GPIO可以分为输入型和输出。 通过指令可以将任何一个端口配置成输入模式或者输出模式。

合宙出品的Air724模组有多达31个GPIO接口,可以作为输入或者输出端口,大多数的GPIO口为复用方式,可以既作为普通的输入输出端口,又可以完成特定的总线级别功能,通过Luat编程方式可以指定端口的使用方法。

当配置成输出模式的时候,还可以进一步的配置成推挽方式或者开漏方式。 推挽方式是指输出直接输出高电平或者低电平,并满足一定的最大驱动电流,通常从数mA到数十mA不等。 开漏方式是指仅可以通过下拉来直接产生低电平,而高电平则通过外部电阻进行上拉来使用,可以作为信号握手线使用。

当配置成输入模式的时候,模块还可以被配置成上拉或者下拉模式给输入端口一个默认的高电平或者低电平,但通常这个电平的电流都比较小,通常只有数十uA。

很多的GPIO端口是与其他功能总线复用的,而且支持动态切换,进一步增加灵活性。 也就是说,对于一个引脚可以分时复用完成以下功能,1)检测外部电平,2)控制外部电平,3)按照其他总线功能作为总线控制线或数据线使用。

想要了解端口的功能,您需要查阅硬件手册来完成。 我举一个例子。

引脚复用:

对于GPIO9,GPIO10,GPIO11,GPIO12,对应的模块引脚是52,54,55,53,在上电的时候,默认被配置成弱上拉高电平,并可以通过Luat编程配置成输入或者输入端口,检测或控制外部输出。 同时也可以配置为SPI端口,进行串行总线输出控制SPI设备。

电压域:
undefined
GPIO24,25,26,27,28使用的是VMMC电压域,最高输入/输入电压可以设定为3.2V,并通过指令可以进行设置,同时也与MMC内存卡功能复用引脚

模块根据引脚的类型,不同引脚拥有不同的电压域,对于模块所谓电压域就是高电平的阈值不同,常规的GPIO电压域为1.8V,另一些引脚可以通过不同的LDO配置成1.xV-3.xV不等,具体需要查手册。 特别要提醒的是,对于有电压域的引脚,必须要设定电压域才能使用,无论是作为输入,还是输出都是如此,否则极易发生误动作。这点时要特别注意的,关于电压域方面的文章可以参考

https://luatdoc.papapoi.com/721/

键盘
合宙的Air724模块支持最高6X6的键盘阵列,连接方式也比较简单,对应的X和Y的交点连接一个微动开关即可。 通过配置,还可以选择其中的一根或者几根线进行灵活配置。 但说实话由于air724的GPIO已经足够的丰富,这部分功能按键我用的比较少。
undefined
PWM
最新版的固件里air724也支持简单的PWM功能,但是算不上强大,主要用作指示灯,呈现闪烁或者呼吸效果,因此频率不高。 目前支持的PWM引脚有GPIO5,GPIO13,GPIO4,GPIO7,不同的引脚有不同的占空比不同,因为没有亲身使用过,所以详细的使用方法我也不是特别的懂,请咨询合宙的技术团队。

LDO
电源是电路中最常见的一个电路结构,大多数的单片机为了稳定工作都要配备外部的稳压电源。 合宙的Air724模块,本身就内置了两路可编程的电源,输出电压从0V到3.25V分段可调,且能输出的电流有100mA,在大多数场合基本上说可以省掉外部的LDO,非常的经济实惠。 两路LDO的名字分别为VMMC和VLCD,详细的使用方法可以参考LUAT编程手册。 一般只需要单一的设置语句即可,AT方式不支持LDO的配置。

3.1.8 SIM卡接口说明

SIM卡是(Subscriber Identity Module 客户识别模块)的缩写,也称为用户身份识别卡,是所有使用公网通信的物联网设备标配,所以进行物联网产品设计时,一定要和SIM卡接口打交道。 SIM卡的接口设计并不复杂,但是常常发现大家在设计完成后SIM卡通讯不稳定,这往往是不了解SIM卡接口通讯原理造成的,下面我简要的介绍一下。
undefined
常见的SIM卡封装有以上这几种类型,其中前三种是用弹簧片接触连接的,最后一种esim是用SMT方式焊接的。 虽然外形不同,但其实内部功能都是一样的,区别仅仅是外形尺寸,仅需要选择不同的SIM卡插座就可以将卡适配在同一款电路上。
undefined
SIM卡连接推荐电路,来源 《Air724UG Air723UG 模块硬件设计手册 V1.7》

这是一个比较典型的SIM卡电路,这个图看起来元件也比较多,稍有有一点乱,其实这些元件都是辅助性的,最简单的电路我们只需要将模块上的四根信号线加上一根GND连接到SIM卡,电路就可以工作。增加的C1,C5的用途是电源退耦,用来增加电源稳定性,C2,C3,c4是高频杂波旁路电容,TVS1-4是用来防止外部静电击穿损坏芯片的保护电路。R1,R2是信号缓冲和防接口瞬间短路只用。 如果使用eSIM卡,上面的这些元件都可以取消掉,直接将模块和SIM卡连接上对应的5根连接线即可。

既然简单,为什么很多用户还会遇到sim卡连接问题,这主要是不了解sim卡通信特点造成的。虽然SIM卡本身存储的容量不大,但通信频率较高,一般为3.25Mhz,且sim卡驱动电路要同时兼容两种工作电压 1.8V 和 3.3V 在上电的时候会有一个快速电压切换的检测过程,整个动作在几十ms内完成,所以SIM卡走线应该按照高频走线的原来在走,首先是走线要尽量的短,且底部走线的电流回路不能有横向的割裂,不然信号品质下降就会出现不识卡或者掉卡的问题。 SIM卡的电路走线质量也是区分新手和老鸟的一个重要的点。

3.1.9 ADC

ADC即模拟数字转换器是另一种在单片机和模块上都比较常见的接口,通俗来讲ADC接口就是一个电压表,可以将引脚上的电压检测出来,相对于普通的GPIO只能检测出来是高电平和低电平,ADC的检测精度要高得多,精度通常8位起步,也就是说能检测出最高量程的1/256的电压变化。
undefined
ADC的主要指标有分辨率和转换速度,分辨率是表征的ADC的最小刻度的指标,用来表示最小检测的电压数值, 转换速度是指当外部电压发生变化时内部的电路花费多久能够检测出来。 转换速度越快,对外部信号采集的时间精度越高。 分辨率一般用bit来表示,8bit,就是最大量程的1/256 10bit就是最大量程的1/1024,芯片一般有一个默认的量程,可以通过比例放大器对量程进行等比缩放。 转换速度根据不同的使用场景有mS级别的,最高甚至有nS级别的。

模块配备的ADC一般是用作基本电压信号检测之用,精度和转换速度参数相对比较常规,例如合宙系列模块的的最大采样电压为VBAT,约为4V左右,精度大概为10bit,误差在2LSB(LSB是最小分辨刻度的意思,比如说10位,2LSB对应的就是1/512),采样速率大概为30mS,一秒可以完成大约30次采样,可以满足一般电压检测的需求,但无法对高频信号进行采样。

ADC的使用非常简单,直接把ADC引脚(对于Air724位顶部的63、64引脚)接到待测电压即可
undefined

3.1.10 WIFI定位

Wifi定位是在Cat1 4G模块最近才引入的一种新的定位技术,他的定位原理类似于基站定位,但定位的精确度优于基站定位,但是需要额外的硬件wifi电路配合,至少需要具有2.4G的Wifi信号接收能力才能实现。 合宙最新出品的Air724模块的主型号Air724-NA就支持Wifi定位,但是也有一些Air724的型号是不支持Wifi功能的,所以购买前一定要咨询好原厂销售人员再进行购买。

每一个无线路由器,也叫AP都有一个全球唯一的MAC地址,对于大多数人一般不会兜兜里揣着路由器到处走,所以一般来说认为无线AP是一种固定设施
至少在一段时间内位置相对稳定。 需要Wifi定位的设备在开启Wi-Fi的情况下,即可扫描并收集周围的AP获取到AP广播出来的MAC地址,根据wifi协议,这个过程是公开的,非加密的。 设备将这些能够标示AP的数据发送到位置服务器,服务器检索出每一个AP的地理位置,并结合每个信号的强弱程度,计算出设备的地理位置并返回到用户设备。位置服务商要不断更新、补充自己的数据库,以保证数据的准确性。
undefined
从以上流程可以看出,Wifi位置服务商的位置数据库是实现定位的核心技术。目前Wifi主要通过手机自主上报和流动信息车主动采集完成。
undefined
Air724 Wifi推荐电路,来源《Air724开发板图纸 Ver.A13)

Wifi电路本身的设计非常简单,只需要在模块商连接一根2.4G的天线即可,可以是板载的也可以是外挂的。

3.1.11 蓝牙

蓝牙是一个大家都比较熟悉的技术了,特别是对于年轻人,耳朵上挂的无线耳机基本上现在都是用的蓝牙技术。 最新的4G Cat1 模组也首次出现了蓝牙技术。 下面为了让大家对模块上的蓝牙有一个比较清楚的认识,我先八卦一点蓝牙的基础知识。

蓝牙是一种短距离(一般10米)无线通信技术,频段为2.4G,可以在小范围使用的无线连接技术,能在设备间实现方便快捷、灵活安全、低成本、低功耗的数据通信和语音通信。 由于工作在开放频率上,所以使用蓝牙设备不需要当地政府进行认证和授权,非常的便捷。

蓝牙的通讯协议其实是一簇不断发展的协议,从最早期的蓝牙1.0,到现在最新的蓝牙5.1,无论在数据传输的性能和工作原理上其实都有比较大的差别。 这里我主要讲一下用户使用这一侧的知识,原理不打算多讲,勤劳的您可以从网上自行找到。

合宙Air724模块目前支持的版本是BT4.2,这对于绝大多数的场景已经足够使用,BT4.0 又分为经典模式和BLE模式,BLE模式性能高,功耗小是重点推荐的工作模式。 蓝牙的使用分为几个步骤:建立连接->通讯->断开连接。 其中在建立连接之前,还可以进行数据广播,但广播模式只能以很低的速率发送非常少量的数据,且无法保证接收端能收到。 另外模块的蓝牙在逻辑上是一个串口外挂设备,也就是说,蓝牙的功能需要占用一个物理串口,一般是串口2。 这点在使用重要多加小心。undefined

蓝牙最常用的功能有以下几个

BLE 广播、扫描

BLE 主、从设备连接

BLE 数据透传

Air724模块的蓝牙是全功能蓝牙可以工作在主、从任意一种状态,其中主模式可以主动连接其他接入设备,从模式可以等待接入。 具体的编程使用方法也比较简单,这里就不多占用篇幅了,具体内容可以参考 《Air724UG模块自带蓝牙Lua开发指南》,文章地址为: https://luatdoc.papapoi.com/1598/

3.1.12 看门狗

是电子电路总会遇到死机,当死机的时候,我们希望电路能够自行恢复,一种最常见的做法就是重启系统。这个死机重启的动作就是由看门狗来完成的。看门狗,又叫watchdog timer,本质是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT清零,如果超过规定的时间不喂狗(一般在程序跑飞时),WDT定时超过,就会给出一个复位信号到模块,使MCU复位。 由于狗本身也有死机的可能,所以一些高级的看门狗还会有互拉的机制,所谓互拉就是看门狗也要定时的输出一个信号给模块,当一定时间过后,狗没有发出信号,就认为看门狗芯片死了,通过给看门狗芯片一个复位信号,这个机制就叫互拉。
undefined

3.2 特性

作为物联网模块,各家模块也具有一些自己的特征。 这些特征大多数都是为了便利用户的使用的。 下面我以我最熟悉的合宙Air724为例,介绍一些基本的特性。 由于篇幅所限,我无法面面俱到,就把我个人觉得比较有价值的一些特征写出来。

3.2.1 工作模式及功耗

undefined
睡眠模式
合宙的模块可以工作在低达3mA的睡眠模式,从而有效的降低待机功耗,增加待机时间。 在睡眠模式下,模块仍可以响应外部的管脚中断,定时器,甚至接收短信或网络信号。

关机模式
在特殊场景,用软件指令既可以实现彻底关机,此时的模块消耗电能仅有数十uA,还可以利用内置的硬件时钟开机,定时器到点了,重新启动工作,工作过后通过指令继续让模块关机。

正常模式
在正常模式下,air724的工作电流通常只有30mA左右,只有发射信号的时候电流会有尖峰。 此时CPU工作在全速状态可以驱动全部外部设备工作。

3.2.2 封装

4G模块从Cat4时代,就逐渐地在走向标准化,其中最常见的封装是3229封装,即长32mm,宽29毫米,这个封装几乎每家模块厂都有兼容产品,且连接方式大同小异。 这种模块同时支持LCC封装和LGA封装,即便于机器大规模生产,又可以供小规模手焊。 下面简单介绍下:
undefined
LCC封装,英文全称是 Leadless Chip Carriers,即无针脚芯片封装,模块最外侧的一圈就是这种封装,也就是俗称的邮票孔封装,模块的最基本的功能都在最外侧采用LCC封装连接,像完成DTU功能的串口,电源,以及基本的开关机信号,SIM卡0,和一些IO都在外侧的引脚中。这种封装既可以手焊,有可以烙铁焊接,非常的方便。

LGA封装,英文全称是Land Grid Array,即栅格阵列封装,模块底部内侧的封装就属于这种封装,这种封装一般集成了模块的一些高级功能,但是由于在芯片的正下方,必须要借由回流焊或者风枪加焊锡膏的方式进行焊接,相对加工难度稍大,但优点也很显著,节省了模块的空间。 在合宙一些更高级的芯片上有的就完全采用了LGA封装,比如Air722,进一步缩小了模块的外形尺寸。

下面是合宙全系列芯片的封装对比
undefined

3.2.3 工作电压范围

在文末,我再强调下模块的工作电压,由于很多初学的朋友都会遇到这样的问题,所以花一点篇幅讨论下是值得的。 首先模块工作电压一般均为 3.3V-4.3V,这个电压范围恰好是一节锂电池的工作电压范围。 很多朋友说我可不可以直接把5V电源接到上面,好像直接接上模块也没有立即烧毁。 其实这样做是不应该的,主要原因如下:

1)模块内部的射频以及逻辑电路都是按照最高4.3V设计的,高于这个电压内部电路属于过载状态,无法保证工作稳定可靠,并可能导致模块烧毁。

2)一般建议5V电源通过一个DC-DC或者LDO进行降压,这样保证外部供电线由于本身的内阻造成的供电不稳定的问题,可以理解成模块的一个必要的能源缓冲器,再加上足量的电容可以极大地提高模块的工作稳定性。

可以毫不夸张的说,一个良好的电源设计是模块正常工作的最先决条件,需要引起特别的重视,不然后期上线将引来无穷无尽的麻烦,这里推荐一下合宙的Luat5033电源模块,可以一劳永逸的解决供电问题,通过增加另外一个廉价的供电小模块为通讯模块的正常工作提供了坚实的保障。 Luat5033的参考电路如下,外形也非常的小巧兼容标准的TO-252封装。
undefined
容简洁、优雅、实用于一身的Luat5033电源模块,来源:Luat5033S系列电源模组硬件设计手册

4.固件开发

合宙CAT1支持三种固件开发方式,分别是AT、LUAT、CSDK。

4.1.AT固件开发

AT 命令采用标准串口进行数据收发,将以前复杂的设备通讯方式转换成简单的串口编程,大大简化了产品的硬件设计和软件开发成本,这使得几乎所有的网络模组如GPRS、3G/4G 、NB-IoT、蓝牙、WiFi 、GPS 等模组都采用AT命令。随着物联网时代的发展,AT 命令被广泛的用于单片机(MCU)+ 网络模块 这样的物联网开发模式。但这种开发模式单片机是必不可少的部分,因而会使产品的成本相应的高些。AT固件是标准固件,所以能支持的驱动也比较少,只有模块状态灯、摄像头扫码、SD卡等外设驱动功能。要想要支持更多的外设建议用Luat二次开发固件进行二次开发。

4.1.1AT开发缺点与优势

AT开发的优势:AT指令是各个模组厂家的主流使用方式之一,在无线模块领域也流行了20多年。
AT开发的缺点:成本相应的高些,能支持的驱动也比较少。

4.1.2什么是单片机

单片机是一个简单却又是完整的计算机系统,麻雀虽小,五脏俱全,它被集成到一个芯片上。它内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的。
随着超大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时/计数器和多种I/O资源接口集成到一片芯片上,形成了芯片级的计算机。最早期的含义为单片微型计算机,又称微控制器(Microcontroller),英文缩写为“MCU”。

4.1.3 单片机开发的特点

功能简单、CPU可用资源较小、功耗低。万物互联时代到来后,大部分的设备需要联网,以实现设备在线监控以及远程控制,通信模块正好完成了最后的数据传输的功能。
AT指令作为单片机和通信模块的桥梁,很好的兼顾了单片机开发的特点,又满足了产品联网的需求。所以AT指令从最初只可以进行拨号上网,到现在已经遍布大部分的物联网设备中,得到了广泛的应用。

4.1.4 应用场景

应用场景非常广泛,可以说物理网的所有应用场景都能适用,例如:

共享经济:共享充电宝、共享单车、共享充电桩、共享净水器、共享柜(寄存柜、换电柜)……
BMS:电池管理系统、锂电池共享租赁
售货机:自动售货机、无人售货机
公网POC:公网对讲机
CPE/Mi-Fi:4G路由器
POS:传统POS、智能POS
AI:智能车载(ADAS)、智能安防(人脸识别摄像机、门禁、考勤)、智能支付(人脸支付)
DTU
儿童手表
定位器、学生卡、广告机、表计
车载:T-BOX、OBD
undefined

4.1.5 基本架构

undefined

4.1.6功能板块

合宙Cat1 AT固件除了3GPP规定的一些常用AT指令(语音通话、短信、电话本、网络状态查询等)功能之外,考虑到单片机开发的一些特性,还增加了很多扩展功能,以满足“单片机+通信模块”这种场景的开发,具体功能如下:
1.数据传输功能
数据传输功能是通信模块的核心功能,也是最常用的功能。有了这个功能产品才可以接入网络,连接服务器或其他物联网设备。
AT固件提供了TCP/UDP/HTTP/FTP/MQTT/PING/PPP等常用的数据传输协议,满足大部分产品需求。
2.数据加密功能
在基础数传功能基础上,如果为了防止数据被监听或者恶意篡改,可以通过数据加密功能来保证数据安全性。目前大部分的网站都实现了加密访问,阿里云、腾讯云、OneNet等设备云平台也都需要加密连接。
3.外设驱动功能(摄像头扫码、模块状态灯、SD卡等)
由于外设比较多,而AT固件又是标准固件,所以能支持的驱动也比较少,只有模块状态灯、摄像头扫码、SD卡等外设驱动功能。要想要支持更多的外设建议用Luat二次开发固件进行二次开发。
4.定位功能(GPS、WiFi定位、基站定位)
定位方式 应用场景 定位精度 优点 缺点
GPS 室外 10米 利用卫星定位系统、稳定可靠 受环境影响、室内无法定位
基站 室外/室内 100米 无需额外硬件成本、只要注册上网便可以定位 需要连接后台,而且定位精度较差
WiFi 室内 3-10米 室内定位精度较高 需要连接后台,一般只能在室内有WiFi信号的地方进行定位
1)GPS定位
利用GPS、BEIDOU、GLONESS定位卫星进行全球定位。定位准确可靠,误差可以做到10M以内。而且合宙Cat1 AT固件还可以通过连接合宙IoT后台进行快速秒定位,满足对定位时长有要求的客户。
2)基站定位
纯软件定位方式,利用了模块周围的信号塔作为地标,通过信号强度和当前注册的小区cell id等信息上报到合宙的IoT服务器,服务器根据模块上报的信息来确定当前位置。
3)WiFi定位
WiFi定位通过模块扫描外围热点,将热点信息上报后合宙IoT服务器进行服务器定位的一种技术,WiFi定位不受GPS信号的影响,可以弥补GPS室内无法定位的场景,和GPS一起使用,可以让位置信息不间断。
定位精度按照从低到高顺序:基站定位<GPS定位<wifi定位。
5.语音功能(语音播报、音频文件播放、录音等)
语音播报是云喇叭、音箱产品的重要功能。可以实现文字语音播报(TTS)、语音文件播放、本地录音、通话录音等功能。
6.模块固件升级功能
为了保证设备在出现软件问题后,可以通过远程方式将模块固件升级,是模块的最后防线。
7.USB网卡功能
USB网卡功能是针对Linux、LiteOS、Anrdoid等设备接入4G网络,这些设备由于其CPU功能强大,往往无需模块端做一些协议联网功能,更多的作为纯网卡功能,复杂的通信协议在主控设备上完成。
8.蓝牙功能模块;
支持4.2版本的双模蓝牙(经典蓝牙/低功耗蓝牙),支持主模式、从模式、广播模式;
支持低功耗蓝牙广播、扫描
支持低功耗蓝牙主、从设备连接
支持低功耗蓝牙数据透传
支持低功耗蓝牙ibeacon
支持经典蓝牙设备搜索、配对、连接(开发中)
支持经典蓝牙数据透传(开发中)

4.2.LUA固件开发

Luat推出的物联网开源架构,依托于通信模块做简易快捷的开发,将传统的AT命令用Lua语言封装成API,并提供各种功能应用的demo,大大减少用户的开发成本。
用户可用无痛的方式,大大方方的拿掉MCU及其外围电路,仅仅使用低价的通信模块。通过Luat开发业务逻辑,完全接管设备的功能控制,做到成本的极简。当某些设备商采用这种极致低成本方案的时候,高成本的方案,就会逐渐被淘汰出这个市场。
Luat开发方式从2012年开始至今,在多行业多应用领域得到充分验证,性能非常稳定。

4.2.1 LUA开发缺点与优势

LUA开发优势:
1.相对于传统的AT开发来说,可以从硬件上节省一个主控单片机的成本
2.提供了丰富的demo开发示例,可以大大降低开发成本
3.用户开发群巨大,社区资料丰富

LUA开发缺点:实时性不是很好,目前还无法很好的支持毫秒级的操作

4.2.2 应用场景

跟AT开发的应用场景一样,这里不赘述,AT开发能覆盖的应用场景,LUAT开发都能覆盖,而且更具有成本优势。

4.2.3 基本架构

SDK目录结构

undefined

代码架构
undefined

4.2.4 功能板块

1.常见外设功能
ADC,GPIO,PWM,I2C,SPI,UART,SDIO,LCD,Camera等
2.音频播放功能;
支持文件播放和流播放;支持mp3、amr,wav数据格式;
3.蓝牙功能模块;
支持4.2版本的双模蓝牙(经典蓝牙/低功耗蓝牙),支持主模式、从模式、广播模式;
支持低功耗蓝牙广播、扫描
支持低功耗蓝牙主、从设备连接
支持低功耗蓝牙数据透传
支持低功耗蓝牙ibeacon
支持经典蓝牙设备搜索、配对、连接(开发中)
支持经典蓝牙数据透传(开发中)
4.加解密算法功能模块;
支持base64、md5、sha1、sha256、hmac_md5、hmac_sha1、hmac_sha256、crc8、crc16、crc32、aes、des、des3、xxtea、rsa、rsa_sha256
5.WiFi定位
wifi热点扫描功能模块;
支持wifi热点扫描,可用于wifi定位;不支持wifi数据传输;
6.系统运行功能模块;
支持开关机、重启、任务消息处理、定时器、fota、软件狗功能
7.二维码功能模块;
支持二维码的生成和显示;
8.文字转语音(tts)功能模块;
支持tts播放;
9.图形库功能模块;
支持按钮、标签、容器、菜单等丰富的控件;
10.文件操作功能模块;
支持文件的创建、读、写、删除;
11.远程升级功能模块;
支持合宙iot服务器或者自定义http服务器远程升级;
12.数据传输功能
支持TCP/UDP/HTTP/FTP/MQTT等常用的数据传输协议,满足大部分产品需求。

4.3.CSDK开发

C-SDK 顾名思义 C + SDK ,SDK 英文是 Software Development Kit(即软件开发包)。综合起来是:C语言软件开发包,可以将无线通信模块作为单片机进行开发。
相对于芯片原厂提供的CSDK,合宙的CSDK提供了更加丰富的驱动接口,以适配最新的物联网应用,包括连接各种云服务、驱动各种硬件外设等。 使用合宙CSDK进行物联网开发在效率方面将远远优于使用原厂CSDK。 但是由于CSDK开发非常的繁琐,要处理的技术细节也非常的繁杂,一般只建议VIP大客户使用。 由于使用CSDK的开发者相对数量较少,目前获得支持的难度也较前面讲的两种方式更大,只建议专家级工程人员使用,或对底层有兴趣爱好的人士进行技术学习之用。

4.3.1 CSDK开发缺点与优势

CSDK开发优势:更灵活完成自己的应用开发方式
CSDK开发缺点:官方不提直接的技术支持,不建议小客户使用

4.3.2 应用场景

跟AT开发的应用场景一样,这里不赘述,AT开发能覆盖的应用场景,CSDK开发都能覆盖。

4.3.3基本构架

undefined

4.3.4功能模块

1.常见外设功能
ADC,GPIO,PWM,I2C,SPI,UART,SDIO,LCD,Camera等
2.音频播放功能;
支持文件播放和流播放;支持mp3、amr,wav数据格式;
3.蓝牙功能模块;
支持4.2版本的双模蓝牙(经典蓝牙/低功耗蓝牙),支持主模式、从模式、广播模式;
支持低功耗蓝牙广播、扫描
支持低功耗蓝牙主、从设备连接
支持低功耗蓝牙数据透传
支持低功耗蓝牙ibeacon
支持经典蓝牙设备搜索、配对、连接(开发中)
支持经典蓝牙数据透传(开发中)
4.加解密算法功能模块;
支持base64、md5、sha1、sha256、hmac_md5、hmac_sha1、hmac_sha256、crc8、crc16、crc32、aes、des、des3、xxtea、rsa、rsa_sha256
5.WiFi定位
wifi热点扫描功能模块;
支持wifi热点扫描,可用于wifi定位;不支持wifi数据传输;
6.二维码功能模块;
支持二维码的生成和显示;
7.文字转语音(tts)功能模块;
支持tts播放;
8.图形库功能模块;
支持按钮、标签、容器、菜单等丰富的控件;
9.文件操作功能模块;
支持文件的创建、读、写、删除;
10.远程升级功能模块;
支持合宙iot服务器或者自定义http服务器远程升级;
11.数据传输功能
支持TCP/UDP/HTTP/FTP/MQTT/PPP等常用的数据传输协议,满足大部分产品需求。

结语

物联网应用场景广泛,使用环境复杂,用户应根据自己的实际需求与现场条件选择最适合的产品。

上次更新 2021-01-28