基于McBSP的高速串行数据采集系统设计

发布者:advancement3最新更新时间:2012-06-01 来源: 微计算机信息 关键字:AD974  DSP  多通道缓冲 手机看文章 扫描二维码
随时随地手机看文章

1. 序言

本文介绍了基于TI公司的新一代DSP芯片TMS320C6711和AD公司的串行模数转换芯片AD974的嵌入式数据采集系统的设计方法。

TMS320C6711是32bit浮点信号处理器,核心电压1.8V,工作频率100-150MHz,2级Cache,运算速度 900MFLOPS。其多通道缓冲串口(Multi-channel Buffered Serial Port,McBSP)可直接与AD974进行串口连接,为系统提供高性能的A/D转换和数据处理能力。

AD974是美国模拟器件公司生产的一个200kSPS、4通道、16位数据采集系统。具有高通过率、低功耗、高精度等特性,此外,该器件还集成了外围器件,并采用串行通讯方式,因而可极大地简化数据采集电路的设计,非常适合于体积小、信号复杂的应用系统,如工业控制、医疗仪器等。

2.  AD974芯片的特点及工作原理

2.1  AD974芯片的特点

AD974是一个四通道、16位串行通讯数据采集模数转换器。该器件内含模拟输入多路转换器、高速16位采样模数转换器和+2.5V参考电压。从应用角度看,AD974具有如下特点:

(1)支持复杂的信号采集系统。具有四个单端的模拟输入通道,能提供多种可设置的模拟输入范围,包括0V~4V、0V~5V或-10V~+10V;
   (2)采用串行接口。与大多数微处理器的串行接口兼容,具有数据传送效率高、数据连线少的特点;
   (3)可简化电路的设计,AD974由单电源+5V供电,并且只需较少的外围电路。为了达到简化电路设计的目的,AD974内部还集成了模拟输入多路转换器、高速逐次逼近开关电容ADC、时钟电路和内部2.5V参考电压电路等(参考电压也可以由外部参考电路供应);

(4)高通过率、低功耗。AD974可提供200kSPS的高通过率,而功率耗散最大却只有120mW,因此其转换速率可以高达2kSPS/mW。此外,在掉电模式下,AD974的功耗仅为50μW(典型值)。[page]

2.2  AD974工作原理

1. 主要引脚定义(表1)

1  AD974的引脚功能

引脚号

引脚号

功 能 说 明

2-5,25-28

VXA,VXB

模拟输入范围选择端。

6

BIP

双极性偏移量。连接VXA输入以提供双极性的输入范围

7

CAP

参考缓冲输出。

8

REF

参考输入/输出端。

10

R/C

读取/转换输入端。用于控制转换和读模式。

12

PWRD

掉电模式输入端。

13

EXT/INT

数字时钟选择输入端,决定采用内部时钟还是外部时钟。

15

SYNC

数字输出帧同步端。只有在使用外部时钟时它才起作用。

16

DATACLK

串行数字时钟输入或输出端。

17

DATA

与DATACLK同步的串行数字输出端。

18,19

WR1,WR2

多路转换器写输入端。

20

CS

片选输入端

21

BUSY

忙状态信号输出端。

2. 工作原理

AD974的模数转换由R/C、CS两信号来控制。在R/C降为低电平时,若CS也为低电平,在至少经过50ns后,输入信号将被保留在内部的电容阵列上并准备开始转换。一旦转换开始,BUSY信号将变为低电平直到转换完毕。在内部,信号R/C和CS需进行或操作,但是对哪一个信号先变为低电平做为开始转换的标志并没有严格要求。唯一的要求是这两个信号变为低电平的时间延迟不得少于10ns。转换完毕后,BUSY信号返回高电平,另一方面,AD974准备下一次转换以确保能继续跟踪输入信号。在某些情况下,将CS引脚保持低电平,而将R/C用于决定是开始转换还是读取数据。需要指出的是,在AD974上电后进行首次转换时,其DATA输出将是不确定的,转换输出需要经过一定时间之后才能稳定下来。模数转换可以使用由AD974的内部时钟,也可以使用外部时钟,这并不影响转换结果的连续性。如果EXT/INT为低电平,则AD974被设置为内部数据移位时钟模式;相反,如果EXT /INT为高电平,则AD974被设置为外部数据移位时钟模式。

3.  DSP McBSP

