CN212647462U - 一种新型异构多处理器电路系统 - Google Patents
一种新型异构多处理器电路系统 Download PDFInfo
- Publication number
- CN212647462U CN212647462U CN202020967007.1U CN202020967007U CN212647462U CN 212647462 U CN212647462 U CN 212647462U CN 202020967007 U CN202020967007 U CN 202020967007U CN 212647462 U CN212647462 U CN 212647462U
- Authority
- CN
- China
- Prior art keywords
- module
- fpga
- data
- dsp
- chip microcomputer
- 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.)
- Active
Links
Images
Landscapes
- Microcomputers (AREA)
Abstract
本实用新型公开一种新型异构多处理器电路系统,该系统包括DSP模块、FPGA模块和单片机,FPGA模块内至少设有两个双口RAM模块,DSP模块通过RAM模块与单片机数据连接,其中一个RAM模块用于实现DSP模块的写操作和单片机的读操作,另一个RAM模块用于实现DSP模块的读操作和单片机的写操作。本实用新型利用FPGA芯片完成DSP与ARM处理器的双向通信,具有处理速度快、设计灵活、体积小、结构简单等特点;并利用FPGA建立了双口RAM,并且提出了数据缓存池的用法,一方面可以实现不同时钟域下的异步数据通信,另一方面可以避免读写同一地址的冲突。
Description
技术领域
本实用新型涉及一种多处理器电路系统,尤其涉及一种新型异构多处理器电路系统。
背景技术
在目前电子系统设计中,信息处理电路多采用DSP+FPGA架构。其中DSP作为电路的核心单元,负责数据处理和算法实现,FPGA作为外围数字电路接口,如RS422串口通信控制、CAN通信控制、SPI通信控制等。DSP的缺点是并行处理能力差,FPGA的缺点是信息处理、逻辑分析、决策判断等智能方面存在不足。
现有捷联惯导中导航计算机电路采用了DSP+FPGA架构,FPGA作为CAN总线节点的控制器,主要有两方面功能:一方面检测DSP的地址总线、数据总线、控制总线,对DSP发出的指令进行响应;另一方面通过SPI指令对MCP2515进行控制,从而控制CAN总线的工作方式和工作状态,进行数据的发送和接收,包括对MCP2515寄存器的读写操作、数据发送和数据接收。在捷联惯导产品开发、联调联试和陆上、湖上、海上实航试验过程中,发现该CAN总线功能在设计中存在缺陷,主要表现在以下几个方面:
第一,信息吞吐量受限。FPGA与MCP2515CAN控制器的通信接口采用SPI,SPI的时钟通常采用1MHz或2MHz,CAN总线位速率通常为500Kbit/s,当CAN总线上有大量的数据交互时,SPI成为数据通信的瓶颈,引发MCP2515CAN控制器出现死机现象。
第二,FPGA资源紧张。FPGA利用Verilog HDL语言软件实现MCP2515CAN控制器的配置、发送、接收等功能。如图1中,FPGA还要实现多路RS422功能,SPI功能等,其硬件资源占用超过50%,在惯导产品调试过程中,发现FPGA时序紧张,引发部分功能模块不能正常工作现象。
第三,缺少总线检测与故障处理。MCP2515CAN控制器的总线检测与故障处理方式,需要FPGA一直查询它的内部寄存器,但是查询寄存器占用SPI通信,与CAN数据通信会引发冲突现象,因此,缺少总线检测与故障处理的完善方式。
实用新型内容
本实用新型的目的在于提供一种处理速度快、设计灵活、体积小、结构简单的新型异构多处理器电路系统,以解决CAN总线可靠性的问题。
为了实现上述目的,本实用新型提供如下技术方案:
本实用新型是一种新型异构多处理器电路系统,该系统包括DSP模块、FPGA模块和单片机,FPGA模块内至少设有两个双口RAM模块,DSP模块通过RAM模块与单片机数据连接,其中一个RAM模块用于实现DSP模块的写操作和单片机的读操作,另一个RAM模块用于实现DSP模块的读操作和单片机的写操作。
与现有技术相比,本实用新型利用FPGA模块作为DSP模块与单片机交互的桥梁,在FPGA模块内部实现双口RAM功能;利用FPGA模块建立了双口RAM,一方面可以实现不同时钟域下的异步数据通信,另一方面可以避免读写同一地址的冲突。
优选地,每个双口RAM模块均设有双总线模块、循环缓存区和读写控制逻辑模块,在所述FPGA模块上设有与上述模块相连的双口RAM接口。
优选地,所述双口RAM接口为
New_double_port_ram(.clk,.reset,.addr_in,.data_in,.wt,.addr_out,.data_out,.rd)
其中,.clk为双口RAM工作时钟,可采用32MHz;
.reset为复位信号;
.addr_in为写地址总线;
.data_in为写数据总线;
.wt为写信号;
.addr_out为读地址总线;
.data_out为读数据总线;
.rd为读信号。
优选地,所述循环缓存区包括由若干寄存器组成的寄存器数组,利用寄存器数组开辟循环缓存区作为RAM空间,循环缓存区的的深度为wire[9:0]cnt;
所述读写控制逻辑模块包括读指针计数器、写指针计数器和主时钟,采用主时钟对循环缓存区进行读操作和写操作。
优选地,所述寄存器数组为reg[7:0]data_HC[1023:0],数据宽度为8位,长度为1024;
读指针计数器为:reg[9:0]REcount=10’h000,计数范围为[0~1023];
写指针计数器为:reg[9:0]WEcount=10’h000,计数范围为[0~1023]。
优选地,所述DSP模块与FPGA模块之间的数据交互采用DSP的EMIF接口与FPGA的GPIO管脚相连,DSP片选空间选择CE2。
优选地,所述单片机与FPGA之间的数据交互采用单片机的EBC接口与FPGA的GPIO管脚相连,XE169FH片选空间选择CE1。
优选地,所述单片机内部设有CAN功能模块和至少两个数据缓存池,一个数据缓存池用于存储单片机中CAN功能模块接收到的数据,另一个数据缓存池用于存储从FPGA模块中读取到需要发送的数据。
优选地,所述CAN功能模块包括CAN功能发送模块和CAN功能接收模块,CAN功能接收模块通过数字隔离器连接有CAN收发器,所述CAN功能模块通过DavE XE169FH开发配置环境进行硬件配置。
优选地,所述单片机的型号为XE169FH。
本实用新型提供的新型异构多处理器电路系统具有与上述系统相同的有益效果,在此不再赘述。
附图说明
此处所说明的附图用来提供对本实用新型的进一步理解,构成本实用新型的一部分,本实用新型的示意性实施例及其说明用于解释本实用新型,并不构成对本实用新型的不当限定。在附图中:
图1为本实用新型所述新型异构多处理器电路系统的框架图;
图2为本实用新型所述DSP模块读写FPGA模块双口RAM的流程图;
图3为本实用新型所述单片机读写FPGA模块双口RAM的流程图;
图4为本实用新型所述循环缓存区的示意图;
图5为本实用新型所述双口RAM模块的示意图;
图6为本实用新型所述DSP模块的EMIF接口与FPGA模块的GPIO管脚的连接框图;
图7为本实用新型所述单片机的EBC接口与FPGA模块的GPIO管脚的连接框图;
图8为本实用新型所述CAN功能模块的设计框图;
图9为本实用新型所述单片机中数据缓存池与CAN功能模块交互的流程图;
图10为接收CAN数据的数据缓存池示意图;
图11为发送CAN数据的数据缓存池示意图。
具体实施方式
为了使本实用新型所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本实用新型进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本实用新型,并不用于限定本实用新型。
参照图1-5,本实用新型提供了一种新型异构多处理器电路系统,该系统包括DSP模块、FPGA模块和单片机,FPGA模块内至少设有两个双口RAM模块,DSP模块通过RAM模块与单片机数据连接,其中一个RAM模块用于实现DSP模块的写操作和单片机的读操作,另一个RAM模块用于实现DSP模块的读操作和单片机的写操作,单片机的型号为XE169FH,所述DSP模块为数字信号处理模块。
XE169FH单片机具有丰富的外设功能,包括10路UART(SPI/IIC)、6路CAN、以及AD等功能。在工程样机阶段捷联惯导的导航计算机中增加XE169FH,利用其2路CAN功能。电路架构DSP+FPGA扩充为DSP+FPGA+单片机。由于DSP模块和单片机都是作为CPU,其共同特点是可以访问外设,对外设进行读写操作,但是不允许外设访问DSP或单片机。通常多CPU之间的通信可以采用串行、并行、系统总线及双口RAM等方式。前三种通信方式共同的缺点是传输速度慢、在大数据量的情况下可能造成数据处理时间延长,实时性差、甚至出现数据拥塞现象。因此,FPGA模块作为DSP模块与单片机交互的桥梁,采用双口RAM的方式在系统间交换数据是一种简便有效的方法。FPGA模块内部可以实现双口RAM的功能,也可以实现串口通信的功能。
每个双口RAM模块均设有双总线模块、循环缓存区和读写控制逻辑模块,在所述FPGA模块上设有与上述模块相连的双口RAM接口。所述双口RAM接口为:
New_double_port_ram(.clk,.reset,.addr_in,.data_in,.wt,.addr_out,.data_out,.rd)
其中,.clk为双口RAM工作时钟,可采用32MHz;
.reset为复位信号;
.addr_in为写地址总线;
.data_in为写数据总线;
.wt为写信号;
.addr_out为读地址总线;
.data_out为读数据总线;
.rd为读信号。
所述循环缓存区包括由若干寄存器组成的寄存器数组,所述读写控制逻辑模块包括读指针计数器、写指针计数器和主时钟,采用主时钟对循环缓存区进行读操作和写操作;
寄存器数组:reg[7:0]data_HC[1023:0],数据宽度为8位,长度为1024。
读指针计数器:reg[9:0]REcount=10’h000,计数范围为[0~1023]。
写指针计数器:reg[9:0]WEcount=10’h000,计数范围为[0~1023]。
采用一个主时钟clk对循环缓存区data_HC进行读、写操作。在clk的下降沿判断写信号wt和写地址总线addr_in是否有效,如果有效,并且循环缓存未满,把写数据总线data_in写入循环缓存区data_HC[WEcount],写指针WEcount加1。在clk的上升沿判断读信号rd和读地址总线addr_out是否有效,如果有效,并且循环缓存非空,把循环缓存区data_HC[REcount]放到读数据总线data_out,读指针REcount加1。当读、写指针递增到1023后,再加1则自动为0,依次循环。循环缓存还需要建立1个关键的变量表示数据长度,即循环缓存的深度:wire[9:0]cnt,来保证写满而不溢出,读空而不多读。深度cnt即循环缓存区data_HC中数据的个数,利用写指针WEcount与读指针Recount比较,当WEcount>=Recount时,cnt=WEcount-Recount。当WEcount<Recount时,cnt=WEcount+1024-Recount。利用逻辑电路表达式为:
assign cnt=(WEcount>=Recount)?(WEcount-Recount):(WEcount+1024-Recount)。
该方法由于在主时钟的上升沿对RAM空间读操作,在主时钟的下降沿对RAM空间写操作,避免了双口RAM的读写时序冲突。开辟循环缓存区data_HC作为RAM空间,利用了FIFO的实现思路,读操作的地址只需要一个出口地址,写操作的地址只需要一个入口地址,避免了操作相同地址的冲突。
FPGA作为DSP与XE169FH的桥梁,一方面满足DSP写FPGA,XE169FH读FPGA;另一方面满足XE169FH写FPGA,DSP读FPGA。具体工作过程如下:
(1)参照图2和图6,DSP与FPGA的数据交互,采用DSP的EMIF接口与FPGA的GPIO管脚相连,DSP片选空间选择CE2,如图6所示。DSP的内核时钟为160MHz,EMIF时钟为22.85MHz,FPGA的工作时钟为32MHz,因此需要合理设置DSP的EMIF中CE2片选空间读写信号的建立、选通、维持、释放的周期;
DSP软件程序设置2ms定时器中断,查询FPGA双口RAM2的数据长度,当长度大于有效长度时(比如12个字节,前4个字节表示ID,后8个字节表示CAN数据),读取ID和CAN数据,并进行解析和应答。由于CAN数据发送帧需要间隔2ms,在DSP内部建立CAN数据发送数据缓存池,开辟一个二维数组unsigned char CAN_WriteData_Buf[256][12],长度为256,宽度为12。DSP需要通过CAN总线发送的数据,写入CAN_WriteData_Buf[WritePoint][12],在2ms中断中查询CAN_WriteData_Buf[][]是否有需要发送的数据,如果有数据则把数据写入FPGA双口RAM1。
(2)参照图3和图7,XE169FH与FPGA的数据交互,采用XE169FH的EBC接口与FPGA的GPIO管脚相连,XE169FH片选空间选择CE1,如图6所示。XE169FH的内核时钟为100MHz,FPGA的工作时钟为32MHz,因此需要合理设置单片机EBC的CE1片选空间读写信号的PhaseA、PhaseB、PhaseC、PhaseD、PhaseE、Read Phase F、Write Phase F的周期;
XE169FH工作在100MHz,FPGA工作在32MHz,两者数据交互,XE169FH软件程序需要建立两个数据缓存池,一个为接收CAN数据缓存池unsigned char Write_Xe169_Buffer[256][12],如图10所示,用来存储单片机中CAN功能模块接收到的数据;一个为发送CAN数据缓存池unsigned char Write_FPGA_Buffer[256][12],如图11所示,用来存储从FPGA中读取到需要发送的数据。每个数据缓存池都需要建立循环缓存、读写指针和深度;
图10中,XE169FH软件主程序中,需要查询接收CAN数据缓存池Write_Xe169_Buffer[][]的深度Xe169Length,当Xe169Length>0时,利用读指针读取一组数据Write_Xe169_Buffer[Read_Xe169_Counter][12],写入FPGA的双口RAM2中,读指针Read_Xe169_Counter加1,深度Xe169Length减1。当CAN功能模块收到数据后,利用写指针Write_Xe169_Buffer[Write_Xe169_Counter][12]写入数据缓存池Write_Xe169_Buffer[][],写指针Write_Xe169_Counter加1,深度Xe169Length加1。
图11中,XE169FH软件主程序中,需要查询FPGA中RAM1的深度,当非空时,读取RAM1中一组数据,写入发送CAN数据缓存池Write_FPGA_Buffer[][]。XE169FH软件程序设置2ms定时器中断,查询Write_FPGA_Buffer[][]的深度,当非空时,取出一组数据,交与CAN功能模块进行发送;
参照图3、图8和图9,所述单片机内部设有CAN功能模块和至少两个数据缓存池,一个数据缓存池用于存储单片机中CAN功能模块接收到的数据,另一个数据缓存池用于存储从FPGA模块中读取到需要发送的数据;
所述CAN功能模块包括CAN功能发送模块和CAN功能接收模块,CAN功能接收模块通过数字隔离器连接有CAN收发器,所述CAN功能模块通过DavE XE169FH开发配置环境进行硬件配置。
通过建立数据缓存池、读写指针、深度等方式,一方面可以实现不同时钟域下的异步数据通信,另一方面可以避免读写同一地址的冲突。
XE169FH的CAN功能设计框图如图8所示。单片机内部功能模块通过DavE XE169FH开发配置环境进行硬件配置。如CAN功能发送模块,可以配置1个专用邮箱M0作为发送邮箱,配置CAN INT 1作为CAN数据发送成功中断,当发送邮箱发送数据成功时触发该中断。CAN功能接收模块,可以配置n个专用邮箱M1~Mn作为接收邮箱,针对CAN总线上不同的通信节点,每个接收邮箱配置不同的接收滤波器,配置CAN INT 2作为CAN数据接收中断,当接收邮箱接收数据成功时触发该中断。CAN故障中断CAN INT 0,用于检测总线和故障处理。DavEXE169FH开发环境配置完成后,可以生成单片机项目文件,利用Keil软件开发环境打开该项目文件,进行软件功能完善和编译,生成可执行代码。该方法的优点在于,利用XE169FH强大数据处理能力,CAN功能配置简单,并且可以进行总线检测与故障处理。
综上所述,本实用新型具有以下三方面的优点:
第一,利用FPGA模块作为DSP与单片机交C互的桥梁,在FPGA内部实现双口RAM功能;
第二,利用FPGA模块建立了双口RAM,并且提出了数据缓存池的用法,一方面可以实现不同时钟域下的异步数据通信,另一方面可以避免读写同一地址的冲突;
第三,利用XE169FH的CAN总线,提高了产品的CAN接口功能、性能等方面。
以上所述,仅为本实用新型的具体实施方式,但本实用新型的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本实用新型揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本实用新型的保护范围之内。因此,本实用新型的保护范围应以所述权利要求的保护范围为准。
Claims (7)
1.一种新型异构多处理器电路系统,其特征在于:该系统包括DSP模块、FPGA模块和单片机,FPGA模块内至少设有两个双口RAM模块,DSP模块通过RAM模块与单片机数据连接,其中一个RAM模块用于实现DSP模块的写操作和单片机的读操作,另一个RAM模块用于实现DSP模块的读操作和单片机的写操作。
2.根据权利要求1所述的新型异构多处理器电路系统,其特征在于:每个双口RAM模块均设有双总线模块、循环缓存区和读写控制逻辑模块,在所述FPGA模块上设有与上述模块相连的双口RAM接口。
3.根据权利要求1所述的新型异构多处理器电路系统,其特征在于:所述DSP模块与FPGA模块之间的数据交互采用DSP的EMIF接口与FPGA的GPIO管脚相连,DSP片选空间选择CE2。
4.根据权利要求1所述的新型异构多处理器电路系统,其特征在于:所述单片机与FPGA之间的数据交互采用单片机的EBC接口与FPGA的GPIO管脚相连,XE169FH片选空间选择CE1。
5.根据权利要求1所述的新型异构多处理器电路系统,其特征在于:所述单片机内部设有CAN功能模块和至少两个数据缓存池,一个数据缓存池用于存储单片机中CAN功能模块接收到的数据,另一个数据缓存池用于存储从FPGA模块中读取到需要发送的数据。
6.根据权利要求5所述的新型异构多处理器电路系统,其特征在于:所述CAN功能模块包括CAN功能发送模块和CAN功能接收模块,CAN功能接收模块通过数字隔离器连接有CAN收发器,所述CAN功能模块通过DavE XE169FH开发配置环境进行硬件配置。
7.根据权利要求1-6任一项所述的新型异构多处理器电路系统,其特征在于:所述单片机的型号为XE169FH。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202020967007.1U CN212647462U (zh) | 2020-06-01 | 2020-06-01 | 一种新型异构多处理器电路系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202020967007.1U CN212647462U (zh) | 2020-06-01 | 2020-06-01 | 一种新型异构多处理器电路系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN212647462U true CN212647462U (zh) | 2021-03-02 |
Family
ID=74797325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202020967007.1U Active CN212647462U (zh) | 2020-06-01 | 2020-06-01 | 一种新型异构多处理器电路系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN212647462U (zh) |
-
2020
- 2020-06-01 CN CN202020967007.1U patent/CN212647462U/zh active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tamir et al. | High-performance multi-queue buffers for VLSI communications switches | |
KR101341286B1 (ko) | 멀티-포트 메모리 디바이스의 포트간 통신 | |
EP0676695B1 (en) | Clock fault detection circuit | |
US5664223A (en) | System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively | |
US7802025B2 (en) | DMA engine for repeating communication patterns | |
US20080022079A1 (en) | Executing an allgather operation with an alltoallv operation in a parallel computer | |
CN109828941A (zh) | Axi2wb总线桥实现方法、装置、设备及存储介质 | |
KR980013147A (ko) | 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어방법 | |
CA2468797A1 (en) | Supercharge message exchanger | |
CN101344871A (zh) | 一种保证访问先后顺序的总线仲裁单元及其实现方法 | |
EP2097828A2 (en) | Dmac to handle transfers of unknown lengths | |
WO2023160192A1 (zh) | 一种用于总线的互联装置 | |
CN102841871A (zh) | 基于高速串行总线的DMA结构的pipeline读写方法 | |
Ang et al. | StarT-Voyager: A flexible platform for exploring scalable SMP issues | |
CN114443170B (zh) | Fpga动态并行加卸载系统 | |
CN106844263B (zh) | 一种基于可配置的多处理器计算机系统及实现方法 | |
CN111666254A (zh) | 一种新型异构多处理器电路系统 | |
CN109062857B (zh) | 一种能高速实现多处理器间通信的新型消息控制器及其通信方法 | |
CN212647462U (zh) | 一种新型异构多处理器电路系统 | |
EP4070204A1 (en) | Data transfers between a memory and a distributed compute array | |
CN103412849A (zh) | ARM处理器的NoC资源网络接口及其驱动方法 | |
CN114185830A (zh) | 基于mailbox的多处理器通信方法、设备、系统和存储介质 | |
CN107291652B (zh) | 一种并行通信方法 | |
JPH08212178A (ja) | 並列計算機 | |
CN111045966A (zh) | 一种基于对等结构的多节点数据交互方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |