, ,
(1.青島地鐵集團有限公司運營分公司車輛部,青島 266000;2.中車四方車輛有限公司;3.北京城建設計發展集團股份有限公司)
地鐵列車制造廠家會根據客戶需求,選擇為地鐵列車安裝數據記錄儀。地鐵列車數據記錄儀是用于實時記錄地鐵列車運行數據和故障信息的專用設備。基于ARM芯片的地鐵列車數據記錄儀以ARM芯片為核心,具有RS232通信、CAN通信和在SD卡生成TXT記錄文件的功能,具有體積小、記錄文件可由PC機直接打開的特點。
傳統的地鐵列車數據記錄儀一般采用單片機控制,且數據記錄載體一般為SD卡或U盤,體積較大、集成度低、價格較高。另外傳統的地鐵列車數據記錄儀的記錄文件格式,不能由常規電腦軟件直接打開,使用不方便。為此,需設計一種新型的地鐵列車數據記錄儀。
該數據記錄儀具有1路DC 110 V電源輸入接口、1路RS232通信接口、1路CAN通信接口、1路mini SD卡安裝座和1路程序下載接口。
該數據記錄儀具備以下功能:
① 與地鐵列車微機進行RS232通信或CAN通信,接收地鐵列車微機發送的運行數據和故障信息;
② 記錄通信數據中的地鐵列車運行數據,故障信息及時鐘信息;
③ 自行生成實時時鐘信息,并記錄;
④ 在SD卡中,創建TXT格式的記錄文件;
⑤ 向SD卡中的TXT文件寫入日期信息、時鐘信息、地鐵列車運行信息和故障信息。
ARM芯片與PCF8573芯片通信獲取實時時鐘信息,通過RS232接口或CAN通信接口與地鐵列車微機進行通信,接收地鐵列車微機地的列車運行數據、故障信息及時鐘信息。ARM芯片在SD卡中創建一個TXT文件,用于存儲地鐵列車運行數據、故障信息及時鐘信息。PCF8573芯片采用CR1220電池供電,當數據記錄儀斷電后,PCF8573芯片仍可正常工作,有效保證了時鐘信息正確。數據記錄儀原理框圖如圖1所示。

圖1 數據記錄儀原理框圖
ARM芯片為該數據記錄儀的控制核心,負責與地鐵列車微機進行RS232/CAN通信,接收地鐵列車的運行數據、故障信息及時鐘信息(還可自行計算時鐘數據)和執行SD寫卡操作(將地鐵列車運行數據、故障信息及時鐘信息寫入SD卡中的TXT文本文件)。
電源電路原理如圖2、圖3所示。

圖2 電源電路原理1

圖3 電源電路原理2
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.1 PCF8563芯片介紹
PCF8563是PHILIPS 公司推出的一款工業級內含I2C 總線接口功能的,具有極低功耗的多功能時鐘/日歷芯片。PCF8563的多種報警功能、定時器功能、時鐘輸出功能以及中斷輸出功能能完成各種復雜的定時服務,甚至可為單片機提供看門狗功能。內部具有時鐘電路、內部振蕩電路、內部低電壓檢測電路1.0 V 以及兩線制I2C 總線通信方式,不但使外圍電路及其簡潔,而且也增加了芯片的可靠性。當然作為時鐘芯片,它已被廣泛用于電表、水表、氣表、電話、傳真機、便攜式儀器以及電池供電的儀器儀表等。
4.3.2 時鐘電路設計原理
32.768 Hz晶振為PCF8563芯片提供時鐘頻率,PCF8563芯片計算時間數據(年月日時分秒),并將計算出的時間數據通過I2C總線發送給ARM芯片。時鐘電路原理圖如圖5所示。

圖5 時鐘電路原理圖
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所示。

圖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卡接口電路
STM32官方函數庫是由ST公司針對STM32提供的函數接口,即 API (Application Program Interface),開發者可調用這些函數接口來配置STM32的寄存器,使開發人員得以脫離最底層的寄存器操作,有開發快速、易于閱讀、維護成本低等優點。 數據記錄儀編程時,直接調用了STM32官方V3.5庫函數。
考慮到ARM芯片內置的RTC時鐘不準確,該數據記錄儀在ARM芯片外圍配置一塊PCF8563芯片,由PCF8563芯片計算年、月、日、時、分和秒信息, 并通過I2C通信實時發送給ARM芯片。
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.