《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于ARM和CAN总线的数据采集系统设计
基于ARM和CAN总线的数据采集系统设计
摘要: 在工业生产的很多领域都需要对生产过程进行监控管理,因此以A/D转换器为核心的数据采集系统必不可少。为了提高监控系统的准确性与可靠性,数据采集卡可选用∑一△型高分辨率的A/D转换器。而控制器局域网(CAN)能有效支持具有高安全级的分布式实时控制,凭借其在噪声环境中的可靠性及其故障状态检测,以及从故障状态恢复的能力被广泛应用于工业控制等领域。本文设计了一种关于CAN总线的双通道高精度采集系统,提高了工业控制中的信号采集处理以及传输抗干扰能力。
Abstract:
Key words :

  引 言

  在工业生产的很多领域都需要对生产过程进行监控管理,因此以A/D转换器为核心的数据采集系统必不可少。为了提高监控系统的准确性与可靠性,数据采集卡可选用∑一△型高分辨率的A/D转换器。而控制器局域网(CAN)能有效支持具有高安全级的分布式实时控制,凭借其在噪声环境中的可靠性及其故障状态检测,以及从故障状态恢复的能力被广泛应用于工业控制等领域。本文设计了一种关于CAN总线的双通道高精度采集系统,提高了工业控制中的信号采集处理以及传输抗干扰能力。

  1 系统原理

  系统选用Philips公司的LPC2292(支持实时仿真和跟踪的32位ARM7TDMI—S CPU的微控制器)作为主芯片,功耗极低,具有高速Flash存储器、多个32位定时器、2路CAN以及多达9个外部中断,特别适用于工业控制等。Maxim公司的MAX811作为系统的复位开关,系统原理图如图1所示。双通道O~5 V的模拟信号,经过信号调理电路转换为适合ADC采样的电压信号,被2个24位精度的低功耗A/D转换器ADSl251采样;所采样的数据经过LPC2292的处理后存入扩展的SRAM静态存储器(Cypress公司的CY7C1061AV33)当中,再通过ARM内嵌的2个CAN控制器控制2路CTM8231(通用CAN隔离收发器)进行数据传输。其中,CP2102是ARM中UART与USB端口的桥接芯片,它将USB口模拟为串口,可在PC机上方便地对LPC2292进行上电之前的Flash擦写等操作。

系统原理图

 

  2 信号调理电路

  其中一路通道的信号调理电路如图2所示。ADSl251是24位低功耗、宽动态范围、高信噪比的deIta—sigma型A/D转换器。ADSl251为差分模拟输入,当参考输入电压等于+4.096 V时,双端输入电压为一4.096~+4.096 V。本设计利用LM4040AIM3—4.1稳压管为ADC提供+4.096 V参考电压,系统时钟信号和串行时钟信号都由ARM提供。为了更好地发挥ADC的性能,最重要的是信号的满量程输入,因此在ADC双端输入的前端,采用轨到轨运算放大器0PA4350设计了一个变换电平电路。首先外部信号进入一个射随放大器,然后通过2个运算放大器进行电平移位,让0~5 V的外部信号转变为一4.096~+4.096 V的信号进入ADSl251的差分输入端。

其中一路通道的信号调理电路

点击看原图

 

 

  3 CAN通信传输电路

  CAN相关电路如图3所示。LPC2292中虽然内嵌CAN控制器,但是必须与CAN收发器连接才能具备收发功能,在以往的设计中ARM和CAN收发器之间通常需要加入DC-DC电源隔离模块和高速光电耦合器组成的隔离电路,以确保在CAN总线遭受严重的干扰时控制器能够正常工作。然而考虑到复杂度、系统集成等因素,本设计中利用CTM8231接口芯片来实现带隔离的CAN收发电路。它将LPC2292中内建的CAN控制器逻辑电平转换为CAN总线的差分电平,实现起来非常简单而且有高抗电磁干扰性;每一路独立的CAN总线接口均配上120Ω的可跨接的终端匹配电阻,同时在印制板上留有可另接一其他阻值电阻的接口,以便在调试和使用过程中进行终端电阻的调整,由拨码开关选择。CAN总线上有数据传输时,用发光二极管闪烁指示。

CAN相关电路

点击看原图

  4 软件设计

  4.1 A/D转换程序设计

  整个A/D转换的时间需要384个CLK时钟周期,ADsl251的工作时序如图4所示。ADS1251的输出信号DOUT/DRDY是在两种工作模式下转换的:第一种模式是DRDY(需要36个CLK时钟周期),它表明新的数据已经加载到数据输出寄存器中,可以进行读操作;第二种模式是DOUT(需要384个CLK时钟周期),它将数据以串行方式送到数据输出寄存器DOR。DRDY模式持续t4(24个CLK时钟周期)、t2(6个CLK时钟周期)、t2(6个CLK时钟周期)时间,然后在t3的下降沿进入DOUT模式,数据在t7之后开始输出。而LPC2292在t6时间后为ADS1251提供SCLK时钟,并在SCLK的上升沿锁存数据,为了接收到有效数据,DOR数据输出寄存器必须在DOUT/DRDY变回到DRDY模式之前将数据读出。

ADsl251的工作时序

 

  A/D转换器的部分程序如下:

程序

 

程序

 

程序

 

  4.2 CAN控制器程序设计

  CAN控制器的初始化流程是:首先将ARM中CAN控制器相关的硬件和连接的引脚使能,并对CAN控制器进行复位操作,设置CAN总线的通信波特率;接着是中断处理的初始化,然后配置验收过滤器(即对接收标识符的查询),最后是初始化CAN的工作模式。初始化CAN控制器之后就可以进行数据的发送与中断接收操作了。

  CAN控制器的部分程序如下:

 

程序

 

  结 语

  本文所设计的系统目前已经投入工业中实际使用,其运行性能稳定,信噪比在93 dB以上,采样精度为19~22位。由于LPC2292中内置了RTC实时时钟,所以本系统还可以添加实时控制的功能;也可以利用ARM剩下的I/0口等资源,辅以DC-DC电源模块、驱动芯片、继电器开关、光耦等元件实现多路可选相互隔离的稳定电源输出功能,作为工业相关领域的供电设备,以而可使系统的应用更加广泛,功能更为丰富。

此内容为AET网站原创,未经授权禁止转载。