基于DSP的AD转换接口设计Word文档格式.docx
《基于DSP的AD转换接口设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于DSP的AD转换接口设计Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
1概述
DSP芯片的介绍
DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。
DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速地实现各种数字信号处理算法。
根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:
1在一个指令周期内可完成一次乘法和一次加法。
程序和数据空间分开,可以同时访问指令和数据。
2片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。
3具有低开销或无开销循环及跳转的硬件支持。
4快速的中断处理和硬件I/O支持。
5具有在单周期内操作的多个硬件地址产生器。
6可以并行执行多个操作。
7支持流水线操作,使取指、译码和执行等操作可以重叠执行。
DSP芯片的发展
世界上第一个单片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系统的成本、体积、重量和功耗都有很大程度的下降。
DSP芯片的特点
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位。
Protel99SE概述
Protel99SE主要由原理图设计系统、印制电路板设计系统两大部分组成。
(1)原理图设计系统
这是一个易于使用的具有大量元件库的原理图编辑器,主要用于原理图的设计。
它可以为印制电路板设计提供网络表。
该编辑器除了具有强大的原理图编辑功能以外,其分层组织设计功能、设计同步器、丰富的电气设计检验功能及强大而完善的打印输出功能,使用户可以轻松完成所需的设计任务。
(2)印制电路板设计系统
它是一个功能强大的印制电路板设计编辑器,具有非常专业的交互式布线及元件布局的特点,用于印制电路板(PCB)的设计并最终产生PCB文件,直接关系到印制电路板的生产。
Protel99SE的印制电路板设计系统可进行多达32层信号层、16层内部电源/接地层的布线设计,交互式的元件布置工具极大地减少了印制板设计的时间。
同时它还包含一个具有专业水准的PCB信号完整性分析工具、功能强大的打印管理系统、一个先进的PCB三维视图预览工具。
此外Protel99SE还包含一个功能强大的基于SPICE3f5的模/数混合信号仿真器,使设计者可以方便地在设计中对一组混合信号进行仿真分析。
同时,它还提供了一个高效、通用的可编程逻辑器件设计工具。
2系统设计
电路原理图
图2-1A/D转换接口原理图
PCB板
图2-2A/D转换接口PCB板
3硬件设计
电源设计
在TI公司的DSP系列中,C2xx系列采用单一5V电压供电。
C54xx系列DSP一般采用和电压供电,其中I/O采用电压,芯片采用,内核采用低电压供电可以降低整个芯片的工作功耗。
实际常用直流电压一般为5V或者更高,所以必须采用电压转换芯片。
将高电平转换成和,供DSP使用。
TI公司提供专门的电压转换芯片,供各个不同型号的DSP使用。
本次课程设计使用的是TPS7348()。
图3-1TPS70348的基本连接方法
DSP与TLV1571的硬件连接
TLV1571与C5409的连接如图3-2所示。
使用DSP的地址总线的A0引脚控制TLV1571的片选信号,使用DSP的XF引脚控制TLV1571的读信号。
DSP和TLV1571的数据总线和中断信号直接相连。
图3-2TMS320C5409与TLV1571的连接
其他引脚和测试信号
TMS320C5409最小系统的连接如图3-3
图3-3-1仿真器的连接图3-3-2仿真口的连接
图3-3-3分频器的连接图3-3-4工作方式选择引脚
4软件设计
A/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<
1:
INT.OSC.FAST
K_OUTCODE.set0<
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#0003