您当前的位置:五五电子网电子知识单元电路接口电路MAX186与DSP的SPI接口及设计 正文
MAX186与DSP的SPI接口及设计

MAX186与DSP的SPI接口及设计

点击数:7230 次   录入时间:03-04 12:00:56   整理:http://www.55dianzi.com   接口电路

摘要:介绍了MAXIM公司的串行模数转换芯片MAX186及TI公司TMS320C6711 DSP的多通道缓冲串口(McBSP)的工作原理。采用McBSP的SPI(Series Protocol Interface)工作模式,将McBSP与MAX186直接相连,从而基于DSP多功能缓冲串口的数据采集及信号处理系统。给出了MIX186与TMS320C6711 McBSP的接口电路及软件编程实现。
关键词:数据采集;MAX186;DSP;多通道缓冲串口(McBSP)

1. 序言
    本文以TI公司的DSP芯片TMS320C6711和串行数据采集芯片MAX186 为例,介绍了基于DSP的McBSP接口的嵌入式数据采集系统的设计方法。
    TMS320C6711是一款32bit浮点信号处理器,核心电压1.8V,工作频率100-150MHz。其多功能串口(Multi-channel Buffered Serial Port,McBSP)不仅可以完成标准串口的全双工串行通信,还具有支持SPI设备、多达128个通道的数据收发能力等功能。将McBSP直接与MAX186的串行数据输出接口相连接,可以为系统提供高性能的数据采集能力。
    MAX186是一个12位8通道单端/4通道差分模拟输入ADC,其最高采样频率可达130kHz,具有高通过率、低功耗、高精度等特性,非常适合于体积小、对功耗要求比较严格的移动应用设备,如便携式工业测量、医疗仪器等。

2.MAX186工作原理
    MAX186的引脚布置、功能及定义分别如图1、图2及表1所示。

表1  MAX186的引脚功能
 

    根据McBSP 对SPI接口的要求,MAX186连接DSP的McBSP必须使用外部时钟模式。在外部时钟模式下,MAX186所转换的12位数据中的最高位(MSB)完成之前的一个时钟时,MAX186的SSTRB端输出一个高电平的脉冲。SSTRB和DOUT的输出均发生在时钟SCLK的下降沿。启动MAX186开始转换,是靠向DIN端写一个字节的控制指令完成的。当CS*为低时,每一个时钟周期都向MAX186的移位寄存器写一位数据。在CS*变为“低”后,最先到达的那个逻辑“1”,就是这个控制字节的最高(MSB),在此之前到达移位寄存器的所有的逻辑“0”都没有意义。控制字节的定义如表2所示。

表2 控制字节的定义


表中:
    START:转换开始位。逻辑“1”有效。
    SEL0-2:通道选择位。选择所需转换信号所连接的通道。.
    UNI/BIP*:单/双极性信号转换模式选择位。1 = 单极性信号,0 = 差分信号。 对于单极性信号,模拟输入中0V - VREF的电压被转换;对于差分信号,-VREF/2 to +VREF/2的信号被转换。
    SGL/DIF*:输入信号形式选择位。“1”为单端信号输入,“0”为差分信号输入。
    PD0~ PD1:时钟模式及省电模式选择位。PD0=1,PD1=1时为外部时钟模式。
    外部时钟模式下,MAX186进行A/D转换的时序如图3所示。


 
图3  MAX186基本转换时序
    需要注意的是,考虑到T/H对输入的模拟信号保持时间的限制,每个转换过程不得超过120&mICro;s。转换完成后的12位数据在移位寄存器中存放时,在数据的首部添加了一位“0”,再尾部添加了三位“0”,如图4所示。


图4  MAX186输出移位寄存器中的数据格式
3.  DSP McBSP
3.1  McBSP的特点

    TMS320C6711 DSP的McBSP的基本功能包括:支持全双工串行通讯;具有双缓冲数据寄存器,允许连续的数据流;收发独立的帧同步和时钟信号;可以与工业标准的编/解码器,模拟接口芯片以及其他串行A/D,D/A接口;支持与IOM-2兼容器件、AC97兼容器件、IIS兼容器件、SPI器件的直接相连;支持多种数据格式:8/12/16/20/24/32bit;支持A律和μ律压扩;可设置帧同步信号和数据时钟信号的极性;内部传输时钟和帧同步信号的可编程程度高;可以设置为通用I/O口。TMS320C6711芯片具有2组多通道缓冲串口:McBSP0和McBSP1。

