>
首页 » 业界动态 » DSP与串行A/D组成的高速并行数据采集系统 (图)

DSP与串行A/D组成的高速并行数据采集系统 (图)

作者:卢海军 王树勋  时间:2007-04-25 18:08  来源:

引言
---tms320vc5402(以下简称c5402)是德州仪器公司1999年推出的定点数字信号处理器(dsp)。与tms320c54x系列的其他芯片相比,c5402以其独有的高性能、低功耗和低价格受到了人们的广泛青睐。c5402增强外设有软件等待状态发生器、锁相环时钟发生器、6通道直接存储器访问(dma)控制器、增强型8位并行主机接口(hpi)等。两个可编程的多通道缓冲串口(mcbsp)能够全双工、快速地与其他同步串口进行数据交换,硬件连接简单,串口的工作模式和传送数据的格式可通过编程实现。

因为c5402内部没有集成a/d,因此在数据采集时需要使用a/d转换芯片,a/d芯片与c5402的接口设计成为一个重要的问题。a/d转换芯片一般有串行a/d和并行a/d。为了充分利用c5402所提供的多通道缓冲串口资源,简化系统设计,本文系统使用了ti公司的高速串行a/d来同时完成两路数据采集,大大提高了串口工作效率。

串行a/d芯片tlv1572
---tlv1572是高速的十位串行a/d转换芯片,可以通过3或4个串行口线直接与dsp或其他数字微处理器串口相连,不需要外加逻辑,但是转换速度受sclk供给时钟的限制。tlv1572与dsp的多通道缓冲串口相连是通过cs、sclk、do和fs四条线完成的,此时dsp的clkr产生移位脉冲,fsr产生帧同步信号,并分别提供给tlv1572。当t-lv1572与其他串口微处理器相连接时fs必须提供高电平,通过cs、sclk、do三条线来完成数据传输。当cs为高时,a/d芯片各管脚处于三态状态。在cs由高变低时,tlv1572检测fs引脚的状态来确定工作模式,若fs为低则为dsp模式,若fs为高则为其他微处理器模式。



图一 tl1572在dsp模式下的转换时序图



图二 tl1572在微处理器模式下的转换时序图


---当tlv1572工作在dsp模式时,必须保证在cs变低时,fs为低电平,并且要锁存一定时间。cs为低时,do跳出三态状态,但是直到fs为高时芯片才脱离休眠状态。tlv1572在每个时钟sclk的下降沿检测fs的状态,一旦检测到fs为高,tlv1572开始采样。在fs的下降沿,a/d芯片通过移位时钟将数据移到do上。在6个前导0传送之后,dsp可以在时钟的下降沿得到a/d转换的数据,如图1所示。在最低位移出之后,a/d芯片自动进入休眠状态,直到fs下一次有效。如果fs在16位传输完成后立即有效,则a/d开始新的数据转换,此时a/d为连续转换。若fs在tlv1572转换数据的过程中变高,则a/d芯片被复位,开始新的数据转换周期。因此可以通过设置fs,改变数据传输的位数。

当tlv1572工作在非dsp模式下时,fs引脚必须接高电平。在每次转换的过程中都必须提供16个时钟信号,若微处理器无法一次接收16位数据,可以分成8位两次接收,两次接收的时间间隔不能大于100μs,此时cs必须一直处于有效状态。在dsp模式下转换的开始是由fs信号有效来决定的,而在微处理器模式下,数据转换cs有效后的第一个时钟信号上升沿开始的,如图2所示。在微处理器模式下,也可以通过设置cs来改变传送的位数。

