基于DSP/BIOS的多信号并行处理软件架构设计

本文介绍了一种基于DSP/BIOS的软件架构设计方法,通过分层设计思想将软件分为驱动层、系统层、算法层、控制层和应用层,提高了软件的可维护性和可重用性,便于算法的裁减添加及程序的跨平台移植。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随着信息技术和芯片技术的发展,DSP技术在航空、通信、医疗和消费类电子设备中得到广泛应用。伴随主频不断提升及多核并行工作,DSP芯片的运算能力快速增强。运用DSP芯片快速设计多类信号多路并行处理的软件,变得更加重要。为满足需求,文中提出一种基于DSP/ BIOS的软件架构,可提高软件的可维护性和可重用性,方便算法的裁减添加及程序的跨平台移植,实现多类信号多路并行处理的软件快速开发设计。

1 DSP/BIOS简介

DSP/BIOS是TI公司推出的实时操作系统,集成在CCS(Code Composer Studio)开发环境中。DSP/BIOS采用静态配置策略,通过去除运行代码能使目标程序存储空间最小化,优化内部数据结构,在程序执行前够通过确认对象所有权较早地检测出错误,可满足DSP运行时的调试和性能分析,应用DSP/BIOS可以快速编写高效程序,较大的简化DSP应用程序的开发和调试。DSP/BIOS是一组可重复调用的系统模块应用程序接口API集合,分为系统模块System、协助模块Instrumentation、调度模块Scheduling、同步模块Synchronization、通信模块Input/Out put和配置模块CSL。系统模块,主要完成芯片型号确认、字节序Endian Mode配置、主频配置、芯片Cashe空间划分及内存空间分配。协助模块Instrumentation,主要负责消息打印、事件日志及信息追踪工作。调度模块,为DSP/BIOS核心功能,可细化为定时管理CLK、周期中断管理PRD、硬中断管理HWI、软中断管理SWI、任务管理TSK和空闲任务管理IDL。CLK控制片内的32位实时逻辑时钟,负责PRD周期的设置。PRD管理周期对象,触发应用程序周期执行性,为一种特殊的SWI。HWI管理硬件中断,主要负责DSP与外设的数据交互,中断服务程序应尽量短小精焊。SWI是不可阻塞抢断式,SWI任务只能在程序编制时预先定义好。TSK是可阻塞抢断式的,支持任务的动态产生。IDL管理休眠函数,休眠函数在目标系统程序无更高优先权的函数运行时启动,是一种特殊的TSK。同步模块,负责各个调度模块之间信息的交换传递,保证调度模块之间的同步和互斥。通信模块,允许应用程序在目标系统和主机之间交流数据。配置模块,负责芯片底层硬件的配置。另外DSP/BIOS还带有插件,支持实时分析、程序跟踪和性能监视。

2 DSP软件架构




软件架构采用分层设计思想,共分5层:驱动层、系统层、算法层、控制层和应用层。驱动层完成芯片硬件接口及外围芯片驱动。系统层运行DSP/BIOS操作系统,完成硬件中断、周期控制和任务调度功能。算法层提供各类业务需求的算法API。控制层负责软件的指令解析、内存管理、中断服务和交换控制。应用层为CPU调用控制DSP提供指令交互和数据交互接口。

3 子层设计

3.1 驱动层 

使用DSP/BIOS图形化的界面,调用芯片支持库模块CSL,快速设置DSP底层硬件接口,完成芯片的MCBSP驱动、EMIF驱动和EDMA驱动的开发。对于外围芯片的驱动,如A/D芯片驱动,首先硬件上完成DSP芯片与A/D芯片的接线,然后按照配置指令的帧格式完成对A/D芯片的配置。

3.2 系统层

系统层设计为软件架构设计的关键点,充分利用DSP/BIOS提供的调度模块和同步模块。将控制层中的指令解析、交换控制和交换表更新模块与PRD绑定,周期检查有无新指令,并根据指令解析更新交换表,调度周期由32位实时逻辑时钟控制。将控制层中的交换控制和数据交换模块与TSK绑定,根据从其他模块收到的信号量SEM或者邮箱信息MBX,进行数据格式转换,完成不同格式的数据在不同信道间的透明传输。将中断服务与HWI进行绑定,完成数据实时收发。运用同步模块Synchronization中的邮箱机制MBX与信号量SEM机制完成HWI、PRD和TSK之间的消息传递。运用操作系统的调度算法,完成多个任务之间的调度,控制数据收发及数据处理。

3.3 算法层

