《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 車載CAN總線記錄儀的大容量存儲系統(tǒng)設(shè)計
車載CAN總線記錄儀的大容量存儲系統(tǒng)設(shè)計
孫東哲 徐 鵬
摘要: 為解決車載CAN總線記錄儀長時間記錄時數(shù)據(jù)量與存儲容量之間的矛盾,設(shè)計出基于“FPGA+單片機”的大容量存儲系統(tǒng),;詳細(xì)闡述了系統(tǒng)的整體結(jié)構(gòu),、硬件電路設(shè)計,采用兩種存儲模式,,將數(shù)據(jù)導(dǎo)入SD卡中后,,計算機可以直接讀取SD卡中的數(shù)據(jù)。實驗表明,,該系統(tǒng)可以穩(wěn)定工作,。
Abstract:
Key words :

引言
    CAN(Controller Area Network,控制器局域網(wǎng))總線是德國Bosch公司在20世紀(jì)80年代初,,為了解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,。它的短幀數(shù)據(jù)結(jié)構(gòu)、非破壞性總線性仲裁技術(shù)以及靈活的通信方式適應(yīng)了汽車的實時性和可靠性要求,,倍受汽車生產(chǎn)廠商的青睞,。隨著汽車電子技術(shù)的發(fā)展,汽車上的ECU(Electronic Control Unit,,電子控制單元)越來越多,,如電控燃油噴射系統(tǒng),、防抱死制動系統(tǒng),、防滑控制系統(tǒng)等,相應(yīng)的數(shù)據(jù)量也越來越大,,如何采用合理的存儲" title="存儲">存儲方案是記錄儀等大容量存儲系統(tǒng)的關(guān)鍵,。本文詳細(xì)闡述了大容量存儲系統(tǒng)系統(tǒng)的整體結(jié)構(gòu)、硬件電路設(shè)計。利用“FPGA+單片機”作為存儲控制器,,采用基于LZW算法的數(shù)據(jù)壓縮技術(shù),,以SDRAM作為周期存儲和緩存,SD卡作為最終存儲載體,。實驗結(jié)果表明,,該存儲系統(tǒng)可以很好地應(yīng)用于車載信息記錄儀。

1 系統(tǒng)整體結(jié)構(gòu)設(shè)計
   
如圖1所示,,存儲系統(tǒng)主要包括以下模塊:FPGA主控模塊,、CAN總線" title="CAN總線">CAN總線監(jiān)聽控制模塊、數(shù)據(jù)壓縮模塊,、SDRAM控制模塊和單片機控制CH376模塊,。本文主要介紹存儲部分,CAN總線監(jiān)聽控制模塊不做介紹,。圖中,,點畫線內(nèi)的部分均由FPGA控制。后端SD卡由MSP430單片機控制,,SD協(xié)議芯片采用CH376,。FPGA控制CAN總線控制芯片、CAN總線收發(fā)器" title="收發(fā)器">收發(fā)器從總線上獲取數(shù)據(jù),,經(jīng)過數(shù)據(jù)壓縮模塊壓縮,,存入SDRAM里。這里采用兩種存儲模式:一種是利用SDRAM存儲的可覆蓋性進行周期存儲,,具體存儲周期由壓縮率和SDRAM容量決定,;另一種是直接存儲,SDRAM作為緩存,。當(dāng)選擇直接存儲時,,F(xiàn)PGA與單片機通信,利用FIFO給單片機發(fā)送數(shù)據(jù),,單片機控制CH376將數(shù)據(jù)存入SD卡(存儲時間由SD卡容量決定),。



