CN116909954A - Dma控制电路 - Google Patents
Dma控制电路 Download PDFInfo
- Publication number
- CN116909954A CN116909954A CN202310498076.0A CN202310498076A CN116909954A CN 116909954 A CN116909954 A CN 116909954A CN 202310498076 A CN202310498076 A CN 202310498076A CN 116909954 A CN116909954 A CN 116909954A
- Authority
- CN
- China
- Prior art keywords
- dma
- request
- requests
- channels
- control circuit
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 claims abstract description 57
- 230000001960 triggered effect Effects 0.000 claims abstract description 11
- 230000002093 peripheral effect Effects 0.000 claims description 69
- 238000000034 method Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 19
- 238000001914 filtration Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 12
- 230000000694 effects Effects 0.000 claims description 4
- 238000012546 transfer Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 208000033748 Device issues Diseases 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 102100023116 Sodium/nucleoside cotransporter 1 Human genes 0.000 description 1
- 101710123675 Sodium/nucleoside cotransporter 1 Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
本申请涉及计算机工程与电子工程技术领域,公开了一种DMA控制电路,包括:DMA控制器;请求扩展模块,被配置为将来自外部设备的单个DMA请求扩展为依次进行的M组DMA请求,每一组DMA请求包括N个DMA请求,每一组DMA请求分别触发DMA控制器中的N个DMA通道进行数据传输,N和M均为大于1的整数;Ack汇总模块,被配置为接收来自所述DMA通道的确认信号,在一组DMA请求触发的N个DMA通道的确认信号全部获得后,触发下一组DMA请求,当所述M组DMA请求中最后一组所触发的N个DMA通道的确认信号全部获得后,向所述外部设备发送确认信号以清除所述单个DMA请求。本申请既能够显著提升软件配置的灵活度,也能使软件代码变得更为简洁,还能够满足复杂的数据搬运需求。
Description
技术领域
本申请涉及计算机工程与电子工程技术领域,特别涉及DMA控制器技术。
背景技术
随着现代生活需求的不断增加,人们对各种终端设备,如智能手机、平板电脑、可穿戴设备等,的性能要求也在不断提高。这些设备需要具备更加丰富的功能、更高的运行速度和更易于操作的用户界面,以满足用户在通信、娱乐、生产力等方面的需求。因此,使用单片机控制这些电器设备的软件操作系统不仅需要处理更多的任务,而且需要具备更高的实时性和更好的用户体验。
在这种背景下,外设接口数据的处理变得尤为关键。外设接口是单片机与外部设备(如传感器、执行器、显示器等)之间通信的桥梁。为了提高系统的整体性能,外设接口数据处理需要在保证数据传输的准确性和实时性的同时,降低对单片机处理器的负担。这就要求外设接口具备更高的数据搬运能力和灵活性。
直接内存访问(DMA)技术是一种常用的解决方案,它可以在不占用处理器资源的情况下,实现高速、高效的数据搬运。
然而,随着系统复杂度的提高,单个外设事件对于数据搬运的灵活性要求也更高。因此,设计一种具有高度灵活性的DMA控制电路,以适应现代终端设备对数据搬运性能的高要求,成为了电子工程领域的一项重要挑战。
发明内容
本申请的目的在于提供一种DMA控制电路,既能够显著提升软件配置的灵活度,也能使软件代码变得更为简洁,还能够满足复杂的数据搬运需求。
本申请公开了一种DMA控制电路,包括:
DMA控制器;
请求扩展模块,被配置为将来自外部设备的单个DMA请求扩展为依次进行的M组DMA请求,每一组DMA请求包括N个DMA请求,每一组DMA请求分别触发DMA控制器中的N个DMA通道进行数据传输,N和M均为大于1的整数;
Ack汇总模块,被配置为接收来自所述DMA通道的确认信号,在一组DMA请求触发的N个DMA通道的确认信号全部获得后,触发下一组DMA请求,当所述M组DMA请求中最后一组所触发的N个DMA通道的确认信号全部获得后,向所述外部设备发送确认信号以清除所述单个DMA请求。
本申请还公开了一种DMA控制电路包括:
DMA控制器;
请求扩展模块,被配置为将来自外部设备的单个DMA请求扩展为N个DMA请求,分别触发DMA控制器中的N个DMA通道进行数据传输,N为大于1的整数;
Ack汇总模块,被配置为接收来自所述N个DMA通道的确认信号,在所述N个DMA通道的确认信号全部获得后,向所述外部设备发送确认信号以清除所述单个DMA请求。
在一个优选例中,所述请求扩展模块包括数字滤波单元,用于保证外部设备的DMA请求在达到指定个数的时钟周期宽度后,作为有效触发源。
在一个优选例中,所述数字滤波单元可配置不同周期宽度,以满足不同外部设备的请求条件。
在一个优选例中,所述Ack汇总模块采用与逻辑电路对DMA控制器的反馈确认信号进行处理。
在一个优选例中,所述请求扩展模块可配置请求扩展次数,以实现对单个外部设备请求的扩展。
在一个优选例中,所述DMA控制器可配置多个DMA通道,以实现对不同外部设备请求的处理。
在一个优选例中,所述DMA控制器支持不同类型的外部设备接口。
在一个优选例中,所述DMA控制器可与处理器、存储器及其他外设进行通信,实现对数据的搬运和处理。
本方案可以实现MCU中单次产生的外设DMA请求转化为多次请求,且转换后的每次请求都可以让所使用到的多个DMA控制器通道完成数据搬运。该方案可极大幅度提升软件配置的灵活度,也能使软件代码变得更为简洁,又满足复杂的数据搬运需求。
上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均应该视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
图1是根据本申请第一实施方式的DMA控制电路的结构示意图;
图2是根据本申请第一实施方式的DMA控制电路的一个实例的具体结构示意图;
图3是根据本申请第二实施方式的DMA控制电路的结构示意图;
图4是根据本申请第二实施方式的DMA控制电路的信号示意图;
图5是根据本申请第二实施方式的DMA控制电路的与门电路示意图;
图6是根据本申请第二实施方式的DMA控制电路的外设请求扩展控制电路示意图;
图7是根据本申请第二实施方式的DMA控制电路的与门电路示意图;
图8是根据本申请第一实施方式的DMA控制电路的一个例子的示意图;
图9是根据本申请第一实施方式的DMA控制电路的另一个例子的示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
术语解释:
Active_Ack,即,主动应答信号,是一种在通信协议中使用的信号,用于表示接收设备已成功接收到发送设备发送的数据。在许多通信协议中,Ack信号(应答信号)是用于确保数据传输可靠性的关键组成部分。在DMA(直接内存访问)传输过程中,Active_Ack信号通常用于表示数据已经成功地从源地址传输到目标地址。当DMA控制器完成数据传输任务时,它会向相关设备发送Active_Ack信号,以指示数据已经成功传输。接收到Ack信号的设备会对其进行处理,例如更新数据缓冲区状态、清除请求标志等。通过这种方式,Active_Ack信号有助于确保数据在系统各个部分之间的准确、可靠传输。总之,Active_Ack是一种在通信协议和数据传输过程中使用的应答信号,用于确保数据传输的可靠性和完整性。
Sync_Ack,即,同步应答信号,是一种在通信协议中使用的应答信号,用于表示接收设备已成功接收到发送设备发送的数据,并且这个过程是同步的。同步数据传输是指数据在发送和接收设备之间按照固定的时钟周期进行传输,保证数据的一致性和准确性。在某些通信协议或数据传输系统中,Sync_Ack信号用于确保数据在发送和接收设备之间同步地传输。当接收设备成功地接收到数据并与发送设备保持同步时,它会发送一个Sync_Ack信号。这个信号告诉发送设备数据已经被成功接收,并且传输过程是同步的。这有助于确保数据在系统各个部分之间的准确、可靠传输,以及系统整体的稳定性。总之,Sync_Ack是一种在通信协议和数据传输过程中使用的同步应答信号,用于确保数据传输的可靠性和同步性。
Ack信号,指的是“确认信号”(Acknowledgment Signal),它是数据通信中的一种机制,用于表示接收设备已成功接收到发送设备发送的数据。例如,在DMA(Direct MemoryAccess)控制器的上下文中,Ack信号是用于表示DMA通道已经完成了数据传输任务的信号。在DMA控制器中,数据传输通常是在DMA通道之间进行的。当一个DMA通道完成了分配给它的数据传输任务时,它会发送一个Ack信号。这个信号告诉DMA控制器或其他相关硬件(例如外部设备或另一个DMA通道)数据传输已经成功完成。
DMA请求源Req信号,Direct Memory Access Request Signal,是一种电气信号,用于在外设(如SPI、UART、TIMER等)与DMA控制器之间传递数据传输请求。当外设需要进行数据传输(例如,从外设读取数据到内存,或者将内存中的数据发送到外设)时,它会产生一个DMA请求源Req信号。该信号通知DMA控制器,有一个数据传输任务需要处理。
下面概要说明本申请实施方式的部分创新点:
本申请的发明人经过深入研究分析后,针对现有技术中数据搬运的需求无法得到很好的满足的技术问题,创造性地提出了一种DMA控制电路,其中,设计一个请求生成器,使单个外设请求扩展为任意指定个数的连续DMA控制器请求;设计一个DMA控制器反馈信号的控制模块,以确保多个通道DMA控制器都完成数据搬运时,才输出唯一的ACK反馈来清除请求生成器中的请求源信号。其中,在MCU中,外设的DMA请求触发源与DMA控制器通道相连接,在触发源到来时,DMA控制器进行相应的数据传输,传输方式一般有三类:memory tomemory,即数据传输的源和目的地都是内存;peripheral to memory,即数据传输的源是外设,目的地是内存;以及memory to peripheral,即数据传输的源是内存,目的地是外设。本申请的实施例可以实现MCU中单次产生的外设DMA请求转化为多次请求,且转换后的每次请求都可以让所使用到的多个DMA控制器通道完成数据搬运。该方案可极大幅度提升软件配置的灵活度,也能使软件代码变得更为简洁,又满足复杂的数据搬运需求。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
本申请的第一实施方式涉及一种DMA控制电路,如图1和图2所示,DMA控制电路包括:DMA控制器、外设请求触发源控制模块,其中,该外设请求触发源控制模块,被配置为将来自外部设备的单个DMA请求扩展为依次进行的M组DMA请求,每一组DMA请求包括N个DMA请求,每一组DMA请求分别触发DMA控制器中的N个DMA通道进行数据传输,N和M均为大于1的整数;以及,接收来自所述DMA通道的确认信号,在一组DMA请求触发的N个DMA通道的确认信号全部获得后,触发下一组DMA请求,当所述M组DMA请求中最后一组所触发的N个DMA通道的确认信号全部获得后,向所述外部设备发送确认信号以清除所述单个DMA请求。
需指出,在本实施例中,将来自外部设备的单个DMA请求扩展为依次进行的M组DMA请求。但本申请不限于此,也可以将来自外部设备的单个DMA请求扩展为N个DMA请求,在这种情况下,外设请求触发源控制模块被配置为将来自外部设备的单个DMA请求扩展为N个DMA请求,分别触发DMA控制器中的N个DMA通道进行数据传输,N为大于1的整数;以及,接收来自所述N个DMA通道的确认信号,在所述N个DMA通道的确认信号全部获得后,向所述外部设备发送确认信号以清除所述单个DMA请求。
可选的,请求扩展模块包括数字滤波单元,用于保证外部设备的DMA请求在达到指定个数的时钟周期宽度后,作为有效触发源。
在本实施例中,数字滤波单元的作用是对外设请求源信号进行处理,以确保信号满足指定个数的时钟周期宽度后,才被视为有效触发源。这有助于提高数据传输的准确性和有效性。具体地说,数字滤波单元通过对输入信号进行数字滤波处理,消除短暂的干扰和噪声,确保只有在信号持续时间达到预定的时钟周期宽度时,信号才被认为是有效的。这种处理方式可以防止因信号抖动或电气干扰导致的误触发,从而提高整个数据传输过程的稳定性和可靠性。
可选的,数字滤波单元可配置不同周期宽度,以满足不同外部设备的请求条件。
在本实施例中,数字滤波单元具有可配置性,以适应不同外部设备的请求条件。不同外部设备可能对请求信号的时钟周期宽度要求不同,以满足其特定的工作要求和性能指标。为了满足这些不同的需求,数字滤波单元可以配置不同的周期宽度,以确保输出的请求信号满足相应的设备要求。具体来说,数字滤波单元可以通过设置参数或编程控制,以适应不同外部设备的请求信号宽度需求。这样,当输入的请求信号达到指定的时钟周期宽度时,数字滤波单元会将信号视为有效触发源,从而触发相应的操作。这种可配置性使得数字滤波单元能够更好地适应各种不同的应用场景和设备要求,提高系统的通用性和灵活性。
可选的,Ack汇总模块采用与逻辑电路对DMA控制器的反馈确认信号进行处理。
在本实施例中,Ack汇总模块处理来自DMA控制器的反馈确认信号,这些确认信号(Ack信号)表示对应的DMA通道已完成数据传输任务。Ack汇总模块通过与逻辑电路对这些Ack信号进行处理,以实现对外部设备的正确响应和请求处理。具体来说,Ack汇总模块通过与逻辑电路将多个DMA通道的Ack信号组合在一起。当所有相关DMA通道的Ack信号都收到时,即表示所有通道的数据传输任务已经完成。这时,Ack汇总模块会向外部设备发送一个Ack信号以清除相应的DMA请求。
与逻辑电路在Ack汇总模块中起到关键作用,它确保了只有在所有相关DMA通道都完成数据传输任务时,才会向外部设备发送Ack信号。这样可以确保数据传输的准确性和完整性,避免因为某个DMA通道未完成任务而导致的数据丢失或错误。
通过Ack汇总模块和与逻辑电路的处理,本实施例可以实现对多个DMA通道的有效管理和控制,提高了数据搬运的灵活性和效率。
可选的,请求扩展模块可配置请求扩展次数,以实现对单个外部设备请求的扩展。
请求扩展模块的主要作用是将来自外部设备的单个DMA请求扩展为多个连续请求。这样做可以提高数据传输的效率和灵活性,同时满足不同的应用场景需求。
请求扩展模块可以通过配置参数来设置请求扩展次数。当外部设备发出一个DMA请求时,请求扩展模块会根据预设的扩展次数将这个单一请求扩展为多个连续请求。例如,如果请求扩展次数设置为3,则每当接收到一个来自外部设备的DMA请求,请求扩展模块会产生3个连续的请求。这些扩展后的请求会分别触发DMA控制器中的相应DMA通道进行数据传输。
通过配置请求扩展次数,本实施例可以实现对单个外部设备请求的灵活扩展,从而提高数据传输的效率。例如,在某些场景下,可能需要快速连续地处理多个数据传输任务。通过使用请求扩展模块,可以实现这一目标,而无需每次都等待外部设备发出单独的DMA请求。这样,可以大大提高数据处理速度,满足不同应用场景的需求。
可选的,DMA控制器可配置多个DMA通道,以实现对不同外部设备请求的处理。
在本实施例中,DMA控制器可以配置多个DMA通道。每个通道可以独立地处理来自不同外部设备的DMA请求。这意味着,当一个外部设备发出DMA请求时,可以选择一个空闲的DMA通道进行数据传输。这有助于实现对不同外部设备请求的高效处理,避免数据传输过程中的拥堵和延迟。例如,假设有一个系统中包含SPI、UART和I2C三个外部设备。为了能够同时处理这三个设备的DMA请求,DMA控制器可以配置三个独立的DMA通道。当SPI设备发出一个DMA请求时,DMA通道1可以处理该请求并进行数据传输。同时,如果UART和I2C设备也发出DMA请求,DMA通道2和通道3可以分别处理这些请求,确保数据传输的高效进行。通过配置多个DMA通道,本实施例实现了对不同外部设备请求的并行处理,从而提高了数据传输的效率和系统性能。同时,这种多通道设计还具有较高的灵活性,可以根据实际应用需求和系统资源分配合理地配置DMA通道数量。
可选的,DMA控制器支持不同类型的外部设备接口。
在本实施例中,DMA控制器可以支持不同类型的外部设备接口,这意味着它可以与各种类型的外部设备进行通信和数据传输。这些外部设备可能包括:串行外设接口(SPI)、通用异步收发器(UART)、定时器/计数器(TIMER)、四线全双工串行外设接口(QSPI)、I2C接口等。
DMA控制器支持不同类型的外部设备接口,使得它可以在各种应用场景下与各种类型的外部设备进行高效、灵活的数据传输。这种支持多种接口的设计,有助于提高系统的兼容性和扩展性,使得在不同的应用领域和设备间都能实现高效的数据传输。
可选的,DMA控制器可与处理器、存储器及其他外设进行通信,实现对数据的搬运和处理。
在本实施例中,DMA控制器可在不经过CPU(中央处理器)的情况下,直接在存储器(如RAM)和外部设备之间传输数据。这种方式可以有效地减轻CPU的负担,提高系统的整体性能。例如,DMA控制器可以与处理器(如CPU)、存储器(如RAM)以及其他外部设备(如传感器、通信接口等)进行通信,实现对数据的搬运和处理。因此,DMA控制器可以实现对处理器、存储器及其他外设间数据的高效搬运和处理,降低系统延迟,提高整体性能。此外,DMA控制器还可以支持多个通道,使得在多个设备之间可以同时进行数据传输,进一步提高了系统的灵活性和并发性能。
本实施例能够实现MCU中单次产生的外设DMA请求转化为多次请求,且转换后的每次请求都可以让所使用到的多个DMA控制器通道完成数据搬运。本实施例可极大幅度提升软件配置的灵活度,也能使软件代码变得更为简洁,又满足复杂的数据搬运需求。
为了能够更好地理解本申请的技术方案,下面结合一个具体的例子来进行说明,该例子中罗列的细节主要是为了便于理解,不作为对本申请保护范围的限制。
在本例子中,外设请求触发源控制模块为APB或AHB总线中的Slave,它们都能在满足某些条件时产生DMA请求源Req信号,其中,由低电平变高电平时,为一次请求事件。
具体地说,在这个例子中,所提到的外设请求触发源控制模块指的是通过APB(Advanced Peripheral Bus,高级外设总线)或AHB(Advanced High-performance Bus,高级高性能总线)总线连接的从设备(Slave),例如串行外设接口(SPI)、通用异步收发器(UART)、定时器/计数器(TIMER)、四线全双工串行外设接口(QSPI)、I2C接口,这些从设备作为外设,在满足特定条件时,可以产生DMA请求源Req信号。
这里的"满足某些条件"通常是指从设备需要处理的数据量达到预设的阈值,或者设备需要进行某种特定操作。在这种情况下,从设备会产生一个DMA请求源Req信号,通知DMA控制器需要进行数据传输。
而“由低电平变高电平时,为一次请求事件”是指,在电气信号上,Req信号从低电平变为高电平(通常从0V变为一个正电压值)的瞬间表示一次请求事件。当DMA控制器检测到这个电平变化,它会将其视为从设备发出的数据传输请求,并开始执行相应的数据传输任务。
进一步的,DMA请求源Req信号经过外设请求触发源控制模块的分配后,到达DMA控制器,以触发DMA控制器中的某个通道进行数据传输。
具体的,当某个通道DMA控制器接收到传输请求,经总线仲裁后获取权限向源地址获取数据,再将该数据传输至目标地址,并释放总线,同时返回Ack以清除本次DMA请求源(使该Req信号由高电平变为低电平),即完成一次成功的数据传输。
根据本申请的技术构思,通过对外设请求触发源控制模块进行独特的电路构建,将单次外设触发源扩展为多次连续请求,并同时触发多通道的DMA控制器,并且,该DMA控制器带有反馈Ack机制。
图3是本实施例的外设请求触发源控制模块的一个实例的功能示意图。
参见图3,扩展后的DMA请求,可被多路DMA控制器同时选中。
在每个通道的DMA控制器传输完成时,会有单独的传输响应Ack反馈信号,并接入外设请求选择电路判断是否有效。
所有通道的DMA请求源Req信号经过与逻辑处理后,此Active_Ack送至请求扩展电路,以清除当次的扩展请求。
在扩展后的最后一次请求被所选中的DMA控制器通道全部响应后,扩展控制电路输出Sync_Ack至外设模块,以清除外设请求源。
参见图4,外设模块的DMA请求源Req信号,即,单个DMA请求,经请求扩展模块,由单次触发边沿转换为连续多次的边沿,对应多个DMA请求。
具体地说,如图4所示,来自外设模块的单个DMA请求被扩展为3次连续的DMA请求,即,同时对多通道DMA控制器中相应的通道发起传输请求。其中,线条1表示由DMA控制器的Ack清除扩展后DMA请求,线条2表示扩展后DMA请求的下降沿清除所使用DMA控制器各通道的Ack反馈,线条3表示送至外设模块的Ack反馈清除外设请求源。
如图5和图6所示,根据上述例子,对于外设请求触发源控制模块,在常用的选择型结构基础上,新增以下电路结构,以实现新功能:
如图5所示,使用一个逻辑与门电路,对DMA控制器的各通道的传输响应Ack反馈信号(由选择器译码之后产生)进行与逻辑处理,再送至外设请求扩展控制电路。其中,请求扩展电路利用该处理后的Active_Ack信号进行以下两点操作:
第一,清除扩展电路所产生的额外的(M-1)组DMA请求(首次DMA请求为外设源请求本身)。第二,屏蔽过程中的Ack之后,在全部传输完成时输出最后一次Sync_Ack,用于清除外设请求源本身。)
这样做的好处在于,基于带反馈机制的DMA传输时的握手协议,利用DMA控制器的Ack反馈来清除扩展过程中的产生请求,使计数器能递减归0,实现指定的扩展请求次数。
如图6所示,增加外设请求扩展控制电路,用于对单个DMA请求进行扩展。
该控制电路还利用与逻辑处理生成的传输响应Ack反馈信号,来清除扩展的额外请求,举例来说,比如,SPI发送0x55数据后,产生单次SPI-TX(发送完成)DMA请求,通过配置请求扩展电路中的(扩展次数)寄存器,假定扩展为10次,则DMA通道将会多进行(额外的)9次传输,即比原本单次DMA传输请求多了9次请求;同时也要屏蔽传输过程中的传输响应Ack反馈信号,仅输出最后一次传输响应Ack反馈信号。
换句话说,该电路用于将单次外设请求,即,单个DMA请求,扩展成多个DMA请求。它利用Active_Ack清除扩展的额外请求,并屏蔽传输过程中的确认信号,仅向外输出最后一次Ack以清除外设请求源。
进一步的,图6示出外设请求扩展控制电路的一个具体实现方式,包括:扩展次数计数控制单元,数字滤波单元以及单个边沿转换为多个连续边沿电路单元,具体如下:
扩展次数计数控制单元,用于实现指定的扩展请求次数,具体的,通过配置扩展电路的寄存器,实现指定的扩展请求次数。计数控制每扩展产生一次请求后 -1,为0时则完成指定次数的扩展请求生成)。
数字滤波单元,用于消除外设请求线上的毛刺信号;同时通过寄存器来配置触发源信号的有效高电平宽度。
寄存器功能位:滤波使能位FLT_EN;滤波周期个数FLT_CNT[1:0]。
FLT_EN可用于使能滤波功能,以消除外设请求线上的毛刺信号;同时通过FLT_CNT[1:0]来配置触发源信号的有效高电平宽度。
单个边沿转换为多个连续边沿电路单元,用于扩展单次外设请求为连续多次DMA传输请求。
进一步的,其逻辑功能满足以下条件:
1)首次请求边沿的产生条件:外设请求到来,同时它满足了数字滤波配置的电平宽度要求时(由低电平变高电平后,维持高电平的周期个数大于等于FLT_CNT[1:0]所指定的时钟周期)。
2)扩展边沿的产生条件:COUNT_EN位使能扩展请求功能,且COUNT_NUM[7:0]计数值不为零,此时如果Active_Ack反馈信号由高电平变低电平(配置的各通道DMA控制器均已完成当前请求所触发的传输时),则开始下一次传输请求的产生。
3)扩展后DMA请求的清除条件:Active_Ack反馈信号到来时(当前请求已被响应)。
4)扩展请求的停止条件:COUNT_NUM[7:0]计数值为全0,Active_Ack反馈信号到来时。
更具体的,图7示出上述实例中外设请求扩展控制电路的一个具体实现方式的结构示意图。具体如下:
扩展次数计数控制单元中,“-”号代表计数寄存器进行“自减1”逻辑,“=”则代表判断计数寄存器“是否为0的判断”逻辑。
“云团”代表组合电路逻辑。
寄存器时钟为clk,异步复位信号为rstn。
请求扩展次数配置寄存器位数以8位为例,但不限于此,在本申请的其他实施例中,单次外设请求最多可扩展为255次DMA传输请求。
数字滤波单元选择位以2位为例,需指出,外设请求所需满足的AHB时钟周期宽度为1-4个,不满足该宽度要求则被视为无效的外设请求。
可选的,图7中的内部信号与组合逻辑接口设置的示例如下:
单个边沿扩展控制电路 | 输入信号 | 输出信号 | 实现功能 |
组合电路A | COUNT_EN,COUNT_NUM[7:0],ack_sync*,req_headmost(扩展后最初始的Req),判断“是否等于0”。 | 扩展次数计数开始,扩展次数计数停止,额外产生的请求,清除外设Req请求源的Ack. | 利用使能信号及请求扩展目标次数的配置,以及DMA控制器反馈Ack(与门逻辑处理后),在外设请求到来后,扩展请求次数,并屏蔽扩展请求过程中的Ack(仅在最后输出Ack清除外设请求源)。 |
组合电路B | FLT_EN,外设Req请求源经不同级数FF(Flip-Flop)后的抽头。 | 外设请求源输入后满足不同周期宽度(如2、3、4、5个clk宽度)的输出(req经数字滤波处理后) | 数字滤波处理,以输出满足不同clk时钟个数宽度的外设请求源 |
或门 | req_headmost,额外产生的请求经1级FF同步后。 | 扩展后DMA请求 | 经或逻辑后,最初始外设的Req(数字滤波处理后)与额外扩展的请求合并为扩展后DMA请求输出。 |
为了能够更好地理解本申请的技术方案,下面结合一个具体的例子来进行说明,该例子中罗列的细节主要是为了便于理解,不作为对本申请保护范围的限制。
在一个例子中,如图8所示,外设请求触发源控制模块包括请求扩展模块和Ack汇总模块。
请求扩展模块被配置为将来自外部设备的单个DMA请求扩展为依次进行的M组DMA请求,每一组DMA请求包括N个DMA请求,每一组DMA请求分别触发DMA控制器中的N个DMA通道进行数据传输,N和M均为大于1的整数。
Ack汇总模块被配置为接收来自所述DMA通道的确认信号,在一组DMA请求触发的N个DMA通道的确认信号全部获得后,触发下一组DMA请求,当所述M组DMA请求中最后一组所触发的N个DMA通道的确认信号全部获得后,向所述外部设备发送确认信号以清除所述单个DMA请求。
需指出,在上述例子中,将来自外部设备的单个DMA请求扩展为依次进行的M组DMA请求。但本申请还有其他的例子,例如,在下面的例子中,也可以将来自外部设备的单个DMA请求扩展为N个DMA请求,在这种情况下,如图9所示,外设请求触发源控制模块包括请求扩展模块和Ack汇总模块。
请求扩展模块被配置为将来自外部设备的单个DMA请求扩展为N个DMA请求,分别触发DMA控制器中的N个DMA通道进行数据传输,N为大于1的整数。
Ack汇总模块被配置为接收来自所述N个DMA通道的确认信号,在所述N个DMA通道的确认信号全部获得后,向所述外部设备发送确认信号以清除所述单个DMA请求。
需指出,本实施例的某个具体例子中的具体技术手段可以应用于其他的具体例子中,其他具体例子中的具体技术手段也可以应用于该具体例子。
技术效果:
根据上述实例,本申请对DMA控制器反馈确认信号使用了与逻辑电路,使得单个外设请求源同时触发多个DMA控制器通道。
同时,在外设DMA请求源输入时加入请求扩展控制电路,使得单个外设请求被扩展为指定个数的连续请求。
额外地,使用数字滤波单元保证了外设请求源达到指定个数的时钟周期宽度后,才作为有效触发源,保证传输的准确性、有效性。
需指出,本实施中将一个DMA请求扩展为多个请求具有显著的技术效果。具体地说,使相应的DMA控制器传输场景变得更快捷、灵活、丰富。例如QSPI内置8级接收数据寄存器构成FIFO,仅在FIFO满时产生一次接收DMA请求,此请求每次总是触发一次DMA传输(DMA控制器读走1级FIFO接收数据)。
例如,如果使用扩展请求电路,配置单次请求扩展为8次,则单次QSPI的FIFO满请求源,便能在扩展后的8次连续请求下,使DMA控制器快速读出当前8级接收FIFO中的全部数据(快捷)。
另外,单个DMA请求源可被多个DMA通道选择,则不同通道DMA控制器可以配置不同传输需求,软件上可较大程度 提高了数据传输的灵活度(写从权),更为丰富的数据传输组合(例如,使用DMA通道1搬运QSPI的接收FIFO数据至SRAM的A地址,DMA通道2搬运SRAM中A地址存放数据至B地址,DMA通道3搬运SRAM中B地址存放数据至C地址,DMA通道4搬运SRAM中C地址存放数据至SPI的发送数据寄存器;则QSPI的单次DMA请求源 可实现 将FIFO数据先后搬运至SRAM中的A地址,B地址,C地址进行存放,同时把读出FIFO数据也写入到SPI进行输出。需注意,DMA各通道的优先级会由总线仲裁判决。)
需要说明的是,在公开中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本申请中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
本说明书包括本文所描述的各种实施例的组合。对实施例的单独提及(例如“一个实施例”或“一些实施例”或“优选实施例”)不一定是指相同的实施例;然而,除非指示为是互斥的或者本领域技术人员很清楚是互斥的,否则这些实施例并不互斥。应当注意的是,除非上下文另外明确指示或者要求,否则在本说明书中以非排他性的意义使用“或者”一词。
在本申请提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,在阅读了本申请的内容之后,本领域技术人员可以对本申请作各种改动或修改,这些等价形式同样落于本申请所要求保护的范围。
Claims (9)
1.一种DMA控制电路,其特征在于,包括:
DMA控制器;
请求扩展模块,被配置为将来自外部设备的单个DMA请求扩展为依次进行的M组DMA请求,每一组DMA请求包括N个DMA请求,每一组DMA请求分别触发DMA控制器中的N个DMA通道进行数据传输,N和M均为大于1的整数;
Ack汇总模块,被配置为接收来自所述DMA通道的确认信号,在一组DMA请求触发的N个DMA通道的确认信号全部获得后,触发下一组DMA请求,当所述M组DMA请求中最后一组所触发的N个DMA通道的确认信号全部获得后,向所述外部设备发送确认信号以清除所述单个DMA请求。
2.一种DMA控制电路,其特征在于,包括:
DMA控制器;
请求扩展模块,被配置为将来自外部设备的单个DMA请求扩展为N个DMA请求,分别触发DMA控制器中的N个DMA通道进行数据传输,N为大于1的整数;
Ack汇总模块,被配置为接收来自所述N个DMA通道的确认信号,在所述N个DMA通道的确认信号全部获得后,向所述外部设备发送确认信号以清除所述单个DMA请求。
3.根据权利要求1或2所述的DMA控制电路,其特征在于,所述请求扩展模块包括数字滤波单元,用于保证外部设备的DMA请求在达到指定个数的时钟周期宽度后,作为有效触发源。
4.根据权利要求3所述的DMA控制电路,其特征在于,所述数字滤波单元可配置不同周期宽度,以满足不同外部设备的请求条件。
5.根据权利要求1或2所述的DMA控制电路,其特征在于,所述Ack汇总模块采用与逻辑电路对DMA控制器的反馈确认信号进行处理。
6.根据权利要求1或2所述的DMA控制电路,其特征在于,所述请求扩展模块可配置请求扩展次数,以实现对单个外部设备请求的扩展。
7.根据权利要求1或2所述的DMA控制电路,其特征在于,所述DMA控制器可配置多个DMA通道,以实现对不同外部设备请求的处理。
8.根据权利要求1或2所述的DMA控制电路,其特征在于,所述DMA控制器支持不同类型的外部设备接口。
9.根据权利要求1或2所述的DMA控制电路,其特征在于,所述DMA控制器可与处理器、存储器及其他外设进行通信,实现对数据的搬运和处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310498076.0A CN116909954A (zh) | 2023-05-05 | 2023-05-05 | Dma控制电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310498076.0A CN116909954A (zh) | 2023-05-05 | 2023-05-05 | Dma控制电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116909954A true CN116909954A (zh) | 2023-10-20 |
Family
ID=88363561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310498076.0A Pending CN116909954A (zh) | 2023-05-05 | 2023-05-05 | Dma控制电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116909954A (zh) |
-
2023
- 2023-05-05 CN CN202310498076.0A patent/CN116909954A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6612885B2 (ja) | シリアルバスのための受信クロック較正 | |
US4965793A (en) | Method and apparatus for interfacing a system control unit for a multi-processor | |
EP0852357B1 (en) | Method for handling interrupts in a high speed I/O controller | |
US5392422A (en) | Source synchronized metastable free bus | |
US11843529B2 (en) | Slave-to-master data and out-of-sequence acknowledgements on a daisy-chained bus | |
KR20160107247A (ko) | 대역-내 인터럽트를 이용한 카메라 제어 인터페이스 확장 | |
US5640602A (en) | Transferring digital data in units of 2 bytes to increase utilization of a 2-byte-wide bus | |
US11386025B2 (en) | Daisy chain complex commands | |
JPH06324977A (ja) | データ転送方法 | |
JP2005122372A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
CN114185830A (zh) | 基于mailbox的多处理器通信方法、设备、系统和存储介质 | |
CN116909954A (zh) | Dma控制电路 | |
CN111045817A (zh) | 一种PCIe传输管理方法、系统和装置 | |
JP6271113B1 (ja) | 時刻同期スレーブ装置及び通信制御方法 | |
CN110222000B (zh) | 一种AXI stream数据帧总线合路装置 | |
WO2021089430A1 (en) | Bus system and method for operating a bus system | |
CN111130675B (zh) | 一种基于时间触发网络的时间同步装置 | |
CN116701284B (zh) | 一种cpu间数据高速同步方法、装置、设备及介质 | |
EP3971721A1 (en) | Information processing device | |
EP1242897B1 (en) | Method and apparatus for differential strobing in a communications bus | |
CN115729863A (zh) | 数据传输方法、装置、电子设备及介质 | |
WO2003025769A1 (en) | Microcontroller having a transmission-bus-interface | |
JPH0555908B2 (zh) | ||
JPH01192239A (ja) | 通信回線におけるポーリング方式 | |
JP2001142852A (ja) | 高速並列計算用同期及び通信制御装置 |
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 |