产品推荐:水表|流量计|压力变送器|热电偶|液位计|冷热冲击试验箱|水质分析|光谱仪|试验机|试验箱


仪表网>技术中心>应用设计>正文

欢迎联系我

有什么可以帮您? 在线咨询

基于SPI总线的多路数据采集系统的设计

   2013年01月16日 14:19  
  摘要:文中采用高精度AD芯片AD7891与C8051F040单片机组成高速数据采集系统,通过SPI总线,将AD7891与C8051F040直接连接,方便的实现了8路模拟量的高速采集和传输,并给出了SPI总线的接口电路及软件设计。
  
  关键词:高精度;单片机;SPI;高速采集
  
  随着微处理器的发展及其在各领域的广泛应用,人们对电子测量技术和电子仪器系统提出越来越高的要求,对测试速度和度的要求也与日俱增。测试系统主要包括对实时数据的高速采集、现场显示和分析处理3部分,其中zui重要的一环就是实时数据高速采集,因为它关系到能否真实反映被测对象的状态和性能。根据实际项目需要,文中基于80C51F040单片机的SPI总线和AD7891芯片,设计实现了多路数据的高速采集。文中给出了系统的主要硬件电路和对时序控制的软件编程。
  
  1、系统的硬件实现
  
  本数据采集系统功能是能对多路电压和电流进行高速采集和分析处理,其要求精度高,线性度好,采集电压要求以1mV为单位,模拟信号输入范围为-10~+10V。系统处理芯片采用Silicon Laboratories公司出品的C8051F040单片机是*集成的混合信号系统级芯片(SOC),具有与MCS-51*兼容的指令内核,该系列单片机采用流水线处理(pipeline)技术不再区分时钟周期和机器周期,能在执行指令期间预处理下一条指令,提高指令执行效率。而且大部分C8051F040单片机具备控制系统所需要的模拟和数字外设,包括看门狗、ADC、DAC、电压比较器、电压基准输出、定时器、PWM、定时器捕捉和方波输出等,并具备多种总线接口,包括UART、SPI、SMBUS(与IC兼容)总线以及CAN总线。C8051F系类单片机采用FlashROM技术,集成JTAG,支持在线编程。C8051F系列单片机诸多特点和优越性,使其广受单片机系统设计工程师青昧,成为很多测控系统设计的机型。虽然C8051F040内部提供A/D转换器,但在实时高速采集中易受干扰,性噪比比较低,A/D转换速度不能满足高速数据采集系统的要求,为了满足系统的指标、提高数据的性采样和系统的抗*力,本数据采集系统根据实际情况采用外扩的A/D转换芯片。
  
  本数据采集系统采用的A/D芯片是美国ADI公司推出的一种AD789112位数据采集系统(DAS),它具有并行和串行两种工作模式,适合各种微处理器、控制器以及数字信号处理机接口。AD7891内含有多路转换器、采样保持放大器、12位高速ADC、+2.5V基准电压源和高速接口电路,并有8个具有过压保护的模拟信号通道,AD7891-1可承受的过压为±17V。AD7891的模数转换时间是1.6μs,采样时间为1.4μs。当只对一个通道信号采样时,采样率为500kSPS;当对8个通道信号逐个采样时,采样率为62.5kSPS,AD7891-1使用硬件或软件方法控制转换开始得数据采样时间分别为0.6μs和0.7μs,相应的数据采集率分别为454.5kSPS和435kSPS。AD7891采用单电源工作,功耗低,可选择输入信号的范围,也可并行或串行工作,非常适合用于数据采集系统、电机控制、移动通信系统和测试设备等方面的应用。AD7891管脚功能说明如表1所示。
  
  通常在高速数据采集系统中,AD7891和单片机之间的接口有串行和并行两种方式,采用软件控制数据线的方式来满足系统所要求得采集速度。由于C80C51F040单片机具有SPI总线接口功能,所以本数据采集系统采用串行工作方式,数据的读取通过单片机的SPI总线来传输,不仅能够满足采集系统的快速性要求,在硬件上也较易实现闱。图1是AD7891与80C51F040单片机的接口电路。
  
  2、系统的软件实现
  
  为了实现对模拟量的高速采样,首先要对AD7891的时序进行分析,图2为AD7891的串行读操作时序图,图3为AD7891的串行写操作时序图。

  
  图2为AD7891的串行读操作时序图,从图2中可以看出,当单片机要从AD7891中读取数据时,必须先将置低,串行数据时一位一位的接收的。在整个数据传输过程中,必须一直保持低电平。传输的数据格式是一次传输16位数据,数据的传输是以FORMAT位开始的,紧接着是3位地址位,接下来是12位数据位,存放的是12位AD转换的值,每一位数据都是在时钟的上升沿开始发送的,16位数据发送完成后,DATAOUT线一直保持高阻态直到和SCLK其中任意一个有一个上升沿的脉冲出现。
  
  图3为AD7891的串行写操作时序图,从图3中可以看出,当单片机向AD7591中写数据时,必须先将置低,AD7891的控制寄存器只接收前6位数据,前三位A0、A1、A2用于配置AD采样通道,在接收完前6位数据之后不再接收数据,数据的接收都是在时钟的下降沿进行的。下面给出通道1采集的主要程序代码(C语言)
  
  3、结束语
  
  文中基于串行SPI通信方式,设计了一个高速数据采集系统,用SPI总线来实现数据的读取,能够满足数据采集系统的要求,具有硬件结构简单,软件编程容易的特点。

免责声明

  • 凡本网注明“来源:仪表网”的所有作品,均为浙江兴旺宝明通网络有限公司-仪表网合法拥有版权或有权使用的作品,未经本网授权不得转载、摘编或利用其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:仪表网”。违反上述声明者,本网将追究其相关法律责任。
  • 本网转载并注明自其它来源(非仪表网)的作品,目的在于传递更多信息,并不代表本网赞同其观点或和对其真实性负责,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品第一来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
联系我们

客服热线: 15267989561

加盟热线: 15267989561

媒体合作: 0571-87759945

投诉热线: 0571-87759942

关注我们
  • 下载仪表站APP

  • Ybzhan手机版

  • Ybzhan公众号

  • Ybzhan小程序

企业未开通此功能
详询客服 : 0571-87759942