本帖最后由 ejack 于 2009-10-25 17:35 编辑
目前正在做一个CAN总线联网项目,调试的时候用CAN-232模块抓数据进计算机进行验证。CAN总线波特率10kbps,调试串口波特率57600。
现在发现在大量数据传输时,从串口调试软件抓取的数据总是有丢失,而联网设备(具备历史数据查询功能)相互之间通讯的数据全部正常。查看计算机抓取的帧数据,有许多头、尾健全(尾为数据校验和)而中间缺字节的现象。
首先怀疑是外购CAN-232模块的问题(缓冲太小?程序太烂?当时心中还小小鄙视了一下其厂商)。将自己的线路板稍加修改,自制转换模块,调试信息显示收帧数和发帧数全部OK、所有帧通讯正确率100%,可是计算机上抓取的数据还是不全。
其次怀疑是串口软件的问题,更换多款串口调试软件,现象基本相同(有些破烂一刷屏就丢数据……)
再次怀疑计算机串口设置问题。调节计算机串口的各项设置,包括调节16550的FIFO深度,均未有任何改善……
剩下只有怀疑:1.操作系统问题?2.这些串口调试软件使用的控件有bug或性能缺陷?在此请各位各抒己见,一解小可之疑惑。 |