首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于CPLD的OMA-L137与ADS1178数据通信设计

基于CPLD的OMA-L137与ADS1178数据通信设计

引 言  串行外围设备接口(Serial Peripheral Interface,SPI)总线技术是Motorola公司推出的一种高速同步串行输入/输出接口,近年来广泛应用于外部移位寄存器、D/A转换器、 A/D转换器、串行EEPROM、LED显示器等外部设备的拓展。SPI总线是一种三线同步总线(CLK、SI-MO、SOMI),可以共享,便于组成带多个SPI接口的控制系统。其传输速率可编程,连接线少,具有良好的拓展性。
  ADS1178是一款典型的具有SPI接口的A/D转换器,它可以方便地与带有SPI接口的处理器或控制器相连接。OMAP-L137是一款处理能力强、外接存储空间大、集成度高、外设管理方便的新型工控芯片。
  目前,ADS1178与OMAP-L137的数据通信主要通过SPI接口直接连接实现。通过配置,使OMAP-L137工作在主模式,ADS1178工作在从模式,由OMAP-L137提供用来进行数据传输的时钟。但是,采用此模式结合EDMA进行数据接收时,每接收一组采样数据都需要通过中断来改变接收数据的存放地址,即完成N组数据的接收需要N个中断来完成,这会给系统的资源管理带来很大的麻烦。
  本设计使OMAP-L137、ADS1178的SPI接口工作在从模式,由CPLD作主片来提供进行数据传输的时钟。在准确、快速完成数据传输的同时,节省了处理器资源,方便了系统资源的管理。
  1 硬件设计
  1.1 芯片概述
  ADS1178是TI公司于2008年9月推出的一款A/D控制芯片,它采用△-∑模/数转换器结构,可以达到16位的数据采集精度,并且拥有良好的交流特性。其带宽达25 kHz,具有97 dB的信噪比和-105 dB的总谐波失真。在正常工作时每通道的功耗只有31 mW,支持8路通道同时采样,并将数据依次连续地送上数据总线;在满足实时同步采样的同时,还具有52 ksps的转换速率。该芯片主要应用于三相交流电的实时监测、心电图监视器、质量流量计、振动系统的模态分析实验设计,同时还支持SPI和帧同步两种数据传输格式,并支持A/D间的级联。
  OMAP-L137是TI司推出的针对工业控制领域的双核处理器,它综合了ARM和DSP两个处理器各自在实时性和计算精度上的优势。两个处理器的主频均达到300MFHz(DSP的处理速度高达2 400MIPS/1 800MFLOPS)。可以外接2个存储空间EMIFA和EMIFB,并且在片上有着非常丰富的外设资源,主要针对工业应用环境的控制提供了EHRPWM、ECAP、EQEP、 EMAC等模块,并在各控制模块和各接口之间采用EDMA3模块进行数据传递。这大大减轻了双核处理器的负担,占用很少的处理器资源,同时在两个处理器之间开辟了一块128 KB的共享存储空间,可以使数据在双核之间快速地进行交换。
  1.2 硬件原理
  在SPI从模式下,设计使OMAP-L137、ADS1178作从片,CPLD作主片来提供进行数据传输的时钟。OMAP-L137的SPI接口支持3针、4针、5针三种传输模式,这里采用3针模式(即CLK、SIMO、SOMI)。OMAP- L137引出一个GPIO口作同步信号线SYCN,ADS1178的READY信号线送给CPLD用来产生采样时钟,硬件连接如图1所示。CLK用来传递接收和发送数据时的同步时钟信号,SIMO在OMAP-L137作主片时为输出数据线,在OMAP-L137作从片时为输人数据线。SOMI在此模式下不被采用。

  OMAP-L137的SPI接口工作在从模式的配置如下:SPIGCR1寄存器的低2位配置为00,选择SPI工作在从模式;通过配置SPIPC0和 SPIPC1寄存器来选择采用的针模式和引脚的信号方向,这里选择使能CLK、SIMO、SOMI三根信号线,并分别配置为输入、输入和输出;配置 SPIFMT0寄存器先输出每组数据的“大端MSB”,根据ADS1178手册中对数据输出时序的要求,配置数据在CLK信号的下降沿输出,使CLK信号工作在13MHz,同时配置现在的数据总线为16位。SPI的参考配置如表1所列。
[img][/img]
  在采样数据送到OMAP-L137的SPI接口时,可以启动EDMA模块来对采样数据进行搬移。EDMA的触发事件为SPI的每一通道数据(16位)的接收中断,相当于完成一组(8通道)数据的传输需要8个触发事件。EDMA的参数相关配置如图2所示。其中,OPT、DSTCINT、SRCCIND和 CCNT都需要根据应用情况来进行参数配置。
返回列表