Dsp及fpga之间的实时通信方法及实时通信系统的利记博彩app_2

文档序号:8447869阅读:来源:国知局
数据交换效率。
[0043]2、本发明将 EDMA (Enhanced Direct MemoryAccess)技术应用到 DSPlOO 中的McBSP1I与RAM103之间的数据交换,同时采用了 McBSPlOl与内存管理模块102的数据同步处理机制。
[0044]该数据同步处理机制如下:在从DSP100到FPGA200的数据发送流程中,McBSPlOl一旦检测到来自FPGA200的一个发送帧同步信号,则先将RAM103中的待发送数据全部移至内部缓存,再触发及生成一个EDMA事件,从而将暂存于内部缓存的待发送数据全部转存到FPGA200 ;在从FPGA200到DSP100的数据接收流程中,McBSPlOl每检测到来自FPGA200的一个接收帧同步信号时,同时接收由FPGA200提供的部分接收数据,并触发及生成一个EDMA事件,从而将该部分接收数据从McBSPlOl转存到DSP100的RAM103。
[0045]由此,一方面,DSP100的内存管理模块102的工作无需占用DSP100的处理器资源,降低了 DSP100的运行负荷,另一方面,本发明应用于DSP100的数据同步处理机制极大地提高了 DSP100内部元件(即McBSPlOl与RAM103)之间的数据交换速率,达到了数据在DSP100与FPGA200之间实时传输的技术效果。
[0046]3、在DSP100/FPGA200之间的数据收发过程中设置中断控制机制,并可通过该中断控制机制与DSP100的数据处理过程紧密衔接,以适应于对数据处理时限要求严苛的通讯系统。
[0047]由于本发明采用了将DSP100中的McBSPlOl作为通信双方DSP100与FPGA200之间的数据收发中转站,以及将EDMA技术应用到DSP100内部元件之间的数据交换的设计,所以解决了现有技术中应用于通信基站的信号处理系统的DSP100与FPGA200之间存在一定的数据传输时延,致使通信基站无法为用户提供即时通信服务的技术问题,实现了数据在DSP100与FPGA200之间的双向、实时、高效传输,以及实现了通过基站为用户提供即时通信服务的目的。
[0048]下面将结合附图及实施例,对本发明作进一步说明:
[0049]首先,以本发明的第一个较佳实施方式为例,结合附图1至附图3对本发明应用于DSP100及FPGA200的通信系统的系统架构进行说明:
[0050]如图1所示,在本发明应用于DSP100(Digital Signal Processor,即数字信号处理器)及FPGA200 (FieId-ProgramabIe Gate Array,即现场可编程门阵列)的通信系统中,该DSP100配置有至少一个McBSPlOl (Multichannel Buffered Serial Port,即多通道缓冲串行口),并通过McBSPlOl与FPGA200建立通信连接。每一个McBSPlOl均包括数据发送寄存器1019 (DXR)及数据接收寄存器1018 (DRR)。
[0051]上述每一个McBSPlOl均用于接收到FPGA200的一个发送帧同步信号时,将存储于DSP100的待发送数据全部搬移及存放于数据发送寄存器1019,及在接收到FPGA200的下一个发送帧同步信号时将暂存于数据发送寄存器1019中的所有待发送数据同时传送到FPGA200。
[0052]上述每一个McBSPlOl还用于在每接收到来自FPGA200的一个接收帧同步信号时,接收由FPGA200同时输入的指定数据长度的一部分接收数据,将该部分接收数据存放于数据接收寄存器1018,进而将存放于数据接收寄存器1018的该部分接收数据传送到DSP100。
[0053]如图2所示,在本发明中,DSP100包括依次连接的至少一个McBSPlOl、内存管理模块 102 及 RAM103(RandomAccess Memory)。
[0054]该RAM103用于存储待发送数据以及来自FPGA200的接收数据。
[0055]该McBSPlOl用于接收到来自FPGA200的一个发送帧同步信号时,触发及生成第一数据搬移指令,并向内存管理模块102发送第一数据搬移指令。
[0056]该内存管理模块102用于执行第一数据搬移指令,从存储于RAM103的待发送数据中选取指定数据长度的一部分发送数据(即32bit数据),并将该部分发送数据搬移及存放于McBSPlOl的数据发送寄存器1019。
[0057]该McBSPlOl还用于判断该部分发送数据移至缓存时,触发及生成第一数据搬移指令,并向内存管理模块102发送第一数据搬移指令。
[0058]该McBSPlOl还用于将暂存于数据发送寄存器1019的该部分发送数据移至缓存,以及判断RAM103中的待发送数据均已移至缓存时,将缓存中的待发送数据一起传送到FPGA200。
[0059]该McBSPlOl还用于通过FSR管脚接收由FPGA200输入的接收帧同步信号以及通过DR管脚接收由FPGA200同时输入的指定数据长度的一部分接收数据(即32bit数据),并将该部分接收数据暂存于数据接收寄存器1018。
[0060]该处理模块还用于生成第二数据搬移指令,控制内存管理模块102将暂存于数据接收寄存器1018的该部分接收数据搬移及转存到RAM103。
[0061]本发明将EDMA (Enhanced Direct Memory Access)技术应用到了 DSPlOO 中McBSPlOl与RAM103之间的数据搬移过程,大大提高了 DSP100内部元件的数据交换效率。
[0062]如图3所示,本发明McBSPlOl包括FSR管脚1011 (接受帧同步)、FSX管脚1012(发送帧同步)、DR管脚1013(串行数据接收)、DX管脚1014(串行数据发送)、CLKR管脚1015(接收时钟)、CLKX管脚1016(发送时钟)、缓存1017、数据接收寄存器1018 (DRR)以及数据发送寄存器1019 (DXR)。
[0063]下面将以本发明的第二个较佳实施方式为例,结合图4对本发明从DSP100到FPGA200的数据发送流程进行说明:
[0064]如图4所示,在步骤SlOl中,McBSPlOl等待接收来自FPGA200的发送时钟信号及发送帧同步信号。
[0065]在步骤S102中,McBSPlOl对FSX管脚1012进行实时扫描以判断其是否接收来自FPGA200的发送时钟信号及发送帧同步信号。如McBSPlOl接收到FPGA200的发送帧同步信号,则执行步骤S103。否则,返回上一步骤S101。
[0066]在步骤S103中,McBSPlOl触发及生成第一数据搬移指令,并向内存管理模块102发送第一数据搬移指令。
[0067]在步骤S104中,内存管理模块102接收第一数据搬移指令,从存储于RAM103的待发送数据中选取指定数据长度的一部分发送数据(即32bit的发送数据),并将该32bit的发送数据搬移及存储到McBSPlOl的数据发送寄存器1019。
[0068]在步骤S105中,McBSPlOl将暂存于数据发送寄存器1019的该32bit的发送数据移至其内部缓存。
[0069]在步骤S106中,McBSPlOl通过内存管理模块102判断RAM103中的待发送数据是否均已移至McBSPlOl的缓存。如RAM103中的待发送数据未全部移至McBSPlOl的缓存,则循环执行步骤S103至步骤S105,直至RAM103中的待发送数据均移至McBSPlOl的内部缓存。否则,执行下一步骤S107。
[0070]在步骤S107中,McBSPlOl接收DSP100的数据发送指令,将暂存于缓存的待发送数据一起传送到FPGA200。
[0071]在步骤S108中,本发明DSP100及FPGA200之间的实时通信系统完成了将该批次的待发送数据(共计16个32bit的数据)从DSP100传送到FPGA200的数据发送操作,停止从DSP100到FPGA200的数据发送流程,并通过McBSPlOl产生中断信号。
[0072]在步骤S109中,DSP100在中断期间对内存管理模块102的设置参数进行重新配置,以便于下一个从DSP100到FPGA200的数据发送流程的顺利进行。
[0073]步骤S109执行完毕之后跳回步骤SlOl。
[0074]下面将以本发明的第三个较佳实施方式为例,结合图5对本发明从FPGA200到DSP100的数据接收流程进行说明:
[0075]如图5所示,在步骤SlOP中,McBSPlOl等待接收来自FPGA200的接收时钟信号及接收帧同步信号。
[0076
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1