这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 东师科技爱好者 » 单片机总线技术学习经验汇总(SPI,I2C,I2S,1-Wire,Wishbon

共20条 1/2 1 2 跳转至

单片机总线技术学习经验汇总(SPI,I2C,I2S,1-Wire,Wishbone)

菜鸟
2016-12-14 22:50:02     打赏

说明,本文选自CSDN博客,原作者:ce123

如何学习总线技术

以形象生动的比喻来描绘了总线技术的基本思想,指出了总线的基本分类和总线传输的基本原理,以及在学习过程中应当掌握的最基本的知识,对初学者有起到抛砖引入的作用。

0引言

如果一座只能容一个人来往的独木桥,两端的人都想要过桥,为了不拥挤、阻塞,那我们就得采取有效的办法。比如规定某段时间哪端的人过桥,另一端的人就等着该他过桥的时间段的到来,同时也还可以规定人多时要按先来后到或年龄长幼的次序过桥。在这不经意间,我们就体会到了现代电子信息数据通过总线按时分系统传输的最原始的思想。

现代网络信息的发展,特别是对于成本和空间而言,总线传输替代点对点传输是目前发展的热点,它的出现将给信息传输上提供了最大的方便和最有效的技术解决方案。假如一个微处理器与它的部件和外围设备都分别用点对点的线路来连接通讯,则所有连线将会错综复杂,甚至难以实现。

目前与我们生活习习相关的一系列活动都无不牵涉到总线技术的应用,如我们上英特网、给亲戚朋友打电话、用U盘来存储信息等。虽然流行的总线所采取的形式不同,但他们主要的原则性思想无非就是时分系统、频分系统、相分系统和码分系统等。常言道“兵来将挡,水来土淹”,面对种类繁多的总线,我们只有从基本原理出发,从骨子里去了解它的实质,而不要被它形式多样的外表所迷惑,才能熟练掌握和灵活运用眼下正在或将要用到的各种总线技术。

1总线的定义及分类1.1定义

总线,英文叫作“BUS”,即我们中文的“公共车”,这是非常形象的比如,公共车走的路线是一定的,我们任何人都可以坐公共车去该条公共车路线的任意一个站点。如果把我们人比作是电子信号,这就是为什么英文叫它为“BUS”而不是“CAR”的真正用意。当然,从专业上来说,总线是一种描述电子信号传输线路的结构形式,是一类信号线的集合,是子系统间传输信息的公共通道。通过总线能使整个系统内各部件之间的信息进行传输、交换、共享和逻辑控制等功能。如在计算机系统中,它是CPU、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过主机相连接,外部设备通过相应的接口电路再于总线相连接。

1.2分类

总线分类的方式有很多,如被分为外部和内部总线、系统总线和非系统总线等等,下面是几种最常用的分类方法。

1.2.1按功能分

最常见的是从功能上来对数据总线进行划分,可以分为地址总线(address bus)、数据总线(data bus)和控制总线(control bus)。在有的系统中,数据总线和地址总线可以在地址锁存器控制下被共享,也即复用。

地址总线是专门用来传送地址的。在设计过程中,见得最多的应该是从CPU地址总线来选用外部存储器的存储地址。地址总线的位数往往决定了存储器存储空间的大小,比如地址总线为16位,则其最大可存储空间为216(64KB)。

数据总线是用于传送数据信息,它又有单向传输和双向传输数据总线之分,双向传输数据总线通常采用双向三态形式的总线。数据总线的位数通常与微处理的字长相一致。例如Intel 8086微处理器字长16位,其数据总线宽度也是16位。在实际工作中,数据总线上传送的并不一定是完全意义上的数据。

控制总线是用于传送控制信号和时序信号。如有时微处理器对外部存储器进行操作时要先通过控制总线发出读/写信号、片选信号和读入中断响应信号等。控制总线一般是双向的,其传送方向由具体控制信号而定,其位数也要根据系统的实际控制需要而定。

1.2.2按传输方式分

按照数据传输的方式划分,总线可以被分为串行总线和并行总线。从原理来看,并行传输方式其实优于串行传输方式,但其成本上会有所增加。通俗地讲,并行传输的通路犹如一条多车道公路,而串行传输则是只允许一辆汽车通过单线公路。目前常见的串行总线有SPI、I2C、USB、IEEE1394、RS232、CAN等;而并行总线相对来说种类要少,常见的如IEEE1284、ISA、PCI等。

1.2.3按时钟信号方式分

按照时钟信号是否独立,可以分为同步总线和异步总线。同步总线的时钟信号独立于数据,也就是说要用一根单独的线来作为时钟信号线;而异步总线的时钟信号是从数据中提取出来的,通常利用数据信号的边沿来作为时钟同步信号。

2总线传输基本原理

依据前面对总线的定义可知总线的基本作用就是用来传输信号,为了各子系统的信息能有效及时的被传送,为了不至于彼此间的信号相互干扰和避免物理空间上过于拥挤,其最好的办法就是采用多路复用技术,也就是说总线传输的基本原理就是多路复用技术。所谓多路复用就是指多个用户共享公用信道的一种机制,目前最常见的主要有时分多路复用、频分多路复用和码分多路复用等。

2.1时分多路复用(TDMA)

时分复用是将信道按时间加以分割成多个时间段,不同来源的信号会要求在不同的时间段内得到响应,彼此信号的传输时间在时间坐标轴上是不会重叠。

2.2频分多路复用(FDMA)

频分复用就是把信道的可用频带划分成若干互不交叠的频段,每路信号经过频率调制后的频谱占用其中的一个频段,以此来实现多路不同频率的信号在同一信道中传输。而当接收端接收到信号后将采用适当的带通滤波器和频率解调器等来恢复原来的信号。

2.3码分多路复用(CDMA)

码分多路复用是所被传输的信号都会有各自特定的标识码或地址码,接收端将会根据不同的标识码或地址码来区分公共信道上的传输信息,只有标识码或地址码完全一致的情况下传输信息才会被接收。

3总线的通信协议

对于总线的学习,了解其通讯协议是整个过程中最关键的一步,所有介绍总线技术的资料都会花很大的篇幅来描述其协议,特别是ISO/OSI的那七层定义。其实要了解一种总线的协议,最主要的就是去了解总线的帧数据每一位所代表的特性和意义,总线各节点间有效数据的收发都是通过各节点对帧数据位或段的判断和确信来得以实现。

如图1所示是常见的I2C总线上传输的一字节数据的数据帧,其总线形式是由数据线SDA和时钟SCL构成的双线制串行总线,并接在总线上的电路模块即可作为发送器(主机)又可作为接收器(从机)。帧数据中除了控制码(包括从机标识码和访问地址码)与数据码外还包括起始信号、结束信号和应答信号。

起始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。

控制码:用来选泽操作目标与对象,即接通需要控制的电路,确定控制的种类对象。在读期间,也即SCL时钟线处于时钟脉冲高电平时,SDA上的数据位不会跳变。

数据码:是主机向从机发送的具体的有用的数据(如对比度、亮度等)和信息。在读期间,SDA上的数据位不会跳变。

应答信号:接收方收到8bit数据后,向发送方发出特定的低电平。读/写的方向与其它数据位正好相反,也即是由从机写出该低电平,主机来读取该低电平。

结束信号:SCL为高电平时,SDA由低电平向高电平跳变表示数据帧传输结束。

当然不同的总线其数据位或段的定义肯定不同,但依据同样的原理可以更快的去了解它的协议的特性和特点。虽然其信息帧的大小不一,但具体的某一数据位或数据段都类似于本文所提及的I2C总线,会依据它的协议的要求来定义它所达标的意义和功能。

4主要技术指标

评价总线的主要技术指标是总线的带宽(即传输速率)、数据位的宽度(位宽)、工作频率和传输数据的可靠性、稳定性等。

4.1带宽(传输速率)、位宽和工作频率

总线的带宽指的是单位时间内总线上传送的数据量,即每钞传送MB的最大数据传输率。总线的位宽指的是总线能同时传送的二进制数据的位数,或数据总线的位数,即32位、64位等总线宽度的概念;总线的位宽越宽,数据传输速率越大,总线的带宽就越宽。总线的工作时钟频率以MHz为单位,它与传输的介质、信号的幅度大小和传输距离有关。在同样硬件条件下,我们采用差分信号传输时的频率常常会比单边信号高得多,这是因为差分信号的的幅度只有单边信号的一半而已。

总线的带宽、位宽和工作频率,这三者密切相关,它们之间的关系:

4.2传输数据的可靠性

可靠性是评定总线最关键的参数,没有可靠性,传输的数据都是错误的信息,便就失去了总线的实际意义。为了提高总线的可靠性,通常采用的措施有:

采用数据帧发送前发送器对总线进行侦听,只有侦听到总线处于空闲状态下时才可向总线传送数据帧,这样避免了不同节点的数据冲突。

采用双绞线差分信号来传送数据,以降低单线的电压升降幅度,减小信号的边沿产生的高次谐波。

适当的让数据的边沿具有一定的斜坡。

增加匹配电阻和电容等来减少总线上信号的发射和平衡总线上的分布电容等。

采用合适的网络拓扑结构和屏蔽技术等来减少受其他信号的干扰。

还有就是在软件上通过数字滤波、数据校验纠错等措施来提高数据传输的可靠性。

5结束语

学习是一个循序渐进的过程,对总线技术的学习和理解也是随着其技术的不断发展而不断更新的过程。子曰“工欲善其事,必先利其器。”只有从最基本的原理出发,打好基础,才能在今后的学习中融会贯通,前仆后继,更进一步深入该知识点和拓宽知识面。





菜鸟
2016-12-14 22:54:25     打赏
2楼

触发器的建立时间和保持时间


    建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;

    保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。

    如图1 。数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时间的值可以为零。 PLD/FPGA开发软件可以自动计算两个相关输入的建立和保持时间。

个人理解:

    1、建立时间(setup time)触发器在时钟沿到来之前,其数据的输入端的数据必须保持不变的时间;建立时间决定了该触发器之间的组合逻辑的最大延迟。

    2、保持时间(hold time)触发器在时钟沿到来之后,其数据输入端的数据必须保持不变的时间;保持时间决定了该触发器之间的组合逻辑的最小延迟。

同步总线的读操作         时钟在上升沿启动启动受控设备中的存储器的读操作,在上升沿的某个时候,数据到达受控设备的输出缓冲器,然后通过缓冲器把数据送到数据线上。数据总线上的数据在时钟下降沿到来之前,必须在总线上停留一段时间。这段时间是主控设备缓冲器的建立时间。为了满足主控设备所需的保持时间,受控设备在时钟下降沿之后要时总线上的数据至少稳定一个保持时间。


同步总线的写操作         一旦时钟信号出现在缓冲器的输入端,就把数据总线上的数据打入数据缓冲器内。因此,数据信号必须在时钟信号到达缓冲器前提前一段时间出现在总线上,这段时间为建立时间。为了使写操作稳定,在时钟信号消失后,数据信号在数据缓冲器还必须停留一段时间,这段时间为保持时间。

            建立时间包括受控设备中的译码延迟,还包括信号通过不同总线上的门电路产生的滞后延迟。保持时间也包括滞后延迟。


            在时序电路中,信号建立的顺序是地址信号、数据信号、读写信号(可看做是同步信号)。结束顺序是读写信号、数据信号、地址信号。地址信号最宽、读写信号最窄。读写数据时,地址信号和数据信号已经稳定,这样就不会出错。

菜鸟
2016-12-14 22:54:54     打赏
3楼
TTL电平和CMOS电平

             TTL电路的电平就叫TTL 电平,CMOS电路的电平就叫CMOS电平。

TTL电平
            TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑"1",0V等价于逻辑"0",这被称做TTL(晶体管-晶体管逻辑电平)信号系统,这是计算机处理器控制的设备内部各部分之间通信的标准技术。TTL电平信号对于计算机处理器控制的设备内部的数据传输是很理想的,首先计算机处理器控制的设备内部的数据传输对于电源的要求不高以及热损耗也较低,另外TTL电平信号直接与集成电路连接而不需要价格昂贵的线路驱动器以及接收器电路;再者,计算机处理器控制的设备内部的数据传输是在高速下进行的,而TTL接口的操作恰能满足这个要求。TTL型通信大多数情况下,是采用并行数据传输方式,而并行数据传输对于超过10英尺的距离就不适合了。这是由于可靠性和成本两面的原因。因为在并行接口中存在着偏相和不对称的问题,这些问题对可靠性均有影响;另外对于并行数据传输,电缆以及连接器的费用比起串行通信方式来也要高一些。

       TTL集成电路的全名是晶体管-晶体管逻辑集成电路(Transistor-Transistor Logic),主要有54/74系列标准TTL、高速型TTL(H-TTL)、低功耗型TTL(L-TTL)、肖特基型TTL(S-TTL)、低功耗肖特基型TTL(LS-TTL)五个系列。标准TTL输入高电平最小2V,输出高电平最小2.4V,典型值3.4V,输入低电平最大0.8V,输出低电平最大0.4V,典型值0.2V。S-TTL输入高电平最小2V,输出高电平最小Ⅰ类2.5V,Ⅱ、Ⅲ类2.7V,典型值3.4V,输入低电平最大0.8V,输出低电平最大0.5V。LS-TTL输入高电平最小2V,输出高电平最小Ⅰ类2.5V,Ⅱ、Ⅲ类2.7V,典型值3.4V,输入低电平最大Ⅰ类0.7V,Ⅱ、Ⅲ类0.8V,输出低电平最大Ⅰ类0.4V,Ⅱ、Ⅲ类0.5V,典型值0.25V。TTL电路的电源VDD供电只允许在+5V±10%范围内,扇出数为10个以下TTL门电路。

CMOS电平             CMOS电平电压范围在3~15V,比如4000系列当5V供电时,输出在4.6以上为高电平,输出在0.05V以下为低电平。输入在3.5V以上为高电平,输入在1.5V以下为低电平。而对于TTL芯片,供电范围在0~5V,常见都是5V,如74系列5V供电,输出在2.7V以上为高电平,输出在0.5V以下为低电平,输入在2V以上为高电平,在0.8V以下为低电平。因此,CMOS电路与TTL电路就有一个电平转换的问题,使两者电平域值能匹配。

            COMS集成电路是互补对称金属氧化物半导体(Compiementary symmetry metal oxide semicoductor)集成电路的英文缩写,电路的许多基本逻辑单元都是用增强型PMOS晶体管和增强型NMOS管按照互补对称形式连接的,静态功耗很小。COMS电路的供电电压VDD范围比较广在+5--+15V均能正常工作,电压波动允许±10,当输出电压高于VDD-0.5V时为逻辑1,输出电压低于VSS+0.5V(VSS为数字地)为逻辑0,扇出数为10--20个COMS门电路。


菜鸟
2016-12-14 22:55:18     打赏
4楼
同步复位和异步复位的比较一、特点:

         同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作。用Verilog描述如下:
always @ (posedge clk) begin
if (!Rst_n)
...
end

        异步复位:它是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。用Verilog描述如下:
always @ (posedge clk or negedge Rst_n) begin
if (!Rst_n)
...
end
二、各自的优缺点:
1、总的来说,同步复位的优点大概有3条:
a、有利于仿真器的仿真。
b、可以使所设计的系统成为100%的同步时序电路,这便大大有利于时序分析,而且综合出来的fmax一般较高。
c、因为他只有在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的毛刺。他的缺点也有不少,主要有以下几条:
a、复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。同时还要考虑,诸如:clk skew,组合逻辑路径延时,复位延时等因素。
b、由于大多数的逻辑器件的目标库内的DFF都只有异步复位端口,所以,倘若采用同步复位的话,综合器就会在寄存器的数据输入端口插入组合逻辑,这样就会耗费较多的逻辑资源。

2、对于异步复位来说,他的优点也有三条,都是相对应的
a、大多数目标器件库的dff都有异步复位端口,因此采用异步复位可以节省资源。
b、设计相对简单。
c、异步复位信号识别方便,而且可以很方便的使用FPGA的全局复位端口GSR。

缺点:
       a、在复位信号释放(release)的时候容易出现问题。具体就是说:倘若复位释放时恰恰在时钟有效沿附近,就很容易使寄存器输出出现亚稳态,从而导致亚稳态。
       b、复位信号容易受到毛刺的影响。
三、总结:
    所以说,一般都推荐使用异步复位,同步释放的方式,而且复位信号低电平有效。这样就可以两全其美了。

菜鸟
2016-12-14 22:55:40     打赏
5楼
总线的异步通讯方式

           异步通讯克服了同步铜须的缺点,允许各模块的速度不一致,给设计者充分的灵活性和选择余地。它没有公共的时钟标准,不要求所有部件严格的统一操作时间,而是采用应答方式(又称握手方式),即当主模块发出请求信号时,一直等待从模块反馈回来“响应”信号后,才开始通信。这要求主从模块之间增加两条应答新。

        异步通讯又称应答通讯,是一种建立在应答式或互锁机制基础上的通讯方式。即后一事件出现在总线上的时刻取决于前一事件的出现。在这种系统中,不需要统一的公共时钟信号,总线周期的长度是可变的,不把响应时间强加到功能部件上,因而允许快速和慢速的功能部件都能连接到同一总线上,但这是以增加总线的复杂性和成本为代价的。

        异步通讯中根据应答信号是否互锁,即请求和回答信号的建立和撤消是否互相依赖,异步通讯可分为三种类型:非互锁通讯、半互锁通讯和全互锁通讯。


非互锁通讯


图1  非互锁通讯

          主模块发出请求信号后,不必等待接到从模块的回答信号,而是进过一段时间,确认从模块已收到请求信号后,便撤销其请求信号;从模块接到请求信号后,在条件允许时发出回答信号,并且经过一段时间(这段时间的设置对不同设备而言是不同的)确认主模块已经收到回答信号后,自动撤销回答信号。可见通信双方并无互锁关系。

           例如,COU向主存写信息,CPU要先后给出地址性能好、写命令以及写入数据,即采用此方式。



半互锁通讯


                                                                                                                                                     图2  半互锁通讯

        主模块发出请求信号,必须待接到从模块的回答信号后再撤销其请求信号,或互锁关系;而从模块在接到请求信号后发出回答信号,但不必等待获知蛛魔款的请求已经撤销,而是隔一段时间后自动撤销其回答信号,无互锁关系。由于一方存在互锁关系,一方不存在互锁关系,故称半互锁方式。

        例如,在多主机系统中,某个CPU需要访问共享存储器(供所有CPU访问的存储器)时,该CPU发出访问存储器命令后,不许收到存储器未被占用的回答信号,才能真正进行访存操作。


全互锁通讯                                                          

图3  全互锁通讯

         主模块发出请求信号,必须待从模块回答后再撤销其请求信号;从模块发出回答信号,必须待获知主模块请求信号已经撤销后,再撤销其应答信号。双发存在互锁关系,故称全互锁方式

          例如,在网络通信中,通信双方采用的就是全互锁方式。


           异步通信可用于并行传送或串行传送。异步并行通行如图4所示,图中的“Ready“和“Strobe”就是联络信号。异步串行通信时,没有同步时钟,也不需要在数据传送中传送同步信号。为了确认被传送的字符,约定字符格式为:1个起始位(低电平)、5~8位数据位(如ASCI码为7位)、1位奇偶校验位(作检错用)、1或1.5或2位终止位(高电平)。传送时起始位后面紧跟的是要传送字符的最低位,每个字符的结束是一个高电平的终止位。起始位至终止位构成一帧,两帧之间的间隔可以是任意长度的。                                                                                                                                                                                                                                                                                 

                                                                                                图4 异步并行”应答“联络方式


菜鸟
2016-12-14 22:56:02     打赏
6楼
高阻态和三态门高阻态           高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定。


高阻态的实质:电路分析时高阻态可做开路理解。你可以把它看作输出(输入)电阻非常大。他的极限可以认为悬空。也就是说理论上高阻态不是悬空,它是对地或对电源电阻极大的状态。而实际应用上与引脚的悬空几乎是一样的。


高阻态的意义:当门电路的输出上拉管导通而下拉管截止时,输出为高电平;反之就是低电平;如上拉管和下拉管都截止时,输出端就相当于浮空(没有电流流动),其电平随外部电平高低而定,即该门电路放弃对输出端电路的控制 。


典型应用:
1、在总线连接的结构上。总线上挂有多个设备,设备于总线以高阻的形式连接。这样在设备不占用总线时自动释放总线,以方便其他设备获得总线的使用权。
2、大部分单片机I/O使用时都可以设置为高阻输入,如凌阳,AVR等等。高阻输入可以认为输入电阻是无穷大的,认为I/O对前级影响极小,而且不产生电流(不衰减),而且在一定程度上也增加了芯片的抗电压冲击能力。


高阻态常用表示方法:高阻态常用字母 Z 表示。


三态门

图1 三态门逻辑符号

         三态门,是指逻辑门的输出除有高、低电平两种状态外,还有第三种状态——高阻状态的门电路。高阻态相当于隔断状态(电阻很大,相当于开路)。 三态门都有一个EN控制使能端,来控制门电路的通断。 可以具备这三种状态的器件就叫做三态(门,总线,......)。   

      计算机里面用 1和0表示是,非两种逻辑,但是,有时候,这是不够的,   比如说,他不够富有,但是他也不一定穷啊;她不漂亮,但也不一定丑啊,处于这两个极端的中间,就用那个既不是+   也不是―的中间态表示,叫做高阻态。 高电平,低电平可以由内部电路拉高和拉低。而高阻态时引脚对地电阻无穷,此时读引脚电平时可以读到真实的电平值。高阻态的重要作用之一就是I/O(输入/输出)口在输入时读入外部电平用。


      高阻态相当于该门和它连接的电路处于断开的状态。(因为实际电路中你不可能去断开它,所以设置这样一个状态使它处于断开状态)。三态门是一种扩展逻辑功能的输出级,也是一种控制开关。主要是用于总线的连接,因为总线只允许同时只有一个使用者。通常在数据总线上接有多个器件,每个器件通过OE/CE之类的信号选通。如器件没有选通的话它就处于高阻态,相当于没有接在总线上,不影响其它器件的工作。


      如果你的设备端口要挂在一个总线上,必须通过三态缓冲器。因为在一个总线上同时只能有一个端口作输出,这时其他端口必须在高阻态,同时可以输入这个输出端口的数据。所以你还需要有总线控制管理, 访问到哪个端口,那个端口的三态缓冲器才可以转入输出状态,这是典型的三态门应用。 如果在线上没有两个以上的输出设备, 当然用不到三态门,而线或逻辑又另当别论了。



图2 三态门构成单向总线

菜鸟
2016-12-14 22:56:24     打赏
7楼
总线同步通信

          通信双方由统一时标控制数据传送称为同步通信。这个公共的时钟可以由CPU总线控制部件发送到每一个部件(设备),也可以让每个部件有各自的时钟发生器,时标通常由CPU的总线控制部件发出,送到总线上的所有部件;也可以由每个部件各自的时序发生器发出,但必须由总线控制部件发出的时钟信号对它们进行同步。


   由于采用了公共时钟,每个部件什么时候发送或接收信息都由统一的时钟规定,因此,同步通信具有较高的传输频率。


同步式数据输入传输
           上 图表示某个输入设备向CPU传输数据的同步通信过程。图中总线传输周期是总线上两个部件完成一次完整而可靠的传输时间,它包含4个时钟周期T1、T2、T3、T4。
           主模块在T1时刻发出地址信息;T2时刻发出读命令;从模块按照所指定的地址和命令进行一系列内部动作,必须在T3时刻前找到CPU所需的数据,并送到数据总线上;CPU在T3时刻开始,一直维持到T4时刻,可以从数据线上获取信息并送到其内部寄存器中;T4时刻开始输入设备不再向数据总线上传送数据,撤消它对数据总线的驱动。如果总线采用三态驱动电路,则从T4起,数据总线呈浮空状态。
  同步通信在系统总线设计时,T1、T2、T3、T4都有明确的、惟一的规定。
  对于读命令,其传输周期为:
  T1 主模块发地址;
  T2 主模块发读命令;
  T3 从模块提供数据;
  T4 主模块撤消读命令。
  对于写命令,其传输周期为:
  T1 主模块发地址;
  T1.5 主模块提供数据;
  T2 主模块发出写命令,从模块接收到命令后,必须在规定时间内将数据总线上的数据写到地址总线所指明的单元中:
  T4 主模块撤消写命令和数据等信号。
  写命令的时序如下图所示。

             这种通信的优点是规定明确、统一,模块间的配合简单一致。其缺点是主从模块时间配合属强制性“同步”,必须在限定时间内完成规定的要求。并且对所有从模块都用同一限时,这就势必造成对各不相同速度的部件而言,必须按最慢速度部件来设计公共时钟,严重影响总线的工作效率,也给设计带来了局限性,缺乏灵活性。

             同步通信适用于总线长度较短、各部件存取时间比较接近的情况。这是因为,同步方式对任何两个设备之间的通信都给予同样的时间安排。就总线长度来讲,必须按距离最长的两个设备的传输延迟来设计公共时钟。但是总线长了势必降低传输频率。

             存取时间是指部件接到读/写命令,到完成读出或写入一个数据所需要的时间。同步总线必须按最慢的部件设计公共时钟,如果各部件存取时间相差很大,也会损失总线效率。


菜鸟
2016-12-14 22:56:48     打赏
8楼
总线半同步通信

           半同步通信集同步与异步通信之优点,既保留了同步通信的基本特点,如所有的地址、命令、数据信号的发出时间,都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别。同时又像异步通信那样,允许不同速度的模块和谐地工作。为此增设了一条“等待”( )响应信号线。

           以读命令为例,在同步通信中,主模块在T1发出地址,T2发出命令,T3传输数据,T4结束传输。倘若从模块工作速度较慢,无法在T3时刻提供数据,则必须在T3之前通知主模块,使其进入等待状态,此刻,从模块置 为低电平有效。主模块在T3测得“等待”有效,则不立即从数据线上取数,这样一个时钟周期、一个时钟周期地等待,直到主模块测得 为高电平即等待无效时,主模块即把此刻的下一周期当作正常周期T3,即时获取数据,T4结束传输。



  半同步通信时序可为:
  T1 主模块发地址;
  T2 主模块发命令;
  Tw 当 为低电平有效时,进入等待,其间隔与T统一;
  Tw 当 为低电平有效时,进入等待,其间隔与T统一;
    ……
  T3 从模块提供数据(若属读命令);
  T4 从模块撤消数据。
             半同步通信适用于系统工作速度不高,但又包含了许多工作速度差异较大的各类设备的简单系统。半同步通信控制方式比异步通信简单,在全系统内各模块又在统一的系统时钟控制下同步工作,可靠性较高,同步结构较方便。其缺点是对系统时钟频率不能要求太高,故从整体上来看,系统工作的速度还是不很高。

菜鸟
2016-12-14 22:57:02     打赏
9楼
总线的分离式通信          同步通讯、异步通信和半同步通信都是从主模块发出地址和读写命令开始,直到数据传输结束。在整个传输周期中,系统总线的使用权完全有占有使用权的主模块和由他选中的从模块占据。进一步分析读命令传输周期,发现除了申请总线这一阶段外,其余时间主要花费在如下3个方面。
1.主模块通过传输总线向从模块发送地址和命令。
2.从模块按照命令进行读数据的必要准备。
3.从模块经数据线向主模块提供数据。
          从2可见,对系统总线而言,从模块内部读数据过程并无实质性的信息传输,总线纯属空闲等待。为了克服和利用这种消极等待,尤其在大型计算机系统中,总线的负载已经处于饱和状态,充分挖掘系统总线每瞬间的潜力,对提高系统系能起到极大作用。为此提出了“分离式”的通信方式,其基本思想是即将一个传输周期(或总线周期)分解为两个子周期。在第一个子周期中,主模块A在获得总线使用权后将命令、地址以及其他有关信息,包括主模块编号(当有多个主模块时,此编号尤为重要)发到系统总线上,经过总线传输后,由有关的从模块B接收下来。主模块A向系统总线发布这些信息只占用总线很短的时间,一旦发送完成,立即放弃总线使用权,以便其他模块使用。在第二个子周期中,当B模块接收到A模块发来的有关命令信号后,经过选择、译码、读取等一系列内部操作,将A模块所需的数据准备好,遍有B模块申请总线使用权,一旦获准,B模块便将A模块的编号、B模块的地址、A模块所需的数据等一系列信息送到总线上,供A模块接收。很显然,上述两个子周期都只有单方向的信息流,每个模块都变成了主模块。
            这种通信方式的特点如下:
1.个模块占用总线使用权都必须提出申请。
2.在得到总线使用权后,主模块在限定的时间内向对方发送信息,采用同步方式传送,不再等待对方的回答信号。
3.各模块在准备数据的过程中都不占用总线,是总线可以接受其他模块的请求。
4.总线被占用时都在做有效工作,或者通过他发送命令,或者通过他传送数据,不存在空闲等待时间,充分地利用了总线的有效占用,从而实现了在多个主、从模块间进行交叉重叠并行式传送,这对大型计算机是极为重要的。
           这种方式控制比较复杂,一般在普通微型计算机系统很少采用。

菜鸟
2016-12-14 22:57:21     打赏
10楼
总线的操作时序和操作方式



操作时序(timing):各信号有效的先后顺序及配合关系
(1) 同步方式
•发送、接收双方统一步调,具备统一的时钟信号。
•完全由同步时钟确定收发时刻,没有应答信号。
•例:总线的读操作




(2) 异步方式
•发送、接收双方根据自身的工作速度来确定总线传送的步调
•没有统一的时钟信号,有主同步MSYN和从同步SSYN



•MSYN上升沿:主设备启动输入
•SSYN上升沿:从设备已将数据准备好;
•MSYN下降沿:主设备已将数据取走;
•SSYN下降沿:从设备让出数据总线
•特点:各设备以自身需要的速度工作,时间利用率高。



  • 事件C: Ssyn↑→Msyn↓           
  • 事件R: Msyn↓ → Ssyn ↓        
  • 全互锁:有C且有R
  • 半互锁:或有C、或有R

(3) 准同步方式
在完全同步方式中加一点异步的手段。
有同步时钟,也有应答信号线。同步地采样应答信号









总线操作方式



微机系统各部件之间的信息交换是通过总线操作周期完成的,一个总线周期通常分为以下四个阶段。
① 总线请求和仲裁阶段:当有多个模块提出总线请求时,必须由仲裁机构仲裁,确定将总线的使用权分配给哪个模块。 
② 寻址阶段:取得总线使用权的模块,经总线发出本次要访问的存储器或I/O端口的地址和有关命令。 
③ 传送数据阶段:主模块(指取得总线控制权的模块)与其他模块之间进行数据的传送。 
④ 结束阶段:主模块将有关信息从总线上撤除,主模块交出对总线的控制权。


共20条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]