把各类算法单独列为一层,汇聚多类信号算法,采用松散耦合和可重入设计方法,方便算法的移植、维护及多路并行工作设计,并根据应用需求,方便算法的裁减和扩充。各类算法严格独立,都以单独库和头文件的形式提供。算法层的结构如图2所示。


3.4 通信常用算法

DTMF:双音多频信号,每个号码由两个音频信号相加得到,广泛用在电话拨号和来电显示中,其生成和检测算法。
FSK:利用1 200 Hz和2 200 Hz的正弦信号,采用2FSK调制解调方法,广泛用于来电显示中,其生成和检测算法。
TONE:三音生成和检测算法,包含信号音、忙音、回铃音生成和三音检测,广泛用于电话交换系统中。
G.711:速率为64 khit·s-1的语音编解码标准,广泛用于电话交换系统中。
CVSD:连续可变斜率编码的英文缩写,速率为16 khit·s-1的语音编解码标准,用于低速率通信系统中,其编解码算法。

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处理。该软件架构能够保证不同算法的单独开发和重复利用,在跨平台移植时,根据硬件接口不同,仅需对驱动层进行重新配置,其余层的代码可直接移植,加速了多信号并行处理软件开发设计。

光电经纬仪是最早、最广泛应用于飞行器测控领域的光电跟踪测量设备,它 的组成部分包括大地测量光学经纬仪、激光跟踪测量系统、微机控制系统与图像 处理系统组成。光电经纬仪通过记录飞行过程中的目标图像,并测量传动机架的 角度,从而获得目标飞行参数,它在飞行实况记录中发挥重要的作用 [1] 。此外, 它还可以实现迅速定位目标位置和自动跟踪高速目标,已被广泛地应用于诸如航 天发射、飞行器测控等光电测量领域 [1] 。 随着数字图像处理等技术的发展,光电经纬仪由胶片式成像向数字式成像转 变。此外,高帧速率、高分辨率成像传感器技术已被广泛应用于光电经纬仪。这 些给光电经纬仪实时图像处理平台的发展带来新的挑战:复杂图像处理算法的实 现和数据吞吐量的巨大需求 [1-2] 。 DSP 作为一种密集型数据运算与实时信号处理的微处理器,能够很好的满足 复杂图像处理算法、实时性处理的需求。DSP 技术经过多年的发展,被广泛应用 在信号、图像、通信等技术领域,尤其是高性能计算、高速实时图像处理、超大 数据量处理的军用电子领域 [2] 。现今的图像处理平台由于芯片单片运算能力受到 限制,绝大部分使用了多个 DSP + FPGA 的架构,才能勉强实现实时图像处理任 务 [3] 。但是这样的平台带来的困难是显而易见的: 1. 系统结构复杂。采用多片 DSP+FPGA 的架构,系统的整体处理性能受片 间(DSP 与 FPGA 之间、DSPDSP 之间)通信带宽瓶颈而下降。 2. 系统功耗大。多片 DSP 在单块电路板上的集成度越高,带来了单板整体 功耗的增加和散热的问题,导致单板多片 DSP 整体处理性能的可靠性和稳定性。 3. 系统调试困难。由于系统结构的复杂,导致系统的调试异常的困难。芯 片之间的任务分配、数据传输、并行处理非常复杂,使得产品在设计、调试、生 产阶段的难度加大。 本文研究的课题来源于光电经纬仪图像处理平台由多片 DSP 架构升级到多 核 DSP 架构而提出的系统应用需求。结合实验室的项目情况,本文将重点放在 多核 DSP 并行的以下相关技术: 1. DSP+FPGA 架构下图像数据流的设计。光电经纬仪的图像处理系统需要 兼容前端的多种图像输入格式,包括 CameraLink、SDI 以及光纤接口,DSP+FPGA载板搭配不同的子板就可以实现输入的灵活性;此外,DSP+FPGA 图像处理系 统中的高速 SRIO 接口用于图像数据通信。本文在 CameraLink 和 SRIO 这两个关 键接口做了一定的研究工作。 2. 多核环境下并行访问共享/外部存储器的性能研究和设计原则分析。多核 DSP 中存在多个主设备,包括多个 DSP 内核、多个 EDMA 设备等,它们并行访 问存储器的数据带宽,对于应用程序存储资源的安排、软件结构的设计是至关重 要的。 3. 多核 DSP 并行调度方案的研究。多核 DSP 图像处理平台,一方面要实 现复杂的图像处理算法,另一方面要满足超大运算量对实时性处理的需求。基于 多核的系统应用开发关键的一步,就是选择合适的处理模型实现任务并行调度。 本文将介绍多核 DSP 并行调度的几种方案,并以算法实例对主从模型进行分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值