同步和异步的区别.doc_第1页
同步和异步的区别.doc_第2页
同步和异步的区别.doc_第3页
同步和异步的区别.doc_第4页
同步和异步的区别.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

同步和异步的区别集锦 通俗版:举个例子:普通B/S模式(同步)AJAX技术(异步)同步:提交请求-等待服务器处理-处理完毕返回 这个期间客户端浏览器不能干任何事异步: 请求通过事件触发-服务器处理(这是浏览器仍然可以作其他事情)-处理完毕-同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。 所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。-举个例子 打电话时同步 发消息是异步综述版:异步通信”是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。 异步通信也可以是以帧作为发送的单位。接收端必须随时做好接收帧的准备。这是,帧的首部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始。这也称为帧定界。帧定界还包含确定帧的结束位置。这有两种方法。一种是在帧的尾部设有某种特殊的比特组合来标志帧的结束。或者在帧首部中设有帧长度的字段。需要注意的是,在异步发送帧时,并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。在一帧中的所有比特是连续发送的。发送端不需要在发送一帧之前和接收端进行协调(不需要先进行比特同步)。 每个字符开始发送的时间可以是任意的t0 0 1 1 0 1 1 0起始位结束位t每个帧开始发送的时间可以是任意的以字符为单位发送以帧为单位发送帧开始帧结束 “同步通信”的通信双方必须先建立同步,即双方的时钟要调整到同一个频率。收发双方不停地发送和接收连续的同步比特流。但这时还有两种不同的同步方式。一种是使用全网同步,用一个非常精确的主时钟对全网所有结点上的时钟进行同步。另一种是使用准同步,各结点的时钟之间允许有微小的误差,然后采用其他措施实现同步传输。串口进行通信的方式有两种:同步通信方式和异步通信方式。同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高;异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送效率低。 具体 专业版:串行通信可以分为两种类型:同步通信、异步通信。1.异步通信的特点及信息帧格式: 以起止式异步协议为例,下图显示的是起止式一帧数据的格式: 图1 起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值),字符本身由5-7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下跳沿。从图中可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。 异步通信可以采用正逻辑或负逻辑,正负逻辑的表示如下表所示: 逻辑0逻辑1正逻辑低电平高电平负逻辑高电平低电平异步通信的信息格式如下边的表所示起始位逻辑01位数据位逻辑0或15位、6位、7位、8位校验位逻辑0或11位或无停止位逻辑11位,1.5位或2位空闲位逻辑1任意数量注:表中位数的本质含义是信号出现的时间,故可有分数位,如1.5。例:传送8位数据45H(0100,0101B),奇校验,1个停止位,则信号线上的波形象图2所示那样:异步通信的速率:若9600bps,每字符8位,1起始,1停止,无奇偶,则实际每字符传送10位,则960字符/秒。 图22.异步通信的接收过程接收端以“接收时钟”和“波特率因子”决定一位的时间长度。下面以波特率因子等于16(接收时钟每16个时钟周期,使接收移位寄存器移位一次)、正逻辑为例说明,如图3所示。图3(1)开始通信时,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对“接收时钟”计数。(2)当计到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是“起始位”B,而不是干扰信号。(3)接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据。若为逻辑1, 作为数据位1;若为逻辑0,作为数据位0。(4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据。.,直到全部数据位都输入。(5)检测校验位P(如果有的话)。(6)接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志。若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器。若校验错,在状态寄存器中置奇偶错标志。(7)本幀信息全部接收完,把线路上出现的高电平作为空闲位。(8)当信号再次变为低时,开始进入下一幀的检测。3、异步通信的发送过程发送端以“发送时钟”和“波特率因子”决定一位的时间长度。(1)当初始化后,或者没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。(2)当需要发送时,发送端首先输出逻辑0,作为起始位。(3)接着,发送端首先发送D0位,直到各数据位发送完。(4)如果需要的话,发送端输出校验位。(5)最后,发送端输出停止位(逻辑1)。(6)如果没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。如果还有信息需要发送,转入第(2)步。对于以上发送、接收过程应注意以下几点:(1)接收端总是在每个字符的头部(即起始位)进行一次重新定位,因此发送端可以在字符之间插入不等长的空闲位,不影响接收端的接收。(2)发送端的发送时钟和接收端的接收时钟,其频率允许有一定差异,当频率差异在一定范围内,不会引起接收端检测错位,能够正确接收。并且这种频率差异不会因多个字符的连续接收而造成误差累计(因为每个字符的开始(起始位处)接收方均重新定位)。只有当发送时钟和接收时钟频率差异太大,引起接收端采样错位,才造成接收错误。(3)起始位、校验位、停止位、空闲位的信号,由“发送移位寄存器”自动插入。在接收方,“接收移位寄存器”接收到一帧完整信息(起始、数据、校验、停止)后,仅把数据的各位送至“数据输入寄存器”,即CPU从“数据输入寄存器”中读得的信息,只是有效数字,不包含起始位、校验位、停止位信息。1、同步通信方式的特点:采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应58位。当然,对同一个传输过程,所有字符对应同样的数位,比如说n位。这样,传输时,按每n位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符。同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般将同步字符和空字符用同一个代码。在整个系统中,由一个统一的时钟控制发送端的发送和空字符用同一个代码。接收端当然是应该能识别同步字符的,当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理。 2、面向字符的同步协议(IBM的BSC协议)该协议规定了10个特殊字符(称为控制字符)作为信息传输的标志。其格式为SYN SOH 标题 STX 数据块 ETB/ETX 块校验SYN:同步字符(Synchronous character),每帧可加1个(单同步)或2个(双同步)同步字符。 SOH:标题开始(Start of Header)。标题:Header,包含源地址(发送方地址)、目的地址(接收方地址)、路由指示。STX:正文开始(Start of Text)。数据块:正文(Text),由多个字符组成。ETB:块传输结束(end of transmission block), 标识本数据块结束。ETX:全文结束(end of text),(全文分为若干块传输)。块校验:对从SOH开始,直到ETB/ETX字段的检验码。3、面向bit的同步协议(ISO的HDLC)一帧信息可以是任意位,用位组合标识帧的开始和结束。 帧格式为:F场 A场 C场 I场 FC场 F场F场:标志场;作为一帧的开始和结束,标志字符为8位,01111110。 A场:地址场,规定接收方地址,可为8的整倍位。接收方检查每个地址字节的第1位,如果为0,则后边跟着另一个地址字节。若为1,则该字节为最后一个地址字节。C场:控制场。指示信息场的类型,8位或16位。若第1字节的第1位为0,则还有第2个字节也是控制场。I场:信息场。要传送的数据。FC场:帧校验场。16位循环冗余校验码CRC。除F场和自动插入的0位外,均参加CRC计算。4、同步通信的0位插入和删除技术在同步通信中,一帧信息以一个(或几个)特殊字符开始,例如,F场=01111110B。但在信息帧的其他位置,完全可能出现这些特殊字符,为了避免接收方把这些特殊字符误认为帧的开始,发送方采用“0位插入技术,相应地,接收方采用0位删除技术。发送方的0位插入:除了起始字符外,当连续出现5个1时,发送方自动插入一个0。使得在整个信息帧中,只有起始字符含有连续的6个1。接收方的0位删除技术:接收方收到连续6个1,作为帧的起始,把连续出现5个1后的0自动删除。5、同步通信的字节填充技术设需要传送的原始信息帧为:SOT DATA EOT节填充技术采用字符替换方式,使信息帧的DATA中不出现起始字符SOT和结束字符EOT。 设按下表方式进行替换:DATA中的原字符 替换为SOTESC XEOT ESC YESC ESC Z 其中,ESC=1AH,X、Y、Z可指定为任意字符(除SOT、EOT、ESC外)。 发送方按约定方式对需要发送的原始帧进行替换,并把替换后的新的帧发送给接收方。例如图所示:接收方按约定方式进行相反替换,可以获得原始帧信息。6、异步通信和同步通信的比较(1)异步通信简单,双方时钟可允许一定误差。同步通信较复杂,双方时钟的允许误差较小。(2)异步通信只适用于点 点,同步通信可用于点 多。(3)通信效率:异步通信低,同步通信高。 同步与异步2007年11月22日 星期四 19:57在计算机领域里,同步与异步的概念实际上是相对的。任何传输总存在时间间隔,当然不可能做到完全同步。这里我们需要用相对的观念去理解。举个例子:普通B/S模式(同步)AJAX技术(异步) 同步:提交请求-等待服务器处理-处理完毕返回 这个期间客户端浏览器不能干任何事。 异步: 请求通过事件触发-服务器处理(这时浏览器仍然可以作其他事情)-处理完毕。 再举一例:打电话时是同步,发消息是异步。如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。概括来讲,就是有两个数据源,最初它们的数据都是一样的。若一个数据源的数据经过添加、修改、删除等操作发生了改变(或者两个数据源的数据都发生了改变),那么为了使两个数据源的数据保持一致,即让一个数据源数据的改变反映到另一个上,就必须进行一个让两个数据源的数据保持一致的操作,这个操作就叫“同步”。同步操作结束之后,两个设备上的数据就完全一致了,处于“同步”状态。 一般来讲,两个数据源中,一个是服务器端,一个是客户端。服务器端由于其计算功能和处理功能强大,在同步过程中要比客户端做更多的计算和处理工作。 举例说明,在电脑的Outlook里面存储了很多联系人,另外在手机里面也存储了很多联系人,那么如何使Outlook里面的联系人和手机里面的联系人保持一致呢?这时候就可以通过“同步”来实现这个目的。此处由于电脑相对手机来说,计算功能和处理功能强大,因此我们将PC当作服务器端,手机当作客户端。服务器端(电脑的Outlook)和客户端(手机)第一次同步时,将进行“慢同步”,其过程如下:客户端发出自己的全部联系人给服务器端,服务器将收到的所有联系人同自己的联系人进行比较和分析。分析结束以后,服务器向客户端发出客户端没有的联系人,这样客户端就有了服务器端有而同步之前自己没有的联系人,而服务器端也将客户端有的而同步之前自己没有的联系人增加进来,这样同步结束之后,两个设备上的联系人信息就完全一致了,处于“同步”状态。 现在Outlook和手机上的联系人信息完全一致,比如各自都有10个客户的联系方式。用户外出时携带手机,在办公室则使用PC的Outlook。某一天,用户在外出中对手机上的客户1和客户4的信息进行了修改,返回公司后,又对PC上Outlook的客户2和客户8的信息作了修改,一天工作下来,用户想保持手机和PC上Outlook的客户的联系方式的一致,这个时候只需要执行“自动同步”操作就可达到该目的。手机只需要把修改过的客户信息(客户1和客户4)发给Outlook,Outlook只需要将修改过的客户信息(客户2和客户8)发给手机,然后各自进行相应的修改就可以了。这种方式之所以叫做“自动同步”是因为它不像“慢同步”那样需要把所有的信息发送给对方,而只需要将自上次同步以来修改的信息发送给对方就可以了。 如果自上次同步以来,用户对手机和Outlook里面的同一个联系人做了不同更改,那么同步的时候,就会出现冲突,那么如何处理呢。在同步以前,用户可以预先选择冲突处理策略来解决冲突。详情请查看: 冲突处理策略。 如果自上次同步以来,由于长时间没有同步或者短时间内某个数据源的数据修改较多导致“修改日志”溢出,那么下一次同步软件就会自动采用“慢同步”。 如果用户不小心删除了A数据源上的全部数据,并希望通过和B数据源的同步来恢复数据的话,用户需要选择“慢同步”,否则可能导致B数据源的部分数据也被删除的后果。因为在满足“自动同步”的条件下,软件就会错认为用户是希望删除B数据源的对应数据。 因此保险的做法是用户先对B数据源的数据进行备份,然后再同步,如果真的出现了B数据源的对应数据被删除的情况,还可以将备份的数据导入B数据源,然后选择“慢同步”来和A数据源同步。 所以平时用户需要注意对各个数据源的数据进行备份,一旦发生了上述情况,还可以恢复数据。 手机和Outlook可以同步联系人,也可以同步日程。 另外手机除了能和Outlook同步外,还可以和Outlook Express,Notes同步。关于时钟问题的探讨 作者:未知 无沦是用离散逻辑、可编程逻辑,还是用全定制硅器件实现的任何数字设计,为了成功地操作,可靠的时钟是非常关键的。设计不良的时钟在极限的温度、电压或制造工艺的偏差情况下将导致错误的行为,并且调试困难、花销很大。 在设计pld/fpga时通常采用几种时钟类型。时钟可分为如下四种类型:全局时钟、门控时钟、多级逻辑时钟和波动式时钟。多时钟系统能够包括上述四种时钟类型的任意组合。 1全局时钟 对于一个设计项目来说,全局时钟(或同步时钟)是最简单和最可预测的时钟。在pld/fpga设计中最好的时钟方案是:由专用的全局时钟输入引脚驱动的单个主时钟去钟控设计项目中的每一个触发器。只要可能就应尽量在设计项目中采用全局时钟。pld/fpga都具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。这种全局时钟提供器件中最短的时钟到输出的延时。 图1 示出全局时钟的实例。图1 定时波形示出触发器的数据输入d1.3应遵守建立时间和保持时间的约束条件。建立和保持时间的数值在pld数据手册中给出,也可用软件的定时分析器计算出来。如果在应用中不能满足建立和保持时间的要求,则必须用时钟同步输入信号(参看下一章“异步输入”)。 图1 全局时钟 (最好的方法是用全局时钟引脚去钟控pld内的每一个寄存器,于是数据只要遵守相对时钟的建立时间tsu和保持时间th) 2门控时钟 在许多应用中,整个设计项目都采用外部的全局时钟是不可能或不实际的。pld具有乘积项逻辑阵列时钟(即时钟是由逻辑产生的),允许任意函数单独地钟控各个触发器。然而,当你用阵列时钟时,应仔细地分析时钟函数,以避免毛刺。 通常用阵列时钟构成门控时钟。门控时钟常常同微处理器接口有关,用地址线去控制写脉冲。然而,每当用组合函数钟控触发器时,通常都存在着门控时钟。如果符合下述条件,门控时钟可以象全局时钟一样可靠地工作: 1.驱动时钟的逻辑必须只包含一个“与”门或一个“或”门。如果采用任何附加逻在某些工作状态下,会出现竞争产生的毛刺。 2.逻辑门的一个输入作为实际的时钟,而该逻辑门的所有其它输入必须当成地址或控制线,它们遵守相对于时钟的建立和保持时间的约束。 图2和图3 是可靠的门控时钟的实例。在 图2 中,用一个“与”门产生门控时钟,在 图3 中,用一个“或”门产生门控时钟。在这两个实例中,引脚nwr和nwe考虑为时钟引脚,引脚addo3是地址引脚,两个触发器的数据是信号d1.n经随机逻辑产生的。 图2 “与”门门控时钟 图3 “或”门门控时钟 图2和图3 的波形图显示出有关的建立时间和保持时间的要求。这两个设计项目的地址线必须在时钟保持有效的整个期间内保持稳定(nwr和nwe是低电平有效)。如果地址线在规定的时间内未保持稳定,则在时钟上会出现毛刺,造成触发器发生错误的状态变化。另一方面,数据引脚d1n只要求在nwr和nwe的有效边沿处满足标准的建立和保持时间的规定。 我们往往可以将门控时钟转换成全局时钟以改善设计项目的可靠性。图4 示出如何用全局时钟重新设计 图2 的电路。地址线在控制d触发器的使能输入,许多pld设计软件,如max+plusii软件都提供这种带使能端的d触发器。当ena为高电平时,d输入端的值被钟控到触发器中:当ena为低电平时,维持现在的状态。 图4 “与”门门控时钟转化成全局时钟 图4 中重新设计的电路的定时波形表明地址线不需要在nwr有效的整个期间内保持稳定;而只要求它们和数据引脚一样符合同样的建立和保持时间,这样对地址线的要求就少很多。 图 给出一个不可靠的门控时钟的例子。3位同步加法计数器的rco输出用来钟控触发器。然而,计数器给出的多个输入起到时钟的作用,这违反了可靠门控时钟所需的条件之一。在产生rco信号的触发器中,没有一个能考虑为实际的时钟线,这是因为所有触发器在几乎相同的时刻发生翻转。而我们并不能保证在pld/fpga内部qa,qb,qc到d触发器的布线长短一致,因此,如 图5 的时间波形所示,在器从3计到4时,rco线上会出现毛刺(假设qc到d触发器的路径较短,即qc的输出先翻转)。 图5 不可靠的门控时钟 (定时波形示出在计数器从3到4改变时,rco信号如何出现毛刺的) 图6 给出一种可靠的全局钟控的电路,它是图5不可靠计数器电路的改进,rco控制d触发器的使能输入。这个改进不需要增加pld的逻辑单元。 图6 不可靠的门控时钟转换为全局时钟 (这个电路等效于图5电路,但却可靠的多) 3多级逻辑时钟 当产生门控时钟的组合逻辑超过一级(即超过单个的“与”门或“或”门)时,证设计项目的可靠性变得很困难。即使样机或仿真结果没有显示出静态险象,但实际上仍然可能存在着危险。通常,我们不应该用多级组合逻辑去钟控pld设计中的触发器。 图7 给出一个含有险象的多级时钟的例子。时钟是由sel引脚控制的多路选择器输出的。多路选择器的输入是时钟(clk)和该时钟的2分频(div2)。由图7 的定时波形图看出,在两个时钟均为逻辑1的情况下,当sel线的状态改变时,存在静态险象。险象的程度取决于工作的条件。 多级逻辑的险象是可以去除的。例如,你可以插入“冗余逻辑”到设计项目中。然而,pld/fpga编译器在逻辑综合时会去掉这些冗余逻辑,使得验证险象是否真正被去除变得困难了。为此,必须应寻求其它方法来实现电路的功能。 图7 有静态险象的多级时钟 图8 给出 图7 电路的一种单级时钟的替代方案。图中sel引脚和div2信号用于使能d触发器的使能输入端,而不是用于该触发器的时钟引脚。采用这个电路并不需要附加pld的逻辑单元,工作却可靠多了。 不同的系统需要采用不同的方法去除多级时钟,并没有固定的模式。 图7 无静态险象的多级时钟 (这个电路逻辑上等效于图7,但却可靠的多) 4行波时钟 另一种流行的时钟电路是采用行波时钟,即一个触发器的输出用作另一个触发器的时钟输入。如果仔细地设计,行波时钟可以象全局时钟一样地可靠工作。然而,行波时钟使得与电路有关的定时计算变得很复杂。行波时钟在行波链上各触发器的时钟之间产生较大的时间偏移,并且会超出最坏情况下的建立时间、保持时间和电路中时钟到输出的延时,使系统的实际速度下降。 用计数翻转型触发器构成异步计数器时常采用行波时钟,一个触发器的输出钟控下一个触发器的输入,参看图9 同步计数器通常是代替异步计数器的更好方案,这是因为两者需要同样多的宏单元而同步计数器有较快的时钟到输出的时间。图10 给出具有全局时钟的同步计数器,它和 图9 功能相同,用了同样多的逻辑单元实现,却有较快的时钟到输出的时间。几乎所有pld开发软件都提供多种多样的同步计数器。 图9 行波时钟 图10 行波时钟转换成全局时钟 (这个3位计数器是图9异步计数器的替代电路,它用了同样的3个宏单元,但有更短的时钟到输出的延时) 5. 多时钟系统 许多系统要求在同一个pld内采用多时钟。最常见的例子是两个异步微处理器器之间的接口,或微处理器和异步通信通道的接口。由于两个时钟信号之间要求一定的建立和保持时间,所以,上述应用引进了附加的定时约束条件。它们也会要求将某些异步信号同步化。 图11 给出一个多时钟系统的实例。clk_a用以钟控reg_a,clk_b用于钟控reg_b,由于reg_a驱动着进入reg_b的组合逻辑,故clk_a的上升沿相对于clk_b的上升沿有建立时间和保持时间的要求。由于reg_b不驱动馈到reg_a的逻辑,clk_b的上升沿相对于clk_a没有建立时间的要求。此外,由于时钟的下降沿不影响触发器的状态,所以clk_a和clk_b的下降沿之间没有时间上的要求。, 如图4,2ii所示,电路中有两个独立的时钟,可是,在它们之间的建立时间和保持时间的要求是不能保证的。在这种情况下,必须将电路同步化。图12 给出reg_a的值(如何在使用前)同clk_b同步化。新的触发器reg_c由glk_b触控,保证reg_g的输出符合reg_b的建立时间。然而,这个方法使输出延时了一个时钟周期。 图ll 多时钟系统 (定时波形示出clk_a的上升沿相对于clk_b的上升沿有建立时间和保持时间的约束条件) 图12 具有同步寄存器输出的多时钟系统 (如果clk_a和clk_b是相互独立的,则rega的输出必须在它馈送到1reg_b之前,用reg_c同步化) 在许多应用中只将异步信号同步化还是不够的,当系统中有两个或两个以上非同源时钟的时候,数据的建立和保持时间很难得到保证,我们将面临复杂的时间问题。最好的方法是将所有非同源时钟同步化。使用pld内部的锁项环(pll或dll)是一个效果很好的方法,但不是所有pld都带有pll、dll,而且带有pll功能的芯片大多价格昂贵,所以除非有特殊要求,一般场合可以不使用带pll的pld。 这时我们需要使用带使能端的d触发器,并引入一个高频时钟。 图13 不同源时钟 如图13所示,系统有两个不同源时钟,一个为3mhz,一个为5mhz,不同的触发器使用不同的时钟。为了系统稳定,我们引入一个20mhz时钟,将3m和5m时钟同步化,如图15所示。 20m的高频时钟将作为系统时钟,输入到所有触发器的的时钟端。3m_en 和5m_en将控制所有触发器的使能端。即原来接3m时钟的触发器,接20m时钟,同时3m_en 将控制该触发器使能 ,原接5m时钟的触发器,也接20m时钟,同时5m_en 将控制该触发器使能。 这样我们就可以将任何非同源时钟同步化。 图13 同步化任意非同源时钟 (一个dff和后面非门,与门构成时钟上升沿检测电路) (转)异步与同步通信 同步就像打电话,异步就像发信息。异步与同步通信 异步通信”是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。 异步通信也可以是以帧作为发送的单位。接收端必须随时做好接收帧的准备。这是,帧的首部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始。这也称为帧定界。帧定界还包含确定帧的结束位置。这有两种方法。一种是在帧的尾部设有某种特殊的比特组合来标志帧的结束。或者在帧首部中设有帧长度的字段。需要注意的是,在异步发送帧时,并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。在一帧中的所有比特是连续发送的。发送端不需要在发送一帧之前和接收端进行协调(不需要先进行比特同步)。每个字符开始发送的时间可以是任意的t0 0 1 1 0 1 1 0起始位结束位t每个帧开始发送的时间可以是任意的以字符为单位发送以帧为单位发送帧开始帧结束 “同步通信”的通信双方必须先建立同步,即双方的时钟要调整到同一个频率。收发双方不停地发送和接收连续的同步比特流。但这时还有两种不同的同步方式。一种是使用全网同步,用一个非常精确的主时钟对全网所有结点上的时钟进行同步。另一种是使用准同步,各结点的时钟之间允许有微小的误差,然后采用其他措施实现同步传输.同步通信以多字节组成的数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论