基于的S解调器硬件平台设计.docx
《基于的S解调器硬件平台设计.docx》由会员分享,可在线阅读,更多相关《基于的S解调器硬件平台设计.docx(74页珍藏版)》请在冰豆网上搜索。
基于的S解调器硬件平台设计
1绪论
1.1课题研究背景
从20世纪80年代第一片数字信号处理器(DSP:
DigitalSignalProcessor)芯片诞生以来,DSP就以数字器件特有的稳定性、可重复性、可大规模集成、尤其是可编程性和易于实现自适应处理等特点,给数字信号处理技术的发展带来巨大的机遇,使得信号处理手段更加灵活,功能更加强大。
伴随着微电子技术、数字信号处理技术的快速发展,数字信号处理器逐渐得到了日新月异的进步,在处理速度、运算精度、处理器的结构、指令系统、指令编程等诸多方面都有较大的提高。
DSP己经渗透到消费、军用、民用、商业等各个领域,以及人们生活的方方面面,成为许多电子系统的技术核心。
目前,DSP产品正向高性能、低功耗、多功能、多领域等方向发展。
在当今众多DSP生产厂家的中,最成功的当数美国德州仪器公司(TexasInstruments简称TI)的一系列产品,其DSP市场份额占全世界份额近50%。
目前TI公司的DSP产品中,C1x、C2x、C2xx、C5xx、C54x、C62x等系列是定点运算指令系统的DSPS(数字信号处理解决方案);C3x、C4x、C67x等系列是浮点运算指令系统的DSPS;C8x等系列是多DSPS集成系统;AV7100、AV7110等系列是用于视频、音频领域的专用数字压缩产品。
DSP作为可编程数字信号处理专用芯片是微型计算机发展的一个重要分支,是一种特殊结构的微处理器。
为了快速进行数字信号处理,DSP芯片还采用特殊的软硬件结构。
总的来说,DSP器件的发展,要兼顾3P的因素,即性能(performance)、功耗(powerconsumption)和价格(price)。
随着VLSI技术的高速发展,现代DSP器件在价格显著下降的同时,仍然保持着性能的不断提升和单位运算量的功耗不断降低。
通过下面两种方法实现:
(1)是通过并行提升DSP芯片的性能
传统的DSP芯片通过采用乘加单元和改进的哈佛结构,使其运算能力大大超越了传统的微处理器。
一个合理的推论是:
通过增加片上运算单元的个数以及相应的连接这些运算单元的总线数目,就可以成倍地提升芯片的总体运算能力。
当然,这个推论有两个前提条件必须满足:
首先是存储器的带宽必须能够满足由于总线数目增加所带来的数据吞吐量的提高;另外,多个功单元并行工作所涉及的调度算法其复杂度必须是可实现的。
(2)存储器构架的变化
随着芯片主频的不断攀升,存储器的访问速度日益成为系统性能提升的瓶颈。
在现有的制造工艺下,片上存储单元的增加将导致数据线负载电容的增加,影响到数据线上信号的开关时间,这意味着片上高速存储单元的增加将是十分有限的。
为了解决存储器速度与CPU内核速度不匹配的问题,高性能的CPU普遍采用Cache(高速缓存)机制,新的DSP芯片也开始采用这种结构。
在很多情况下,采用这种多级缓存的架构可以达到采用完全片上存储器结构的系统约80%的执行效率。
但是,采用Cache机制也在一定程度上增加了系统执行时间的不确定性,其对于实时系统的影响需要认真地评估分析。
Cache对于DSP芯片还是一个比较新的概念。
所以需要深入地了解Cache的机制,相应地对算法的数据结构、处理流程以及程序结构等做出调整,以提高Cache的命中率,从而更有效地发挥Cache的作用。
(3)SoC的趋势
对于特定的终端应用,SoC(系统芯片)可以兼顾体积、功耗和成本等诸多因素,因而逐渐成为芯片设计的主流。
DSP器件也逐渐从传统的通用型处理器中分离出更多的直接面向特定应用的SoC器件。
这些SoC器件多采用DSP+ARM的双核结构,既可以满足核心算法的实现需求,又能够满足网络传输和用户界面等需求。
同时,越来越多的专用接口以及协处理器被集成到芯片中用户只需添加极少的外部芯片,即可构成一个完整的应用系统。
如TI推出的面向第3代无线通信终端的OMAP1510芯片等,面向数码相机的DM270芯片等,面向专业音频设备的DA610芯片等,面向媒体处理的DM642芯片等。
1.2TI系DSP芯片现状
TI首席战略科学家GeneAFrantz在北京的TI亚洲开发者大会上宣布:
“DSP的应用才刚刚开始,未来将遍及我们生活的各个角落”。
认为DSP在消费电子(例如语音识别)与医学领域还有巨大的发展潜力。
3G技术和Internet的快速发展,要求处理器的速度越来越高,体积越来越小,DSP的发展正好能满足这一发展的要求。
因为传统的其它处理器都有不同的缺陷:
MCU的速度较慢;CPU体积较大,功耗较高;嵌入CPU的成本较高。
DSP的发展,使得在许多速度要求较高,算法较复杂的场合,取代MCU或其它处理器,而成本有可能更低。
下面介绍说明DSP的发展动态
(1)TMS320C2000系列包括C24x和C28x系列。
TI建议使用LF24xx系列替代C24x系列。
因为LF24xx系列的价格比C24x便宜,性能高于C24x,而且LF24xx具有加密功能。
而C28x系列主要用于大存储设备管理,高性能的控制场合。
(2)TMS320C3x系列包括C3x和VC33,主要推荐使用VC33。
C3x系列是TI浮点DSP的基础,目前TI已而对其限产。
(3)TMS320C5x系列已不推荐使用,建议使用C24x或C5000系列替代。
(4)TMS320C5000系列包括C54x和C55x系列。
其中VC54xx还不断有新的器件出现,如:
TMS320VC547(1DSP+ARM7)。
C55x系列功耗为VC54xx的1/6,性能为VC54xx的5倍,是一个正在发展的系列。
C5000系列是目前TIDSP的主流DSP,它涵盖了从低档到中高档的应用领域,也是目前用户最多的系列,在本次设计中,我选用的就是C54xx系列的TMS320VC5416数字信号处理芯片。
(5)TMS320C6000系列包括C62xx、C67xx和C64xx。
此系列是TI的高档DSP系列。
其中C62xx系列是定点的DSP,系列芯片种类较丰富,是主要的应用系列。
C67xx系列是浮点的DSP,用于需要高速浮点处理的领域。
C64xx系列是新发展,性能是C62xx的10倍。
(6)TMS320C8x系列包括C80和C82,是TI公司推出的第一款多处理器芯片,而且第一次使用VLIW结构(指令级的平行度),目前亦为限产阶段。
(7)OMAP系列是TI专门用于多媒体领域的芯片,它是C55+ARM9,性能卓越,非常适合于手持设备、Internet终端等多媒体应用。
随着技术的进步,在DSP领域会出现一些新的概念,比如DSP核的概念,DSP核不是一个独立的产品,而是DSP芯片上的运算引擎,用户可以在芯核的基础上,扩展外围电路,开发出完整的DSP器件。
DSP以芯核的方式进入市场,这样我们就可以根据自己的需求设计DSP,适用性强,而且减少了浪费。
随着DSP器件的发展,DSP系统开发的主要工作已经转向软件开发,软件开发将占据约80%的工作量。
另外,在目前的现状条件下,算法是核心知识产权的主要体现,也是产品竞争力的主要因素。
所以算法绝对是今后DSP应用的核心。
而做硬件的最终目的是不做硬件,DSP器件是DSP算法实现的重要手段,只有了解硬件系统的设计,才可以更好的进行软件的开发。
DSP技术的发展渐趋成熟,DSP的应用日益广泛了解和掌握DSP技术,并应用DSP技术开发新一代高科技产品是电子工业走向高技术密集型的一条重要途径,因此学习和研究相关知识是很重要的。
1.3本论文研究内容
本课题是基于GPS数据解调的硬件系统平台的基本方案设计(电源设计、时钟设计、复位电路设计、串口设计、DSP存储器和I/O口的扩展-键盘及显示器等)及总体方案设计,最终基于TMS320C5416的GPS解调器硬件平台得以实现。
具体论文结构如下:
第一章主要描述了DSP的国内外发展现状。
第二章介绍了C54xx系列芯片的基本特点,主要对TMS320VC5416的结构特点做了详细的描述。
最后介绍了在硬件调试中必须要用到的开发工具CCS和所要解调的GPS数据格式。
第三章是描述一个硬件系统应如何设计和实现,首先是要明确做的内容,其次,根据课题制定硬件总体方案,既搭建了实现GPS解调的硬件平台。
第四章是DSP的基本电路(仿真口、复位电路、时钟、电源电路)的电路设计实现。
第五章是对DSP的关键模块的芯片选型及电路设计原理及接口电路实现,包括存储器扩展模块、可编程逻辑器件、I/O扩展模块(键盘和显示器)。
第六章是介绍DSP和PC机的串行通信电路的原理设计和接口电路实现,之后介绍了三种串行通信方式的方案设计及实现原理,综合比较之后得到的最佳方案,即通过UART芯片实现和PC机的异步串行通信实现。
第七章则是前期工作总结和后期工作展望,首先是介绍完成的工作和学到的知识,最后就是对本次课题后期可以扩展的功能做了简单的描述。
2DSP与GPS概述
2.1TMS320C54x系列芯片特点
TMS320C54x是TI公司1996年推出的新一代16位定点DSP产品,它采用先进的哈佛结构,片内集成8条总线(1条程序存储器总线、3条数据存储器总线和4条地址总线)、在片存储器和在片复用外设。
速度由30~532MIPS不等。
是为实现低功耗、高性能而设计的定点DSP芯片,该系列芯片的内部结构(图2.1)及指令系统都是全新设计的,它的主要特点如下:
(1)运算速度快。
VC5416指令周期为6.25ns。
(2)优化的CPU结构。
它内部有1个40位的算术逻辑单元,2个独立的40位的累加器,1个17x17的乘法器和1个40位的桶形移位器,4条内部总线和2个地址产生器。
另外,内部还集成了维特比译码器,用于提高维特比编译码的速度。
(3)低功耗方式。
TMS320C5x的主要特点是低功耗,可以在3.3V或2.7V工作,有三中种低功耗方式:
IDLE1、IDLE2、IDLE3,可以节省DSP的功耗。
(4)智能外设。
除了标准的串行口和时分复用(TDM)串行口外,还提供了自动缓冲串行口BSP(auto-BufferedSerialPort)和与外部处理器通信的HPI(HostPortInterface)接口。
BSP可提供2K字数据缓冲的读写能力,降低处理器的额外开销,当指令周期是6.25ns时,BSP的最大数据吞吐量为160Mbit/S,即使在IDLE方式下,BSP也可以全速工作。
而且HPI可以与外部标准的微处理器直接接口。
图2.1TMS320C54x的内部结构框图
TMS320VC5416(在后面的介绍均使用简称VC5416)处理器在本系列中处于先进水平。
它具有运算速度快,内部存储空间大,外部接口性能好等优点。
所以设计种选择了技术上比较先进,价格又较便宜的VC5416作为硬件开发对象。
下面我结合VC5416的实际情况,简单介绍该芯片的体系结构。
2.2TMS320VC5416的体系结构
图2.1TMS320VC5416的引脚图
VC5416共有144个引脚,其中有23根地址线A0~A22,16根数据线D0~D15,4个外部可屏蔽引脚INT0~INT3和一个不可屏蔽中断引脚BIO叫,剩下的引脚则分成以下几类:
存储器控制引脚,时钟/晶振引脚,多通道缓冲串口引脚,主机接口通讯引脚,电源引脚,初始化和复位引脚,通用输入/输出引脚,以及用于测试的IEEE1149.1标准JTAG口(IEEE1149.1对JTAG接口标准作了修正,为5线接口。
在片JTAG接口为用户对DSP的仿真提供了更便捷的串行工作方式。
)。
和通用的微处理器相比,DSP芯片的硬件资源主要用于DSP的处理功能,因此I/O引脚数相对较小(各引脚的具体定义在附录英文翻译之中)。
一:
总线结构
VC5416体系结构由8条主要的16位总线(4条程序/数据总线和4地址总线)构成:
(1)程序总线(PB):
从程序存储器装载指令码和立即操作数。
(2)3条数据总线(CB,DB,EB):
负责将片上的各个不同的部分相互连接,例如CPU,数据地址产生逻辑,程序地址产生逻辑,片上外设和数据存储器。
其中,CB和DB传送从数据存储器读取的操作数。
EB传送写到存储器的数据。
(3)4条地址总线(PAB,CAB,DAB,EAB):
负责装载指令执行所需要的地址。
PB能加载保存于程序存储空间的操作数(如系数表:
)到乘法器和加法器进行乘一加操作或利用数据移动指令(MVPD和READA)把操作数移动到数据存储空间的目的地址中。
这种性能,与双操作数读取的特性一起,使VC5416支持单周期三操作数指令。
VC5416还有一条双向的片上总线用于访问片上外设。
这条总线轮流使用DB和EB与CPU连接。
二:
内部存储器
VC5416存储器被组织成三个独立的可选择的空间:
程序存储空间、数据存储空间和1/0空间。
大小都是64K,总共是192K大小。
包括随机存储器(RAM)和只读存储器(ROM)。
其中,RAM是双存取访问RAM(DARAM)。
DARAM被组织在一些块上,因为每个DARAM块能够在单机器周期中被访问两次,结合并行的体系结构,使得VC5416得以在一个指定的周期内完成4个并发的存储器操作:
一个取指操作、两个数据读操作和一个数据写操作。
DARAM总是被映射到数据存储空间上,也可被映射进程序存储空间用于保存程序代码。
VC5416的26个CPU寄存器和片上外设寄存器被映射在数据存储空间。
下VC5416内存分配情况如下图所示:
片内DARAM程序存储器地址范围是:
DARAM0:
0080h–1FFFh;DARAM1:
2000h–3FFFh
DARAM2:
4000h–5FFFh;DARAM3:
6000h–7FFFh
DARAM4:
8000h–9FFFh;DARAM5:
A000h–BFFFh
DARAM6:
C000h–DFFFh;DARAM7:
E000h–FFFFh
图2.1TMS320VC5416内存分配图
从图中可以看出:
VC5416提供了三个控制位用于在存储空间中配置片上存储器,利用这三个控制位可以设置片上存储器怎样配置到不同存储空间,指定是配置到程序存储空间还是数据存储空间。
以上通过设置处理器模式状态寄存器(PMST)中的状态位,可以进行调整。
(1)MP/MC位:
当MP/MC=1时,禁止片上ROM配置到VC5416的程序存储空间中,即微处理器模式;
当MP/MC=0时,允许片上ROM配置到VC5416的程序存储空间中,即微计算机模式。
(2)OVYL位:
当OVYL=1时,片上RAM配置到程序和数据存储空间中;
当OVYL=0时,片上RAM仅配置到数据存储空间。
(3)DROM位:
当DROM=1时,片上ROM配置到程序和数据存储空间。
当DROM=O时,片上ROM不配置到数据存储空间。
DROM与MP/MC状态无关。
1:
程序存储空间
当芯片复位时,复位和中断向量分配在FF80h开始的程序存储空间,VC5416也允许中断向量表重定位到任意一个128字的边界上,这让使用者可以将中断向量表从自举ROM中移出来,然后再从存储器映射中移去ROM。
片内ROM有128字是用于器件测试的代码(下表2.1中的保留段),其地址是程序空间的OXFF00h到OXFF7Fh,在掩膜时应避开这段区间。
在VC5416片上的ROM中,固化有以下内容:
(1)完成从串口、外部存储器、UO端口或主机接口进行自举加载功能的程序代码;
(2)256个字的p率扩展表;
(3)256个字的A率扩展表;
(4)256个字的正弦表;
(5)256个字的A率扩展表;
(6)256个字的正弦表;
(7)中断向量表。
表2.1片上ROM分配表
其中,片上ROM中固化的sine表,在程序中有着更广泛的应用价值。
VC5416利用页扩展的方式可以扩展程序存储器,最多达8MB。
为了实现页扩展,VC5416提供了一些增强的特性:
(1)23条地址线,可扩展8M的程序存储空间;
(2)一个额外的存储器映射寄存器(外部地址扩展寄存器)扩展程序计数器XPC,初始化时XPC为0;
(3)6条额外的指令,用于寻址扩展的程序存储空间。
TMS320VC5416有128页存储空间,每页64K。
当片上RAM配置到程序存储空间后,扩展程序存储器的所有页被分为两个部分:
共享部分和独立部分。
共享部分在任何一页都可以访问,独立部分则仅在特定页中访问。
当片上ROM可以访问时,ROM配置到程序空间的第0页,在其他页中不能访问片上ROM。
芯片通过XPC的值来访问程序存储器的各个页,XPC作为存储器映射寄存器被放到数据存储器的OO1Eh处。
扩展程序存储器分配详见下图:
片内DARAM程序存储器地址范围是:
DARAM4:
018000h–019FFFh;DARAM5:
01A000h–01BFFFh
DARAM6:
01C000h–01DFFFh;DARAM7:
01E000h–01FFFFh
片内SARAM程序存储器地址范围是:
SARAM0:
028000h–029FFFh;SARAM1:
02A000h–02BFFFh
SARAM2:
02C000h–02DFFFh;SARAM3:
02E000h–02FFFFh
SARAM4:
038000h–039FFFh;SARAM5:
03A000h–03BFFFh
SARAM6:
03C000h–03DFFFh;SARAM7:
03E000h–03FFFFh
图2.2扩展程序存储器的分配
2:
数据存储空间
VC5416可以寻址64K的数据存储空间。
片上的ROM、双存取RAM(DARAM)可以通过软件配置到数据存储空间中,芯片在访问存储器时会自动访问这些单元,当DAGEN(数据地址产生器)产生了不在片上存储器的地址时,会自动产生一个外部总线操作。
一般,将片上ROM配置到数据存储空间,需要修改PMST寄存器的DROM位,来允许将片上ROM当作数据存储器访问。
VC5416的数据存储器第0页的O000h一O07Fh存放着存储器映射寄存器,内容包括:
(1)无等待状态访问的CPU寄存器(共26个)。
(2)片上外设的控制和数据寄存器,存放在OO2Oh一005Fh的地址中。
(3)用于补充的大个字的DARAM,这就不必将较大的RAM块分成小碎片。
3:
I/O空间
VC5416提供了64K的I/O空间,寻址范围是00000H一OFFFFH,作用是与片外设备连接。
PORTR和PORTW两条指令可以访问这段存储空间。
它适用于访问映射到1/0空间的设备而不是存储器。
4:
数据存储器寻址
VC5416提供了七种基本的寻址方式:
立即寻址、绝对寻址、累加器寻址、直接寻址、间接寻址、存储器映射寄存器寻址、堆栈寻址。
5:
程序存储器寻址
PC存器一般用于程序存储器寻址,由程序存储器地址产生逻辑(APGEN)加载。
大多数情况下,APGEN在取指之后连续增加PC值,但当遇到非顺序的操作,如:
跳转、调用、返回、条件操作、指令重复、复位和中断时,PC值产生非连续的变化。
6:
流水线操作
VC5416的流水线一共有6级。
流水线的每一级都是独立运行的,一个周期可以由六条指令处于流水线上的不同阶段。
当PC值出现非连续的变化时,如跳转、调用和返回,一条或多条流水线上的指令会被放弃。
7:
片上外设
C54x包含有结构相同的CPU,但是CPU连接不同的片上外设,从下面的功能框图中可以看出VC5416包括的外设有:
通用目的输出引脚(BIO和XF)、软件等待状态发生器、可编程存储器切换逻辑、并行口、硬件定时器、3个多通道缓冲串行口McBSP:
图2.3TMS320VC5416的功能框图:
8:
外部总线接口
VC5416能寻址64K的数据存储器、64K的程序存储器(可外部扩展)和64K的I/0空间。
任何对外部存储器或I/O设备的访问都要使用外部总线接口。
外部总线接口的READY引脚和片上的软件等待状态发生器保证处理器能够与各种速度不同的外部设备连接。
外部总线接口的HOLD方式允许其他设备占用VC5416的外部总线。
这样,外部设备就可以访问VC5416的程序存储器、数据存储器和I/O空间上的资源。
9:
IEEE1149.1标准的逻辑扫描电路
具有符合IEEE1149.1标准的在片JATG接口,用于开发应用系统芯片的仿真和测试。
2.3TMS320VC5416的开发工具
DSP开发工具包括代码生成和代码调试工具两大类。
代码生成工具的作用是将用C或汇编语言编写的DSP程序编译、汇编并链接成为可执行的DSP程序;而代码调试工具的作用是对DSP程序及系统进行调试,使其能够达到设计目标。
CCS是TI公司开发的一个开放的和具有强大集成能力的DSP系统开发环境,该套开发环境及代码生成工具和代码调试工具为一体,能完成DSP系统开发过程的各个环节,它有先进的开发工具组成直观的系统,可大幅度减少DSP开发时间。
同时,它包括了高级的编码工具以及可供第三方接入的开放式结构。
CCS由c编译器、调试软件及相关插件组成。
在使用过程中,我们常常会用到CCS的以下几个特点:
(1)集成可视化代码编辑界面,可以方便地直接编写C、汇编、.h文件、.cmd文件等;
(2)集成代码生成工具,包括汇编器、优化的C编译器和链接器等;
(3)具有完整的基本调试工具,可以载入执行文件(.out),查看寄存器窗、存储器窗口;
(4)变量窗口、反汇编窗口等,支持在C源代码级进行调试;
(5)断点工具,支持硬件断点、数据空间读/写断点、条件断点等;
(6)探针工具,用于进行仿真,数据监视;
(7)剖析工具,用于评估代码执行的时间。
CCS是开放的软件平台,它可以支持不同的硬件接口,因此在此要注意的是不同的硬件接口必须通过标准的Driver同CCS连接。
鉴于此,当要用CCS软件调试硬件时,必须根据自己所选用的仿真器先配置好相关的参数,这样才可以对目标DSP进行各种调试。
2.4GPS概述
NMEA协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-TheNationalMarineElectronicsAssociation)制定的一套通讯协议。
GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。
NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。
NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。
下面给出这些常用NMEA-0183语句中的$GPGGA的字段定义解释。
$GPGGA
$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F
字段0:
$GPGGA,语句ID,表明该语句为GlobalPositioningSystemFixData(GGA)GPS定位信息
字段1:
UTC时间,hhmmss.sss,时分秒格式
字段2:
纬度ddmm.mmmm,度分格式(前导位数不足则补0)
字段3:
纬度N(北纬)或S(南纬)
字段4:
经度dddmm.mmmm,度分格式(前导位数不足则补0)
字段5:
经度E(东经)或W(西经)
字段6:
GPS状态,0=未定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算
字段7:
正在使用的卫星数量(00-12)(前导位数