VE问题 #2510
V1414的串口,连续发送数据时候会丢包
100%
Description
主板适配客户的打印测试软件APP,出现丢失数据的情况:
参考附图
App的serial设定是 baudrate:115200 parity:none, databit:8, stopbits:1
PC Serial port后通过terminal program确认的方法。26--33--40--47 这些数据就不连续了,说明有丢包的情况.
硬件方案 是 EXAR V1414.
Files
Subtasks
Related issues
Updated by PM 洪丰(Jim) over 1 year ago
Updated by PM 洪丰(Jim) over 1 year ago
- Project changed from SHC-R3399 Android9 to 000---公开Bug
- Priority changed from B级-Important to C级-Normal
Updated by PM 洪丰(Jim) over 1 year ago
FAE exar zc周翀:
那要看看是发还是收出来的问题
红枫:
你们从流量控制的角度看,没有遇到过这种问题吗?
FAE exar zc周翀:
有可能,如果你的数据量大,还没收完,还在发,就会丢包。要解决这个问题最好的办法就是加硬件流控
红枫:
我们硬件上有做,不知道软件上有没有打开
FAE exar zc周翀:
测试一下波形就知道了
红枫:
测试CTS, DTS/ 还是测试DTR DSR ?
FAE exar zc周翀:
一般是cts和rts
Updated by PM 洪丰(Jim) over 1 year ago
- File 7d632da1b446c503e2b590679958b44.jpg 7d632da1b446c503e2b590679958b44.jpg added
- File 45318f4ecb9d87604b6958b38099580.jpg 45318f4ecb9d87604b6958b38099580.jpg added
- File d2a10d736bc02d29450ad2308906975.png d2a10d736bc02d29450ad2308906975.png added
- File 5f5db71b9bc2a19d53dca6ce0dc585e.png 5f5db71b9bc2a19d53dca6ce0dc585e.png added
- File bcdbe3aab4a51e58eb5f3649e78f9f5.png bcdbe3aab4a51e58eb5f3649e78f9f5.png added
方案1:
给字符串fd 的 close 动作,
给这里加一个点延时, (500mS 1S 5S ) 但没有效果,
还是打印到18左右
Updated by PM 洪丰(Jim) over 1 year ago
- File 20d30f2ccf2b075cc1de44b0982bb78.png 20d30f2ccf2b075cc1de44b0982bb78.png added
- File 52dc04479f445d2db64e0f515f054b4.png 52dc04479f445d2db64e0f515f054b4.png added
- File 2038f3b3e4f33986abac19bdd108384.png 2038f3b3e4f33986abac19bdd108384.png added
目前对apk进行了一个delay控制,可以解决这个问题。
Updated by PM 洪丰(Jim) over 1 year ago
- Serial port test data丢失的问题 ,客户不认可
客户无法接受贵司评估的增加Delay命令(usleep)来解决的方案。因为控制Serial Port的program(app)不是客户的,而是下游的客户进行的。因为无法针对所有客户的program增加Delay方案实际上不可实施下去的。Serial Port作为POS的最基本的、很重要的Interface,POS的主要周边设备都会接到这个port上。因此Data丢失问题必须要解决。
Updated by PM 洪丰(Jim) over 1 year ago
锐宝PM洪丰
锐宝ARM软件经理周锐箭
关于Serial data损失问题,COM5是正常,只是USB to Serial的才会有问题。
是不是要修改USB to Serial 驱动?
客户反馈一次传送很多data时候没问题,而是把很多data一条一条去传送的时候才会有data丢失问题。
(比如 1传送很多data .. 2传送很多data .. 3传送很多data.. 这种方式才会有问题)
所以客户意思不是apk的问题
Updated by PM 洪丰(Jim) over 1 year ago
收到。
1 COM5 是CPU的, 是一个简易信号。其他COM 是USB to Serial的, 是全信号。
COM5这个是新的反馈,我们要搭配APK , 反复再测一下 . 这个要做线。
2 客户意思不是apk的问题, 从软件角度看,
writer 1次,数据可以很多,没有问题,
但分成多次write,快速循环,就有数据丢失。
我们感觉这种方式需要做控制,做延迟sleep。
我们先确认一下1
Updated by PM 洪丰(Jim) over 1 year ago
- Subject changed from 串口口连续发送数据时候会丢包 to V1414的串口,连续发送数据时候会丢包
Updated by PM 洪丰(Jim) over 1 year ago
方向2
Apk 在JNI 文件里, nonblock was removed.
这样也是可以解决问题的
Updated by PM 洪丰(Jim) over 1 year ago
- File 2a523fda7b01800bedc4c50e5a6494c.png 2a523fda7b01800bedc4c50e5a6494c.png added
- File 364a508d0eb967e1310d9e34ce7c84d.png 364a508d0eb967e1310d9e34ce7c84d.png added
- File f07f36120c9ae353612efc7150644e1.png f07f36120c9ae353612efc7150644e1.png added
方向3 驱动方面
这个在串口发数据的时候,让他们跟一下驱动的debug信息,找到准确的发送数据函数,在哪里判断是否发送完毕,发送完毕后加点延时。
Updated by PM 洪丰(Jim) over 1 year ago
电话聊一下吧,看看原因在哪?tx的处理流程是不需要加延时,如果按照你们的现象看,就是对方没处理完数据,让tx晚点发咯
Updated by PM 洪丰(Jim) over 1 year ago
当前总结一下:
APK 数据量比较大, (连续发送49行数据)
用PC的串口终端看到,数据少了
APK可以通过延时,或者取消 nonblock的方式,解决这个问题
但客户不认可,
客户需要从驱动角度解决。
Updated by PM 洪丰(Jim) over 1 year ago
使用exar 参考板,
1 同样存在问题,丢失数据。 和主板上是一样的情况
2 公版参考版的 RS232芯片 全部NG , 使用TTL测试的。
Updated by PM 洪丰(Jim) over 1 year ago
CP2102, USB to Uart ,无此现象。测试OK
Updated by PM 洪丰(Jim) over 1 year ago
CH9104也不行,数据丢失比之前V1414更严重,
APK去掉NO_NONBLOCK就不丢失数据, 也能OK.
看起来两家都有一样的问题. 目前只只有CP2102是可以的.
Updated by PM 洪丰(Jim) over 1 year ago
Updated by PM 洪丰(Jim) over 1 year ago
- File 017ace232fbf63df5a5a26971d3165d.png 017ace232fbf63df5a5a26971d3165d.png added
- File ch343ser_linux-main_20231111.zip ch343ser_linux-main_20231111.zip added
- File ch343.c ch343.c added
- File 30bbf55c9ab625190b983622d958acf.png 30bbf55c9ab625190b983622d958acf.png added
这个驱动并不是为了解决问题,只是为了监控一下
测试场景是Android 通过ch9104发给window上的PC
50 条 0到49行 ============ 这样的数据
Updated by Anonymous about 1 year ago
- Status changed from Open to Close
- % Done changed from 20 to 100