桥站的制作方法

文档序号:7593981阅读:153来源:国知局
专利名称:桥站的制作方法
技术领域
本发明有关一种桥站,确切地说,涉及一种连接不同速率总线的的桥站。
背景技术
与本发明相关的现有技术可参阅皇家菲利浦电子有限公司于1998年1月12日申请的专利号为98800314.7的中国专利,该项专利揭示了一种传输速率较高的电子装置及其桥站。该电子装置包含多个站;互连这些站用于交换满足信号协议消息且包含第一部分和第二部分的的一个总线;以及互连该总线第一部分和第二部分的一个桥站,该电子装置在利用标题信号发出以一个比标题信号的时钟速率高的第一时钟速率进行发送的指示之后,安排至少一个站以比标题信号高的所述第一时钟速率发送内容信号,能够以所述第一时钟速率接收具有内容信号的消息的该至少一个站和一个子站经由该第一部分被连接到该总线,该桥站被安排在该第一部分和第二部分之间通过该标题信号以便检测到所述指示,用替代独立于该内容信号的一个替代信号来代替用于在总线第二部分上的内容信号,并且在该第一和第二部分之间恢复通过信号以响应指示消息完成的信号,该标题信号,替代信号和恢复之后通过的信号以第二时钟速率(即低速)一起满足信号协议。
上述技术方案通过桥站连接总线之第一部分及第二部分,确能达到增加电子装置速率的目的。但是,该技术方案中,在内容信号的高速率发送可能出现的时间间隔内,该桥站只是将总线的第一部分和第二部分隔离,作为一个不涉及高速率传输的替代信号的低速率站。因此,当该电子装置中与总线第一部分相连的各站以高速率通信时,无法通过桥站与总线第二部分连接的各站进行通信,不利于电子装置中以低速率通信的站点与以高速率通信的站点之间的数据通信。

发明内容本发明的目的在于克服上述缺陷,提供了一种连接以高速率运行的总线及以低速率运行的总线并使该两部分总线可以不同速率进行相互通信的桥站。
本发明的目的是通过以下技术方案实现的一种桥站,用于连接一种电子装置之总线的第一部分和第二部分,该桥站包括一个控制模块;至少一个对所述总线第一部分进行读写的第一输入输出模块,所述第一输入输出模块至少包含一个推挽驱动电路;至少一个对所述总线第二部分进行读写的第二输入输出模块,该第二输入输出模块连接于所述总线之第二部分;连接于所述总线第一部分与第二部分之间的第一开关和第二开关;第三开关和第四开关,所述第一输入输出模块中推挽驱动电路的输出端通过第三开关连接到所述总线第一部分之数据导线上,所述第一输入输出模块通过第四开关连接到所述总线第一部分之时钟导线上;至少一个路由装置,用于存放连接于所述总线上多个站的地址信息;所述控制模块分别与所述第一输入输出模块、第二输入输出模块、第一开关、第二开关、第三开关、第四开关以及路由装置相连,用以对第一输入输出模块或第二输入输出模块发送/接收的数据或命令进行分析以及产生对第一开关、第二开关、第三开关及第四开关进行控制的控制信号;该桥站还包括一数据缓冲装置,用以缓冲从第一输入输出模块到第二输入输出模块或者从第二输入输出模块到第一输入输出模块的数据信息。
所述桥站具有第一工作模式和第二工作模式,在第一工作模式下,所述第一开关和第二开关同时导通,所述第三开关和第四开关断开,在第二工作模式下,所述第三开关和第四开关同时导通,所述第一开关和第二开关断开。
所述第一输入输出模块还可以包括另一个推挽驱动电路,该推挽驱动电路的输出端通过所述第四开关连接到所述总线第一部分之时钟导线上。
所述第二输入输出模块通过一个开漏输出电路连接于所述总线第二部分之数据导线,通过另一个开漏输出电路连接于所述总线第二部分之时钟导线。
所述第一开关和第二开关为一对同时导通或者断开的线路开关,可以由传输门构成或者由一对NMOS晶体管构成,所述传输门使能端或者所述NMOS晶体管的栅极与所述控制单元输出端相连。
所述第三开关和第四开关为一对同时导通或者断开的线路开关,由传输门构成,该传输门使能端与所述控制单元输出端相连。
在第一工作模式时,所述桥站的第一输入输出模块处于禁能状态。
相较于现有技术,本发明通过设置两对开关使桥站中设置H-IO模块、L-IO模块相应地接入到总线的两部分,并通过在桥站中设置路由表以及缓冲区,使得利用本发明的电子装置中以高速率运行的站能够与以低速率运行的站进行相互通信,提高了该电子装置的整体性能。

