在物联网和嵌入式系统开发中,合适的硬件模块是项目成功的关键之一。
1、模块信息概述
模块信息是每一个模块携带的信息,就像人的身份证一样,这些信息确定了模块的唯一性;
包含设备唯一id,硬件型号,模组的硬件版本号,固件版本号等;
模块远程升级需要上传模块信息,解决和分析某些问题的时候可能也会需要确认模块信息。
2、演示功能概述
使用Air780E核心板烧录底层固件(LuatOS-SoC_V1112_EC618_FULL.soc)和hmeta例程脚本学习有关模块信息的api函数。
3、硬件准备
3.1 Air780E核心板
使用Air780E核心板,如下图所示:
此核心板的详细使用说明参考:
https://docs.openluat.com/air780e/
Air780E产品手册中的《开发板Core_Air780E使用说明VX.X.X.pdf》,写这篇文章时最新版本的使用说明为:《开发板Core_Air780E使用说明V1.0.5.pdf》;核心板使用过程中遇到任何问题,可以直接参考这份使用说明pdf文档。
3.2 SIM卡
中国大陆环境下,可以上网的sim卡,一般来说,使用移动,电信,联通的物联网卡或者手机卡都行。
3.3 PC电脑
WINDOWS系统。
3.4 数据通信线
带TYPE-C口的USB数据线。
4、软件环境
4.1 Luatools工具
要想烧录LuatOS固件到4G模组中,需要用到调试工具:Luatools;
Luatools工具集具备以下几大核心功能:
固件与脚本烧录:便捷地将固件及脚本文件烧录至目标模组中.
串口日志管理:实时查看模组通过串口输出的日志信息,并支持保存功能.
串口调试助手:提供简洁的串口调试界面,满足基本的串口通信测试需求.
Luatools下载之后,新建一个命名为"Luatools"的文件夹,将下载的Luatools_v3.exe拷贝或移动到新建的Luatools文件夹内,点击Luatools_v3.exe即可运行.
4.2 准备需要烧录的代码
首先要说明一点:脚本代码,要和固件的soc文件一起烧录.
4.2.1 烧录的底层固件文件
底层core下载地址:LuatOS固件版本下载地址
Air780E的底层固件在Luatools解压后目录的:
LuatOS-SoC_V1112_EC618_FULL.soc
4.2.2 烧录的脚本代码
首先,要下载Air780的LuatOS示例代码到一个合适的项目目录。
示例代码网站:
https://gitee.com/openLuat/LuatOS-Air780E
下载流程参考下图:
下载的文件解压,找到LuatOS-Air780E-master\demo\hmeta\main.lua,如图:
5、API说明
5.1 mcu.unique_id()
获取设备唯一id。
参数
无
返回值
例子
5.2 mobile.imei(index)
获取设备IMEI
参数
返回值
例子
5.3 hmeta.model()
获取硬件型号
参数
无
返回值
例子
5.4 rtos.bsp()
获取硬件bsp型号
参数
无
返回值
例子
5.5 hmeta.hwver()
获取模组的硬件版本号
参数
无
返回值
例子
5.6 rtos.version()
获取固件版本号
参数
无
返回值
例子
6、功能验证
6.1 烧录固件
6.1.1 正确连接电脑和4G模组电路板
使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线.
6.1.2 识别4G模组的boot引脚
在下载之前,要用模组的boot引脚触发下载,也就是说,要把4G模组的boot引脚拉到1.8v,或者直接把boot引脚和VDD_EXT引脚相连.我们要在按下BOOT按键时让模块开机,就可以进入下载模式了.
具体到Air780E开发板:
1、当我们模块没开机时,按着BOOT键然后长按POW开机。
2、当我们模块开机时,按着BOOT键然后点按重启键即可。
6.1.3 识别电脑的正确端口
判断是否进入BOOT模式:模块上电,此时在电脑的设备管理器中,查看串口设备,会出现一个端口表示进入了boot下载模式,如下图所示:
6.1.4 用Luatools工具烧录
新建项目
首先,确保你的Luatools的版本,大于等于3.0.6版本的.
在Luatools的左上角上有版本显示的,如图所示:
Luatools版本没问题的话,就点击Luatools右上角的“项目管理测试”按钮,如下图所示:
这时会弹出项目管理和烧录管理的对话框,可以新建一个项目,如下图:
开始烧录
选择Air780E板子对应的底层core和刚改的main.lua脚本文件.下载到板子中.
点击下载后,我们需要进入boot模式才能正常下载.
如果没进入boot模式会出现下图情况:
进入boot模式下载,如图:
6.2 例程
6.3 对应log
7、总结
通过本章学习,你可以学习到模块唯一ID,模块硬件型号,固件版本,硬件版本的获取方法
8、常见问题
8.1 模块唯一ID文档
mobile.sn()获取SN,出厂未必有写SN;一般用途的唯一id,可以用mobile.imei()代替;如需要真正的唯一ID,使用mcu.unique_id()
8.2 通过IMEI查询模块生产记录
云平台(openluat.com)