原创 串口通信测试的一个小技巧

2010-4-12 18:02 7669 6 6 分类: MCU/ 嵌入式

一、串口通信测试的一个小技巧<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


1、工具


1Virtual Serial Port Driver,这是我网上下的一个虚拟串口产生工具。它每次可以在电脑上生产一对相互连通的虚拟串口


其操作如下图所示:


 点击看大图


点击 Add Pair,就可以新增一对串口,这对串口所表现出来的特性跟真实的串口差不多,只是每次在对串口2写入数据的时候,总是发送到串口3。而写入串口3的时候,串口2就会收到数据。这样一对串口,就跟两台PC串口直接连通一样。


2超级终端:可以对串口进行终端操作。


3串口调试器:可以监视串口所收到的所有数据。特别是能够十六进制显示,改善了超级终端特殊字符不能显示的缺点。


 


2、利用虚拟串口调试Ymodem协议


1首先利用Virtual Serial Port Driver在串口上生产了一对串口COM2COM3,我电脑上有一个物理串口COM1。在设备管理器中也可以看到这对串口。如下图所示;


 点击看大图


 


2用超级终端打开串口2,设置波特率96008位数据,1位停止,无校验,无流控。设置这么低的速度主要是防止操作时超时情况的出现。


 


3用串口调试器打开串口3,设置与超级终端的一致。


 


4)在超级终端选择发送文件选项,选择“一个小的txt文档”,“Ymodem协议”,点击发送。这个文本文档名为“abc.txt”,共20个字节,内容是1234567890换行abcdefghij


 点击看大图


 

5)在串口调试器的十六进制输入模式下输入“43”,点击发送实际发出去一个大写“C”,马上收到了超级终端送来的数据,如下图所示:


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


09d41a77-8ef0-460c-af0a-c01309582301.jpg


 


01”表示“SOH”,一个128字节的数据包,00”表示报的序号,“FF”是补码校验。61-74”这段是文件名“abc.txt32 32”表明文件的长度是“22”个字节,我的文件可见字符是20个,但是有一个换行符存在,根据windows的规则,该位置会存入“0D <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />0A”,表示“\r\n”回车换行。“32 16”表示这128字节的校验。


 


6)串口调试器下,再次输入“6”,它就是“ACK”,然后再发一个大写字母C43”,就会收到超级终端送来的第2个数据包,如下图所示:


4a3f5517-4c6a-4545-ad8e-845512b2293c.jpg


 


01”表示“SOH”后面的“01”表示第一个数据包,“FE”是包序号的补码校验。接下来“31 – 39 30表示数字,“0D 0A”表示换行,“61-6A”表示字母“从ai”,后面“1A”是DOS系统里面文件结束符填充87 BA”是该数据包的“CRC校验”。


 


7串口调试器输入“6”表示“ACK”,然后,超级终端发来一个字符“04”,这个是Ymodem协议中的“EOT,表明超级终端文件已经传输完,需要结束本次传输。串口调试器发一个“ACK”,再发一个“C”,开启新的传输,但是超级终端只有一个文件,所以接下来超级终端发了一个空的数据包调试器输入“6”再次“ACK”,超级终端传输界面退出,表示文件传输完成。整个过程如下图所示:


0cec2681-75a2-464f-b7cb-9d7a5c5a24de.jpg


 


04”表示“EOT”,01”表示“SOH”,00”是新的一组数据包开始。最后两个“00 00”表示空数据包的“CRC校验值”中间正好128个字节。


 


8如果超级终端选择取消传输文件,则在超级终端里能够看到六个“18 18 18 18 18 18表明取消传输文件时,超级终端连发了六个“CANCEL”字符。


 


9同时我意外发现了,如果串口调试器发送“3”,会远程取消文件传输操作,这是在我看到的Ymodem协议里没有见过的。


再次测试,这“3”在第一次发“C”之前,和第二次发“C”之前是有效地,在文件传输过程中无效。


 


10)观察接收方“NAK的情况。


1816ffbc-a58a-4422-800c-5dea7de7196f.jpg


 


由图可以看出,调试器向终端发送“15”,也就是“NAK”的时候,超级终端重发了数据。


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /3 下一条