外围设备的lpc总线接口时序转换方法及转换装置的制作方法

文档序号:6557520阅读:504来源:国知局
专利名称:外围设备的lpc总线接口时序转换方法及转换装置的制作方法
技术领域
本发明涉及外围设备接入LPC(Low Pin Count,低管脚数)总线的接口转换装置,尤其涉及外围设备的LPC总线接口时序转换方法及其应用的接口转换装置。
背景技术
LPC是Intel(英特尔)公司定义的一种总线,它是取代ISA(IndustryStandard Architecture,工业标准结构)、X-bus(X总线)的新的接口,因管脚数少而得名。LPC总线是一个多路复用总线,工作在33MHz(兆赫),与PCI(Peripheral Component Interconnect,外围部件互连)总线同步。
然而,目前仍有很多外围设备只提供其他类型的总线接口,如ISA总线、LocalBus(本地总线)总线等。由于这些总线的工作频率、数据地址总线位数以及读写时序等与LPC总线不同,因而外围设备需要进行总线接口转换后才能接入LPC总线正常工作。
在总线接口转换中,最为重要的任务之一是进行读时序和写时序的转换。针对某个外围设备进行的读操作和写操作需要等待该外围设备完成读写之后返回执行结果。在LPC所定义的读写周期中,控制LPC总线的设备通过使LPC总线保持等待(SYNC)状态来等待外围设备完成读写。
LPC的等待状态包括短等待状态(Short Wait)和长等待状态(Long Wait)。现有技术中,总线接口转换装置根据其连接外围设备完成读操作或写操作的时间设定预定时长,在该预定时长内将LPC总线保持为短等待,在预定时长结束后返回执行结果。这一预定时长足够外围设备完成相应的读或写操作。以某种采用LocalBus总线接口的Flash为例,8位数据地址宽度,要求读写操作时间大于90ns,在将LPC总线设为短等待的同时设置一个计数器,每个时钟周期计数器增1,至少等待4个时钟周期后收回LPC总线并完成一次读写操作。
这种等待时序的实现方法适用于访问时长基本确定的外围设备。而对一些具有可变访问时长的外围设备,其读操作和/或写操作所需的时间可能因访问方式、访问地址等条件的不同而有较大范围的变化,采用这种方法会只能按照可能的最大访问时间来设置预定时长,使得该外围设备和整个系统的效率大大降低。

发明内容
本发明要解决的是现有技术中总线接口时序转换方法应用于具有可变访问时长的外围设备时造成访问效率过低的问题。
本发明所述外围设备的LPC总线接口时序转换方法包括以下步骤在外围设备执行访问操作时将LPC总线保持为长等待状态;在外围设备完成访问操作后,结束长等待状态,驱动LPC总线进行下一个时钟域的操作。
优选地,所述方法还包括当长等待状态的持续时间超过预定阈值时,结束长等待状态同时向LPC总线发送错误信息。
优选地,所述长等待状态的持续时间通过统计长等待状态经过的时钟周期得到。
优选地,所述外围设备完成访问操作具体为外围设备输出表示访问完成的指示。
优选地,所述方法在外围设备执行访问前还包括获得LPC总线控制权。
本发明提供了一种将外围设备接入LPC总线的接口转换装置,包括LPC接口、外设接口和访问时序控制模块,其中
LPC接口和外设接口分别用来连接LPC总线和外围设备;访问时序控制模块用来根据LPC总线的访问时序进行外围设备的访问操作,包括在通过外设接口输出访问操作指令后通过LPC接口输出长等待状态,以及在从外设接口接收到访问操作完成指示后结束长等待状态。
优选地,所述LPC总线包括LPC时钟信号;访问时序控制模块根据LPC时钟信号统计长等待状态的持续时间,在持续时间超过预定阈值时通过LPC接口输出访问错误信息并结束长等待状态。
优选地,所述接口转换装置为复杂可编程逻辑设备CPLD或现场可编程门阵列FPGA。
本发明提供了一种采用LPC总线的输入输出I/O系统,包括处理单元和外围设备,以及接口转换装置,通过LPC总线连接处理单元并且连接外围设备,用来将处理单元发起的LPC访问周期转换为外围设备的访问周期,其中LPC访问周期中的等待SYNC时钟域通过长等待状态实现,在接收到外围设备访问操作结果时结束SYNC时钟域。
优选地,所述接口转换装置通过与LPC相异的总线与外围设备连接。
本发明以长等待状态来实现LPC时序中的SYNC时钟域,以外围设备访问操作完成作为SYNC时钟域的结束,因而使得每次的等待时长正好符合外围设备的访问时长,提高了对外围设备的访问效率;同时,本发明对外围设备的访问时间进行计时,在超时后返回错误信息,避免长时间占用总线。


