Air800 模块 M4 开发板使用说明

一、概述1、产品描述Air800 模块 M4 是一款支持 GPRS+GPS 的开发版。Air800 M4 支持lua、C、AT,开发者可根据需求灵活选择。Air800 M4 稳定、专业、高效。仅银行卡大小的身材,集成了 Air800 模...


一、概述

1、产品描述

Air800 模块 M4 是一款支持 GPRS+GPS 的开发版。Air800 M4 支持lua、C、AT,开发者可根据需求灵活选择。

Air800 M4 稳定、专业、高效。仅银行卡大小的身材,集成了 Air800 模块运行所需要的必要外设,如 SIM 卡座、GPS天线、GSM天线、供电等。开发者仅需使用 microUSB 数据线正确连接到开发板,即可使系统运行。

同时,Air800 M4 还提供了丰富的接口,开发者可用于调试各种外接设备。


2、开发板配置

PCB封装尺寸:65.5*53.5mm;

板载 GSM PCB 天线,实现“插卡即用”;

可改 GSM SMA 天线座,满足对天线性能要求高的应用需求;

多种供电方式:电池、串口、microUSB;

内置 DCDC 降压,使开发板运行更稳定;

电池连接插口,可使用锂电池或者直流电源供电;

内置充电芯片,可为电池充电;

支持 UART、SPI、I2C 等;

UART1 内置串口电平转换电路,支持 3.3V ,5V 外设串口电平

标准 2.54mm  19PIN*2 排针;

内置串口转换芯片,可直接使用 microUSB 数据线连接开发板,调试更方便;

拨杆供电开关;

内置1个开机按键,1个复位按键;

内置3个 LED 指示灯:开机状态指示、充电状态指示、通用指示(默认为网络状态指示);

内置驻极体 mic;

1路Speaker音频输出

内置 25*25mm GPS 陶瓷天线(可改外置有源 GPS 天线);

内置看门狗芯片,实现硬件复位;

简易式 SIM 卡座;

上电自动开机焊点(开发者可根据需要自行焊接)


二、外设布局



                                                             (正)


                                                         (背)


三、排针管脚定义


                                                         (背)


四、功能介绍

1、供电方式

Air800 M4 开发板支持多种供电方式:

1.5V 排针供电;

2.USB 接口 5V 供电;

3.电池端排针供电(3.4~4.2V)。

使用 USB 供电

Air800 M4 有 1 个 USB 连接器,开发者可以使用 microUSB 数据线连接 PC,或使用 5V 充电器为 Air800 M4 供电。

打开电源后,将 Air800 M4 的拨杆开关拨到上方,长按开机键(正面左侧微动开关,按住超过2秒后松开),Air800 M4 的红色 LED 亮起时表示供电成功。

 

                                                           (正)


使用 5v 串口线供电

将串口线的 VCC 和 GND 分别与开发板的 5V 和 GND 排针相连。

 

                                                          (背)


 

                                                            (背)


打开电源后,将 Air800 M4 的拨杆开关拨到上方,长按开机键(正面左侧微动开关,按住超过2秒后松开),Air800 M4 左下角的红灯亮起时表示供电成功。

 

                                                               (正)


请注意

1、5V 串口线供电和 USB 供电,不要同时接线;

2、当 VBAT 端悬空时,充电灯会闪烁,这是正常现象。接入电池后,LED不再频闪。


锂电池 或 外接直流电源 供电

Air800 M4 提供了锂电池供电接口。开发者可通过接口,使用电池或者直流电源为开发板供电(亦可为锂电池充电)。

VBAT 供电电压范围为 3.4~4.2v,建议使用18650并联,或者相应规格的锂聚合物电池。

请注意

1、电池输出电流峰值能应达到 2A,以满足 GSM 射频需求;

2、电池应配有对应的保护板,以保证电池不会出现过热等情况;

3、接线时应注意正负极,避免接反的情况。

4、切勿使用不合格的电池。


将电池(直流电源)按照图中标注针脚,正确连接到开发板。

 

                                                          (背)


 

                                                           (正)


电池连接完成后,将 Air800 M4 的拨杆开关拨到上方,长按开机键(正面左侧微动开关,按住超过2秒后松开),Air800 M4 左下角的红灯亮起时表示供电成功。


请注意

普通 PC 的 USB 口供电电流峰值最大只有 500mA,远低于 GSM 系统的 2A 供电能力要求。

日常的调试和使用中可能不会暴露问题,但是开发板在进行长时间连续射频发射时,供电端会产生电压跌落,电压不稳定,可能导致开发板数据异常甚至关机。所以如果在测试长时间连续 GPRS 发射时,强烈推荐用锂电池供电,或使用供电能力大于 2A 的直流电源供电。


2、 开机关机

开机

正确连接供电后,长按 Air800 M4 的开机键大于 2S 后松开,此时红色开机指示灯常亮,随后绿色网络指示灯闪烁,表示开机成功。

 

                                                        (正)


请注意

如果按开机键的时间不足,或者 VBAT 电压小于开机电压 3.5V,无法正常开机。


开发者也可以拉低 PWRKEY 超过 2s 实现开机。

 

                                                                (背)


开机自动上电

Air800 M4 开发板支持上电自动开机。开发者可将开发板上的 JP4 断点用锡短接。开发板上电后会自动开机。

 

                                                           (正)


请注意

配置成自动开机后,无法通过软件调用关机接口的方式实现关机,只能通过切断开发板供电实现关机


