IFC
TE-TA 本地流量控制:AT+IFC
流控简介:
对 模块与 DTE 之间可靠的通信而言,流控是很重要的。假使一次数据或传真呼叫中,发送端的发送速度大于接收端的接收速度,当接收缓存接近满的时候,接收端应该有方法让发送端暂停发送,直到它重新赶上。这就是流控。
一般来说,有两种方法来实现流控。它们是软件流控和硬件流控。在多路复用模式下,推荐采用硬件流控。合宙模块对这两种流控方式都支持。
软件流控:
软件流控发送不同的字符去暂停(XOFF,十进制 19)和恢复(XON,十进制 17)数据流。它适用于仅仅有三根线的串口通信。
合宙LTE模块如果使用软件流控,则需要通过命令:AT+IFC=1,1 来配置
因为这个配置不保存,所以若希望重启后继续使用软件流控,需要通过 AT&W 保存到用户配置表中。
注:当模块传送的是二进制/十六进制数据时,不适合软件流控方式,因为TE可能会将二进制数据当成流控字符。
硬件流控:
硬件流控通过 RTS/CTS 信号来实现。当接收缓存快满的时候,模块把 CTS 信号设置为无效,数据传输被暂停。当模块的接收缓存可以接收更多数据时,CTS 信号重新被设置为有效。
要实现硬件流控功能,请确保你的应用串口包含 RTS/CTS 线。
语法规则:
命令类型 | 语法 | 返回和说明 |
---|---|---|
设置命令 | AT+IFC=<dce_by_dte>,[< dte_by_dce>] | OK |
查询命令 | AT+IFC? | +IFC: <dce_by_dte>,<dte_by_dce> OK |
测试命令 | AT+IFC=? | +IFC: (<dce_by_dte>取值列表),<dte_by_dce>取值列表) OK |
注意事项 | 模块缺省无流控。如果需要硬件流量控制,请输入"AT+IFC=2,2;&W",重启模块就一直生效了。 |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
< dce_by_dte> | TE 接收来自TA 数据时采用的流控方法 | 0 | 无流控 |
1 | 软件流控 | ||
2 | 硬件流控 | ||
< dte_by_dce> | TA 接收来自TE 数据时采用的流控方法 | 0 | 无流控 |
1 | 软件流控 | ||
2 | 硬件流控 |
举例:
命令(→)/ 返回(←) | 实例 | 解释和说明 |
---|---|---|
→ | AT+IFC=? | 查询< dce_by_dte>和< dte_by_dce> 取值范围 |
← | +IFC: (0-2),(0-2) OK | 查询结果 |
→ | AT+IFC? | 查询当前的流量控制方式 |
← | +IFC: 2,2 OK | 硬件流控 |