3.1  McBSP的工作原理

    McBSP口进行串行通信时,使用的外部接口管脚有:DR,DX,CLKX,CLKR,FSX,FSR,CLKS。DR和DX分别用来进行数据的收发。 CLKX,CLKR,FSX,FSR,CLKS为数据传输提供可靠的时钟。CLKX,FSX为发送的数据时钟和帧同步时钟,CLKR,FSR为接收的数据时钟和帧同步时钟,CLKS提供系统时钟。在收发时钟的控制下,DSP进行数据的接收和发送。为使DSP按照一定的方式进行通信,要对McBSP的各个控制寄存器进行相应的配置。其中,SPCR0/SPCR1用于设置工作模式、检测工作状态、进行收发的复位和启动。RCR0 /RCR1,用于控制接收数据的帧格式、数据延迟。XCR0/XCR1用于控制发送数据的帧格式、数据延迟。SRGR 0/SRGR1用于控制收发数据时钟和帧同步时钟的模式,如大小、极性等。PCR用于控制相应管脚的工作模式。

4.  AD974TMS320C6711 McBSP的接口设计

AD974符合SPI(Series Protocol Interface)数据通讯协议。SPI是一个4根信号线的串行接口协议,包括主/从两种模式。四个接口信号是串行数据输入(MISO,主设备输入,从设备输出),串行数据输出(MOSI,主设备输出,从设备输入),移位时钟(SCK)和从设备使能(SS)。SPI接口的最大特点是由主设备时钟信号的出现与否界定主/从设备间的通讯。一旦检测到主设备时钟信号,就开始传输数据,时钟信号无效后,传输结束。在这期间,从设备必须被使能(SS信号保持有效)。

TMS320C6711芯片的McBSP的数据同步时钟具有停止控制选项,因此可以与SPI协议兼容。McBSP支持2种SPI传输格式,可以在SPCR寄存器的CLKSTP位中设置。

本设计中,我们采用了AD974的内部时钟模式,其时序图如图3。

                     图3  AD974内部时钟模式时序图

AD974与McBSP的数据传输采用SPI从模式进行连接,其接口设计如图4。

                  4  AD974McBSP的接口

设计中,我们将AD974的CS片选信号固接为低电平,使芯片一直处于选通状态。R/C读/转信号由地址译码器Decoder的/CS1信号(地址 0xB0000000)提供。忙状态信号端BUSY连接FSX0,串行数字时钟端口DATACLK连接CLKX0,数据输入端口DATA连接DR0。多路转换器写输入端WR1和WR2,通道选择端A0,A1分别与DSP的McBSP1端口的引脚FSX1,CLKR1,FSR1相连。该模块的具体工作时序如下:

(1)       数据采集开始前,/CS1没有选通,为高电平,AD974处于写输入状态,通过设置FSX1为低电平,CLKR1和FSR1为所需要的电平可以进行通道选择。

(2)       数据采集开始时,Decoder选通/CS1信号,设置为低电平。AD974首先锁存先前选择的通道号,然后开始进行数据采集和转换,此时忙状态信号BUSY由高电平变为低电平。

(3)       由于BUSY信号与FSX0相连,McBSP0作为从设备被使能,等待数据传输。

(4)       经过一定的时间,AD974串行数字时钟有效,并开始进行数据传输。McBSP0一旦检测到时钟信号,就开始接收AD974传输的数据,时钟信号无效后,传输结束。

(5)       数据传输完成后,AD974的BUSY信号由低电平变为高电平,从设备无效。[page]

5.  软件设计

本设计中,AD974一般的工作步骤包括:采集通道选择,芯片工作触发,数据读取。他们分别涉及到DSP的多组控制寄存器。

(1)通道选择:需要配置McBSP1通道为GPIO模式(设置PCR,SPCR寄存器相应的控制位),控制FSX1引脚输出低有效使能信号,然后控制FSR1,CLKR1引脚输出相应的通道选择代码。

(2)芯片工作触发:向0xB0000000写入一个数据,目的在于选通R/C(读/转信号),触发AD974芯片开始数据转换。

(3)数据读取:配置McBSP0通道的各个寄存器,使其满足SPI数据传输的从模式,然后McBSP0通道会按照程序要求接收数据并放置在DRR寄存器中。

下面给出部分程序设计:

/***  配置McBSP0端口为SPI工作模式   ***/

*(unsigned volatile int *)McBSP0_SPCR = 0x0000;

*(unsigned volatile int *)McBSP0_SRGR= 0x20000000;

*(unsigned volatile int *)McBSP0_RCR = 0x40040; /*  16bit数据接收  */

*(unsigned volatile int *)McBSP0_XCR = 0x40040; /*  16bit 数据发送  */

*(unsigned volatile int *)McBSP0_SPCR = 0x400000;

*(unsigned volatile int *)McBSP0_SPCR = 0x401800;

