CN102591820A - 一种idma总线桥装置 - Google Patents
一种idma总线桥装置 Download PDFInfo
- Publication number
- CN102591820A CN102591820A CN2011104435719A CN201110443571A CN102591820A CN 102591820 A CN102591820 A CN 102591820A CN 2011104435719 A CN2011104435719 A CN 2011104435719A CN 201110443571 A CN201110443571 A CN 201110443571A CN 102591820 A CN102591820 A CN 102591820A
- Authority
- CN
- China
- Prior art keywords
- idma
- signal generator
- address
- write
- read
- 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
Images
Landscapes
- Bus Control (AREA)
Abstract
本发明提供一种IDMA总线桥装置,用以实现支持非IDMA接口的至少一个主设备对支持IDMA接口的从设备执行读写操作,在非IDMA接口与IDMA接口之间提供一个IDMA信号发生器,IDMA信号发生器具有控制/状态、地址、写数据及读数据寄存器,其中,控制/状态寄存器中定义读/写请求位、IDMA信号发生器的状态位及从设备应答位,状态位表征IDMA信号发生器在执行过程中的当前状态,且IDMA信号发生器在每种状态下均会产生相应的动作,并定义多种状态与不同转移条件以及IDMA信号发生器在每个状态下的动作的对应关系,主设备按照所定义的状态转移顺序读写上述4个寄存器,则可以完成对从设备的读写操作。本发明通过改良主设备对4个寄存器的操作顺序,缩短了转换周期,提高了操作效率。
Description
技术领域
本发明涉及一种IDMA总线桥装置,特别是涉及一种用以实现支持非IDMA接口的至少一个主设备对支持IDMA接口的从设备执行读写操作的IDMA总线桥装置。
背景技术
IDMA接口是一种并行的I/O接口,支持IDMA接口的片外设备可以通过该IDMA接口对支持IDMA接口的片内设备进行读写操作。
IDMA读操作协议如图6A所示,IDMA读操作可以分为地址锁存过程和数据读取过程。
在地址锁存过程中,片外设备将期望请求的片内设备的片选信号拉低,并将期望请求的地址放到数据输入信号线上,然后在地址锁存信号线上发送地址锁存信号。当片内设备的片选信号被拉低时,即表明该片内设备被选中。片内设备被选中后,片内设备在检测到地址锁存信号的上升沿后,锁存数据输入信号线上的数据(Addr_r),作为片外设备请求的地址,并进行地址译码。
如果片外设备所请求的地址不能响应,则片内设备将应答信号继续拉低。片外设备在一定时间后,发现片内设备不应答,则可以继续将该片内设备的片选信号拉低,并重新启动地址锁存过程(在数据输入信号线上发送期望请求的地址,再在地址锁存信号线上发送地址锁存信号)。当然,片外设备也可以在片内设备不应答时,将该片内设备的片选信号拉高,停止对该片内设备的请求。
如果片外设备所请求的地址可以响应,则片内设备将应答信号拉高,片外设备在收到片内设备的应答信号(高电平)后,片外设备则可以进一步进行数据读取过程。在数据读取过程中,片外设备在读请求信号线上发送读请求信号。片内设备在检测到读请求信号的下降沿后,把被请求地址里的数据(Data_r)放到数据输出信号线上。至此,一次完整的IDMA读操作结束。
IDMA写操作协议如图6B所示。IDMA写操作可以分为地址锁存过程和数据写入过程。
其中,地址锁存过程与IDMA读操作的地址锁存过程一致。
如果片外设备收到片内设备的应答信号(高电平),则片外设备可以进一步进行数据写入过程。在数据写入过程中,片外设备将期望写入的数据(Data_w)放到数据输入信号线上,然后片外设备在写请求信号线上发送写请求信号。片内设备在检测到写请求信号的下降沿后, 即把数据输入信号线上的数据Data_w存入地址Addr_w所对应的存储空间。至此,一次完整的IDMA写操作结束。
现在已有大量存储器设备和IP核等从设备使用IDMA接口。以IP核复用为例,如果已有支持IDMA接口的从设备IP,但用户希望使用支持SPI或UART等串行接口的主设备对该从设备进行读写操作时,现有的做法是改变原有IP的端口定义,重新设计接口电路,使原有IP支持SPI、UART等串行接口,这意味着需要设计SPI接口控制器、UART接口控制器等电路,这些控制器负责依据SPI、UART协议,从控制和数据信号中分析出读/写请求信号、地址信号、数据信号等,但是,上述做法会破坏原有IP的完整性,而大大降低修改和验证的效率,并增加风险。
为避免破坏原有IP的完整性,有一种改进的方案是在原有IP外接一个总线桥作为接口转换电路,将外部输入的SPI、UART信号转换成IDMA信号。这种方案中,通过主设备对4个专用寄存器的读写操作,由总线桥的IDMA信号发生器产生相应的IDMA信号,来完成常规的对从设备的读/写操作。该4个专用寄存器分别为控制/状态寄存器、地址寄存器、读数据寄存器以及写数据寄存器,且该4个专用寄存器的初始值均为0x0。其中,读操作时,例如,以自从设备内的0x1234地址中读取数据为例,步骤如下:(1a)主设备向控制/状态寄存器中写入读请求位,该读请求位值为0x0;(2a)主设备向地址寄存器中写入0x1234;(3a)主设备等待总线桥的IDMA信号发生器产生IDMA读操作(地址锁存过程和数据读取过程)所需的完整信号,并等待从设备反馈的数据;(4a)主设备自读数据寄存器中读取所要的数据,即可完成本次读操作;(5a)发起下一次读或写操作。如此,则一次正常的IDMA转换读操作需要消耗如图1A所示的时间长度。而写操作时,以向从设备内的0x1234地址中写入数据0xCDEF为例,步骤如下:(1b)主设备向控制/状态寄存器中写入写请求位,该写请求位值为0x1;(2b)主设备向地址寄存器中写入0x1234;(3b)主设备向写数据寄存器中写入0xCDEF;(4b)主设备等待总线桥的IDMA信号发生器产生IDMA写操作(地址锁存过程和数据写入过程)所需的完整信号,待该完整信号产生后即可完成本次写操作;(5b)发起下一次读或写操作。如此,则一次正常的IDMA转换写操作需要消耗如图1B所示的时间长度。
由上述两个读写操作的例子可知,应用上述改进的方案虽然保留了原有IP的完整性,但是无论是读操作还是写操作,主设备和总线桥的IDMA信号发生器在串行工作,存在彼此等待的状况,即主设备工作时,IDMA信号发生器在等待;而IDMA信号发生器工作时,主设备在等待,如此,则需要耗费过多的操作时间。另外,在上述方案中,因为控制/状态寄存器的初始值为0x0,恰与读请求位值相同,因此,若一开始,主设备因失误而向地址寄存器中 写入数据,则可能导致一次不期望的读操作,从而导致一系列问题。因此,如何提出一种IDMA总线桥装置,在保留原有IP的完整性的同时又缩短操作周期,进而提高工作效率,并且设计完备且安全,实为目前急待解决的问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种IDMA总线桥装置,以在保留了原有IP的完整性的同时又缩短操作周期,进而提高工作效率,还可以避免误操作。
由IDMA读或写操作协议可见,从时序上看,无论读或写操作过程中,都是先进行地址锁存过程,再进行读/写使能过程。也就是说,无论读还是写操作中,IDMA信号线上总是先在数据输入信号线上准备好地址信息,然后在地址锁存信号线上发送地址锁存信号。在从设备应答后,主设备才向读或写请求信号线上发送读或写请求信号。因此,调整主设备访问4个专用寄存器的顺序,使主设备和IDMA信号发生器形成一种流水线式的工作模式,可以提高IDMA总线桥的效率。例如,主设备期望读取IDMA从设备的某个地址0x1234时,主设备先向地址寄存器中写入0x1234。IDMA信号发生器检测到地址寄存器有数据写入时,立即启动,向IDMA信号线上发送地址锁存过程所需的IDMA信号。于此同时,主设备向控制/状态寄存器中写入读请求位。此时,IDMA主设备和IDMA信号发生器在并行工作,因此可以提高效率。
为实现上述目的及其他相关目的,本发明提供一种IDMA总线桥装置,其用以实现支持非IDMA接口的至少一个主设备对支持IDMA接口的从设备执行读写操作。该IDMA总线桥装置包括:至少一个非IDMA接口控制器,分别连接其中一个主设备的非IDMA接口,且用以接收对应主设备通过各自的非IDMA接口所输出的数据或通过各自的非IDMA接口传送予对应的主设备的数据;以及总线仲裁器,分别连接该非IDMA接口控制器,且用以选定其中一个非IDMA接口控制器运作;其特征在于,该IDMA总线桥装置进一步包括:IDMA信号发生器,分别连接该总线仲裁器以及IDMA接口,且具有供所述主设备通过非IDMA接口控制器访问的控制/状态寄存器、地址寄存器、读数据寄存器以及写数据寄存器,所述控制/状态寄存器中定义了读/写请求位、IDMA信号发生器的状态位以及从设备应答位,且该状态位表征该IDMA信号发生器在执行过程中的当前状态,所述IDMA信号发生器在每种状态下,均会产生相应的动作,该状态与其转移条件以及IDMA信号发生器在每个状态下的动作的对应关系如下表所示:
其中,所述IDMA信号发生器依据所定义的转移条件规范主设备与从设备之间的读写操作,使得当主设备按照上表中的状态转移顺序对所述IDMA信号发生器的控制/状态寄存器、地址寄存器、读数据寄存器以及写数据寄存器进行访问时,在执行读操作过程中,所述IDMA信号发生器将依次经过地址已更新状态、地址已锁存状态、从设备已应答状态与读请求状态,并发出一个完整的IDMA读操作周期所需的IDMA信号,而执行写操作过程中,则依次经过地址已更新状态、地址已锁存状态、从设备已应答状态、写请求状态与写状态,并发出一个完整的IDMA写操作周期所需的IDMA信号。这些IDMA信号是完成IDMA读/写操作的必要非充分条件,因为可能发生访问的地址不存在,或者从设备忙、不响应等状况。
所述主设备按上表中的状态转移顺序对所述IDMA信号发生器的控制/状态寄存器、地址寄存器、读数据寄存器以及写数据寄存器进行访问时,在执行读操作过程中,主设备按如下顺序(c)操作:(1c)向地址寄存器中写入期望请求的地址,(2c)向控制/状态寄存器中写入读请求位,(3c)从读数据寄存器中读取数据;在执行写操作过程中,主设备按照如下顺序(d)操作:(1d)向地址寄存器中写入期望请求的地址,(2d)向控制/状态寄存器中写入写请求位,(3d)向写入数据寄存器中写入期望写入的数据。
在所述顺序(c)的操作步骤(1c)、(2c)、(3c)之间插入空闲等待操作是允许的,但为非必要的操作。
在所述顺序(d)的操作步骤(1d)、(2d)、(3d)之间插入空闲等待操作是允许的,但为非必要的操作。
所述顺序(c)是读操作的最精简顺序,使用此顺序可以得到最高的读操作效率。本发明支持更加灵活的操作,在步骤(1c)之前和步骤(3c)之后插入无关操作是允许的,但为非必要的操作;但是在步骤(1c)和(3c)之间插入非空闲等待操作,是不允许的。
所述顺序(d)是写操作的最精简顺序,使用此顺序可以得到最高的写操作效率。本发明支持更加灵活的操作,在步骤(1d)之前和步骤(3d)之后插入无关操作是允许的,但非必要的;但是在步骤(1d)和(3d)之间插入非空闲等待操作,是不允许的。
主设备的一系列操作中包含一个连续完整的顺序(c),是完成一次读操作的必要非充分条件。
主设备的一系列操作中包含一个连续完整的顺序(d),是完成一次写操作的必要非充分条件。
在本发明的IDMA总线桥装置的一个实施例中,该非IDMA接口为SPI接口或UART接口,该非IDMA控制器对应为SPI接口控制器或UART接口控制器。该控制/状态寄存器的最低位[0]为读/写请求位,位[3:1]为IDMA信号发生器的状态位,位[4]为从设备应答位,其中,该读请求位的值为0x0,该写请求位的值为0x1。该从设备应答位的值为0x0或0x1,值为0x0表示从设备不应答,值为0x1表示从设备已应答。IDMA接口转换器的状态位的属性为只读,不可写。控制/状态寄存器、地址寄存器、读数据寄存器以及写数据寄存器在所述IDMA信号发生器中的地址分别为0x0、0x1、0x2与0x3,且初始值均为0x0。
如上所述,本发明的IDMA总线桥装置主要是用以实现支持非IDMA接口的至少一个主设备对支持IDMA接口的从设备执行读写操作,在非IDMA接口与IDMA接口之间提供一个IDMA信号发生器,该IDMA信号发生器具有控制/状态寄存器、地址寄存器、写数据寄存器以及读数据寄存器,其中,控制/状态寄存器中定义了读/写请求位、IDMA信号发生器的状态位以及从设备应答位。主设备按照本发明规定的状态转移顺序对所述IDMA信号发生器的控制/状态寄存器、地址寄存器、读数据寄存器以及写数据寄存器进行读/写访问操作,所述IDMA信号发生器即可发出一个完整的IDMA读/写操作周期所需的IDMA信号。
本发明将传统的IDMA总线桥装置的读操作所需的4个步骤,减少为3个,操作周期缩减25%;且将传统的IDMA总线桥装置的写操作所需的4个步骤,减少为3个,操作周期缩减25%。
本发明所使用的地址译码、信号发生等电路与传统IDMA总线桥装置相似。而且,因为操作顺序上的优化,减少了信号存储单元,因此,资源消耗(成本)甚至有略微的降低。
本发明可以保持具有IDMA接口的原有IP的完整性。相较于现有的IDMA总线桥装置,本发明在不增加成本的情况下,效率提高25%,且由于本发明对IDMA信号发生器的各种状态之间的转移做了定义,使得在主设备没有按照本发明规定的状态转移顺序操作时,也不会发生误读或误写现象,提高了操作的安全性。
附图说明
图1A显示为现有技术中的IDMA转换读操作所消耗的时间长度示意图。
图1B显示为现有技术中的IDMA转换写操作所消耗的时间长度示意图。
图2显示为本发明的IDMA总线桥装置应用在主从设备中的方块示意图。
图3显示为本发明的IDMA接口的状态转移图。
图4A显示为本发明的IDMA接口在一个IDMA读操作周期的时序图。
图4B显示为本发明的IDMA接口在一个IDMA写操作周期的时序图。
图5A显示为本发明的IDMA转换读操作所消耗的时间长度以及与现有技术的时间长度的比较示意图。
图5B显示为本发明的IDMA转换写操作所消耗的时间长度以及与现有技术的时间长度的比较示意图。
图6A显示为IDMA读操作协议的时序图。
图6B显示为IDMA写操作协议的时序图。
元件标号说明
1、1’ 主设备
11 SPI接口
11’ UART接口
2 从设备
21 IDMA接口
3 IDMA总线桥装置
31 SPI接口控制器
31’ UART接口控制器
33 总线仲裁器
35 IDMA信号发生器
351 控制/状态寄存器
353 地址寄存器
355 读数据寄存器
357 写数据寄存器
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
请参阅图1至图5B。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
如图所示,本发明提供一种IDMA总线桥装置,其用以实现支持非IDMA接口的至少一个主设备(本实施例中以2个主设备1、1’,非IDMA接口分别为SPI接口11以及UART接口11’为例做说明,但不以此为限)对支持IDMA接口21的从设备2执行读写操作,该IDMA总线桥装置3包括多个非IDMA接口控制器(在本实施例中,该非IDMA控制器依据所连接的非IDMA接口的类型对应为SPI接口控制器31以及UART接口控制器31’,但不以此为限)、总线仲裁器33以及IDMA信号发生器35,以下即对本发明的IDMA总线桥装置的各元件进行详细说明。
该SPI接口控制器31以及该UART接口控制器31’分别连接其中一个主设备1或1’的SPI接口11或UART接口11’,且用以接收对应主设备1或1’通过各自的SPI接口11以及UART接口11’所输出的数据或通过各自的SPI接口11或UART接口11’传送予对应的主设备1、1’的数据,其中,主设备1或1’通过各自的SPI接口11或UART接口11’所输出的数据至少包括:主设备向控制/状态寄存器351(容后陈述)写入读请求位、主设备向控制/状态寄存器351写入写请求位、主设备向地址寄存器353(容后陈述)写入数据、或主设备向写数据寄存器355(容后陈述)写入数据等,而通过各自的SPI接口11以及UART接口11’传送予对应的主设备1或1’的数据为主设备自数据寄存器357(容后陈述)读取数据。
该总线仲裁器33分别连接该SPI接口控制器31以及该UART接口控制器31’,且用以选定其中一个非IDMA接口控制器(SPI接口控制器31或UART接口控制器31’)运作。
该IDMA信号发生器35分别连接该总线仲裁器33以及该IDMA接口21,且具有控制/状态寄存器351、地址寄存器353、读数据寄存器355以及写数据寄存器357,其中,控制/状态寄存器351中定义了读/写请求位、IDMA信号发生器35的状态位以及从设备应答位,且该读/写请求位用于表征主设备期望发起的读/写请求、该状态位表征该IDMA信号发生器35在 执行过程中的当前状态,该从设备应答位用于表征从设备是否有应答,该地址寄存器用于表征主设备期望请求的地址,该写数据寄存器用于表征主设备期望写入的数据,读数据寄存器用于存储被读取地址中读出的数据,且该IDMA信号发生器35在每种状态下,均会产生相应的动作,而该状态与其转移条件以及IDMA信号发生器35在每个状态下的动作的对应关系如表1所示,同时,图3显示下列各状态的转移图,以进一步明确各状态与不同转移条件之间的对应关系,
表1
其中,该IDMA信号发生器35依据所定义的转移条件规范主设备1或1’与从设备2之间的读写操作,使得当主设备1或1’按照上表1中的状态转移顺序对该IDMA信号发生器35的控制/状态寄存器351、地址寄存器353、读数据寄存器355以及写数据寄存器357进行访问时,在执行读操作过程中,该IDMA信号发生器35将依次经过地址已更新状态、地址已锁存状态、从设备已应答状态与读请求状态,并发出一个完整的IDMA读操作周期所需的IDMA信号(如图4A所示,即完整显示一个IDMA读操作周期的时序图),而在执行写操作过程中,则依次经过地址已更新状态、地址已锁存状态、从设备已应答状态、写请求状态与写状态,并发出一个完整的IDMA写操作周期所需的IDMA信号(如图4B所示,即完整显示一个IDMA写操作周期的时序图)。
在本实施例中,该控制/状态寄存器351、地址寄存器353、读数据寄存器355以及写数 据寄存器357在该IDMA信号发生器中的地址分别为0x0、0x1、0x2与0x3,且初始值均为0x0。该控制/状态寄存器351的最低位[0]为读/写请求位,位[3:1]为IDMA信号发生器35的状态位,位[4]为从设备应答位,其中,读请求位为0x0,写请求位为0x1,该IDMA接口转换器的状态位的属性为只读,不可写,该从设备应答位的值为0x0或0x1,值为0x0表示从设备不应答,值为0x1表示从设备已应答。
此处需予以说明的是,IDMA信号发生器35的初始状态为空闲状态。如表1所示,IDMA信号发生器35在空闲状态下,将IDMA的写请求信号、读请求信号和地址锁存信号全部拉低,将片选信号拉高,将控制/状态寄存器351的状态位置为0x0、从设备应答位置0x0。
为更详尽了解应用本发明的IDMA总线桥装置如何规范主设备与从设备之间的读写操作,以下以其中一个支持SPI接口11的主设备1被总线仲裁器33选定为例,并配合表1、图3至图5B分别针对读写操作举11个例子进行详细说明:
例一:主设备1自从设备2内的地址0x1234(图4A中用Addr_r表示)中读取数据,在如表1以及图3所示的状态转移关系的规范下,唯有执行如下步骤方可正常完成读操作:
一旦主设备1执行步骤(1c)——通过SPI接口控制器31向该IDMA信号发生器35的地址寄存器353中写入0x1234,该IDMA信号发生器35即依据如表1所示的转移条件,从空闲状态转移到地址已更新状态。依据表1所示的当前状态下的动作,IDMA信号发生器35将产生地址已更新状态下的IDMA信号(如图4A所示),将片选信号拉低,并将0x1234放到数据输入信号线上,然后将地址锁存信号拉高,同时将控制/状态寄存器351的状态位置为0x1。
于是,从设备2即已收到IDMA读操作中地址锁存过程的信号。从设备2将锁存地址0x1234,并进行地址译码等操作。该IDMA信号发生器35即依据如表1所示的转移条件,自动转移到地址已锁存状态。依据表1所示的转移条件,IDMA信号发生器35将产生地址已锁存状态下的IDMA信号(如图4A所示),将IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x2。
如果该地址0x1234可以响应,则从设备2将应答信号拉高。该IDMA信号发生器35即依据如表1所示的转移条件,从地址已锁存状态转移到从设备已应答状态。依据表1所示的转移条件,IDMA信号发生器35将产生从设备已应答状态下的IDMA信号(如图4A所示),将地址锁存信号拉低,其他IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x3、从设备应答位置0x1。
在IDMA信号发生器35做上述动作的同时,主设备1执行完步骤(1c)立即执行步骤(2c)——通过SPI接口控制器31向该IDMA信号发生器35的控制/状态寄存器351写入0x0。当 IDMA信号发生器35检测到控制/状态寄存器351被写入数据0x0时,即依据如表1所示的转移条件,IDMA信号发生器35从从设备已应答状态转移到读请求状态。依据表1所示的转移条件,IDMA信号发生器35将产生读请求状态下的IDMA信号(如图4A所示),将读请求信号拉高,保持一段时间,再拉低。同时将控制/状态寄存器351的状态位置为0x4。
从设备2在检测到读请求信号的下降沿后,即将地址0x1234中的数据(Data_r)放到数据输出信号线上,该信号线连接IDMA信号发生器35的读数据存器355。因此IDMA信号发生器35的读数据存器355的值立即更新为读取的数据值。依据表1所示的转移条件,IDMA信号发生器35自动从读请求状态转移到空闲状态。
主设备1在执行完步骤(2c)后立即执行步骤(3c)——通过SPI接口控制器31从该IDMA信号发生器35的读数据寄存器355中读取数据。因为SPI为串行操作,因此,当主设备1通过SPI接口控制器31向IDMA信号发生器35的地址寄存器353与控制/状态寄存器351依序发送地址信号(0x1234)和读请求信号(0x0)时,IDMA信号发生器35的读数据存器355的值已经更新为读取的数据值,该值将通过SPI接口控制器31和SPI接口11串行输出到主设备1。
至此,一次完整的IDMA读操作即结束。主设备1完全可以立即启动下一次IDMA访问。
上述IDMA读操作需要消耗的时间如图5A所示,在主设备1向地址寄存器353写入数据后,主设备1与从设备2即可并行运作,相对于现有的读操作周期(如图1A所示),可以节省25%的时间。
例二:主设备1向从设备2内的地址0x1234(图4B中用Addr_w表示)中写入数据0xCDEF(图4B中用Data_w表示),在如表1以及图3所示的状态转移关系的规范下,唯有执行如下步骤方可正常完成写操作:
一旦主设备1执行步骤(1d)——通过SPI接口控制器31向该IDMA信号发生器35的地址寄存器353中写入0x1234,该IDMA信号发生器35即依据如表1所示的转移条件,从空闲状态转移到地址已更新状态。依据表1所示的当前状态下的动作,IDMA信号发生器35将产生地址已更新状态下的IDMA信号(如图4B所示),将片选信号拉低,并将0x1234放到数据输入信号线上,然后将地址锁存信号拉高,同时将控制/状态寄存器351的状态位置为0x1。
于是,从设备2即已收到IDMA读操作中地址锁存过程的信号。从设备2将锁存地址0x1234,并进行地址译码等操作。该IDMA信号发生器35即依据如表1所示的转移条件,自动转移到地址已锁存状态。依据表1所示的转移条件,IDMA信号发生器35将产生地址已锁 存状态下的IDMA信号(如图4B所示),将IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x2。
如果该地址0x1234可以响应,则从设备2将应答信号拉高,该IDMA信号发生器35即依据如表1所示的转移条件,从地址已锁存状态转移到从设备已应答状态。依据表1所示的转移条件,IDMA信号发生器35将产生从设备已应答状态下的IDMA信号(如图4B所示),将地址锁存信号拉低,其他IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x3、从设备应答位置0x1。
在IDMA信号发生器35做上述动作的同时,主设备1执行完步骤(1d)立即执行步骤(2d)——通过SPI接口控制器31向该IDMA信号发生器35的控制/状态寄存器351写入0x1。当IDMA信号发生器35检测到控制/状态寄存器351被写入数据0x1时,即依据如表1所示的转移条件,IDMA信号发生器35从从设备已应答状态转移到写请求状态。依据表1所示的转移条件,IDMA信号发生器35将产生写请求状态下的IDMA信号(如图4B所示),保持IDMA信号线值不变,保持一段时间。同时将控制/状态寄存器351的状态位置为0x5。
在IDMA信号发生器35做上述动作的同时,主设备1执行完步骤(2d)立即执行步骤(3d)——通过SPI接口控制器31向该IDMA信号发生器35的写数据寄存器357写入0xCDEF。
IDMA信号发生器35检测到写数据寄存器357被写入,其值为0xCDEF,则依据如表1所示的转移条件,IDMA信号发生器35从写请求状态转移到写状态,并产生写状态下的IDMA信号(如图4B所示),将写请求信号拉高,并将0xCDEF放到数据输入信号线上,保持一段时间,再将写请求信号拉低,并保持一段时间。
至此,一次完整的IDMA写操作即结束。主设备1完全可以在步骤(3d)之后立即启动下一次IDMA访问。
上述IDMA写操作需要消耗的时间如图5B所示,在主设备1向地址寄存器353写入数据后,主设备1与从设备2即可并行运作。尽管在步骤(3d)之后,IDMA信号发生器35仍需工作一段时间(如图5B所示),但并不影响主设备1在步骤(3d)之后立即启动下一次IDMA访问。因为在主设备1通过SPI接口11向IDMA信号发生器35的地址寄存器353写新的地址时,新的地址写完全之前,IDMA信号发生器35就已结束写状态下的动作,并自动转移到空闲状态,等待启动新的操作。相对于现有的写操作周期(如图1A所示),可以节省接近25%的时间。
例三:在操作步骤之间插入空闲等待时间。
例一和例二给出的具体实施方式,是本发明在IDMA读和写操作时的最精简顺序,也就是最高效的操作步骤。但在所述步骤(1c)、步骤(2c)、步骤(3c)之间插入空闲等待时间,是允许的。这种做法不会影响IDMA信号发生器35在IDMA读操作过程中的功能,只是会降低效率。同样,在步骤(1d)、步骤(2d)、步骤(3d)之间插入空闲等待时间,也是允许的。
例四:从设备2不应答时的读操作。主设备1自从设备2的地址0x1234中读取数据,但从设备2不应答。
例一、例二和例三给出的具体实施方式,是从设备应答的情况,或者说是最佳情况,但如果遇见所访问的地址并不存在,或者从设备2忙等状况,会发生从设备2不应答的情况,为提高操作的安全性,本发明充分考虑了这一情况。
一旦主设备1执行步骤(1c)——通过SPI接口控制器31向该IDMA信号发生器35的地址寄存器353中写入0x1234,该IDMA信号发生器35即依据如表1所示的转移条件,从空闲状态转移到地址已更新状态。依据表1所示的当前状态下的动作,IDMA信号发生器35将产生地址已更新状态下的IDMA信号(如图4A所示),将片选信号拉低,并将0x1234放到数据输入信号线上,然后将地址锁存信号拉高,同时将控制/状态寄存器351的状态位置为0x1。
于是,从设备2即已收到IDMA读操作中地址锁存过程的信号。从设备2将锁存地址0x1234,并进行地址译码等操作。该IDMA信号发生器35即依据如表1所示的转移条件,自动转移到地址已锁存状态。依据表1所示的转移条件,IDMA信号发生器35将产生地址已锁存状态下的IDMA信号(如图4A所示),将IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x2。
如果从设备2的地址0x1234暂时不能应答,则从设备2继续将应答信号线拉低。
一定时间内,IDMA信号发生器35检测到从设备2给出的是不应答(应答信号为低电平),依据表1所示的转移条件,IDMA信号发生器35(设置不应答位)从地址已锁存状态转移到不应答状态,依据表1所示的当前状态下的动作,IDMA信号发生器35将控制/状态寄存器351的状态位置为0x7,而控制/状态寄存器351的从设备应答位仍然保持为0x0,IDMA信号发生器35完成当前状态下的动作后,自动转移到空闲状态。
在IDMA信号发生器35做上述动作的同时,主设备1执行完步骤(1c)立即执行步骤(2c)——通过SPI接口控制器31向该IDMA信号发生器35的控制/状态寄存器351写入0x0。因为此时,IDMA信号发生器35已经处于空闲状态,依据表1所示的转移条件,主设备1对IDMA信号发生器35的控制/状态寄存器351的操作并不能使IDMA信号发生器35进入新的状态, 而是保持在空闲状态。因此,读请求信号并不会在IDMA信号线上发生。读数据寄存器的值不会更新,仍保存上一次读操作时读取到的数据,或者初始值0x0(如果不曾发生读操作的话)。
主设备1在执行完步骤(2c)后立即执行步骤(3c)——通过SPI接口控制器31从该IDMA信号发生器35的读数据寄存器355中读取数据。因为读数据寄存器中数据并未更新,仍保持上一次读操作时读取到的数据,或者初始值0x0(如果不曾发生读操作的话),因此,这时主设备1通过SPI接口控制器31读取到的数据,并非期望的数据。
例五:从设备2不应答时的写操作。主设备1向从设备2的地址0x1234写数据0xCDEF,但从设备2不应答。
一旦主设备1执行步骤(1d)——通过SPI接口控制器31向该IDMA信号发生器35的地址寄存器353中写入0x1234,该IDMA信号发生器35即依据如表1所示的转移条件,从空闲状态转移到地址已更新状态。依据表1所示的当前状态下的动作,IDMA信号发生器35将产生地址已更新状态下的IDMA信号(如图4B所示),将片选信号拉低,并将0x1234放到数据输入信号线上,然后将地址锁存信号拉高,同时将控制/状态寄存器351的状态位置为0x1。
于是,从设备2即已收到IDMA读操作中地址锁存过程的信号。从设备2将锁存地址0x1234,并进行地址译码等操作。该IDMA信号发生器35即依据如表1所示的转移条件,自动转移到地址已锁存状态。依据表1所示的转移条件,IDMA信号发生器35将产生地址已锁存状态下的IDMA信号(如图4B所示),将IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x2。
如果从设备2的地址0x1234暂时不能应答,则从设备2继续将应答信号线拉低。
一定时间内,IDMA信号发生器35检测到从设备2给出的是不应答(应答信号为低电平),依据表1所示的转移条件,IDMA信号发生器35(设置不应答位)从地址已锁存状态转移到不应答状态,依据表1所示的当前状态下的动作,IDMA信号发生器35将控制/状态寄存器351的状态位置为0x7,而控制/状态寄存器351的从设备应答位仍然保持为0x0,IDMA信号发生器35完成当前状态下的动作后,自动转移到空闲状态。
在IDMA信号发生器35做上述动作的同时,主设备1执行完步骤(1d)立即执行步骤(2d)——通过SPI接口控制器31向该IDMA信号发生器35的控制/状态寄存器351写入0x1。因为此时,IDMA信号发生器35已经处于空闲状态,依据表1所示的转移条件,主设备1对IDMA信号发生器35的控制/状态寄存器351的操作并不能使IDMA信号发生器35进入新的状态,而是保持在空闲状态。因此,写请求信号并不会在IDMA信号线上发生。
在IDMA信号发生器35做上述动作的同时,主设备1执行完步骤(2d)立即执行步骤(3d)——通过SPI接口控制器31向该IDMA信号发生器35的写数据寄存器357写入0xCDEF。
因为此时,IDMA信号发生器35已经处于空闲状态,依据表1所示的转移条件,主设备1对IDMA信号发生器35的写数据寄存器357的操作并不能使IDMA信号发生器35进入新的状态,而是保持在空闲状态。
因此,在从设备2不应答时,并不会发生错误的写入。
但主设备1并不知晓这次写操作是否成功。此时,可以在步骤(3d)之后加入步骤(4d),主设备1读取IDMA信号发生器35的控制/状态寄存器351的从设备应答位的值。此时IDMA信号发生器35处于空闲状态,依据表1所示的转移条件,主设备1对IDMA信号发生器35的控制/状态寄存器351的操作并不会使IDMA信号发生器35进入新的状态,而是保持在空闲状态。如果从设备应答位的值为0x1,则说明写入操作成功;如果从设备应答位的值为0x0,则说明从设备不应答,此次写入操作失败,主设备1可以重新发起写操作。
例六:插入IDMA信号发生器35状态检查步骤(2e)的读操作。主设备1自从设备2内的0x1234地址中读取数据,从设备2应答。
一旦主设备1执行步骤(1c)——通过SPI接口控制器31向该IDMA信号发生器35的地址寄存器353中写入0x1234,该IDMA信号发生器35即依据如表1所示的转移条件,从空闲状态转移到地址已更新状态。依据表1所示的当前状态下的动作,IDMA信号发生器35将产生地址已更新状态下的IDMA信号(如图4A所示),将片选信号拉低,并将0x1234放到数据输入信号线上,然后将地址锁存信号拉高,同时将控制/状态寄存器351的状态位置为0x1。
于是,从设备2即已收到IDMA读操作中地址锁存过程的信号。从设备2将锁存地址0x1234,并进行地址译码等操作。该IDMA信号发生器35即依据如表1所示的转移条件,自动转移到地址已锁存状态。依据表1所示的转移条件,IDMA信号发生器35将产生地址已锁存状态下的IDMA信号(如图4A所示),将IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x2。
如果从设备2给出应答信号(将应答信号拉高),该IDMA信号发生器35即依据如表1所示的转移条件,自地址已锁存状态转移到从设备已应答状态。依据表1所示的转移条件,IDMA信号发生器35将产生从设备已应答状态下的IDMA信号(如图4A所示),将地址锁存信号拉低,其他IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x3、从设备应答位置为0x1。
在IDMA信号发生器35做上述动作的同时,主设备1执行完步骤(1c)立即执行步骤(2e)——通过SPI接口控制器31读取该IDMA信号发生器35的控制/状态寄存器351的从设备应答位的值,如果从设备应答位的值为0x1,则说明从设备已应答,读写操作已准备好;如果从设备应答位的值为0x0,则说明从设备不应答。
因为从设备已应答,所以,主设备1执行完步骤(2e)立即执行步骤(2c)——通过SPI接口控制器31向该IDMA信号发生器35的控制/状态寄存器351写入0x0。当IDMA信号发生器35检测到控制/状态寄存器351被写入数据0x0时,即依据如表1所示的转移条件,IDMA信号发生器35从从设备已应答状态转移到读请求状态。依据表1所示的转移条件,IDMA信号发生器35将产生读请求状态下的IDMA信号(如图4A所示),将读请求信号拉高,保持一段时间,再拉低,同时将控制/状态寄存器351的状态位置为0x4。
从设备2在检测到读请求信号的下降沿后,即将地址0x1234中的数据放到数据输出信号线上,而该信号线连接IDMA信号发生器35的读数据存器355,则IDMA信号发生器35的读数据存器355的值立即更新为读取的数据值。依据表1所示的转移条件,IDMA信号发生器35自动从读请求状态转移到空闲状态。
主设备1在执行完步骤(2c)后立即执行步骤(3c)——通过SPI接口控制器31从该IDMA信号发生器35的读数据寄存器355中读取数据。因为SPI为串行操作,因此,当主设备1通过SPI接口控制器31向IDMA信号发生器35的地址寄存器353与控制/状态寄存器351依序发送地址信号(0x1234)和读请求信号(0x0)时,IDMA信号发生器35的读数据存器355的值已经更新为读取的数据值,该值将通过SPI接口控制器31和SPI接口11串行输出到主设备1。
至此,一次完整的IDMA读操作即结束。主设备完全可以立即启动下一次IDMA访问。
例七:插入IDMA信号发生器35状态检查步骤(2e)的读操作。主设备1自从设备2内的0x1234地址中读取数据,从设备2不应答。
一旦主设备1执行步骤(1c)——通过SPI接口控制器31向该IDMA信号发生器35的地址寄存器353中写入0x1234,该IDMA信号发生器35即依据如表1所示的转移条件,从空闲状态转移到地址已更新状态。依据表1所示的当前状态下的动作,IDMA信号发生器35将产生地址已更新状态下的IDMA信号(如图4A所示),将片选信号拉低,并将0x1234放到数据输入信号线上,然后将地址锁存信号拉高,同时将控制/状态寄存器351的状态位置为0x1。
于是,从设备2即已收到IDMA读操作中地址锁存过程的信号。从设备2将锁存地址 0x1234,并进行地址译码等操作。该IDMA信号发生器35即依据如表1所示的转移条件,自动转移到地址已锁存状态。依据表1所示的转移条件,IDMA信号发生器35将产生地址已锁存状态下的IDMA信号(如图4A所示),将IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x2。
如果从设备2的地址0x1234暂时不能应答,则从设备2继续将应答信号线拉低。
一定时间内,IDMA信号发生器35检测到从设备2给出的是不应答(应答信号为低电平),该IDMA信号发生器35即依据如表1所示的转移条件,从地址已锁存状态转移到不应答状态,依据表1所示的当前状态下的动作,IDMA信号发生器35将控制/状态寄存器351的状态位置为0x7、从设备应答位置为0x0,IDMA信号发生器35完成当前状态下的动作后,自动转移到空闲状态。
在IDMA信号发生器35做上述动作的同时,主设备1执行完步骤(1c)立即执行步骤(2e)——通过SPI接口控制器31读取该IDMA信号发生器35的控制/状态寄存器351的从设备应答位的值,如果从设备应答位的值为0x1,则说明从设备已应答,读写操作已准备好;如果从设备应答位的值为0x0,则说明从设备不应答。
因为从设备2不应答,如例四所述,主设备1继续执行步骤(2c)和步骤(3c)就已经没有必要了。主设备1可以从步骤(1c)开始,重新启动读操作。这样既省略了不必要的操作,节省了时间,又避免读取到不期望的值。
例八:插入IDMA信号发生器35状态检查步骤(2f)的写操作,主设备1向从设备2内的0x1234地址中写入数据0xCDEF,从设备2应答。
一旦主设备1执行步骤(1d)——通过SPI接口控制器31向该IDMA信号发生器35的地址寄存器353中写入0x1234,该IDMA信号发生器35即依据如表1所示的转移条件,从空闲状态转移到地址已更新状态。依据表1所示的当前状态下的动作,IDMA信号发生器35将产生地址已更新状态下的IDMA信号(如图4B所示),将片选信号拉低,并将0x1234放到数据输入信号线上,然后将地址锁存信号拉高,同时将控制/状态寄存器351的状态位置为0x1。
于是,从设备2即已收到IDMA读操作中地址锁存过程的信号。从设备2将锁存地址0x1234,并进行地址译码等操作。该IDMA信号发生器35即依据如表1所示的转移条件,自动转移到地址已锁存状态。依据表1所示的转移条件,IDMA信号发生器35将产生地址已锁存状态下的IDMA信号(如图4B所示),将IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x2。
如果从设备2给出应答信号(将应答信号拉高),该IDMA信号发生器35即依据如表1所示的转移条件,自地址已锁存状态转移到从设备已应答状态。依据表1所示的转移条件,IDMA信号发生器35将产生从设备已应答状态下的IDMA信号(如图4B所示),将地址锁存信号拉低,其他IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x3、从设备应答位置为0x1。
在IDMA信号发生器35做上述动作的同时,主设备1执行完步骤(1d)立即执行步骤(2f)——通过SPI接口控制器31读取该IDMA信号发生器35的控制/状态寄存器351的从设备应答位的值,如果从设备应答位的值为0x1,则说明从设备已应答,读写操作已准备好;如果从设备应答位的值为0x0,则说明从设备不应答。
因为从设备已应答,主设备1执行完步骤(2f)立即执行步骤(2d)——通过SPI接口控制器31向该IDMA信号发生器35的控制/状态寄存器351写入0x1。当IDMA信号发生器35检测到控制/状态寄存器351被写入数据0x1时,即依据如表1所示的转移条件,IDMA信号发生器35从从设备已应答状态转移到写请求状态。依据表1所示的转移条件,IDMA信号发生器35将产生写请求状态下的IDMA信号(如图4B所示),保持IDMA信号线值不变,保持一段时间,同时将控制/状态寄存器351的状态位置为0x5。
在IDMA信号发生器35做上述动作的同时,主设备1执行完步骤(2d)立即执行步骤(3d)——通过SPI接口控制器31向该IDMA信号发生器35的写数据寄存器357写入0xCDEF。
IDMA信号发生器35检测到写数据寄存器357被写入,其值为0xCDEF,则依据如表1所示的转移条件,IDMA信号发生器35从写请求状态转移到写状态,并产生写状态下的IDMA信号(如图4B所示),将写请求信号拉高,并将0xCDEF放到数据输入信号线上,保持一段时间,再将写请求信号拉低,并保持一段时间。
至此,一次完整的IDMA写操作即结束。主设备1完全可以在步骤(3d)之后立即启动下一次IDMA访问。
例九:插入IDMA信号发生器35状态检查步骤(2f)的写操作,主设备1向从设备2内的0x1234地址中写入数据0xCDEF,从设备2不应答。
一旦主设备1执行步骤(1d)——通过SPI接口控制器31向该IDMA信号发生器35的地址寄存器353中写入0x1234,该IDMA信号发生器35即依据如表1所示的转移条件,从空闲状态转移到地址已更新状态。依据表1所示的当前状态下的动作,IDMA信号发生器35将产生地址已更新状态下的IDMA信号(如图4B所示),将片选信号拉低,并将0x1234放到数据输 入信号线上,然后将地址锁存信号拉高,同时将控制/状态寄存器351的状态位置为0x1。
于是,从设备2即已收到IDMA读操作中地址锁存过程的信号。从设备2将锁存地址0x1234,并进行地址译码等操作。该IDMA信号发生器35即依据如表1所示的转移条件,自动转移到地址已锁存状态。依据表1所示的转移条件,IDMA信号发生器35将产生地址已锁存状态下的IDMA信号(如图4B所示),将IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x2。
如果从设备2的地址0x1234暂时不能应答,则从设备2继续将应答信号线拉低。
一定时间内,IDMA信号发生器35检测到从设备2给出的是不应答(应答信号为低电平),该IDMA信号发生器35即依据如表1所示的转移条件,从地址已锁存状态转移到不应答状态,依据表1所示的当前状态下的动作,IDMA信号发生器35将控制/状态寄存器351的状态位置为0x7、从设备应答位置为0x0,IDMA信号发生器35完成当前状态下的动作后,自动转移到空闲状态。
在IDMA信号发生器35做上述动作的同时,主设备1执行完步骤(1d)立即执行步骤(2f)——通过SPI接口控制器31读取该IDMA信号发生器35的控制/状态寄存器351的从设备应答位的值,如果从设备应答位的值为0x1,则说明从设备2已应答,读写操作已准备好;如果从设备应答位的值为0x0,则说明从设备2不应答。
因为从设备2不应答,如例五所述,主设备1继续执行步骤(2d)和步骤(3d)已经没有必要了。主设备1可以从步骤(1d)开始,重新启动写操作。这样省略了不必要的操作,节省了时间。
例十:在读操作过程中,在IDMA信号发生器35进入地址已锁存状态时主设备1改变主意,想访问从设备2其他的地址。
一旦主设备1执行步骤(1c)——通过SPI接口控制器31向该IDMA信号发生器35的地址寄存器353中写入0x1234,该IDMA信号发生器35即依据如表1所示的转移条件,从空闲状态转移到地址已更新状态。依据表1所示的当前状态下的动作,IDMA信号发生器35将产生地址已更新状态下的IDMA信号(如图4A所示),将片选信号拉低,并将0x1234放到数据输入信号线上,然后将地址锁存信号拉高,同时将控制/状态寄存器351的状态位置为0x1。
于是,从设备2即已收到IDMA读操作中地址锁存过程的信号。从设备2将锁存地址0x1234,并进行地址译码等操作。该IDMA信号发生器35即依据如表1所示的转移条件,自动转移到地址已锁存状态。依据表1所示的转移条件,IDMA信号发生器35将产生地址已锁 存状态下的IDMA信号(如图4A所示),将IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x2。
此时,不管从设备2是否应答,主设备1改变主意,希望访问(读或者写)从设备2的地址0x5678。则主设备1可以执行步骤(1c)或步骤(1d),发起新的读/写请求。
例十一:在读操作过程中,在IDMA信号发生器35由读请求状态转移到空闲状态时主设备1改变主意,想访问从设备2其他的地址。
一旦主设备1执行步骤(1c)——通过SPI接口控制器31向该IDMA信号发生器35的地址寄存器353中写入0x1234,该IDMA信号发生器35即依据如表1所示的转移条件,从空闲状态转移到地址已更新状态。依据表1所示的当前状态下的动作,IDMA信号发生器35将产生地址已更新状态下的IDMA信号(如图4A所示),将片选信号拉低,并将0x1234放到数据输入信号线上,然后将地址锁存信号拉高,同时将控制/状态寄存器351的状态位置为0x1。
于是,从设备2即已收到IDMA读操作中地址锁存过程的信号。从设备2将锁存地址0x1234,并进行地址译码等操作。该IDMA信号发生器35即依据如表1所示的转移条件,自动转移到地址已锁存状态。依据表1所示的转移条件,IDMA信号发生器35将产生地址已锁存状态下的IDMA信号(如图4A所示),将IDMA信号线上的信号保持不变,同时将控制/状态寄存器351的状态位置为0x2。
如果从设备2应答。则主设备1继续执行步骤(2c)——通过SPI接口控制器31向该IDMA信号发生器35的控制/状态寄存器351写入0x0。当IDMA信号发生器35检测到控制/状态寄存器351被写入数据0x0时,即依据如表1所示的转移条件,IDMA信号发生器35从从设备已应答状态转移到读请求状态。依据表1所示的转移条件,IDMA信号发生器35将产生读请求状态下的IDMA信号(如图4A所示),将读请求信号拉高,保持一段时间,再拉低。同时将控制/状态寄存器351的状态位置为0x4。
从设备2在检测到读请求信号的下降沿后,即将地址0x1234中的数据放到数据输出信号线上。该信号线连接IDMA信号发生器35的读数据存器355。因此IDMA信号发生器35的读数据存器355的值立即更新为读取的数据值。依据表1所示的转移条件,IDMA信号发生器35自动从读请求状态转移到空闲状态。
此时,如果主设备1改变主意,想得到从设备2的地址0x5678中的数据,则主设备1可以不执行步骤(3c)。主设备1可以在步骤(2c)之后,立即执行(1c)或者(1d)发起新的读/写请求。
综上所述,本发明的IDMA总线桥装置主要是用以实现支持非IDMA接口的至少一个主设备对支持IDMA接口的从设备执行读写操作,在非IDMA接口与IDMA接口之间提供一个IDMA信号发生器,该IDMA信号发生器具有控制/状态寄存器、地址寄存器、读数据寄存器以及写数据寄存器,其中,控制/状态寄存器中定义了读/写请求位、IDMA信号发生器的状态位以及从设备应答位。主设备依据本发明规定的状态转移顺序对所述4个寄存器进行读/写操作,就能完成对IDMA从设备的访问。相较于现有技术的主设备与IDMA信号发生器串行操作模式,既可在保留了原有IP的完整性的同时又缩短操作周期,进而提高工作效率,同时,由于本发明对IDMA信号发生器的各种状态之间的转移做了定义,使得在主设备没有按照本发明规定的状态转移顺序操作时,也不会发生误读或误写现象,提高了访问的安全性。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (14)
1.一种IDMA总线桥装置,其用以实现支持非IDMA接口的至少一个主设备对支持IDMA接口的从设备执行读写操作,所述IDMA总线桥装置包括:
至少一个非IDMA接口控制器,分别连接其中一个主设备的非IDMA接口,且用以接收对应主设备通过各自的非IDMA接口所输出的数据或通过各自的非IDMA接口传送予对应的主设备的数据;以及
总线仲裁器,分别连接所述非IDMA接口控制器,且用以选定其中一个非IDMA接口控制器运作;
其特征在于,所述IDMA总线桥装置进一步包括:
IDMA信号发生器,分别连接所述总线仲裁器以及IDMA接口,且具有供所述主设备通过非IDMA接口控制器访问的控制/状态寄存器、地址寄存器、读数据寄存器以及写数据寄存器,所述控制/状态寄存器中定义了读/写请求位、IDMA信号发生器的状态位以及从设备应答位,且所述状态位表征所述IDMA信号发生器在执行过程中的当前状态,所述IDMA信号发生器在每种状态下,均会产生相应的动作,该状态与其转移条件以及IDMA信号发生器在每个状态下的动作的对应关系如下表所示,
其中,当主设备按照上表中的状态转移顺序对所述IDMA信号发生器的控制/状态寄存器、地址寄存器、读数据寄存器以及写数据寄存器进行访问时,在执行读操作过程中,所述IDMA信号发生器将依次经过地址已更新状态、地址已锁存状态、从设备已应答状态与读请求状态,并发出一个完整的IDMA读操作周期所需的IDMA信号,而在执行写操作过程中,则依次经过地址已更新状态、地址已锁存状态、从设备已应答状态、写请求状态与写状态,并发出一个完整的IDMA写操作周期所需的IDMA信号。
2.根据权利要求1所述的IDMA总线桥装置,其特征在于:所述非IDMA接口为SPI接口或UART接口,所述非IDMA控制器对应为SPI接口控制器或UART接口控制器。
3.根据权利要求1所述的IDMA总线桥装置,其特征在于:所述控制/状态寄存器的最低位[0]为读/写请求位,位[3:1]为IDMA信号发生器的状态位,位[4]为从设备应答位。
4.根据权利要求3所述的IDMA总线桥装置,其特征在于:所述IDMA接口转换器的状态位的属性为只读,不可写。
5.根据权利要求3所述的IDMA总线桥装置,其特征在于:所述从设备应答位的值为0x0或0x1,值为0x0表示从设备不应答,值为0x1表示从设备已应答。
6.根据权利要求1所述的IDMA总线桥装置,其特征在于:所述主设备按表中的状态转移顺序对所述IDMA信号发生器的控制/状态寄存器、地址寄存器、读数据寄存器以及写数据寄存器进行访问时,在执行读操作过程中,主设备按如下顺序(c)操作:(1c)向地址寄存器中写入期望请求的地址,(2c)向控制/状态寄存器中写入读请求位,(3c)从读数据寄存器中读取数据;在执行写操作过程中,主设备按照如下顺序(d)操作:(1d)向地址寄存器中写入期望请求的地址,(2d)向控制/状态寄存器中写入写请求位,(3d)向写数据寄存器中写入期望写入的数据。
7.根据权利要求6所述的IDMA总线桥装置,其特征在于:在所述顺序(c)的操作步骤(1c)、(2c)、(3c)之间插入空闲等待操作是允许的,但为非必要的操作。
8.根据权利要求6所述的IDMA总线桥装置,其特征在于:在所述顺序(d)的操作步骤(1d)、(2d)、(3d)之间插入空闲等待操作是允许的,但为非必要的操作。
9.根据权利要求6所述的IDMA总线桥装置,其特征在于:所述顺序(c)是读操作的最精简顺序,在步骤(1c)之前和步骤(3c)之后插入无关操作是允许的,但为非必要的操作;根据需要在步骤(1c)和(3c)之间插入非空闲等待操作,是不允许的。
10.根据权利要求6所述的IDMA总线桥装置,其特征在于:所述顺序(d)是写操作的最精简顺序,在步骤(1d)之前和步骤(3d)之后插入无关操作是允许的,但为非必要的操作;根据需要在步骤(1d)和(3d)之间插入非空闲等待操作,是不允许的。
11.根据权利要求6所述的IDMA总线桥装置,其特征在于:主设备的一系列操作中包含一个连续完整的顺序(c),是完成一次读操作的必要非充分条件。
12.根据权利要求6所述的IDMA总线桥装置,其特征在于:主设备的一系列操作中包含一个连续完整的顺序(d),是完成一次写操作的必要非充分条件。
13.根据权利要求6所述的IDMA总线桥装置,其特征在于:所述控制/状态寄存器、地址寄存器、读数据寄存器以及写数据寄存器在所述IDMA信号发生器中的地址分别为0x0、0x1、0x2与0x3,且初始值均为0x0。
14.根据权利要求1、3或6所述的IDMA总线桥装置,其特征在于:所述读请求位的值为0x0,所述写请求位的值为0x1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110443571.9A CN102591820B (zh) | 2011-12-27 | 2011-12-27 | 一种idma总线桥装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110443571.9A CN102591820B (zh) | 2011-12-27 | 2011-12-27 | 一种idma总线桥装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102591820A true CN102591820A (zh) | 2012-07-18 |
CN102591820B CN102591820B (zh) | 2014-08-20 |
Family
ID=46480503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110443571.9A Active CN102591820B (zh) | 2011-12-27 | 2011-12-27 | 一种idma总线桥装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102591820B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684245A (zh) * | 2018-12-11 | 2019-04-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种apb总线访问spi flash的方法及装置 |
CN112540732A (zh) * | 2020-12-23 | 2021-03-23 | 展讯半导体(成都)有限公司 | 数据处理方法及相关产品 |
-
2011
- 2011-12-27 CN CN201110443571.9A patent/CN102591820B/zh active Active
Non-Patent Citations (6)
Title |
---|
ANALOG DEVICES, INC: "《Engineer To Engineer Note EE-115》", 5 September 2000, ANALOG DEVICES, INC * |
ANALOG DEVICES: "《DSP Microcomputer》", 31 December 1998, ANALOG DEVICES * |
ANALOG DEVICES: "《Engineer To Engineer Note EE-78》", 31 December 1999, ANALOG DEVICES * |
J.O.: "《Engineer To Engineer Note EE-82》", 28 October 1997, ANALOG DEVICES * |
SAEID ET AL: "《2004 Australasian Conference on Robotics and Automation》", 8 December 2004 * |
梁锴: "ADSP-218X的IDMA接口设计", 《网络财富》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684245A (zh) * | 2018-12-11 | 2019-04-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种apb总线访问spi flash的方法及装置 |
CN109684245B (zh) * | 2018-12-11 | 2022-05-27 | 中国航空工业集团公司西安航空计算技术研究所 | 一种apb总线访问spi flash的方法及装置 |
CN112540732A (zh) * | 2020-12-23 | 2021-03-23 | 展讯半导体(成都)有限公司 | 数据处理方法及相关产品 |
CN112540732B (zh) * | 2020-12-23 | 2022-11-11 | 展讯半导体(成都)有限公司 | 数据处理方法及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
CN102591820B (zh) | 2014-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7761626B2 (en) | Methods for main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies | |
US20140379969A1 (en) | Memory channel connected non-volatile memory | |
CN103116551B (zh) | 应用于CLB总线的NorFLASH存储接口模块 | |
CN103235760B (zh) | 基于CLB总线的高利用率NorFLASH存储接口芯片 | |
CN101876911B (zh) | 基于PCI/PCIe总线多CPU系统启动方法及模块 | |
CN102855199B (zh) | 数据处理设备和数据处理装置 | |
CN105224488A (zh) | 一种pci总线控制器及其控制方法 | |
CN104599227A (zh) | 用于高速ccd数据存储的ddr3仲裁控制器及方法 | |
CN104598402A (zh) | 一种闪存控制器和闪存控制器的控制方法 | |
CN102636987B (zh) | 双重化控制装置 | |
CN101160569A (zh) | 改进具有多个存储器控制器的电路的带宽的设备 | |
JP2008009817A (ja) | 半導体装置及びデータ転送方法 | |
CN103488600A (zh) | 通用从机同步串行接口电路 | |
CN105528314B (zh) | 一种数据处理方法及控制设备 | |
JP6568399B2 (ja) | 情報処理装置 | |
CN114281751B (zh) | 芯片系统 | |
CN102591820A (zh) | 一种idma总线桥装置 | |
CN102236622A (zh) | 提高动态存储器带宽利用率的动态存储器控制器及方法 | |
CN103793263A (zh) | 一种基于PowerPC处理器的DMA事务级建模方法 | |
US7313646B2 (en) | Interfacing of functional modules in an on-chip system | |
US20220147097A1 (en) | Synchronization signal generating circuit, chip and synchronization method and device, based on multi-core architecture | |
CN102622319B (zh) | 基于mpmc的高速存储器接口ip核的数据交换系统 | |
JP3804832B2 (ja) | メモリ装置及びコンピュータシステム | |
JP2007052685A (ja) | マイクロコントローラ | |
CN104050116A (zh) | 集成电路总线控制器及集成电路总线操作的处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |