本文的目的是设计一个生物信号传感器的控制系统。在一些信号采集回路中,某些传感器的最佳工作电压随着环境的变化而变化,这就要求系统在正式采集有效信号前将传感器调到最佳工作电压。这时系统不仅要求高速的数字信号处理能力,而且要求对前端多路传感器的适时控制,于是选择由C5416和5633所组成的生物信号采集控制系统。以下重点分析SPI口的配置以及DSP通过SPI对进行数据传输的代码实现。
2 芯片介绍
C5416属于TI公司TMS320C54X系列DSP芯片,是一种低功耗、高性能的定点DSP芯片。它的主要特点有:运算速度快,可达160 MIPS。优化的CPU结构:内部有1个40位的算术逻辑单元(ALU)、2个40位的累加器、2个40位的加法器、1个乘法器和1个40位的桶型移位器、有4条内部总线和2个地址发生器。多总线结构:包括3条独立的16位数据总线和1条23位的地址总线。低功耗方式:TMS320C5416DSP可以在3.3 V,1.6 V的低电压下工作,3种低功耗方式(IDLE1,IDLE2和IDLE3)可以节省DSP功耗。智能外设:包括软件可编程等待状态寄存器、可编程PLL时钟发生器、1个16位的计数器、6个DMA控制器、3个多通道缓冲串行口(McBSP0-2)和与外部处理器通信的HPI(Host Post Interface)接口。
美国MAXIM公司生产的一种32通道高精度采样保持D/A转换器。它内含1个16位DAC、1个带内部时钟的时序控制器、1个片内RAM以及32路采样保持放大器。其中DAC电路由2部分组成。在16位DAC中,高4位可通过15个同值电阻组成的权电阻网络完成相应的转换,其余位的转换则由1个12位R-2R梯形网络来完成。其32路带缓冲的采样保持电路通过内部保持电容来使输出压降维持在每秒1 mV的范围内,且不需要配置外部增益和偏置电路。能提供最大200μV的分辨率和0.015%FSR的高精度转换,其输出电压范围为-4.5~9.2 V。其理论输出电压由参考电压、增益以及输入的编码共同决定:
其中:code是5633输入的16位二进制代码;VREF是MAX 5633的输入参考电压;VGS是地的敏感输入电压,通常直接接地。具有工作温度范围宽以及串行接口灵活等特点,适用于处理大量模拟数据输出的场合。
3 系统工作模式
MAX 5633的转换过程是先从串行数据端DIN送进要转换的16位数据D15~D0(高位在前,低位在后),然后送进5位地址A4~A0(用这5位地址编码来选择输出的通道号)。地址的后2位是控制字C1和C0,其中C1为1是立即更新模式,为0则为触发模式;C0为1表示选择外部时钟序列,为0则选择内部时钟序列。C1,C0之后应补1位0。当片选CS变低后,系统将在每一个时钟的上升沿送进一位数据。送完最后一位数据(即第24个数据后)后片选CS变高。而当CS为高电平时,任何输入数据都无效。
MAX 5633有3种工作方式分别为顺序模模式、立即更新模式和碎发模式。其中顺序模式为默认工作模式。通过设定C1=1将MAX 5633配置成立即更新模式。立即更新模式用于更新单个SRAM的内容,同时更新相应的采样保持放大器输出。在这种模式下,所选择的通道输出会在顺序操作恢复前更新。用户可以通过设置IMMED或使C1为高电平选择立即更新模式。当片选CS为低电平时,原访问顺序被打断。输入字被存储在对应于被选择通道的SRAM中。此时DAC转换和相应的采样保持对输入串口完全透明。相应的输出通道将得到立即更新。更新后,时序将回到原来中断的SRAM地址重新开始顺序更新。立即更新操作需要占用2个时序周期,其中一个周期用来使时序控制器继续完成正在进行的操作,另一个用来进行新数据的更新。
MAX 5633的输入口为SPI接口,要实现与DSP通信,需将C5416的MCBSP0口配置成SPI口。MCBSP在结构上可分为1个数据通道和1个控制通道。表1给出了有关引脚的信号定义。DX引脚负责数据的发送,DR引脚负责数据的接收,另外4个引脚提供控制信号(时钟和帧同步)。C5416通过片内的外设总线访问串口的控制寄存器实现与MCBSP的通信和控制。
数据通道完成数据的收发。CPU和DMA控制器向数据发送寄存器(DXR)中写入要发送的数据,从数据接收寄存器(DRR)读取接收到的数据。写入DXR的数据通过发送移位寄存器(XSR)移位输出至DX引脚。同样,DR引脚上接收到的数据先移位进入接收转换寄存器(RSR)中,然后被复制到接收缓冲寄存器(RBR),RBR再将数据复制到DRR中,最后等待CPU和DMA控制器读取数据。这种多级缓冲方式使得片内的数据搬移和外部数据的通信可以同时进行。
4 硬件连接电路
MAX 5633与C5416的硬件连接如图1所示。片选CS可控制MAX 5633是否被选中。CS为低后,所有的转换开始有效。DIN为串行数据输入,SCLK为外部时钟输入。CLKSEL为时钟选择端,当C0或者该脚为高电平时,系统选择外部时钟模式,此时内部时钟模式将被关闭。所给出的硬件连接图为外部时钟模式。ECLK为外部时钟模式控制引脚,可用于控制外部时钟。RST为输入复位端。DSP的BCLK0口与D/A的SCLK相连作为MAX 5633的外部时钟,DSP的BDX0口与D/A的DIN相连作为MAX 5633的数据输入,DSP的BFSX0口与D/A的/CS相连作为MAX 5633芯片选择端。由于MAX 5633输入参考电压较多,为了尽量减小电压的波纹对其精度的影响,需要根据实际情况进行滤波。
5 软件程序设计
下面是针对硬件连接电路给出相应的C语言程序。该程序将MCBSP0配置成时钟停止模式(SPI)的主模式。其中SPI的时钟设置成1 MHz,帧数据长度为24位(如图2所示)。帧的24位中C0,C2为控制方式选择位;A0~A4为通道选择位,可以选择0~31共32个通道;D0~D15为需要传输的16位数据。
由于SPI每次传8位数据,故传输16位数据需要传3次,先传控制字,再传数据的低8位,最后传数据的高8位。系统可以通过改变tempchan选择需要传输的通道。下面是传输16位数据的代码
系统在while(1)循环过程中,等待MCBSP0口的发送中断,再将剩下的2个字节发送出去。
6 结 语
本文所介绍的方案已经取得了预期的效果,D/A的数据传输速率可达1 Mb/s,并且还可以根据实际需要进行提高。该方案已经成功地运用于系统中,使传感器稳定在它的最佳工作电压处工作。该系统中DSP对D/A的控制传输无论从精度上还是速度上均完全能够满足系统的要求。本系统所采用的模式以其高精度、多通道等特点将对以后的传感器工作电压随环境变化的系统设计具有指导意义,并对其他形式的信号采集控制系统的设计有借鉴作用。
上一篇:FPGA如何改变嵌入设计格局
下一篇:基于DSP的中频电源测试系统设计
推荐阅读最新更新时间:2024-05-02 21:26
- 热门资源推荐
- 热门放大器推荐