串口通信原理

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

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

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

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

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

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

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

时间: 2024-10-10 19:11:40

串口通信原理的相关文章

13.5 串口通信原理和控制程序

我们前边学串口通信的时候,比较注重的是串口底层时序上的操作过程,所以例程都是简单的收发字符或者字符串.在实际应用中,往往串口还要和电脑上的上位机软件进行交互,实现电脑软件发送不同的指令,单片机对应执行不同操作的功能,这就要求我们组织一个比较合理的通信机制和逻辑关系,用来实现我们想要的结果. 本节所提供程序的功能是,通过电脑串口调试助手下发三个不同的命令,第一条指令:buzz on 可以让蜂鸣器响:第二条指令:buzz off 可以让蜂鸣器不响:第三条指令:showstr ,这个命令空格后边,可以

单片机串口通信原理及原理图

转:http://bbs.elecfans.com/forum.php?mod=viewthread&tid=206905  串口通信的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据.它很简单并且能够实现远距离通信.比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米:而对于串口而言,长度可达1200米.典型地,串口用于ASCII码字符的传输.通信使

【C51】UART串口通信

我们常需要单片机和其他模块进行通信,数据传输,常用的方式就是串口通信技术. 常用来 单片机<-->电脑,  单片机<-->单片机之间通信. 串行通信 versus 并行通信 并行传输:将字节的各个 bit 用多条传输线路同时发送出去.每个bit使用一条线路. 优点:速度相对快,控制简单. 缺点:控制线路多,耗费的硬件资源多. 串行传输:将一个字节的数据的各个 bit 在一条线路上 分时发送.一个字节8位,则至少需要分8次发送完. 优点:需要的线路少,成本低. 缺点:控制复杂,因为它

VC++串口通信编程详解

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

RS-232通信原理

rs232串口通信原理 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆).大多数计算机包含两个基于RS232的串口.串口同时也是仪器仪表设备通用的通信协议:很多GPIB兼容的设备也带有RS-232口.同时,串口通信协议也可以用于获取远程采集设备的数据. 串口通信的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据.它很简单并且能够实现远距

C#实现简单的串口通信

前言 本着学习研究的态度,用c#语言实现简单的串口通信工具. 一.串口通信原理 串口通信 串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据.它很简单并且能够实现远距离通信.由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据.其他线用于握手,但不是必须的.串口通信最重要的参数是波特率.数据位.停止位和奇偶校验.对于两个进行通信的

PC软件与PLC串口通信 奇偶检验问题

PC软件与PLC进行串口通信 波特率:19200 校验位:偶检验 数据位:8 停止位:1 现象 一,PC软件向PLC可以发送1,2,4,5,7,8,但是3,6,9发送出去后,PLC无法收到 二,使用虚拟串口,PC软件与串口调试助手可以正常通信 原因 PC软件中,校验位按照Mark(奇偶校验位始终1)位填充. 即,在上述的环境中,PC软件用的是奇偶校验位1发送,PLC使用偶数检验接收,所以根据奇偶检验的原理,可以解释3,6,9无法接收的现象了. 奇偶检验原理 奇校验:就是让原有数据序列中(包括你要

【转】RS232串口通信详解

串口是计算机上一种非常通用的设备通信协议. --------------------------------- 串口的引脚定义: 9芯 信号方向来自 缩写 描述 1 调制解调器 CD 载波检测 2 调制解调器 RXD 接收数据 3 PC TXD 发送数据 4 PC DTR 数据终端准备好 5   GND 信号地 6 调制解调器 DSR 通讯设备准备好 7 PC RTS 请求发送 8 调制解调器 CTS 允许发送 9 调制解调器 RI 响铃指示器 两个串口连接时,接收数据针脚与发送数据针脚相连,彼

串口通信到底是属于哪一层?

正确答案,串口通信包含了物理层(物理链路传输,串口线).数据链路层(成帧,起始位.数据位.校验位.结束位).应用层(应用数据的打包由串口编程自己制定)三方面的功能. 串口和以太网的关系:是两种通信方式,实现原理以及应用场景都不相同. 串口转以太口: 串口转以太网并不是简单传输媒介的变化,而是串口到TCP/IP的协议转化.其中关系到的关键技术包括:TCP/IP的工作模式问题.串口分帧技术.9位技术. 串口一般来说就是UART,它实际只定义了数据链路层的规范,也就是起始位.数据位.停止位.但是在不同