关机

在开机状态下将 PWRKEY 针脚拉低或者长按开机键 2S 以上,开发板会进入软件关机流程。当网络指示灯不再闪烁时关机流程完成。

另一种方式是通过将 RESET 针脚拉低实现硬件关机,这种关机方式为硬件关机,通常用于在开发板死机或异常状态时恢复用。

 

                                                           (背)


请注意

RESET 针脚是硬件关机功能,不能实现重启功能,但是在自动开机配置下,拉低 RESET 针脚会将开发板关机,随后硬件自动上电开机,从而间接实现重启功能。

RESET 按键按下后,要等 2S 左右系统会完全关闭,开机指示灯熄灭。


3、串口连接 及 下载调试

串口连接

Air800 M4 内置了 CP2102 串口转 USB 芯片,它可以将模块的串口转成 USB 接口,通过 USB 连接器引出。

开发者仅需用普通 microUSB 数据线连接开发板即可实现供电、下载、调试等操作。

连接方式如下:

 

                                                           (正)


请注意

开机上电状态,才能进行下载、调试操作;

部分操作系统没有 CP2102 驱动程序(下载地址),开发者需要安装驱动程序后,才能正常识别开发板串口,使用下载工具进行调试;

2个跳线帽必须都在 HOST 位置,才可以正常下载、调试;

如果是开机自动上电,无法触发下载握手流程,请短按 RESET 键,或者拉低 RESET 。


Air800 M4 有两路通用串口和一路 HOST 串口。开发板只能通过 HOST UART进行底层软件下载或者 lua 脚本下载。通用串口(UART1/UART2)均不支持下载、调试。

Air800 M4 开发板正面有串口选择排针。开发者可以通过跳线帽来选择相应的串口,使之连接到串转换芯片上,实现 HOST UART、UART1 切换。

 

                                                                  (正)


如下图所示,跳线帽短接上面两个针脚,即HOST UART。此时 HOST 串口连接串口芯片, USB 连接的是 HOST 口。USB 可用于下载、调试,不可用于 UART1 操作。

 

                                                          (正)


 

                                                         (正)


如下图所示,跳线帽短接下面两个针脚,即UART1。此时 UART1 连接串口芯片, USB 连接的是 UART1 。USB 可用于UART1相关操作,如发送 AT 指令,收发 UART1 数据等。不可用于模块的下载、调试操作。

 

                                                             (正)

                                                         (正)


Air800 M4 的 UART1 内置了电平转换电路,可以兼容 5V,3.3V 电平的 MCU 串口电平,开发者无需考虑串口电平匹配问题。


请注意

1、当跳线帽设置为UART1时,开发板上的 UART1_TX 和 UART1_RX 将不可用;如果需要使用 UART1 排针,请将跳线帽改为HOST UART,或者拔掉跳线帽;

2、跳线帽必须两个都正确设置,才能使用。单独接一个跳线帽,或者跳线帽在两个不同位置,均无法正常工作;

3、HOST UART 固定波特率为 921600,输出数据有加密,必须使用专用工具查看Trace(下载地址)



下载 / 调试

Air800 M4 开发板拥有串口转换芯片,开发者可以直接使用 microUSB 数据线链接到电脑,通过“下载调试工具”进行开发板调试、下载等操作。

请注意

必须使用优质 microUSB 数据线才可以正常调试、下载;劣质的数据线可能产生较大压降,导致开发板工作异常。

串口转换芯片 CP2102 驱动程序下载

下载调试工具下载



安装驱动 及 硬件配置

首先,开发者需要正确安装 CP2102 串口转换芯片驱动,然后,把开发板正面的跳线帽设置为HOST UART;最后使用 microUSB 数据线连接电脑和开发板。


查看 Trace

打开“Luat下载调试工具”,正确选择串口,点击软件中“打开串口”按钮;最后长按 Air800 M4 开机键,使开发板上电开机,即可在软件中查看 Trace、Event 信息。

 

                                            (下载调试工具 - 打开串口)


 

                                  (下载调试工具 - 查看 Trace)


下载

开发者可以使用“下载调试工具”下载底层软件 LOD ,或者二次开发代码 lua。

 

                                   (下载调试工具 - 下载 LOD)


 

                                (下载调试工具 - 下载 lua 脚本)


请注意

下载调试工具 使用教程



4、天线相关说明

GSM 天线

Air800 M4 开发板采用内置的 PCB GSM 天线。助力开发者,力争做到方便使用、便捷开发,减少成本的目的。

同时, Air800 M4 支持连接外置天线,以满足开发者对天线性能要求较高的应用需求。


PCB GSM 天线

Air 800 M4 开发板默认使用 PCB GSM 天线.。

该天线具有体积小、效果好的特点,适合大多数使用场景。开发者无须额外改动,可以实现开发板“到手就用”。

 

                                        (背 - PCB GSM 天线)


IPEX 3 代同轴射频座

Air800 M4 开发板支持使用IPEX 3 代射频座。

如果需要使用 IPEX 座子,开发者仅需将 PCB 通路上的 0 欧姆电阻拿掉,再将 GSM 天线通过连接线,接驳到该座子上即可。

该种连接方式,适用于信号差,或者金属壳体的情况。开发者可以使用 IPEX 转 SMA 线,将天线外接到壳体外。

 

                                          (去掉图示的 0 欧电阻)


 

                                                           (修改后)

 

   

                (修改前) (修改后)


SMA 天线座子

