一种成本低廉的地铁列车数据记录仪
2018-06-15,,
, ,
(1.青岛地铁集团有限公司运营分公司车辆部,青岛 266000;2.中车四方车辆有限公司;3.北京城建设计发展集团股份有限公司)
引 言
地铁列车制造厂家会根据客户需求,选择为地铁列车安装数据记录仪。地铁列车数据记录仪是用于实时记录地铁列车运行数据和故障信息的专用设备。基于ARM芯片的地铁列车数据记录仪以ARM芯片为核心,具有RS232通信、CAN通信和在SD卡生成TXT记录文件的功能,具有体积小、记录文件可由PC机直接打开的特点。
1 国内地铁列车数据记录仪概况
传统的地铁列车数据记录仪一般采用单片机控制,且数据记录载体一般为SD卡或U盘,体积较大、集成度低、价格较高。另外传统的地铁列车数据记录仪的记录文件格式,不能由常规电脑软件直接打开,使用不方便。为此,需设计一种新型的地铁列车数据记录仪。
2 基于ARM的地铁列车数据记录仪的主要配置和功能
2.1 数据记录仪主要配置
该数据记录仪具有1路DC 110 V电源输入接口、1路RS232通信接口、1路CAN通信接口、1路mini SD卡安装座和1路程序下载接口。
2.2 数据记录仪主要功能
该数据记录仪具备以下功能:
① 与地铁列车微机进行RS232通信或CAN通信,接收地铁列车微机发送的运行数据和故障信息;
② 记录通信数据中的地铁列车运行数据,故障信息及时钟信息;
③ 自行生成实时时钟信息,并记录;
④ 在SD卡中,创建TXT格式的记录文件;
⑤ 向SD卡中的TXT文件写入日期信息、时钟信息、地铁列车运行信息和故障信息。
3 基于ARM的地铁列车数据记录仪的设计思路
ARM芯片与PCF8573芯片通信获取实时时钟信息,通过RS232接口或CAN通信接口与地铁列车微机进行通信,接收地铁列车微机地的列车运行数据、故障信息及时钟信息。ARM芯片在SD卡中创建一个TXT文件,用于存储地铁列车运行数据、故障信息及时钟信息。PCF8573芯片采用CR1220电池供电,当数据记录仪断电后,PCF8573芯片仍可正常工作,有效保证了时钟信息正确。数据记录仪原理框图如图1所示。
图1 数据记录仪原理框图
4 硬件设计原理
ARM芯片为该数据记录仪的控制核心,负责与地铁列车微机进行RS232/CAN通信,接收地铁列车的运行数据、故障信息及时钟信息(还可自行计算时钟数据)和执行SD写卡操作(将地铁列车运行数据、故障信息及时钟信息写入SD卡中的TXT文本文件)。
4.1 电源电路
电源电路原理如图2、图3所示。
图2 电源电路原理1
图3 电源电路原理2
4.2 ARM处理器外围电路
ARM,既是一个公司的名字,也是一类微处理器的通称。ARM公司于1991年成立于英国,专门从事ARM芯片研发,本身不直接从事芯片生产,靠转让设计许可,由合作公司生产各具特色的ARM芯片。由于其功能强大、价格低廉,ARM微处理器已占据了32位RISC微处理器75%以上的市场份额。
该数据记录仪使用的ARM芯片是由意大利ST公司生产的型号为“STM32F103RCT6”的芯片。STM32F103RCT6芯片主要参数如下:ARM Cortex-M3内核;FLASH:256 KB;RAM:48 KB;封装:LQFP64;通用I/O:51个;工作电压:2.0~3.6 V;16位定时器数量:8个;电机控制器定时器:2个;数据总线宽度:32位;最高主频:72 MHz;12位ADC转换单元:3个;12位ADC通道:16个;12位DAC转换器:2个;SPI接口:3个;I2S:2个;I2C:2个;U(S)ART,3+2个;CAN:1个;SDIO:1个;从USB:1个;工作温度:-40~+85 ℃。
每个GPIO引脚都可由软件配置成输出(推挽或开漏)、输入(带或不带上拉或下拉)或复用的外设功能端口。多数GPIO引脚都与数字或模拟的复用外设共用。除了具有模拟输入功能的端口,所有的GPIO引脚都有大电流通过能力。 ARM处理器外围电路如图4所示。
图4 ARM处理器外围电路
4.3 时钟电路设计
4.3.1 PCF8563芯片介绍
PCF8563是PHILIPS 公司推出的一款工业级内含I2C 总线接口功能的,具有极低功耗的多功能时钟/日历芯片。PCF8563的多种报警功能、定时器功能、时钟输出功能以及中断输出功能能完成各种复杂的定时服务,甚至可为单片机提供看门狗功能。内部具有时钟电路、内部振荡电路、内部低电压检测电路1.0 V 以及两线制I2C 总线通信方式,不但使外围电路及其简洁,而且也增加了芯片的可靠性。当然作为时钟芯片,它已被广泛用于电表、水表、气表、电话、传真机、便携式仪器以及电池供电的仪器仪表等。
4.3.2 时钟电路设计原理
32.768 Hz晶振为PCF8563芯片提供时钟频率,PCF8563芯片计算时间数据(年月日时分秒),并将计算出的时间数据通过I2C总线发送给ARM芯片。时钟电路原理图如图5所示。
图5 时钟电路原理图
4.4 通信电路
4.4.1 RS232通信电路
数据记录仪自带1路RS232通信接口,可与地铁列车微机通信,接收地铁列车运行数据、故障信息及时钟信息。MAX232芯片是专为RS232标准串口设计的电平转换芯片,MAX232的T2in引脚与ARM芯片的PA9引脚连接,MAX232的R2in引脚与ARM芯片的PA10引脚连接,PA9和PA10引脚除了具有GPIO功能外,还具有USART(RX)功能。
图6 RS232通信电路
4.4.2 CAN通信电路
数据记录仪自带1路CAN通信接口,可与地铁列车CAN通信网络通信,接收地铁列车运行数据、故障信息及时钟信息。CAN接口兼容规范2.0A和2.0B(主动),位速率高达1 MB/s。它可以接收和发送11位标识符的标准帧,也可以接收和发送29位标识符的扩展帧。具有3个发送邮箱和2个接收FIFO,3级14个可调节的滤波器。 CAN通信电路如图7所示。
4.5 写SD卡电路
图7 CAN通信电路
STM32F103RCT6自带一个SDIO接口。SD/SDIO/MMC主机接口可以支持MMC卡系统规范4.2版中的3个不同的数据总线模式:1位(默认)、4位和8位。在8位模式下,该接口可以使数据传输速率达到48 MHz,该接口兼容SD存储卡规范2.0版。 SDIO存储卡规范2.0版支持两种数据总线模式:1位(默认)和4位。 目前的芯片版本只能一次支持一个SD/SDIO/MMC 4.2版的卡,但可以同时支持多个MMC 4.1版或之前版本的卡。 除了SD/SDIO/MMC,这个接口完全与CE-ATA数字协议版本1.1兼容。
ARM芯片SDIO接口定义为PC8:SDIO_D0;PC9:SDIO_D1;PC10:SDIO_D2;PC11:SDIO_D3;PC12:SDIO_CK。SD卡接口电路如图8所示。
图8 SD卡接口电路
5 程序设计原理
STM32官方函数库是由ST公司针对STM32提供的函数接口,即 API (Application Program Interface),开发者可调用这些函数接口来配置STM32的寄存器,使开发人员得以脱离最底层的寄存器操作,有开发快速、易于阅读、维护成本低等优点。 数据记录仪编程时,直接调用了STM32官方V3.5库函数。
5.1 时钟采集程序原理
考虑到ARM芯片内置的RTC时钟不准确,该数据记录仪在ARM芯片外围配置一块PCF8563芯片,由PCF8563芯片计算年、月、日、时、分和秒信息, 并通过I2C通信实时发送给ARM芯片。
5.2 写SD卡程序原理
FATFS是面向小型嵌入式系统的一种通用的 FAT 文件系统,完全是AISI C语言编写并且完全独立于底层的I/O介质。因此它可以很容易地不加修改地移植到其它的处理器当中,如8051、PIC、AVR和ARM等。FATFS支持FAT12、FAT16、FAT32等格式。利用写好的SDIO 驱动,把FATFS文件系统代码移植到程序代码之中,就可利用文件系统的各种函数,对已格式化的 SD 卡进行文件读写操作。
首先获取一个完整的文件系统源码,然后移植。
第一步,调用函数,初始化底层硬件。编程语句:disk_initialize(0 )。
第二步,在刚开辟的工作区的盘符0下打开一个名为“地铁列车数据记录仪文本记录.TXT ”的文件,以只写的方式打开,如果文件不存在的话则创建这个文件,并将“地铁列车数据记录仪文本记录.TXT”这个文件关联到 fsrc这个结构指针。编程语为f_open( &fsrc ,"0:/Demo.TXT",FA_CREATE_NEW|FA_WRITE)。
第三步,将缓冲区的数据写到刚打开的“地铁列车数据记录仪文本记录.TXT”文件中。编程语句为:f_write(&fsrc,textFileBuffer,sizeof(textFileBuffer),&br)。
第四步,写完之后,调用函数。关闭文件,编程语句:f_close(&fsrc)。
结 语
[1] 刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社,2013.
[2] 李江全,李丹阳,刘育辰,计算机控制技术[M].北京:机械工业出版社,2007.