单片机与pc机之间进行通信用同步方式和用异步方式有什么区别

如题所述

异步通信(UART)指两个互不同步的设备通过计时机制或其他技术进行数据传输。异步通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。基本上,发送方可以随时传输数据,而接收方必须在信息到达时准备好接收。相反,同步传输是一个精确同步的位流,其中字符的起始是由计时机制来定位的。
异步通信中,数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。
通信协议(通信规程):使用异步串口传送一个字符的信息时,对资料格式有如下约定:规定有空闲位、起始位、资料位、奇偶校验位、停止位。
同步通信(SPI)是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。
没有数据发送时,传输线处于MARK状态。为了表示数据传输的开始,发送方先发送一个或两个特殊字符,该字符称为同步字符。当发送方和接收方达到同步后,就可以一个字符接一个字符地发送一大块数据,而不再需要用起始位和停止位了,这样可以明显地提高数据的传输速率。
采用同步方式传送数据时,在发送过程中,收发双方还必须用一个时钟进行协调,用于确定串行传输中每一位的位置。接收数据时,接收方可利用同步字符使内部时钟与发送方保持同步,然后将同步字符后面的数据逐位移入,并转换成并行格式,供CPU读取,直至收到结束符为止。
采用同步通信时,将许多字符组成一个信息组,每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。收发双方不停地发送和接收连续的同步比特流。
不知道你理解了没有,欢迎追问~

同步通信是把所传送的数据以多个字节(100字节以上)为单位,在其前后添加标志。|同步字符|信息组|错误校验| 同步字符一般为1~2个,错误校验一般为CRC冗余校验。追问

那同步方式和异步方式有什么优缺点,对于单片机和PC机之间进行通信,哪种更好呢,下午我做实验,用同步发控制舵机的一个序列总是失控,换成异步后目前还没出现那种情况,请问这是什么原因啊,还有就是同步读和异步读哪个更耗时呢

追答

异步通信:
优点:不需要传送同步脉冲,字符帧长度也不受到限制。
缺点:字符帧中因为包含了起始位和停止位,因此降低了有效数据的传输速率。
同步通信就是相反啦。
相比之下,异步通信简单,双方时钟可允许一定误差。同步通信较复杂,双方时钟的允许误差较小。因为我不知道你当时的情况,所以猜想,我觉得你的问题可能就是时钟没有完全同步吧,误差可能略大。
但是从通信效率来讲,异步通信低,而同步通信高。

追问

那后边那个问题,同步读和异步读耗时上差别大吗,我用clock()时钟测了一下,同步读耗时>=100ms,异步读耗时1ms左右,这是怎么回事啊,会有这么大差距吗

追答

这个我的确没仔细研究过。不过我认为即使效率上有差距也不会时间相差这么久。唯一的解释还是因为同步时钟质量较差,导致的数据误传输或同步失败吧。

追问

单片机是不是大部分只支持异步通信啊

追答

不是的,比如430单片机也支持SPI,但是采用的比较多的是异步通信。因为单片机所工作的环境并不理想。包括噪声、指令执行时间、中断等因素都可能影响同步传输的效率。加之异步通信效率也不比同步差太多,切可随时收发,所以UART采用的比较多。

追问

那PC机呢,一般支持同步还是异步,还是两个都支持

追答

自然都支持,但是一般需要安装或者自己编写相应的软件。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-18
同步好像是使用8255异步通信好像max232
第2个回答  2011-11-18
yibukeyi waibujinxinfkongzhi追问

那同步方式和异步方式有什么优缺点,对于单片机和PC机之间进行通信,哪种更好呢,下午我做实验,用同步发控制舵机的一个序列总是失控,换成异步后目前还没出现那种情况,请问这是什么原因啊,还有就是同步读和异步读哪个更耗时呢

相似回答