引言
can是controllerareanetwork的縮寫(以下稱為can),是iso標(biāo)準(zhǔn)化的串行通信協(xié)議。近年來,其所具有的高可靠性和良好的錯誤檢測能力受到重視,被廣泛應(yīng)用于汽車計算機(jī)控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強(qiáng)和振動大的工業(yè)環(huán)境。本文利用“fpga+單片機(jī)”作為存儲控制器,采用基于lzw算法的數(shù)據(jù)壓縮技術(shù),以sdram作為周期存儲和緩存,sd卡作為zui終存儲載體,實現(xiàn)車載can總線記錄儀實現(xiàn)大容量存儲系統(tǒng)。
1、系統(tǒng)整體結(jié)構(gòu)設(shè)計
如圖1所示,存儲系統(tǒng)主要包括以下模塊:fpga主控模塊、can總線監(jiān)聽控制模塊、數(shù)據(jù)壓縮模塊、sdram控制模塊和單片機(jī)控制ch376模塊。本文主要介紹存儲部分,can總線監(jiān)聽控制模塊不做介紹。圖中,點畫線內(nèi)的部分均由fpga控制。后端sd卡由msp430單片機(jī)控制,sd協(xié)議芯片采用ch376。fpga控制can總線控制芯片、can總線收發(fā)器從總線上獲取數(shù)據(jù),經(jīng)過數(shù)據(jù)壓縮模塊壓縮,存入sdram里。這里采用兩種存儲模式:一種是利用sdram存儲的可覆蓋性進(jìn)行周期存儲,具體存儲周期由壓縮率和sdram容量決定;另一種是直接存儲,sdram作為緩存。當(dāng)選擇直接存儲時,fpga與單片機(jī)通信,利用fifo給單片機(jī)發(fā)送數(shù)據(jù),單片機(jī)控制ch376將數(shù)據(jù)存入sd卡(存儲時間由sd卡容量決定)。
2、系統(tǒng)硬件設(shè)計
2.1fpga主控模塊
fpga選用altera公司的cycloneii系列芯片ep2c5t14418n,它具有內(nèi)部資源豐富、速度快的特點。上電后,主控模塊使能can總線監(jiān)聽控制模塊、數(shù)據(jù)壓縮模塊、sdram控制模塊。如果選擇周期存儲,則不使能單片機(jī);若選擇直接存儲,則讓單片機(jī)處于低功耗狀態(tài),當(dāng)sdram有數(shù)據(jù)時fpga把數(shù)據(jù)發(fā)給單片機(jī),并使其控制ch376工作。
2.2數(shù)據(jù)壓縮模塊
壓縮算法采用lzw算法。該算法是一種基于字典的壓縮算法,在數(shù)據(jù)的壓縮過程中會根據(jù)輸入的數(shù)據(jù)動態(tài)地建立一個字典。后續(xù)輸入的數(shù)據(jù)都會在這個字典中進(jìn)行匹配查找,根據(jù)查找是否成功決定壓縮編碼的輸出。lzw壓縮算法流程如圖2所示。根據(jù)該流程,采用c語言設(shè)計壓縮與解壓縮軟件以驗證算法和硬件壓縮的正確性,用verilog語言編寫了壓縮代碼,利用fpga內(nèi)部ram資源建立字典。lzw壓縮算法的硬件邏輯功能框圖如圖3所示。
2.3sdram控制模塊
sdram(同步動態(tài)隨機(jī)存儲器)是一種易失性存儲器,以其容量大、價格低的特點得到越來越廣泛的應(yīng)用。但其控制邏輯復(fù)雜,需要周期性刷新操作、行列管理、不同延時和命令序列等。圖4是sdram的控制狀態(tài)轉(zhuǎn)移圖。
2.4單片機(jī)控制ch376模塊
ch376是一款國產(chǎn)文件管理控制芯片,用于單片機(jī)系統(tǒng)讀寫u盤或者sd卡中的文件。ch376內(nèi)置了sd卡的通信接口、fatl6、fat32以及fatl2文件系統(tǒng)等固件,無需自己編寫底層協(xié)議,控制簡單,提供2mb、24mhz的spi設(shè)備接口,支持連接到單片機(jī)的spi串行總線。ch376應(yīng)用連接圖如圖5所示。
3、系統(tǒng)仿真與測試
程序編寫完之后,利用modelsim語言仿真軟件對其進(jìn)行仿真。modelsim能提供友好的仿真環(huán)境,是單內(nèi)核支持vhdl和verilog混合仿真的仿真器。它采用直接優(yōu)化的編譯技術(shù)、tcl/tk技術(shù)和單一內(nèi)核仿真技術(shù),編譯仿真速度快,編譯的代碼與平臺無關(guān),是fpga/asic設(shè)計的仿真軟件。硬件壓縮與存儲模塊仿真如圖6所示。仿真結(jié)果表明,硬件壓縮與軟件壓縮*符合。
4、結(jié)語
本文利用“fpga+單片機(jī)”作為存儲控制器,采用基于lzw算法的數(shù)據(jù)壓縮技術(shù),以sdram作為周期存儲和緩存,sd卡作為zui終存儲載體。實驗結(jié)果表明,該存儲系統(tǒng)可以很好地應(yīng)用于車載信息記錄儀。