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