今天要讲的是4G模组软件的UART解析,以低功耗模组Air724UG为例。
一、串口(uart)概述
UART(通用异步接收器/发送器)是一种串行通信协议,因其多功能性和简单性而被广泛使用。与 I2C 和 SPI 不同,UART 只需要两条线即可运行:TX(发送)和 RX(接收)。该协议允许异步通信,也就是说发送器和接收器之间无需共享时钟。数据被组织成数据包,每个数据包包含一个起始位、5 到 9 个数据位、一个可选的奇偶校验位和1个、2个或者1.5个停止位。
优点:
-
简单:UART 通信协议相对简单,易于实现和调试。
-
适用性广泛:UART 被广泛应用于各种设备之间的通信,具有较好的兼容性。
-
距离:UART 通信距离较远,适用于需要长距离传输的场景。
缺点:
-
速度较低:UART 通信速度相对较低,不适用于对速度要求较高的应用。
-
双工:UART 通信是双工的,可以进行低速双工传输数据,进行数据的发送和接收。
-
不可靠:由于 UART 是异步通信,可能会受到噪声和干扰的影响,导致数据传输不可靠。
二、演示功能概述
本文主要教你使用 Air724UG 开发板对串口(uart)进行一个测试,其中包含了串口,RS485,usb 虚拟串口,多串口,串口电平转换等内容,其中对 RS485 有一个搭配温湿度传感器做的一个温湿度传感器 demo
三、准备硬件环境
3.1 开发板准备
在开始之前,需要准备一套 Air724UG 开发板,目前合宙推出两种 Air724UG 开发板(开发板和核心板),开发板的优势在于大多数管脚接口都引出来了,例如 sd 卡,camera,屏幕等接口,实际使用都是一样的,在使用时可根据自身需求选择开发板。
1)如果你选择的是Air724UG开发板:
此开发板的详细使用说明参考:
https://docs.openluat.com/air724ug/product/
Air724UG产品手册中的 《EVB_Air724UG_AXX开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。
2)如果你选择的是Air724UG核心板:
下方资料可供你参考查阅:
https://docs.openluat.com/air724ug/product/
Air724UG产品手册中的Air724UG-核心板硬件资料
3.2 SIM 卡
在中国大陆环境下,使用移动,电信,联通的物联网卡或者手机卡都可以。
3.3 数据通信线
1)USB 数据线
2)由于本篇教程和串口相关,所以需要准备 USB 转 TTL 工具或者串口线。例如 CH340、FT232 等,本文使用的是高速串口
3.4 PC 电脑
PC 电脑推荐使用 win7 及以上版本,Air724UG 驱动下载地址:
8910驱动:
https://doc.openluat.com/wiki/21?wiki_page_id=6908
3.5 介绍串口如何接线
Air724UG 模组有 5 个串口,分别为 UART1,UART2,UART3,HOST UART 和 ZSP UART 调试串口。
其中对于 Luat 开发方式,UART1 可以用作一个通用的串口来连接其他的串口设备。
UART2 可以用来射频校准,同时 UART2 还用来和内部的蓝牙进行通讯,如果用到了蓝牙功能,则 UART2 不可 再用作其他用途。
UART3 是一个通用串口,可以用作外接 GPS 等外设。
HOST UART 用来软件调试时输出 AP trace。
ZSP UART 用来软件调试时输出 CP trace。
其中 HOST UART 和 ZSP UART 不能作为普通串口使用,只用于调试输出底层日志。
1)如果你想了解这 5 个串口对应于模组的哪个管脚,请看下方图片:
2)如果你只想知道 Air724UG 开发板的串口引出位置,请看下方图片:
3)接下来进行接线操作,注意模块与 MCU 之间要交叉接线,即 TX 接 RX,RX 接 TX,GND 接 GND 。由于本文只需用到 UART1 和 UART2 两个通用串口,因此下表中只列出了这两个通用串口的模块引脚编号及模块与 MCU 之间接线说明。
四、准备软件环境
4.1 源码及工具
-
Air724UG模块使用固件:
固件地址:
https://docs.openluat.com/air724ug/luatos/firmware/
选择最新版本CORE_V4030,本文使用的固件版本是:LuatOS-Air_V4030_RDA8910_BT_FLOAT.pac -
将固件和脚本烧录到模块中,使用说明参考:
Luatools 下载和详细使用
https://docs.openluat.com/Luatools/
串口工具本文选用的是 sscom
4.2 uart 库接口描述
uart 库即串口操作库,该库为内部库,所以在程序中使用时无需 require 调用,本文只是简单介绍 uart 库中常用接口描述,其余接口描述请参考:uart 接口文档