《电子技术应用》
您所在的位置:首页 > 模拟设计 > 设计应用 > 基于I2C总线和SD卡的火车轮轴承温度采集系统
基于I2C总线和SD卡的火车轮轴承温度采集系统
包本刚,邹帅,刘坤,陈凯,刘磊,周显恩
摘要: 火车轮轴承的损坏将导致重大交通事故,提前预防是避免事故发生的最好办法。现有的轴承温度采集系统大都不能实时采集温度信息,而且不能大量保存相关信息供人们分析。本文介绍的火车轮轴承温度采集系统运用高性能的处理器,能够在火车运行的过程中不断记录温度与时间信息,并实时地把相关信息存储到SD卡中。
Abstract:
Key words :

    引  言

    火车轮轴承的损坏将导致重大交通事故,提前预防是避免事故发生的最好办法。现有的轴承温度采集系统大都不能实时采集温度信息,而且不能大量保存相关信息供人们分析。本文介绍的火车轮轴承温度采集系统运用高性能的处理器,能够在火车运行的过程中不断记录温度与时间信息,并实时地把相关信息存储到SD卡中。

    1  系统设计原理

    火车轮轴承温度采集系统的工作原理是,各测量点通过温度传感器获取轴承温度信息,随后通过I2C总线把这些信息转输给主机,主机收到后根据数据进行超温报警等动作,同时把数据存储在SD卡中,以便查询。该系统以S3C2440A为主控制器,外部各个温度传感器直接挂接在I2C总线上,就可以实现主机对传感器数据的采集,从而简化了硬件电路。同时利用S3C2440处理器速度快的特点,可以实时对温度进行采集,并且可以高速地存储大量温度信息。通过时钟芯片,还可以记录对应时刻各测量点温度的情况。

    2系统硬件设计

  主控制器直接采用了Mini2440最小系统板。其处理器为三星S3C2440A,主频高达400 MHz,很好地满足了系统对速度的要求。在温度测量方面,选取DS18B20数字温度传感器,它的精确度很好地满足了设计需要,价格较低,大大降低了开发成本。在通信方面,选取了I2c总线连接方式。利用处理器2个I/O口,简单方便地实现了数据的采集。时钟芯片:DS1302还为系统提供了准确时间信息,可让人们准确了解具体时刻各测量点的温度信息。该部分的示意图如图1所示。

 

  系统采用SD卡来扩展存储器。在该系统中,SD卡用于存储大量的信息,也可以很方便地将相关信息转出。S3C2440A处理器中集成了SD卡控制器,给硬件电路的设计带来了方便。SD卡硬件连接图如图2所示。



  在轴承温度采集系统实际工作中,电源的稳定是相当重要的。该系统需要5 V、3.3 V的工作电源。+5 V电压经过LM1117稳压后,可以得到+3.3 V的电压,供Mini2440最小系统板与SD卡电路使用,+5 V的电压由温度传感器、时钟芯片等器件使用。电源模块硬件图如图3所示。

 

  3系统软件设计

  设计的主要任务是完成测量点与主机的通信,以及对各测量点温度数据的采集、处理和存储。

  3.1传感器数据的采集

  考虑到系统对温度采集实时性的要求,系统每隔100ms采集1次温度传感器的数据,并不间断地对整组测量点进行轮流采集,确保让每个测量点的温度数据能及时地被主机处理。数据采集软件流程如图4所示。

 

  3.2主机数据处理和管理软件的设计

  此模块软件的主要任务是处理采集的数据并存储数据。软件将采集到的数据进行比较,如果温度有大于65℃,将启动报警程式,并可以根据温度的变化趋势采取相应的预防措施。同时,在每次读取传感器数据的过程中记录此刻的时间,软件将保存本次采集的温度和时间信息。当数据转出时,可以清晰地看到各个时刻所对应的不同温度。数据处理的软件流程如图5所示。

  3.3  基于S3C2440的SD卡控制器设计

  主控制器S3C2440片内集成了功能强大的SD卡的控制器,加上其提供的1组寄存器,使编程工作变得相对简单。程序中定义相关寄存器如下:

 

  从各个寄存器定义后面的注释中可以看出相应寄存器的作用。

  这些寄存器相互配合,就可以很方便地实现协议所要求的复杂时序。在对各个寄存器有了全方位的把握之后,就可以实现SD卡的相关功能,其操作过程为:

  ①CPU寄存器设置过程

  ◆正确设置SDICON寄存器;

  ◆正确设置SDIPRE寄存器;

  ◆等待74个时钟信号初始卡。

  ②CMD命令发送过程

  ◆向SDICARG寄存器中写入发送的参数;

  ◆确定命令类型并且通过设置SDICCON[8]来启动命令;

  ◆确定命令是否发送完成,没应答的话看SDICSTA[11],有应答的话看SDICSTA[9];

  ◆清除SDICSTA中的相应位。

  ③数据传输过程

  ◆向SDITIMER中写入超时值;

  ◆向SDIBSIZE中写入块大小的值;

  ◆设置块模式,总线宽度等,通过SDIDCON启动传输;

  ◆通过SDIFSTA检查TxFIFO是否可用,再通过SDIDAT写入发送数据;

  ◆通过SDIFSTA检查RxFIFO是否可用,再通过SDIDAT读入接收数据;

  ◆通过检查SDIDSTA[4]确定传输过程已完成;

  ◆清除SDIDSTA中的相应位。

  程序采用模块化设计思想。以主程序为核心设置功能模块子程序,简化了设计结构。运行过程中通过主程序调用各功能模块子程序。通过程序的联合作用,实现了对SD卡的读写,对大量的温度、时间信息进行了实时可靠的保存。以下是数据采集保存部分的函数分析。




 

 

  结  语

  系统采用高性能处理器作为主控制器,高速地采集各节点温度信息,当温度过高时能及时报警,并能快速地存储大量温度与时间信息。运用SD卡能方便地将数据转出并进行分析。本系统设计方案已成功运用在湖南电力机车设备公司的产品中,对海量数据采集有较高参考价值。

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