*(unsigned volatile int *)McBSP0_PCR = 0x50C;

*(unsigned volatile int *)McBSP0_SPCR = 0x411801;

/***  配置EMIF端口  ***/

*(unsigned volatile int *)EMIF_GCR = 0x3308;/* EMIF global control   */

*(unsigned volatile int *)EMIF_CE3 = 0x105fff23; /* EMIF CE3 control  */

/***  选通AD974采样  ***/

*(unsigned volatile int *)0xB0000000 = 0x1;

/***  读取采样数据  ***/

temp = *(unsigned volatile int *)McBSP0_SPCR & 0x2;

while ( temp == 0)

  {

    temp = *(unsigned volatile int *)McBSP0_SPCR & 0x2;

  }

temp = *(unsigned volatile int *)McBSP0_DRR;

6.  结束语

本文详细介绍了ADI公司的高速,高精度A/D芯片AD974和TI公司的高性能浮点数字处理器TMS320C6711之间的串行接口设计及程序设计。该设计方案,电路简洁,程序采用C语言编程,可读性和移植性强。本设计的创新点在于:该方案通过采用SPI通讯协议,结合TMS320C6711芯片的EDMA数据传输中断,可以实现自主采样和数据传输而无需占用DSP的CPU资源,能够大大提高系统效率,经过验证系统能够稳定的工作在最大采样率(200kSPS)条件下。线SOC开发平台499元 S3C44B0 ARM7开发板378元 S3C2410 ARM9开发板780元 AT91SAM7S64 ARM7 单片机开发板之王——ELITE-I单片机学习开发系统1200元 S3C2410 ARM9开发板(II) 950元 EPM1270T144C CPLD开发板 480元
参 考 文 献

[1]  TMS320C6000 Peripherals Refence Guide (Literature Number: SPRU190D). Texas Instruments Inc. February 2001.

[2]  4-Channel, 16-Bit, 200 kSPS Data Acquisition System(Ad974 Datasheet). Analog Devices Inc. 1999

[3]  李方慧,王飞等. TMS320C6000系列DSPs原理与应用. 北京:电子工业出版社,2002.

[4]李琛,张春熹. 《McBSP多通道串行口在光纤陀螺中的实现》. 微计算机信息,2005年第9-2期,89-91页

关键字:AD974  DSP  多通道缓冲 引用地址:基于McBSP的高速串行数据采集系统设计

上一篇:单片机大容量FLASHRAM的扩展
下一篇:对利用打印口读写存储器24cxx的质疑

推荐阅读最新更新时间:2024-03-16 13:00

