一种基于DSP的软件无线电调制解调实验平台
扫描二维码
随时随地手机看文章
摘要:设计实现了一套基于软件无线电的软件化MODEM实验系统,该系统硬件以TMS320C6711数字信号处理器(DSP)为核心,实现软件无线电多制式调制解调功能,并设计硬件接口完成与主机实时通信。在主机中设计虚拟仪器控制显示平台,实现了对调制解调制式的实时选择及实测数据的实时显示。
关键词:软件无线电;虚拟仪器;DSP;MODEM
软件无线电的基本思想是以开放的、可扩展的、结构最简的硬件为通用平台,把尽可能多通信功能用可升级、可替换软件来实现。其中心思想是:构造一个具有标准化、模块化的通用硬件平台,并通过软件加载实现各种无线通信功能的一种开放式体系结构。调制解调器是软件无线电的关键技术环节,是软件无线电技术研究的核心内容之一,调制解调器的软件化是实现软件无线电开放性、通用性的关键一步。
系统原理
本系统针对高校教学而设计,以TMS320C6711数字信号处理器(DSP)为核心搭建软件无线电教学演示平台,为了尽可能充分地体现软件无线电的设计思想,硬件平台以DSP为核心搭建实现了硬件的模块化、开放性和可编程性,通过硬件实现数据收发、放大,在DSP中编程实现FM,DSB,QPSK, QAM等多种制式的调制解调功能。系统最大的特点是采用通用计算机与DSP处理单元相结合的方案,系统中各种人机接口及控制功能、存储显示功能由PC机完成,而各种实时任务交给DSP完成,充分发挥DSP的高速处
理能力及PC机的灵活性。
系统结构
该系统结构如图1所示。它是由DSP数据处理板及PC人机接口控制前台组成。其中DSP数据处理板以DSP(数字信号处理器)为核心微处理器芯,外接数据收发装置及DSP外围硬件设备,数据接收发送装置对外部信号进行采集和输出,通过功放将有用信号放大,由于所用DSP为数字信号处理芯片,所以还
图1 系统结构框图
需要A/D,D/A转换电路,将采集的模拟信号转换成数字信号,并将处理后的数字信号转换成模拟信号输出。为满足主机与外围硬件的通信,要用到DSP与主机接口,在硬件中我们通过HPI(主机接口)实现DSP与PC实时通信。在PC机中用软件设计了虚拟仪器控制显示平台,实现对硬件处理的控制及显示,用户可以在虚拟仪器平台前面板中输入数据选择各种调制解调制式,并通过数据通信接口将数据读入PC机,在虚拟仪器显示平台中以图形方式实时显示数据结果。
TMS320C6711芯片简介
由于调制解调器的设计实现是基于TI公司的TMS320C6711芯片,因此,在这里对TMSC67x系列CPU结构进行简要介绍。TMSC67x系列 CPU内部包括程序取指单元、程序执行机构、芯片测试和仿真端口以及控制逻辑。程序取指单元由程序总线与片内程序存储器相连。程序执行机构包括2个对称数据通道(A和B),2个对称的通用寄存器组、2组对称的功能单元(每组4个)、控制寄存器组和控制逻辑以及中断逻辑等。每组数据通路有读入及存储(写出) 数据总线与片内存储器相连。
TMSC67x系列CPU采用哈佛结构,其程序总线与数据总线分开,取指令和执行指令可以并行运行。C67x系列芯片的程序总线宽度为256bit,每一次取指操作都是取8条指令,称为一个取指包。片外的存储器及总线不分,二者是统一的。全部存储空间(包括程序存储器与数据存储器,片内与片外)以字节为单位统一编址。
主机通信接口设计
系统中主机通信接口HPI是TI公司数字信号处理器(DSP)中用于和主机进行双向数据通信的8位并行接口。HPI称为主机接口,是TI公司高性能DSP上配置的与主机进行通信的片内外设。传统的单片机与主机(比如PC机)接口时,需要在片外扩展附加芯片。如果采用与主机共享RAM的方式,则要片外扩展RAM及触发、锁存等芯片,这时主机可以通过DMA方式随机或整块地访问共享RAM;如果不要求主机随机访问从机数据,也可以采取扩展FIFO芯片的方式。
另外,当从机需要中断时,片外至少还要再扩展一片锁存器。
HPI主机接口将以上这些功能集成在DSP芯片内部,使其与主机的连接简化,对于DSP系统无须在片外扩展上述用途的芯片。HPI有两种工作方式,共用寻址方式(SAM)和仅主机寻址方式(HOM),本系统采用共用寻址方式,主机和DSP都能寻址HPI存储器,主机向DSP传达的控制字以及DSP处理后的实时数据都放在HPI存储器中以供访问。由于HPI是集成在片内,因此主机可以达到很高的访问速度,在SAM方式中运行频率与DSP的主频率相当,适应了 DSP对高速度的要求。
系统采用HPI接口主要通过调用动态链接库文件dsk6x11hpi.dll中的函数dsk6x-hpi-open打开HPI端口,这样系统DSP进行一系列的工作处理,并通过HPI端口向DSP读写数据,再调用动态链接库文件dsk6x11hpi.dll中的函数dsk6x-hpi-close关闭 HPI端口。
软件设计
软件结构
软件结构如图2所示。建立虚拟控制显示系统的目的就是要实现前台软件与底层硬件连接在一起形成一个完整的系统,该系统使用dsk6x11hpi.dll动态链接库文件实现与TMS320C6711DSP板子的HPI通信。PC机执行应用程序,加载算法到DSP端,并将需要处理的数据传送到DSP,DSP计算完成后将数据传回PC,整个过程由PC来控制启动、处理、结束等,这样软件结构中需要有控制显示的可视化用户界面,同时,软件要与具体硬件连接则需要软硬件接口程序。在DSP中,为了实现多制式的调制解调需要信号调制解调软件,要将算法应用到具体硬件平台中,还需要硬件平台的驱动程序。
图2 系统软件结构框图
DSP程序设计
系统要实现多种制式的调制和解调,这部分功能通过DSP软件完成,本系统实现了FM,DSB,QPSK,DQPSK等多种制式的调制和解调。为了提高程序的灵活性和可移植性,把多种制式的调制解调程序编写在同一个工程文件并编译下载到DSP中,在MODEM板卡工作时,通过PC前台发送的控制字,选择不同的程序入口点和调用不同的调制解调函数来选择不同的调制解调方式。在模拟调制与解调部分,根据不同调制方式的特性,选择了AM,DSB和FM3种调制方式加以实现。在数字调制与解调部分实现了QPSK和QAM。
LabVIEW程序设计
由于在实现主机与DSK板通信的过程中涉及到先后顺序,即建立连接、复位板子、复位DSP、打开HPI端口、加载程序、执行读写操作、关闭HPI、最后关闭连接,这些操作依次执行。所以在软件设计时对程序采用顺序结构,同时由于子程序有涉及到写操作时要对多个变量进行写操作,也采用了顺序结构。
而要实现能够在界面上选择调试的种类,再根据调试种类执行不同的程序,则要在程序框图中采用选择结构。该系统在labview界面设计中包含有供使用者选择调制方式的部分、一些程序框图调用的库文件函数输入、输出参数设置部分,还包括一个图形显示器件,实现对DSP存储器读出数据的显示。可以分5部分设计该界面:针对函数调用时的参数输入,设计1个5参数组成的模块,包括给DSK板定义句柄、定义复位DSP芯片时的端口模式以及导入模式、加载的 COFF文件名字、所使用板子配置文件的名称和存放位置;针对调制方式的选择和调制时变量的改变,同样设计1个5参数组成的模块,包括载波频率、直流分量、放大增益、调频指数以及调制方式;针对上一个模块中的调制时改变的变量,设计1个8参数组成的模块,这些参数是设置上一模块所写入的变量的长度和在 DSP中存放的地址;再针对读程序设计1个3参数的模块,要把DSP中的数据读出来需要,设定一个长度、初始地址和一个主机缓存;最后一个模块就是一个波形显示的模块。
LabVIEW与DSP通信程序
显示界面在Lab VIEW软件下开发而成,可实现主机程序(Lab VIEW程序)与DSP通信,即DSP存储器进行读写操作。Lab VIEW程序由前面板、程序框图和图标连接器组成。前面板是人机接触、交流窗口,模拟实际的仪器,主要由一些控件和指示器组成;程序框图是程序代码,是 LABVIEW程序的核心部位,程序运行时,前面板控件的值会传递给程序框图进行处理和运算,然后再把最后的处理结果传递给前面板的指示器显示,便于用户观察;图标/连接器是程序的图形标志,也是其他高层程序被调用时的图形代码和连接端口。
由于使用CCS观察DSP的数据波形比较麻烦,而且用于观察修改变量后产生的作用,都要完成原始程序修改,然后再编译、加载到DSP中,最后采集波形这样一个完整的过程。因此该虚拟控制显示系统通过调用CCS提供的动态链接库函数dsk6x11hpi.dll,根据一定的通信顺序方法和思想设计程序框图,就可以方便地实现主机程序(LabVIEW程序)与DSP之间的通信。dsk6x11hpi.dll动态链接库函数包含了12个接口函数,这12个接口函数分别执行不同的功能,如实现与DSK板子建立连接、复位板子、关闭连接等,这些接口函数包含了一些参数,输入值不同,代表的含义也不相同。
在LabVIEW中用库函数节点(Calling Library Function Node)调用dsk6x11hpi.dll动态链接库函数,实现与TMS320C6711DSK的DSP通信。只要设置准确、步骤完整(先建立连接,再复位板子、复位DSP、打开HPI端口、加载程序、执行读写操作、关闭HPI、最后才关闭连接),就可以实现通信了。当然,程序设计完成之后,要让 LabVIEW程序和DSK板子进行系统联调,把从DSP存储器中读到的一组数据显示在图形显示界面中,通过图形窗口观察数据是否完整、准确。
系统实时处理功能的PC-DSP联合实现
前面的软、硬件设计工作完成之后,接下来的工作就是完成主机与DSP联合实时数据处理。在用LabVIEW设计完前面板、程序框图和图标、连接器后,只要节点调用设置准确和连线正确,程序就可以运行了。给DSP板子上电并设置准确后,可以调试程序。
首先,在联调前需要对节点(动态链接库函数)输入、输出参数和输入控件的设置进行检查。在调试过程中,我们可以使用探针来测量输入、输出数值,以观察程序是否运行正确。接下来 建立连接,将DSP程序加载到DSP芯片中,这时最好把调用库文件放到与COFF(.out文件)同一个目录下。如果程序加载成功,主机和DSP板子建立了连接后,调用dsk6x-hpi-write和dsk6x-hpi-read函数返回值不会是0,如果返回值是0,而且节点调用设置都没有问题,这时候就需要检查板子是否连接正常。
对于调用dsk6x-hpi-write和dsk6x-hpi-read函数,其中的设置是非常重要的,只要有一小块设置不成功,程序就无法进行下去。这方面需要我们对该函数的输入、输出参数非常了解。这里指出p-length和dest-addr数据的Pass设置都应该设置成 Pointertovalue,也就是指向这个数的地址。而对于read模块的p-buffer的数据类型应该设置成Array(数组),Array Format(数组格式)应该设置成指针。这些设置成功了,程序才能够正常运行。程序加载成功,函数返回值不为零,就可以继绪工作。dsk6x-hpi- write和dsk6x-hpi-read函数的返回值显示了该操作是成功的,也就可以正常地把数据从HPIRAM中读出来送到PC虚拟仪器程序数据入口,然后再将其以图形方式显示出来。图3是PC-DSP联合工作时在虚拟仪器前面板中显示的QPSK调试方式工作下,从HPIRAM中读出的DSP中调制信号(在波形显示图中表示出来)。
图3 PC-DSP联调QPSK调制波形图
结束语
这套基于软件无线电的软件化MODEM实验系统在同一系统中实现了多制式调制解调,并且该系统带有人机接口及控制显示功能,将处理数据以图形方式实时显示出来便于观察和分析。系统中各种人机接口及控制、存储显示功能由通用计算机来实现,而数据采集及调制解调等实时处理任务交由DSP完成。充分发挥了通用计算机的灵活性和DSP的高速实时处理能力。