串口打包长度与打包时间

发布时间 2023-10-07 11:30:15作者: emanlee

串口打包长度与打包时间

 

USR-WIFI232系列模块串口数据打包说明,串口是数据本身是无序的,一个字节一个字节的发送,网络数据一个包一个包发送,所有有了串口数据打包的问题

 

WIFI232系列模块有三个打包选项,任一条件满足都会打包:

1、打包时间间隔

    即收到模块的最后一个字节开始计时,到指定时间后没有新数据则打包发送,此参数默认时间是50ms,如果需要更快的响应速度,可以通过AT+FUARTTE=fast/normal,可以设置间隔时间,fast对应10 ms,normal对应50ms。这个命令为出厂设置命令,AT+RELD对其无效。经测试,设置为10ms时间间隔后,串口数据->wifi->用户APP->WIFI->串口,响应时间为30~40MS。

 

2、自动打包时间

    即串口收到第一个数据开始计时,到达指定时间后,将已经收到的串口数据通过网络转发。此参数通过 【网页->串口及其他设置->串口自动成帧设置】进行配置,修改需要重启才生效,默认未开启,不按接收时间打包。

 

3、自动打包长度

    即串口收到串口数据时开始计数,达到设定的字节数,及打包转发,此功能有助于在通讯协议固定,包长度固定的通讯模式下, 获得最佳的响应速度,此参数通过 【网页->串口及其他设置->串口自动成帧设置】进行配置,修改需要重启才生效,默认未开启,此参数未开启相关功能时,为4000字节。

===========================

数据打包策略

数据打包一般只针对串口,这是因为串口在硬件层面上是不支持"数据帧"的,它是一个字节一个字节发送和接收(即使有FIFO,但通常不会超过16字节)。网口与串口不同,它会将数据打包,在一包数据前面和后面各增加一些位形成数据帧,可以说网口硬件已经将数据打包好了,串口没有这种硬件功能,需要软件打包。
一般可以根据设置的参数来打包,比如根据打包时间参数、打包长度参数、分隔符等等。如果没有使能这些参数,或者打包时间参数和打包长度参数设置为0,就需要程序默认一个打包时间。
打包时间这个参数很容易被误解,它并不是说这个时间内的数据打成一包数据,而是当接收一个字节数据之后,超过打包时间也没有接收到下一个字节数据,我们就会把这之前接收的数据打包。
打包长度这个参数是指接收到的数据个数等于打包长度时,这些数据打成一包。需要注意的是程序中隐藏着另外一个固定的打包长度,并且这个打包长度优先级最高,只要接收到的数据长度等于这个打包长度,会忽略掉其它所有打包参数,立刻将数据打包。这个隐含打包长度就是串口接收缓冲区长度。
分隔符可以有1个也可以有多个,当接收的数据流中包含了分隔符后,数据立刻被打包,它会忽略打包时间参数。

如果支持软件协议,要根据软件协议规定的打包策略执行。
链接:https://blog.csdn.net/zhzht19861011/article/details/52805934

===========================