采用DSP的电源控制系统的软硬件开发
1 引言 随着现代电力电子技术的不断进步和信息技术的发展,逆变电源越来越广泛的应用于通讯、航海、航空、医疗、军事等诸多领域,同时用户对逆变电源的性能也有了越来越高的要求。作为逆变电源的核心,逆变器的控制系统对提高电源性能起着极其关键的作用。逆变电源的控制器经历了从模拟控制器到数字控制器的发展, 数字控制器与模拟控制器相比较,具有控制精度高、参数调整方便、更改控制策略灵活等优点。尤其随着控制专用DSP的出现,使得逆变电源的控制技术朝着全数字化、智能化及网络化的方向发展。本文选用TI公司新推出的数字信号处理器TMS320F2812作为电源的主控制器,设计了一种结构简单、扩展方便的控制系统,实现了逆变电源的精准控制。 2 系统
[电源管理]
采用<font color='red'>DSP</font>的电源控制系统的软硬件开发
DSP编程技巧之20---理解函数的调用过程
  在我们使用 C/C++ 对 DSP 进行编程的时候,函数无疑是功能模块划分的重要组成部分,这些函数之间则通过显式地调用或者中断等方式来共同工作。除了对特定的RTS库中的函数(例如某些数学函数)的调用按照它们内置规则进行分配外,我们自定义的函数之间的调用则需要遵循一定的规则,了解这一过程对理解程序的执行和调试也是十分有帮助的,下面我们就来解读一下函数的调用过程,并且可以从其中了解到CPU 寄存器 、FPU 寄存器 以及栈(stack)在这一过程中的作用。   一.父函数调用子函数   在父函数调用子函数(被调函数)时,通常会执行以下的步骤:   1.如果 寄存器 不是SOE类型的(入口保存,save o
[嵌入式]
德州仪器新款DSP内含三颗1GHz处理器
德州仪器(TI)推出一款可降低成本及功耗,并节省电路板面积的全新高效能多核心数字讯号处理器(DSP)──TMS320C6474,它在单芯片上整合了三颗1GHz TMS320C64x+核心,可协助设计人员将多个DSP整合于单一电路板,以满足高效能执行需求,如同时执行多通道处理或同时执行多个软件应用等。 由于整合了三颗1GHz核心,TMS320C6474可提供3GHz的原始DSP效能,并较分离式处理解决方案节省1/3功耗,而DSP成本也可降低2/3。C6474可为目前采用DSP的客户提供重要的系统整合,充分满足通讯基础设备、医疗影像、军事通讯以及工业视觉检验终端设备与相关市场的需求。 C6474的处理能力为24,
[嵌入式]
基于DSP芯片+GPS+GSM组成的汽车定位防盗功能系统
随着人们生活水平的提高,汽车已逐步进入家庭,对汽车防盗的要求越来越高。尽管市场上的汽车防盗器正逐步改善,但这些防盗器主要采用呼叫报警、高压电击等, 伴随科学技术的发展,汽车偷盗技术也越来越高,使人防不胜防。汽车防盗无论是对汽车 制造商还是社会保险业都具有极其重要的研究价值,针对目前世界范围内汽车盗窃案的上升趋势,各汽车厂家都在不断地改进防盗技术,尤其是随着微电子技术的进步,汽车防盗技术 已向着自动化、智能化方向发展。 从上世纪末美国正式建成GPS系统并投入使用以来,GPS技术已深入到人类经济发展的各个领域。GPS市场目前已有相当规模,尤以车辆定位导航领域的市场份额最大,增长最快。最近的统计表明,2000年安装了GPS接收机的车
[汽车电子]
一种基于CPLD的DSP人机接口模块设计
在超高速领域和实时测控方面有非常广泛的应用,日前的 CPLD 普遍基于E2PROM和Flash电可擦除技术,可实现100次以上擦写循环。 CPLD 选择及其扩展模块的设计 由于A是3.3v电平供电的,所以CPLD我们也选择3.3v电平供电的XL型号。XC95144XL是Xilinx公司 XC9500系列的一种。它的性能指标为;IO口可配置为3.3v或5v操作。所有输出都提供24mA驱动能力;XC295144XL有100个宏单元、 3200个可用门和144个寄存器;实现在系统编程,所有器件都支持IEEE1149(JTAG)边界扫描,最小编程/擦除周期为10000次。 其中, DSP (Digital Signal Processo
[嵌入式]
一种基于CPLD的<font color='red'>DSP</font>人机接口模块设计
atmega8535 Ad转换的c程序
atmega8535 Ad转换的c程序 #include io8535v.h #define uchar unsigned char #define uint unsigned int uchar Table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar Data ={0,0,0,0}; void DelayMs(uint i) //0.25ms {uchar j; for(;i!=0;i--) {for(j=250;j!=0;j--) {;}} } void Display(uchar *p) //间隔5ms显示 {uchar i,sel=0x
[单片机]
TI 率先推出业界首款符合DTS-HD主体音频标准的DSP实施方案
TI DA7xx 音频 DSP 为高清 DVD 与蓝光光碟带来更丰富的音质 2007 年 11月 9 日,北京讯 德州仪器 (TI) 始终致力于发展实现最高性能音质的创新技术,日前,公司宣布其音频DSP 成为率先通过 192 kHz DTS-HD 主体音频 (DTS-HD master audio) 标准认证的嵌入式实施方案,从而能够为家庭影院系统带来无与伦比的音质。基于 TI 获奖的 DA7xx 系列 DSP 技术的音频/视频接收机 (AVR) 能全面支持 8 通道 192 kHz 无损音频,为消费者带来极具震撼力的理想家庭影院体验。该技术实现了完美无缺的逐位对应 (bit-for-bit) 原始音源再现,使家庭影院系统能够
[新品]
基于DSP和CPLD的低功耗多路数据处理系统
引言   随着电子技术的应用和发展,数字信号处理内容日益复杂,同时,很多情况下要求整个系统具有低功耗的特点。为满足这种要求,DSP芯片设计技术也在向低功耗、高性能的方向发展。从处理速度来看,TMS320VC5502的运算能力已经达到了600MMACS,即每秒钟可以完成6亿次乘加运算。从功耗来看,TMS320VC5502内核电压只有1.26V,整个芯片的功耗也大大降低了。本文介绍了基于TMS320VC5502和CPLD XC95144的低功耗多路数据处理系统。   模拟信号的输入经过50Hz陷波电路(滤除工频干扰)和信号预选频电路。经过预处理的模拟信号作为ADC的模拟输入进行A/D变换,最后由DSP实现对数字信号的滤波处理。将CP
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved