利尔达Cat.1模组UART硬件流控说明

描述

 

串口数据通信,当通信速率较快时可能会出现丢包现象,如计算机和单片机之间,当MCU接收端的数据缓冲区已满,此时仍然有新的数据传输过来,接收端已没有时间进行处理,就会导致丢包(数据丢失)。实际应用中经常会遇到该类问题,本质原因是设备的通信速率与处理能力不匹配,导致数据传输时丢包。
 

利尔达Cat.1模组具有硬件流控的功能,用户可通过该功能来解决通信速率与MCU处理能力匹配失衡造成的丢包问题。硬件流控的原理非常简单,当接收端接收到的数据处理不过来时,就向发送端发送不再接收的信号,发送端接收到这个信号之后会停止发送,直到收到可以发送的信号再继续发送。因此硬件流控可以通过是否接收到指示信号防止数据丢失。

本文主要针对具有硬件流控功能的利尔达Cat.1模组,给出了对应的时序逻辑和测试方法,用户可根据本文对MCU程序进行开发,从而实现硬件流控串口通信。

 

 

环境搭建

01

软件环境

通过AT指令AT+IFC=2,2开启硬件流控。

注1:NT35E开启硬件流控后会自动保存,复位后硬件流控仍保持开启状态;
注2:NT26U和NT90则需要通过AT指令AT&W进行保存。

 

02

硬件环境

本次测试使用串口助手SSCOM模拟MCU对模组进行控制,USB转串口工具如图1所示。

利尔达

图1 USB转串口工具

模组引脚连接示意图如图2所示。

利尔达

图2 引脚连接示意图

 

 

硬件流控测试

CTS引脚是模组的输入端,用于主机(MCU)通知模组是否准备好,模组是否可向主机(MCU)发送信息,低电平有效。

RTS引脚是模组的输出端,用于模组通知主机(MCU)是否准备好,主机(MCU)是否可向模组发送信息,低电平有效。

01

模组CTS引脚测试

注:模组CTS引脚硬件流控测试,模组开启流控功能,sscom未开启流控功能。

硬件流控使能测试步骤如下:
1)悬空模组CTS、RTS引脚;
2)发送指令AT+IFC=2,2,开启模组硬件流控;
3)进行正常的AT交互;

通过上述流程开启硬件流控功能后,SSCOM将无法收到模组返回的消息。此时,使用万用表测量模组的CTS和RTS引脚:

1)CTS引脚为高电平,即模组不会发送消息;

2)RTS引脚为低电平,即允许主机(MCU)发送信息;

未连接模组CTS、RTS引脚时,模组会接收到AT指令并正常执行,但是由于模组认为主机没有做好接收的准备,AT指令的执行结果将暂存于模组的内部缓存中,不会进行数据发送,所以SSCOM无法接收模组返回的消息。

拉低模组CTS引脚后,模组会一次性把缓存的数据输出到SSCOM中,此时通过SSCOM进行AT指令通信(模组的CTS引脚接地),能够立即接收到来自模组返回的消息。

根据以上的测试过程和结果可以得出,模组开启硬件流控功能后CTS引脚功能正常。

 

02

模组RTS引脚测试

1)连接主机、模组CTS、RTS引脚;

2)发送指令AT+IFC=2,2,开启模组硬件流控;

3)配置SSCOM,模拟主机开启硬件流控;

4)进行正常的AT交互;

利尔达

图3 勾选SSCOM左下角的RST选项

利尔达

图4 使能sscom硬件流控

SSCOM按照配置完成后,确认模组AT通信正常,然后通过大数据交互触发模组硬件流控功能。如图5所示,创建一个txt文档,内部填入大量AT指令。
 

利尔达

图5 创建一个填入大量AT指令的txt文档

通过SSCOM发送文件的功能,可快速向模组发送AT指令。在发送文件时把串口波特率修改为460800bps(AT+IPR=460800)以便触发高速率通信下的硬件流控指示。
 

利尔达

图6 打开文件-发送文件

通过逻辑分析仪抓取模组TX、RX、RTS、CTS引脚波形,模组引脚与逻辑分析仪通道匹配如表1所示:
 

利尔达

表1 模组引脚与逻辑分析仪通道匹配表

如图7所示为发送文件时模组引脚波形图,根据图示可知当模组的缓存已满,RTS引脚输出高电平,模组RX引脚保持高电平,此时SSCOM不会向模组发送AT指令;由于SSCOM运行在电脑上,速度、缓存远高于模组(不会发生阻塞),因此模组的CTS引脚始终保持低电平。
 

根据以上的测试过程和结果可以得出,模组开启硬件流控功能后RTS引脚功能正常。

利尔达

图7 发送文件波形

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分