×
单片机 > 单片机程序设计 > 详情

基于I2C总线和SD卡的火车轮轴承温度采集系统

发布时间:2020-06-23 发布时间:
|
    引  言

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

  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卡的读写,对大量的温度、时间信息进行了实时可靠的保存。以下是数据采集保存部分的函数分析。


[page]



  结  语

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


关键字:I2C总线  SD卡  火车轮轴承  温度采集系统 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
浅谈AVR中定时器几种工作模式