图1为LPC总线固件内存访问周期(Firmware Memory Cycle)的读操作时序图;图2为LPC总线固件内存访问周期的写操作时序图;
图3为本发明所述LPC总线接口时序转换方法的流程图;图4为本发明所述I/O系统的结构示意图;图5为本发明所述接口转换装置的结构图;图6为本发明应用示例中MAC芯片的读操作时序图;图7为本发明应用示例中MAC芯片的写操作时序图;图8为本发明应用示例中接口转换装置的总线连接示意图;图9为本发明应用示例的状态机转换示意图。
具体实施例方式
LPC总线定义了若干类型的访问周期,以固件内存访问周期(FirmwareMemory Cycle)为例,其读操作时序如图1所示,其中LCLK为LPC时钟信号;LAD[3:0]为LPC的4位双向总线,用来传输控制、地址和数据信号;以LFRAME_N信号持续1个时钟周期低电平时在LAD[3:0]上驱动0000b表示一个LPC访问周期的开始。固件内存访问周期由LPC主设备发起,从设备响应。
固件内存访问周期的读操作开始时主设备握有LPC总线的控制权,主设备以1个时钟周期的低电平开始访问周期,在IDSEL时钟域发送1个时钟周期的片选信号,再在ADDR时钟域用7个时钟周期将最多28位的访问地址发送给从设备,之后的MSIZE为可选时钟域,用来表示每次访问的字节数。在将上述信息发送给从设备后,由主设备驱动将LPC总线控制权转交给从设备,这一控制权转移时钟域TAR为2个时钟周期。从设备取得总线控制权后,在读操作期间将LPC总线保持为等待状态,此时为SYNC时钟域,可能持续多个时钟周期;在读操作完成后,从设备将主设备读取的数据在DATA时钟域发送至LPC总线上,读取M个字节时占用2M个时钟周期;之后从设备在第二个TAR时钟域将总线控制权交还给主设备,结束读操作时序。
图2所示为固件内存访问周期的写操作时序图,与图1中读操作时序的不同之处在于主设备在第一个TAR时钟域将总线控制权转给从设备前,要在DATA时钟域将要写入的数据传输给从设备;而从设备在占有总线控制权期间不需要向主设备返回数据,在SYNC时钟域完成写操作后,即可交还总线控制权。
LPC总线的其他访问周期与固件内存访问周期类似,都是当主设备将访问操作所需的地址信息以及数据信息发送至从设备后,转换总线控制权,从设备在SYNC时钟域完成访问操作,在SYNC时钟域结束后向主设备返回操作结果并交还总线控制权。
在SYNC时钟域中,从设备掌握总线控制权。从设备可以通过在LAD[3:0]上驱动不同的信号来保持两种等待状态,在这一时间段内完成访问操作。当从设备驱动0101b时为短等待状态,现有技术中即通过这一状态设置预定访问操作时长;当从设备驱动0110b时为长等待状态,长等待状态能够持续超过1毫秒的时间,直到从设备驱动0000b或1010b结束;其中0000b表示访问操作正常完成,1010b表示访问操作发生错误。
对具有可变访问时长的外围设备,通常都能够以在某条信号线上驱动某种信号来作为访问操作完成的指示,以通知访问设备。在本发明中,在SYNC时钟域设置长等待状态,当外围设备输出访问操作完成指示时,结束长等待状态,从而非常灵活地实现每次访问操作的不同等待时长。
图3所示为本发明中外围设备的总线接口时序转换方法流程图。在步骤S310,获得LPC总线的控制权。如前所述,在LPC访问周期的第1个TAR时钟域进行总线控制权由主设备到从设备的转交,到达SYNC时钟域时,从设备一侧已获得总线控制权。
在步骤S320,外围设备开始执行访问操作。根据之前从LPC总线上接收的信息,外围设备开始执行该LPC访问周期所指定的访问操作。
在步骤S330,在外围设备开始执行访问操作的同时,启动对其访问操作的计时。由于LPC总线上具有时钟信号,可以通过对访问操作所经过的时钟周期进行计数从而方便地得到访问操作的持续时间。
在步骤S340,保持LPC总线为长等待状态。SYNC时钟域,在LPC总线上驱动0110b即可保持LPC总线为长等待状态。
在步骤S350,判断外围设备是否输出访问操作完成的指示,如果是,转步骤S380;如果否,转步骤S360。
在步骤S360,判断访问操作的持续时间是否超过预定阈值,如果是,则认为本次访问操作失败,执行步骤S370;如果否,转步骤S340。
在步骤S370,在LPC总线上驱动1010b,结束长等待状态并向主设备发送访问操作错误的信息,转步骤S390。此时,SYNC时钟域随长等待状态的结束而结束。
在步骤S380,接收到外围设备访问操作完成的指示后,在LPC总线上驱动0000b,通知主设备访问操作正常完成,同时结束长等待状态,SYNC时钟域也结束。
在步骤S390,驱动LPC总线进行下一个时钟域的操作。
步骤S330、S360、S370用来实现外围设备访问的超时机制,避免外围设备工作异常时长时间占用LPC总线。在一些应用中,超时机制也可以在外围设备内部、或者主设备一侧实现,此时步骤S330、S360和S370可以省略。
本发明上述时序转换方法可以应用于采用LPC总线的I/O(输入输出)系统,其结构如图4所示。处理单元410与接口转换装置430通过LPC总线420连接,接口转换装置430与外围设备450通过外围设备总线440连接。外围设备总线440为非LPC总线。接口转换装置430也可以直接与外围设备450连接。
处理单元410作为LPC总线420的主设备,通过LPC总线420发起对外围设备450的LPC访问周期。接口转换装置430将LPC访问周期的时序转换为外围设备450的访问周期的时序,通过外围设备总线440驱动外围设备450完成访问操作。对LPC访问周期中供外围设备450进行访问操作的SYNC时钟域,接口转换装置430保持LPC总线420为长等待状态,并在接收到外围设备450的访问操作结果后结束长等待状态和SYNC时钟域。
图5所示为接口转换装置430的内部结构,接口转换装置430包括LPC接口431、访问时序控制模块432和外设接口433,访问时序控制模块432分别与LPC接口431和外设接口433相连接,LPC接口431连接LPC总线420,外设接口433连接外围设备。
访问时序控制模块432按照LPC总线420的访问时序进行外围设备450的访问操作。在LPC访问周期的SYNC时钟域,访问时序控制模块432从外设接口433输出访问操作指令,启动外围设备450的访问操作,之后通过LPC接口431在LPC总线420上驱动0110b,保持LPC总线420为长等待状态;外围设备450完成访问操作后,访问时序控制模块432从外设接口433接收到访问操作完成指示,之后结束LPC总线420的长等待状态。
访问时序控制模块433可以利用LPC总线420中的LPC时钟信号对长等待状态计时,如果长等待状态的持续时间超过预定阈值时仍未在外设接口433接收到访问访问操作完成指示,则通过LPC接口431在LPC总线420上输出访问错误信息,并同时结束长等待状态。
接口转换装置可以采用CPLD(Complex Programmable Logic Device,复杂可编程逻辑设备)、FPGA(Field Programmable Gate Array,现场可编程门阵列)等实现。
以下以网络设备中普遍使用的采用LPC总线的CPU(Central ProcessUnit,中央处理器)对MAC(Media Access Control,媒介接入控制)芯片的访问为例,说明本发明的具体应用。
MAC芯片的CPU接口通常是LocalBus总线接口,设MAC芯片选用Ample厂家Harrier系列的MAC芯片A2511,其同步CPU接口支持16位访问模式。在图6的A2511读操作时序和图7的A2511写操作时序中,CPU_ADDR用来输入CPU访问操作的地址信息;CPU_TS_N低电平有效,表示一次访问的开始;CPU_CS_N为片选信号,低电平有效;CPU_RDY_N低电平有效,表示当前总线CPU传输结束;CPU_DATA用来在MAC芯片与CPU之间传输数据。
参考图6所示的A2511读操作时序,对于CPU读操作,CPU_Rdy_N信号低电平有效表示MAC芯片已将数据送到数据总线上,可以被CPU安全读取;参考图7所示的A2511写操作时序,对于CPU写操作,CPU_Rdy_N信号有效表示MAC芯片已经接收到CPU发来的数据,并写到相应的MAC芯片内部寄存器中。
MAC芯片中的寄存器都是32位,采用16位访问模式,每个寄存器需要发起两次CPU访问周期才能完成。通常在写操作时,前16位需要4个CPU时钟周期,而后16位的写操作大概需要14个时钟周期;对于读操作,所需要的CPU访问时间正好相反,前16位访问需要14个周期,而后16位只需要4个时钟周期便能完成。访问操作的时长除了与CPU时钟频率有关外,还与访问的寄存器类型有关,譬如访问MDIO(Management Data Input Output,管理数据输入输出)寄存器,访问时间将会非常长,最长的情况是当MAC芯片工作在10Mbps(兆位每秒)模式下完成一次MDIO寄存器的读写需要2μs(微秒),如果CPU时钟频率为33MHz,则将近67个时钟周期才能完成一次读写。
另外对于MAC芯片A2511,CPU等待的时间上限是256个时钟周期,如果访问了一个非法的寄存器地址,256个时钟周期后CPU_RDY_N信号仍为无效状态,MAC芯片的内部计数器会溢出,所以需要作相应出错处理。
本应用示例中通过LPC的FWH(Firmware Hub,固件集线器)访问周期实现对MAC芯片的访问,FWH访问周期为每次访问的数据长度为2个字节的固件访问周期,其读操作时序、写操作时序分别如图1和图2所示,其中M的值为2。进行访问周期转换的接口转换装置采用CPLD实现,其总线连接方式参见图8,其中LPC接口连接LPC总线,MAC接口连接MAC芯片A2511,接口转换装置中的访问时序控制模块由State Machine(状态机)实现。
图9为接口转换装置的状态机转换示意图,其状态对应于LPC的读写操作时钟域,其中TAR和TAR1分别对应于第一次和第二次TAR时钟域;WRITE和WRITE1分别对应于写操作的DATA时钟域中第一字节和第二字节的写操作;READ和READ1分别对应于读操作的DATA时钟域中第一字节和第二字节的读操作。
主设备在LPC总线上发起读写周期,CPLD将LPC四位总线传输的数据解码,产生读写控制信号,其中地址和数据存到临时寄存器中,组合成32位或28位寻址地址和8位或16位数据,并根据访问地址产生相应设备片选,然后将地址、数据和控制信号从临时寄存器驱动到Local Bus总线上。
主设备发起FWH周期访问,在时钟上升沿检测到LFRAME_N为低电平时表示访问开始。在LFRAME_N有效的最后一个时钟周期发送START帧,发送1101b表示读操作,1110b表示写操作。状态机转到IDSEL状态,判断读操作或写操作。ADDR状态需要7个时钟周期完成28位MAC接口的地址发送,先从最高有效半字节开始传输。由于MAC芯片A2511的地址总线只有24根,所以不足的高4位补零。
对写操作,状态机转到WRITE、WRITE1,每个WRITE状态完成2个半字节的写操作,共16位数据,先传输低四位。两个WRTIE状态后数据已经送到CPLD内部临时寄存器中,并驱动到MAC接口的数据总线上;此时,MAC接口的片选CPU_CS_N和读写信号CPU_READ并未有效,所以数据还未写到MAC芯片的内部寄存器中。此时转到TAR状态,主设备在LPC四位总线LAD[3:0]上驱动1111b,下一个周期TAR1将总线控制权交给CPLD,产生片选CPU_CS_N和CPU_READ的低电平写有效信号。状态机顺序到达SYNC,CPLD判断MAC接口的CPU_RDY_N信号,并不断向主设备发送长等待信息0110b,直到MAC芯片将数据写入内部寄存器并驱动CPU_RDY_N有效。此时CPLD结束长等待状态,将MAC接口的片选和写信号置为无效。当LPC总线处于SYNC状态时CPLD同时启动计数器,每个时钟周期累积一次,如果计数器到256还未检测到有效的CPU_RDY_N信号,则向LPC总线发送1010b的错误信息,同时结束FWH访问周期。
对读操作,在ADDR状态后转入TAR。同样主设备在LPC_LAD[3:0]上驱动1111b,下一个周期TAR1总线控制权交给从设备CPLD,CPLD产生片选CPU_CS_N和CPU_READ的高电平读有效信号。在SYNC状态CPLD检测MAC接口的CPU_RDY_N信号,不断向主设备发送长等待信息0110b,直到CPU_RDY_N有效,数据已经送到MAC接口的16位数据总线上并存入CPLD的临时寄存器中。在READ状态,CPLD将从MAC接口读到的低八位数据从临时寄存器分两个时钟周期送到LPC总线,READ1状态,传输高八位数据。读操作同样启动计数器,计数256个时钟周期,防止主设备长时间一直处于等待状态,没有得到响应而挂死。
将LPC总线时序转换成MAC芯片的CPU接口访问时序可以由glue logic(胶合逻辑)实现,需要占用宏单元约300个,I/O口约60个左右,可选用Xilinx XCR3512XL-10,Lattic LC4512V-75F256C或其它型号CPLD。
对于需要具有Ready信号表示访问结束的外围设备,本发明通过长等待状态实现了到LPC接口总线时序转换的解决方案,对于访问时长不固定的外围设备能够有效提高访问效率。由于一般较复杂单板都会在设计时加一片可编程器件CPLD,本发明可以在其中的glue logic里再加入时序转换,逻辑设计灵活简单,附加成本低。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
权利要求
1.一种外围设备的低管脚数LPC总线接口时序转换方法,其特征在于,包括以下步骤在外围设备执行访问操作时将LPC总线保持为长等待状态;在外围设备完成访问操作后,结束长等待状态,驱动LPC总线进行下一个时钟域的操作。
2.如权利要求1所述外围设备的LPC总线接口时序转换方法,其特征在于,所述方法还包括当长等待状态的持续时间超过预定阈值时,结束长等待状态同时向LPC总线发送错误信息。
3.如权利要求2所述外围设备的LPC总线接口时序转换方法,其特征在于所述长等待状态的持续时间通过统计长等待状态经过的时钟周期得到。
4.如权利要求1至3任意一项所述外围设备的LPC总线接口时序转换方法,其特征在于,所述外围设备完成访问操作具体为外围设备输出表示访问完成的指示。
5.如权利要求1至3任意一项所述外围设备的LPC总线接口时序转换方法,其特征在于,所述方法在外围设备执行访问前还包括获得LPC总线控制权。
6.一种将外围设备接入LPC总线的接口转换装置,其特征在于,包括LPC接口、外设接口和访问时序控制模块,其中LPC接口和外设接口分别用来连接LPC总线和外围设备;访问时序控制模块用来根据LPC总线的访问时序进行外围设备的访问操作,包括在通过外设接口输出访问操作指令后通过LPC接口输出长等待状态,以及在从外设接口接收到访问操作完成指示后结束长等待状态。
7.如权利要求6所述将外围设备接入LPC总线的接口转换装置,其特征在于所述LPC总线包括LPC时钟信号;访问时序控制模块根据LPC时钟信号统计长等待状态的持续时间,在持续时间超过预定阈值时通过LPC接口输出访问错误信息并结束长等待状态。
8.如权利要求6或7所述将外围设备接入LPC总线的接口转换装置,其特征在于所述接口转换装置为复杂可编程逻辑设备CPLD或现场可编程门阵列FPGA。
9.一种采用LPC总线的输入输出I/O系统,包括处理单元和外围设备,其特征在于还包括接口转换装置,通过LPC总线连接处理单元并且连接外围设备,用来将处理单元发起的LPC访问周期转换为外围设备的访问周期,其中LPC访问周期中的等待SYNC时钟域通过长等待状态实现,在接收到外围设备访问操作结果时结束SYNC时钟域。
10.如权利要求9所述采用LPC总线的I/O系统,其特征在于所述接口转换装置通过与LPC相异的总线与外围设备连接。
全文摘要
本发明公开了一种外围设备的LPC总线接口时序转换方法,包括在外围设备执行访问操作时将LPC总线保持为长等待状态;在外围设备完成访问操作后,结束长等待状态,驱动LPC总线进行下一个时钟域的操作。本发明使每次的等待时长正好符合外围设备的访问时长,提高了对外围设备的访问效率,同时能够避免外围设备的访问操作错误时长时间占用总线。本发明可以在CPLD中的glue logic中实现,逻辑设计灵活简单,附加成本低。
文档编号G06F13/20GK1818893SQ20061006483
公开日2006年8月16日 申请日期2006年3月14日 优先权日2006年3月14日
发明者陈军 申请人:杭州华为三康技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1