SCA作为一种先进的通用通信平台体系架构,已成为业界实现软件无线电平台可重构、可移植的重要突破点。本文主要研究无线通信波形的软件设计方法。
《中国通信》创刊于2004年,期刊总编辑为两院院士、北京邮电大学教授陈俊亮。2008年起,应广大读者需求期刊由纯英文版变更为中英文双语版。中英文刊的出版目标是成为我国通信行业最具影响力的,有学术特色的综合性期刊。中英文刊立足于我国信息通信业发展大局,积极开展海内外学术交流,及时反映海内外最新研究成果。
1DSP硬件抽象层的设计方法
硬件抽象层采用分层架构模式,共分为接口交互层、逻辑层和驱动层。其中接口交互层提供了与上层组件(如波形组件,波形管理组件等)进行数据交互的接口和协议,如MOCB接口等[9]。逻辑层负责使用驱动层提供的操作,从而实现硬件抽象层对上层组件提供的服务。
驱动层负责提供对实体(共享内存等)的独立的单一功能的操作。根据功能将DSP的硬件抽象层划分为若干模块,其中外部接口模块统一提供对上层的服务接口,如读数据接口、写数据接口。控制管理模块提供对硬件抽象层的相关控制服务。
路由表维护模块提供了表输入和表查询等对注册有系统和波形相关参数的表的操作接口。数据传输管理模块提供了数据接收和数据发送的接口,该模块是实现数据传输服务的关键模块。事件模块提供了一个中断设置的内部接口和一个中断响应函数的外部接口。通过事件驱动可以辅助完成数据的传输,通过设置不同的事件可以实现多种类型的数据传输。存储区管理模块提供了写数据和读数据接口,主要功能在于调用底层的驱动进行数据交互操作。各个模块之间的功能以及调用关系如图3所示。
通常硬件抽象层会要求波形组件将LD号与某个信号量绑定,运行过程中硬件抽象层通过该信号量来通知波形组件一个读或者写操作的完成。对于波形组件来说,则需要使用操作系统API建立一个进程来等待读或者写操作的通知。在某些特殊条件下,为了提高波形组件的反应速度,则需要硬件抽象层通过硬中断或软中断来通知波形组件。
在另一种极端情况下,波形组件则可以在后台线程中去轮询来自于硬件抽象层的通知。硬件抽象层最重要的就是实现DSP内部的组件对其它芯片上的组件的读写操作,为了对组件屏蔽硬件信息,硬件抽象层以LD号来映射实际物理地址并提供给波形使用。根据组件能够感知的性能将读写分别划分为阻塞式和非阻塞式两种类型,以读操作为例,可分为ReadWait和ReadNoWait两个函数,这两种操作流程如图4所示。
可以看出,非阻塞式的操作可以实现DMA和CPU的并行工作,能够提高软件的运行效率,这在嵌入式实时处理软件中是非常有意义的。但是非阻塞的操作要求操作系统提供信号量或中断等异步机制,会增加系统设计的复杂度,实际设计的时候需要综合考虑。
2DSP波形组件的实现方法
实现波形的组件化的首要工作是对波形进行组件划分,一般来说按照分层结构可以将组件划分为基带协处理组件、基带处理组件、媒体接入组件、逻辑链路组件以及无线网络组件,如图5所示,其中射频中频设备和安全密码设备一般作为硬件平台的一部分,不属于波形的范畴。
假设某无线通信系统中,基带处理组件实现的功能包括信道编码、调制解调、信道交织和解交织、信号同步、信道估计、均衡等,则基带处理组件的端口示意如图6所示,这里的User一般为相邻的媒体接入组件和基带协处理组件。
其中,BBProcDataConsumer接口继承自Packet:PayloadStatus接口,同时自定义了一个pushPacket函数,该接口被链路控制组件调用,使基带处理组件获得下行数据。同时,在媒体接入组件上也应实现一个BBProcDataConsumer接口,用于接收基带处理组件发送过来的上行数据。
pushPacket函数的原型为pushPacket(inCF::OctetSequencepayload)。BBProcDataProducer接口继承自Packet::PayloadControl接口,与BBProcDataConsumer接口配合使用,为用户提供设置传输分组长度的功能。图7列出了基带处理组件实现的主要API。
3结语
SCA作为一种先进的通用通信平台体系架构,已成为业界实现软件无线电平台可重构、可移植的重要突破点。其中硬件抽象层则是最核心也最复杂的一部分,虽然在美军标中对于硬件抽象层有详细的定义和说明,但是由于差异性,不可能照搬美军标中的相关内容,根据我军通信需求和现有通信体制,制定适应实际情况的SCA标准对其实际应用有至关重要的意义,并最终影响装备的设计和使用模式。目前,这方面的工作仍有待进一步探索。