一种改进的AHBtoAPB总线桥及其控制方法

文档序号:6398660阅读:1422来源:国知局
专利名称:一种改进的AHB to APB总线桥及其控制方法
技术领域
本发明属于数字集成电路技术领域,涉及AMBA总线的AHB与APB总线桥的电路构成,尤其涉及一种改进的AHB to APB总线桥及其控制方法,该部件用于嵌入式CPU与APB总线外围设备的通讯,并且兼容存储器接口。
背景技术
随着深亚微米工艺制造技术的飞速发展,集成电路芯片的规模也将越来越大,目前,在单一 IC (Integrated Circuit)芯片中已经包含数亿个晶体管。与此同时,IC的设计方法也从基于时序驱动的方式,发展到了基于IPdntellectual Property)智能资源复用的方式,基于IP复用方式的关键是建立片上总线(OCB,On-Chip-Bus),具有可复用性的片上总线必须具有正确、高效、灵活的特点,并且符合OCB标准化的要求。目前基于IP复用方式的片上总线企业标准有CoreConnect总线、AMBA (AdvancedMicrocontroller Bus Architecture)总线、OCP (Open Core Protocol)总线和 Wishbone总线。应用最多的是AMBA总线,它是由ARM公司提出的一个SoC体系结构开放的标准,用于集成RISC处理器和外设IP核。AMBA总线独立于处理器和工艺技术,具有高速、低功耗等特点。AMBA系统构成需要一个AMBA总线桥,目前常用的AMBA总线桥包括以下三种:第一种是简单算法的AMBA总线桥,第二种是Prime-cell算法的AMBA总线桥以及第三种倍频算法的AMBA总线桥。上述三种AMBA总线桥的算法不同,它们的传输性能和适应的使用场合也不同。简单算法的AMBA总线桥适用于AMBA总线共用一个时钟源的情况,以简单快速的方法完成AHB协议对APB协议的转换,它能单独处理每一个读写操作,由于AHB总线采取流水线操作,所以写操作前必须插入一个写准备状态,写操作需要三个时钟周期完成,读操作需要两个时钟周期完成,所以AHB协议对APB协议的转换速度慢。Prime-cell算法的AMBA总线桥是ARM公司开发的作为ARM芯片解决方案一部分的AMBA总线兼容IP库的总线桥,它与简单算法的AMBA总线桥不同之处是Prime-cell算法区别连续读写操作和非连续读写操作,并且优化了写操作的算法,该算法周期写操作固定为两个时钟周期。倍频算法的AMBA总线桥,APB总线时钟由AHB总线时钟分频产生,AHB总线时钟对APB总线时钟倍数必须为大于I的整数,协议的转换不区分读操作和写操作。用快速时钟HCLK获取慢速时钟PCLK的上升沿启动状态机。平均操作周期为2n+(n+l)/2个AHB时钟周期,η为AHB对APB的倍频比。假设η为2,平均操作周期为2.5个AHB时钟周期。AHB总线的时钟和APB总线的时钟由企业标准各自设定,一般系统总线的AHB总线时钟比较快,而与外围设备连接的APB总线时钟相对较慢。以上的三种算法中任何一个AMBA总线桥的时钟只能满足倍频或者同频的要求,通用性差,不能满足AHB to APB总线的时钟频率与快慢不同的需求,从而需要时钟域的协议转换,并存在连续写操作需多个周期而导致传输效率低的缺陷。已有技术的中国专利申请号CN200910159774.8,名称为“高级外围总线桥及其控制方法”的发明专利,提供了一种APB总线桥及其控制方法以及APB总线时钟控制方法。该APB总线桥包括:AHB总线接口,其连接到高级高性能的AHB总线以便与AHB主设备通信;仲裁控制单元,与所述AHB总线接口连接,用于通过所述AHB总线接口接收由所述AHB主设备发送的请求,并判断该请求能否被执行,当该请求可被执行时,向所述AHB主设备发送第一响应,使得释放所述AHB主设备对AHB总线的使用权;以及APB总线接口,与该仲裁控制单元连接,并连接到APB总线以便与APB总线上的APB从设备通信。所述APB总线桥及其控制方法缩短了执行单个请求的时间,提高了系统性能;而时钟控制方法根据对于APB总线的待执行请求的数目而控制该APB总线的时钟频率,可降低系统的功耗。该已有技术支持标准的APB接口,但需要两个时钟周期才完成一次传输,存在传输效率低,不兼容总线上的存储器接口,总线桥控制较复杂的缺陷。已有技术的中国专利申请号CN200610118329.3,名称为“一种自适应速率匹配总线的桥接电路”的发明专利,涉及一种自适应速率匹配总线的桥接电路。它通过检测高速系统总线时钟(HCLK)和低速外设总线时钟(PCLK)之间的频率比,自动匹配总线转换速率,完成AHB总线和APB总线的自动桥连接。该已有技术存在的缺陷是需要软件控制,同时状态机的状态比较多,控制也相当复杂,标准的接口也需要两个Pclk周期完成,不兼容存储器接口。已有技术的中国专利申请号CN200810118382.2,名称为“一种片上集成系统SoC的APB总线桥”的发明专利,该总线桥包括:缓冲存储器,在APB总线桥的数据传输通道中FIFO模块串联设置,对APB总线桥的数据进行缓存;逻辑控制器,与所述APB总线桥串联设置的缓冲存储器并行设置,对APB总线中的读/写信号进行接收,并返回APB从设备读/写访问结束的信号;以及,对所述的缓冲存储器进行读/写控制,并把所述的缓冲存储器的弹出命令翻译成APB的协议,向APB从设备进行访问。本发明中增加的硬件简单,却有效提高了 APB总线桥访问APB从设备的效率,减少了 CPU的等待时间。该已有技术存在的缺陷同样是APB总线的操作需要两个pclk周期完成,不兼容存储器接口,而且不支持两个同频总线的操作。

