tag 标签: 4G模组

相关博文
  • 热度 1
    2025-2-10 18:16
    239 次阅读|
    0 个评论
    今天我们深入探索的是SIM卡,SIM卡接口用于连接SIM卡并读取SIM卡信息,以便在注册4G网络时进行鉴权身份验证,是4G通信系统的必要功能。 怎么进行SIM卡电路设计呢?本文应各位朋友相邀,特别分享SIM卡接口功能及其电路设计相关注意事项。 一、SIM卡接口功能描述 Air700ECQ/Air700EAQ/Air700EMQ系列模组支持1路USIM接口,符合ETSI和IMT-2000规范,可自适应支持1.8V和3.3V USIM卡。 注意:因为超小超薄系列设计取向为尺寸超小,所以无法在硬件上同时支持移动、电信和联通,三大运营商分三个不同的版本。 Air700ECQ:支持中国移动; Air700EAQ:支持中国电信; Air700EMQ:支持中国联通。 最新开发资料详见: https://docs.openluat.com/ 1.SIM卡相关管脚 SIM卡信号相关管脚,详见下方图表: 2.SIM卡电气特性 - 支持SIM卡类型:1.8V/3.3V USIM卡; - 支持协议:ETSI/IMT-2000; - SIM卡在位检测:支持; 3. SIM卡时序 激活时序: 当SIM卡的触点接通序列结束后(RST处于低电平,VCC稳定供电,ME的I/O处于接收状态,VPP被置为空闲状态,CLK提供适当的、稳定的时钟),SIM卡准备复位。 如下图所示: 时钟信号在T0时刻加到CLK触点,I/O总线在时钟信号加到CLK触点200个时钟周期(T0时刻之后的t2时间段)之内应该处于高阻状态; 内部复位的SIM卡,在几个时钟周期之后开始复位,复位应答应该在400~40000个时钟周期内开始(T0时刻之后的t1时间段之内); 低电平复位的SIM卡的复位信号至少在40000个时钟周期内RST触点维持低电平(T0之后的t3时间段内),如果在40000个时钟周期内没有复位应答,则RST触点被置为高电平; I/O端的复位应答必须在RST上升沿开始的400~40000个时钟周期内开始(T1时刻之后的t1时间段之内); 如果复位应答在400~40000个时钟周期内没有开始(T1时刻之后的t3时间段之内),则RST触点的电平将被置为低电平(在T2时刻),触点也将被ME释放。 二、SIM卡接口电路设计指导 常用的SIM卡参考设计及注意事项如下,在应用中注意结合实际情况优化调整: ▼ 常用SIM卡参考设计 ▼ 设计注意事项: SIM卡座与模组距离摆件不能太远,越近越好,尽量保证SIM卡信号线布线不超过20cm。 SIM卡信号线布线远离RF线和VBAT电源线。 为了防止可能存在的USIM_CLK信号对USIM_DATA信号的串扰,两者布线不要太靠近,在两条走线之间增加地屏蔽。且对USIM_RST_N信号也需要地保护。 为了保证良好的ESD保护,建议加TVS管,并靠近SIM卡座摆放。选择的ESD器件寄生电容不大于50pF。在模组和SIM卡之间也可以串联22欧姆的电阻用以抑制杂散EMI,增强ESD防护。SIM卡的外围电路必须尽量靠近SIM卡座。 三、SIM卡常见问题 在出现SIM卡不识别卡时,测量SIM卡供电VDD_SIM,总是发现VDD_SIM为低电平? 原因解析: SIM卡在初始化时,系统会尝试4次与SIM卡交互。此时VDD_SIM也会打开4次,分别在1.8V和3.3V交替检测,若检测不到SIM卡,VDD_SIM卡就会关闭,如下图: 因此在检测不到SIM卡的情况下,USIM_VDD总是低电平。 设计建议: VDD_SIM不输出不是SIM卡不识别的原因,而是结果;SIM卡上任何一个信号异常,均会导致VDD_SIM自动关闭。 今天的内容就分享到这里~
  • 热度 1
    2025-2-10 18:11
    161 次阅读|
    0 个评论
    本篇文章以Air724UG模组为例,解读低功耗4G模组软件的语音通话,呈现实用教程供大家参考。 一、音频应用-通话(VoLTE)概述 Air724UG模块的4G通信功能,通过VoLTE技术实现高清语音通话。 在通话过程中,声音信号通过 MIC 捕捉并转换为数字音频数据,经4G网络实时传输至对方设备。同时,Air724UG 支持扬声器(Speaker)输出、耳机(Headset)输出以及听筒(Handset)输出等多种音频输出模式,确保用户在不同场景下都能获得清晰的通话体验。 这一应用广泛适用于物联网设备中的远程通信、语音交互等场景,为用户提供便捷、高效的通话服务。 二、准备硬件环境 古人云:工欲善其事,必先利其器。在深入介绍本功能示例之前,我们首先需要确保以下硬件环境的准备工作已经完成。 2.1 Air724UG 开发板 本 demo 使用的是 Air724UG_A14 开发板,如下图所示: 此开发板的详细使用说明参考: https://docs.openluat.com/air724ug/product/ Air724UG 产品手册中的开发板硬件资料中《EVB_Air724UG_A14 开发板使用说明.pdf》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明 pdf 文档。 2.2 SIM 卡 请准备一张可正常上网的SIM卡,该卡可以是物联网卡(一般不能支持)或您的个人手机卡。 特别提醒: 请确保SIM卡未欠费且网络功能正常,以便顺利进行后续操作。 2.3 PC 电脑 请准备一台配备 USB 接口且能够正常上网的电脑。 电脑操作系统为: WIN7以及以上版本的WINDOWS系统。 2.4 小喇叭 2.5 数据通信线 请准备一根用于连接 EVB_Air724UG_A14 开发板和 PC 电脑的数据线,该数据线将实现业务逻辑的控制与交互。 USB 数据线:此数据线不仅用于为测试板供电,还用于查看数据日志。其一端为 Micro-B 接口(俗称老安卓口),用于连接 EVB_Air724UG_A14 开发板;另一端为标准 USB 接口,连接 PC 电脑。 2.6 组装硬件环境 2.6.1 请按 SIM 卡槽指示方向正确插入 SIM 卡,避免插反损坏 通常,插入 SIM 卡的步骤如下: 将 SIM 卡的金属卡槽下滑打开。 平稳地将 SIM 卡放入卡槽。 上滑关闭卡槽。 2.6.2 USB 数据线,连接电脑和 EVB_Air724UG_A14 开发板,如下图所示: 2.6.3 小喇叭和 EVB_Air724UG_A14 开发板连接,如下图所示: 三、准备软件环境 “凡事预则立,不预则废。”在详细阐述本功能示例之前,我们需先精心筹备好以下软件环境。 3.1 Luatools 工具 要想烧录 LuatOS 固件到 4G 模组中,需要用到的调试工具:Luatools; 下载地址: https://docs.openluat.com/Luatools/ Luatools 工具集具备以下几大核心功能: 一键获取最新固件:自动连接服务器,轻松下载最新的模组固件。 固件与脚本烧录:便捷地将固件及脚本文件烧录至目标模组中。 串口日志管理:实时查看模组通过串口输出的日志信息,并支持保存功能。 串口调试助手:提供简洁的串口调试界面,满足基本的串口通信测试需求。 Luatools 下载之后, 无需安装,放入新建的文件夹后点击 Luatools_v3.exe 运行,出现如下界面,就代表 Luatools 安装成功了: 3.2 烧录代码 首先要说明一点:脚本代码, 要和固件的 LuatOS-Air_V4030_RDA8910_TTS_NOLVGL_FLOAT.pac(注:支持 LCD,字库,图片,TTS,WIFI Scan,SD 卡,VOLTE) 文件一起烧录。 整体压缩文件:内含有四个文件,如图所示。 3.2.1 压缩文件:完整文件包 https://docs.openluat.com/air724ug/luatos/app/audio/volte/ 3.2.2找到烧录的固件文件 官网下载,底层 core 下载地址: https://docs.openluat.com/air724ug/luatos/firmware/ 3.2.3正确连接电脑和 4G 模组电路板 使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线; 3.2.4识别 4G 模组的 BOOT 引脚 在下载之前,要用模组的 BOOT 引脚触发下载。 具体到 EVB_Air724UG_A14 开发板: 当我们模块没开机时,按着下载模式键然后长按开机键开机。 当我们模块开机时,按着下载模式键然后点按重启键即可。 3.2.5识别电脑的正确端口 判断是否进入 BOOT 模式: 模块上电,如果是正常开机运行(没有进入boot下载模式),此时在电脑的设备管理器中,查看串口设备,如下图所示(会出现3个或者4个端口): 先按下载模式再按一下重启,会出现一个端口表示进入了 BOOT 下载模式,如下图所示: 一旦进入了boot下载模式,表示硬件连接上已经处于就绪状态,此时就可以使用Luatools工具进行烧录了! 3.2.6新建项目 首先,确保你的 Luatools 的版本大于或者等于 3.0.6 版本. 在 Luatools 的左上角上有版本显示的,如图所示: Luatools 版本没问题的话, 就点击 Luatools 右上角的“项目管理测试”按钮,如下图所示: 这时会弹出项目管理和烧录管理的对话框,如下图: 3.2.7开始烧录 选择 Air724ug 开发板对应的底层 core 和 main.lua 脚本文件。下载到板子中。 一直按下载模式按键,再按一下重启,然后点击下载底层和脚本,如图所示: 出现如图所示,表示已进入 BOOT 模式,可以松开下载模式按键,等待下载完成。 下载完成,如图所示 四、音频应用-通话(VoLTE)基本用法 4.1 本教程实现的功能定义: CC 库在 EVB_Air724UG_A14-LuatOS 中扮演了关键角色,它提供了一种高效、灵活且用户友好的呼叫控制解决方案。本次介绍的目标是帮助开发者迅速了解并精通 CC 库的 API 接口,以便在 VoLTE 通话中实现精确的呼叫管理和控制功能。 4.2 文章内容引用 EVB_Air724UG_A14 开发板软硬件资料 : EVB_Air724UG_A14 产品手册:https://docs.openluat.com/air724ug/product/ 以下接口函数不做详细介绍,可通过此链接查看具体介绍: audio_API: https://doc.openluat.com/wiki/21?wiki_page_id=2327#API_9 4.3 API 接口详解 4.3.1 cc.anyCallExist() 解说:cc.anyCallExist 用于检查当前是否存在任何活动的通话。这个 API 不需要任何参数。 参数: 无 返回值: 布尔值(true 或 false):如果存在活动的通话,则返回 true;否则返回 false。 举例: 4.3.2 cc.getState(num) 解说:cc.getState 用于获取指定通话的状态。它接收一个通话标识符(可能是通话句柄或电话号码,具体取决于实现)作为参数,并返回一个表示通话状态的值(通常是枚举或常量)。 参数: num:通话标识符(电话号码)。 返回值: 通话状态值(枚举或常量):表示指定通话的当前状态,如空闲、来电、正在拨打、已接通、保持等。 举例: 4.3.3 cc.dial(num, delay) 解说:cc.dial 用于拨打一个电话号码。它接收两个参数:要拨打的电话号码和一个可选的延迟时间(以秒为单位),在拨打之前可以等待一段时间。 参数: num:要拨打的电话号码。 delay(可选):可选参数,默认为0延时 delay 毫秒后,才发起呼叫。 返回值: bool result,true 表示允许发送 at 命令拨号并且发送 at,false 表示不允许 at 命令拨号。 举例: 4.3.4 cc.hangUp(num) 解说:cc.hangUp 用于挂断指定通话。它通常接收一个通话标识符(如通话句柄或电话号码)作为参数,尽管在某些实现中可能不需要参数(如果只有一个活动通话)。 参数: num(可选):号码,若指定号码通话状态不对,则直接退出,不会执行挂断,若挂断时会挂断所有电话。 返回值: 无。 举例: 4.3.5 cc.dtmfDetect(enable, sens) 解说:cc.dtmfDetect 用于启用或禁用双音多频(DTMF)信号的检测。它接收两个参数:一个布尔值表示是否启用检测,以及一个可选的灵敏度值。 参数: enable:可选参数,默认为niltrue 使能,false 或者 nil 为不使能。 sens(可选):可选参数,默认为3灵敏度,最灵敏为 1。 返回值: 无。 举例: 4.3.6 cc.accept(num) 解说:cc.accept 用于接听传入的通话。它通常接收一个通话标识符作为参数,尽管在某些实现中可能不需要(因为通常只有一个传入的通话等待接听)。 参数: num(可选):号码,若指定号码通话状态不对,则直接退出,不会接通。 返回值: 无 举例: 4.3.7 cc.transVoice(data, loop, downLinkPlay) 解说:cc.transVoice 通话中发送声音到对端,必须是 12.2K AMR 格式。 参数: data:12.2K,AMR 格式的数据。 loop:可选参数,默认为nil是否循环发送,true 为循环,其余为不循环。 downLinkPlay:可选参数,默认为nil声音是否在本端播放,true 为播放,其余为不播放。 返回值: 布尔值或状态码:表示传输操作是否成功启动。具体返回值可能因实现而异。 举例: 4.3.8 cc.sendDtmf(str, playtime, intvl) 解说:cc.sendDtmf 用于在通话中发送双音多频(DTMF)信号。它接收三个参数:一个包含 DTMF 字符的字符串,每个字符的播放时间,以及字符之间的间隔。 参数: str:dtmf 字符串,仅支持数字、ABCD*#。 playtime:可选参数,默认为100每个 dtmf 播放时间,单位毫秒。 intvl:可选参数,默认为100两个 dtmf 间隔,单位毫秒。 返回值: 无 举例 五、音频应用整体演示 5.1 音频应用-录音成果演示与深度解析:视频 + 图文全面展示 5.1.11完整实例深度剖析 六、总结 CC 库的通话管理 API 接口共同构成了通话控制的核心功能,使开发者能够高效地管理通话的启动、挂断、接听、参数配置以及附加的通话处理功能。通过合理利用这些接口,开发者可以构建出具备出色通话体验的应用程序,满足用户在多种通话场景下的需求。同时,也需关注接口之间的协同配合,以确保通话功能的流畅性和可靠性。 七、常见问题 打不了电话,确认能不能正常注册上网络,有没有欠费。确认卡是否开通 VOLTE 功能, 只有开通 VOLTE 功能才能进行语音通话。固件是否支持 VOLTE 功能,固件需要支持 VOLTE 功能。注:建议使用手机卡测试,普通物联网卡可能不支持 VOLTE 功能。 audio.setMicGain()通话中设置 mic 增益,必须在通话建立以后设置。 暂不支持视频通话,且因为只有 30W 像素,效果较差。 八、扩展 通话过程中给对端播放音频文件:demo 有案例打开代码中注掉的部分即可进行测试,如图所示。 分享完毕
  • 2025-2-10 17:57
    96 次阅读|
    0 个评论
    今天是以Air724UG模组为例,轻松攻克低功耗4G模组软件的FTP示例。 一、简介 FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。 FTP 协议包括两个组成部分,其一为 FTP 服务器,其二为 FTP 客户端。其中 FTP 服务器用来存储文件,用户可以使用 FTP 客户端通过 FTP 协议访问位于 FTP 服务器上的资源。在开发网站的时候,通常利用 FTP 协议把网页或程序传到 Web 服务器上。此外,由于 FTP 传输效率非常高,在网络上传输大的文件时,一般也采用该协议。 默认情况下 FTP 协议使用 TCP 端口中的 20 和 21 这两个端口,其中 20 用于传输数据,21 用于传输控制信息。但是,是否使用 20 作为传输数据的端口与 FTP 使用的传输模式有关,如果采用主动模式,那么数据传输端口就是 20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。 二、演示功能概述 本教程教你如何使用开发板登录 FTP 服务器访问服务器资源。 功能定义: 1、登录 FTP 服务器 2、读取服务器上的文件资源 3、在 FTP 服务器上创建目录 三、准备硬件环境 3.1 开发板准备 使用 EVB_Air724 开发板,如下图所示: 此开发板的详细使用说明参考: https://docs.openluat.com/air724ug/product/ Air724UG 产品手册中的《EVB_Air724UG_AXX 开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14 开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。 api文档: https://doc.openluat.com/wiki/21?wiki_page_id=2068 3.2 数据通信线 USB 数据线一根(micro USB) 3.3 PC 电脑 WIN7 以及以上版本的 WINDOWS 系统。 3.4 SIM 卡 中国大陆环境下,可以上网的 SIM 卡。一般来说,使用移动,电信,联通的物联网卡或者手机卡都行。 3.5 组装硬件环境 USB 数据线插入 USB 口,另一端与电脑相连,拨码开关全部拨到 ON,串口切换开关选择 UART1,USB 供电的 4V 对应开关拨至 ON 档,SIM 卡放到 SIM 卡槽中锁紧,如下图所示。 四、准备软件环境 4.1 下载调试工具 使用说明参考: Luatools下载和详细使用: https://docs.openluat.com/Luatools/ 4.2 源码及固件 1)底层 core 下载 下载底层固件,并解压 链接: https://docs.openluat.com/air724ug/luatos/firmware/ 如下图所示,红框的是我们要使用到的 本教程使用的 demo 见附件: https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/ftp 4.3 下载固件和脚本到开发板中 打开 Luatools,开发板上电开机,如开机成功 Luatools 会打印如下信息。 点击项目管理测试选项。 进入管理界面,如下图所示。 点击选择文件,选择底层固件,我的文件放在 D:luatOSAir724 路径中 点击增加脚本或资源文件,选择之前下载的程序源码,如下图所示。 点击下载底层和脚本,下载完成如下图所示。 4.4 FTP 服务器 本文测试用的服务器的地址,端口号,用户名,密码为: "121.43.224.154",21,"ftp_user","3QujbiMG"。 如果使用其他服务器请自行修改。 五、代码示例介绍 5.1 API 说明 ftp 的 API 在 LuatOS lib 有做封装,建议直接用 lib 的 API 接口。 5.2 ftp_test.lua 代码 系统启动后演示 5 秒,登录 FTP 服务器,等待登录成功后,查看服务器信息、显示目录下文件、显示文件详细信息、显示工作目录、创建目录等操作。 下载 ftp 服务器的文件至 sd 卡目录,/1040K.jpg", "/sdcard0/1040K.jpg" 从 sd 卡目录上传文件至服务器,/sdcard0/ftp_lib_test_up.txt" 在 ftp_test.lua 这个文件中将登录中的地址,端口号,用户名,密码等必要信息修改为自己服务器的。 5.3 main.lua 代码 本代码为主程序脚本,系统启动后首先会对 4G 网络进行配置,然后加载 FTP 测试模块。 六、开机调试 6.1 开发板开机 连接好硬件并下载固件后,启动 Luatools 软件,系统运行信息将显示在界面中。红框中为开发板连接到 PC 机后正常打印的信息,如下图所示。 6.2 FTP 调试 FTP 登录服务器,并且获取信息。 显示目录下的文件 创建目录/ftp_test 下载 ftp 服务器的文件 下载成功返回 200。 下载前 FTP 服务器的数据如下: 下载文件的打印日志信息: 上传文件至服务器 上传成功返回 200。 上传成功后 FTP 服务器的数据如下: 上传文件打印日志信息: 七、常见问题 7.1 关于不支持主动模式: 模块 ftp 默认是被动模式,不支持主动模式,无法设置主动模式,公网下要想模块正常连接服务器,服务器肯定不能设置为主动模式,否则哪家模块都不能用。 7.2 发送带 0x0d 0x0a 这些数据会丢失 需要通过 ftp.checktype(“I”,0)设置为二进制方式传输文件,否则传输过程中会丢弃换行符。
  • 热度 1
    2025-2-10 17:50
    115 次阅读|
    0 个评论
    本篇文章说的是Air724UG低功耗模组软件的NTP,我以整理成示例供大家快速参考。 一、简介 网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS 等等)做同步化,它可以提供高精准度的时间校正(LAN 上与标准间差小于 1 毫秒,WAN 上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP 的目的是在无序的 Internet 环境中提供精确和健壮的时间服务。 二、演示功能概述 本教程教你如何使用开发板功能模块采用多个免费公共的 NTP 服务器来同步时间,但并不能保证任何时间任何地点都能百分百同步到正确的时间。所以,如果用户项目中的业务逻辑严格依赖于时间同步功能,则不要使用使用本功能模块,建议使用自己的应用服务器来同步时间。 三、准备硬件环境 3.1 开发板准备 使用 EVB_Air724 开发板,如下图所示: 此核心板的详细使用说明参考: https://docs.openluat.com/air724ug/product/ Air724UG 产品手册中的《EVB_Air724UG_AXX 开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14 开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。 api文档: https://doc.openluat.com/wiki/21?wiki_page_id=2068 3.2 数据通信线 USB 数据线一根(micro USB) 3.3 PC 电脑 WIN7 以及以上版本的 WINDOWS 系统 3.4 SIM 卡 中国大陆环境下,可以上网的 SIM 卡。一般来说,使用移动,电信,联通的物联网卡或者手机卡都行。 3.5 组装硬件环境 USB 数据线插入 USB 口,另一端与电脑相连,拨码开关全部拨到 ON,串口切换开关选择 UART1,USB 供电的 4V 对应开关拨至 ON 档,SIM 卡放到 SIM 卡槽中锁紧,如下图所示。 四、准备软件环境 4.1 下载调试工具 使用说明参考: Luatools下载和详细使用 https://docs.openluat.com/Luatools/ 4.2 源码及固件 1) 底层 core 下载 下载底层固件,并解压 链接: https://docs.openluat.com/air724ug/luatos/firmware/ 如下图所示,红框的是我们要使用到的 2) 本教程使用的 demo 见附件: https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/ntp 4.3 下载固件和脚本到开发板中 打开 Luatools,开发板上电开机,如开机成功 Luatools 会打印如下信息。 点击项目管理测试选项。 进入管理界面,如下图所示。 点击选择文件,选择底层固件,我的文件放在 D:luatOSAir724 路径中 点击增加脚本或资源文件,选择之前下载的程序源码,如下图所示。 点击下载底层和脚本,下载完成如下图所示。 五、代码示例介绍 5.1 API 说明 ntp.timeSync(period, fnc, fun) ntp 同步时间任务. 重要提醒!!!!!! 本功能模块采用多个免费公共的 NTP 服务器来同步时间, 并不能保证任何时间任何地点都能百分百同步到正确的时间。 所以,如果用户项目中的业务逻辑严格依赖于时间同步功能, 则不要使用本功能模块,建议使用自己的应用服务器来同步时间。 例子 5.2 testNtp.lua 代码 调用 ntp.timeSync()接口同步时间。ntp.timeSync()#同步一次时间 注意:本功能模块采用多个免费公共的 NTP 服务器来同步时间并不能保证任何时间任何地点都能百分百同步到正确的时间所以,如果用户项目中的业务逻辑严格依赖于时间同步功能则不要使用使用本功能模块,建议使用自己的应用服务器来同步时间 调用 misc.getClock()接口获取系统时间 5.3 main.lua 代码 本代码为主程序脚本,系统启动后首先会对 4G 网络进行配置,等待网络连接成功,然后加载 NTP 测试模块。 六、开机调试 6.1 开发板开机 连接好硬件并下载固件后,启动 Luatools 软件,系统运行信息将显示在界面中。红框中为开发板连接到 PC 机后正常打印的信息,如下图所示。 6.2 NTP 调试 开机启动后,ntp.timeSync()#同步一次时间,然后每隔一秒调用 misc.getClock()接口获取系统时间。 七、常见问题 7.1 os.time()返回值,需不需要特别加载模块? 返回从 1970 年 1 月 1 日到指定日期的时间的秒数,无参数表示当前时间。不需要添加操作,直接可以获取。 os.date 这个 api 只支持 os.date(“*t”) 这样用,不能 os.date(‘%Y-%m-%d %H:%M:%S’) 这样用? 是的,不支持。可以按如下方式处理 7.2 ntp 同步时间后,这个 clock 精度高吗,需要多久同步一次 并不能保证任何时间任何地点都能百分百同步到正确的时间。所以,如果用户项目中的业务逻辑严格依赖于时间同步功能 则不要使用本功能模块,建议使用自己的应用服务器来同步时间。 7.3 ntp.timeSync(24,fnc)时间同步说明 立即同步一次,之后每隔 24 小时自动同步一次,每次同步结束后执行 fnc(time,result) 7.4 ntp.timeSync() 请问这个函数是异步执行的还是执行完成之后,其后的代码才会执行? 获取时间是通过 sys.taskInit 创建一个时间任务来同步时间的,模块会随机尝试访问每一个 NTP 服务器,尝试 1 次,如果成功,如果不需循环同步时间,则退出当前线程,运行别的代码,否则同通过 sys.wait(period)挂起当前任务循环同步时间,运行别的代码,时间到之后重新运行当前任务。如果失败,通过 sys.wait(1000)挂起当前任务 1 秒,运行别的代码,1 秒时间到,在尝试访问下一个服务器,循环操作,直到同步时间成功,或服务器全部访问结束,之后按照成功之后的动作执行。 7.5 有个这个函数后 ntp.timeSync(1) 每次在程序中调用 os.time 也是实时时间了吗? 是的,只要时间同步成功了,就是实时时间了。
  • 2025-1-25 18:20
    471 次阅读|
    0 个评论
    七、多串口 7.1 简介 前面已经介绍了串口的基本用法,本文将使用两个串口(UART1、UART2)进行分别通信的演示。 7.2 介绍多串口如何接线 大家可先跳转至 3.5 介绍串口如何接线中查看单串口的接线说明,在学会了 UART1 接线和 UART2 接线后,只需将这两个通用串口同时接上对应位置即可。 7.3 初始化 UART1 串口和 UART2 串口 7.4 注册接收数据的回调函数 7.5 发送数据 本文中字符串编码格式为 UTF-8 编码格式,SSCOM 串口调试工具的编码格式为 GB2312,所以导致无法正确显示字符串中的中文,需要注意。 7.5.1 发送普通字符串 7.5.2 发送十六进制的数据串 7.5.3 发送 json 格式的数据 7.6完整例程 代码运行结果: 八、UART 电平 8.1 介绍 UART 电平 UART 电平是指串行通信中使用的电压电平标准。常见的串口电平标准有 RS-232、TTL 和 RS-485 等。 1、RS-232 电平:RS-232 是一种常用的串口通信标准,它使用负逻辑电平,即逻辑 1 用 -3V 到 -15V 表示,逻辑 0 用 +3V 到 +15V 表示。RS-232 电平适用于短距离、低速率的通信。 2、TTL 电平:TTL(Transistor-Transistor Logic)电平是一种常见的数字电路电平标准,它使用正逻辑电平,即逻辑 1 用 +5V 表示,逻辑 0 用 0V 表示。TTL 电平适用于短距离、高速率的通信。 3、RS-485 电平:RS-485 是一种常用的串口通信标准,它使用差分电平,即逻辑 1 用 +2V 到 +6V 表示,逻辑 0 用 -2V 到 -6V 表示。RS-485 电平适用于长距离、高速率的通信。 在串口通信中,选择合适的电平标准非常重要,它直接影响到通信的可靠性和稳定性。 Air724UG 模块的 UART IO 电压默认为 1.8V,如果要和 3.3V/5V 的 MCU 或其他串口外设通信,必须要加电平转换电路 8.2 电平转换参考电路设计 8.3 常见问题 1、串口电平电压过低或过高可能会导致什么问题? 如果电压过低,可能会导致接收器无法正确识别信号,如果过高,可能会导致信号损坏或损坏接收器。概述:可能会导致串口无法正常通讯,或通讯数据会突然出现乱码,数据错乱等问题。 九、常见问题 9.1 模块串口接收到乱码是什么情况? 串口接收到乱码通常是由于数据格式不匹配或信号干扰等原因引起的。以下是一些可能导致乱码的情况及其解决方法: 1、波特率不一致 - 情况:发送方和接收方的波特率设置不同。- 解决:确保两端的波特率设置一致。 2、数据位、停止位或校验位不匹配 - 情况:数据格式不一致,例如数据位数、停止位或是否使用校验位。- 解决:确认发送和接收的设置一致。例如,常用设置为8个数据位、1个停止位、无校验。 3、信号干扰 - 情况:外部干扰导致信号失真。- 解决:使用屏蔽线缆,缩短线缆长度,避免在电磁干扰强的环境中使用。 4、接线错误 - 情况:TX(发送)和RX(接收)线接反。- 解决:检查接线,确保正确连接。 5、设备未正确初始化 - 情况:发送设备未配置好,导致数据格式不正确。- 解决:检查发送设备的初始化代码和配置,确保正确设置。 6、缓冲区溢出 - 情况:接收端处理速度慢,导致数据被覆盖。- 解决:提高接收端处理速度,或者增加缓冲区大小。 7、电源问题 - 情况:设备供电不足或不稳定。- 解决:检查电源供应,确保设备正常供电。 8、数据编码不一致 - 情况:发送和接收使用不同的字符编码(如ASCII与UTF-8)。- 解决:确保两端使用相同的字符编码。 9、物理连接问题 - 情况:接口接触不良或线缆损坏。- 解决:检查串口连接,确保接触良好,必要时更换线缆。 10、串口驱动问题 - 情况:驱动程序不兼容或未正确安装。- 解决:检查并更新串口驱动程序。 9.2 使用 RS485 连接模块,出现漏发,接收不到的情况是怎么回事? 出现漏发和接收不到的情况,大概率是因为模块转向时间设置的问题,模块收不到数据可能是因为没有设置转向脚,导致只能发不能收,出现漏发的情况,大概率是因为转向时间设置和设备的实际转向存在偏差导致漏数据的情况,可以通过 uart.set_rs485_oe()接口调整转向时间,通常 9600 波特率设置 3500us 的转向时间。 9.3 模块串口接收不到数据/模块发的数据收不到? 如果出现模块串口接收不到数据的情况,首先排查软件方面逻辑是否写的正确,可以按照 Uart 的 demo 进行测试,如果 demo 也不行的话,排查下模块端和设备端是否为 rx-tx,tx-rx 这样的接法,避免 rx-rx,tx-tx,如果接线也都正常的话确定下波特率方面,如果有条件的话,可以直接通过逻辑分析仪/示波器检测模块的 rx/tx 脚看是否收到数据或者发送数据。