首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于FPGA和HPI的DSP间的通信装置及通信方法_积成电子股份有限公司_201611150757.4 

申请/专利权人:积成电子股份有限公司

申请日:2016-12-13

公开(公告)日:2020-04-10

公开(公告)号:CN106776458B

主分类号:G06F15/173(20060101)

分类号:G06F15/173(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.04.10#授权;2017.06.23#实质审查的生效;2017.05.31#公开

摘要:本发明公开了一种基于FPGA和HPI的DSP间的通信装置及通信方法,通信装置包括作为主机的一个FPGA,作为从机的、带有HPI接口的至少两个DSP,在FPGA中分区存储每个DSP所对应的HPI读写操作控制模块、数据缓存区读写模块、缓存区数据交互模块。本发明相对于以前的DSP通信方式,速度块、实时性高;基本不消耗DSP的资源;可同时实现任意两个或多个DSP之间的通信,可扩展性较强。

主权项:1.基于FPGA和HPI的DSP间的通信装置,其特征在于,包括作为主机的一个FPGA,作为从机的、带有HPI接口的至少两个DSP,在所述FPGA中分区存储每个DSP所对应的HPI读写操作控制模块、数据缓存区读写模块、缓存区数据交互模块;所述HPI读写操作控制模块,实现FPGA对HPI接口的读写操作,采用的是先读后写的操作方式;HPI读写操作控制模块包括两部分:一是HPI数据读写时序部分,负责构建对DSP进行数据读写时所需要的控制逻辑,读操作和写操作分别置于相互独立的程序模块内、触发的条件互斥;二是HPI接口控制信号输出部分,负责向HPI数据读写时序部分输出所需要的HPI控制信号,读操作采用定时读以获取各DSP需要发送给其他DSP的数据,以HPI接口定时读标志到达为控制条件,而写操作则要等待FPGA将待写入数据的DSP所需要写入的数据全部准备好并将写缓存完成标志置起后才执行;所述数据缓存区读写模块,包含至少2个数据缓存区,一个是读缓存区,用于存储通过HPI接口读出的所对应的DSP内部RAM数据,另一个是写缓存区,用于存储需要写给所对应的DSP的有效数据,此模块还对定时器进行定时设置以产生相应的HPI接口定时读标志;所述缓存区数据交互模块,负责将除待写入数据的DSP以外的其他DSP的读缓存区的数据进行汇总和处理,并按照一定的格式存储在该待写入数据的DSP对应的写缓存区内,完成后将该DSP的写缓存区的写缓存完成标志置起;所述FPGA通过控制线实现对HPI接口的控制、通过数据线实现与HPI接口间的数据交互。

全文数据:基于FPGA和HPI的DSP间的通信装置及通信方法技术领域[0001]本发明属于实现多DSP之间通信的领域,特别是涉及一种基于FPGA和HPI的DSP间的通信装置及通信方法。背景技术[0002]数字信号处理器DSP自诞生以来,发展极其迅速,其应用己经涉及航天航空、工业控制、电力系统等各个领域。虽然DSP的功能日益强大,但很多场合仍需要多个DSP协同工作来实现应有的功能,尤其对于实时性要求较高的场合,多DSP之间如何实现高效和稳定的通信就显得尤为重要。[0003]目前比较广泛的多个DSP间的通信方式,是串行工作方式中的串口通信和双口RAM通信,这两种方法一般都会占用DSP较多的时间资源,传输速度较慢,实时性较差,影响DSp的效率。[0004]HPIhostportinterface接口,是TI的TMS320C6000系列DSP配置的并行接口。而HPI接口可以让外部的主机直接访问DSP内存映射的部分内存,而无需DSP干预。本发明就是利用这一特点,通过操作多个DSP的HPI接口来实现多个DSP之间的通信。发明内容[0005]为了解决目前多个DSP间的串口通信和双口RAM通信会占用DSP较多的时间资源、传输速度较慢、实时性较差、影响DSP的效率等技术问题,本发明采用现场可编程逻辑门阵列FPGA作为主机,多个DSP作为从机,通过FPGA操作多个DSP的HPI接口,对需要通信的多个DSP的HPI接口进行读写操作,来实现多DSP之间的通信。[0006]基于FPGA处理速度快、并行处理的特性,使用FpGA来完成数据交换的中转功能。中转过程用时较少,基本等同于任意两个DSP或多个DSP之间的直接通信。本发明可用于TMSMOCeOOO全系列DSP的HPI接口之间的通信,具有很强的通用性。[0007]本发明为解决上述技术问题,所采取的技术方案是:[0008]基于FPGA和HPI的DSP间的通信装置,包括:作为主机的一个FPGA,作为从机的、带有HPI接口的至少两个DSP,在FPGA中分区存储每个DSP所对应的HPI读写操作控制模块、数据缓存区读写模块、缓存区数据交互模块。[0009]HPI读写操作控制模块,实现FPGA对HPI接口的读写操作,采用的是先读后写的操作方式,读采用的定时读,即每隔一定的时间,FPGA对需要通信的DSP的HPI接口进行读操作,以获取各DSP需要发送给其他DSP的数据;而对于写操作,则要等待FPGA将某DSP所需要写入的数据全部准备好后,才能将数据通过HPI接口写入DSP。W〇1〇]HPI读写操作控制模块包括两部分:一是HPI数据读写时序部分,负责构建对DSP进行数据读写时所需要的控制逻辑,读操作和写操作分别置于相互独立的程序模块内、触发的条件互斥,否则会产生HPI接口访问错误;二是HPI接口控制信号输出部分,负责向HPI数据读写时序部分输出所需要的HPI控制信号,读操作采用定时读以获取各DSP需要发送给其他DSP的数据,以HPI接口定时读标志到达为控制条件,而写操作则要等待FPGA将待写入数据的DSP所需要写入的数据全部准备好并将写缓存完成标志置起后才执行。[0011]数据缓存区读写模块,包含至少2个数据缓存区,一个是读缓存区,用于存储通过HPI接口读出的所应对的DSP内部RAM数据;另一个是写缓存区,用于存储需要写给所对应的DSP的有效数据;此模块还对定时器进行定时设置以产生相应的HPI接口定时读标志。[0012]缓存区数据交互模块,负责将除待写入数据的DSP以外的其他DSP的读缓存区的数据进行汇总和处理,并按照一定的格式存储在该待写入数据的DSP对应的写缓存区内,完成后将该DSP的写缓存区的写缓存完成标志置起。如果某个数字信号处理器DSPn需要其他DSP的数据,由于FPGA从各DSP读取的数据长度不一定相同,故所需时间也有所差异,FPGA要等待所有读缓存区读取动作全部完成后,才成进彳丁缓存区数据的汇总和处理,处理完成后按照一定的格式存储在DSPn对应的HPI接口的写缓存区内,存储完成后,将DSPn写缓存区的写缓存完成标志置起。[0013]FPGA通过控制线实现对HPI接口的控制、通过数据线实现与HPI接口间的数据交互。[0014]基于FPGA和HPI的DSP间的通信装置的通信方法,包括以下步骤:[0015]步骤1、在FPGA中为需要通信的DSP分别构建其各自的HPI读写操作控制模块、数据缓存区读写模块、缓存区数据交互模块,所述数据缓存区读写模块包含一个读缓存区和一个写缓存区;[0016]步骤2、各DSP的HPI读写操作控制模块并行分别读取各自的内存数据并放置该DSP所对应的读缓存区内;[0017]步骤2-1、等待HPI接口定时读标志是否到达,若否,则继续等待,若是,则初始化该DSP的HPIC寄存器、HPIA寄存器,并转步骤2-2;[0018]步骤2-2、FPGA利用HPI读写操作控制模块通过HPI接口读取该DSP的内存数据,并放置在该DSP所对应的读缓存区内;[0019]步骤2-3、判断读取该DSP的内存数据是否完成,若否,转步骤2-2,若是,则在该DSP的读缓存区置起读完成标志;[0020]步骤3、待所有需要通信的DSP的读完成标志置起后,FPGA利用缓存区数据交互模块将除待写入数据的DSP以外的其他所有DSP对应的读缓存区的数据进行汇总和处理,并放置在该待写入数据的DSP的写缓存区内;[0021]步骤4、判断各DSP的读缓存区的数据汇总和处理是否完成,如果否,则转步骤3,如果是,则在待写入数据的DSP的写缓存区中置起写缓存完成标志并转步骤5;[0022]步骤5、初始化待写入数据的DSP的HPIC寄存器、HPIA寄存器;[0023]步骤6、FPGA利用HPI读写操作控制模块通过HPI接口将写缓存区的数据写入待写入数据的DSP的内存;[0024]步骤7、判断写缓存区的数据写入待写入数据的DSP的内存是否完成,若否,则转步骤6,若是则本次通信完成。[0025]本发明相对于以前的DSP通信方式,有以下优点:[0026]1速度块,实时性高,速度主要受限于所选择DSP的HPI接口最高工作频率以及所选择FPGA的最高工作频率,速度可达100MBs以上。[0027]⑵基本不消耗DSP的资源,因HPI接口可以让外部的主机直接访问DSP内存映射的部分内存,而无需DSP干预,因此基本不占用DSP的负载,大大提高了DSP的运行效率。[0028]3可同时实现任意两个或多个DSP之间的通信,可扩展性较强,其扩展的数量主要取决于所选用FPGA的10引脚的数量和开辟数据缓存区所需要的謹资源。附图说明[0029]图1是本发明的装置结构示意图[0030]图2是本发明的通信方法逻辑框图具体实施方式[0031]下面结合附图,具体说明基于FPGA的DSP间HPI通信装置及其通信方法。[0032]如图1所示,基于FPGA和HPI的DSP间的通信装置,包括:作为主机的一个FPGA,作为从机的、带有HPI接口的至少两个DSP,在FPGA中分区存储每个DSP所对应的HPI读写操作控制模块、数据缓存区读写模块、缓存区数据交互模块;[0033]HPI读写操作控制模块,实现FPGA对HPI接口的读写操作,采用的是先读后写的操作方式,读采用的定时读,即每隔一定的时间,FPGA对需要通信的DSP的HPI接口进行读操作,以获取各DSP需要发送给其他DSP的数据;而对于写操作,则要等待FPGA将某DSP所需要写入的数据全部准备好后,才能将数据通过HPI接口写入DSP。[0034]HPI读写操作控制模块包括两部分:一是HPI数据读写时序部分,负责构建对DSP进行数据读写时所需要的控制逻辑,读操作和写操作分别置于相互独立的程序模块内、触发的条件互斥,否则会产生HPI接口访问错误;二是HPI接口控制信号输出部分,负责向HPI数据读写时序部分输出所需要的HPI控制信号,读操作采用定时读以获取各DSP需要发送给其他DSP的数据,以HPI接口定时读标志到达为控制条件,而写操作则要等待FPGA将待写入数据的DSP所需要写入的数据全部准备好并将写缓存完成标志置起后才执行。[0035]数据缓存区读写模块,包含至少2个数据缓存区,一个是读缓存区,用于存储通过HPI接口读出的所对应的DSP内部RAM数据;另一个是写缓存区,用于存储需要写给所对应的DSP的有效数据;此模块还对定时器进行定时设置以产生相应的HPI接口定时读标志。[0036]缓存区数据交互模块,负责将除待写入数据的DSP以外的其他DSP的读缓存区的数据进行汇总和处理,并按照一定的格式存储在该待写入数据的DSP对应的写缓存区内,完成后将该DSP的写缓存区的写缓存完成标志置起。如果某个数字信号处理器DSPn需要其他DSP的数据,由于FPGA从各DSP读取的数据长度不一定相同,故所需时间也有所差异,FPGA要等待所有读缓存区读取动作全部完成后,才能进行缓存区数据的汇总和处理,处理完成后按照一定的格式存储在DSPn对应的HPI接口的写缓存区内,存储完成后,将DSPn写缓存区的写缓存完成标志置起。[0037]图1中有关HPI接口的说明:[0038]1HD[0:15]:HPI数据交互总线,16位;[0039]⑵RDWR:HPI读写控制线。RDWR=0时,写;RDWR=1时,读;[0040]3HCNTL:主机用来控制选择访问哪个寄存器的地址信号。当HCNTL=00时访问HPIC;当HCNTL=01时访问HPIA;当HCNTL=10时,读写HPID,且每读写一次HPIA自动增加1主要用该模式);当HCNTL=11时,读写HPID,且每读写一次HPIA不受影响;[0041]4HAS:地址选通信号。此信号用于主机的数据线和地址线复用的情况。不用时该信号接高没有使用);[0042]5HHWIL:字节识别信号,用于识别主机传送过来的是第一个字节或者叫半字)还是第二个字节。当HHWIL=0时为第一个字节,当HHWIL=1时是第二个字节;[0043]6HCS:片选信号。使能输入端,在每次寻址期间为低电平,其他时候也可以保留在低电平;[0044]⑺HDS,直接连接高电平,没有单独进行控制;[0045]⑻HRDYDSP的HPI接□状态,若为低,则可以被访问,若为高,则要等待。主机操作HPI前,都要先等待此状态为低,才能够进行;[0046]⑼HINT,输出中断给主机,可不使用。[0047]基于FPGA和HPI的DSP间的通信装置的通信方法,下面以把DSP2至DSPn的数据写入DSP1为例具体说明,如图2所示,包括以下步骤:[0048]步骤1、在FPGA中为需要通信的DSP1至DSPn分别构建其各自的HPI读写操作控制模块、数据缓存区读写模块、缓存区数据交互模块,所述数据缓存区读写模块包含一个读缓存区和一个写缓存区;[0049]步骤2、DSP1至DSPn的HPI读写操作控制模块并行分别读取各自的内存数据并放置该DSP所对应的读缓存区内;[0050]步骤2-1、等待HPI接口定时读标志Read_Start=1是否到达,若否,则继续等待,若是,则初始化该DSP的HPIC寄存器、HPIA寄存器,并转步骤2-2;[0051]步骤2-2、FPGA利用HPI读写操作控制模块通过HPI接口读取该DSP的内存数据,并放置在该DSP所对应的读缓存区内;[0052]步骤2-3、判断读取该DSP的内存数据是否完成,若否,转步骤2-2,若是,则在该DSP的读缓存区置起读完成Read_Dsp1-n_0K=1标志;[0053]步骤3、待DSP1至DSPn的读完成标志(Read_Dspl-n_0K=l置起后,FPGA利用缓存区数据交互模块将DSP2至DSPn对应的读缓存区的数据进行汇总和处理,并放置在DSP1的写缓存区内;[0054]步骤4、判断DSP2至DSPn的读缓存区的数据汇总和处理是否完成,如果否,则转步骤3,如果是,则在DSP1的写缓存区中置起写缓存完成Write_EN二1标志并转步骤5;[0055]步骤5、初始化DSP1的HPIC寄存器、HPIA寄存器;[0056]步骤6、FPGA利用HPI读写操作控制模块通过HPI接口将写缓存区的数据写入DSP1的内存;[0057]步骤7、判断写缓存区的数据写入DSP1的内存是否完成,若否,则转步骤6,若是则本次通信完成。

权利要求:1.基于FPGA和HPI的DSP间的通信装置,其特征在于,包括作为主机的一个FPGA,作为从机的、带有HPI接口的至少两个DSP,在所述FPGA中分区存储每个DSP所对应的HPI读写操作控制模块、数据缓存区读写模块、缓存区数据交互模块;所述HPI读写操作控制模块,实现FPGA对HPI接口的读写操作,采用的是先读后写的操作方式;所述数据缓存区读写模块,包含至少2个数据缓存区,一个是读缓存区,用于存储通过HPI接口读出的所对应的DSP内部RAM数据,另一个是写缓存区,用于存储需要写给所对应的DSP的有效数据,此模块还对定时器进行定时设置以产生相应的HPI接口定时读标志;所述缓存区数据交互模块,负责将除待写入数据的DSP以外的其他DSP的读缓存区的数据进行汇总和处理,并按照一定的格式存储在该待写入数据的DSP对应的写缓存区内,完成后将该DSP的写缓存区的写缓存完成标志置起;所述FPGA通过控制线实现对HPI接口的控制、通过数据线实现与HPI接口间的数据交互。2.根据权利要求1所述的基于FPGA和HPI的DSP间的通信装置,所述HPI读写操作控制模块包括两部分:一是HPI数据读写时序部分,负责构建对DSP进行数据读写时所需要的控制逻辑,读操作和写操作分别置于相互独立的程序模块内、触发的条件互斥;二是HPI接口控制信号输出部分,负责向HPI数据读写时序部分输出所需要的HPI控制信号,读操作采用定时读以获取各DSP需要发送给其他DSP的数据,以HPI接口定时读标志到达为控制条件,而写操作则要等待FPGA将待写入数据的DSP所需要写入的数据全部准备好并将写缓存完成标志置起后才执行。3.根据权利要求1所述的基于FPGA和HPI的DSP间的通信装置的通信方法,其特征在于,包括以下步骤:步骤1、在FPGA中为需要通信的DSP分别构建其各自的HPI读写操作控制模块、数据缓存区读写模块、缓存区数据交互模块,所述数据缓存区读写模块包含一个读缓存区和一个写缓存区;步骤2、各DSP的HPI读写操作控制模块并行分别读取各自的内存数据并放置在该DSP所对应的读缓存区内;步骤2-1、等待HPI接口定时读标志是否到达,若否,继续等待,若是,则初始化该DSP的HPIC寄存器、HPIA寄存器,并转步骤2-2;步骤2_2、FPGA利用HPI读写操作控制模块通过HPI接口读取该DSP的内存数据,并放置在该DSP所对应的读缓存区内;步骤2_3、判断读取该DSP的内存数据是否完成,若否,转步骤2-2,若是,则在该DSP的读缓存区置起读完成标志;步骤3、待所有需要通信的DSP的读完成标志置起后,FPGA利用缓存区数据交互模块将除待写入数据的DSP以外的其他所有DSP对应的读缓存区的数据进行汇总和处理,并放置在该待写入数据的DSP的写缓存区内;步骤4、判断各DSP的读缓存区的数据汇总和处理是否完成,如果否,则转步骤3,如果是,则在待写入数据的DSP的写缓存区中置起写缓存完成标志并转步骤5;步骤5、初始化待写入数据的DSP的HPIC寄存器、HPIA寄存器;步骤6、FPGA利用HPI读写操作控制模块通过HPI接口将写缓存区的数据写入待写入数据的DSP的内存;步骤7、判断写缓存区的数据写入是否完成,若否,则转步骤6,若是则本次通信完成。

百度查询: 积成电子股份有限公司 基于FPGA和HPI的DSP间的通信装置及通信方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。