发明内容
本发明是满足AMBA系统构成需要的一种AHB to APB总线桥,电路构成简单,能以IP核嵌入到相应的SoC电路中。它通用性好,能支持倍频或者同频的不同时序要求,还能为高速的AHB总线到低速低功耗的APB总线提供接口和完成快时钟到慢时钟的协议时序转换,同时加入FIFO模块使连续写操作在一个hclk周期完成,能提高传输效率,并兼容存储器接口,APB总线桥模块在电路中增加两个FIFO的面积,其逻辑处理电路面积很小,而且控制方法简捷,传输可靠。APB总线桥电路构成的核心是接口时序转换和控制模块,它是具有控制功能的时钟同步电路,控制APB总线桥的传输状态处于空闲状态(idle)、准备状态(setup)和有效传输状态(valid_transfer)三种状态之一,片选信号(psel )、地址(paddr)、数据(pwdata)只有在有效传输状态下才有效。改进的APB总线桥加快传输速度的工作过程是:系统复位,APB总线桥处于空闲idle状态;当接收AHB主设备的传输请求并且pclk_en为高电平时,APB总线桥进入有效传输valid_transfer状态,当接收AHB主设备有要传输进行的请求但pclk_en为低电平时,APB总线桥进入准备setup状态,并等到pclk_en为高电平时进入valid_transfer状态;APB总线桥在有效传输状态时,如果下一次传输请求为写传输请求,则仍保持当前状态,即支持连续写传输,否则如果无待继续的传输请求或者传输请求为读传输请求时,则在pclk_en为高电平时回到idle状态。至此,一次状态的循环完成。在这个过程中,paddr、pwdata、psel、pwrite、psel信号保证在vaild_trans状态有效,传输在这一个周期内完成。传输过程不参考penable使能信号且能完成正确传输,同时,传输在一个周期完成,加快速度,节省了一半的时间,penable—直为O (低电平),APB总线外设的电路接口并不需要改变,使APB总线桥兼容存储器接口。本发明的目的是通过以下的技术方案来实现。1、一种改进的APB总线桥的控制方法,连接在AHB总线与APB总线之间的带FIFO的APB总线桥的控制方法包括以下构思:
(1)APB总线桥通过其电路构成中配置的一个接口时序转换和控制模块以及一对FIFO模块,由接口时序转换和控制模块根据APB总线桥状态的生成并输出准备信号hready,经AHB总线送到各AHB总线主设备;
(2)APB总线桥输出准备信号hready作为APB总线桥允许AHB总线主设备发送传输请求的判断信号,hready为高电平,AHB总线主设备自主发送传输请求,准备信号hready为低电平,AHB总线主设备等待发送传输请求;
(3)APB总线桥视为AHB总线从设备,在准备信号hready为高电平时,APB总线桥可接收多个AHB总线主设备发送的传输请求,并对多个AHB总线主设备发送的传输请求,按照其发送时间先后逐一进行有效请求判断,并将有效传输请求的信息分类对应存入一对FIFO模块中;总线接口如果有有效传输请求,将有效传输信号valid置为高电平,并将该高电平延迟一个时钟周期作为数据FIFO的写控制信号;
(4)一对FIFO模块分为控制FIFO模块和数据FIFO模块,控制FIFO模块存储AHB总线主设备发送的传输请求的控制类信息,数据FIFO模块存储AHB总线主设备发送的传输请求的数据类信息;一个传输请求的控制类信息先存入,数据类信息滞后一个时钟周期存入,两类信息读出时分类同步读出;
(5)APB总线桥通过接口时序转换和控制模块以及外部电路pclk时钟,产生时序转换控制信号pclk_en,控制实现AHB to APB总线接口时序的匹配转换,以便使AHB总线主设备获得APB总线占用权,并完成对APB总线外设传输操作的访问控制;
(6)APB总线桥的接口时序转换和控制模块判断下次传输类型为连续的写传输操作,则保持AHB总线主设备对APB总线的访问权,使APB总线上每次写传输操作时间为I个时钟周期,加速完成二次以上连续写传输操作,从而显著提高APB总线桥的传输操作速度;
(7)时序转换控制信号pclk_en兼为完成时序转换的握手信号,用以使APB总线桥实现多种不同时序下稳定可靠的信号传输;
(S)APB总线桥的接口时序转换和控制模块对读传输操作和写传输操作都视为一次有效传输操作,由连接APB总线的APB总线外设自行区分,既可简化APB总线桥电路功能,又能避免传输操作出错;不区分读传输操作或写传输操作,由APB总线外设自行区分,十分简便;
(9)APB总线桥的有效传输使能信号penable—直置为“O”,即低电平,传输控制流程省略对使能信号penable的判断操作;既能加快传输控制过程,又不需改变APB总线外设的接口,使APB总线桥兼容AHB总线和APB总线上的存储器接口 ;
(10)APB总线桥对运行实行空闲状态、准备状态和有效传输状态控制;由接口时序转换和控制模块的状态机控制APB总线桥在空闲状态、准备状态和有效传输状态之间按转换条件转换状态,实现接口时序匹配转换以及读、写传输请求的可靠传输操作。所述APB总线桥的控制方法,其在于所述AHB总线与APB总线之间的带FIFO的APB总线桥的控制流程包括以下步骤:
步骤一、APB总线桥输出的准备信号hready的产生与控制,根据APB总线桥的状态产生准备信号hready并对其作输出电平配置:空闲状态为高电平,准备状态以及有效传输状态的传输执行中为低电平;AHB总线主设备根据准备信号hready配置为高电平就可自主确定发送传输请求;
步骤二、APB总线桥判断AHB总线主设备发送的传输请求是否有效;判断为是,进入步骤三;判断为否,则返回继续判断;判断接收AHB总线主设备发送传输请求是否有效:若准备信号hready信号、AHB主设备片选信号hsel和AHB传输有效类型信号htrans信号三者同时有效,判断为“是”,将传输有效信号valid置为高电平,进入步骤三;若为“否”,APB总线桥接口时序转换和控制模块继续判断,等待接收有效的传输请求;
步骤三、APB总线桥接收到AHB总线主设备发送的有效传输请求,APB总线桥进入有效传输状态,将传输请求所带的地址和读写控制信号,以及有效数据对应分存入控制FIFO模块和数据FIFO模块中;同时,还将AHB传输请求有效信号valid作为写使能信号延迟一个时钟周期hclk,用来作为数据FIFO的写使能;鉴于AHB总线协议的流水线机制,地址比数据早一拍发出,存入控制FIFO中的信号比存入数据FIFO中的数据早一拍;
步骤四、APB总线桥同时判断控制FIFO模块和数据FIFO模块是否为为满,判断APB总线是否被当前传输占用而不空闲;若当前是AHB主设备占用APB总线的读传输,无论两个FIFO模块存储是否满,则判断为“是”,转步骤一,将APB总线桥hready信号为低电平;若两个FIFO不满并且当前是不占用APB总线的写传输,判断为“否”,进到步骤五;
步骤五、接口时序转换和控制模块按照请求队列的先进先出原则,同时从控制FIFO模块和数据FIFO模块中读出相关的传输请求信息;将APB地址paddr、APB外设写读控制信号pwrite、APB写数据pwdata、APB外设片选信号psel信号经APB总线接口输出给APB总线外设;
步骤六、APB总线桥判断请求传输为读传输,设定APB外设写读控制信号pwrite高电平为“是”,则是读传输请求,跳转到步骤一,将准备信号hready配置为低电平;同时进入步骤七和步骤八JEhready置为低电平;若APB外设写读控制信号pwrite低电平为“否”,则跳转到步骤九;
步骤七、根据连接APB总线桥的AHB总线与APB总线的接口时序匹配状态产生时序转换控制信号pclk_en,APB总线桥执行AHB to APB总线异步时序的匹配转换;控制接口时序转换和控制模块状态机的转换,进而控制APB总线外设的地址paddr和写读信号pwrite以及AHB总线主设备的写数据pwdata和读数据hrdata的有效时序周期;
步骤八、同时,释放APB总线控制权,AHB总线主设备占用APB总线,访问APB总线外设,进行读传输操作;并转步骤十一;把从FIFO模块读出的传输请求,通过地址译码和信号接口的转换,经APB总线接口,将数据和控制信号传输给APB总线外设;
步骤九、判断传输请求信号是否为写并且两个FIFO模块是否为不满,若为“是”,转步骤十;否则,返回步骤三;
步骤十、从APB总线外设读出回传数据,按照psel_d寄存器中寄存的APB外设片选信号psel,控制回传APB读数据prdata的数据回传;;
步骤十一、判断当前传输对APB总线访问是否完成,并且两个FIFO为空,若“是”,跳转步骤一,将准备信号hready置为高电平;若“否”,则返回步骤五,继续读两个FIFO中的信息,重复操作直到两个FIFO为空;两个FIFO中所有数据读出后,hready信号置为高电平,APB外设写读信号为低电平即“ pwrite”,有效传输信号为低电平即“ valid”,APB总线桥从有效传输状态转入空闲状态;
步骤十二、APB总线桥结束有效传输状态,跳转到空闲状态,等待新的一轮传输请求和访问。所述APB总线桥的控制方法,其在于所述步骤一 APB总线桥输出的准备信号hready的产生与控制的条件如下:
(31)APB总线桥的接口时序转换和控制模块判断作为缓存的两个FIFO模块的空满状态以及执行传输请求的读写类型,将准备信号hready置为高电平或低电平的条件是:
(311)上电时两个FIFO模块存储状态都为空且APB桥处于空闲状态,将准备信号hready置为高电平;
(312)写入到FIFO模块中执行传输请求的类型为读传输时,将准备信号hready置为低电平;
(313)两个FIFO模块存储状态都为满或APB总线占用时,将准备信号hready置为低电平;
(314)两个FIFO模块的存储状态都为未满时,且上一次传输请求为写传输时,将准备信号hready保持为高电平;
(315)两个FIFO模块中所有的写请求被读出以及最后一个读请求被读出并读出回传相应的数据时,将准备信号hready置为高电平;
(32)APB总线桥输出的准备信号hready控制AHB总线主设备发送传输请求的条件:
(321)准备信号hready为高电平,接受AHB总线主设备发送的传输请求;
(322)准备信号hready为低电平,则AHB总线主设备等待发送传输请求。所述APB总线桥的控制方法,其在于所述步骤五的接口时序转换和控制模块同时从控制FIFO模块和数据FIFO模块中读出的相关传输请求信息子流程包括以下步骤:
(41)根据读出的相关传输请求信息通过地址译码以及接状态机的状态,转换成APB外设片选信号psel,并将生成的APB外设片选信号psel寄存到psel_d寄存器中;
(42)根据读出的传输地址和数据生成APB外设地址paddr和APB写数据pwdata;
(43 )根据读出的传输请求的AHB写读信号hwrite,生成APB外设写读控制信号pwrite, pwrite高电平为写操作,无需返回数据,pwrite低电平为读操作,需返回对应的数据;
(44)按psel_d寄存器中存储的片选信息,从而APB外设选择对应的APB读数据prdata回传。 所述APB总线桥的控制方法,所述步骤七的APB总线桥执行AHB to APB总线异步时序的匹配转换的子流程,包括以下步骤:
(51)根据外部总线时钟信号hclk和pclk,接口时序转换和控制模块用hclk对pclk的上升沿进行采样,产生时序转换控制信号pclk_en ;
(52)接口时序转换和控制模块通过时序转换控制信号pclk_en控制状态机的状态转换,使下一个传输请求的地址和控制信号以及数据提前读出,加快传输请求的执行速度;
(53)控制状态机的状态转换,保证APB桥模块寄存器的输出满足pclk的建立时间setup time 和保持时间 hold time。所述APB总线桥的控制方法,其在于所述一个控制FIFO模块以及另一个数据FIFO模块为功能完全相同的先进先出存储器,通过初始化可配置存储器的存储容量。一种改进的APB总线桥,其电路构成包括连接到AHB总线的AHB总线接口和连接到APB总线的APB总线接口,其特征在于,电路构成还包括:
一个接口时序转换和控制模块,以及 一个控制FIFO模块和一个数据FIFO模块;
所述接口时序转换和控制模块连接AHB总线接口,用于将接口时序转换和控制模块产生的APB总线桥输出的准备信号hready,通过AHB总线接口送到AHB总线主设备;将AHB总线主设备的片选信号hsel和AHB传输有效信号htrans,通过AHB总线接口送到接口时序转换和控制模块;接口时序转换和控制模块连接APB总线接口,用于将APB外设片选信号psel, APB外设写读控制信号pwrite,使能信号penable, APB写数据pwdata, APB地址paddr,经APB总线接口送到APB总线的从设备,而APB总线的从设备的APB读数据prdata经APB总线接口送到接口时序转换和控制模块;接口时序转换和控制模块产生控制地址和数据的锁存控制信号,控制上述二个FIFO模块的读写操作;接口时序转换和控制模块还连接外部的时钟信号pclk,用于生成时序转换控制信号pclk_en,配合完成AHB to APB总线的时序匹配转换;
所述的控制FIFO模块和数据FIFO模块均为传输请求的信号和数据的先进先出存储器;控制FIFO模块和数据FIFO模块的一个输入端口分别对应连接AHB总线接口,另一个输入端口分别对应连接接口时序转换和控制模块的一个1/0 口,它们的输出端口分别连接接口时序转换和控制模块的一个1/0 口 ;用于配合接口时序转换和控制模块,使APB总线桥适应AHB时钟和APB时钟不同时序的匹配转换要求,并实现加快APB总线桥的传输速度。标准的APB总线时序的一次有效的总线传输需要两个pclk时钟周期,使能信号penable信号为高电平时才将数据写入或者读出,而本发明的APB总线桥电路中的接口时序转换和控制模块具有时序匹配转换功能,一个APB总线写传输在一个pclk时钟周期内完成,使能信号penable不作为控制信号,从而提高了 APB总线桥的电路传输效率,并使APB总线桥兼容存储器接口,如SRAM存储器接口完全兼容。所述的APB总线桥,其在于所述接口时序转换和控制模块包括状态机、数据FIFO控制逻辑单元和控制FIFO控制逻辑单元以及一个寄存器;其中
所述状态机为控制单元MCU,状态机的二个控制接口 一一对应连接数据FIFO控制逻辑单元和控制FIFO控制逻辑单元,状态机的二个数据接口一一对应连接模块外的数据FIFO和控制FIFO ;状态机用于为APB总线桥提供状态控制信号,使APB总线桥处于空闲状态、准备状态以及有效传输状态中的一个状态,用以保证在AHB总线和APB总线时序不匹配时完成时序匹配转换,实现正常读写传输操作,状态机不区分写传输和读传输,从而简化APB总线桥电路结构,避免状态转换出错;
所述数据FIFO控制逻辑单元的输入端口连接状态机,其输出端口连接数据FIFO的控制端口 ;用于对数据FIFO的读写传输操作实施控制,并输出数据FIFO的当前请求队列的存储状态,数据FIFO的队列存储状态包括满、空、写传输以及读传输;
所述控制FIFO控制逻辑单元的输入端口连接状态机,其输出端口连接控制FIFO的控制端口 ;用于对控制FIFO的读写操作实施控制,并输出控制FIFO的当前请求队列的存储状态,控制FIFO的存储状态包括满、空、写传输以及读传输;
所述寄存器是psel_d寄存器,用于寄存APB外设片选地址信号psel ;寄存器为内部独立的psel_d寄存器。所述的APB总线桥,其在于所述APB总线桥输出的准备信号hready为AHB总线主设备与APB总线桥之间的非交互式的传输请求握手信号;用于在hready信号为高电平时,AHB总线主设备自主发送传输请求,传输请求将对应写入两个请求队列缓存的控制FIFO和数据FIFO中,APB总线桥按请求队列执行;在hready信号为低电平时,AHB总线主设备暂停发送传输请求,等待APB总线桥状态转换;该准备值ihready符合AMBA2.0协议的避免总线桥路拥塞的规定,又提闻总线桥电路的传输速率。状态机在无传输时处于空闲状态,状态机内部状态的转换受二个FIFO的存储状态和APB总线外设状态以及时序转换控制信号pclk_en的控制。APB总线桥响应AHB总线的一个主设备的传输请求,APB总线桥作为AHB总线的一个从设备而处于有效传输状态,APB总线桥在状态机的控制下,用于使访问的AHB主设备获得AHB总线控制权;其他AHB总线主设备判断APB总线桥输出的准备信号hready是否为高电平,自主决定发送传输请求;APB总线桥输出的准备信号hready置为高电平的条件是根据接口时序转换和控制模块中状态机的状态和两个FIFO的空满状态来判断生成。所述的APB总线桥,其在于所述APB总线桥的一个控制FIFO模块和一个数据FIFO模块为完全相同的存储器,两个FIFO模块的存储宽度为32bit,存储器容量配置通过硬件参数来实现。本发明的实质性效果:
1、APB总线桥不区分读写操作,使控制方法简捷。2、基于带FIFO的APB总线桥的电路构成简单,提高传输速度,一次APB传输操作时间从二个时钟周期缩短为一个时钟周期。3,APB总线桥支持AHB总线与APB总线时钟同频,AHB总线与APB总线时钟倍频两种时钟关系的时序转换,保证可靠稳定的信号传输。4、APB总线桥传输过程的控制不判断使能信号penable的状态,penable 一直为“0”,APB总线外设的接口并不需要改变,使APB总线桥兼容存储器接口。