Air800 M4 开发板支持使用 SMA 天线座子。

如果开发者需要使用 SMA 座子,需要将串联的 0 欧电阻的位置修改到下图位置:

 

                                       (修改 0 欧电阻位置)


 

                                                             (修改后)


改好后,即可在 Air800 M4 开发板正面的 SMA 座上安装天线,进行 GSM 通信。适用于开发、调试过程中, PCB GSM 信号不够强,需要天线增强信号的情况。

请注意

切勿同时使用多种 GSM 天线连接方式;

虽然 GSM 天线外观和 WiFi 的天线外观极为相似,但是二者的频率不同(WiFi频率为2.4GHz,5.8GHz,GSM频率为800MHz),故此不可混用。


GPS 天线

Air800 M4 默认采用 25*25mm 无源陶瓷天线;同时, Air800 M4 支持外接 GPS 有源天线连接器。


无源陶瓷天线

Air800 M4 板载无源陶瓷天线,具有能耗低,便携性强,可靠性高,二次开发简单等特点。

 

                                                    (正 - 陶瓷天线)


有源外接天线

Air800 M4 支持有源外 GPS 接天线,开发者可以通过开发板上的IPEX 1代 座子外接有源 GPS 天线,减少搜星速度,增强跟踪能力。

使用有源 GPS 天线,开发者需改动开发板背面的 0 欧电阻位置,如图所示:

    

(修改前) (修改后)


    

(修改前) (修改后)


0 欧电阻修改完成后,开发者还需要使用代码打开该 IPEX 座子供电,就可以使用外接有源 GPS 天线了。

适用于对 GPS 性能要求较高的场景,或者开发板封装在壳体内,需要外接天线的情况。

代码 >

pmd.ldoset(7,pmd.LDO_VIB)    -- 打开 3.3V 输出

pmd.ldoset(0,pmd.LDO_VIB)    -- 关闭输出


请注意

切勿同时使用 有源、无源 GPS天线;

外接 GPS 有源天线为 IPEX 1代座子;

使用外接 GPS 有源天线时,请注意开发板至多只能提供 3.3v 供电。


5、LED指示灯

Air800 M4 内置 3 个 LED 指示灯。分别是充电指示灯,开机状态指示灯,通用指示灯。

 

                                                           (正)

充电指示灯(橙):

充电指示灯由充电 IC 控制。充电时,充电指示灯常亮,当充满后,指示灯熄灭。充电插针悬空时,充电指示灯闪烁。

开机状态指示灯(红):

当系统进入充电开机模式或正常开机模式时,就会常亮。此灯由硬件控制,软件无法控制。

通用指示灯(绿):

此灯由模块的 GPIO28 控制。开发者可以通过修改代码控制此灯的行为。该指示灯默认为网络指示灯。


Luat 出厂默认软件,闪灯规则如下:

网络模式 闪灯规则

飞行模式 常灭

未检测到 SIM 卡 亮 0.3 秒,灭 5.7 秒

检测到 SIM 卡,未注册上 GSM 网络 亮 0.3 秒,灭 3.7 秒

注册上 GSM 网络,未附着上 GPRS 网络 亮 0.3 秒,灭 0.7 秒

附着上 GPRS 网络,未连接上服务器 亮 0.3 秒,灭 1.7 秒

连接上服务器 亮 0.1 秒,灭 0.1 秒


请注意

网络指示灯闪烁,仅为 GSM 网络注册状态,GPRS 附着情况的标识,并非表示当前存在数据传输。


6、音频接口

Air800 M4 支持一路 MIC 输入和一路 SPEAKER 输出,以方便开发者进行录音或语音播报方面的开发与调试。MIC 为内置驻极体 MIC;音频输出由排针引出,可接 8 欧姆喇叭。

 

                                                             (正)

                                                          (背)


请注意

MIC 拾音效果有限;SPEAKER为单声道输出,推荐搭配 8Ω 0.8W 喇叭。

音频输入、输出,如果有更高需求请根据硬件设计手册进行修改。

7、充电功能

Air800 M4 内部集成充电功能。开发板通过充电 IC 控制充电,无需软件控制,默认恒流充电电流为 350mA 左右。

电池接在 VBAT 和 GND。开发板使用 5V 供电时,即可为电池充电。

                                                            (正)

Air800 M4 内置充电 LED 指示灯,充电时会持续亮起,充满后熄灭。注意,当电池接口悬空而 USB 口有供电时,充电灯会闪烁。


8、硬件看门狗

Air800 M4 开发板内置了一颗 luat 专用看门狗芯片。它可以在系统死机时,对系统进行自动恢复。

请注意

详情请参考 《Luat 专用看门狗芯片设计手册》



开发板有 4 个和看门狗芯片相关的断点,分别是 JP1,JP2,JP3,JP5。如果需要调试看门狗,可以用锡将之连起来。4个断点接通后,看门狗芯片将正常工作。

连接JP1、JP2、JP3、JP5后,开发板的GPIO11 和 GPIO6 会被占用,请不要另作他用。

 

                                         (背)


请注意,如果启用看门狗芯片,那么需要添加如下代码,否则看门狗将间隔 240 秒左右重启一次模块。如果您使用的是 AT 版,请不要启用看门狗。

代码 >

-- 请添加到main.lua

require"wdt"


请注意

由于芯片底层代码调整,目前 Air800 M4(A10硬件版本) 的硬件看门狗功能无法使用。请勿连接 JP1、JP2、JP3、JP5 断点。

后续A11硬件版本会调整此电路。

五、lua二次开发

本模块只可使用官方提供的下载工具进行程序下载、调试工作。

1、名词释义(lua版)

底层软件

底层软件:也称为基础软件(core)。

底层 lod 由合宙提供,用户不可以进行修改。它是由用C语言开发完成,内嵌了Lua虚拟机,支持上层软件的运行。

不同功能的lod,可为开发者提供不同的额外功能(如TTS可提供语音朗读,UI可提供显示屏支持)。


上层软件

上层软件由合宙提供DEMO示例代码,用户可进行修改,实现二次开发。

上层软件分为两个部分,分别是基础运行库(lib)和二次开发代码(lua脚本)构成。

请注意

lua版模块出厂已经下载默认的底层软件和上层软件。用户可直接上电,使用APP“时间线”查看开发板定位,或者使用下载工具查看模块运行情况。

开发者可以在 wiki (http://wiki.openluat.com/) 查询API和相关例程;

开发者可在 github (http://github.com/openLuat/) 下载例程代码。



2、下载工具

Luat下载调试工具是合宙推出的对Air系列 模块/开发板 的调试工具。

该工具有如下功能:

1、对模块打印trace进行输出分析;

2、下载合宙官方lod底层;

3、lua、AT版本互相转化(修改底层lod);

4、下载Lua脚本进行二次开发;

5、使用App验证开发板是否为良品;

6、生成量产文件进行远程升级/批量生产。

工具下载地址及使用教程:http://wiki.openluat.com/doc/tools/

请注意

开发者下载前,应先选择适合的 底层软件 和 上层软件。如果上层软件调用了 底层软件 不支持的功能,将出现错误。

日常开发中,仅需下载 上层软件 即可。但是如果重新下载了 底层软件,那么 上层软件 也必须更新。


3、代码编辑

开发者可以从github或者wiki下载例程,并根据自己的需求进行修改。开发者可使用任何编辑器书写代码(如vim、notepad++,vscode等)。

lua代码修改后,无需编译文件,请直接添加到下载工具中,下载到模块内即可。

请注意

基于安全设计,代码下载到模块后,无法再从模块中提取。开发者应注意源代码的备份。


4、Debug

开发者需要根据下载工具的trace内容(或报错),修改lua代码,再下载调试,重复此步骤直到实现需求。

请注意

开发者应该根据Trace输出的内容进行调试。

如需求助,请提供完整的Trace数据。


5、API

合宙™提供多个API以助开发者更轻松书写代码。具体内容情况请参阅:

http://wiki.openluat.com/doc/modules/extra/extrapi/


六、Q&A

Q:什么是 底层软件,上层软件,lib,lua?

A:举个栗子 

模块 是电脑,底层软件 是Windows。所有的程序都是在Windows上运行的。用户可以调用Windows提供的API,但是不能修改Windows的代码。

上层软件 是应用程序。上层软件中lib 是运行环境,lua 是开发者写的代码。开发者可以直接调用lib提供的API进行开发,也可以自己修改lib代码,实现其他需求。甚至可以自己根据底层软件提供的API重构代码。

PS:已经有大神做了重构版哦:http://github.com/openLuat/Luat

这样一来,应该可以明白这几者对应的关系了。


Q:下载上层软件后,为什么无法正常运行?

A:请检查代码是否有错误,或者模块剩余空间是否不足。

代码 >

print("mem:",base.collectgarbage("count")) --实时打印已占用的空间。


Q:为什么开发板无法使用 GPS 定位呢?

A:有以下几种情况可能导致无法 GPS 定位。

1、开发板所处环境 GPS 信号弱,无法接收到足够强度的 GPS 信号;

2、代码中没有使用 GPS 相关代码,所以不包含 GPS 数据;

3、模块冷启动,需要一定的时间才能 GPS 定位成功;

4、供电问题导致模块运行不稳定;

5、硬件修改 GPS 天线后,导致开发板无法收到 GPS 信号;

6、有其他干扰源导致。

开发者应尽量避免在室内、狭窄场地等场所进行 GPS 相关测试。建议选择较为开阔、没有遮挡的场所进行 GPS 相关测试。


Q:代码可以在什么环境上编译调试?

A:lua代码可以在任何操作系统编辑。但是目前仅可在windows平台使用下载工具,下载到模块中。


Q:不同的底层软件,有什么区别呢?

A:如下图所示:


剩余空间中“脚本+资源”指:通过烧写工具烧写的文件,例如lua脚本文件,mp3音频文件,图片文件;剩余空间中“文件系统”指:例如脚本运行过程中创建的参数文件,录音文件,远程升级文件等。

请注意

如果用到远程升级功能,一定要为远程升级文件预留足够用的空间,至少保留升级bin文件大小+“所有脚本和资源的原始大小之和”的文件系统空间。


Q:模块的主频是多少?RAM和ROM又是多少呢?

A:模块主频312MHZ,RAM为32MB,ROM为32MB。


Q:为什么主频达到312M,却还不如单片机实时性强?

A:这是由于GPRS模块的首要任务是与网络进行通信,所以与网络相关的中断的优先级是最高的,模块每隔4.615ms就要与网络同步一次,并且还要处理网络下发的数据,这个中断,会处理1到2毫秒,在此期间会打断其他所有的中断(包括IO中断);所以 GPRS 模块的IO的实时性是无法与单片机比较的,哪怕是最便宜的单片机。

Lua脚本中的定时器,支持的最小时长是1毫秒,但是1毫秒的肯定不准确,1秒以内的都不准确。

如果要利用定时器精确地采集外部的输入脉冲,脉冲频率高于1Hz都不精确;如果对脉冲的采集精度没有要求,则可以根据自己的需求,实际采集一下试试能否满足需求


Q:可否使用充电宝为开发板供电?

A:不推荐。 模块自动休眠后,电流过小。充电宝会认为充电充满了,就会关掉输出。开发者可以接到5V充电器,也可以接到电脑USB口。


Q:为什么配置GPIO出错?

A:首先请检查代码是否有错。如果代码没错,那么请检查是否和其他代码冲突(如同时配置了gpio和UART)。

请注意

一旦配置了UART,对应的cts、rts、txd、rxd均不可以再设置为gpio

Air800 M4 A10批次开发板,UART1_CTS/GPIO_3与SPI1_DI/GPIO_12在硬件上短路,导致这两个无法使用,请注意软件上不要配置这两个管脚,以免发生无法预测的问题。

后续A11以及以后的版本会对此问题进行修复。


Q:GPIO支持输出吗?

A:所有GPIO均支持输入、输出和中断。


Q:待机情况下,功耗大约多少?

A:详见下表:


Q:我需要微安级别待机,可行吗?

A:请完全断电。需要开机时再拉低PWRKEY上电。


Q:模块是否支持录音?

A:模块支持录音。


Q:如何计算录音文件大小?

A:录音文件为amr格式文件,码率为12.2kbps。amr文件头有6字节。每秒有1600字节数据。

录音文件总大小为:6+录音秒数*1600 。


Q:能否使用代码获取流量卡的号码?

A:不可以。


Q:如何读取imsi、iccid、imei、mnc、mcc等数据?

A:请使用如下代码:

代码 >

require"misc"

require"sim"

print(misc.getimei())

print(sim.getimsi())

print(sim.geticcid())

print(sim.getmcc())

print(sim.getmnc())


请注意

开机后,立即执行此代码,不能正确打印数据;请稍候片刻,初始化成功后才能正确打印数据。


Q:模块支持什么运营商的卡?

A:目前支持移动和联通的流量卡。不支持电信卡。


Q:为什么我的手机卡插到模块中,不能正常使用?

A:需要修改APN才可以。


Q:如何修改APN?

A:http://wiki.openluat.com/doc/questions/script/#gprsatluatapn


Q:如何设置飞行模式?

A:请使用如下代码:

代码 >

require"misc"

misc.setflymode(true)    --进入飞行模式

misc.setflymode(false)    --退出飞行模式


Q:如何获取小区信息?

A:请使用如下代码:

代码 >

require"net"

print(net.getcellinfoext())


请注意

开机后,立即执行此代码,不能正确打印数据;请稍候片刻,初始化成功后才能正确打印数据。


Q:能否获得电池电量?

A:开发板默认支持测量电池电压。代码如下:

代码 >

require"misc"

print(misc.getvbatvolt())


该代码不可以获取电池电量,电池充放电状态。开发者需要使用其他电源管理模块才可以实现该功能。


Q:SN、IMEI、IMSI、CCID的区别?

A: SN 即 Serial Number ,模块私有的序列号。长度可变,由设备生产商生成并写入模块。开发者可以读取、重写该序列号;

IMEI 即 International Mobile Equipment Identity,设备识别码,用以识别设备身份。长度固定为15位,由设备生产商根据 GSM 标准写入模块,全球唯一。它不会随着 SIM 卡改动而变化,可以用作设备鉴权等;

ICCID 即 Integrate circuit card identity,集成电路识别码,用以识别 SIM 卡。长度固定为20位,由 SIM 卡生产商写入卡中,全球唯一。可以用作 SIM 卡识别、鉴权、识别运营商等;

IMSI 即 International Mobile Subscriber Identification Number,国际移动用户识别码,长度固定,用以识别该 SIM 卡在网络中的身份。可用作 SIM 卡识别、鉴权、识别运营商等。

SN、IMEI 和设备绑定,IMSI 、ICCID 和 SIM 卡绑定;其中 ICCID 为 SIM 卡离线身份验证,不参与数据交换;IMSI 需要传输到 GSM 网络进行 SIM 卡身份识别、验证。

请注意

模块内部默认没有sn号,用户调用misc.setsn()写入之后才有。


Q:Luat Air模块的“浅休眠”和“深休眠”有什么区别?

A:深休眠:

代码中调用misc.setflymode(true)进入深休眠, 调用misc.setflymode(false)退出深休眠。 深休眠状态下,会关闭语音和数据业务的协议栈,所以不能收发短信, 不能通话,不能上网进行数据传输,可以正常操作GPIO, 可以正常操作定时器。深休眠状态下的单模块功耗为1mAh, 如果还有GPS,UART等外设在运行,功耗另算。

浅休眠:

一般情况下,用户是不需要写代码去控制进入或者退出浅休眠状态, 系统自动控制进入和退出浅休眠 浅休眠状态下,不会关闭语音和数据业务的协议栈, 所以可以收发短信,可以通话,可以上网进行数据传输,可以正常操作GPIO,可以正常操作定时器 进入浅休眠状态后,收发短信时,会自动退出浅休眠,收发短信结束后,会立即自动进入浅休眠。 进入浅休眠状态后,通话时,会自动退出浅休眠,通话结束后,会立即自动进入浅休眠。 进入浅休眠状态后,数据传输时,会自动退出浅休眠,数据传输结束后,会立即自动进入浅休眠。 浅休眠状态下的单模块功耗为3.3mAh,如果还有GPS,UART等外设在运行,功耗另算。

进入浅休眠状态后,UART无法正常工作,必须先退出浅休眠,UART才能正常收发数据


Q:Trace中,OPENAT_NetworkStatusChangeInd后面跟的状态字是什么意思?

[network] OPENAT_NetworkStatusChangeInd state 0:

网络断开,表示GPRS网络不可用,无法进行数据连接,有可能可以打电话

[network] OPENAT_NetworkStatusChangeInd state 1:

网络已连接表示GPRS网络可用,可以进行链路激活

[network] OPENAT_NetworkStatusChangeInd state 2:

链路正在激活

[network] OPENAT_NetworkStatusChangeInd state 3:

链路已经激活PDP已经激活,可以通过socket接口建立数据连接


Q:Air800 M4 卫星接收通道有多少个?支持多少个卫星?

A:通道有复用,32个跟踪通道,96个捕获通道,支持卫星总数196个。


Q:如何分辨我手中的开发板是 AT 还是 Luat?

A:请使用下载调试工具查看:

 


Q:为什么发送 AT 指令没有任何响应?

A:首先,请检查 TX、RX 是否接线错误,是否打开了错误的串口,供电是否正常,是否为 AT 底层,是否开机。

如果您使用 microUSB 连接到开发板,需要确认是否安装了 CP2102 驱动程序,开发板的跳线是否设置为 UART1。

 

(正)


如果您使用排针上的 UART1_TX,UART1_RX 进行测试,那么请把跳线设置为 HOST_UART 。

最后,请确定您的串口调试助手可以发送”\r”。如果不行,请尝试更换其他串口调试助手。


Q:如何把lua转换为AT版?

A:开发板正确连接到电脑后,使用下载工具转换即可。

 


请注意

lua版可以通过这个方式转换为AT版;同理,下载lua的底层软件(lod)即可变为lua版。


Q:为什么使用USB2TTL线连接开发板 UART1 失败?

A:首先,请确定您的串口线驱动是否安装正确;然后,请您查看是否插错了vcc、gnd、tx、rx,是否已经上电开机;最后,请您根据自己的开发板类型(AT/lua)进行调试。

如果是 lua ,请使用代码中设定的波特率。否则会出现乱码等情况。

请注意

部分串口转换芯片可能稳定性不够好,导致识别失败;推荐使用ft232、ch340等芯片。


Q:如何查看 GPS 输出的原始数据?

A:使用 USB2TTL 的 RX 线接开发板的 GPS_TX 排针,然后开发板上电开机,就可以收到数据了。

 


Q:能否使用5V长时间供电?

A:可以。不过,当使用5V供电方式的时候,由于PC的USB口供电峰值最大只有500mA(标准usb2.0),低于GSM系统要求2A供电能力的需求。所以,在一般的软件调试和一般的使用时没有问题,但是在模块进行长时间连续射频发射时,模块供电端会有电压跌落,造成电源电压不稳定的现象。

如果在测试长时间连续GPRS发射时,有可能会出现随机掉电关机的现象。因此,在测试长时间连续GPRS发射应用时,强烈推荐用锂电池供电或用供电能力大于 2A的直流电源供电。


Q:PCB天线的设计有什么标准吗?

A:http://wiki.openluat.com/doc/hardwareDesign/#air800

http://www.sohu.com/a/118709782_505877


Q:Air800 M4支持什么运营商的卡?是否支持境外的运营商?

A:目前开发板支持 中国移动、中国联通 的 4G/3G/2G 流量卡。

理论上我们的开发板是支持所有运营商的卡,但是由于各国网络存在细微差异,所以很难做到无差别覆盖。所以如果您遇到境外的卡无法使用,请提供相关Trace,我们将提供额外技术支持。


Q:为什么我的卡放到手机上可以用,但是放到开发板却无法联网?

A:请您修改APN后再尝试。

如果仍然无法解决该问题,请您使用手机尝试强制使用2G网络,查看是否有信号,能否使用网络。

(因为基站覆盖问题,部分地区的2G网络可能覆盖不够好,所以会出现此类问题)


Q:为什么我的开发板不断重启?

A:请您查看重启的规律,如果是间隔4分钟左右重启一次,那么是由于您的代码没有正常驱动看门狗芯片,导致硬件重启。请您下载最新版lib进行开发。

如果是无规律重启,甚至是启动中途就自动重启,那么请您根据Trace检查lua代码是否有问题。

请注意

必须在main.lua中require“wdt”才可以避免规律性重启;

代码错误导致的重启,必须根据Trace输出内容修改代码,重新下载。


Q:为什么我的开发板开机后,没有打印任何Trace,开机失败?

 

A:如果您的开发板连接到电脑后,出现上图所示情况(event最后一行地址是0x1a11dead,Trace没有任何输出),是您的按动开机键时间过短导致。

按动开机键超过2s后松开,才可以正常开机。


Q:为什么我发送AT,却返回一堆乱码?

 


A:一般遇到这种情况,请检查模块是否为AT版,是否正确连接到UART1。

请注意

luat版的HOST_TX,HOST_RX波特率为921600,必须使用专用的下载工具查看Trace,普通的串口调试助手均会乱码。


Q:如何使用UART1发送 HEX 给单片机?

A:对于串口来说,不论发 HEX、OCT 还是 DEC ,结果都是一样的,转为 BIN (二进制)发出去。所以仅需在编写代码的时候,进行少许改动即可。

此处介绍两种方法方法供大家参考:

方法一:使用 string.char 方法,全部转为 ASCII 发送:

代码 >

--发送数据ff ff ff

uart.write(1, string.char(255)..string.char(255)..string.char(255))


方法二:使用 pack ,转换需要发送的数据:

代码 >

--发送数据ff ff ff

----将 0xff 0xff 0xff 以打包为bytes,再转换为 HEX

packed = pack.pack(common.binstohexs(pack.pack("b", 0xff, 0xff, 0xff)))

uart.write(1, packed)

想了解更多 pack 用法?请点击 

http://wiki.openluat.com/doc/modules/extra/extrapi/#pack


Q:UART读取数据不完整怎么办?

A:请根据实际情况修改参数:

http://wiki.openluat.com/doc/modules/extra/extrapi/#uartread

如果是阻塞读取,那么请检查发送的数据是否完整。


Q:socket 经常掉线怎么办?

A:首先请检查信号强度如何,如果信号很弱,请修改天线;然后,请检查代码重连方面的问题;随后,请检查服务器的稳定性如何,是否并发性能很弱,或者硬防干扰,亦或境外VPS的不可抗力因素导致连接超时;最后,由于部分 ISP 限制,必要时请使用心跳包维持连接。

参考链接:http://blog.openluat.com/2017/08/28/gprs的坑/


Q:GPIO 支持输入、输出、中断吗?

A:所有GPIO都支持输入、输出(0~3.3v)、中断。请注意电压域的设置。

请注意

如果启用了UART,那么相关的GPIO(tx/rx/cts/rts)插针将不可使用,否则会提示错误。


Q:UART支持什么波特率?能否修改校验位等其他参数?

A:UART支持2400,4800,9600,14400,19200,28800,38400,57600,115200,230400,460800,921600。

修改数据位、校验位,请阅读wiki:

http://wiki.openluat.com/doc/modules/extra/extrapi/#uartsetup


Q:uart.read中,”*l”是什么意思?

A:读取到字符”\n”发送,或者阻塞发送。


Q:如何阻塞读取uart数据直到收到特定的截止符?

A:代码如下:

代码 >

local function read()

    --定义一个临时变量,储存数据

local data = ""

    --开始循环,阻塞读取

while true do

    data = uart.read(1,"*l",0)

    if not data or string.len(data) == 0 then break end

    tmp_data = tmp_data..data

    --如果收到的数据结尾是ff ff ff

    if string.sub(tmp_data, -6, -1) == "ffffff" then

        --打印收到的数据,并清空变量

        print(string.sub(tmp_data, 0, -4))

tmp_data = ""

end

end


--注册读取uart1数据的函数

sys.reguart(1,read)

--配置uart1

uart.setup(1,9600,8,uart.PAR_NONE,uart.STOP_1)


Q:串口测试时,怎么一边打印Trace,一边接调试助手?

A:有些时候,开发者可能需要查看Trace的同时,调试uart,这种情况下,建议开发者使用多个usb2ttl线;对于实时性要求不高的情景,可以临时把发uart的数据,传到tcp服务器,从服务器看数据。


Q:播放mp3必须是tts 的 lod 吗?

A:通用版lod即可。


Q:为什么TTS朗读没有声音呢?

A:请检查喇叭好坏以及接线情况;请检查代码是否有误;请检查是否使用了 TTS 底层LOD。


Q:tts遇到多音字怎么办?

A:请尝试用同音字替换多音字。例如“请重试”换位“请虫试”。


Q:123读成“一百二十三”怎么办?

A:请修改阿拉伯数字为汉字,或者每个数字间加上空格


Q:为什么喇叭声音小?

A:有可能是喇叭的阻抗太大,所以声音很小;请替换喇叭,或者外加功放板;也有可能是声学设计不合理,导致喇叭前后相位相抵导致,请设计一个共鸣腔。


Q:为什么喇叭没声音?

A:多种原因导致,请检查连线情况(是否插错)、喇叭是否损坏、代码是否正确、底层是否正确(tts必须使用tts的lod)。


Q:对于喇叭有什么要求?

A:阻抗8Ω,功率0.8w。

阻抗过大,声音细不可闻;阻抗过小,则可能烧线圈。


Q:喇叭杂音大怎么办?

A:请检查布线情况。再喇叭线上并电容。


Q:为什么有的时候使用tonumber转换失败呢?

A:因为开发板不支持浮点。所以请避免浮点相关的任何运算。


Q:为什么有的时候json解析失败呢?

A:这可能是因为json格式不合法导致的。请先检查json格式。


Q:VRTC 有什么作用?

A:用以维持内部时钟。


Q:基站定位是什么原理?为什么有的时候不准呢?

A:每一个基站都有自己的“身份编号”,通过这些编号,查询数据库后,便可以知晓该基站的经纬度信息。定位精度级别:100米。

开发板插入 SIM 卡并开机后,会自动开始搜寻附近的所有基站信息。随后开发板会把基站的“身份编号”及该基站信号强弱上传到服务器。服务器根据开发板上传的信息,查询数据库,应用定位算法,即可返回开发板的经纬度信息了(此过程需要联网)。

 


所以通常情况下,单基站定位不如多基站定位精度;基站覆盖密集度越高,定位效果越好。

请注意

伪基站、应急基站等,是无法定位的。


基站定位的原理是查询数据库,计算经纬度。所以如果数据库内没有该基站信息,或者当前地点基站覆盖较差,均有可能造成定位失准情况。


Q:什么是 GPS 定位?为什么 GPS 定位比基站定位精准?

A:开发板通过 GPS 天线,接收到太空中 GPS 卫星广播的数据,然后对数据进行计算,即可得到当前经纬度(此过程无需联网)。定位精度级别:10米。

 


通常情况下,至少搜到 3 颗卫星才能 2D Fix(经纬度);至少搜到 4 颗卫星,才能 3D Fix(经纬度+海拔)。


Q:什么是混合定位?基站定位、GPS定位、混合定位,分别适用于什么场景?

A:混合定位指使用多种方法进行定位,提高定位精度,缩短定位时间。通常使用的定位方法有 卫星导航、基站定位、BLE、WiFi、惯性导航、激光雷达等。

 


Air800 M4使用的方法是 基站定位+ GPS。

基站定位适合对精读要求不高的场景,或者室内使用的情况;GPS 定位适合室外,可以接收到 GPS 信号的场景。对于大多数项目,推荐使用混合定位。


Q:什么是AGPS?什么是DGPS?有什么作用?

A:AGPS 即 Assisted Global Positioning System; DGPS 即 Differential Global Positioning System。

AGPS 是首先通过基站定位,获得模块的大致经纬度信息,然后再从服务器下载该地域 GPS 卫星的星历,可以有效减少搜星时间(此过程需要联网)。

DGPS 是建立一个基准点,然后在此基准点计算出当前 GPS 信号修正值。最后把修正值传输给开发板,开发板把收到的 GPS  信号,进行修正运算,最后得到相对更为精确的定位信息。定位精度级别:1m。


Q:为什么我使用时间线APP,添加设备时,提示没有找到该设备?

A:开发板需要将开发板的数据上传到服务器,APP 才能提示找到该设备。所以请检查开发板是否正常开机,能否正常 GPRS 通信。

如果确认无误,请稍候片刻即可。


Q:时间线APP能否查看运动轨迹?是否有网页版?

A:不支持查看开发板运动轨迹;如果想实现查看开发板运动轨迹、电子围栏等需求,请选购本公司的车载定位设备。

时间线网页版:http://www.xiaomanzaixian.com/index


Q:如何计算通讯流量?我选择多少兆流量的月卡比较适合?

A:使用多少流量,需要根据开发者写的代码进行估算。

月流量 = 每小时通讯流量 * 24 * 30

如果无法准确估算,可以让开发板模拟工作24小时,然后登陆 http://sim.openluat.com查询该 SIM 卡当日流量情况(流量详情次日 0 时更新)。乘以 30 即可估算月用量了。


Q:开发板是否支持通话录音,自动接听,播放应答录音?

A:不支持通话录音;可以自动接听,但是不支持播放应答录音。


Q:开发板的时钟是错误的怎么办?

A:请使用 ntp 进行同步(此过程需要联网)。

代码 >

-- 代码请添加到 main.lua

-- 下载时,请下载 ntp.lua

require"ntp"


Q:为什么使用 os.date() 获取不到日期时间?

A:请使用如下代码:

代码 >

-- 时间戳

print(os.time())

-- 时间table

print(os.date("*t"))


Q:开发板支持多少个 scoket ?

A:支持至多 8 个。

请注意

8个指所有的 socket 相关操作。包含 mqtt、http、TCP 等在内的所有。



Q:socket 是否支持域名?是否支持 UDP 协议?

A:支持域名;支持 UDP。


Q:为什么用物联网多使用 MQTT,而 TCP、HTTP、websocket 用的较少?

A:因为物联网是偏于轻量级的、安全设计的通信方式,所以 MQTT 更为适合物联网。

它具有传输稳定、安全性高、可靠性高、容量大、协议开放、部署方便、省流量等特点,这是其他协议不具备的。

TCP 不够安全,HTTP 不够鉴权不够方便,websocket 消耗流量过多。故此 MQTT 是不二之选。


Q:一般情况,MQTT设置心跳包间隔多少秒比较好?

A:60~120s。


Q:有什么推荐的 MQTT 服务端程序吗?有没有什么工具可以测试服务端?

A:服务端可以试试 MOSQUITTO,或者 EMQTT;测试程序可以尝试 MQTT-SPY。


Q:如何理解 MQTT 的主题(topic)、订阅(subscribe),发布(publish)?

A: 开发板可以订阅主题,订阅后可以发布。只有订阅后才能收到服务器发过来的消息;

开发板可以不订阅主题,发布某主题的内容,服务器可以收到该消息。


Q:如何测试 TCP,有没有在线的工具?

A:http://tt.ai-thinker.com:8000/ttcloud


Q:GPS 天线设计,有什么参考吗?

A:http://blog.openluat.com/2017/09/22/luat模块gps天线设计建议/


  • 发表于 2018-09-29 14:49
  • 阅读 ( 5473 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
qin0036

软件工程师

17 篇文章

作家榜 »

  1. 技术销售Delectate 43 文章
  2. 陈夏 26 文章
  3. 国梁 24 文章
  4. miuser 21 文章
  5. 晨旭 20 文章
  6. 朱天华 19 文章
  7. 金艺 19 文章
  8. 杨奉武 18 文章