c5402的多通道缓冲串口
---c5402提供两个高速、全双工、多通道缓冲串行口mcbsp0、mcbsp1,用数据线d(r/x)、帧同步线fs(r/x)和移位时钟线clk(r/x)实现发送数据和接收数据。mcbsp通过6个引脚(dx、dr、clkx、clkr、fsx和fsr)与外设接口。
(1)clkx(发送时钟输入或输出)
---芯片内部发送以为寄存器(xsr)通过该时钟信号将数据发送到dx引脚。该串口可以通过pcr寄存器的clkxm位配置成使用内部时钟或者使用外部时钟。
(2)fsx(发送帧同步输入或输出)
---fsx是发送开始的标志,串口可以通过pcr寄存器的fxm位配置成输入或输出。
(3)dx(串行数据发送)
---串口数据发送是通过该口进行的。
(4)clkr(接收时钟)
---clkr用来接收外部时钟信号,该时钟信号将dr数据移入接收移位寄存器(rsr)。可以通过pcr寄存器的clkrm位配置成使用内部时钟或者使用外部时钟。
(5)fsr(接收帧同步输入)
---fsr接收帧同步脉冲信号,标志数据接收开始。可以通过pcr寄存器的frm位配置成输入,也可以配置成输出。
(6)dr(串行数据接收)
---串口数据接收是通过该口进行的。接收过程中,数据首先通过移位时钟clkr的作用下移入rsr(接收移位寄存器),然后,rsr中的数据再拷贝到ddr(数据接收寄存器),拷贝完成时,产生rint中断通知cpu来响应或revta中断通知dma响应,同时设置rrdy中断标志位,也可以用查询方式来完成,从数据寄存器中读出数据。clkx、clkr、fsx、fsr即可以由内部采样率发生器产生,也可以由外部设备驱动。mcbsp分别在相应时钟的上升沿和下降沿进行数据检测。每个mcbsp最多可支持128通道的发送和接收,串行字长可选,包括8、12、16、20、24和32位,还支持μ率和a率数据压缩扩展。

系统硬件设计
---在分析了c5402多通道缓冲串口和串行a/d转换器tlv1572工作特点后,可以利用tlv1572工作在dsp模式,使其与c5402进行接口,在同步时钟信号的作用下完成a/d转换的数据传输。图3为整个数据采集系统的硬件原理图,本系统根据c5402的多通道缓冲串口特性,充分利用两个缓冲串口与两片串行a/d tlv1572进行数据传输。

---为了达到与c5402很好匹配,a/d电源和参考电压都接了3.3v。a/d的fs接dsp的fsx和fsr,使数据输入的帧同步信号由dsp产生。sclk接dsp的clkx和clkr,这样数据的输入和输出时钟均来自dsp。c5402与两片a/d进行数据传输时,设置串口中断工作在00模式,即串口数据到达触发中断,这样cpu可以根据哪片a/d传输数据产生相应的串口中断rint0或rint1。当两个串口的数据同时到达,即同时申请中断时,c5402的cpu会根据中断优先级响应rint0中断,然后再响应中断rint1。为了保证数据通信的可靠性,避免数据冲突,在响应rint1中断的过程中,串口0无中断请求。

c5402芯片内配置有4k×16bit片内屏蔽式的rom(f000-ffff)。在4k rom资源里包含了bootloader程序,它允许程序放在外部较慢的存储器或微处理器中,并调到高速的dram存储器中运行,大大减小了c5402内部掩膜的需要,降低了电路设计成本。系统独立工作的内部逻辑由cpld来完成,如图4所示。

---c5402上电复位装载时,由于bootloader程序在初始化时设置xf为高电平,在系统进入并行引导装载模式后,c5402从数据寻址为0ffffh单元(a15=1,选中flash)中读取将要载入的程序存储区首地址,和并行转载数据流。此时,c5402可以将at29lv1024 flash地址08000h~0ffffh单元中的数据读到c5402对应于0000h~7fffh寻址区的片内daram和片外sram is61lv6164中。

-bootloader程序结束后,在这个系统中,用户程序的第一条语句为rsbx xf,即置xf引脚为低电平,flash始终不选通。这样,sram的高32k区域(08000h~0ffffh)被释放出来,可以作为dsp系统运行时的数据区或程序区使用。

