串口通信原理

本文通过一次实际工作中的问题解决过程,详细解析了串口通信的基本原理。通过生动的比喻,阐述了通信双方如何确保数据的正确传输,包括开启通信通道、发送与接收数据的时机协调等关键步骤。

转:http://www.cnblogs.com/genli/articles/1988459.html

今天被经理狠批了一顿,事后仔细想了想,是自己的原因,是自己太笨了,不能怪领导的。

  主要起因是串口通信的问题,我们做测试,需要上位机和下位机以及测试仪器通信。通信的底层函数是经理写的,而且已经封装在dll文件中,我们看不见,只能进行调用。于是问题出现了,从PC机向测试仪器发送命令没有问题,但是从测试仪器返回到PC机上却得到的不符。和同事讨论研究了半天,一开始认为是接收时间的问题,后来经过调试发现不是这个问题,最后我们认为是经理的函数的不稳定,于是请教经理。

  领导就是领导,过来看下问题,想了一会,告诉我们将打开串口的函数放在初始化再进行调试。测试了很久也没有发现问题。最后经理给我们讲了一下串口通信原理,并且狠狠的批了一通,

  总结来看串口通信原理,(也可以说大多数通信原理也是如此)。通信首先要有个通信,可以简单的把通信看成一个小桶,发送方住水桶里装水,接收方从水桶中取水。如果你要和对方通信首先需要将桶盖打开,再将水装入到桶中,这时接收方才能够从桶中取到水。这里就存在着一定的问题,1,如果桶盖还没有打开,发送方已经发送了。这时接收方再从桶中取水,肯定取的水不对,会不一部分缺失了。解决方式就是让桶盖打开再往其中加水。2,但是桶盖何时打开,发送方何时发送,这个不好把握。解决方法:接收方接到数据时,要返回一个应答标志,告诉发送方我已经取到数据了,而且是取得到正确数据才应答,否则不理会,继续取数据。或者一直查询,直到与发送方发来的数据一致再停止取数据。

  一般的,进行串口通信总有一个是主动方一个是被动方,而且二者传输数据时,会有一定的协商好的数据格式,二者发送接收都按照此数据格式进行。

真的应该感谢经理,他的一能指教,用如此形象的比喻把串口通信原理就讲明白了,感觉受益不小。也解决了困惑很久的东西。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值