基于CPCI总线和DSP技术的多路智能采集卡
来源: 微型机与应用   发布时间: 2017-02-09 10:18   645 次浏览   大小:  16px  14px  12px
为了满足工业控制领域对数字信号智能化实时采集和处理的要求,以ADSP-21262 DSP为核心处理器,设计了一种基于CPCI 总线接口的多路智能采集卡。高性能的DSP 实现信号的实时采集和处理,处理后的结果通过CPCI 总线与主机进行通信,结合高效的DSP 算法,实现了一种实时性好、可靠性高的智能采集处理卡。应用结果表明,该采集卡工作稳定可靠,能很好地满足系统要求。

李亭亭,崔迎炜,崔扬


关键词:ADSP-21262;CPCI总线;多路;智能;采集

CPCI总线是在PCI总线基础上改进的一种32/64 bit的局部总线,最高带宽可达512 MB/s,具有高开放性、高可靠性、可热插拔等优点。目前,基于CPCI总线的嵌入式系统架构已广泛应用于石油探测等领域,其系统通常由嵌入式单板计算机和各种接口模块组成。随着控制系统复杂程度和智能化程度的提高,数据传输速率也不断提高,对外围接口模块智能性和灵活性提出了更高的要求。通过采用高性能的数字信号DSP控制器进行接口模块的智能化设计,可以满足这种要求。本文以ADI公司的高性能ADSP-21262为核心处理器,为满足系统实时性和多路信号采集的要求,提出了一种基于CPCI总线的多路数据采集卡的设计方法,实现了3路石油勘测信号的实时采集和处理。


1 工作原理

CPCI总线与3颗DSP分别通过3个DPRAM实现交互,DSP微控制器作为核心处理器,进行数据的采集和处理。系统上电后,3路DSP中的程序同时运行等待主机中断(同一时刻只会有一路收到中断),DSP收到中断后,就会读取DPRAM 指定位置的命令控制字(协议定义)并进行分析判断,假设命令控制字的意思是AD数据采集,DSP程序就控制进行数据采集, 将采集到的数据经过一定的算法处理后写入DPRAM中,写完后给主机一个中断, 主机收到中断后通过PCI9054访问DPRAM获取相关数据。该多路数据采集卡的原理框图如图1所示。



图1 采集卡原理框图

2 硬件设计

2.1 PCI9054与DPRAM接口电路


采集卡通过CPCI总线与主机进行通信,PCI9054支持32 bit/33 MHz的PCI接口,最高带宽可达132 MB/s,支持两通道DMA突发传输, 能够很好地满足采集卡带宽的要求。系统上电后,PCI9054读取EEPROM并对配置空间进行配置,可将PCI总线指令(例如读写某个寄存器、memory空间、IO空间)翻译到本地地址空间,实现CPCI总线与Local总线的桥接。在Local bus端,有3颗DPRAM与9054通信,DPRAM采用32 k×16 bit的IDT70V27芯片,3颗DPRAM片选访问由9054地址线高位分配。PCI9054本地端采用C工作模式、PCI从模式,提供了非复用的地址线和数据线,Local bus工作在16 bit模式。PCI9054在CPCI端作为从设备,在Local bus端作为主设备,通过使能LHOLD请求使用Local bus,当得到LHOLDA后9054方可占用总线。在Local bus端没有其他主设备, 因此总线的使用由9054独占,可以把LHOLD、LHOLDA下拉直连,只要有数据请求,9054就会立即得到总线控制权。其中中断、片选、读写控制信号、总线的申请和DMA功能扩展由CPLD0逻辑控制实现,具体实现见CPLD逻辑设计部分。PCI9054与DPRAM1的接口示意图如图2所示,PCI9054与DPRAM2、DPRAM3接口与图2相同。



图2 PCI9054与DPRAM1接口图

2.2 DSP系统电路


根据系统性能指标要求,该智能数据采集卡选用ADI公司高性能的ADSP-21262 DSP为核心处理器。ADSP-21262 DSP是第三代SHARC可编程DSP系列中的第一成员,采用SHARC DSP内核,SIMD计算结构,同时集成了丰富的片上资源和外设接口,核心频率为200 MHz,处理速度可达1.2 GFLOPS。支持音频解码与后处理算法,内部包含了许多音频算法,在ROM里甚至包括多波段解码算法,在音频应用领域得到广泛的推广。


采集卡DSP的外部输入时钟为25 MHz,通过配置引脚CLKCFG1-0,使内部PLL将外部输入时钟8倍频,供给内核使用。工作电压为3.3 V,由背板提供,内核电压为1.2 V,由TPS54425电源转换芯片实现,DSP上电有4种BOOT方式,BOOT_CFC1-0选择初始化配置,本卡使用外部8 bit并口Flash加载,3颗DSP通过JTAG菊花链进行程序的在线下载和调试。本设计为DSP扩展了512 KB的SRAM和8 MB的Flash,DSP还外挂了一个CPLD,数据线宽度为16 bit,具体逻辑功能见CPLD逻辑设计部分。DSP有3个外部中断源IRQ0~2,IRQ0与IRQ1配置给AD/DA或者串口,IRQ2配置给DPRAM。DSP系统框图如图3所示。



