基于DSP与MAX147的多路数据采集系统设计
扫描二维码
随时随地手机看文章
A Multiple Channel data acquisition System based DSP And Max147
Abstract: This thesis design a multiple channel data acquisition system based on DSP and MAX147.The MAX147’s timing and TMS320VC5402’s McBSP were introduced also the circuit of SPI interface was given. The program of SPI interface was given in detail. The channel data acquisition system was implemented.
Key words: DSP;MAX147;SPI;McBSP
摘要:本文设计了一种基于DSP与MAX147的多路数据采集系统详细地介绍了多路数据采集A/D芯片MAX147工作时序和TMS320VC5402的McBSP工作原理,并给出了McBSP以SPI接口方式与MAX147接口电路,编写了TMS320VC5402的McBSP与MAX147的SPI接口程序,实现了多路数据采集系统设计
关键词:数字信号处理器;MAX147;串行外围设备接口;多通道缓冲串口
1. 引言
由于DSP芯片具有先进的并行结构,使其在信号处理和数据采集领域得到了越来越广泛的应用TI公司的DSP芯片TMS320VC5402PGE100最高工作频率是100MHZ具有2个高速、全双工、多通道缓冲串行接口(McBSP) 其方便的数据流控制可使其与大多数同步串行外围设备接口MAXIM公司的A/D芯片MAX147具有较高的性能价格比,最高的转换频率可达130kHz,具有高采样率、低功耗、高精度等特性,非常适合于体积小、对功耗要求比较严格的移动应用设备,如便携式工业测量、医疗仪器等
2. MAX147工作原理
2.1 MAX147介绍
MAX147是一种具有8个单端输入通道或4个差动输入通道的12位精度的串行数据转换器输入电压范围:0~2.5V(或-1.25V~+1.25V),可软件配置单/双极输入采样频率可达133kHz采用单电源供电,工作电压范围+2.7~+5.25V它的功耗低:在3V/133kps时其电源电流为1.2mA在3V/133kps时其电源电流为54μA,而在掉电模式时仅为1μA它的通信接口与SPI/QSPI/Microwire/TMS320兼容
2.2 MAX147工作时序
MAX147要启动一次转换,就需要向DIN送入一个8位控制字当片选信号CS为低时,控制字的每一位在SCLK的上升沿送入MAX147内部寄存器当CS拉低时,第一个到达的逻辑“1”表示控制字的第最高位当MAX147工作在SPI模式且选择外部时钟时,保证CPU串行口工作在主机模式下,CPU产生适当的时钟频率(100KHz—2MHz)读取一个MAX147的A/D转换值的时序如图1所示,
500)this.style.width=500;" border=0>
MAX147的控制字由八位组成,各位的功能见表1所示
bit7控制字节起始位,“1”有效,在此之间有,DIN上的“0”位均无效
bit6~bit4通道选择位,设置采样输入脚
bit3单极/双极选择位,bit3=1时,为单极转换模式,采样信号输入电压范围0~VREF;bit3=0时,双极转换模式,输入电压-VREF/2~+VREF/2
bit2单端/差动选择位,bit2=1时,输入电压CMOS端作比较,bit2=0时,输入电压为所测两电压之差
bit1 bit0bit1=0、bit0=0时,为全掉电模式,bit1=0、bit0=1时,速掉电模式(仅适合于MAX146),bit1=1、bit0=0时,为内部时钟模式,bit1=1、bit0=1为外部时钟模式
500)this.style.width=500;" border=0>
MAX147具体软件步骤如下:
(1)送控制命令字:1XXX1111输入信号为单极性且单端输入,选择外部始终模式,XXX为通道选择
(2)CPU将片选信号CS拉低
(3)发送控制字,同时接收一个字节,但将接收的字节忽略
(4)发送0x00,同时接收第二个字节
(5)发送0x00,同时接收第三个字节
(6)CPU将CS拉高
第二和第三个接收字节包含了MAX147的转换结果为避免T/H的过多衰减,应保证其全部转换时间不超过120μs[!--empirenews.page--]
3. TMS320VC5402的McBSP
3.1 McBSP的特点
TMS320VC5402有两个多通道缓冲串口(MCBSP0和MCBSP1),通过帧信号来控制数据流独立的接收、发送帧和时钟信号;双倍的发送缓冲和三倍的接收缓冲数据存储器;可直接与工业标准的编码器、模拟界面芯片、其它串行A/D、D/A器件连接;具有外部移位时钟 发生器及内部频率可编程移位时钟;可直接利用多种串行协议接口通信,如SPI、T1/E1,MVIP,AC97等;发送和接收通道数最多可以到达128路;宽范围的数据格式选择,包括8、12、16、20、24、32位字长;利用μ律和A律的压缩扩展通信;8位数据发送的高位、低位先发送可选;帧同步和时钟信号的极性可编程;可编程内部时钟和帧同步信号发生器
3.2 MCBSP的工作方式
McBSP的工作方式有以下几种:多通道缓冲模式、SPI工作模式,A-bit模式、数字回路模式、GPIO模式和省电模式McBSP的外部管脚为:串行数据接收管脚DR、接收时钟管脚CLKR、接收帧同步信号管脚FSR、发送时钟管脚CLKX、串行数据发送管脚DX、发送帧同步信号管脚FSXMCBSP的工作原理是:发送时,先写数据于数据发送寄存器DXR[1,2],再在发送时钟CLKX和帧同步发送信号FSX控制下,通过发送移位寄存器XSR[12]将数据经发送引脚DX移出发送;接收数据时,在接收时钟CLKR和帧同步发送信号FSR控制下,将通过接受引脚DR接收的数据移入接收移位寄存器RSR[12]并复制这些数据到接收缓冲寄存器RBR[12]再复制到DRR[12]最后由CPU或DMA控制器读出这个过程允许内部和外部数据通信同时进行如果接收或发送字长R/XWDLEN被指定为8,12或16模式时,DRR2、RBR2、RSR2、DXR2、XSR2等寄存器不能进行写、读、移位操作
4. MAX147与TMS320VC5402的接口电路
MAX147芯片兼容SPI数据通信协议SPI协议具有主从模式,使用4 条信号线:1) 串行时钟信号线(SCK) ;2) 主机输入/ 从机输出串口数据线(MISO) ;3) 主机输出/ 从机输入串口数据线(MOSI) ;4) 低电平有效的使能信号线(SS) TMS320C54XX提供的时钟停止模式可用于SPI 协议通信当McBSP 被配置为时钟停止模式时发送器和接收器在内部是同步的因此可以将McBSP 作为SPI 主设备或从设备当设置McBSP为SPI 主设备时发送端输出信号(BDX) 就作为SPI 协议中MOSI 信号接收端输入信号(BDR) 则被用作MISO 信号发送数据帧同步脉冲信号(BFSX) 用作设备片选信号(即SS) 而发送数据位时钟信号(BCLKX) 用作SPI 协议中SCK由于收数据位时钟(BCLKR) 和接收数据帧时钟(BFSR) 在内部与BFSX 和BCLKX是相连的因此这些信号不用于SPI 模式TMS320VC5402与MAX147接口电路如图
500)this.style.width=500;" border=0>
5. 接口程序设计
DSP的McBSP工作在SPI模式下,需要进行以下初始化步骤:
1)将SPCR寄存器中的XRST和RRST清零,复位发送器和接收器;
2)McBSP保持复位状态,设置相关寄存器,CLKSTP=0X,禁止时钟停止模式;
3)置SPCR寄存器中的GRST=1,采用率发生器退出复位,开始工作;
4)等待两个时钟周期,确保初始化过程中McBSP内部正确同步;
5)设置所需的CLKSTP值;
6)若CPU访问McBSP,则XRST=RRST=1使能发送器和接收器,SPCR寄存器中其它位不变,若DMAC访问McBSP,先进行DMA初始化,启动DMA,使之等待同步事件,然后XRST=RRST=1McBSP退出复位状态;[!--empirenews.page--]
7)等待两个时钟周期以确保McBSP内部逻辑稳定
将McBSP配置成SPI模式主机模式的程序如下所示:
STM SPCR1 SPSA0
STM 0000H SPSD0 ; 串行接口接收器被禁止并且处于复位状态
STM SPCR2 SPSA0
STM 0000HSPSD0 ; 串行发送接收器被禁止并且处于复位状态
STM RCR1 SPSA0
STM 0020HSPSD0 ;接收帧长度为12bit
STM RCR2 SPSA0
STM 0021HSPSD0 ;第一个接收帧同步脉冲之后的帧同步脉冲被忽略
STM XCR1 SPSA0
STM 0000HSPSD0 ;发送帧长度为8bit
STM XCR2 SPSA0
STM 0001HSPSD0 ;第一个发送帧同步脉冲之后的帧同步脉冲被忽略
STM SRGR1 SPSA0
STM 0009H SPSD0 ; CLKGDV=9CLKG=1MHz
STM SRGR2 SPSA0
STM 20FFHSPSD0 ;采样率发生器时钟由CPU时钟提供
STM PCR SPSA0
STM 0A7FHSPSD0 ; FSXCLKX输出FSRCLKR输入
STM SPCR1 SPSA1
STM 1801hSPSD1 ;使McBSP处于时钟停止模式并使能接收器
STM SPCR2 SPSA1
ORM #00C1HSPSD1 ;使能发送器,帧同步发生器,采用率产生器
RPT #2
NOP
中断服务程序:
AD_RECV: SSBX SXM
AND #0FFFCHa ;存储A/D转换的数据
RSBX SXM
RETE
结束语
本文详细介绍了ADC芯片MAX147与TI公司的数字处理器TMS320C5402之间的串行接口电路设计及程序设计实现了多路数据采集系统该系统设计方案,接口电路简单方便,程序采用汇编语言编程,运行稳定,速度快,适用于语音处理,声波振动信号采集,具有较高的实用价值及广泛的应用前景