新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 車載CAN總線記錄儀實(shí)現(xiàn)大容量存儲(chǔ)系統(tǒng)

車載CAN總線記錄儀實(shí)現(xiàn)大容量存儲(chǔ)系統(tǒng)

作者: 時(shí)間:2012-04-12 來源:網(wǎng)絡(luò) 收藏

引言

  CAN 是Controller Area Network 的縮寫(以下稱為CAN),是ISO國際標(biāo)準(zhǔn)化的串行通信協(xié)議。近年來,其所具有的高可靠性和良好的錯(cuò)誤檢測(cè)能力受到重視,被廣泛應(yīng)用于汽車計(jì)算機(jī)控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強(qiáng)和振動(dòng)大的工業(yè)環(huán)境。本文利用“FPGA+單片機(jī)”作為存儲(chǔ)控制器,采用基于LZW算法的數(shù)據(jù)壓縮技術(shù),以SDRAM作為周期存儲(chǔ)和緩存,SD卡作為最終存儲(chǔ)載體,實(shí)現(xiàn)實(shí)現(xiàn)大容量存儲(chǔ)系統(tǒng)

  1 系統(tǒng)整體結(jié)構(gòu)設(shè)計(jì)

  

車載CAN總線記錄儀實(shí)現(xiàn)大容量存儲(chǔ)系統(tǒng)框圖

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

  2 系統(tǒng)硬件設(shè)計(jì)

  2.1 FPGA主控模塊

  FPGA選用Altera公司的Cyclone II系列芯片EP2C5T14418N,它具有內(nèi)部資源豐富、速度快的特點(diǎn)。上電后,主控模塊使能CAN總線監(jiān)聽控制模塊、數(shù)據(jù)壓縮模塊、SDRAM控制模塊。如果選擇周期存儲(chǔ),則不使能單片機(jī);若選擇直接存儲(chǔ),則讓單片機(jī)處于低功耗狀態(tài),當(dāng)SDRAM有數(shù)據(jù)時(shí)FPGA把數(shù)據(jù)發(fā)給單片機(jī),并使其控制CH376工作。

  2.2 數(shù)據(jù)壓縮模塊

  

LZW算法流程
壓縮算法采用LZW算法。該算法是一種基于字典的壓縮算法,在數(shù)據(jù)的壓縮過程中會(huì)根據(jù)輸入的數(shù)據(jù)動(dòng)態(tài)地建立一個(gè)字典。后續(xù)輸入的數(shù)據(jù)都會(huì)在這個(gè)字典中進(jìn)行匹配查找,根據(jù)查找是否成功決定壓縮編碼的輸出。LZW壓縮算法流程如圖2所示。根據(jù)該流程,采用C語言設(shè)計(jì)壓縮與解壓縮軟件以驗(yàn)證算法和硬件壓縮的正確性,用Verilog語言編寫了壓縮代碼,利用FPGA內(nèi)部RAM資源建立字典。LZW壓縮算法的硬件邏輯功能框圖如圖3所示。

  


上一頁 1 2 下一頁

關(guān)鍵詞: 車載CAN 總線記錄儀 大容量存儲(chǔ)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