图3 DSP系统框图

2.3 A/D与D/A电路


本采集卡有3路AD输入与一路DA输出,DA挂在第一路CPLD上,由于AD和DA的采样速率与DSP的读写时钟不同且本卡支持连续采样,所以需要采用FIFO进行缓冲。FIFO采用1 k×18 bit的IDT72V225,支持空、几乎空、半满、几乎满、满5种状态,通过LD#引脚,可以对几乎满和几乎空的位置寄存器进行设定。3路模拟信号经过由运放组成的隔离放大电路后,由于AD是差分输入,需要将单端信号转换为差分信号输入到AD,经AD转换后输入到各自的FIFO进行缓存,达到用户设定的中断阈值后,通过各自的接口控制芯片CPLD给DSP一个中断,DSP收到中断后开始读取FIFO数据。CPLD主要实现AD和DA的控制、采样速率的设定、FIFO中断阈值的设定及各种状态的读取等操作。A/D与D/A电路如图4所示。



图4 A/D与D/A电路

本采集卡板载3个频率分别为33 MHz、25 MHz和1.8432 MHz的晶体振荡器,时钟输出经过SN74LVC244A斯密特整形和驱动后供给各电路使用,其中33 MHz时钟提供给各个AD/DA接口CPLD。该时钟可以用于AD和DA采样速率分频的源时钟,还提供给PCI9054的Local bus端时钟;25 MHz是DSP外部时钟源;1.8432 MHz作为CPLD中串口RS232通信时钟源。


根据本卡电路设计需要,除了使用背板提供的电源外,还通过TPS54425将5 V转换为1.2 V供给DSP内核使用;通过LT1763S8将12 V转换为5 V, LT1175S8将-12 V转换为-5 V,供给关于AD和DA的模拟电路部分使用,本采集卡对上电顺序没有要求。


复位电路主要通过CPLD和复位芯片实现,复位链如图5所示。



图5 复位链

3 CPLD逻辑设计

本采集卡使用了4颗Altera的EPM1270逻辑器件,CPLD逻辑使用Verilog代码实现,第一颗CPLD主要实现PCI9054 LOCAL端与3个DPRAM之间的一些逻辑控制,例如3个DPRAM的片选、复位、读写信号的产生,以及LOCAL端总线的申请和DMA功能的扩展等。其他3颗CPLD实现的功能基本相同,主要实现DSP处理器与周围扩展电路的粘合,例如DSP周围挂接的CPLD、Flash、DPRAM、SRAM片选信号的产生,FIFO模式的设置,AD、DA、串口时钟的产生,串口通信状态机的实现。除此之外,还映射了一些读写寄存器,这些寄存器主要实现FIFO数据的读写,FIFO中断阈值设定及状态读取,FIFO读写使能控制及复位,AD、DA分频系数设定(即采样时钟的设定) ,AD溢出和DA睡眠状态读取,板卡相关信息读取等。Flash在擦除和写之前首先需要向其发送擦除和写命令,读并不需要。而由于用DMA访问外部设备时有以4 B为单位进行数据传输的限制,故CPLD在此做了特殊处理,当DSP向Flash发送擦除和写命令时,DSP发送4 B,CPLD会滤除前3 B,Flash实际只收到最后一个字节。


4 DSP程序设计

通过ADI提供的Visualdsp++5.0集成开发环境进行DSP软件的开发, 充分利用DSP强大的信号处理优势,结合具体项目应用中所需的数据处理算法采用C语言进行编程。编译后的DSP程序通过JTAG链烧写到DSP外扩的Flash中,系统上电后一段512 B的boot kernel自动加载到DSP内存中运行,然后将应用程序引导到内存中运行。DSP程序主要包括系统初始化、系统自检、数据采集和处理以及数据存储4个部分,系统初始化主要完成DSP本身正常运行所需的环境配置;系统自检主要完成对DSP外接SRAM、双口RAM、Flash、CPLD和串口读写检测, 并将检测后的状态放到双口RAM的指定位置供主机读取; 数据采集和处理主要完成将AD转化后的数据读取到DSP内存中,并经过一定的算法处理;数据存储主要完成将采集到的数据写到双口RAM中,给主机一个中断,通知主机进行读取。DSP程序工作流程如图6所示。



图6 DSP程序流程图

该多路智能采集卡设计灵活,可以根据需要添加一些功能,在软硬件设计时充分考虑了系统的可靠性和稳定性,实现了对油井勘测数据的实时采集和处理,满足了项目的要求,达到了预期的性能指标。实际应用表明,该采集系统运行稳定可靠。