系统软件设计
---系统的软件设计主要包括多通道缓冲串口的初始化、串口中断服务程序和并行装载程序设计等。
● 程序设计应注意的问题
(1)mcbsp工作在数据接收中断方式,因此全局中断和串口中断的相应位应该合理设置。同时,在设置中断向量表时,使中断向量表的位置与处理器模式状态寄存器pmst中的中断向量指针iptr相对应,使iptr的9位地址指向128字的中断向量所在的程序页,同时,中断向量表要严格按照c5402规定的格式编写,否则不能正确地产生需要的中断结果。
(2)要实现dsp数据采集系统的脱机独立运行,需要给每台dsp配备独立的程序存储器,在整个系统上电或者复位时,由引导装载程序将存于片外的程序代码装载到片内daram或者系统的扩展存储器中,然后运行程序来完成对mcbsp进行设置和其他程序。
(3)为了实现两路a/d和c5402之间的时序匹配,避免数据冲突,需要注意c5402采样率发生寄存器srgr1中clkgdv位的设置,使c5402工作时钟周期大于两个串口中断的响应时间。


若tlv1572以400ksps转换速率来计算,每片a/d应该是每2.5μs向dsp发送一次数据,申请中断,cpu响应中断来接收数据。dsp工作在100mhz时,时钟周期为10ns,因此每个缓冲串口中断服务程序中可以执行一个少于125个时钟周期的程序而不影响串口的接收,若串口中断程序的时间不够用,还可以适当降低a/d转换速率,为串口中断提供更长的中断服务时间。
● 串口接收的部分初始化程序
---下面根据多通道缓冲串口的特性和两路串行a/d工作的要求,主要介绍一下串口接收的软件设计和串口部分关键设置。
;=====初始化串口0=====
stm #0, spsa0
stm #0000h, spsd0 ; #0000h写入spcr10
stm #1, spsa0
stm #0000h, spsd0 ; #0000h写入spcr20
stm #2, spsa0
stm #0040h, spsd0 ; #0040h写入rcrc10,每字16位
stm #3, spsa0
stm #0040h, spsd0 ; #0040h写入rcr20,每帧一段,每段一字
stm #6, spsa0
stm #000fh, spsd0 ; #0009h写入srgr10,时钟周期clkg=6.4mhz
stm #7, spsa0
stm #300fh, spsd0 ; #3010h写入srgr20,帧周期为16个clkg
stm #0eh,spsa0
stm #0a04h, spsd0 ; #0a04h写入pcr0,fsx, clkx输出,fsr,clkr输入
;=====初始化串口1=====
--- 串口1的初始化程序参见串口0
;=====启动接收=======
stm #0,spsa0
stm #0001h, spsd0 ;启动串口0接收
stm #1,spsa0
stm #00c0h, spsd0 ;内部产生时钟产生fsg
stm #0,spsa1
stm #0001h, spsd1 ;启动串口1接收
stm #1,spsa1
stm #00c0h, spsd1 ;内部产生时钟产生fsg
;==串口0接收中断子程序===
.sect "brint0"
host_brint0:
rsbx intm ;关中断
ldm drr0,a
stl a,*ar4+ ; 接收
……
其他处理程序
rete

结束语
---本文介绍了两片串行a/d与c5402组成的数据采集系统,该系统硬件连接简单,a/d的采样率可以通过串口时钟灵活设置,通用性强。该数据采集系统已经成功应用到实验室的信号处理系统中,显示出设计灵活、高速、可靠等优点。

参考文献
1 李刚. 数字信号微处理器的原理及其开发应用.天津大学出版社.2000.4
2 刘益成. tms320c54x dsp 应用程序设计与开发.北京航空航天大学出版社.2002
3 jan axelson.串行端口大全. 中国电力出版社.2001.5
4 tms320c54x dsp reference set volume 5:enhanced peripherals. texas instrument.1999
5 tlv1572/i data manual. texas instrument. 1998

相关推荐

CEVA凭借90%的市场份额继续领导DSP IP市场

CEVA  DSP  2012-05-30

欧胜推出带有语音处理器DSP的下一代音频中枢

欧胜  DSP  2012-05-07

Tensilica HiFi音频/语音DSP迎来又一里程碑

Tensilica  DSP  2012-04-25

Tensilica授权瑞萨电子ConnX BBE16 DSP IP核

Tensilica  DSP  2012-04-18

Tensilica HiFi音频DSP支持杜比数字+功能

Tensilica  DSP  2012-02-28

CEVA和Idea! 电子系统合作

CEVA  DSP  ISDB-T  2011-12-19
在线研讨会
焦点