图1是本发明APB总线桥的模块电路构成及信号流向原理 图1中=1-APB总线桥,11一AHB总线接口,12 — APB总线接口,13—控制FIFO,14一数据FIFO,15—接口时序转换和控制模块,hready—APB总线桥输出的准备信号,pclk_en一时序转换控制信号,hsel—AHB主设备片选信号,htrans—AHB传输有效类型,hwrite一AHB 写读信号,haddr一AHB 地址信号,hwdata一AHB 写数据,hrdata—AHB 读数据,hresetn—AHB复位信号,psel—APB外设片选信号,pwrite—APB外设写读控制信号(高为写,低为读),penable一使能信号,pwdata一APB 写数据,paddr一APB 地址,prdata一APB读数据。图2a是本发明实施例的APB总线桥的电路构成框 图 2a 中:211-21n—AHB 主设备,221_22n — AHB 从设备,231_23n — AHB 从设备。图2b是本发明实施例的APB总线桥的接口时序转换和控制模块的电路构成框 图2b中:151—状态机,152—数据FIFO控制逻辑单元,153—控制FIFO控制逻辑单元,154—寄存器。图3a是的APB总线桥控制方法流程 图3a中,A—读出传输请求信息子流程,B—执行时序转换子流程。图3b是的APB总线桥接口时序转换和控制模块从控制FIFO模块和数据FIFO模块中读出包含传输请求信息的子流程图。图3c是的APB总线桥执行时序转换子流程图。图4是根据本发明实施例APB总线桥接口时序转换和控制模块的状态机的状态转换示意 图4中:pclk_en—时序转换控制信号高电平, pclk_en—时序转换控制信号低电平,valid一有效传输信号高电平, valid—有效传输信号低电平,pwrite一APB外设写读信号高电平, pwrite—APB外设写读信号低电平。图5是本发明实施例AHB总线连续写传输的时序图。图6是本发明实施例AHB总线连续读传输的时序图。图7是本发明实施例AHB总线读写交叉传输的时序图。图8是本发明实施例AHB与APB总线时钟为四分频时APB总线桥读写传输的时序图。图9是本发明实施例AHB与APB总线时钟相同时APB总线桥读写传输的时序图。
具体实施例方式通过结合附图对发明的实例进行详细描述,本发明的上述和其他目的、特征、优点将会变得更加清楚,其中:
下面结合说明书附图和实施例进一步说明本发明的技术方案。实施例1
图1描述本发明实施例的APB总线桥的构成框图。本发明实施例的APB总线桥I包括:AHB总线接口 11,APB总线接口 12,控制FIFOl3,数据FIF014,接口时序转换和控制模块15。从图1中,本专业领域人员可以清晰看清AHB总线主设备的传输请求信号和APB总线桥控制信号的连接关系,从而理解构成本发明技术方案的重要技术特征:
(I)接口时序转换和控制模块15输出的准备信号hready连接AHB总线接口 11,准备信号hready经过AHB总线接口 11连接到挂在AHB总线上的AHB主设备。(2)外部电路根据pclk产生一个时序转换控制信号pclk en,用于保证寄存器setup time和hold time, pclk_en的产生的具体方法是:若pclk是由hclk分频产生,pclk_en= pclk_delay &pclk, pclk_delay 相对于 pclk 滞后一个 hclk 周期,即外部电路用hclk采样pclk的上升沿。在特殊情况下,pclk=hclk,则pclk_en=l。pclk_en是完成时序转换的一个握手信号。(2) APB总线桥的电中包含两类不同功能的子模块;
两个FIFO模块,两个FIFO模块结构和功能一样,一个用来缓存控制信号,另一个用来缓存数据,由于AHB总线采用的是流水线结构,地址比数据早一拍到达,FIFO读写时序不一致,所以需要将控制信号和数据的FIFO分为两个模块,分开控制,在读FIFO的过程中同时进行接口转换;FIF0模块的功能是将AHB发来的数据和控制信号进行暂存,当时钟信号pclk的时钟频率低于hclk的时钟频率时,对暂存的数据和控制信号处理速度较慢,数据和控制信号也不会丢失。对于不需要从APB总线得返回数据的写传输,将控制信号和数据暂存入FIFO中,就可以释放总线,就可进行别的操作,由此可见,写传输在一个hclk就可以完成。AHB总线协议为流水线结构,协议规定数据传输比地址和控制信号传输延迟一拍,故数据写入FIFO的时间也要比控制信号写入FIFO晚一个hclk周期。当FIFO模块收到有效传输时,就将地址和控制信号写入控制FIFO模块,同时等下一个时钟周期,再将数据写入FIFO模块。接口时序转换和控制模块将控制信号和数据从FIFO中读出后进行相应的变换输出,由状态机控制实现同步。接口时序转换和控制模块对写操作和读操作都作为有效传输的状态,由连接APB总线桥的APB总线上的外设自行区分。这样既简化了电路又可避免出错。图2a给出本发明实施例的APB总线桥的电路构成框图;AHB总线接口 11连接AHB总线21,使得APB总线桥I能够通过它与AHB总线上的AHB主设备221 22η通信。APB总线接口 12经APB总线24连接APB总线外设251 25η,使得APB总线桥I能够通过它与APB总线外设251 25η通信,在本质上,APB总线桥I可视为AHB总线从设备,它和AHB总线从设备231 —样,接口和使用方法也相同。参见图2a,APB总线桥I对接收到AHB总线主设备221 22η中任一主设备发来的传输请求进行有效传输判断,若判断为有效传输请求,将该传输请求的数据、地址和控制信号分存于两个队列缓存的控制FIF013中和数据FIFO 14中。如果传输请求为写请求,不占用AHB总线,接口时序转换和控制模块仍将hready信号置于高电平,表明传输完成,AHB总线主设备,其检测到hready信号为高电平,可以开始下一轮传输,而如果不加FIF014,则必须等待APB总线桥将数据写到APB从设备25η后,才放弃对AHB总线的占用。因而提高了写请求的处理效率,同时支持连续写传输快速处理。图2b示出本发明实施例的APB总线桥的接口时序转换和控制模块的电路构成框图。接口时序转换和控制模块15的电路构成包括状态机151、数据FIFO控制逻辑单元152、控制FIFO控制逻辑单元153和寄存器154。状态机151分别连接控制FIFO模块13和数据FIFO模块14的状态指示端,状态机151的二个控制信号输出接口分别对应连接控制FIFO控制逻辑单元152和数据FIFO逻辑单元153的控制信号端,控制FIFO控制逻辑单元152的控制逻辑输出端连接控制FIFO模块13的控制逻辑信号端,数据FIFO控制逻辑单元153的控制逻辑输出端连接数据FIFO模块14的控制逻辑信号端。接口时序转换和控制模块15的工作过程描述如下:APB总线桥得电,启动接口时序转换和控制模块15的状态机151,状态机151的二个控制信号接口分别读入控制FIFO模块13和数据FIFO模块14输出的存储状态信息,状态机151处理,判断控制FIFO模块13和数据FIFO模块14输出的存储状态信息均为“空”后,生成的准备信号hready置为高电平。如果接收到有效的第一个传输请求,就将第一个请求信息I经输入端存储到控制FIFO模块13,同时将第一个请求信息2经输入端存储到数据FIFO模块14。若还有第二个传输请求,同样,第二个请求信息I经输入端存储到控制FIFO模块13,同时有第二个请求信息2经输入端存储到数据FIFO模块14。以此类推,直到控制FIFO模块13和数据FIFO模块14存储状态为“满”,状态机则将输出到AHP总线的准备信号hready置为低电平,状态机151处于等待状态,AHP总线主设备的传输请求就等待发送。在ABP总线桥接收第一传输请求之后,状态机151就将外部电路输入时钟pclk,生成时序转换控制信号pclk_en,完成AHP to ABP总线时序匹配转换,同时状态机151向控制FIFO控制逻辑单元152和数据FIFO控制逻辑单元153发出控制FIFO逻辑信号。状态机151按先进先出原则从二个控制信号接口分别读出控制FIFO模块13和数据FIFO模块14输出的存储信息,经状态机151处理后,让相应的AHP总线主设备获得ABP总线访问权,完成相应的传输请求操作。状态机151还连接寄存器154,寄存器154是psel_d寄存器,当执行读传输操作且状态机处于有效传输状态,并需要回传APB外设的数据时,状态机151将该APB外设的片选地址信息寄存在psel_d寄存器中。在回传APB外设数据时亥IJ,根据psel_d寄存器中的片选地址信息,选取APB外设的数据,准确地完成数据回传。图3给出本发明APB总线桥控制方法的控制流程图,如图3所示,APB总线桥上电后,开始进入控制流程:
步骤S301,APB总线桥输出准备信号hready的产生与控制,根据APB总线桥状态产生准备信号hready并对其作高低电平配置:空闲状态为高电平,准备状态以及有效传输状态的传输执行中为低电平;AHB总线主设备根据准备信号hready配置为高电平就可自主确定发送传输请求;
步骤S302,APB总线桥判断接收AHB总线主设备发送传输请求是否有效;若准备信号hready信号、AHB主设备片选信号hsel和AHB传输有效类型信号htrans信号三者同时有效,判断为“是”,将传输有效信号valid置为高电平,进入步骤S303 ;若为“否”,APB总线桥接口时序转换和控制模块继续判断,等待接收有效的传输请求;
步骤S303,APB总线桥接收到有效的AHB总线主设备传输请求,将传输请求信息:AHB读写信号hwrite、AHB地址信号haddr写入到控制FIFO模块中;hwdata、AHB主设备片选信号hsel和AHB传输有效类型htrans写入到数据FIFO模块中;同时,还将AHB传输请求有效信号valid作为写使能信号延迟一个时钟周期hclk,用来作为数据FIFO的写使能;鉴于AHB总线协议的流水线机制,地址比数据早一拍发出,存入控制FIFO中的信号比存入数据FIFO中的数据早一拍;
步骤S304,APB总线桥同时判断控制FIFO和数据FIFO是否为满,判断APB总线是否被当前传输占用而不空闲;若当前是AHB主设备占用APB总线的读传输,无论两个FIFO模块存储是否满,则判断为“是”,跳转到步骤S301,将准备信号hready置为低电平,其他AHB主设备等待发送传输请求;返回等待下一次判断;若两个FIFO不满并且当前是不占用APB总线的写传输,判断为“否”,进到步骤S305 ;
步骤S305,接口时序转换和控制模块同时从控制FIFO和数据FIFO中读出相关的传输请求信息;连接读出传输请求信息子流程A,将APB地址paddr、APB外设写读控制信号pwrite、APB写数据pwdata、APB外设片选信号psel信号经APB总线接口输出给APB总线外设;
步骤S306,APB总线桥判断传输请求是否为读传输,设定APB外设写读控制信号pwrite高电平为“是”,则是读传输请求,跳转到步骤S301,将准备信号hready配置为低电平;同时进入步骤S307和步骤S308 ;若APB外设写读控制信号pwrite低电平为“否”,则跳转步骤S309 ;
步骤S307,根据连接APB总线桥的AHB总线与APB总线的接口时序匹配状态,产生时序转换控制信号pclk_en,APB总线桥执行AHB to APB总线异步时序的匹配转换;连接时序转换子流程B ;若两总线时序为同步,则不执行时序匹配转换,时序转换控制信号pclk_en为高电平;
步骤S308,同时,释放APB总线控制权,AHB总线主设备占用APB总线,访问APB总线外设,进行读传输操作;并转步骤S311 ;
步骤S309,判断传输请求为是否为写,并两个FIFO模块是否不满,若传输请求是写传输并且两个FIFO模块是不满,则为“是”,进入步骤十;否则,返回步骤三;
步骤S310,从APB总线外设读出回传数据,按照psel_d寄存器中寄存的APB外设片选信号psel,控制回传APB读数据prdata的数据回传;
步骤S311,判断当前传输对APB总线访问是否完成,并两个FIFO是否为空;若“是”,跳转步骤S301,将准备信号hready置为高电平;若“否”,则返回步骤S305,继续读两个FIFO中的信息,重复操作直到两个FIFO为空,两个FIFO中所有数据读出后,hready信号置为高电平,APB外设写读信号为低电平( pwrite),有效传输信号为低电平( valid),APB总线桥从有效传输状态转入空闲状态;
步骤S312,APB总线桥结束有效传输状态,跳转到空闲状态,等待新的一轮传输请求和访问。图4是接口时序转换和控制模块的状态机控制APB总线桥在空闲状态、准备状态和有效传输状态之间转换的示意图。图4中示出了 APB总线桥的状态转换与相关控制信号的关系。空闲状态:当APB总线桥没有传输请求时,有效传输信号valid为低电平时,状态机处于空闲状态。有效传输状态:当状态机满足valid & pclk_en条件,有效传输信号valid为高电平并且时序转换控制信号pclk_en为高电平时,状态机则从空闲状态跳转至有效传输状态。
准备状态:当满足valid & "pclk_en条件,有效传输信号valid为高电平并且时序转换控制信号pclk_en为低电平时,状态机则从空闲状态跳转至准备状态。在空闲状态下,只要有效传输信号valid为高电平,就进入准备状态,将APB地址paddr、APB读数据pwdata和APB外设写信号pwrite读出,不用等待pclk_en为高电平,直接译码后经APB总线接口提供给APB总线外设,但不进行APB外设的操作。只有当满足pclk_en条件时,状态机则从准备状态跳转至有效传输状态,在有效传输状态下才将APB外设片选信号psel置为高电平,此时才进行APB外设的操作。在有效传输状态,当满足( valid or pwrite)& pclk_en条件,valid或pwrite信号为低电平并且时序转换控制信号pclk_en为高电平时,则从有效传输状态跳转至空闲状态。本发明APB总线桥不区分写传输和读传输,都当作有效传输处理,由APB总线外设根据pwrite信号电平作判断,pwrite高电平为写传输,pwrite低电平为读传输,简化了状态机的控制机制。由于写传输不需等待返回数据,所以在一个周期内就完成写传输操作。状态机在有效传输状态下,可以进行连续写操作。如果在有效传输状态下,下一次是满足valid &pwrite条件的有效传输是写传输,则无需返回空闲状态,继续当前有效传输状态。或者如果下一次是满足"pclk_en条件,pclk_en为低电平,则继续停留在当前有效传输状态。如果下一次是满足"pwrite & pclk_en条件,APB外设读写信号pwrite为低电平时,对APB外设的读操作,则跳转回空闲状态。或者满足'alid & pclk_en条件,有效传输信号valid为低电平,则跳转回空闲状态。APB总线桥在回空闲状态等待新的传输请求的到来。如果只设空闲状态和有效传输状态,在valid信号有效时不参考pclk_en信号便跳转至有效传输状态,可能使有效传输状态的时间超过一个pclk周期,容易出现传输操作的错误。为了防止出现传输操作错误,本发明还设置准备状态。准备状态时有效传输信号valid为高电平,表明当前有一个有效传输,只等待pclk_en信号为高电平时立即跳转到有效传输状态,保证valid_trans状态持续一个pclk周期,可以有效防止出现重复采样而发生重复传输。APB总线桥时序转换时,都要参考时序转换控制信号pclk_en,APB总线桥通过状态机控制paddr、pwrite、pwdata的有效周期,来实现时序匹配转换。设置准备状态是将状态划分更清晰,并不影响访问速度。有效传输状态的开始和结束都是必须参照有效传输信号valid和时序转换控制信号pclk_en,保证在有效传输状态持续一个pclk周期。带FIFO模块的APB总线桥,时序转换控制信号pclk_en对来自AHB总线主设备请求传输信号进行缓存,对一个读传输操作的访问速度有一点影响,但实际上加快了写操作尤其是连续写操作的传输速度。同时,省去了 APB总线传输的使能信号penable,加快了对APB总线外设的访问速度。由此可见,本发明APB总线桥显著加快了速度。实施例一
图5所示本发明实施例AHB总线与APB总线异步时钟情况下,AHB总线连续写传输操作的时序图。结合图5示例进一步说明本发明实施例连续写传输的队列缓存控制机制,是加快写传输操作速度的构思。通常两总线考虑功耗的因素,APB总线时钟pclk都会比AHB总线时钟hclk要慢,APB总线外设处理的速度也相对较慢。图5中给出的AHB总线和APB总线的时钟信号分别为hclk和pclk,示例设定时钟pclk为时钟hclk的二分频,接口时序转换信号pclk_en是对时钟pclk上升前沿采样形成,波形与时钟pclk相同。实施例总线主设备发送连续写传输时的传输操作时序描述如下:
在AHB总线时钟hclk的Tl时刻,APB总线桥输出的准备信号hready为高电平,AHB总线主设备就发送访问APB总线外设的传输请求。该传输请求包括高电平的写传输信号hwrite,由此可知AHB总线主设备要发的是写传输请求,AHB地址信号haddrl为目的地址
I。在T2时刻,AHB总线主设备发送出要写入目的地址haddrl的数据hwdatal。在Tl- T2时刻,APB总线桥接收到上述传输请求,而且hready信号为高电平,执行当前请求。本发明实施例的APB总线桥将目的地址haddrl和当前的写传输信号hwrite存入控制FIFO模块13,将数据hwdatal存入数据FIFO模块14中。本实施例设定在Tl- T2时刻中没有其他AHB总线主设备发送传输请求,不抢占总线而使hready信号置为低电平,故hready信号仍维持在高电平。从图5可知,继第I个写传输请求之后,在T2、T3、T4时刻还有3个连续的写传输请求,APB总线桥I采取对第I次请求同样的操作,按顺序依次将请求的目的地址和数据分存FIFO模块13和14中,在连续写的操作过程中,hready信号一直为高电平,表明当前的写传输一拍就完成,并不多占用总线。从AHB总线上看,四个连续的写操作在T6时刻完成,但由于FIFO模块的缓存功能,实际上APB总线从T4时刻才开始响应第一次请求,APB总线外设片选信号psel为高电平,在T5时刻才将数据hwdatal写入对应的APB总线外设251对应的存储器或寄存器中。单一操作看起来较慢,但对AHB总线主设备221来说,在T3时刻目的地址为haddrl的写请求已经完成,并不用等待数据pwdatal和目的地址paddrl真正写入到APB总线外设251的存储器或寄存器中,而可进行其他的处理,这对AHB总线主设备221和AHB总线来说,访问速度是提高了。由图5可见,在T1、T2、T3、T4时刻发出的4次连续写请求,从Τ4- T9时刻APB总线外设片选信号psel维持为高电平,分别在T5、T7、T8、T9时刻pclk的上升沿,数据pwdatal pwdata4和目的地址paddrl paddr4被写入到APB总线外设251对应的寄存器中,4次连续写请求操作占有AHB总线共花费5个pclk时钟周期。APB总线会根据请求的先后顺序依次执行所有的请求,APB总线一直接受访问,直到二个FIFO模块中请求队列为空,APB总线桥输出的准备信号hready为高电平,APB总线桥回到准备状态。从图5片选信号psel高电平有效可见,4个写请求占用APB总线的时间为4个pclk时钟周期,每个写请求操作占用总线的时间为I个pclk时钟周期。加入两个FIFO模块可以缩短写请求所需的时间,显著加快写传输的速度,使得本发明实施例的APB总线桥就像AHB总线的一个从设备,有利于提高上位系统的性能。实施例二
图6是本发明AHB总线与APB总线异步倍频的单次读传输的时序图,如图6中所示,AHB总线与APB总线时钟以及时序转换控制信号与图5相同。假设在Tl时刻之前,控制FIFO模块13和数据FIFO模块14中存储的请求队列都已经读完,两FIFO模块存储状态为空。实施例设定AHB总线主设备221向APB总线外设251发送的单次读传输操作的时序图描述如下:
Tl时刻,APB总线桥输出的准备信号hready为高电平,AHB总线一个主设备221发出一次读传输请求,该读传输请求包括读写传输信号hwrite为低电平(即读操作),目的地址为haddrl。T2时刻,APB总线桥接收到AHB总线主设备221的读传输请求,立即将hready信号置为低电平,让该主设备221获得总线使用权。在本APB总线桥中,只要有请求无论读或写都先写入控制FIFO模块13中,由于读请求是没有数据的假信号dummy,读传输也要将dummy数据存入数据FIFO模块14中,保持读请求与写请求在控制FIFO模块13和数据FIFO模块14中队列一致性,从而简化逻辑和控制。若两个FIFO模块中前面没有排队等待响应的请求队列,在数据写入FIFO模块14后,则APB总线桥判断FIFO模块14不空,就将低电平的读写传输信号hwrite和目的地址haddrl从控制FIFO模块13中读出。没有数据的假信号dummy数据hrdata也从数据FIFO模块14中读出,但是在读传输时假信号dummy不写入APB总线外设251的寄存器中。经过两个时钟周期hclk的T3时刻,若APB总线要回传外设251有回传数据,则将APB总线外设251片选信号psel置为高电平,经对片选信号psel译码获得APB总线外设251的地址paddr为paddrl。在下一个pclk上升沿到来的T4时刻,把来自地址为paddrl的APB总线外设251的回传数据prdata返回。在T5时刻,回传数据prdata输送给AHB总线上目的地址为haddrl的AHB总线主设备221,这时一次读传输请求操作过程完成,同时将准备信号hready置为高电平,释放总线,APB总线桥回到准备状态。从图6中片选信号psel高电平有效可见,占用APB总线的时间为2个pclk时钟周期,读请求需要返回数据,比写请求长一些。实施例三
图7示出本发明实施例APB总线桥的连续写和连续读交叉传输流程的序图,如图7中异步时钟的AHB总线与APB总线以及时序转换控制信号pclk_en与图5相同。设在Tl时刻之前,控制FIFO模块13和数据FIFO模块14都全部读出,即两个FIFO模块存储状态为空,准备信号hready置为高电平,生成时序转换控制信号pclk_en,状态机处于等闲状态。Tl时亥IJ,一个AHB总线主设备221发出连续的两个写传输请求,写请求信息包括高电平的读写传输信号hwrite即写传输的操作,目的地址haddrl和haddr2,写数据hwdatal和hwdata2。在Tl时刻,APB总线桥接收并判断一个有效的写传输请求,对于写传输,APB总线桥也可视为一个AHB总线从设备,不占用APB总线。有效传输信号valid置为高电平,状态机从等闲状态跳转到有效传输状态,把写数据hwdatal写入目的地址为haddrl的一个APB总线外设251中。在T2时刻,AHB总线主设备221继续发出写请求,连续的第二个写请求与第一个写请求一样,不占用APB总线,不会影响APB总线的使用,把写数据hwdata2写入目的地址为haddr2的一个APB总线外设252中。在2个时钟周期内,连续完成了两个写传输的操作。在T3时刻,准备信号hready仍为高电平,AHB总线主设备221需要连续发出两个读传输请求,读请求包括低电平的读写传输信号hwrite (即读操作),目的地址haddr3和haddr4。两个读传输请求只能逐一读出并逐一执行。在T3时刻,APB总线桥接收到AHB总线主设备221发出并判断为有效的第一个读传输请求,APB总线桥检测到读传输,将hready信号置为低电平,AHB总线主设备221的第二个读传输请求以及其他AHB总线主设备的传输请求只能等待发送,在图7中可以看到,haddr4的读传输被延迟等待响应。在T4时亥Ij,写数据hwdata2发给以后,前两个写传输都已经完成,AHB总线主设备就可进行其他传输请求操作。实际上,APB总线桥在接收haddr3的读请求的时候前两个写传输并没有真正完成,haddr3的读请求处于排队状态,在T5时刻,pwatal才被写入APB外设251中。在T6时刻,APB外设才将prdata3返回,下一个时刻输出给hrdata3,同时释放总线将hready信号置为高电平,此时FIF013 和 FIF014 也已清空,haddr4, hwrite, hwdata4 被写入 FIF013、FIF014 中待执行。在读出FIFO的时间,paddr和prdata数据都是dummy,无效的。在T8时刻,paddr4有效,在T9时刻即一个pclk周期后,prdata4被返回。可以看到连续写请求的效率很高,因为有了FIFO可以连续处理请求,同时也不会产生读写错误。在读请求的这种情况下须等待返回数据后才能进行下次请求,避免数据返回错误,这样四次传输完成的时序很清楚的表示出来。以上的时序图示例的时钟都是一样的,都是pclk由hclk分频产生,示例中为了简化起见,采用的是二分频,对于其他三分频、四分频等类似这样的分频时钟,原理是一样的,只是时钟快慢的问题。实施例四
图8是本发明实施例AHB与APB总线时钟为四分频时APB总线桥读写传输的时序图。图中APB总线时钟pclk与AHB总线时钟hclk为四分频,图中占空比和图5、图6中不一致,pclk与hclk时钟的相位相同,pclk的频率是hclk的四分之一。在这种时钟关系下,APB总线桥实现时序匹配转换,同样正确完成传输。图8示例的是两次连续的读请求传输的时序,设定AHB总线主设备为221,APB总线外设为251。在Tl时刻,准备信号hready为高电平,产生时序转换控制信号pclk_en,AHB总线主设备221发出读请求,读请求信息包括haddrl, hwrite低电平为读传输类型。APB总线桥接收到判定为有效的读请求后,有效传输信号valid为高电平,状态机从空闲状态跳转到有效传输状态,将读请求信息存入一对FIFO模块中。在T2时刻,一对FIFO模块中读出该读请求信息,同时将准备信号hready置为低电平,AHB总线主设备为221后面的读传输请求处于等待发送,有效传输信号valid为低电平,状态机从有效传输状态返回空闲状态。直到T4时刻,APB外设251返回数据prdatal完成回传。在T5时刻,准备信号hready又置为高电平。从图8中可以看出,虽然paddrl信号在下次请求到来之前不变,但是APB外设251的片选信号psel只持续一个pclk周期,这样避免APB外设251重复传输。在T5时刻,APB总线桥接收到haddr2的判断为有效读传输请求,有效传输信号valid为高电平,状态机从空闲状态跳转到有效传输状态,并存入一对FIFO模块中。从T6时刻开始,APB总线桥从一对FIFO模块中读出haddr2的读请求信息,hwrite为低电平,开始响应haddr2的读传输。直到T7时刻,返回数据prdata2完成回传。这两个读传输的控制都是在接口时序转换和控制模块的控制下完成,时序转换控制信号pclk_en通过控制接口时序转换和控制模块的状态机完成时序转换的握手,同时完成状态机的状态跳转。实施例五
图9给出本发明实施例AHB与APB总线时钟相同时APB总线桥读写传输的时序图。图9中pclk与hclk时钟相同,图9示例是五次连续的读写传输,第I个请求为读传输请求,第2-3个请求为写传输请求,第4-5个请求为读传输请求,而且写传输和读传输交叉进行。由于本例AHB与APB时钟相同而不进行时序转换,此时pclk_en —直为高电平,这样可以保证paddr、pwdata、psel的有效周期是一个hclk时钟周期。传输请求操作流程简述如下:参见图9,上电后hready信号置为高电平,在Tl时刻发出的haddrl读请求,APB总线桥接收并判定为有效的读请求,有效传输信号valid为高电平,读出读请求信息,在T2时刻hready信号置为低电平,直到T4时刻,返回的数据hrdatal读回,第一个度请求传输完成,hready信号又置为高电平,同时APB总线桥接收后续的请求,并写入一对FIFO中,由于haddr2、haddr3是写请求,不延长总线的占用时间,hready信号维持高电平,这样haddr4的请求也被APB总线桥接收,存入FIFO中等待执行。在T5时刻haddr2和haddr3两个写请求都已完成,同时从FIFO中读出haddr4读请求信息,执行读传输,APB总线桥将hready信号置为低电平,haddr5请求处于等待发送,直到在T8时刻将haddr4读请求返回的数据hrdata4读回,完成haddr4读请求传输,hready信号又置为高电平,APB总线桥再接收haddr5,将haddr5的读请求写入FIFO中,读出haddr5的读请求信息,直到将将haddr5读请求返回的数据hrdata5读回。 以上所述仅结合实施例作具体描述,任何熟悉此类技术者运用本发明方法对一种改进的AHB to APB总线桥的硬件电路及其模块所作的修饰、变化,皆属本发明主张的专利范围,而不限于上述的实例。
权利要求
1.一种改进的APB总线桥的控制方法,连接在AHB总线与APB总线之间的带FIFO的APB总线桥的控制方法包括以下构思: (1)APB总线桥通过其电路构成中配置的一个接口时序转换和控制模块以及一对FIFO模块,由接口时序转换和控制模块根据APB总线桥状态的生成并输出准备信号hready,经AHB总线送到各AHB总线主设备; (2)APB总线桥输出准备信号hready作为APB总线桥允许AHB总线主设备发送传输请求的判断信号,hready为高电平,AHB总线主设备自主发送传输请求,准备信号hready为低电平,AHB总线主设备等待发送传输请求; (3)APB总线桥视为AHB总线从设备,在准备信号hready为高电平时,APB总线桥能接收多个AHB总线主设备发送的传输请求,并对多个AHB总线主设备发送的传输请求,按照其发送时间先后逐一进行有效请求判断,并将有效传输请求的信息分类对应存入一对FIFO模块中;总线接口如果有有效传输请求,将有效传输信号valid置为高电平,并将该高电平延迟一个时钟周期作为数据FIFO的写控制信号; (4)一对FIFO模块分为控制FIFO模块和数据FIFO模块,控制FIFO模块存储AHB总线主设备发送的传输请求的,数据FIFO模块存储AHB总线主设备发送的传输请求的数据类信息;一个传输请求的控制类信息先存入,数据类信息滞后一个时钟周期存入,两类信息读出时分类同步读出; (5)APB总线桥通过接口时序转换和控制模块以及外部电路pclk时钟,产生时序转换控制信号pclk_en,控制实现AHB to APB总线接口时序的匹配转换,以便使AHB总线主设备获得APB总线占用权,并完成对APB总线外设传输操作的访问控制; (6)APB总线桥的接口时序转换和控制模块判断下次传输类型为连续的写传输操作,则保持AHB总线主设备对 APB总线的访问权,使APB总线上每次写传输操作时间为I个时钟周期,加速完成二次以上连续写传输操作,从而显著提高APB总线桥的传输操作速度; (7)时序转换控制信号pclk_en兼为完成时序转换的握手信号,用以使APB总线桥实现多种不同时序下稳定可靠的信号传输; (8)APB总线桥的接口时序转换和控制模块对读传输操作和写传输操作都视为一次有效传输操作,由连接APB总线的APB总线外设自行区分,既可简化APB总线桥电路功能,又能避免传输操作出错; (9)APB总线桥的有效传输使能信号penable—直置为“0”,即低电平,传输控制流程省略对使能信号penable的判断操作;既能加快传输控制过程,又不需改变APB总线外设的接口,使APB总线桥兼容AHB总线和APB总线上的存储器接口 ; (10)APB总线桥对运行实行空闲状态、准备状态和有效传输状态控制;由接口时序转换和控制模块的状态机控制APB总线桥在空闲状态、准备状态和有效传输状态之间按转换条件转换状态,实现接口时序匹配转换以及读、写传输请求的可靠传输操作。
2.根据权利要求1所述APB总线桥的控制方法,其特征在于:所述 AHB总线与APB总线之间的带FIFO的APB总线桥的控制流程包括以下步骤: 步骤一、APB总线桥输出的准备信号hready的产生与控制,根据APB总线桥的状态产生准备信号hready并对其作输出电平配置:空闲状态为高电平,准备状态以及有效传输状态的传输执行中为低电平;AHB总线主设备根据准备信号hready配置为高电平就可自主确定发送传输请求; 步骤二、APB总线桥判断AHB总线主设备发送的传输请求是否有效;判断为是,进入步骤三;判断为否,则返回继续判断;判断接收AHB总线主设备发送传输请求是否有效:若准备信号hready信号、AHB主设备片选信号hsel和AHB传输有效类型信号htrans信号三者同时有效,判断为“是”,将传输有效信号valid置为高电平,进入步骤三;若为“否”,APB总线桥接口时序转换和控制模块继续判断,等待接收有效的传输请求; 步骤三、APB总线桥接收到AHB总线主设备发送的有效传输请求,将传输请求所带的地址和读写控制信号,以及有效数据对应分存入控制FIFO模块和数据FIFO模块中;同时,还将AHB传输请求有效信号valid作为写使能信号延迟一个时钟周期hclk,用来作为数据FIFO的写使能;鉴于AHB总线协议的流水线机制,地址比数据早一拍发出,存入控制FIFO中的信号比存入数据FIFO中的数据早一拍; 步骤四、APB总线桥同时判断控制FIFO模块和数据FIFO模块是否为为满,判断APB总线是否被当前传输占用而不空闲;若当前是AHB主设备占用APB总线的读传输,无论两个FIFO模块存储是否满,则判断为“是”,转步骤一,将APB总线桥hready信号为低电平;若两个FIFO不满并且当前是不占用APB总线的写传输,判断为“否”,进到步骤五; 步骤五、接口时序转换和控制模块,同时从控制FIFO模块和数据FIFO模块中读出相关的传输请求信息;将APB地址paddr、APB外设写读控制信号pwrite、APB写数据pwdata、APB外设片选信号psel信号经APB总线接口输出给APB总线外设; 步骤六、APB总线桥判断请求传输为读传输,设定APB外设写读控制信号pwrite高电平为“是”,则是读传输请求,跳转到步骤一,将准备信号hready配置为低电平;同时进入步骤七和步骤八JEhready置为低电平;若APB外设写读控制信号pwrite低电平为“否”,则跳转到步骤九; 步骤七、根据连接APB总线桥的AHB总线与APB总线的接口时序匹配状态产生时序转换控制信号pclk_en, APB总线桥执行AHB to APB总线异步时序的匹配转换; 步骤八、同时,释放APB总线控制权,AHB总线主设备占用APB总线,访问APB总线外设,进行读传输操作;并转步骤十一; 步骤九、判断传输请求信号是否为写并且两个FIFO模块是否为不满,若为“是”,转步骤十;否则,返回步骤三; 步骤十、从APB总线外设读出回传数据,按照psel_d寄存器中寄存的APB外设片选信号psel,控制回传APB读数据prdata的数据回传; 步骤十一、判断当前传输对APB总线访问是否完成,并且两个FIFO为空,若“是”,跳转步骤一,将准备信号hready置为高电平;若“否”,则返回步骤五,继续读两个FIFO中的信息,重复操作直到两个FIFO为空;两个FIFO中所有数据读出后,hready信号置为高电平,APB总线桥从有效传输状态转入空闲状态; 步骤十二、APB总线桥结束有效传输状态,跳转到空闲状态,等待新的一轮传输请求和访问。
3.根据权利要求2所述APB总线桥的控制方法,其特征在于:所述步骤一 APB总线桥输出的准备信号hready的产生与控制的条件如下: (31)APB总线桥的接口时序转换和控制模块判断作为缓存的两个FIFO模块的空满状态以及执行传输请求的读写类型,将准备信号hready置为高电平或低电平的条件是: (311)上电时两个FIFO模块存储状态都为空且APB桥处于空闲状态,将准备信号hready置为高电平; (312)写入到FIFO模块中执行传输请求的类型为读传输时,将准备信号hready置为低电平; (313)两个FIFO模块存储状态都为满或APB总线占用时,将准备信号hready置为低电平; (314)两个FIFO模块的存储状态都为未满时,且上一次传输请求为写传输时,将准备信号hready保持为高电平; (315)两个FIFO模块中所有的写请求被读出以及最后一个读请求被读出并读出回传相应的数据时,将准备信号hready置为高电平; (32)APB总线桥输出的准备信号hready控制AHB总线主设备发送传输请求的条件: (321)准备信号hready为高电平,接受AHB总线主设备发送的传输请求; (322)准备信号hready为低电平,则AHB总线主设备等待发送传输请求。
4.根据权利要求2所述APB总线桥的控制方法,其特征在于:步骤五所述的接口时序转换和控制模块同时从控制FIFO模块和数据FIFO模块中读出的相关传输请求信息子流程包括以下步骤: (41)根据读出的相关传输请求信息通过地址译码以及接状态机的状态,转换成APB外设片选信号psel,并将生成的APB外设片选信号psel寄存到psel_d寄存器中; (42)根据读出的传输地址和数据生成APB外设地址paddr和APB写数据pwdata; (43 )根据读出的传输请求的AHB写读信号hwrite,生成APB外设写读控制信号pwrite, pwrite高电平为写操作,无需返回数据,pwrite低电平为读操作,需返回对应的数据; (44)按psel_d寄存器中存储的片选信息,从APB外设选择对应的APB读数据prdata回传。
5.根据权利要求1或2所述APB总线桥的控制方法,其特征在于:步骤七所述的APB总线桥执行AHB to APB总线异步时序的匹配转换的子流程,包括以下步骤: (51)根据外部总线时钟信号hclk和pclk,接口时序转换和控制模块用hclk对pclk的上升沿进行采样,产生时序转换控制信号pclk_en ; (52)接口时序转换和控制模块通过时序转换控制信号pclk_en控制状态机的状态转换,使下一个传输请求的地址和控制信号以及数据提前读出; (53)控制状态机的状态转换,保证APB桥模块寄存器的输出满足pclk的建立时间setup time 和保持时间 hold time。
6.根据权利要求1-5所述APB总线桥的控制方法,其特征在于,所述一个控制FIFO模块以及另一个数据FIFO模块为功能完全相同的先进先出存储器,通过初始化可配置存储器的存储容量。
7.一种改进的APB总线桥,其电路构成包括连接到AHB总线的AHB总线接口和连接到APB总线的APB总线接口,其特征在于,电路构成还包括: 一个接口时序转换和控制模块,以及一个控制FIFO模块和一个数据FIFO模块; 所述接口时序转换和控制模块连接AHB总线接口,用于将接口时序转换和控制模块产生的APB总线桥输出的准备信号hready,通过AHB总线接口送到AHB总线主设备;将AHB总线主设备的片选信号hsel和AHB传输有效信号htrans,通过AHB总线接口送到接口时序转换和控制模块;接口时序转换和控制模块连接APB总线接口,用于将APB外设片选信号psel, APB外设写读控制信号pwrite,使能信号penable, APB写数据pwdata, APB地址paddr,经APB总线接口送到APB总线的从设备,而APB总线的从设备的APB读数据prdata经APB总线接口送到接口时序转换和控制模块;接口时序转换和控制模块产生控制地址和数据的锁存控制信号,控制上述二个FIFO模块的读写操作;接口时序转换和控制模块还连接外部的时钟信号pclk,用于生成时序转换控制信号pclk_en,配合完成AHB to APB总线的时序匹配转换; 所述的控制FIFO模块和数据FIFO模块均为传输请求的信号和数据的先进先出存储器;控制FIFO模块和数据FIFO模块的一个输入端口分别对应连接AHB总线接口,另一个输入端口分别对应连接接口时序转换和控制模块的一个I/O 口,它们的输出端口分别连接接口时序转换和控制模块的一个I/O 口 ;用于配合接口时序转换和控制模块,使APB总线桥适应AHB时钟和APB时钟不同时序的匹配转换要求,并实现加快APB总线桥的传输速度。
8.根据权利要求7所述的APB总线桥,其特征在于,所述接口时序转换和控制模块包括状态机、数据FIFO控制逻辑单元和控制FIFO控制逻辑单元以及一个寄存器;其中 所述状态机为控制单元MCU,状态机的二个控制接口一一对应连接数据FIFO控制逻辑单元和控制FIFO控制逻辑单元,状态机的二个数据接口一一对应连接模块外的数据FIFO和控制FIFO ;状态机用于为APB总线桥提供状态控制信号,使APB总线桥处于空闲状态、准备状态以及有效传输状态中的一个状态,用以保证在AHB总线和APB总线时序不匹配时完成时序匹配转换,实现正常读写传输操作,从而简化APB总线桥电路结构,避免状态转换出错; 所述数据FIFO控制逻辑单元的输入端口连接状态机,其输出端口连接数据FIFO的控制端口 ;用于对数据FIFO的读写传输操作实施控制,并输出数据FIFO的当前请求队列的存储状态,数据FIFO的队列存储状态包括满、空、写传输以及读传输; 所述控制FIFO控制逻辑单元的输入端口连接状态机,其输出端口连接控制FIFO的控制端口 ;用于对控制FIFO的读写操作实施控制,并输出控制FIFO的当前请求队列的存储状态,控制FIFO的存储状态包括满、空、写传输以及读传输; 所述寄存器是psel_d寄存器,用于寄存APB外设片选地址信号psel ;寄存器为内部独立的psel_d寄存器。
9.根据权利要求7所述的APB总线桥,其特征在于,所述APB总线桥输出的准备直^hready为AHB总线主设备与APB总线桥之间的非交互式的传输请求握手信号;用于在hready信号为高电平时,AHB总线主设备自主发送传输请求,传输请求将对应写入两个请求队列缓存的控制FIFO和数据FIFO中,APB总线桥按请求队列执行;在hready信号为低电平时,AHB总线主设备暂停发送传输请求,等待APB总线桥状态转换;该准备Mhready符合AMBA2.0协议的避免总线桥路拥塞的规定,又提高总线桥电路的传输速率。
10.根据权利要求7-9所述的APB总线桥,其特征在于,所述APB总线桥的一个控制FIFO模块和一个数据FIFO模块为完全相同的存储器,两个FIFO模块的存储宽度为32bit,存储器容量配置通过 硬件参数来实现。
全文摘要
一种改进的APB总线桥的构成包括AHB总线接口和APB总线接口,还包括接口时序转换和控制模块以及控制FIFO模块和数据FIFO模块,接口时序转换和控制模块包括状态机、数据FIFO控制逻辑单元和控制FIFO控制逻辑单元及寄存器。一种改进的APB总线桥控制方法,包括APB总线桥准备信号生成,AHB总线主设备判定准备信号高电平就自主发送传输请求,APB总线桥接收并判断,若是有效传输请求,将传输请求的控制信号和数据分存对应的一个FIFO模块,APB总线桥不区分读写传输,通过接口时序转换和控制模块状态机的状态转换和控制,完成两总线时序匹配转换后快速完成可靠的传输操作。本发明适用于时序同步和异步的AHBtoAPB总线传输,并兼容存储器接口。
文档编号G06F13/40GK103198043SQ201310030519
公开日2013年7月10日 申请日期2013年1月24日 优先权日2013年1月24日
发明者胡月, 何文涛, 李晓江, 叶甜春 申请人:杭州中科微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1