图1为利用本发明桥站的电子装置的结构图。
图2为本发明桥站的结构图。
图3为电子装置的第一通信子系统中各站由第一工作模式进入到第二工作模式时的信号时序图。
图4-a及图4-b为利用本发明桥站的电子装置中第一通信子系统内的站主动与第二通信子系统内的站进行数据收发的数据流向图。
图5-a及图5-b为利用本发明桥站的电子装置中第二通信子系统内的站主动与第一通信子系统内的站进行数据收发的数据流向图。
以下将参考附图对本发明桥站及利用本发明的电子装置进行说明。
具体实施方式图1显示了一种利用本发明桥站的电子装置,该电子装置具有由第一部分10a和第二部分10b构成的通信总线10a、b。在每一部分的通信总线上,连接着数个通过该通信总线进行通信的站11a、12a、13b、14b、15c、16c。桥站17与该两部分通信总线相连的,负责对两部分的通信总线进行沟通。
总线10a、b的每个部分都包含一个时钟信号导线SCL、SCLH和一个数据信号导线SDA、SDAH,所有这些信号导线都通过各自的上拉电阻Rp被连接到相应的电源电势Vdd1、Vdd2。对于每个站来说,时钟信号导线SCL、SCLH上的信号被耦合到一个输入滤波器115x-165x(x为a、b、c之一)作为各站的时钟输入;数据信号导线SDA、SDAH上的信号被耦合到另外一个输入滤波器114x-164x,作为各站的数据输入。
根据各站驱动时钟信号导线SCL、SCLH或数据信号导线SDA、SDAH方式的不同,连接在通信总线10a、b上的站11a-16c被划分为A、B、C三种类型。其中站11a、12a属于A类站,站13b、14b属于B类站,站15c、16c属于C类。由属于A类和B类的站11a-14b以及桥站17的一部分构成了第一通信子系统,它对应于通信总线10a、b的第一部分10a,第一通信子系统内的各站分别连接到时钟信号导线SCLH和数据信号导线SDAH;由C类站以及桥站17的另外一部分构成的第二通信子系统,对应于通信总线10a、b的第二部分10b,第二通信子系统内的各站分别连接到时钟信号导线SCL和数据信号导线SDA。
A类站11a和12a均通过由一个PMOS晶体管(111a、121a)和一个NMOS晶体管(110a、120a)构成的第一推挽级与数据信号导线SDAH连接,通过由一个PMOS晶体管(113a、123a)和一个NMOS晶体管(112a、122a)构成的第二推挽级与时钟信号导线SCLH连接,该第一推挽级和第二推挽级分别用于驱动数据信号导线SDAH和时钟信号导线SCLH。这里所说的PMOS晶体管和NMOS晶体管,分别具有在电源和信号导线之间,以及信号导线与信号地Vss之间可以导通或截止的沟道,而控制PMOS管与NMOS管沟道导通或截止的,是它们各自的栅级。
与A类站相比,B类站13b和14b只有由一个PMOS晶体管(131b、141b)和一个NMOS晶体管(130b、140b)构成的第一推挽级,用来驱动数据信号导线SDAH,而没有用于驱动时钟信号导线SCLH的第二推挽级,因而B类站13b和14b的时钟信号只能从时钟信号导线SCLH直接获取。
C类站15c和16c通过由晶体管(150c、160c)和上拉电阻Rp构成的一个开漏输出与数据信号导线SDA连接,以驱动数据信号导线SDA。有的C类站,如15c,具有由晶体管152c和上拉电阻Rp构成的另一个开漏输出,用来驱动时钟信号导线SCL;而对于另外一些C类站,如16c,用以驱动SCL的晶体管162c则是任选的。上述构成开漏输出的晶体管为NMOS晶体管,其连接在信号导线(SDA或SCL)与信号地Vss之间,具有一个由栅级控制的可以处于导通或截止状态的沟道。
图2表示了桥站17的详细结构。桥站17包括以下几个部分一个对第一部分通信总线10a进行读写的第一输入输出模块170,本实施例中称为H-IO模块170;一个对第二部分通信线路10b进行读写的第二输入输出模块175,本发明实施例中称之为L-IO模块175;两对线路开关第一开关K1、第二开关K2以及第三开关k3、第四开关k4;一个控制单元171;一个由H-IO模块170到L-IO模块175的数据缓冲区H-L Buffer172和一个由L-IO模块175到H-IO模块170的数据缓冲区L-H Buffer173;以及一个路由表174。
桥站17的H-IO模块170,其结构与功能与站11a、12a相似第一部分总线10a的数据信号导线SDAH经过第三开关K3被耦合到一个输入滤波器1704,作为H-IO模块170的数据输入;时钟信号导线SCLH经过第四开关K4被耦合到另一个输入滤波器1705,作为H-IO模块170的时钟输入。此外,H-IO模块170还通过由一个PMOS晶体管1701和一个NMOS晶体管1700构成的第一推挽级,经过第三开关K3连接到第一部分总线10a的数据信号导线SDAH以驱动该数据信号导线SDAH;通过由一个PMOS晶体管1703和一个NMOS晶体管1702构成的第二推挽级,经过第四开关K4连接到第一部分总线10a的时钟信号导线SCLH以驱动该时钟信号导线SCLH;驱动10a的时钟信号导线SCLH。其中所述的PMOS晶体管和NMOS晶体管通过串联的方式连接在电源Vdd1与信号地Vss之间,它们各自具有由栅级控制的沟道。
桥站17的L-IO模块175,其结构与功能与站15c相似第二部分总线10b的数据信号导线SDA被耦合到输入滤波器1754,作为L-IO模块175的数据输入;时钟信号导线SCL被耦合到输入滤波器1755,作为L-IO模块175的时钟输入。此外,L-IO模块还通过由晶体管1750和上拉电阻Rp构成的开漏输出连接到第二部分总线10b的数据信号导线SDA以驱动该数据信号导线SDA;通过由晶体管1752和上拉电阻Rp构成的开漏输出连接第二部分总线10b的时钟信号导线以驱动该时钟信号导线SCL。
第一开关K1和第二开关K2是一对同时导通或断开的线路开关,它们连接在通信总线10a、b的两个部分之间其中K1连接在10a、b的数据信号导线SDAH、SDA之间;K2连接在10a、b的时钟信号导线SCLH、SCL之间。K1/K2可以由传输门构成,传输门的使能端被连接到控制模块171的一个输出上,这时两部分通信总线上的电源电势Vdd1、Vdd2应该相等,以避免在传输门两端产生压降。K1/K2也可以由别的电路结构来实现比如源级和衬底连在10a、漏级连在10b上的一对NMOS晶体管(假设Vdd2>Vdd1),NMOS晶体管具有在栅级控制下导通或截止的沟道,NMOS晶体管的栅级被连到控制模块171的一个输出上。这时,两部分的通信总线可以采用不同的电源电势,比如Vdd1取3.3V,Vdd2取5V。
第三开关K3和第四开关K4是另一对同时导通或断开的线路开关,用以连接H-IO模块的推挽输出与第一部分的通信总线10a。K3连接在H-IO模块170的第一推挽级输出端与10a的数据信号导线SDAH之间;K4连接在H-IO模块170的第二推挽级输出端与10a的时钟信号导线SCLH之间。K3/K4由传输门构成,这是因为H-IO模块170的第一和第二推挽级具有与第一部分总线10a相同的电源电势Vdd1。传输门的使能端被连接在控制模块171的另一个输出上。
控制模块171用于对H-IO模块170或L-IO模块175收发的数据或命令进行分析,完成对桥站17内部各模块(包括H-IO模块、L-IO模块)工作状态的控制。控制模块171还产生用于控制两对开关K1/K2、K3/K4导通或断开的控制信号。
H-L Buffer172与L-H Buffer173是一对缓冲区,用以缓冲从H-IO模块170到L-IO模块175或者从L-IO模块175到H-IO模块170的数据。它们既可以只容纳一个以包为单位的数据块,也可以容纳由多个数据包构成的队列。
路由表174是一小块存储区,用于存放连接到两部分通信总线10a、b上的器件的地址信息。路由表174分为H区与L区两块,其中H区专门用于存放连接到第一部分通信总线10a的所有站的地址信息,L区专门用于存放连接到第二部分通信总线10b的所有站的地址信息。路由表174的信息通常是在总线10a、b上电之后,由某一个站通过L-IO模块175写入的;并且,只要连在总线10a b上的站的地址信息没有变化,路由表174就不需要更新。
在操作中,桥站17能工作在第一和第二工作模式下。在第一工作模式,桥站17的控制模块171控制开关K1/K2导通,开关K3/K4断开,并禁能H-IO模块170。第一开关K1和第二开关K2的导通将通信总线10a、b两部分的数据信号导线SDAH、SDA和时钟信号导线SCLH、SCL分别连接起来。这时10a上的数据和时钟信号可以通过第一开关K1和第二开关K2传送到10b上,并且反之亦然。如果K1/K2采用NMOS晶体管的结构,还可以实现10a、b两部分在不同电源电势Vdd1、Vdd2下信号之间的转换。第三开关K3和第四开关K4的断开是为了避免H-IO模块170对第一工作模式下总线10a、b上的信号产生干扰。而禁能H-IO模块170的目的主要是为了节省功耗考虑。在第一工作模式,L-IO模块175始终保持工作状态,用以对桥站17进行自身信息的读写(如对路由表174的填写)。在第一工作模式,H-L Buffer172与L-H Buffer173通常处于不工作状态。
在第二工作模式中,桥站17的控制模块171控制第一开关K1和第二开关K2断开,第三开关K3和第四开关K4导通,并激活H-IO模块170。这时总线10a、b的两部分被分隔开来,桥站17分别经由H-IO模块170的推挽输出来驱动第一部分总线10a上的数据信号导线SDAH和时钟信号导线SCLH;由L-IO模块175的开漏输出来驱动第二部分总线10b上的数据信号导线SDA和时钟信号导线SCL。在第二工作模式,桥站17内部的H-L Buffer172与L-H Buffer173以及路由表174处于工作状态,来协同完成第一部分总线10a和第二部分总线10b之间信息的交换。
相应地,本发明装置具有第一和第二两种工作模式。在第一工作模式下,连接到通信总线10a、b的所有站11a-16c,以及桥站17的L-IO模块175,以一种较低的速率进行通信。第一工作模式所采用的通信协议的一个最为典型的例子就是菲利浦的I2C协议,这个协议描述在由菲利浦半导体于1994年出版的,第1141-1159页上的“数据手册IC20基于8比特微处理器的80C51”中,本发明在后续描述第一工作模式通信过程的时候就以I2C协议为基础进行阐述。在第二工作模式下,连接到第一部分总线10a属于第一通信子系统的各站以一种较高的速率进行通信,这时它们将采用一种完全不同于I2C的协议进行通信;而连接到第二部分总线10b属于第二通信子系统的各站仍然维持以较低速率的I2C协议进行通信。桥站17的两个IO模块H-IO模块170、L-IO模块175,在第二工作模式下,分别接入第一部分总线10a和第二部分总线10b,并根据各自所接入总线的速率,以高速和低速的协议与相应的通信子系统进行通信。第一工作模式数据传输的速率通常低于400k bit/s,所以也称第一工作模式为低速模式;而第二工作模式数据传输的速率则可能升到16M bit/s,即远高于第一工作模式的400k bit/s并至少保持在1M bit/s以上,也称第二工作模式为高速模式。
在第一工作模式下,连接在第一部分总线10a上的各站11a-14b,它们的第一推挽级中的PMOS晶体管111a、121a、131b、141b始终处于关断状态,并且对于A类站11a、12a,它们的第二推挽级中的PMOS晶体管113a与123a也始终处于关断状态。桥站17内部的H-IO模块170被禁能,L-IO模块175保持工作状态。这样,各站11a-16c,以及桥站17(L-IO)均通过具有由NMOS晶体管和总线上拉电阻Rp构成的开漏级输出来驱动第一工作模式下的时钟信号导线SCLH、SCL和数据信号导线SDAH、SDA。在这种模式下,桥站内部的第一开关K1和第二开关K2处于闭合状态,当有任一个站使NMOS管导通,从而使与该NMOS管相连的信号导线SDAH、SDA、SCLH、SCL被拉至逻辑低电平Vss时,总线10a、b其它部分与之对应的信号导线SDAH、SDA、SCLH、SCL的电位也将被拉低到Vss。只有当各站连接信号导线与Vss的NMOS晶体管都处于关断状态时,导线的电位才被上拉电阻Rp拉至相应的电源电位Vdd1、Vdd2。
在第一工作模式,站11a-16c以及桥站17的L-IO模块175利用I2C协议进行通信。有关I2C协议的详细描述可以参考菲利浦的数据手册。简要的说,该协议从总线的静态开始,其中所有的信号导线SDA、SDAH、SCL、SCLH为相应的电源电位Vdd1、Vdd2。希望开始通信的一个站(例如12a)通过将数据信号导线SDA、SDAH拉至逻辑低电平Vss(通过使NMOS晶体管120a的沟道导通),同时保持时钟信号导线SCL、SCLH为逻辑高电平Vdd1、Vdd2(通过使NMOS晶体管122a的沟道断开),来形成一个开始条件S。接着,站12a通过使连接在总线与逻辑低电平Vss之间的晶体管120a、122a导通或是不导通来试图产生一系列时钟信号脉冲和数据信号电平。通过使时钟信号导线SCL、SCLH拉向逻辑高电平Vdd1、Vdd2来表示数据为有效。其它各站以及桥站,能通过保持时钟信号导线拉至逻辑低电平Vss(利用晶体管112a、152c、162c、1752连接时钟信号导线SCL、SCLH到逻辑低电平Vss)来延迟时钟脉冲,这使得其它各站可以用尽需要多的时间来处理数据。在第一工作模式,无论NMOS晶体管导通或是截止与否,各站的PMOS晶体管始终是处于截止状态的。
希望开始通信的站12a(称为“主站”),在提供开始条件S之后,继之提供希望与之通信的“从属”站的地址(可以包括桥站的地址),和表示主站或从属站是否对总线写数据的一个比特(读/写比特)数据。每个站11a-16c以及桥站17的L-IO模块175经过输入滤波器从总线10a、b接收数据信号,输入滤波器可以去除象尖峰信号一类的噪音。每个站11a-16c以及桥站17的L-IO模块175确定接收的信号是否包含其地址以及是否需要读或写信号总线,从而开始参与通信。
然后,或者主站12a或者被主站寻址到的其它从属站(站11a-16c之一,或桥站17)提供数据给总线10a、b。在完成这一段数据的交换之后,主站12a可以发出一个更新的开始条件(Sr),继之以另一个从属站的地址和一个读/写比特,用于另一段数据的交换。这个过程可以重复多次,直到最后主站12a产生了一个停止条件P,表示数据通信的结束和下一次仲裁的准备。停止条件P的产生是通过当时钟信号导线SCL、SCLH的电位保持逻辑高电平Vdd1、Vdd2时,使数据信号导线SDA、SDAH从逻辑低电平Vss拉到逻辑高电平Vdd1、Vdd2来产生的。
在I2C协议中,数据以8比特为单位进行传送。在每8个比特之后跟着一个确认比特。接收数据的站11a-16c、桥站17的L-IO模块175可以通过在用于确认比特的时钟信号脉冲期间,使数据信号导线SDA、SDAH的电位拉向逻辑低电平Vss来确认接收。如果在用于确认比特的时钟信号脉冲期间,数据信号导线SDA、SDAH保持为逻辑高电平Vdd1、Vdd2,则表示接收站没有收到该数据单元或不能处理它。这时,发送数据的站应该尝试重发该数据单元或中断发送。
站11a-16c和桥站17通过产生一个开始条件和顺序的数据来试图成为主站。如果这样的一个站注意到总线10a、b繁忙(开始条件已发送,而停止条件还未发送),则它将等待直到总线10a、b空闲,这使得有可能两个或更多的站11a-16c或桥站17在大体相同的时间产生一个开始条件。为解决此问题,站11a-16c和桥站17监视数据信号导线SDA、SDAH的电位。如果在站11a-16c、桥站17使其NMOS晶体管(110a、120a…160c、1750)不导通以使数据信号导线的电位拉向逻辑高电平Vdd1、Vdd2时,在任何时钟脉冲中(确认除外),检测到数据信号导线的电位被拉至逻辑低电平Vss,则站11a-16c、桥站17断定必有另一站11a-16c、桥站17也试图变为主站并停止发送直到下一个停止条件之后(当然除非如果被寻址)。这种处理叫仲裁,并且停止发送的站11a-16c、桥站17被称为已失去仲裁。
在第二工作模式,连接到第一部分总线10a上的各站11a-14b的第一推挽级中的PMOS晶体管(111a、121a、131b、141b)恢复工作状态;同时A类站11a与12a的第二推挽级中的PMOS晶体管113a、123a也恢复工作状态。桥站17的H-IO模块170被激活。与第一模式下由NMOS晶体管和上拉电阻Rp构成的开漏级输出形成对照,由PMOS晶体管和NMOS晶体管形成的推挽级输出可以在数据信号导线SDAH和时钟信号导线SCLH上产生速率高得多的信号,这就使得传输速度更快。允许使用推挽驱动,是因为在第二工作模式下的第一通信子系统内的任意两个站已经约定好不可以同时对时钟信号导线SCLH或数据信号导线SDAH进行写操作,以避免在总线上产生冲突,而这一点是靠一个在第一通信子系统内处于主导地位的站(管理站)来安排实现的。在第二工作模式,桥站17使第一开关K1和第二开关K2断开,以分隔第一和第二部分的总线10a、b;同时使第三开关K3和第四开关K4闭合,从而使H-IO模块170可以对第一部分总线10a进行读写。这样,由A类站、B类站,以及桥站17的H-IO模块170构成的第一通信子系统,可以利用高速模式(16M bit/s)进行通信;与此同时,由C类站和桥站17的L-IO模块175构成的第二通信子系统,仍然维持在低速模式的工作状态,并利用I2C协议进行通信。桥站17则在需要时完成两个通信子系统之间不同速率数据的交换。
图3表示第一通信子系统的各站在由第一工作模式进入到第二工作模式时在第一部分总线10a上的信号传送图。直到时刻tH之前,信息的传送是以第一工作模式(常规I2C)进行的一个希望以高速模式交换信息的站,如站12a,在一个开始条件S之后,时刻t0之前,利用总线10a、b发送一个特定的8位地址00001000(也称主机码)来为进入高速模式做准备。该地址用作I2C的仲裁模式,由于该特定的地址拥有比常规I2C地址都“低”的值(常规I2C地址在起始的四比特中至少有一个“1”),因此在总线10a、b上,如果有其它站11a-16c,同时发送用于常规I2C的地址,则它们将常常丢失仲裁。这将允许发送主机码00001000的站12a获得仲裁的胜利。在主机码地址后的第9个应答比特,所有的站不做应答。接下来,从时刻t0开始,到时刻tH之间,赢得主机码仲裁的站(12a)再将它自身的8位I2C地址(其中第8位为任意值)放到总线10a、b上进行传送。该地址也支持扩展方式的地址。该地址后面的应答位不需要应答。这段时间,连在总线10a、b上的所有站仍然工作在第一模式下,也都能接收到这8位的地址信号。通过上述过程,所有的站11a-16c、17收到主机码,知道接下来即将进入高速模式,而收到一个I2C地址,就知道是由哪一个站申请进入高速模式。如果有多于一个的站,如11a和12a,在大体相同的时刻产生开始条件,并以相同的步调发送主机码,则当它们获得主机码仲裁的胜利之后,在t0至tH时刻之间,它们的地址还要在总线10a、b上进行再次仲裁,直到在tH时刻,有且仅有一个站,如12a,可以最终赢得主机码与其自身地址的仲裁。这样一个站通常在第二工作模式下的第一通信子系统中起支配作用,称之为管理站。
在tH时刻,当时钟信号导线SCLH、SCL再次经由上拉电阻Rp被拉至逻辑高电平Vdd1、Vdd2时,第一通信子系统的各站以及桥站将切换进入高速模式的工作状态,而第二通信子系统的各站仍然维持在低速模式的工作状态。
发起进入高速模式的站通常都是A类站,如11a、12a,B类站,如13b、14b,因为不具备驱动时钟信号导线的能力,所以B类站通常不会以主站的方式来发起进入高速模式的过程,因而不可能成为管理站。从简化桥站的复杂程度考虑,桥站17通常不会主动发起进入高速模式,因而也不会成为管理站,它只负责工作在高速模式下的第一通信子系统与工作在低速模式下的第二通信子系统之间的信息互通。但如果桥站17本身被连接至一具有独立数据处理能力的处理器,如其它A类站那样,则桥站17也可以主动发起进入高速模式并成为管理站。如果是这样,桥站申请进入高速模式的过程为首先在第一工作模式下通过L-IO模块175(这时H-IO模块170被禁能)发送主机码和桥站17自身的地址到总线10a、b上。在桥站17赢得总线仲裁之后,在tH时刻切换至第二工作模式。之后,桥站分别通过H-IO170与L-IO模块175,将处理器提供的高速数据与低速数据分别放到相应的第一、第二通信子系统中进行交换。与此同时,桥站内部的控制模块171、H-L Buffer172、L-H Buffer173以及路由表174仍然用以完成从第一到第二通信子系统数据的交换。对于第一通信子系统的各站来说,这时的H-IO模块170相当于第一通信子系统中的管理站。
发起进入高速模式的一个站如12a,在获得主机码和其自身I2C地址的仲裁之后,成为高速模式下第一通信子系统的管理站。管理站12a负责对第一通信子系统内的各站11a、13b、14b、H-IO模块170进行管理,使它们能够轮流使用第一部分总线10a的数据信号导线SDAH交换数据。同时,管理站还要负责驱动时钟信号导线SCLH上的高速时钟脉冲信号,作为第一通信子系统内各站的同步时钟。
以高速模式进行通信的站11a-14c、170(H-IO),采用了一种不同于I2C协议的通信协议,下面将通过一个具体实施例来说明该通信协议。
在高速模式下,数据的交换通常是以一个个数据包的形式来进行的。在传送数据包之前,还需要有一个令牌包,用以表明数据包传送的方向;而在数据包发送结束之后,需要一个握手应答包来确认数据接收的正确与否。此外,还有一些用于管理目的的控制(许可)包以及状态包等。每个包通常都包含有如下若干可选的字段标识字段,用以表明包所属的类型;地址字段,用以表明该包传送的目的站地址;控制字段,包含着一些控制信息;数据字段,包含着有效的数据载荷或状态信息等;校验字段,用以对包的内容的正确性加以验证,等等。
根据参与数据通信的站的不同组合,数据通信的具体过程也有所不同,大致可分为以下几类第一通信子系统内管理站与非管理站的数据通信过程;第一通信子系统内两个非管理站之间的数据通信过程;第一通信子系统的一个站与第二通信子系统的一个站之间的数据通信过程;第二通信子系统两个站之间的数据通信过程。其中,第一通信子系统内管理站与非管理站的数据通信过程、第一通信子系统内两个非管理站之间的数据通信过程以及第二通信子系统两个站之间的数据通信过程由于不需要桥站转发数据信息,在此不再详述,这里仅对第一通信子系统的一个站与第二通信子系统的一个站之间的数据通信过程进行说明。
由前所述,在第二工作模式,桥站17负责在第一通信子系统与第二通信子系统两个站之间的数据交换,其过程如图4-a、图4-b、图5-a及图5-b所示。假设管理站为12a,图4-a为一个第一通信子系统的站(如11a)发送数据到一个第二通信子系统的站(如15c)的数据流向图;图4-b则为站11a从站15c接收数据的数据流向图,箭头方向代表着数据传送的方向。
站11a发送数据到站15c的流程为(1)站11a等待管理站12a发给它的一个许可包,才可以使用高速模式的总线10a来发送数据;(2)站11a发送一个目的站地址为15c的OUT类型的令牌包。桥站17的H-IO模块170收到一个OUT令牌包就将它的目的地址交给控制模块171来查找路由表174。如果控制模块171发现该OUT令牌的目的地址位于路由表174的L区,表示有数据需要通过桥站17转发,就会通知H-IO模块170准备接收第(3)步发送的数据包;否则,如果OUT令牌的目的地址位于路由表174的H区,表示数据不需要转发,H-IO模块170不会对第(3)步的数据包产生任何响应。由于OUT令牌的目的地址不是桥站17本身,所以图中的箭头用虚线表示,后同。
(3)站11a发送数据包。因为站15c的地址位于路由表174的L区,根据第(2)步的判断,H-IO模块170接收该数据包;(4)接收数据包的同时,H-IO模块170会对这个数据包的正确性进行验证,并由控制模块171检查H-L Buffer172的状态。如果数据包传送错误或H-L Buffer172处于饱和状态,则控制模块会通知H-IO模块170发送一个否认应答包,以使站11a稍后重传该数据包。只有当数据包正确无误且H-LBuffer172有剩余空间容纳该数据包时,控制模块171才会通知H-IO模块170发回一个确认应答包,然后数据包连同其目的地址信息被放入H-L Buffer172缓冲,等待稍后由L-IO模块175发往目的站15c;(5)站11a收到否认应答包,就会延时一段时间之后再重发前一个数据包,以避免在H-L Buffer172上产生严重的拥塞;站11a收到确认包之后,可以重复第(2)-(4)步来继续发送数据包。如果站11a不再有待发送的数据,就执行第(6)步;(6)站11a发送许可结束包给管理站12a,管理站12a就可以去满足别的站的数据传送需求;(7)L-IO模块175检测到H-L Buffer172有待发送的数据包,就会按照I2C的协议把H-L Buffer172中的数据包发往它们各自的目的站。数据发送完毕之后,H-L Buffer172中相应的存储区就被清空。在第(7)步,双向箭头表示应答是在I2C数据发送的过程中,每8位响应一次的。
站11a从站15c接收数据的流程为(1)站11a等待管理站12a发给它的许可包,从而开始使用总线10a;
(2)站11a发送一个目的站地址为15c的IN类型的令牌包。桥站17的H-IO模块170收到一个IN令牌包,就将它的目的地址交给控制模块171来查找路由表174。如果控制模块171发现IN令牌的目的地址位于路由表174的L区,表示有数据需要通过桥站17转发,就会通知H-IO模块170执行第(3)步;否则,如果IN令牌的目的地址位于路由表174的H区,第(3)步桥站17不做任何响应;(3)控制模块检查L-H Buffer173的状态,如果L-H Buffer173还有足够的空余来容纳下一个数据包,H-IO模块170就会发送一个等待包给站11a,通知站11a等待一段时间;如果L-H Buffer173处于饱和状态,H-IO模块170会直接发送一个否认应答包,告诉站11a当前桥站17处于忙状态。发送等待包是为了避免站11a迟迟等不到数据包而重发令牌包,因为I2C读取数据的速率导致它要比高速模式花费多得多的时间;(4)在发送等待包的同时,控制模块171会通知L-IO模块175利用I2C协议从站15c上读取数据。这些数据连同其来源站的地址信息被暂存在L-HBuffer173中;(5)H-IO模块170检测到L-H Buffer173中有在第(4)步收集到的待发送的数据,就会将这些数据装订成数据包,并发往站11a;(6)站11a对接收的数据进行验证,如果正确就向桥站17发送确认应答包;否则就发送否认应答包;(7)站11a根据需要的数据包接收正确与否,可以循环执行第(2)、(5)、(6)步从桥站读取新的数据包或要求桥站17重传前一个数据包。只要第(4)步收集的数据没有读完之前,且IN令牌的目的站地址不变,再次循环就可以跳过(3)、(4)步;否则,11a就必须执行第(2)-(6)步才能读取新的数据包。只有当站11a发出一个确认应答包之后,桥站17才可以将被确认的数据从L-H Buffer173中清除;(8)站11a发送许可结束包给管理站12a,表示数据读取过程的结束。
图5-a为一个第二通信子系统的站15c主动发送数据到一个第一通信子系统的站11a的数据流向图;图5-b则为站15c从站11a读取数据的数据流向图。假设管理站仍为12a,箭头的方向代表数据传送的方向。
站15c发送数据到站11a的流程为
(1)站15c按照I2C协议的要求在总线10b上产生一个开始条件S,继之以它希望与之通信的从属站(11a)的地址,和一位表示站15c将要对总线10b进行写操作的比特(读/写比特)数据。桥站17的控制模块171根据从属站地址查找路由表174,并同时检查L-H Buffer173的状态。如果从属站的地址位于路由表174的H区(表明这是一次经由桥站的数据传送过程),且L-H Buffer173有足够的空间来容纳数据,桥站17的L-IO模块175就会在读/写比特后的应答位对该地址产生应答信号。接下来,桥站17会依次接收由站15c发来的数据,并将它们暂存在L-H Buffer173中;如果从属站的地址位于路由表174的L区(表明这是第二通信子系统内部的数据通信),或L-HBuffer173处于饱和状态,桥站17不会对该地址和后面的数据产生任何应答信号,也不会接收站15c发来的任何数据;(2)I2C数据接收完毕之后,桥站17等待由管理站12a发给它的许可包,从而使得H-IO模块170可以使用高速模式的总线10a;(3)桥站17的H-IO模块170发出一个OUT类型的令牌包到站11a,通知站11a准备接收数据;(4)桥站17的H-IO模块170将L-H Buffer173中的数据装订成数据包并通过总线10a发送出去,站11a接收该数据包并对数据包内容的正确性进行验证;(5)如果数据包的内容被正确接收,站11a就发给桥站17一个确认应答包;否则站11a就发送一个否认应答包;(6)桥站根据收到的是确认应答包或否认应答包,来判断是否需要再次执行第(3)-(5)步以重发上一个数据包。只有当桥站收到确认应答包,L-H Buffer173中被确认的数据信息才会清除。如果L-H Buffer173中有不止一个的数据包需要发送,则桥站重复第(3)-(5)步来依次发送这些数据包;(7)L-H Buffer173中的相关数据发送完毕,桥站发送许可结束包给管理站12a,不再占用总线10a。
站15c从站11a接收数据的流程为(1)站15c按照I2C协议的要求在总线10b上产生一个开始条件S,继之以它希望与之通信的从属站(11a)的地址,和一位表示站15c将读总线10b的比特(读/写比特)数据。桥站17的控制模块171根据从属站地址查找路由表174,并同时检查H-L Buffer172的状态如果从属站的地址位于路由表174的H区(表明这是一次经由桥站的数据接收过程),且H-L Buffer172有足够的空间来容纳数据,桥站17的L-IO模块175就会在读/写比特后的应答位对该地址产生应答信号;否则,如果从属站的地址位于路由表174的L区(表明这是第二通信子系统内部的数据通信),或H-L Buffer172处于饱和状态,桥站17的L-IO模块175就不会对该地址产生应答信号,也不会执行后续所有的步骤。在桥站对从属站地址产生了一个应答信号之后,桥站17的L-IO模块175通过保持第二部分总线10b的时钟信号导线SCL为逻辑低电平(利用NMOS晶体管1752连接SCL到逻辑低电平Vss)来使总线10b处于静而忙状态。这时站15c也将保持等待状态,一直到第(8)步10b上再次有I2C数据进行传送;(2)桥站17等待由管理站12a发给它的许可包,从而使其H-IO模块170可以使用高速模式的总线10a;(3)桥站17的H-IO模块170发出一个IN类型的令牌包给站11a,通知站11a可以发送数据了;(4)站11a发送一个数据包到桥站17的H-IO模块170,桥站17的H-IO模块170接收该数据包并对数据包内容的正确性进行验证;(5)如果数据包的内容被正确接收,桥站17的H-IO模块170就将收到的数据包放入H-L Buffer172之中,并发给站11a一个确认应答包;否则,桥站17的H-IO模块170就丢弃该数据包,并发给站11a一个否认应答包;(6)桥站17根据数据包接收的正确与否,来选择是否需要再次执行第(3)-(5)步以重新接收前一个数据包;如果桥站17的H-L Buffer172有足够的空余,它也可以选择执行第(3)-(5)步以接收新的数据包;(7)桥站17不再接收数据包,就发送许可结束包给管理站,以释放总线10a;(8)桥站17的L-IO模块175恢复总线10b的时钟信号导线SCL的工作状态(即使NMOS晶体管1752处于断开状态),之后,H-L Buffer中的相关数据将按照I2C协议的格式经总线10b传送到站15c在这一步,站15c不需要重新发送开始条件和从属站地址,而是可以接着第(1)步的状态直接接收I2C数据。
第二工作模式的结束过程是由第一通信子系统的管理站在高速总线10a上发送一个特殊的模式切换命令(一个特殊的控制包),之后在同一时刻,第一通信子系统的各站以及桥站共同由高速模式的工作状态切换到低速模式的工作状态。桥站17的第一开关K1和第二开关K2闭合,第一部分总线10a上的信号将可以传到第二部分总线10b上。最后由当初发起进入高速模式的站(即高速模式下的管理站)发送一个I2C协议的停止条件,它将被连在总线10a、b上的所有站11a-16c、桥站17所识别。各站收到停止条件,就可以利用总线10a、b再次进行I2C通信,或再次发起进入高速模式的过程。
权利要求
1.一种桥站,用于连接一种电子装置之总线的第一部分和第二部分,其特征在于,该桥站包括一个控制模块;至少一个对所述总线第一部分进行读写的第一输入输出模块,所述第一输入输出模块至少包含一个推挽驱动电路;至少一个对所述总线第二部分进行读写的第二输入输出模块,该第二输入输出模块连接于所述总线之第二部分;连接于所述总线第一部分与第二部分之间的第一开关和第二开关;第三开关和第四开关,所述第一输入输出模块中推挽驱动电路的输出端通过第三开关连接到所述总线第一部分之数据导线上,所述第一输入输出模块通过第四开关连接到所述总线第一部分之时钟导线上;至少一个路由装置,用于存放连接于所述总线上多个站的地址信息;所述控制模块分别与所述第一输入输出模块、第二输入输出模块、第一开关、第二开关、第三开关、第四开关以及路由装置相连,用以对第一输入输出模块或第二输入输出模块发送/接收的数据或命令进行分析以及产生对第一开关、第二开关、第三开关及第四开关进行控制的控制信号;
2.如权利要求1所述的桥站,其特征在于该桥站还包括一数据缓冲装置,用以缓冲从第一输入输出模块到第二输入输出模块或者从第二输入输出模块到第一输入输出模块的数据信息。
3.如权利要求1或2所述的桥站,其特征在于所述桥站具有第一工作模式和第二工作模式,在第一工作模式下,所述第一开关和第二开关同时导通,所述第三开关和第四开关断开,在第二工作模式下,所述第三开关和第四开关同时导通,所述第一开关和第二开关断开。
4.如权利要求3所述的桥站,其特征在于所述第一输入输出模块还可以包括另一个推挽驱动电路,该推挽驱动电路的输出端通过所述第四开关连接到所述总线第一部分之时钟导线上。
5.如权利要求4所述的桥站,其特征在于所述第二输入输出模块通过一个开漏输出电路连接于所述总线第二部分之数据导线,通过另一个开漏输出电路连接于所述总线第二部分之时钟导线。
6.如权利要求4或5所述的桥站,其特征在于所述第一开关和第二开关为一对同时导通或者断开的线路开关,可以由传输门构成或者由一对NMOS晶体管构成,所述传输门使能端或者所述NMOS晶体管的栅极与所述控制单元输出端相连。
7.如权利要求6所述的一种电子装置,其特征在于所述第三开关和第四开关为一对同时导通或者断开的线路开关,由传输门构成,该传输门使能端与所述控制单元输出端相连。
8.如权利要求7所述的桥站,其特征在于在第一工作模式时,所述桥站的第一输入输出模块处于禁能状态。
全文摘要
一种桥站,用于连接一种电子装置之总线的第一部分和第二部分,包括第一输入输出模块;连接于所述总线第二部分并对其进行读写的第二输入输出模块;连接于所述总线第一部分与第二部分之间的第一开关和第二开关;所述第一输入输出模块通过第三开关连接到所述总线第一部分之数据导线上,通过第四开关连接到所述总线第一部分之时钟导线上;控制单元分别与所述第一输入输出模块、第二输入输出模块、第一开关、第二开关、第三开关以及第四开关相连,用以对第一输入输出模块或第二输入输出模块发送/接收的数据或命令进行分析以及产生对第一开关、第二开关、第三开关及第四开关控制的控制信号;与控制单元相连的路由表。
文档编号H04L12/20GK1731734SQ200410053459
公开日2006年2月8日 申请日期2004年8月5日 优先权日2004年8月5日
发明者莫皓然, 黄铭峰, 楼毅越, 马长伍 申请人:上海迪比特实业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1