当前位置:首页 > 工业控制 > 工业控制
[导读]现在很多测控系统为了提高抗干扰的能力,传感器输出信号多为3线制的差分信号 ,而且电压范围也不同,通常采用的方法是把差分信号通过复杂电路进行处理后再进行数据采集,这样不仅增加了硬件成本,还使系统的精度降低。为了解决此问题,设计了基于DSP和 LTC1859的16位高精度数据采集系统,详细介绍了软硬件设计,提供了实用的原理图和源代码。此系统不仅可以实现多路的单端输入 ,还可以实现多路差分信号的输入,成本低,精度高,抗干扰性好。

0引言
现在很多测控制系统为了提高抗干扰的能力,传感器输出信号多为 3线制的差分信号,如航空舵机的控制系统 ,通常采用的方法是把差分信号通过复杂电路处理再进行数据采集 ,这样不仅增加了硬件成本,还降低系统精度。本系统设计的基于 DSPLTC1859的 16位高精度数据采集系统 ,不仅可以实现多路的单信号输入 ,还可以实现多路差分信号的输入 ,对输入的信号的范围可以通过软件满足不同的要求,真正实现差分输入抑制共模噪声。
 LTC1859是凌力尔特公司最新推出的一款高性能的 8通道、 16位、100ksps的 AD转换器,每个通道可通过软件实现 0~5V,0~10V,0~±5V,0~±10V的不同范围的输入电压,同时还可以实现单输入和差分信号输入的选择,可承受至 ±25V的故障保护。LTC1859的多路复用器可以配置为接受 4个差分输入、 8个单端输入、或差分与单端输入的组合。该器件提供了卓越的 DC性能,具有在整个温度范围内的 15位无漏失码和±3 LSBMAX INL。LTC1859具有较好的失调、满标度增益和通道至通道匹配。适用于多通道高分辨率应用,如仪表、数据采集系统和工业过程控制。它与 CPU之间采用的 SPI总线通信。LTC1859用单 5V电源工作,同时仅消耗 40mW功率。LTC1859还具有温度系数为 ±10ppm/oC的 2.5V内部基准,如果需要较高的准确度,还可以从外部驱动。对于那些对功耗敏感的应用, LTC1859提供了两种断电模式,在基准仍保持运行状态时功耗降至 27.5mW(打盹模式),或基准完全断电时功耗降至 40uW(休眠模式)。LTC1857和 LTC1858分别是引脚兼容的 12位和 14位器件。本系统的 CPU为 TI公司的 TMS320C2407A,主频可达 40MHZ,它有标准的 SPI总线,丰富的外设,非常适合与 LTC1859构成高精度的数据采集系统和控制系统的。

1 硬件系统设计
系统设计了由 2块 LTC1859构成 8通道的差分信号输入,也可以实现 16通道的单路信号输入,或者它们之间的组合,详细电路如图 1。本电路具有通用性,在实际应用中性能稳定,效果很好。下面针对 LTC1859芯片引脚对对电路进行详细分析。
CH0~CH7是8路模拟输入通道,在本系统中构成了4路差分输入信号,每路差分输入信号接3000P的滤波电容去干扰。 MUXOUT+、MUXOUT-为模拟复用器的正负输出,把它们连在ADC+、ADC-上进行正常操作。 Vref为2.5V的基准电压输出。 ODD为数字输出缓冲器的电源,这样使SPI总线上的数字信号的电压等于 ODD的接入电压,本系统采用的 DSP2407,它对输入的数字信号要求为3.3V,所以这里接的 3.3V电压,就不需要另加电平转换电路。 BUSY为输出转换器的状态,当正在转换中为低,转换结束变高,连在 DSP的I/O口上, SDO为SPI总线的串行数据输出,接在 DSP的SPISOMI引脚上,SDI为SPI总线的串行数据输如,接在DSP的SPISIMO引脚上 ,SCK为SPI总线的时钟,接在DSP的SPICLK上。RD为引脚SDO数字输出的能使信号,当 RD为低能使输出,当 RD为高SDO为高阻抗,该引脚接在 DSP的I/O口上,由于 LTC1859没有片选信号,为了让多片 LTC1859在总线上不发生冲突,把要工作的 LTC1859的RD置为低,把要没工作的LTC1859的RD置为高。CONVST为启动转换引脚。其它引脚分别接电源、数字地、模拟地,就不再详细介绍。

500)this.style.width=500;" border="0" />


