专利名称:双口ram替代系统及采用该系统实现数据传输的方法
技术领域:
本发明涉及电力自动化领域,尤其涉及一种双口 RAM替代系统及采用该系统实现数据传输的方法。
背景技术:
在电力自动化产品的应用中,板级的高速数据传输过程中有相当一部分使用双口 RAM实现,因为双口 RAM有很多优点,例如硬件上有两套独立的读写总线,可以实现异步数据的读写,易于板卡的模块化设计;软件上易于实现协议的隔离和数据的缓冲。但是,现有的双口 RAM虽然简单易用,最突出的缺点就是容量小且价格高,比如IDT公司的IDT7028, 是该公司最大容量的异步16位双口 RAM,容量只能达到64K 16位,价格却要400元人民币, 并且很多场合需要256K甚至更高的容量,仅一块板卡的双口 RAM就至少需要1600元,仅此一项就可能超过板卡的设计预算。目前一般采用采用FPGA内部的RAM实现双口 RAM,这种方式实现也比较简单,但是同样存在成本过高的问题,比如使用价格较低的ALTERA的EP3C55,价格约400元左右,可以替代两块IDT7028,但是价格仍然较高,加上外围电路实现256K16位的双口 RAM大约需要900元左右;另外,也有使用FPGA和一块SRAM实现双口 RAM,但大都是做些简单的逻辑处理,或者实现高速单向的数据传输,或者对总线分时复用,实现慢速的双向数据传输,这类接口大部分都不兼容双口 RAM,即使接口做到兼容,也无法实现高速数据传输,可能只能达到10 - 20M的传输速率,不利于移植于其它的系统,更不利于对老的双口 RAM系统升级以及后期系统性能的升级,例如无法实现高速大容量的双向数据传输等等。
发明内容
本发明要解决的技术问题在于,针对现有技术的成本高,速度慢以及无法兼容的缺陷,提供一种双口 RAM替代系统及采用该系统实现数据传输的方法,该技术方案具有成本低、高速、灵活、易于扩展以及兼容的特点。本发明解决其技术问题所采用的技术方案是构造一种双口 RAM替代系统,所述系统包括第一接口、第二接口、第一 SRAM接口、第二 SRAM接口以及外围调试电路接口,各个接口之间通过现场可编程门阵列实现数据传输,其中,第一接口和第二接口分别与第一双口 RAM接口和第二双口 RAM接口兼容,第一 SRAM接口和第二 SRAM接口分别对应整个存储空间的奇数地址和偶数地址。在本发明所述的双口 RAM替代系统中,第一接口、第二接口、第一 SRAM接口以及第二 SRAM接口均包括数据总线、地址总线以及控制总线。在本发明所述的双口 RAM替代系统中,第一 SRAM接口和第二 SRAM接口均为16位。在本发明所述的双口 RAM替代系统中,第一 SRAM接口和第二 SRAM接口的物理连接均处于独立状态。本发明还构造一种采用双口 RAM替代系统实现数据传输的方法,所述双口 RAM替代系统为上述任一项所述的双口 RAM替代系统,所述方法包括对外接口读写步骤和内部 SRAM读写步骤,其中,
对外接口读写步骤包括
Al.接收用户读写第一预传输数据的命令;
Bi.通过第一接口和/或第二接口对所述第一预传输数据所对应的地址进行读写操作,以读写所述第一预传输数据; 内部SRAM读写步骤包括
A2.在第一 SRAM控制器和/或第二 SRAM控制器处于空闲状态时接收用户需要读写的
第二预传输数据;
B2.根据第一 SRAM接口和/或第二 SRAM接口所检测到的读写信号,对所述第二预传输数据进行相应的处理。 在本发明所述的方法中,所述步骤Bl具体包括以下步骤
Bll.通过第一接口对所述第一预传输数据所对应的地址进行读写操作时判断第二接口是否正在读写该地址,若是,则发送忙信号,若否,则执行步骤B12 ;
B12.判断该地址为读操作还是写操作,若为写操作,则执行步骤B13,若为读操作,则直接转至步骤B16;
B13.在写缓冲区处于空闲状态下,判断该写缓冲区是否存在该地址,若是,则执行步骤 S141,若否,则执行步骤S142;
B141.更新该地址中的所述第一预传输数据,步骤结束;
B142.查看该写缓冲区是否已满,若是,则发送忙信号,步骤结束,若否,则执行步骤
B15 ;
B15.待总线空闲时将所述第一预传输数据写入缓冲区,步骤结束;
B16.判断该写缓冲区是否存在该地址,若是,则直接转至步骤S182,若否,则执行步骤
S17 ;
B17.判断该地址所分配的空间是否正在进行读写操作,若是,则执行步骤S181,若否, 则执行步骤S182 ;
B181.在下一个读写周期读取所述第一预传输数据; B182.读取所述第一预传输数据。
在本发明所述的方法中,所述步骤Bll还包括以下步骤
判断第一接口和第二接口所对应的地址是否相同,若是,根据优先级确定第一接口进行写操作、第二接口进行写操作,还是两个接口都不进行写,若否,则执行步骤B12。在本发明所述的方法中,所述步骤A2还包括以下步骤
判断第一 SRAM控制器和/或第二 SRAM控制器是否处于空闲状态。在本发明所述的方法中,所述步骤B2具体包括以下步骤
B21.判断当前地址所对应的SRAM接口是否有正在操作的指令,若是,则执行步骤 B221,若否,则执行步骤B222;
B221.在当前操作结束后对所述预传输数据进行读写操作; B222.直接对所述预传输数据进行读写操作。实施本发明的技术方案,具有以下有益效果通过分别与双口 RAM的两个接口兼容的第一接口和第二接口实现高速的双向数据传输,该技术方案具有成本低、高速、灵活、 易于扩展以及兼容的特点。
下面将结合附图及实施例对本发明作进一步说明,附图中 图1是本发明双口 RAM替代系统的结构示意图2是本发明外接口读写步骤的流程图; 图3是本发明内部SRAM读写步骤的流程图; 图4是本发明外接口读写步骤中Bl的具体流程图; 图5是本发明内部SRAM读写步骤中B2的具体流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。请参阅图1,图1是本发明双口 RAM替代系统的结构示意图,如图1所示, 所述系统包括第一接口、第二接口、第一 SRAM接口、第二 SRAM接口以及外围调试电路
接口,各个接口之间通过FPGA(Field — !Programmable Gate Array,现场可编程门阵列) 实现数据传输,其中,第一接口和第二接口分别与第一双口 RAM接口和第二双口 RAM接口兼容,第一 SRAM接口和第二 SRAM接口分别对应整个存储空间的奇数地址和偶数地址,在本实施例中,第一双口 RAM接口和第二双口 RAM接口可以使用多片RAM组成的RAM阵列实现容量的扩展,值得一提的是,在本实施例中,实现511的双口 RAM的价格只需要160元左右, 容量越高平均成本也越低。优选地,第一接口、第二接口、第一 SRAM接口以及第二 SRAM接口均包括数据总线、 地址总线以及控制总线。优选地,第一 SRAM接口和第二 SRAM接口均为16位,应当说明的是,在其他的实施例中,第一 SRAM接口和第二 SRAM接口的比特数可为其他,本领域的技术人员应当了解,这里不再赘述。优选地,第一 SRAM接口和第二 SRAM接口的物理连接均处于独立状态。也就是说, 本实施可同时并分别对第一 SRAM和第二 SRAM进行操作,以加快随机读写的访问速度。本发明还提供了一种采用双口 RAM替代系统实现数据传输的方法,所述方法包括对外接口读写步骤和内部SRAM读写步骤,其中,
请参阅图2,图2是本发明外接口读写步骤的流程图,如图2所示,对外接口读写步骤包
括
在步骤Al中,接收用户读写第一预传输数据的命令。在步骤Bl中,通过第一接口和/或第二接口对所述第一预传输数据所对应的地址进行读写操作,以读写所述第一预传输数据。应当说明的是,若第一接口在写操作时,需要先判断第二接口是否正在读写该地址,也就是下述步骤B11,反之亦然,若第二接口在写操作时,需要先判断第一接口是否正在读写该地址,本领域的技术人员应当了解,这里不再赘述。请参阅图3,图3是本发明内部SRAM读写步骤的流程图,如图3所示,内部SRAM读写步骤包括
在步骤A2中,在第一 SRAM控制器和/或第二 SRAM控制器处于空闲状态时接收用户需要读写的第二预传输数据。优选地,所述步骤A2还包括以下步骤
判断第一 SRAM控制器和/或第二 SRAM控制器是否处于空闲状态。应当说明的是,若第一 SRAM控制器和/或第二 SRAM控制器处于忙碌状态,则循环该步骤,直至第一 SRAM控制器和/或第二 SRAM控制器处于空闲状态为止。在步骤B2中,根据第一 SRAM接口和/或第二 SRAM接口所检测到的读写信号,对所述第二预传输数据进行相应的处理。应当说明的是,在本实施中,若当前需要读取的是奇数地址,而偶数地址中的数据有读写操作,这时可以立即读取该数据,但是若奇数地址中有正在操作的命令,则需要等待当前操作完成之后再读取该数据。请参阅图4,图4是本发明外接口读写步骤中Bl的具体流程图,如图4所示,所述步骤Bl具体包括以下步骤
在步骤Bll中,通过第一接口对所述第一预传输数据所对应的地址进行读写操作时判断第二接口是否正在读写该地址,若是,则发送忙信号,若否,则执行步骤B12。优选地,所述步骤Bll还包括以下步骤
判断第一接口和第二接口所对应的地址是否相同,若是,根据优先级确定第一接口进行写操作、第二接口进行写操作,还是两个接口都不进行写,若否,则执行步骤B12。应当说明的是,在本实施例中,假定优先级为0时,第一接口进行写操作;优先级为1时,第二接口进行写操作;优先级为2时,第一接口和第二接口都不进行写操作,本领域的技术人员应当了解,这里不再赘述。在步骤B12中,判断该地址为读操作还是写操作,若为写操作,则执行步骤B13,若为读操作,则直接转至步骤B16。在步骤B13中,在写缓冲区处于空闲状态下,判断该写缓冲区是否存在该地址,若是,则执行步骤S141,若否,则执行步骤S142。在步骤B141中,更新该地址中的所述第一预传输数据,步骤结束。在步骤B142中,查看该写缓冲区是否已满,若是,则发送忙信号,若否,则执行步骤 B15。在步骤B15中,待总线空闲时将所述第一预传输数据写入缓冲区,步骤结束。在步骤B16中,判断该写缓冲区是否存在该地址,若是,则直接转至步骤S182,若否,则执行步骤S17。在步骤B17中,判断该地址所分配的空间是否正在进行读写操作,若是,则执行步骤S181,若否,则执行步骤S182。在步骤B181中,在下一个读写周期读取所述第一预传输数据。在步骤B182中,读取所述第一预传输数据。请参阅图5,图5是本发明内部SRAM读写步骤中B2的具体流程图,如图5所示,所述步骤B2具体包括以下步骤在步骤B21中,判断当前地址所对应的SRAM接口是否有正在操作的指令,若是,则执行步骤B221,若否,则执行步骤B222。在步骤B221中,在当前操作结束后对所述预传输数据进行读写操作。在步骤B222中,直接对所述预传输数据进行读写操作。应当说明的是,在本实施例中,可实现与双口 RAM完全兼容的接口,速度优于双口 RAM,双口 RAM —般为20ns,便于移植并可以直接替代原有的双口 RAM系统;在256K16位容量上可以实现不同容量的双口 RAM 25%的价格,在1M16位的情况下,只有同容量双口 RAM 不到15%的价格,且容量越大,成本越低;扩展时只需要增加地址线即可扩展更大容量的应用;具备高速的读写BUF和合理的逻辑控制;另外还可以通过编程实现某些特殊的功能,例如可以实现16位8位32位之间的数据任意转换的功能。综上所述,相较于现有技术,通过分别与双口 RAM的两个接口兼容的第一接口和第二接口实现高速的双向数据传输,该技术方案具有成本低、高速、灵活、易于扩展以及兼容的特点。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
权利要求
1.一种双口 RAM替代系统,其特征在于,所述系统包括第一接口、第二接口、第一 SRAM 接口、第二 SRAM接口以及外围调试电路接口,各个接口之间通过现场可编程门阵列实现数据传输,其中,第一接口和第二接口分别与第一双口 RAM接口和第二双口 RAM接口兼容,第一 SRAM接口和第二 SRAM接口分别对应整个存储空间的奇数地址和偶数地址。
2.根据权利要求1所述的双口RAM替代系统,其特征在于,第一接口、第二接口、第一 SRAM接口以及第二 SRAM接口均包括数据总线、地址总线以及控制总线。
3.根据权利要求2所述的双口RAM替代系统,其特征在于,第一 SRAM接口和第二 SRAM 接口均为16位。
4.根据权利要求3所述的双口RAM替代系统,其特征在于,第一 SRAM接口和第二 SRAM 接口的物理连接均处于独立状态。
5.一种采用双口 RAM替代系统实现数据传输的方法,其特征在于,所述双口 RAM替代系统为上述权利要求1至4任一项所述的双口 RAM替代系统,所述方法包括对外接口读写步骤和内部SRAM读写步骤,其中,对外接口读写步骤包括Al.接收用户读写第一预传输数据的命令;Bi.通过第一接口和/或第二接口对所述第一预传输数据所对应的地址进行读写操作,以读写所述第一预传输数据; 内部SRAM读写步骤包括A2.在第一 SRAM控制器和/或第二 SRAM控制器处于空闲状态时接收用户需要读写的第二预传输数据;B2.根据第一 SRAM接口和/或第二 SRAM接口所检测到的读写信号,对所述第二预传输数据进行相应的处理。
6.根据权利要求5所述的方法,其特征在于,所述步骤Bl具体包括以下步骤Bll.通过第一接口对所述第一预传输数据所对应的地址进行读写操作时判断第二接口是否正在读写该地址,若是,则发送忙信号,若否,则执行步骤B12 ;B12.判断该地址为读操作还是写操作,若为写操作,则执行步骤B13,若为读操作,则直接转至步骤B16;B13.在写缓冲区处于空闲状态下,判断该写缓冲区是否存在该地址,若是,则执行步骤 S141,若否,则执行步骤S142;B141.更新该地址中的所述第一预传输数据,步骤结束;B142.查看该写缓冲区是否已满,若是,则发送忙信号,步骤结束,若否,则执行步骤B15 ;B15.待总线空闲时将所述第一预传输数据写入缓冲区,步骤结束;B16.判断该写缓冲区是否存在该地址,若是,则直接转至步骤S182,若否,则执行步骤S17 ;B17.判断该地址所分配的空间是否正在进行读写操作,若是,则执行步骤S181,若否, 则执行步骤S182 ;B181.在下一个读写周期读取所述第一预传输数据; B182.读取所述第一预传输数据。
7.根据权利要求6所述的方法,其特征在于,所述步骤Bll还包括以下步骤判断第一接口和第二接口所对应的地址是否相同,若是,根据优先级确定第一接口进行写操作、第二接口进行写操作,还是两个接口都不进行写,若否,则执行步骤B12。
8.根据权利要求7所述的方法,其特征在于,所述步骤A2还包括以下步骤 判断第一 SRAM控制器和/或第二 SRAM控制器是否处于空闲状态。
9.根据权利要求8所述的方法,其特征在于,所述步骤B2具体包括以下步骤B21.判断当前地址所对应的SRAM接口是否有正在操作的指令,若是,则执行步骤 B221,若否,则执行步骤B222;B221.在当前操作结束后对所述预传输数据进行读写操作; B222.直接对所述预传输数据进行读写操作。
全文摘要
本发明公开一种双口RAM替代系统及采用该系统实现数据传输的方法,所述系统包括第一接口、第二接口、第一SRAM接口、第二SRAM接口以及外围调试电路接口,各个接口之间通过现场可编程门阵列实现数据传输,其中,第一接口和第二接口分别与第一双口RAM接口和第二双口RAM接口兼容,第一SRAM接口和第二SRAM接口分别对应整个存储空间的奇数地址和偶数地址。通过分别与双口RAM的两个接口兼容的第一接口和第二接口实现高速的双向数据传输,该技术方案具有成本低、高速、灵活、易于扩展以及兼容的特点。
文档编号G06F13/16GK102541775SQ20121000827
公开日2012年7月4日 申请日期2012年1月12日 优先权日2012年1月12日
发明者王庆山 申请人:航天科工深圳(集团)有限公司