SD卡在記錄汽車CAN總線數(shù)據(jù)中的應(yīng)用
提出了用SD卡來(lái)實(shí)現(xiàn)記錄汽車CAN總線數(shù)據(jù)的設(shè)計(jì),介紹了基于LPC2368的SD卡FAT文件系統(tǒng)的實(shí)現(xiàn)方法,并給出了該設(shè)計(jì)的硬件接口與軟件實(shí)現(xiàn),闡述了SD卡應(yīng)用于大容量數(shù)據(jù)記錄的優(yōu)點(diǎn)。
關(guān)鍵詞: CAN總線;SD卡;FAT文件系統(tǒng);數(shù)據(jù)記錄
CAN總線是德國(guó)BOSCH公司在20世紀(jì)80年代初,為了解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開(kāi)發(fā)的一種串行數(shù)據(jù)通信協(xié)議。它的短幀數(shù)據(jù)結(jié)構(gòu)、非破壞性總線性仲裁技術(shù)以及靈活的通信方式適應(yīng)了汽車的實(shí)時(shí)性和可靠性要求,備受汽車生產(chǎn)廠商的青睞。目前,汽車上的ECU(電控單元)之間使用CAN總線進(jìn)行通信,例如電控燃油噴射系統(tǒng)、電控傳動(dòng)系統(tǒng)、防抱死制動(dòng)系統(tǒng)(ABS)和防滑控制系統(tǒng)(ASR)等,記錄汽車CAN總線上的數(shù)據(jù)對(duì)于監(jiān)控汽車ECU間正確通信和研究汽車CAN網(wǎng)絡(luò)故障的原因具有重要的意義。
設(shè)計(jì)以SD卡作存儲(chǔ)載體,實(shí)現(xiàn)實(shí)時(shí)記錄CAN總線上數(shù)據(jù)的記錄儀,具有容量大、體積小、重量輕、接口電路簡(jiǎn)單等特點(diǎn)。并且記錄的數(shù)據(jù)文件可以為PC機(jī)所識(shí)別,通過(guò)PC機(jī)上的分析軟件對(duì)其進(jìn)行分析和回放,作為歷史數(shù)據(jù)用于數(shù)據(jù)對(duì)比。
1 系統(tǒng)設(shè)計(jì)
SD卡應(yīng)用于CAN總線數(shù)據(jù)記錄儀的系統(tǒng)結(jié)構(gòu)圖如圖1所示,CAN總線數(shù)據(jù)儀工作時(shí)應(yīng)掛接到汽車CAN總線上,成為一個(gè)CAN節(jié)點(diǎn),以便采集CAN數(shù)據(jù)信息。主控芯片的主要作用是進(jìn)行數(shù)據(jù)采集并將采集到的CAN數(shù)據(jù)以文件格式存儲(chǔ)在SD卡上。此外,SD卡在數(shù)據(jù)組織結(jié)構(gòu)上與PC機(jī)格式兼容,這里選用FAT32文件系統(tǒng),使記錄數(shù)據(jù)可以直接供Windows操作系統(tǒng)下的應(yīng)用程序使用。
2 硬件接口設(shè)計(jì)
硬件平臺(tái)的控制核心采用NXP公司的ARM7芯片LPC2368, 該芯片是基于ARM7TDMI-S內(nèi)核的32位微控制器,可在高達(dá)72 MHz的頻率下操作,功能強(qiáng)大且成本低,具有高達(dá)512 KB的片內(nèi)Flash、32 KB的SRAM,內(nèi)部具有豐富的系統(tǒng)外圍設(shè)備控制器,包括SD控制器和CAN控制器。
SD卡支持2種工作模式:SD模式和SPI模式。SD模式允許4線高速數(shù)據(jù)傳輸,SPI模式允許簡(jiǎn)單通用的SPI通道接口, 但讀寫速度大大降低。由于CAN總線數(shù)據(jù)傳輸速率較高,因此本設(shè)計(jì)采用SD模式的4線高速數(shù)據(jù)傳輸功能。
LPC2368與SD卡接口電路如圖2所示,使用SD通信協(xié)議將SD和LPC2368相連實(shí)現(xiàn)數(shù)據(jù)傳輸。CMD傳輸SD控制器的命令及相關(guān)參數(shù)和SD卡對(duì)命令的響應(yīng)信號(hào),DAT0、DAT1、DAT2、DAT3傳輸讀寫數(shù)據(jù),CLK為時(shí)鐘信號(hào),并由主控芯片來(lái)控制SD卡的電源。
3 軟件設(shè)計(jì)
3.1 SD卡底層讀寫
SD卡的讀寫操作都是基于命令的,主控芯片通過(guò)向SD卡發(fā)送相應(yīng)的命令并讀取相應(yīng)的響應(yīng)來(lái)實(shí)現(xiàn)對(duì)SD卡的控制,在對(duì)SD卡讀寫之前,首先要對(duì)SD控制器進(jìn)行初始化,完成各項(xiàng)參數(shù)的配置,包括控制器與CPU數(shù)據(jù)傳輸?shù)腄MA方式、傳輸速率和讀寫數(shù)據(jù)塊長(zhǎng)度等,之后需要對(duì)SD卡進(jìn)行初始化,這是確保SD卡正常數(shù)據(jù)讀寫的前提。SD卡的初始化流程如圖3所示。
評(píng)論