控制器制造技术

技术编号:26689583 阅读:17 留言:0更新日期:2020-12-12 02:38
本发明专利技术提供了一种控制器,该控制器包括主CPU、FPGA和DDR。FPGA外接DDR,FPGA包括ARM、DDR控制器和数据交互逻辑模块。数据交互逻辑模块,具体包括依次通信连接的外部总线接口逻辑模块、FIFO读写逻辑模块、DMA调度逻辑模块和片上总线接口逻辑模块。外部总线接口逻辑模块与外部总线通信连接;片上总线接口逻辑模块与片上总线通信连接。主CPU与FPGA外接的DDR交互数据时,不再通过FPGA的ARM,而是通过FPGA的数据交互逻辑模块,因此不需要等到ARM芯片空闲时才能进行数据交互,提高了数据交互的效率。

【技术实现步骤摘要】
控制器
本专利技术涉及工业自动化领域,更具体地说,涉及一种控制器。
技术介绍
在工业自动化领域,有时需要由CPU(centralprocessingunit,中央处理器)和FPGA(FieldProgrammableGateArray,现场可编程逻辑门阵列)组成控制器。由于功能设计需要,FPGA带有ARM(AdvancedRISCMachine,进阶精简指令集机器)及外接有DDR(DoubleDataRateSynchronousDynamicRandomAccessMemory,双倍数据率同步动态随机存取存储器)。目前,由CPU和FPGA组成的控制器中,CPU与FPGA外接的DDR交互数据时,需要通过FPGA的ARM和DDR控制器;例如,CPU向FPGA外接的DDR写入数据时,需要先向FPGA的ARM发送数据,ARM再调用DDR控制器将数据写入到DDR中。但是,由于FPGA中的ARM还用于工业总线协议栈等功能,因此当CPU需要与FPGA外接的DDR交互数据时,得等到FPGA的ARM空闲时才能进行。导致CPU和DDR的数据交互效率较低。
技术实现思路
有鉴于此,本专利技术提出一种控制器,欲提高CPU和DDR的数据交互效率。为了实现上述目的,现提出的方案如下:一种控制器,包括主CPU、FPGA和DDR,所述FPGA包括ARM、DDR控制器和数据交互逻辑模块;所述主CPU通过外部总线与所述数据交互逻辑模块通信连接;所述数据交互逻辑模块通过所述FPGA的片上总线与所述DDR控制器通信连接;所述DDR控制器外接所述DDR;所述主CPU通过所述数据交互逻辑模块与所述DDR进行数据交互;所述数据交互逻辑模块,具体包括:依次通信连接的外部总线接口逻辑模块、FIFO(FirstInputFirstOutput,先进先出)读写逻辑模块、DMA(DirectMemoryAccess,直接存储器访问)调度逻辑模块和片上总线接口逻辑模块;所述外部总线接口逻辑模块与所述外部总线通信连接;所述片上总线接口逻辑模块与所述片上总线通信连接;所述FIFO读写逻辑模块,用于进行所述外部总线和所述片上总线之间的数据位宽转换以及操作速率转换;所述DMA调度逻辑模块,用于确定所述主CPU和所述DDR之间是否完成数据交互。优选的,在所述主CPU写数据到所述DDR的过程中,所述数据交互逻辑模块包括的各模块,具体用于:所述外部总线接口逻辑模块从所述外部总线接收需要写入所述DDR的数据、目标DDR地址和待写入数据长度,并传输到所述FIFO读写逻辑模块;所述FIFO读写逻辑模块分别将第一FIFO存储器、第二FIFO存储器和第三FIFO存储器复位,然后将需要写入所述DDR的数据填写到第一FIFO存储器,将目标DDR地址写入到第二FIFO存储器,将待写入数据长度写入到第三FIFO存储器;所述DMA调度逻辑模块将填写到第一FIFO存储器的数据切分成多份数据,并每次向所述片上总线接口逻辑模块搬运一份数据和目标DDR地址,直到向所述片上总线接口逻辑模块搬运的数据总长度等于待写入数据长度为止,每一份数据均小于所述片上总线一次传输的最大数据量;所述片上总线接口逻辑模块每次接收到所述DMA调度逻辑模块搬运的数据后,将数据发送到所述片上总线,以使所述DDR控制器将数据写入到所述DDR。优选的,在所述主CPU从所述DDR读取数据的过程中,所述数据交互逻辑模块包括的各模块,具体用于:所述外部总线接口逻辑模块从所述外部总线接收目标DDR地址和待读取数据长度,并传输到所述FIFO读写逻辑模块;所述FIFO读写逻辑模块分别将第四FIFO存储器、第五FIFO存储器和第六FIFO存储器复位,然后将目标DDR地址写入到第四FIFO存储器,将待读取数据长度写入到第五FIFO存储器;所述DMA调度逻辑模块把目标DDR地址搬运给所述片上总线接口逻辑模块;所述片上总线接口逻辑模块通过所述片上总线从目标DDR地址的DDR读取数据;所述DMA调度逻辑模块把所述片上总线接口逻辑模块读取的数据搬运给第六FIFO存储器,直到搬运的数据总长度等于待读取数据长度为止;所述FIFO读写逻辑模块从第六FIFO存储器读取数据并通过所述外部总线接口逻辑模块发送到所述外部总线。优选的,所述片上总线,具体为:AHB(AdvancedHighPerformanceBus,高级高性能总线)总线或者AXI(AdvancedeXtensibleInterface)总线。优选的,所述外部总线,具体为:串行总线或者并行总线。优选的,所述串行总线,具体为:SPI(SerialPeripheralInterface,串行外设接口)总线。优选的,所述并行总线,具体为:LIO(LOCALIO)总线或者localbus总线。优选的,所述主CPU,具体为:龙芯、PowerPC芯片、ARM芯片或DSP(DigitalSignalProcessing,即数字信号处理技术)芯片。与现有技术相比,本专利技术的技术方案具有以下优点:上述技术方案提供的一种控制器,该控制器包括主CPU、FPGA和DDR。FPGA外接DDR,FPGA包括ARM、DDR控制器和数据交互逻辑模块。数据交互逻辑模块,具体包括依次通信连接的外部总线接口逻辑模块、FIFO读写逻辑模块、DMA调度逻辑模块和片上总线接口逻辑模块。外部总线接口逻辑模块与外部总线通信连接;片上总线接口逻辑模块与片上总线通信连接。主CPU与FPGA外接的DDR交互数据时,不再通过FPGA的ARM,而是通过FPGA的数据交互逻辑模块,因此不需要等到ARM芯片空闲时才能进行数据交互,提高了数据交互的效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例提供的一种控制器的结构示意图;图2为本专利技术实施例提供的一种数据交互逻辑模块的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参见图1,为本实施例提供的一种控制器。该控制器包括主CPU、FPGA和DDR。FPGA包括ARM、DDR控制器和数据交互逻辑模块。主CPU通过外部总线与数据交互逻辑模块通信连接。数据交互逻辑模块通过FPGA的片上总线与所述DDR控制器通信连接。DDR控制器外接DDR。...

