打印

串口收发数据问题

[复制链接]
2317|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hsbjb|  楼主 | 2012-1-29 19:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用的是matlab XPC目标仿真。
简单描述一下我的模型:(宿主机台式机--------网线---------目标机PC\104)
1)PC\104主板上的串口1读IMU单元数据,115200,IMU工作频率100HZ,模型的仿真步长为0.002s
2)PC\104利用IMU数据在数学模型里计算出四个整数
3)PC\104主板上的串口2向DSP发送这个四数,自己设计好字头(FA,FF,32),四个整数以uint8形式发送,即一组数据包一共是3*1+4*2=11个字节,没有校验位。
4)PC\104主板上的串口2同时接收DSP发过来的四个数,字头和数据形式与3)中发送的一样。

现在的问题是这样的:
1)COM2读DSP发来的数据时,误码率很高,其表现形式是:字头可以正常检测到,但数据段部分会有某几个连续的采样时刻下的某个位 数据不对,就好比,人在抄数据,数据排布结构没错,但马虎了,某些数抄错了。
2)COM2向DSP发送数据时,误码率很高,其表现形式是:有时一组数据包还没有完全发完,就开始了下一组的发送,而下一组包还没发完时又开始了新的一组,但5、6个采样周期过后,又会恢复正常。就好比,数不会被抄错,但是会在没抄完一整组之后又开始抄下一组了。

需要说明的是:
1)COM1读IMU并不存在误码,从波形上看也没有毛刺,总之很完美,但COM1和COM2用的读写模块都是serial FIFO,设置上基本差不多,而且COM2已经把可调的选项都调了个遍也见好转。COM1和COM2调换了试验效果不变。
2)已经通过数据存储分析验证了,模型计算出来的数和字头的安排是没有问题的,即在serialFIFO模块之前的数据是没有错误的。
3)将DSP上的功能全部移到PC机上得新和串口连接尝试,效果相同,证明应该不是DSP端影响了数据的发送和接收。
4)串口线经过实验验证也没有问题。

百思不得其解,我怀疑的地方有两个,一是xPC下的serial FIFO模块的发送和接收能力不给力,另一是目标机主板上的串口不给力。
对于前者,我觉得可能性不大,我用的是matlab2011b,xPC已经到5.x版了,不可能连串口的收发都搞不定;对于后者,我实在是不知道主板上的串口有什么特别的讲究。

以前在RTW下也做过串口收发,没出过这么大的误码率,或者说根本就没误码,不知道为什么转到XPC之后就有这么大的问题。

相关帖子

沙发
无冕之王| | 2012-1-29 19:38 | 只看该作者
降低波特率试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

193

主题

2354

帖子

0

粉丝