基于DSP/BIOS的多信号并行处理软件架构设计
3.5 控制层
控制层设计为软件架构设计第二个关键点,在应用层与系统层、算法层之间起到桥梁作用。由指令解析、内存管理、中断服务和交换控制4个模块组成。指令解析由操作系统PRD调用,周期性的判断是否具有新的指令到来,如有新指令到来,首先把新的指令放入到指令FIFO存储器,然后清空指令空间,避免下次调用指令解析函数时做出误判断,最后指令解析模块会对指令FIFO中的内容进行解析,根据解析结果更新交换控制模块中的交换表。内存管理为每个业务通道分配了发送缓存区Tx Buffer和接收缓存区Rx Buffer,并为每个Tx Butter和Rx Buff er配备了管理指针,用于指示Buffer中的数据的存储位置及空闲位置,并由此计算出每个Buffer的数据个数及空闲空间大小,完成对异常操作如写操作过程中产生的Buffer溢出或读操作过程产生的Buffer空的处理。在产生硬件中断时,中断服务由BIOS系统HWI调用,完成实时数据收发。中断服务需要保证实时性,不作过多控制和计算,尽可能减少执行指令数目,以及使用短周期指令,必要情况下使用CCS提供的已经优化的Intrinsics函数进行程序的优化或运用汇编指令编写。HWI不可阻塞,在中断服务中,不可调用具有可能引起阻塞的函数。与系统中其他任务之间的信息交换可以通过协助模块中的邮箱机制MBX或信号灯机制SEM进行交互。交换控制模块实现不同通道数据之间的交换,并伴随不同数据格式相互转换。交换控制包含交换表管理和数据交换,具备多种的交换能力。交换表管理具有交换表条目删除和增加的功能。数据交换模块根据交换表完成源通道数据到目的通道数据格式转换,然后将转换后的数据放置到目的通道的发送缓存中,等待数据发送,具有多路并行工作能力。控制层内部模块之间的数据交互如图3所示。
3.6 应用层
应用层设计采用内存共享机制,实现DSP与CPU的指令交互和数据交互。为确保每次读写数据的完整性和正确性,两块处理器间需要建立有效的通信机制,保证不会同时对同一地址进行操作。指令交互负责接收CPU指令并向CPU返回结果。指令解析模块周期性读取指令,并进行解析,控制DSP每个业务通道的操作,如果是DTMF检测、FSK检测或TONE检测指令,DSP将解析出的结果反馈给CPU。如果是DTMF产生、FSK产生或TONE产生指令,DSP将向指定业务通道发送号码对应的DTMF信号、FSK信号或拨号音、忙音、回铃音或催挂音等;如果是两信道语音格式转换指令,DSP将从源信道接收数据,完成转换格式后,发往目的通道。数据交互,DSP与CPU通过共享内存还可进行数据交互,数据的存储状态将由内存管理模块进行控制。
4 结束语
文中介绍的软件架构,已在实际应用中得到验证,在TMS320VC5416可同时完成32路多种信号处理DTMF、FSK、TONE、CVSD、G.711任意配置,在TMS320C6418可同时完成128路多信号处理DTMF、FSK、TONE、CVSD、G.711任意配置,并可加入多路G.729处理。该软件架构能够保证不同算法的单独开发和重复利用,在跨平台移植时,根据硬件接口不同,仅需对驱动层进行重新配置,其余层的代码可直接移植,加速了多信号并行处理软件开发设计。
DSP BIOS HWI PRD TSK 软件架构 相关文章:
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)