基于DSP的AD转换接口设计说明.docx
《基于DSP的AD转换接口设计说明.docx》由会员分享,可在线阅读,更多相关《基于DSP的AD转换接口设计说明.docx(18页珍藏版)》请在冰豆网上搜索。
基于DSP的AD转换接口设计说明
理工大学
数字信号处理课程设计
题目:
基于DSP的A/D转换接口设计
摘要
数字信号处理器(digitalsignalprocessor,DSP)是针对数字信号处理的需求而设计的一种可编程的处理器,是现代电子技术、计算机技术和信号处理技术相结合的产物。
随着信息处理技术的飞速发展,DSP在电子信息、通信、软件无线电、自动控制、仪器仪表、信息家电等高科技领域获得了越来越广泛的应用。
自从20世纪80年代诞生以来,DSP就被广泛应用于社会各个领域。
DSP不仅快速实现了各种数字信号处理算法,而且拓宽了数字信号处理的应用围。
随着DSP的功能越来越强大,其应用围也将越来越广泛。
此次DSP课程设计,我们一组做的是A/D转换接口的设计。
在DSP的外部设备中,A/D(模数转换器)是一个十分重要的器件,A/D先将模拟信号转换成数字信号,DSP接收A/D输出的数字信号进行信号处理。
关键词:
DSP;A/D转换接口;TMS320C5416
摘要1
1概述3
1.1DSP芯片的介绍3
1.2DSP芯片的发展3
1.3DSP芯片的特点4
1.4Protel99SE概述5
2系统设计6
2.1电路原理图7
2.2PCB板7
3硬件设计8
3.1电源设计8
3.2DSP与TLV1571的硬件连接8
3.3其他引脚和测试信号9
4软件设计10
4.1A/D主程序10
4.2中断程序12
4.3CMD程序15
5实验结果16
总结17
参考文献18
1概述
1.1DSP芯片的介绍
DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。
DSP芯片的部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速地实现各种数字信号处理算法。
根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:
1在一个指令周期可完成一次乘法和一次加法。
程序和数据空间分开,可以同时访问指令和数据。
2片具有快速RAM,通常可通过独立的数据总线在两块中同时访问。
3具有低开销或无开销循环及跳转的硬件支持。
4快速的中断处理和硬件I/O支持。
5具有在单周期操作的多个硬件地址产生器。
6可以并行执行多个操作。
7支持流水线操作,使取指、译码和执行等操作可以重叠执行。
1.2DSP芯片的发展
世界上第一个单片DSP芯片是1978年AMI公司宣布的S2811,1979年美国Iintel公司发布的商用可编程期间2920是DSP芯片的一个主要里程碑。
这两种芯片部都没有现代DSP芯片所必须的单周期芯片。
1980年。
日本NEC公司推出的μPD7720是第一个具有乘法器的商用DSP芯片。
第一个采用CMOS工艺生产浮点DSP芯片的是日本的Hitachi公司,它于1982年推出了浮点DSP芯片。
1983年,日本的Fujitsu公司推出的MB8764,其指令周期为120ns,且具有双部总线,从而处理的吞吐量发生了一个大的飞跃。
而第一个高性能的浮点DSP芯片应是AT&T公司于1984年推出的DSP32。
在这么多的DSP芯片种类中,最成功的是美国德克萨斯仪器公司(TexasInstruments,简称TI)的一系列产品。
TI公司灾982年成功推出启迪一代DSP芯片TMS32010及其系列产品TMS32011、TMS32C10/C14/C15/C16/C17等,之后相继推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS32C30/C31/C32,第四代DSP芯片TMS32C40/C44,第五代DSP芯片TMS32C50/C51/C52/C53以及集多个DSP于一体的高性能DSP芯片TMS32C80/C82等。
自1980年以来,DSP芯片得到了突飞猛进的发展,DSP芯片的应用越来越广泛。
从运算速度来看,MAC(一次乘法和一次加法)时间已经从80年代初的400ns(如TMS32010)降低到40ns(如TMS32C40),处理能力提高了10多倍。
DSP芯片部关键的乘法器部件从1980年的占模区的40左右下降到5以下,片RAM增加一个数量级以上。
从制造工艺来看,1980年采用4μ的N沟道MOS工艺,而现在则普遍采用亚微米CMOS工艺。
DSP芯片的引脚数量从1980年的最多64个增加到现在的200个以上,引脚数量的增加,意味着结构灵活性的增加。
此外,DSP芯片的发展,是DSP系统的成本、体积、重量和功耗都有很大程度的下降。
1.3DSP芯片的特点
DSP具有如下一些特点。
(1)改进的哈佛结构
早期的微处理器部大多采用•诺依曼(VonNeumann)结构,其片程序空间和数据空间是混合在一起的,取指令和取操作是一条总线分时进行的。
当高速运算时,不但不能同时取指令和取操作数,而且还会造成传输通道上的瓶颈现象。
而DSP部采用的是程序空间和数据空间分开的哈佛结构,允许同时取指令(来自程序存储器)和取操作数,而且还允许在程序空间和数据空间之间互相传送数据,即改进的哈佛结构。
(2)多总线结构
许多DSP芯片部都采用多总线结构,这样可以保证在一个机器周期多次访问程序空间和数据空间。
(3)流水线操作
许多DSP芯片部都采用多总线结构,这样可以保证在一个机器周期可以多次访问程序空间和数据空间。
(4)多处理单元
DSP部一般都包括多个处理单元,如算术逻辑单元(ALU),辅助寄存器运算单元(ARAU),累加器(ACC),硬件乘法器(MUL)等。
它们可以在一个指令周期同时进行运算。
(5)特殊的DSP指令
为了更好地满足数字信号处理应用的需求,在DSP的指令系统中,设计了一些特殊的DSP指令。
(6)指令周期短
早期的DSP指令周期约为400ns,采用4μm的NMOS制造工艺,其运算速度为5MIPS。
随着集成电路工艺的发展,DSP广泛采用了亚微米静态CMOS制造工艺,其运行速度越来越快。
(7)运算精度高
早期DSP的字长是8位,后来逐步提高到16位、24位、32位,为防止运算过程中产生溢出,有的DSP的累加器字长是40位。
1.4Protel99SE概述
Protel99SE主要由原理图设计系统、印制电路板设计系统两大部分组成。
(1)原理图设计系统
这是一个易于使用的具有大量元件库的原理图编辑器,主要用于原理图的设计。
它可以为印制电路板设计提供网络表。
该编辑器除了具有强大的原理图编辑功能以外,其分层组织设计功能、设计同步器、丰富的电气设计检验功能及强大而完善的打印输出功能,使用户可以轻松完成所需的设计任务。
(2)印制电路板设计系统
它是一个功能强大的印制电路板设计编辑器,具有非常专业的交互式布线及元件布局的特点,用于印制电路板(PCB)的设计并最终产生PCB文件,直接关系到印制电路板的生产。
Protel99SE的印制电路板设计系统可进行多达32层信号层、16层部电源/接地层的布线设计,交互式的元件布置工具极减少了印制板设计的时间。
同时它还包含一个具有专业水准的PCB信号完整性分析工具、功能强大的打印管理系统、一个先进的PCB三维视图预览工具。
此外Protel99SE还包含一个功能强大的基于SPICE3f5的模/数混合信号仿真器,使设计者可以方便地在设计中对一组混合信号进行仿真分析。
同时,它还提供了一个高效、通用的可编程逻辑器件设计工具。
2系统设计
2.1电路原理图
图2-1A/D转换接口原理图
2.2PCB板
图2-2A/D转换接口PCB板
3硬件设计
3.1电源设计
在TI公司的DSP系列中,C2xx系列采用单一5V电压供电。
C54xx系列DSP一般采用3.3V和1.8V电压供电,其中I/O采用3.3V电压,芯片采用1.8V,核采用低电压供电可以降低整个芯片的工作功耗。
实际常用直流电压一般为5V或者更高,所以必须采用电压转换芯片。
将高电平转换成3.3V和1.8V,供DSP使用。
TI公司提供专门的电压转换芯片,供各个不同型号的DSP使用。
本次课程设计使用的是TPS7348(4.85V)。
图3-1TPS70348的基本连接方法
3.2DSP与TLV1571的硬件连接
TLV1571与C5409的连接如图3-2所示。
使用DSP的地址总线的A0引脚控制TLV1571的片选信号,使用DSP的XF引脚控制TLV1571的读信号。
DSP和TLV1571的数据总线和中断信号直接相连。
图3-2TMS320C5409与TLV1571的连接
3.3其他引脚和测试信号
TMS320C5409最小系统的连接如图3-3
图3-3-1仿真器的连接图3-3-2仿真口的连接
图3-3-3分频器的连接图3-3-4工作方式选择引脚
4软件设计
4.1A/D主程序
*************************************************************************
*AD/DA实验
*将AD采样的数据直接输出到DA,用示波器检查输入信号和输出信号是否一致
*************************************************************************
.mmregs
.defCodeEntry
.defEint1_ISR
.data
Data_DP:
.text
CodeEntry:
STACK_SIZE.set20H
STACK.usect"STACK",STACK_SIZE
STM#STACK+STACK_SIZE,SP
LD#Data_DP,DP;主程序中必须定义DATA_DP
V_IPTR.set0080h;指向0080H,默认是FF80
LDMPMST,A
AND#7FH,A;保留低7位,清掉高位
OR#V_IPTR,A;将新值传到高9位
STLMA,PMST;修改PMST寄存器
;InitializetheAD1571
K_STARTSEL.set1<<7;D70:
HARDWARESTART1:
SOFTWARESTART
K_PROGEOC.set0<<6;D60:
INT1:
EOC
K_CLKSEL.set0<<5;D50:
InternalClock1:
ExternalClock
K_SWPWDN.set0<<4;D40:
Normal1:
PowerDown
K_MODESEL.set0<<3;D30:
SingleChannel1:
SweepMode
K_CR0.set(K_STARTSEL|K_PROGEOC|K_CLKSEL|K_SWPWDN|K_MODESEL)<<5
K_OSCSPD.set0<<6;D60:
INT.OSC.SLOW1:
INT.OSC.FAST
K_OUTCODE.set0<<3;D30:
Binary1:
2sComplement
K_READREG.set0<<2;D20:
EnableSelfTest1:
RegisterReadback
K_STEST.set0;0CONVERSIONresultREADREG=0
;1SELFTEST1result
;2SELFTEST2result
;3SELFTEST3result
;0ContentsofCR0READREG=1
;1ContentsofCR1
K_CR1.set(100H|K_OSCSPD|K_OUTCODE|K_READREG|K_STEST)<<5
DAC_DAT.set2200h
ADC_DAT.set2300h
SSBXINTM;关闭中断
STM#0003H,IMR;使能外部中断1
STM#0FFFFH,IFR;清除未决的中断
RSBXINTM;使能中断
STM#K_CR0,AR0;设置AD1571初始化字
STM#K_CR1,AR1;设置AD1571初始化字
PORTW*(10h),ADC_DAT;初始化AD1571
PORTW*(11h),ADC_DAT;初始化AD1571
LOOP:
NOP
BLOOP
Eint1_ISR:
PSHMAR0;保护AR0
PORTRADC_DAT,*(10h);读取AD采样数据
NOP
NOP
PORTW*(10h),DAC_DAT;将采样数据输出到DA
POPMAR0;恢复AR0
RETE
.end
4.2中断程序
************************************************************************
*Vectors.asm
*完整中断向量表示例
*共有30个中断向量,每个向量占4个字的空间。
*使用向量一般用一条跳转指令转到相应中断服务子程序,其余空位用NOP填充
*未使用的向量直接用RETE返回,是为了防止意外进入未用中断。
************************************************************************
.sect".vectors";开始命名段.vecotrs
.globalCodeEntry;引用程序入口的全局符号定义
.globalEint1_ISR
.align0x80;中断向量表必须对齐128字的页边界
RESET:
BCodeEntry;Reset中断向量,跳转到程序入口
NOP;用NOP填充表中其余空字
NOP;B指令占了两个字,所以要填两个NOP
NMI:
RETE;不可屏蔽中断
NOP
NOP
NOP
SINT17.space4*16;软件中断使用较少,简单起见用0填充
SINT18.space4*16
SINT19.space4*16
SINT20.space4*16
SINT21.space4*16
SINT22.space4*16
SINT23.space4*16
SINT24.space4*16
SINT25.space4*16
SINT26.space4*16
SINT27.space4*16
SINT28.space4*16
SINT29.space4*16
SINT30.space4*16
INT0:
;RETE;外部中断INT0
BEint1_ISR
NOP
NOP
;NOP
INT1:
BEint1_ISR;外部中断INT1
NOP
NOP
INT2:
RETE;外部中断INT2
NOP
NOP
NOP
TINT:
RETE;Timer0中断
NOP
NOP
NOP
BRINT0:
RETE;McBSP#0接收中断
NOP
NOP
NOP
BXINT0:
RETE;McBSP#0发送中断
NOP
NOP
NOP
DMAC0:
RETE;无定义(默认)DMA0中断
NOP
NOP
NOP
TINT1:
RETE;Timer1中断(默认)或DMA1中断.
NOP
NOP
NOP
INT3:
RETE;外部中断3
NOP
NOP
NOP
HPINT:
RETE;HPI中断
NOP
NOP
NOP
BRINT1:
RETE;McBSP#1接收中断(默认)或DMA2中断
NOP
NOP
NOP
BXINT1:
RETE;McBSP#1发送中断(默认)或DMA3中断
NOP
NOP
NOP
DMAC4:
RETE;DMA4中断
NOP
NOP
NOP
DMAC5:
RETE;DMA5中断
NOP
NOP
NOP
.end
4.3CMD程序
-eCodeEntry/*指定程序入口*/
-mmap.map/*生成存储器映射报告文件*/
MEMORY
{PAGE0:
VECT:
org=0080hlen=0080h/*中断向量表*/
PARAM:
org=100hlen=0F00h/*代码区*/
PAGE1:
DARAM:
org=1000hlen=5000h/*数据区*/
}
SECTIONS
{.text:
>PARAMPAGE0/*代码段*/
.vectors:
>VECTPAGE0/*中断向量表*/
STACK:
>DARAMPAGE1/*堆栈*/
.bss:
>DARAMPAGE1/*未命名段*/
.data:
>DARAMPAGE1/*数据段*/
}
5实验结果
程序运行结果如图5-1所示。
图5-1程序运行结果图
总结
在短短的几十年里,随着信息技术革命的深入和计算机技术的飞速发展,数字信号处理技术已逐步发展成为一门主流技术,在数字式程控交换机、数字式移动、多媒体计算机、计算机网络、数字电视等领域取得了极其广泛的应用。
课程设计是培养学生运用综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实际能力的重要环节,是对我们实际工作能力的具体训练和考察过程。
我们一组做的题目是A/D转换接口的设计,对于我们这些实践中的新手来说,这是一次考验。
怎样才能找到课堂所学与实践运用的最佳结合点。
这都是我们要考虑和努力的。
在此次课程设计中,通过老师的精心指导和在网上找的资料,主要掌握了A/D转换接口的设计和运用Protel99SE软件绘制原理图。
在整个团队中,我主要负责原理图的绘制,想要制出既正确又美观的原理图并不是一件简单的事,其中尤其要注意引脚的连接和元器件的分装问题。
在这方面,我同组的同学给了我很多帮助,使我熟悉了利用Protel绘制原理图。
通过此次课程设计,我发现我对元器件的分装掌握的还不是很熟悉。
这次课程设计使我懂得实践的重要性,只有理论知识远远不够,只有把所学的理论知识与实践相结合才能算是掌握了所学的知识。
随着就业形势的日趋严峻,大学生的动手能力、实际能力和综合素质越来越受到学校和用人单位的重视。
并且此次课程设计锻炼了我们的团队合作的能力。
这次课程设计在同学的热心帮助和老师的辛勤指导下终于顺利完成了,在此我表示衷心的感,
参考文献
1勇,甘泉.DSP应用系统设计.:
电子工业,2002
2任建国.DSP开发技术实例与技巧.:
国防工业,2007
3汪安民,明欣,朱明.TMS320C54xxDSP实用技术.:
清华大学,2007
4乔瑞萍,涛,芳娟.TMS320C54xDSP原理及应用.:
电子科技大学,2005