- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于PC101处理器的CDMA2000接收机设计
传统的3G移动台接收机采用专用基带芯片的设计方案,基带芯片的设计是一个非常复杂的过程,在芯片设计阶段需要投入大量的研发人员,每次流片都需要非常昂贵的费用,开发出一个真正能商用化的产品至少要花费两年的时间,导致在激烈的市场环境中落后与竞争对手。芯片应用到设备中一旦发现缺陷,其损失更是不可估量。如果未来需要在此设备上增加新的特性也无法实现,只能更换硬件。PicoChip公司开发的PicoArray高速并行处理架构的PC101处理器完全解决了上述问题,它是一个“软件片上系统(SSoC)”,编程轻松灵活,运算速度快,完全可取代现场可编程门阵列(FPGA)或专用集成电路(ASIC)。PicoArray本身是整体并行的处理器阵列,由高速互连结构所链接,在一个芯片中集中了400多个处理器核心,由于每个核心都能并行操作或相互连接,以及芯片总线的巨大带宽,PicoArray可以提供超强的处理能力,每秒钟运算速度超过1000亿次。本文论述了以PC101为软件无线电硬件平台,用软件方式实现CDMA2000移动台基带信号处理的方法。
PC101芯片介绍
PC101是一个无线通信处理器,专门用于无线通信基带信号处理的优化设计。PC101芯片的结构框图如图1所示,系统由处理器阵列和一系列的外围接口构成, 下面对各个接口的用途和处理器阵列作详细的介绍。
图1 PC101芯片结构框图
接口的说明
锁相环(PLL):模块将输入的时钟进行四倍频,倍频后的时钟作为芯片内的工作时钟。主机接口:用来与外部CPU相连,对芯片进行配置,与外部CPU进行数据传输的接口。数据传输可以有两种方式,一种是通过寄存器进行数据传输,另一种是直接采用DMA的方式进行快速大量的数据传输。可配置的接口:PC101有四个可以配置的接口,这四个接口可以配置成下面两种模式之一,芯片间互连(IPI)接口和异步数据传输接口(ADI),各个端口可以进行独立配置。控制和同步接口:完成对PC101的复位、启动停止等操作,通过此接口也可实现多个PC101间的同步工作。外部SRAM接口:每个处理单元(AE)都有一定数量的数据和指令的存储器,外部SRAM接口是对片上存储器的一个扩充, 用于对存储空间要求比较大的场合,比如维特比译码。JTAG接口:遵从IEEE1149.1-2001规范,为系统调试所用。处理器阵列核心处理器阵列是PC101的核心部分,其系统结构示意图如图2所示,一个PC101处理阵列由430处理器单元(AE)构成,AE是一个16b位的RISC微处理器,各个处理单元之间由一条32位的总线和一些可编程的交换矩阵进行互连。处理器单元间的通信是基于时分复用的策略,处理器间传送的数据在不同的时隙进行,对高速的信号传送就分配更长时隙。每个AE的指令集都是一样的,但是为了使基带处理中各个处理单元都能很好的发挥性能,不同的AE之间又有一定的差别,主要表现为存储器的数量和一些特殊指令上,这430个AE可分为四类:
图2 PC101处理阵列结构示意图
标准(STAN)型:标准AE类型是为CDMA的扩频、解扩和其他的基带信号处理进行优化设计的,共有240个STAN型的AE。乘累加(MAC)型:乘累加型AE含有一乘累加协处理器,多了条乘累加指令,一共有120个MAC型的AE。存储(MEM)型:存储型比其他类型有更多的程序和数据存储器,一共有68个MEM型号的AE。控制(CTRL)型:控制型含有更多的存储数据和程序的存储器,是实现控制功能的AE,共有2个CTRL型的AE。
CDMA2000移动台硬件设计CDMA2000移动台硬件结构如图3所示,系统从天线接收射频信号,经下变频到基带,通过A/D变换器分别对接收到的I,Q两路进行四倍采样,然后送到由4个PC101互连构成的基带处理模块,同时基带处理模块产生的控制信号对射频模块进行控制(增益控制、频率调整、功率控制等)。基带处理模块与外部CPU(PowerPC)相连,由ETHERNET口连接,实现系统的开发阶段的调试,CPU实现对PC101的控制和数据传输,同时可用于上层协议的处理。
图3 CDMA2000移动台硬件结构图
CDMA2000移动台阵列配置与软件实现接收机功能模块介绍CDMA2000接收机分为发送和接收两部分,这里主要介绍接收部分,接收机基带部分可分解为若干模块,包括同步捕获与跟踪、RAKE接收机、解交织、维特比译码,模块划分如图4所示。一个模块可被映射到一个或多个PicoArray设备, 每个模块的接口使用picoVHDL来定义,可使用一个或多个AE来构造子系统,AE之间的通信也由picoVHDL来表示,模块的全部功能通过使用C或汇编语言对每个AE进行编程来实现。各个模块实现的功能如下:
图4 CDMA2000移动台基带模块划分
同步捕获与跟踪:系统刚启动时处于失步状态,接收信号的PN码相位没有和本地PN码相位同步,PN码相位捕获即粗同步,在PN序列整个周期上搜索相关峰,检测输入信号是否和本地参考PN序列同步;PN码相位跟踪即细同步,搜索粗同步附近的若干相位,使其和输入PN码相位一致。RAKE接收:是接收机的核心模块, RAKE接收模块又分为以下三种子模块:多径搜索,信道估计,多径合并。解交织:交织是为防止信道产生突发的连续错误,解交织就是交织的逆过程。维特比译码:完成信道编码中的卷积码和TURBO码的译码。
模块定义和软件设计实例
下面以维特比译码模块为例,对模块的VHDL描述和内部的C语言实现加以说明,程序代码如下所示:
entity ViterbiDeCODe is port (outPort: out integer16pair@16; inport : in integer16pair@16);end entity ViterbiDecode;
architecture C of ViterbiDecode is
begin MEM CODEint main() {while (1){ /从输入端口读取数据integer16pair outputval;integer16pair value = getinPort();/进行维特比译码/将译码结果送给输出端口 putoutPort(outputval); } return 0; }
ENDCODE;
end architecture ViterbiDecode;
模块的输入输出端口通过entity进行定义, architecture内部描述这个模块的行为, 但不同于传统的FPGA设计,其architecture内部的行为描述采用C语言而不再是VHDL语言,对于C语言部分以“CODE”标记作为开始,以“ENDCODE”标记作为结束。C语言的入口点也是main函数,这和标准C是非常类似的。各个子系统通过编译器件自动进行连接,并且自动完成AE的分配。下面对描述中几点特殊的地方加以解释:在端口描述中"@"数字代表系统需要占用总线的时隙,比如@16就表示每16个时隙总线就要分给此端口一次, 域指定了语言类型,这里可以是C和ASM两种。用来指定本子系统采用的AE的类型,有MAC、STAN、MEM、CTRL四种可选,或指定为 ANY(任意一种),然后由编译器来进行分配。
结语
利用PC101芯片设计的无线接收机具有功能实现灵活,开发容易,无须修改硬件就可适应各种标准的特点.是一种全新的设计理念, 从目前存在的第三代移动通信各种体制中看出,它们具有许多类似的算法,CDMA2000接收机中的各模块如Rake合并、信道估计、解交织等部分能应用于多种体制。基于PC101的软件定义的接收机具有极大的灵活性和开放性,易于结构化、模块化和通用化,有利于各种通信新标准的实施和兼容。为将来的多种制式间的互联互通,提供了一种成本低廉的纯软件的解决方案。
上一篇:基于数字机顶盒的电子菜单的设计与实现
下一篇:利用PWM给单片机应用增加语音功能