【技术保护点】
1.一种控制器,包括主CPU、FPGA和DDR,所述FPGA包括ARM和DDR控制器,其特征在于,所述FPGA还包括数据交互逻辑模块;/n所述主CPU通过外部总线与所述数据交互逻辑模块通信连接;/n所述数据交互逻辑模块通过所述FPGA的片上总线与所述DDR控制器通信连接;/n所述DDR控制器外接所述DDR;/n所述主CPU通过所述数据交互逻辑模块与所述DDR进行数据交互;/n所述数据交互逻辑模块,具体包括:依次通信连接的外部总线接口逻辑模块、FIFO读写逻辑模块、DMA调度逻辑模块和片上总线接口逻辑模块;/n所述外部总线接口逻辑模块与所述外部总线通信连接;/n所述片上总线接口逻辑模块与所述片上总线通信连接;/n所述FIFO读写逻辑模块,用于进行所述外部总线和所述片上总线之间的数据位宽转换以及操作速率转换;/n所述DMA调度逻辑模块,用于确定所述主CPU和所述DDR之间是否完成数据交互。/n

【技术特征摘要】
1.一种控制器,包括主CPU、FPGA和DDR,所述FPGA包括ARM和DDR控制器,其特征在于,所述FPGA还包括数据交互逻辑模块;
所述主CPU通过外部总线与所述数据交互逻辑模块通信连接;
所述数据交互逻辑模块通过所述FPGA的片上总线与所述DDR控制器通信连接;
所述DDR控制器外接所述DDR;
所述主CPU通过所述数据交互逻辑模块与所述DDR进行数据交互;
所述数据交互逻辑模块,具体包括:依次通信连接的外部总线接口逻辑模块、FIFO读写逻辑模块、DMA调度逻辑模块和片上总线接口逻辑模块;
所述外部总线接口逻辑模块与所述外部总线通信连接;
所述片上总线接口逻辑模块与所述片上总线通信连接;
所述FIFO读写逻辑模块,用于进行所述外部总线和所述片上总线之间的数据位宽转换以及操作速率转换;
所述DMA调度逻辑模块,用于确定所述主CPU和所述DDR之间是否完成数据交互。


2.根据权利要求1所述的控制器,其特征在于,在所述主CPU写数据到所述DDR的过程中,所述数据交互逻辑模块包括的各模块,具体用于:
所述外部总线接口逻辑模块从所述外部总线接收需要写入所述DDR的数据、目标DDR地址和待写入数据长度,并传输到所述FIFO读写逻辑模块;
所述FIFO读写逻辑模块分别将第一FIFO存储器、第二FIFO存储器和第三FIFO存储器复位,然后将需要写入所述DDR的数据填写到第一FIFO存储器,将目标DDR地址写入到第二FIFO存储器,将待写入数据长度写入到第三FIFO存储器;
所述DMA调度逻辑模块将填写到第一FIFO存储器的数据切分成多份数据,并每次向所述片上总线接口逻辑模块搬运一份数据和目标DDR地址,直到向所述片上总线接口逻辑模块搬运的数据总长度等于待写入数据长度为止,每一份数据均小于所述片上总线一次传输的最大数据量;

【专利技术属性】
技术研发人员:范福基李蒙
申请(专利权)人:北京和利时系统工程有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1