, ,
(1.青島地鐵集團有限公司運營分公司車輛部,青島 266000;2.中車四方車輛有限公司;3.北京城建設(shè)計發(fā)展集團股份有限公司)
地鐵列車制造廠家會根據(jù)客戶需求,選擇為地鐵列車安裝數(shù)據(jù)記錄儀。地鐵列車數(shù)據(jù)記錄儀是用于實時記錄地鐵列車運行數(shù)據(jù)和故障信息的專用設(shè)備?;贏RM芯片的地鐵列車數(shù)據(jù)記錄儀以ARM芯片為核心,具有RS232通信、CAN通信和在SD卡生成TXT記錄文件的功能,具有體積小、記錄文件可由PC機直接打開的特點。
傳統(tǒng)的地鐵列車數(shù)據(jù)記錄儀一般采用單片機控制,且數(shù)據(jù)記錄載體一般為SD卡或U盤,體積較大、集成度低、價格較高。另外傳統(tǒng)的地鐵列車數(shù)據(jù)記錄儀的記錄文件格式,不能由常規(guī)電腦軟件直接打開,使用不方便。為此,需設(shè)計一種新型的地鐵列車數(shù)據(jù)記錄儀。
該數(shù)據(jù)記錄儀具有1路DC 110 V電源輸入接口、1路RS232通信接口、1路CAN通信接口、1路mini SD卡安裝座和1路程序下載接口。
該數(shù)據(jù)記錄儀具備以下功能:
① 與地鐵列車微機進行RS232通信或CAN通信,接收地鐵列車微機發(fā)送的運行數(shù)據(jù)和故障信息;
② 記錄通信數(shù)據(jù)中的地鐵列車運行數(shù)據(jù),故障信息及時鐘信息;
③ 自行生成實時時鐘信息,并記錄;
④ 在SD卡中,創(chuàng)建TXT格式的記錄文件;
⑤ 向SD卡中的TXT文件寫入日期信息、時鐘信息、地鐵列車運行信息和故障信息。
ARM芯片與PCF8573芯片通信獲取實時時鐘信息,通過RS232接口或CAN通信接口與地鐵列車微機進行通信,接收地鐵列車微機地的列車運行數(shù)據(jù)、故障信息及時鐘信息。ARM芯片在SD卡中創(chuàng)建一個TXT文件,用于存儲地鐵列車運行數(shù)據(jù)、故障信息及時鐘信息。PCF8573芯片采用CR1220電池供電,當數(shù)據(jù)記錄儀斷電后,PCF8573芯片仍可正常工作,有效保證了時鐘信息正確。數(shù)據(jù)記錄儀原理框圖如圖1所示。
圖1 數(shù)據(jù)記錄儀原理框圖
ARM芯片為該數(shù)據(jù)記錄儀的控制核心,負責與地鐵列車微機進行RS232/CAN通信,接收地鐵列車的運行數(shù)據(jù)、故障信息及時鐘信息(還可自行計算時鐘數(shù)據(jù))和執(zhí)行SD寫卡操作(將地鐵列車運行數(shù)據(jù)、故障信息及時鐘信息寫入SD卡中的TXT文本文件)。
電源電路原理如圖2、圖3所示。
圖2 電源電路原理1
圖3 電源電路原理2
ARM,既是一個公司的名字,也是一類微處理器的通稱。ARM公司于1991年成立于英國,專門從事ARM芯片研發(fā),本身不直接從事芯片生產(chǎn),靠轉(zhuǎn)讓設(shè)計許可,由合作公司生產(chǎn)各具特色的ARM芯片。由于其功能強大、價格低廉,ARM微處理器已占據(jù)了32位RISC微處理器75%以上的市場份額。
該數(shù)據(jù)記錄儀使用的ARM芯片是由意大利ST公司生產(chǎn)的型號為“STM32F103RCT6”的芯片。STM32F103RCT6芯片主要參數(shù)如下:ARM Cortex-M3內(nèi)核;FLASH:256 KB;RAM:48 KB;封裝:LQFP64;通用I/O:51個;工作電壓:2.0~3.6 V;16位定時器數(shù)量:8個;電機控制器定時器:2個;數(shù)據(jù)總線寬度:32位;最高主頻:72 MHz;12位ADC轉(zhuǎn)換單元:3個;12位ADC通道:16個;12位DAC轉(zhuǎn)換器:2個;SPI接口:3個;I2S:2個;I2C:2個;U(S)ART,3+2個;CAN:1個;SDIO:1個;從USB:1個;工作溫度:-40~+85 ℃。
每個GPIO引腳都可由軟件配置成輸出(推挽或開漏)、輸入(帶或不帶上拉或下拉)或復用的外設(shè)功能端口。多數(shù)GPIO引腳都與數(shù)字或模擬的復用外設(shè)共用。除了具有模擬輸入功能的端口,所有的GPIO引腳都有大電流通過能力。 ARM處理器外圍電路如圖4所示。
圖4 ARM處理器外圍電路
4.3.1 PCF8563芯片介紹
PCF8563是PHILIPS 公司推出的一款工業(yè)級內(nèi)含I2C 總線接口功能的,具有極低功耗的多功能時鐘/日歷芯片。PCF8563的多種報警功能、定時器功能、時鐘輸出功能以及中斷輸出功能能完成各種復雜的定時服務(wù),甚至可為單片機提供看門狗功能。內(nèi)部具有時鐘電路、內(nèi)部振蕩電路、內(nèi)部低電壓檢測電路1.0 V 以及兩線制I2C 總線通信方式,不但使外圍電路及其簡潔,而且也增加了芯片的可靠性。當然作為時鐘芯片,它已被廣泛用于電表、水表、氣表、電話、傳真機、便攜式儀器以及電池供電的儀器儀表等。
4.3.2 時鐘電路設(shè)計原理
32.768 Hz晶振為PCF8563芯片提供時鐘頻率,PCF8563芯片計算時間數(shù)據(jù)(年月日時分秒),并將計算出的時間數(shù)據(jù)通過I2C總線發(fā)送給ARM芯片。時鐘電路原理圖如圖5所示。
圖5 時鐘電路原理圖
4.4.1 RS232通信電路
數(shù)據(jù)記錄儀自帶1路RS232通信接口,可與地鐵列車微機通信,接收地鐵列車運行數(shù)據(jù)、故障信息及時鐘信息。MAX232芯片是專為RS232標準串口設(shè)計的電平轉(zhuǎn)換芯片,MAX232的T2in引腳與ARM芯片的PA9引腳連接,MAX232的R2in引腳與ARM芯片的PA10引腳連接,PA9和PA10引腳除了具有GPIO功能外,還具有USART(RX)功能。
圖6 RS232通信電路
4.4.2 CAN通信電路
數(shù)據(jù)記錄儀自帶1路CAN通信接口,可與地鐵列車CAN通信網(wǎng)絡(luò)通信,接收地鐵列車運行數(shù)據(jù)、故障信息及時鐘信息。CAN接口兼容規(guī)范2.0A和2.0B(主動),位速率高達1 MB/s。它可以接收和發(fā)送11位標識符的標準幀,也可以接收和發(fā)送29位標識符的擴展幀。具有3個發(fā)送郵箱和2個接收FIFO,3級14個可調(diào)節(jié)的濾波器。 CAN通信電路如圖7所示。
圖7 CAN通信電路
STM32F103RCT6自帶一個SDIO接口。SD/SDIO/MMC主機接口可以支持MMC卡系統(tǒng)規(guī)范4.2版中的3個不同的數(shù)據(jù)總線模式:1位(默認)、4位和8位。在8位模式下,該接口可以使數(shù)據(jù)傳輸速率達到48 MHz,該接口兼容SD存儲卡規(guī)范2.0版。 SDIO存儲卡規(guī)范2.0版支持兩種數(shù)據(jù)總線模式:1位(默認)和4位。 目前的芯片版本只能一次支持一個SD/SDIO/MMC 4.2版的卡,但可以同時支持多個MMC 4.1版或之前版本的卡。 除了SD/SDIO/MMC,這個接口完全與CE-ATA數(shù)字協(xié)議版本1.1兼容。
ARM芯片SDIO接口定義為PC8:SDIO_D0;PC9:SDIO_D1;PC10:SDIO_D2;PC11:SDIO_D3;PC12:SDIO_CK。SD卡接口電路如圖8所示。
圖8 SD卡接口電路
STM32官方函數(shù)庫是由ST公司針對STM32提供的函數(shù)接口,即 API (Application Program Interface),開發(fā)者可調(diào)用這些函數(shù)接口來配置STM32的寄存器,使開發(fā)人員得以脫離最底層的寄存器操作,有開發(fā)快速、易于閱讀、維護成本低等優(yōu)點。 數(shù)據(jù)記錄儀編程時,直接調(diào)用了STM32官方V3.5庫函數(shù)。
考慮到ARM芯片內(nèi)置的RTC時鐘不準確,該數(shù)據(jù)記錄儀在ARM芯片外圍配置一塊PCF8563芯片,由PCF8563芯片計算年、月、日、時、分和秒信息, 并通過I2C通信實時發(fā)送給ARM芯片。
FATFS是面向小型嵌入式系統(tǒng)的一種通用的 FAT 文件系統(tǒng),完全是AISI C語言編寫并且完全獨立于底層的I/O介質(zhì)。因此它可以很容易地不加修改地移植到其它的處理器當中,如8051、PIC、AVR和ARM等。FATFS支持FAT12、FAT16、FAT32等格式。利用寫好的SDIO 驅(qū)動,把FATFS文件系統(tǒng)代碼移植到程序代碼之中,就可利用文件系統(tǒng)的各種函數(shù),對已格式化的 SD 卡進行文件讀寫操作。
首先獲取一個完整的文件系統(tǒng)源碼,然后移植。
第一步,調(diào)用函數(shù),初始化底層硬件。編程語句:disk_initialize(0 )。
第二步,在剛開辟的工作區(qū)的盤符0下打開一個名為“地鐵列車數(shù)據(jù)記錄儀文本記錄.TXT ”的文件,以只寫的方式打開,如果文件不存在的話則創(chuàng)建這個文件,并將“地鐵列車數(shù)據(jù)記錄儀文本記錄.TXT”這個文件關(guān)聯(lián)到 fsrc這個結(jié)構(gòu)指針。編程語為f_open( &fsrc ,"0:/Demo.TXT",FA_CREATE_NEW|FA_WRITE)。
第三步,將緩沖區(qū)的數(shù)據(jù)寫到剛打開的“地鐵列車數(shù)據(jù)記錄儀文本記錄.TXT”文件中。編程語句為:f_write(&fsrc,textFileBuffer,sizeof(textFileBuffer),&br)。
第四步,寫完之后,調(diào)用函數(shù)。關(guān)閉文件,編程語句:f_close(&fsrc)。
[1] 劉火良,楊森.STM32庫開發(fā)實戰(zhàn)指南[M].北京:機械工業(yè)出版社,2013.
[2] 李江全,李丹陽,劉育辰,計算機控制技術(shù)[M].北京:機械工業(yè)出版社,2007.