3.2  McBSP的工作原理
    McBSP口进行串行通信时,使用的外部接口管脚有:DR、DX、CLKX、CLKR、FSX、FSR和CLKS。DR和DX分别用来进行数据的收发。CLKX,FSX为发送的数据时钟和帧同步时钟,CLKR,FSR为接收的数据时钟和帧同步时钟,CLKS提供系统时钟。在收发时钟的控制下,DSP进行数据的接收和发送。McBSP在数据收发上采用了多级缓冲结构,使得片内的数据搬移能够与外部的数据通信同时进行,因此可以采用DMA方式从DRR寄存器读出所接收的数据,或是向DXR寄存器写入需要发送的数据,另外再通过、、、、等8个寄存器,对McBSP的操作模式(如同步时钟参数、帧同步信号及通道选择与使能等)进行设置。
    为使DSP按照一定的方式进行通信,要对McBSP的各个控制寄存器进行相应的配置。其中,SPCR0/SPCR1用于设置工作模式、检测工作状态、进行收发的复位和启动。RCR0 /RCR1,用于控制接收数据的帧格式、数据延迟。XCR0/XCR1用于控制发送数据的帧格式、数据延迟。SRGR 0/SRGR1用于控制收发数据时钟和帧同步时钟的模式(如大小、极性等)。PCR用于控制相应管脚的工作模式。
4.  MAX186与TMS320C6711 McBSP的接口设计
    MAX186符合SPI(Series Protocol Interface)数据通讯协议。SPI是一个4-线(Four-wire)的串行接口协议,包括主/从两种模式。四个接口信号是串行数据输入(MISO,主设备输入,从设备输出),串行数据输出(MOSI,主设备输出,从设备输入),移位时钟(SCK)和从设备使能(SS)。SPI接口的最大特点是靠主设备时钟信号的出现与否来控制主/从设备间的通讯。一旦检测到主设备时钟信号,就开始传输数据,时钟信号无效后,传输结束。在这期间,从设备必须被使能(SS信号保持有效)。
    TMS320C6711芯片的McBSP的数据同步时钟具有停止控制选项,因此可以与SPI协议兼容。McBSP支持2种SPI传输格式,可以在SPCR寄存器的CLKSTP位中设置。
    MAX186与DSP McBSP的数据传输采用SPI从模式进行连接。McBSP作为SPI从设备时的数据传输时序如图3。MAX186与McBSP的接口设计如图5。

 
图5  SPI传输时序
 
                  图6  MAX186与McBSP的接口

    设计中,将MAX186的CS片选信号与DSP的一个I/O口相连,当需要开始一次转换时,由DSP通过I/O口控制MAX186的选通;DSP通过CLKX端向MAX186提供时钟信号,作为ADC的外部时钟;DSP通过DX端口向MAX186的DIN端口发送模/数转换的控制命令;MAX186的数据输出端DOUT与DSP的数据输入DR端口相连,向DSP传送转换后的串行数据。具体的步骤为:
    1) DSP向I/O端口写入一位0,是CS*有效;
    2) DSP向端口DX写出一个字节的控制指令;
    3) 在DSP作为SPI主设备的方式下,它需要向MAX186发出时钟信号来控制MAX186的转换,为此,DSP向端口DX写出16位全为0的二字节数,以获得16个时钟脉冲,然后从DR端口读回一个二字节的数据;
    4) DSP向I/O端口写入一位1,是CS*置高位;
    至此,一次A/D转换、数据传输及读取过程完毕。在这种工作方式下,TMS320C6711为SPI的主设备,MAX186为SPI的从设备。转换完毕后,需要将所读取的数据进行处理,去掉首位的0,和最后三位的0,留下的12位数据就是真实的A/D转换后的数据。

5.  结束语
    本文详细介绍了MAX186ADC与TI公司的高性能浮点数字处理器TMS320C6711之间的串行接口设计及程序设计。该设计方案,电路简洁,程序采用C语言编程,可读性和移植性强,具有较高的实用价值。





本文关键字:接口  接口电路单元电路 - 接口电路