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