2 系統(tǒng)硬件設(shè)計
2.1 FPGA主控模塊

    FPGA選用Altera公司的Cyclone II" title="Cyclone II">Cyclone II系列芯片EP2C5T14418N" title="EP2C5T14418N">EP2C5T14418N,它具有內(nèi)部資源豐富,、速度快的特點,。上電后,主控模塊使能CAN總線監(jiān)聽控制模塊,、數(shù)據(jù)壓縮模塊,、SDRAM控制模塊。如果選擇周期存儲,,則不使能單片機,;若選擇直接存儲,,則讓單片機處于低功耗狀態(tài),當(dāng)SDRAM有數(shù)據(jù)時FPGA把數(shù)據(jù)發(fā)給單片機,,并使其控制CH376工作,。
2.2 數(shù)據(jù)壓縮模塊
   
壓縮算法采用LZW算法。該算法是一種基于字典的壓縮算法,,在數(shù)據(jù)的壓縮過程中會根據(jù)輸入的數(shù)據(jù)動態(tài)地建立一個字典,。后續(xù)輸入的數(shù)據(jù)都會在這個字典中進行匹配查找,根據(jù)查找是否成功決定壓縮編碼的輸出,。該算法的巧妙之處在于,,壓縮過程中動態(tài)建立的字典不需要與壓縮數(shù)據(jù)流一道進行傳輸和存儲,然而在對數(shù)據(jù)進行解壓時也能夠通過壓縮數(shù)據(jù)流重新建立一個字典,,來完成解壓縮,。LZW壓縮算法流程如圖2所示。根據(jù)該流程,,采用C語言設(shè)計壓縮與解壓縮軟件以驗證算法和硬件壓縮的正確性,,用Verilog語言編寫了壓縮代碼,利用FPGA內(nèi)部RAM資源建立字典,。LZW壓縮算法的硬件邏輯功能框圖如圖3所示,。


2.3 SDRAM控制模塊
    SDRAM(同步動態(tài)隨機存儲器)是一種易失性存儲器,以其容量大,、價格低的特點得到越來越廣泛的應(yīng)用,。但其控制邏輯復(fù)雜,需要周期性刷新操作,、行列管理,、不同延時和命令序列等。圖4是SDRAM的控制狀態(tài)轉(zhuǎn)移圖,。


2.4 單片機控制CH376模塊
   
CH376是一款國產(chǎn)文件管理控制芯片,,用于單片機系統(tǒng)讀寫U盤或者SD卡中的文件。CH376內(nèi)置了SD卡的通信接口,、FATl6,、FAT32以及FAT l2文件系統(tǒng)等固件,無需自己編寫底層協(xié)議,,控制簡單,,提供2 MB、24MHz的SPI設(shè)備接口,,支持連接到單片機的SPI串行總線,。CH376應(yīng)用連接圖如圖5所示。



3 系統(tǒng)仿真與測試
   
程序編寫完之后,,利用Modelsim" title="Modelsim">Modelsim語言仿真軟件對其進行仿真,。ModelSim能提供友好的仿真環(huán)境,是單內(nèi)核支持VHDL和Verilog混合仿真的仿真器,。它采用直接優(yōu)化的編譯技術(shù),、Tcl/Tk技術(shù)和單一內(nèi)核仿真技術(shù),編譯仿真速度快,,編譯的代碼與平臺無關(guān),,是FPGA/ASIC設(shè)計的首選仿真軟件。硬件壓縮與存儲模塊仿真如圖6所示,。仿真結(jié)果表明,,硬件壓縮與軟件壓縮完全符合。



結(jié)語
   
本文設(shè)計了基于“FPGA+單片機”的車載CAN總線采集系統(tǒng),。利用FPGA的優(yōu)勢編寫了數(shù)據(jù)壓縮和SDRAM控制兩個模塊,,作為存儲系統(tǒng)的核心部分;利用單片機控制能力強,、簡單的特點設(shè)計了SD卡存儲控制器,,作為數(shù)據(jù)的最終存儲介質(zhì),以方便用戶在計算機上直接讀取數(shù)據(jù),。實驗表明,,該系統(tǒng)工作穩(wěn)定,適合長時間記錄數(shù)據(jù),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。