图 1 硬件系统图 Fig1 Hardware system configuration
2软件设计
由于采用标准 SPI总线通信,软件的关键是 DSP和 LTC1859之间的时序匹配,首先介绍 LTC1859软件配置。
2.1  LTC1859不管是在发送系统中还是接收系统中,都是在 SCK的下降沿传输,上升沿被捕获,这就要求 DSP在进行 SPI初始化时采用上升沿无延时模式。8位的控制字通过 SDI输入,用于配置 LTC1859以进行下一个转换,同时前一个转换输出在 SDO上输出,在数据交换的末端在 CONVST上施加一个上升沿启动被请求的转换。转换完成后,转换结果将在将在下一个数据传送周期提供。LTC1859的 8位命令控制字在首 8个 SCK的上升沿按时间顺序记录到 SDI输入中,SDI随后的输入的位被忽略。控制字的 8位定义如表 1 
500)this.style.width=500;" border="0" />


 
其中复用器通道选择如表 2 
500)this.style.width=500;" border="0" />


 
其中输入范围选择如表 3
500)this.style.width=500;" border="0" />


2.2下面详细介绍软件编写,考虑到 SPI总线的时钟很快,采用查询方式,其软件流程如图 2,这里只介绍 LTC1859(1)的流程及源代码,其它原理都一样。

 500)this.style.width=500;" border="0" />


图 2流程图 Fig2 Flow chart
程序源代码及其详细注释:
void SPIAD_Init()
{   MCRB=MCRB | 0x001C; // SPISIMO,SPISOMI,SPICLK特殊功能方式  SPICCR=0x000F;  // 16bit数据, 上升沿无延时模式  SPICTL=0x0006; //禁止中断  SPIBRR=0x0004; // 8M波特率 ,40M/5=8M   SPICCR=SPICCR | 0x80;
}
void ADLTC()
{   PADATDIR=PADATDIR|0x1010;  //将 A4即 LTC2RD置高  PADATDIR=PADATDIR&0xFFFD;  //将 A1即 LTC1RD置低  PADATDIR=PADATDIR&0xFFFE;  //将 A0即 LTC1CON(CONVST)置低 PADATDIR=PADATDIR|0x0101; //将A0即LTC1CON(CONVST)拉高启动转换  asm(" NOP ");    while((PADATDIR&0x0004)!=0x0000); //等待 A2即 LTC1BUSY(BUSY)变低  PADATDIR=PADATDIR&0xFFFE; //A2即 LTC1BUSY(BUSY)变低后再将 A0即 LTC1CON(CONVST)拉低  while((PADATDIR&0x0004)!=0x0004); //等待 A2即 LTC1BUSY(BUSY)变高 SPITXBUF=(0x0004<<8);  // 输入通道 1控制字,当 LTC1BUSY变高说明转换完成 ,则可写入下次转换的命令字  while((SPISTS&0x0040)!=0x0040); //等待总线传输
  SPIRXBUF=SPIRXBUF;  PADATDIR=PADATDIR|0x0101;  asm(" NOP ");    while((PADATDIR&0x0004)!=0x0000);PADATDIR=PADATDIR&0xFFFE;         
  while((PADATDIR&0x0004)!=0x0004);  SPITXBUF=(0x0014<<8);
  while((SPISTS&0x0040)!=0x0040);
  /*虚读寄存器以清除中断标志*/  //将A0即LTC1CON(CONVST)拉高启动转换
 //等待 A2即 LTC1BUSY(BUSY)变低 //A2即 LTC1BUSY(BUSY)变低后再将 A0即 LTC1CON(CONVST)拉低 //等待 A2即 LTC1BUSY(BUSY)变高 //输入通道 2控制字,当 LTC1BUSY变高说明转换完成,则可写入下次转换的命令字 //等待总线传输
ADINRESULT[4]=(0x0FFF&SPIRXBUF);   /*保存转换结果 */   SPIRXBUF= SPIRXBUF; /*虚读寄存器以清除中断标志*/  PADATDIR=PADATDIR|0X0101; //将 A0即 LTC1CON(CONVST)拉高启动转换 asm(" NOP ");  while((PADATDIR&0x0004)!=0x0000); //等待 A2即 LTC1BUSY(BUSY)变低 PADATDIR=PADATDIR&0xFFFE;  //A2即 LTC1BUSY(BUSY)变低后再将
A0即 LTC1CON(CONVST)拉低  while((PADATDIR&0x0004)!=0x0004); //等待 A2即 LTC1BUSY(BUSY)变高  SPITXBUF=(0x0024<<8);  //输入通道3控制字当LTC1BUSY变高说明转换完成,
则可写入下次转换的命令字
  while((SPISTS&0x0040)!=0x0040); //等待总线传输
ADINRESULT[5]=SPIRXBUF; /*保存转换结果 */
  SPIRXBUF=SPIRXBUF;  /*虚读寄存器以清除中断标志*/
 ……………………………………………通道 3、4的转换程序原理一样 }
3 结 论

本文作者创新点是成功实现了基于 DSP和 LTC1859的 16位高精度数据采集系统,给出了全新实用的硬件和软件设计,特别适合差分信号和电压范围变化较大的系统该设计,对与 LTC1859与其它的 CPU的设计也有很大的参考价值。该系统性价比高,具有一般通用性能,有一定的应用推广价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