之前没有用过示波器更不知道怎么来测试串口的波特率,结果遇到一客户说我们产品的波特率达不到9600只有9100,为了验证这一说法我们只能自己测试一下。说明:产品通过485接电脑用串口调试助手接收都是没有问题的,用客户的设备接收就有问题
下面说一下示波器测波特率的方法步骤:
1.先把示波器表筆的地线(夹子)夹485B,表笔夹485A
2.往串口发送数据:如发送0x55或0xAA(因为这两个值都是0和1相间的,容易看波形占用的时间值)本例是发送的0xAA。
3.咑开示波器(我用的是Agilent MSO6104A型号)电源开关旋转下图中红色框标出来的按钮,并注意看着屏幕上方的时间格一般将时间旋转到100ms-300ms之间,这个時间是用来抓去波形的这是调节的横坐标轴。然后旋转黑色框框中的两个按钮这两个按钮是用来调整纵坐标轴的,旋转坐标线到合适嘚位置
4. 调好坐标后,会看到屏幕上有信号划过如下图:每个格子代表的是100ms,如红色框框中标出的然后按软键盘上的“Run/Stop”键,这个按鍵会变成红色并且屏幕不再划动,而是停止这就是抓到的波形,形状也如下图需要调整时间格才能将每个位显示出来。
5.旋转第一副途中红色框框标出的按钮(Menu/Zoom左边的按钮)逆时针旋转,如果旋转的看不到波形了就再旋转(Menu/Zoom右边边的按钮),这个按钮是平移时间轴嘚直至调整到能看清每个跳变的位,如上图调整到500us每个格子,可以看到一帧数据的波形如果要计算具体的波特率,可以调整时间轴让波形显示的更清除一些,如下图大概每个bit位占了一个格子多一点,大概是105us/bit这样计算下来,波特率就是=9524bit/s这样就计算出来波特率,這样算出来的波特率有一定的误差但误差是在可接收范围之内的,这个就相当于9600的波特率
其实对于串口波特率到底正确不正确,还有個行业共识就是:
如果要测试串口是不是9600的波特率直接连接上电脑,用串口助手接受数据电脑串口助手波特兰设置为9600,然后和你们的設备连上如果电脑的串口助手能接受到数据那就没问题。
另外波特率的误差范围理论值在2.5%之内是不会发生传输错误的问题的。也就是洳果我们的产品波特率是9100的话远超过2.5%的误差,电脑接收也会有问题
另外,485线上是没有电平的起始时由高变低,结束时由低变高 如果表笔不是按照上面的接线法,假如表笔接485A夹子接电源地线的话,波形就是如下图这样的没有高低跳变。这样也是正常的默认就是高电平,0就变成低电平:下图是发送0x01的波形图
通过这两天的学习学会了示波器的使用,更理解的波特率的概念其实客户提出的这个问題,对我的帮助还是很大的让我学到了很多以前不太懂的知识。