基于DSP的电力线载波OFDM调制解调器
S5933是AMCC(Applied Micro Circuits Corporation)公司开发的32bit PCI控制器,具备强大、灵活的PCI接口功能,适用于高速数据传输场合。S5933芯片的特点是符合PCI2.1规范,支持PCI主、从两种工作方式,支持多种数据传输方式,适用于不同的数据传输场合,支持PCI全速传输,提供8/16/32bit的Add-On用户总线,有高低字节顺序调整功能,支持穿行和并行的BOOT/POST码功能,160脚PQFP封装。
DSP部分选用TI公司的TMS320C6201。TMS320C6201有32位的外部存储接口EMIF,为CPU访问外围设备提供了无缝接口。为了便于多信道数字信号处理,TMS320C6201配备了多信道带缓冲能力的串口McBSP。McBSP的功能非常强大,除具有一般DSP串口功能之外,还可以支持T1/E1、ST-BUS、IOM2、SPI、IIS等不同标准。TMS32C6201提供的16位主机接口(HPI)使得主机设备可以直接访问DSP的存储空间。通过内部或外部存储空间,主机可以与DSP交换信息,也可以利用HPI直接访问映射进存储空间的外围设备。TMS320C6201的DMA控制器有四个独立的可编程通道,可以同时进行四种不同的DMA操作。
4 OFDM在DSP上的软件实现
调制部分的子程序被系统调用前,发送的数据已装入数据存储器。子程序被调用时,数据区的首地址以及长度被作为入口参数传递给子程序。程序执行时首先进行一系列的配置工作,如配置DSP片内外设以及数模转换器的各种参数等。之后,串口中断产生,中断服务程序自动依次读取发送存储器中的内容,经串口输出给数模转换器。然后程序从数据存储区读取一帧数据,并行放入IFFT工作区的相应位置,随后进行IFFT以及加入循环前缀(即复制数据的后若干位插入到数据的前段)。所得数据存入发送存储器以便中断服务程序将其输出。
解调部分的程序首先执行DSP片内外设以及模数转换器的配置,然后开串行口,接收中断,使接收中断程序接收来自模数转换器的采样数据,并将采样数据依次存入接收存储器。每得到一帧数据,程序首先去除循环前缀(即删去数据的前若干位),然后对去除循环前缀后的数据进行FFT变换。
5 FFT在TMS320C6201上的优化算法
表1给出256点Radix2FFT和Radix4FFT在TMS320C6201上所需的指令周期,以及在不同的工作频率下完成FFT所需的时间。 由表1可以看出,在TMS320C6201上采用Raidx4算法比采用Radix2算法更加高效。并且,为了满足系统需求,即在17.07μs之内完成256个复数点的FFT运算,TMS320C6201必须采用200MHz的工作频率。
TMS320C6201的数据通路和流水线工作方式是对算法进行优化从而获得高性能的基础。TMS320C6201有两个可以进行数据处理的数据通路A和B,每个通路有4个功能单元(.L.S.M.D)和一个包括16个32位寄存器的寄存器组。功能单元执行逻辑、位移、乘法、加法和数据寻址等操作。两个数据寻址单元(.D1和.D2)专门负责寄存器组和存储器之间的数据传递。在同一时刻,这些功能单元能够并行地执行多条指令。TMS320C6201对任何指令的操作都能分为几个子操作,每个子操作由不同单元完成。对每个单元来说,每个时钟周期可进入一条新指令,这样在不同周期内,不同单元可以处理不同的指令,这种工作方式称?quot;流水线工作方式。TMS320C6201的特殊结构,可使8条指令同时通过流水线的每个节拍,从而大大提高了机器的吞吐量。
为使代码达到最大效率,程序将尽可能将指令安排为并行执行。为使指令并行操作,程序确定指令间的相关性,即一条指令必须发生在另一条指令之后。根据TMS320C6201的数据通路和流水线工作方式,在此给出一种高效实现16点Radix4FFT的方法。其基本思想是分解传统的FFT蝶型算法循环体,将其分别展开在A、B通路内计算两个FFT蝶型算法。每个蝶型算法分别只分配自己这一侧的寄存器组和功能单元。这样在循环体内两个蝶型算法是完全不相关的,能够并行执行。下面给出基于C.S.Burrus和T.W.Parks的Radix4FFT算法的优化算法的代码实现。
- 基于DSP的高阶COSTAS锁相环的设计(03-02)
- 基于DSP的SPWM直接面积等效算法的分析 (07-19)
- 教学办公用电智能管理系统简介(12-20)
- 基于ARM+FPGA的可重构MAC协议的设计与实现(11-18)
- 详解PLC-BUS技术产品的九大应用领域(01-07)
- CAN总线在发动机测试中的应用(09-19)