CN107643993A - 总线转换接口、总线转换接口的工作方法和通信设备 - Google Patents
总线转换接口、总线转换接口的工作方法和通信设备 Download PDFInfo
- Publication number
- CN107643993A CN107643993A CN201610574056.7A CN201610574056A CN107643993A CN 107643993 A CN107643993 A CN 107643993A CN 201610574056 A CN201610574056 A CN 201610574056A CN 107643993 A CN107643993 A CN 107643993A
- Authority
- CN
- China
- Prior art keywords
- ebi
- bus
- data
- interface
- conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Bus Control (AREA)
Abstract
本发明公开了一种总线转换接口、总线转换接口的工作方法和通信设备,在主、从总线接口中至少有一个包含至少两种类型的总线接口,总线选择模块可以实现从总线接口和主总线接口中总线接口的选择,以及被选择的总线接口和缓存器的连通,实现了主、从总线接口中被选择的总线接口到缓存器之间的连通,使得本发明的主、从总线接口的类型可以任意选择,实现了多种类型的总线接口间的转换以及多种类型的总线两两任意转换,且转换方式灵活,相对于现有技术中,点对点的总线转换方式,本发明的总线转换接口可以提供更加灵活的转变,适应性更广,使用性更高,在具有多种类型的总线转换需要时,还能提高转换效率,降低转换成本,提升系统使用性和可扩展性。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种总线转换接口、总线转换接口的工作方法和通信设备。
背景技术
任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了简化硬件电路设计、简化系统结构,常用一组线路,配置以适当的接口电路,与各部件和外围设备连接,这组共用的连接线路被称为总线。采用总线结构便于部件和设备的扩充,尤其制定了统一的总线标准则容易使不同设备间实现互连。微机中总线一般有内部总线、系统总线和外部总线。内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。
现有技术中,I2C(Inter-Integrated Circuit,内部整合电路)、SPI(SerialPeripheral Interface,串行外接设备总线)、MDIO(Management Data Input/Output,管理数据输入输出总线)、PCIE(Peripheral Component Interconnect Express,外部设备互连总线)、Local Bus(局部总线)等总线在当今的通信电子领域中非常普遍,其即可作为内部总线,也可以用于系统总线,也可以用于外部总线;几乎所有的电子设备都有其中的一种或多种总线;在实际应用中,由于总线布置时间不统一,或者应用用户,应用场合不同意的情况下,在一个系统或者多个系统中会存在多种总线并存的情况。若想连接各种不同的总线到一个系统中,或者实现系统互联,不同的接口总线之间由于接口速度,协议等差异,往往不能兼容,此时就需要各种总线转换接口。现有技术中,总线转换接口往往只能从一种总线转换到另一种总线,参见图1的总线转换示意图,SPI总线通过转换接口的作用转换为I2C总线,当然,现有技术中还可是其他类型的转换,例如PCI-E转I2C,Local Bus转MDIO等,但是现有技术的转换是点对点的转换模式,往往只能将特定的总线类型转换为特定的总线类型,适应性和可扩展性都比较差,转换效率得不到保证。
发明内容
本发明实施例要解决的主要技术问题是,提供一种总线转换接口、总线转换接口的工作方法和通信设备,解决现有技术中总线的点对点转换带来的,总线转换方式适应性和可扩展性差,以及转换灵活度低和转换效率低的问题。
为解决上述技术问题,本发明实施例提供一种总线转换接口,包括:总线接口、缓存器以及从总线接口;主总线接口和从总线接口分别与缓存器连接;
主总线接口包括至少两种类型的总线接口,从协议处理器和从总线选择模块,从协议处理器与主总线接口中的总线接口连接,通过对应于各总线接口类型的从协议分别对对应的总线接口传输的数据进行数据和数据格式的转换;从总线选择模块与从协议处理器连接,用于从主总线接口中选择一种总线接口,控制被选择的总线接口和缓存器之间的连通;和/或
从总线接口包括至少两种类型的总线接口,主协议处理器和主总线选择模块;主协议处理器与从总线接口中的总线接口连接,通过对应于各总线接口类型的从协议分别对对应的总线接口传输的数据进行数据和数据格式的转换;主总线选择模块与主协议处理器连接,用于从从总线接口中选择一种总线接口,以及控制被选择的总线接口和缓存器之间的连通;
缓存器与从总线选择模块和主总线选择模块连接,用于缓存从协议处理器和/或主协议处理器转换后的数据。
为解决上述技术问题,本发明实施例还提供一种总线转换接口的工作方法,包括:
当主总线接口侧或从总线接口侧中的一侧的总线接口上有总线数据传输时,利用同一侧的协议处理器按照对应于各种总线接口的从协议,对各种总线接口传输的总线数据进行数据和数据格式的转换;
利用同一侧的总线选择模块从该侧的总线接口中选择一种总线接口,将被选择的总线接口对应的转换后的总线数据存入缓存器中;
利用另一侧的总线选择模块从另一侧的总线接口中选择一种总线接口,启动被选择的总线接口;控制被选择的总线接口与缓存器连通;
利用另一侧的协议处理器读取缓存器中的数据,按照被选择的总线接口的时序对缓存器中的数据进行转换;
利用另一侧被选择的总线接口读取该侧的协议处理器模块转换后的数据,发往对应的总线。
为解决上述技术问题,本发明实施例还提供一种通信设备,该通信设备使用如上总线转换接口。
本发明实施例公开了一种总线转换接口、总线转换接口的工作方法和通信设备,在主总线接口和从总线接口中至少有一个包含至少两种类型的总线接口,主总线选择模块和从总线选择模块可以分别从从总线接口和主总线接口中选择总线接口,分别控制被选择的总线接口和缓存器的连通,由此实现了主总线接口和从总线接口中被选择的总线接口到缓存器之间的连通,再由于主总线接口和从总线接口对应的协议处理器可以对各自包含的各种总线接口传输的总线数据进行转换,主总线接口中的任一种总线接口可以与从总线接口中的任一种接口实现数据的交互,实现了多种类型的总线接口之间的数据交互,实现了多种类型的总线两两任意转换的目的,且转换方式十分灵活,相对于现有技术中,点对点的转换方式,本实施例的总线转换接口可以提供更加灵活的转变,适应性更广,使用性更高,在具有多种类型的总线转换需要时,还能提高转换效率,降低转换成本,提升系统使用性和可扩展性。
附图说明
图1为现有技术的总线转换示意图;
图2为本发明实施例一提供的一种总线转换接口的结构图;
图3为本发明实施例一提供另一种总线转换接口的结构图;
图4为利用本发明实施例一实现总线接口转换的原理示意图;
图5为本发明实施例二提供的一种总线转换接口的工作方法的流程图;
图6为锁存器对LOCAL BUS进行数据地址分离的原理图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
实施例一:
参见图2,图2示出了本实施例的总线转换接口的结构,本实施例的总线转换接口中可以设置主总线接口和从总线接口,在主总线接口和/或从总线接口包括了至少两种类型的总线接口,本发明可以利用从总线选择模块和主总线选择模块,对连接缓存器的主总线接口和从总线接口进行选择,最终实现一种主线灵活转换为多种主线,多种主线灵活转换为一种主线,或者多种主线转换为多种主线的目的。本实施例适用于总线种类较多,转换要求较高的情况,尤其适用于系统中需要连接多种总线的情况。
参见图2,本实施例的总线转换接口,包括:主总线接口21、缓存器22以及从总线接口23;主总线接口21和从总线接口23分别与缓存器22连接;
主总线接口21包括至少两种类型的总线接口,从协议处理器211和从总线选择模块212,从协议处理器211与主总线接口中的总线接口相连,通过对应于各总线接口类型的从协议分别对对应的总线接口传输的数据进行数据和数据格式的转换;从总线选择模块212与从协议处理器211连接,用于从主总线接口中的总线接口中选择一种总线接口,控制被选择的总线接口和缓存器之间的连通;和/或
从总线接口23包括至少两种类型的总线接口,主协议处理器231和主总线选择模块232;主协议处理器231与从总线接口中的总线接口相连,通过对应于各总线接口类型的从协议分别对对应的总线接口传输的数据进行数据和数据格式的转换;主总线选择模块232与主协议处理器231连接,用于从从总线接口中的总线接口中选择一种总线接口,以及控制被选择的总线接口和缓存器22之间的连通;
缓存器22与从总线选择模块212和主总线选择模块232连接,用于缓存从协议处理器或主协议处理器转换后的数据。
在本实施例中,主总线接口中可以只包括一种类型的总线接口,也可以包括至少两种类型的总线接口,在主总线接口中的从协议处理器中包含了对应于各种总线接口类型的从协议,对于不同类型的总线接口,从协议处理器可以采用不同的从协议对总线接口传输的总线数据进行数据和数据格式的转换。可以理解的是,本实施例的总线接口传输数据可以是总线接口发送数据或总线接口接收数据。
参见图2中总线转换接口的结构,可以得到,当从总线选择模块选择了与缓存器连通的总线接口后,主总线接口中被选择的总线接口到缓存器被连通,从被选择的总线接口发送的数据经过从协议处理器的转换后,经过从总线选择模块的控制,可以被送入缓存器中。由此,实现了数据在主总线接口中某一种类型的主线接口到缓存器之间的传输。由于本实施例与缓存器连通的总线接口可以由从总线选择模块来选择,所以,本实施例中缓存器中由主总线接口送入的数据可能是从不同种类的总线接口上传输的数据转换而来的。
其中,虽然主总线接口可能中包含不同类型的总线接口,但是,当总线接口传输的数据经过从协议处理器的转换后,可以被转化为同一的总线数据和数据格式,所以在缓存器中的存储的数据在数据格式上是统一的。便于被从总线接口中的主协议处理器转换为对应于各总线接口类型的总线数据送入对应的总线。
对于本实施例的从总线接口,与主总线接口类似,可以只包括一种类型的总线接口,也可以包括至少两种类型的总线接口。当然,需要注意的是,本实施例中,如果主总线接口和从总线接口中的其中之一只包括一种类型的总线接口时,例如主总线接口只包括一种类型的总线接口,主总线接口中的结构可以简化为只包括总线接口和对应的从协议处理器,此时从协议处理器分别与总线接口和缓存器连接,当总线接口中收到总线数据时,从协议处理器马上对该总线数据进行数据和数据格式的转换,然后将转换后的数据送入缓存器中。此时,由于只有一种主线接口,不再需要从总线选择模块进行选择和连通控制。
参见图2可知本实施例的从总线接口中的模块与主总线接口中的模块可以看做是对称设置的,从总线接口中除了各种类型的总线接口外,还包括与总线接口连接的主协议处理器,与主协议处理器连接的主总线选择模块。主协议处理器中包含了对应于各种总线接口类型的主协议,可以预见,主协议处理器中的主协议的种类不低于从总线接口的总线接口的种类,类似的,从协议处理器中的从协议的种类不低于主总线接口的总线接口的种类。
在本实施例中,主总线选择模块和从总线选择模块对总线接口的选择的实现方式可以有多种,例如在主总线选择模块和从总线选择模块中设置选择规则,例如,当需要将主总线接口中的一种类型的总线接口转换为不同的总线接口时们可以在主总线选择模块中写入选择该总线接口的命令,控制主总线选择模块只接通该总线接口和缓存器,对于从总线选择模块,可以为从总线接口的不同种类的主线接口编号,按照编号的顺序选择主线接口,控制其与缓存器的连通。
但是上述的选择方式明显存在不确定性,当主总线接口和从总线接口中的总线接口的类型较多,且系统对于主总线接口和从总线接口中的总线接口的类型均有要求时,操作就比较复杂。为了便于主总线选择模块和从总线选择模块的选择工作,优选地,参见图3,主总线接口还包括与从总线选择模块连接的从微处理单元(图3中的从MCU213),用于根据配置的标识信息以及预设的标识信息与总线接口类型的对应关系,控制主总线选择模块选择对应于配置的标识信息的总线接口。
优选地,参见图3,实施例的从总线接口还包括与主总线选择模块连接的主微处理单元(图3中的主MCU233),用于根据配置的标识信息以及预设的标识信息与总线接口类型的对应关系,控制从总线选择模块选择对应于配置的标识信息的总线接口。
在本实施例中,标识信息可以写入主MCU233或从MCU213的寄存器中,预设的标识信息与总线接口类型的对应关系可存储在MCU中。以主MCU为例,由主MCU根据自身的寄存器中被配置的标识信息与预设的标识信息与总线接口类型的对应关系确定对应的总线接口的类型,然后只需要发送一个控制消息给对应的主总线选择模块,主总线选择模块可以控制对应的总线接口与缓存器的连通。对于从MCU,控制总线接口与缓存器的连通的方式与上述类似。
此外,预设的标识信息与总线接口类型的对应关系可存储在主总线选择模块或从总线选择模块中,由对应的MCU将标识信息发送给对应的总线选择模块,由对应的总线选择模块根据接收的标识信息与预设的标识信息与总线接口类型的对应关系确定对应的总线接口的类型,然后连通其与缓存器。
在本实施例中,主总线接口中的总线接口可能会向缓存器中送入数据或读取缓存器中的数据,当主总线接口中的总线接口向缓存器中送入数据时,若总线接口还处于传送数据的状态,即缓存器中数据不完整时,若从总线接口已经开始从缓存器中读取数据,由于不同类型的总线接口读取数据的速率不一致,可能导致从总线接口读取的数据不完整,造成本次传输数据失败。为了避免这种情况出现,在本实施例中,主总线接口中的各种总线接口还用于在将总线数据完全传输到缓存器后,改变发送数据完毕指示位的状态,通知从总线接口启动对应的总线接口,读取数据。
其中,在主总线接口中的被选择的总线接口向缓存器写入数据前,被选择的总线接口可以将自身对应的发送数据完毕指示位置0,用以表示自身处于传输数据状态,当选择的总线接口将数据完全送入缓存器中后,可以将发送数据完毕指示位置1,通知从总线接口中被选择的总线接口可以启动。
由此,从总线接口模块中被选择的总线接口可以通过查询发送数据完毕指示位的状态(“0”或“1”)来确定主总线接口是否完成数据传输,避免从缓存器中读取的数据不完整。
此外,为了使得从总线接口能快速地获取主总线接口的数据传输状态,当主总线接口中被选择的主线接口将数据完全写入缓存器中后,可以发送逐句传输完毕的指示信息给从总线接口中被选择的总线接口。收到该指示信息的总线接口可以准备启动,开启读取缓存器中的数据的过程。
对应的,当从总线接口将缓存器中的数据完全读取后,若主总线接口不能及时得知从总线接口完成了数据的读取,可能会造成数据传输时间的浪费,鉴于此,本实施例的从总线接口中的总线接口设置有对应的忙标志位(Busy标志位),从总线接口中的总线接口可以通过控制忙标志位的状态,通知主总线接口,自身处于忙或空闲状态。具体的可以通知向缓存器中写入数据的总线接口自身以及完成数据读取,可以开始下一轮的数据传输。
其中,主总线接口写入缓存器中的数据可以来读取下游设备相关信息的数据,也可以是需要向下游设备写入对应地址的数据。当主总线接口需要读取下游设备的数据时,主总线接口中被选择的总线接口写入缓存器中的数据是读数据的地址,当从总线接口读取了缓存器中的地址后,通过对应的总线向下游设备写入该地址,通过该总线接收下游设备泛扩的读数据,然后将读数据写入缓存区中,由主总线接口中对应的总线接口读取。此时,从总线接口将读数据送入缓存器中后可以将Busy标志位置清0,标识自身处于空闲状态。当主总线接口查询到Busy标志位为0时,可以开始下一轮的读写。
当主总线接口需要向下游设备写入数据时,主总线接口中被选择的总线接口写入缓存器中的数据是写数据的写地址和对应的写数据,当从总线接口读取了缓存器中的写地址和写数据后,通过对应的总线向下游设备发送写地址和写数据,由下游设备将写数据写入接收到的写地址中。
优选地,本实施例的缓存器是双向块随机存取存储器即双向block RAM,其大小可以按照需求来设置。双向block RAM中的一片block RAM可以用来缓存主总线接口或从总线接口需要写入对方的数据,另一片block RAM用来缓存主总线接口或从总线接口向对方请求的数据。
在本实施例中,主总线接口和从总线接口中的总线接口的类型包括但不限于:内部整合电路接口(Inter-Integrated Circuit,I2C)、串行外设接口(Serial PeripheralInterface,SPI)、管理数据输入输出接口(Management Data Input/Output,MDIO)、外部设备快速互连总线接口(Peripheral Component Interconnect-Express,PCIE)和局部总线接口(LOCAL BUS)。
参见图4,示出了本实施例的总线转换接口实现主总线接口侧与从总线接口的总线接口转换的原理图。
图中的主总线接口侧和从总线接口侧都有设有多种类型的接口,多可以在MCU的控制下,任一选择一种主线接口。
在本实施例中,当主接口中设置有局部总线接口(LOCAL BUS)时,对应的从协议处理器包括锁存器,该锁存器与局部总线接口连接,用于在局部总线传输的总线数据存入缓存器之前,将其中的地址信号和数据信号分离。也即,在本实例中,锁存器的功能就是协议处理器对局部总线接口写入缓存器的数据进行数据和数据格式的转换。
在另一实施例中,还提供一种通信设备,该通信设备中使用本实施例的总线转换接口。
采用本实施例的总线转换接口,在主总线接口和从总线接口中至少有一个包含至少两种类型的总线接口,主总线选择模块和从总线选择模块可以分别从从总线接口和主总线接口中选择总线接口,分别控制被选择的总线接口和缓存器的连通,由此实现了主总线接口和从总线接口中被选择的总线接口到缓存器之间的连通,再由于主总线接口和从总线接口对应的协议处理器可以对各自包含的各种总线接口传输的总线数据进行转换,主总线接口中的任一种总线接口可以与从总线接口中的任一种接口实现数据的交互,实现了多种类型的总线接口之间的数据交互,实现了多种类型的总线两两任意转换的目的,且转换方式十分灵活,相对于现有技术中,点对点的转换方式,本实施例的总线转换接口可以提供更加灵活的转变,适应性更广,使用性更高,在具有多种类型的总线转换需要时,还能提高转换效率,降低转换成本,提升系统使用性和可扩展性。
实施例二:
参见图5,本实施例基于实施例一的总线换接口提出了一种总线转换接口的工作方法,包括:
S501、当主总线接口侧或从总线接口侧中的一侧的总线接口上有总线数据传输时,利用同一侧的协议处理器按照对应于各种总线接口的从协议,对各种总线接口传输的总线数据进行数据和数据格式的转换;
S502、利用同一侧的总线选择模块从该侧的总线接口中选择一种总线接口,将被选择的总线接口对应的转换后的总线数据存入缓存器中;
S503、利用另一侧的总线选择模块从另一侧的总线接口中选择一种总线接口,启动被选择的总线接口,控制被选择的总线接口与缓存器连通;
S504、利用另一侧的协议处理器读取缓存器中的数据,按照被选择的总线接口的时序对缓存器中的数据进行转换;
S505、利用另一侧被选择的总线接口读取该侧的协议处理器模块转换后的数据,发往对应的总线。
在本实施例中,S501和S502中的总线接口,协议处理器,总线选择模块属于主总线接口和从总线接口中的一个。S503-S505中的总线接口,协议处理器,总线选择模块属于主总线接口或从总线接口中的另一个。
本下列叙述中,以PCIE接口转换为MDIO接口为例,对本实施例的总线转换接口的工作方法进行说明。在本实施例中,默认从总线选择模块选择的总线接口是PCIE,主总线选择模块选择的总线接口是MDIO。
在本实施例中,PCIE接口作为PCIE ENDPOINT,以xilinx的FPGA为例,使用Vivado(FPGA厂商赛灵思公司2012年发布的集成设计环境)进行例化。PCIE对应的从协议处理器包含Serdes(串并转化器)和PCI-E协议处理器,完成PCI-E串行接口的并行转换,并进行PCIE相关协议的处理,输出地址和/或数据(当PCIE需要读数据时,输出的是读地址;当PCIE需要写数据时,输出的是写数据和写地址)。
在本实施例中,从协议处理器对PCIE接口的PCIE总线数据先进行串并转换,然后按照PCIE接口协议进行相应的协议处理,将PCIE总线数据中的地址和数据分离,并输出地址和数据到双向block RAM中。
下面介绍从总线选择模块和主总线选择模块选择如何对总线接口进行选择。
本实施例的总线选择模块都受到对应的MCU的控制,在从MCU中的寄存器设置为PCIE接口对应的标识信息0x05,主MCU中的寄存器设置为MDIO接口对应的标识信息0X03。
参见表一:表一中的是从MCU中的寄存器数据与主接口类型的对应关系。
从MCU的s_port_sel数据 | 主总线接口类型 |
0x01 | SPI |
0x02 | I2C |
0x03 | MDIO |
0x04 | LOCAL BUS |
0x05 | PCIE endpoint(端点) |
表一
参见表二:表二中的是从MCU中的寄存器数据与主接口类型的对应关系。
表二
对于从MCU而言,MCU根据寄存器中的数据选择对应的总线接口。
本实施例中的主总线选择模块可以MUX(总线选择模块)模块,总线选择模块,分为主总线选择和从总线选择,其原理都是一样的,都是通过接收MCU的控制来配置选择的总线接口类型。
Mux模块是用来将多条总线切换选择其中一条,在从总线选择侧用来选择从总线中的一条,在主总线选择侧用来选择主总线中的一条;其目的是让从多条总线过来的地址、数据,选择对应的一条总线的地址、数据往下游透传下去。
本实施例的缓存器用的是xilinx中的block RAM,其大小按照需求来设置,用来缓存总线来的数据,其为双向block RAM,有两片block ram,第一片RAM用来缓存总线写的数据,来自于PCIE的写数据,当从总线接口中的MDIO启动时,从这一片ram中将数据发往MDIO总线上;第二片RAM用来缓存总线读的数据,假设PCIE中向下游传输的数据是用来读取下游设备的数据时,PCIE传输的数据是读取的读地址,当PCIE将读地址写入双向block RAM的第一片RAM后,MDIO接口读取其中的读地址,发往下游设备,接收返回的读数据,然后将该读数据写入第二片RAM,由PCIE接口读取第二片RAM中的读数据,实现PCIE总线通过MDIO总线向下游设备写入或读取数据的目的。
其中,PCIE可以控制对应的发送数据完毕标志位的状态,当PCIE将数据完全传输到第一片RAM后,将发送数据完毕指示位置1,通知MDIO接口数据传输完毕,MDIO接口就准备启动MDIO总线,此时MDIO接口会将总线busy标志位置1,表示此时MDIO总线忙线中,PCIE通过查询此位来获取MDIO的状态,从而判断是否启动新一轮的读写操作,也避免了由于PCIE,MDIO两者总线速率不同,造成的总线传输的混乱。
MDIO接口将Busy标志位置1后,若PCIE发送的是读数据,则第一片RAM中存储的是PCIE需要读取的读地址和数据的个数,此时,MDIO接口在第一片RAM获取该读地址和数据个数,发往MDIO总线上,MDIO接口还会将从MDIO总线获取的串行数据发送到对应的主协议处理器转化为并行数据,存到第二片RAM中。
若PCIE发送的是写数据,则第一片RAM中存储的是PCIE需要写入下游设备的数据的写地址和写数据,MDIO从第一片RAM中获取写地址和写数据,然后启动MDIO时序,将写地址、写数据依次按照MDIO总线的协议往MDIO总线上发。
当数据传输完毕后,MDIO模块将总线busy位清零,用于通知pcie总线MDIO传输数据完毕,让pcie将缓存在接收缓存RAM中的数据读走,或启动下一次的总线读写。
下面以将SPI转换为多种总线接口为例进行说明。
将从MCU中的s_port_sel寄存器设置为0x01,参考上述表一的内容可知,主总线接口选择的是SPI总线接口,SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,SPI有4个接口信号,分别为:串行数据输入(MISO,主设备输入、从设备输出)、串行数据输出(MOSI,主设备输出、从设备输入)、移位时钟(SCK)、低电平有效的从设备使能信号(cs)。
参见表三,示出了SPI访问时序的具体定义:
当SPI接口的操作是表三中的写寄存器时,SPI接口发出的数据的写逻辑指定的地址的寄存器值,一般包括地址和数据,这里的地址是写地址,数据是写数据,数据发送的处理过程是:SPI总线接口发送总线数据,从协议处理器根据SPI协议对总线数据进行处理,先进行串并转换,然后将写地址和写数据分离,将写地址和写数据写入第一片RAM中。
当SPI接口完成发送总线数据到RAM后,SPI可以发送一个发送数据完毕的指示信号和要发送的数据个数的指示信号以及起始地址,通知下游;由下游根据主MCU中的m_port_sel寄存器中配置的值来选择对应类型的从总线接口的,也即下游选择从总线接口中的任一种总线接口,被选择的总线接口被激活,从RAM中读取RAM中缓存的数据,将起始地址和RAM中缓存的数据发送出去。这里的起始地址指的是写逻辑指定地址的第一个地址,一般,向通信设备中指定地址写入数据的方式包括,在得知起始地址的情况下,将第一个数据写入起始地址,将第二个数据写入起始地址的下一个地址,将第三个数据写入下一个地址之后的地址中,并以此类推,直到所有的数据全部写完为止。所以,当SPI接口发送了起始地址后,下游被选择的总线接口可以只读取RAM缓存的写数据即可,写地址可以不用读取。
其中,当被选择的总线接口将起始地址和RAM中缓存的数据发送完毕后,将总线接口Busy标志位清零,SPI通过查询总线接口Busy标志位,可以判断是否启动新一轮的写寄存器操作。
当SPI接口的操作是表三中的读寄存器时,SPI接口发出的总线数据是用来读逻辑指定地址的寄存器值的数据,数据发送的处理过程是:SPI总线接口发送总线数据,从协议处理器根据SPI协议对总线数据进行处理,得到读地址,将读地址发送到第一片RAM中;SPI发送一个发送数据完毕的指示信号通知下游;下游根据主MCU中m_port_sel寄存器的值来选择对应的从总线接口的类型,即下游的主总线选择模块根据主MCU中m_port_sel寄存器的值,从多种类型的总线接口中选择一种,读取RAM中缓存的读地址,然后将读地址通过总线发送给与该总线连接的设备或系统,获取设备或系统读取的读地址中的读数据,然后将读数据缓存到第二片RAM中,SPI接口可以读取第二片RAM中的读数据。
其中,当下游被选择的总线接口将读数据全部存入第二片RAM中后,总线接口可以将自身的Busy标志位清零,通知SPI启动将读数据从第二片RAM中读上去。
其中,当SPI发送数据完毕后,还可以将要读取的数据的个数和读取数据的起始地址通知给下游,下游中被选择的总线接口可以将要读取的数据的个数和读取数据的起始地址发给对应的系统或设备,由对应的系统或设备从起始地址开始依次向下,读取数量为将要读取的数据的个数的数据。
其中,从总线接口中的总线接口的种类包括但不限于实施例一中提到的五种总线接口,每一次传输数据时,下游可以按照需要任意选择其中一种总线接口读取缓存RAM中的数据,由此,SPI接口可以转换为多种类型的总线接口。例如,在主MCU中的寄存器写入0x04选择LOCAL BUS接口,写入0x02选择I2C接口,写入0x03选择MDIO接口等等。
下面以LOCAL BUS配置MDIO接口为例进行说明,采用上述的表一和表二的设置,从MCU的s_port_sel寄存器设置为0x04,主总线接口选择为LOCAL BUS;主MCU的m_port_sel寄存器设置为0x03,从总线接口为MDIO。
LOCAL BUS总线一般采用数据/地址复用的形式,使用时需要将总线的地址和数据分离开来,再分别接到目标器件的数据和地址端口。
参见图6,锁存器对LOCAL BUS进行数据地址分离的原理图,图中的L_ALE是地址锁存信号,低电平有效,当L_ALE出现一个低电平脉冲时,锁存器的输入端口对LAD信号进行采样、锁存并从输出端口输出,直到下一个L_ALE低电平脉冲到来时,其输出状态才发生改变,LOCAL BUS总线在输出地址信号时会将L_ALE信号驱动为低电平,输出数据信号时,会将L_ALE驱动为高电平,锁存器正式利用这个特点轻松实现LOCAL BUS总线上数据和地址的分离。
LOCAL BUS总线利用锁存器将地址、数据分离后,缓存到RAM中,当数据、地址传输完毕后,LOCAL BUS发送数据完毕的指示信号,通知MDIO启动数据传输,从协议处理器按照MDIO的时序对地址和数据进行处理,MDIO接口将转换处理后得到的数据传输给对应的系统或设备;MDIO接口数据传输完毕后,清零Busy标志位,通知LOCAL BUS启动下次读写。
其中,MDIO是一种简单的双线串行接口,将管理器件(如MAC控制器、微处理器)与具备管理功能的收发器(如多端口吉比特以太网收发器或10GbE XAUI收发器)相连接,从而控制收发器并从收发器收集状态信息。
参见表四,表四是MDIO时序表
MDIO接口包含2个管脚:MDC和MDIO。MDC是管理数据的时钟输入。MDIO是管理数据的输入输出双向接口,数据与MDC时钟同步。MDIO的工作流程为:
MDIO接口在没有传输数据的空闲状态(IDLE)数据线MDIO处于高阻态。MDIO先出现一个32个1的前导码,然后MDIO出现一个2bit的开始标识码(00)一个读/写操作开始。接着MDIO出现一个2bit数据来标识是读操作(11)还是写操作(01)。随后MDIO出现一个4bit数据标识PHY的地址。接着MDIO出现一个5bitPHY寄存器地址。然后MDIO需要2个时钟的访问时间。最后MDIO串行读出/写入16bit的寄存器数据。MDIO恢复成IDLE状态,同时MDIO进入高阻状态。
当LOCAL BUS将数据传输完毕后,将发送数据完毕指示位置1,通知MDIO模块数据,地址,数据的个数传输完毕,准备启动MDIO,此时MDIO模块会将Busy标志位置1,表示此时MDIO接口和总线忙线中,PCIE通过查询此位来获取MDIO接口的状态。
MDIO模块将Busy标志位置1后,MDIO获取,PHY地址,PHY寄存器地址,数据个数,若是RAM中的数据是写操作对应的写数据,则从RAM中获取数据,然后启动MDIO时序,将PHY地址、PHY寄存器、数据依次按照MDIO总线的协议往MDIO总线上发;若RAM中的数据是读操作对应的数据,需要MDIO读取对应的数据并向PCIE反馈,则还需要将从MDIO总线获取的串行数据转化为并行数据,存到对应的接收缓存RAM即第二片RAM中。
当MDIO接口数据传输完毕后,MDIO接口将Busy标志位清零,用于通知LOCAL BUS总线MDIO传输数据完毕,让LOCAL BUS将缓存在接收缓存RAM中的数据读走,或启动下一次的总线读写。
采用本实施例的总线转换接口的工作方法,可以利用实施例一中的总线转换接口实现任意一种总线接口与另一种总线接口的转换,相对于现有技术中只能实现总线接口的点对点的转换,本实施例中的主总线接口可以提供多种类型的总线接口的选择,从总线接口也可以提供多种类型的总线接口的选择,由此实现了不同类型的总线接口的相互转换,大大提升了总线转换的灵活度,增强了本方法的适应性和实用性,提高了转换效率。
显然,本领域的技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种总线转换接口,包括:主总线接口、缓存器以及从总线接口;所述主总线接口和所述从总线接口分别与所述缓存器连接;
所述主总线接口包括至少两种类型的总线接口,从协议处理器和从总线选择模块,所述从协议处理器与所述主总线接口中的总线接口连接,通过对应于各总线接口类型的从协议分别对对应的总线接口传输的数据进行数据和数据格式的转换;所述从总线选择模块与所述从协议处理器连接,用于从主总线接口中选择一种总线接口,控制被选择的总线接口和缓存器之间的连通;和/或
所述从总线接口包括至少两种类型的总线接口,主协议处理器和主总线选择模块;所述主协议处理器与所述从总线接口中的总线接口连接,通过对应于各总线接口类型的从协议分别对对应的总线接口传输的数据进行数据和数据格式的转换;所述主总线选择模块与所述主协议处理器连接,用于从从总线接口中选择一种总线接口,以及控制被选择的总线接口和缓存器之间的连通;
所述缓存器与所述从总线选择模块和主总线选择模块连接,用于缓存所述从协议处理器和/或所述主协议处理器转换后的数据。
2.如权利要求1所述的总线转换接口,其特征在于,当所述主总线接口包括至少两种类型的总线接口时,所述主总线接口还包括与从总线选择模块连接的从微处理单元,用于根据配置的标识信息以及预设的标识信息与总线接口类型的对应关系,控制所述主总线选择模块选择对应于配置的标识信息的总线接口。
3.如权利要求1所述的总线转换接口,其特征在于,当所述从总线接口包括至少两种类型的总线接口时,所述从总线接口还包括与主总线选择模块连接的主微处理单元,用于根据配置的标识信息以及预设的标识信息与总线接口类型的对应关系,控制所述从总线选择模块选择对应于配置的标识信息的总线接口。
4.如权利要求1所述的总线转换接口,其特征在于,所述主总线接口中的总线接口还用于在将总线数据完全传输到缓存器后,改变发送数据完毕指示位的状态,通知从总线接口启动对应的总线接口。
5.如权利要求1所述的总线转换接口,其特征在于,所述从总线接口中的总线接口设置有对应的忙标志位,通过控制所述忙标志位的状态,通知所述主总线接口,自身处于忙或空闲状态。
6.如权利要求1-5任一项所述的总线转换接口,其特征在于,所述总线接口的类型包括:内部整合电路接口、串行外设接口、管理数据输入输出接口、外部设备互连总线快速接口和局部总线接口。
7.如权利要求6所述的总线转换接口,其特征在于,当所述主总线接口中设有局部总线接口时,所述从协议处理器包括锁存器,所述锁存器与局部总线接口连接,用于在局部总线传输的总线数据存入所述缓存器之前,将其中的地址信号和数据信号分离。
8.如权利要求1-5任一项所述的总线转换接口,其特征在于,所述缓存器为双向块随机存取存储器,所述双向块随机存取存储器设有两片随机块存取存储器,一片用于缓存主总线接口或从总线接口需要写入对方的数据,另一片用于缓存主总线接口或从总线接口向对方请求的数据。
9.一种总线转换接口的工作方法,包括:
当主总线接口侧或从总线接口侧中的一侧的总线接口上有总线数据传输时,利用同一侧的协议处理器按照对应于各种总线接口的从协议,对各种总线接口传输的总线数据进行数据和数据格式的转换;
利用同一侧的总线选择模块从该侧的总线接口中选择一种总线接口,将被选择的总线接口对应的转换后的总线数据存入缓存器中;
利用另一侧的总线选择模块从另一侧的总线接口中选择一种总线接口,启动被选择的总线接口,控制被选择的总线接口与所述缓存器连通;
利用另一侧的协议处理器读取缓存器中的数据,按照被选择的总线接口的时序对缓存器中的数据进行转换;
利用另一侧被选择的总线接口读取该侧的协议处理器模块转换后的数据,发往对应的总线。
10.一种通信设备,其特征在于,所述通信设备使用如权利要求1-8任一项所述的总线转换接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610574056.7A CN107643993B (zh) | 2016-07-20 | 2016-07-20 | 总线转换接口、总线转换接口的工作方法和通信设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610574056.7A CN107643993B (zh) | 2016-07-20 | 2016-07-20 | 总线转换接口、总线转换接口的工作方法和通信设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107643993A true CN107643993A (zh) | 2018-01-30 |
CN107643993B CN107643993B (zh) | 2022-11-25 |
Family
ID=61109275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610574056.7A Active CN107643993B (zh) | 2016-07-20 | 2016-07-20 | 总线转换接口、总线转换接口的工作方法和通信设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107643993B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360130A (zh) * | 2021-08-11 | 2021-09-07 | 新华三技术有限公司 | 一种数据传输方法、装置及系统 |
WO2021212769A1 (zh) * | 2020-04-22 | 2021-10-28 | 上海御渡半导体科技有限公司 | 一种基于fpga实现的pcie与spi转换适配器及方法 |
CN113824741A (zh) * | 2021-11-23 | 2021-12-21 | 苏州浪潮智能科技有限公司 | 一种iic设备的通信方法、装置、设备、系统及介质 |
CN114328346A (zh) * | 2021-12-14 | 2022-04-12 | 中航洛阳光电技术有限公司 | 一种用于扩展并行接口的逻辑ip核 |
CN116471215A (zh) * | 2023-04-03 | 2023-07-21 | 中国电子技术标准化研究院 | 一种用于工业互联网云边端的融合接口自动化测试系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1199121A (en) * | 1983-02-28 | 1986-01-07 | Michael S. Friedman | Communications interface |
US20070101043A1 (en) * | 2005-10-31 | 2007-05-03 | Lsi Logic Corporation | Protocol converter to access AHB slave devices using the MDIO protocol |
CN101127023A (zh) * | 2006-08-17 | 2008-02-20 | 四川维肯电子有限公司 | 一种多总线接口的通用异步串口扩展芯片 |
CN101345629A (zh) * | 2008-08-21 | 2009-01-14 | 武汉科技大学 | 一种双现场总线接口转换器 |
-
2016
- 2016-07-20 CN CN201610574056.7A patent/CN107643993B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1199121A (en) * | 1983-02-28 | 1986-01-07 | Michael S. Friedman | Communications interface |
US20070101043A1 (en) * | 2005-10-31 | 2007-05-03 | Lsi Logic Corporation | Protocol converter to access AHB slave devices using the MDIO protocol |
CN101127023A (zh) * | 2006-08-17 | 2008-02-20 | 四川维肯电子有限公司 | 一种多总线接口的通用异步串口扩展芯片 |
CN101345629A (zh) * | 2008-08-21 | 2009-01-14 | 武汉科技大学 | 一种双现场总线接口转换器 |
Non-Patent Citations (1)
Title |
---|
车倜贲等: "基于FPGA的MDIO总线切换技术", 《成都信息工程学院学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021212769A1 (zh) * | 2020-04-22 | 2021-10-28 | 上海御渡半导体科技有限公司 | 一种基于fpga实现的pcie与spi转换适配器及方法 |
CN113360130A (zh) * | 2021-08-11 | 2021-09-07 | 新华三技术有限公司 | 一种数据传输方法、装置及系统 |
CN113360130B (zh) * | 2021-08-11 | 2021-10-29 | 新华三技术有限公司 | 一种数据传输方法、装置及系统 |
CN113824741A (zh) * | 2021-11-23 | 2021-12-21 | 苏州浪潮智能科技有限公司 | 一种iic设备的通信方法、装置、设备、系统及介质 |
CN114328346A (zh) * | 2021-12-14 | 2022-04-12 | 中航洛阳光电技术有限公司 | 一种用于扩展并行接口的逻辑ip核 |
CN114328346B (zh) * | 2021-12-14 | 2024-04-30 | 中航洛阳光电技术有限公司 | 一种用于扩展并行接口的逻辑ip核 |
CN116471215A (zh) * | 2023-04-03 | 2023-07-21 | 中国电子技术标准化研究院 | 一种用于工业互联网云边端的融合接口自动化测试系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107643993B (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107643993A (zh) | 总线转换接口、总线转换接口的工作方法和通信设备 | |
US6182183B1 (en) | Communications system and method with multilevel connection identification | |
US4309755A (en) | Computer input/output arrangement for enabling a simultaneous read/write data transfer | |
US5619722A (en) | Addressable communication port expander | |
US10521392B2 (en) | Slave master-write/read datagram payload extension | |
CN101208678B (zh) | 用于rs-232转i2c转换集成电路与主机间通信的软件层 | |
CN100416536C (zh) | 10位寻址模式i2c控制器访问大容量存储器的方法 | |
US20070101043A1 (en) | Protocol converter to access AHB slave devices using the MDIO protocol | |
CN101911000A (zh) | 用于连接电子装置的控制总线 | |
US20100064083A1 (en) | Communications device without passive pullup components | |
CN109783416A (zh) | Spi从设备和i2c从设备共用gpio的方法、电路和电子设备 | |
CN109656856A (zh) | 利用fpga实现非复用总线与复用总线互联装置及方法 | |
Liu et al. | IP design of universal multiple devices SPI interface | |
EP2500827A2 (en) | Memory controller address and data pin multiplexing | |
CN103246628A (zh) | Smi接口管理方法及可编程逻辑器件 | |
CN104657297A (zh) | 计算设备扩展系统及扩展方法 | |
CN117056249B (zh) | 一种mdio到ahb的转换方法、系统、设备及介质 | |
CN104050121A (zh) | 双收双发可编程arinc429通讯接口芯片 | |
US6279044B1 (en) | Network interface for changing byte alignment transferring on a host bus according to master and slave mode memory and I/O mapping requests | |
CN105068961B (zh) | 一种以太网接口管理电路 | |
TWI727581B (zh) | 資料傳輸系統 | |
CN208190652U (zh) | 一种全双工通用同步异步串行收发器的主板 | |
US6507609B1 (en) | Mechanism for capturing and reporting interrupt events of different clock domains | |
CN109408444A (zh) | 一种适用于mems传感器信号处理的专用串行接口 | |
US7076584B2 (en) | Method and apparatus for interconnecting portions of circuitry within a data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |