<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的行車記錄儀設(shè)計(jì)

          基于CAN總線的行車記錄儀設(shè)計(jì)

          作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏

            系統(tǒng)軟件部分主要功能模塊包括:主程序模塊,初始化模塊,中斷處理模塊。

            3.1 主程序設(shè)計(jì)

            主程序流程圖如圖3所示。

            由流程圖3可看出,在整個(gè)程序運(yùn)行期間,采用查詢的方式來(lái)檢測(cè)電源是否掉電。由于車內(nèi)CAN 信號(hào)發(fā)包頻率均為幾十毫秒,如果液晶屏實(shí)時(shí)顯示數(shù)據(jù)的話,屏幕刷新太快,不易于觀察,因此本系統(tǒng)設(shè)置當(dāng)緩存接收滿時(shí),刷新一次屏幕數(shù)據(jù),這樣的刷新頻率足以滿足用戶的需要,無(wú)論存儲(chǔ)開關(guān)是否閉和,液晶屏均提供顯示服務(wù)。記錄過(guò)程中突然掉電或者用戶斷開存儲(chǔ)開關(guān),都將導(dǎo)致當(dāng)前所記錄文件的關(guān)閉,即修改文件指針和文件長(zhǎng)度等與文件系統(tǒng)相關(guān)的處理。

            

            圖3 主程序流程

            3.2 初始化模塊

            (1)CAN模塊的初始化

            對(duì) CAN控制器的初始化設(shè)計(jì)是重點(diǎn),必須對(duì)寫入的每個(gè)寄存器進(jìn)行仔細(xì)全面的考慮,如果初始化沒成功,系統(tǒng)將無(wú)法正常工作。本記錄儀實(shí)質(zhì)上是作為整個(gè)CAN 網(wǎng)絡(luò)的一個(gè)增加節(jié)點(diǎn)參與通信,網(wǎng)絡(luò)內(nèi)的所有CAN節(jié)點(diǎn)必須同步。要進(jìn)行CAN模塊的初始化,首先必須進(jìn)入初始化模式,通過(guò)設(shè)置IN— ITRQ(CANCTLO)位發(fā)起請(qǐng)求,并得到INITAK(CANCTL1)的回應(yīng)后,MSCAN進(jìn)入初始化模式。在此模式下,通常是對(duì)CAN一 BTR0、CANBTR1、CANIDAR、CANIDMR等寄存器進(jìn)行配置。CANBTR0決定波特率預(yù)分頻和同步跳轉(zhuǎn)寬度的數(shù)值,CAN—BTR1決定周期的寬度、采樣點(diǎn)的位置以及在每個(gè)采樣點(diǎn)進(jìn)行采樣的次數(shù),根據(jù)具體CAN總線通信速率設(shè)置適當(dāng)?shù)闹?。CANIDAR、CANIDMR共同決定哪些ID 幀需要接收,在本系統(tǒng)中,CAN總線記錄儀的目的是接收CAN線數(shù)據(jù)全部報(bào)文,因而設(shè)置CANIDMR為0xFFh,即所有位都不屏蔽,所有的幀都接收。將需要配置的寄存器設(shè)置好后,需退出初始化模式,參與CAN總線通信。

           ?。?)CH375的初始化

            主要是設(shè)置USB的工作模式,通過(guò)CH375提供的SETUSB MODE命令,設(shè)置其工作模式代碼為06H,即USB主機(jī)方式下,自動(dòng)檢測(cè)USB設(shè)備是否連接,當(dāng)USB設(shè)備連接或者斷開時(shí)都會(huì)產(chǎn)生中斷通知外部單片機(jī),并自動(dòng)定時(shí)產(chǎn)生USB幀周期開始包SOF發(fā)送給已經(jīng)連接的USB設(shè)備。通常情況下,設(shè)置USB工作模式在20微秒時(shí)間內(nèi)完成,完成后輸出操作狀態(tài)。通過(guò)讀 PA端口得到操作狀態(tài),查看是否設(shè)置成功。如不成功,表明CH375出錯(cuò),例如芯片型號(hào)錯(cuò)或者處于串口方式或者不支持,則無(wú)法進(jìn)行u盤的讀寫。

            3.3中斷處理模塊

            中斷模塊即接受中斷,由于本系統(tǒng)設(shè)置所有的幀都被接收,因而必須在中斷處理函數(shù)里對(duì)接收到的幀進(jìn)行判斷,并進(jìn)行“解碼”?,F(xiàn)就實(shí)例來(lái)詳細(xì)說(shuō)明“解碼”的過(guò)程,如表1所示,列舉了A5車內(nèi)2個(gè)重要的CAN消息,其ID均是采用標(biāo)準(zhǔn)格式 (11位),數(shù)據(jù)單元占64位(8字節(jié))。中斷接收到數(shù)據(jù)幀后,首先取其ID號(hào),對(duì)于標(biāo)準(zhǔn)幀格式來(lái)說(shuō),IDRO存放的是IDIO~ID3,IDR1的高3 位存放的是ID2~I(xiàn)D0,因此ID號(hào)=(IDR0《《3)l(IDRI》》5),其中ID號(hào)設(shè)置為int型變量。得到ID號(hào)后,將根據(jù)消息列表進(jìn)行消息解碼,例如,假設(shè)取得的ID號(hào)是0xFA,這是來(lái)自發(fā)動(dòng)機(jī)控制單元EMS(enginemanagement system)的消息幀,我們將從它的64位數(shù)據(jù)單元中取出所關(guān)心的數(shù)據(jù),其中64位數(shù)據(jù)在結(jié)果寄存器DSR0-DSR7中的存放順序如表2所示。假設(shè)我們從此幀中取出如下3個(gè)數(shù)據(jù):Engine speedRPM,M eanEfectiveTorque,DriveRequest。

            

            

            表 3列出了它們?cè)?4位數(shù)據(jù)單元中的起始位和所占位數(shù)。在此對(duì)數(shù)據(jù)位數(shù)為16的Engine speed RPM 稍作解釋,由于選用的單片機(jī)采用的是Motorola大端模式,因此其最低位是DSR1中的第8位,而不是DSR0中的第0位,而我們的上層PC機(jī)數(shù)據(jù)分析軟件是Intel格式的,于是需要對(duì)多字節(jié)數(shù)據(jù)進(jìn)行大小端轉(zhuǎn)換。下面給出函數(shù)語(yǔ)句示例:

            

            Engine speed RPM DSR1;

            Engine speed RPM =(Engine speed RPM《《8)IDSR0;

            M eanEfectiveTorque=DSR2;

            DriverRequest=DSR3;

            對(duì)多字節(jié)數(shù)據(jù)需進(jìn)行大小端轉(zhuǎn)換,而單字節(jié)數(shù)據(jù)則是直接拷貝。將采集的數(shù)據(jù)存儲(chǔ)在緩存里,然后結(jié)束本次中斷。

            3.4 其它模塊

            液晶模塊,對(duì)于需要固定顯示的部分,利用“預(yù)制畫面”以減少工作中通訊傳輸?shù)呢?fù)擔(dān)和重復(fù)性工作。讀寫u盤模塊,u盤中的數(shù)據(jù)都是以文件格式存儲(chǔ)的,單片機(jī)讀寫u盤則主要是根據(jù)FAT文件系統(tǒng)進(jìn)行文件和目錄的各種操作,CH375提供了u盤文件級(jí)子程序庫(kù),此庫(kù)支持FAT16和FAT32文件系統(tǒng),用戶只需調(diào)用此庫(kù)的各種API函數(shù)就可實(shí)現(xiàn)數(shù)據(jù)塊的讀寫。A/D轉(zhuǎn)換模塊,對(duì)控制寄存器5(ATDCTL5)的配置要慎重,因?yàn)閷?duì)此寄存器的寫操作將中斷當(dāng)前模數(shù)轉(zhuǎn)換序列并且開始一個(gè)新的轉(zhuǎn)換序列,建議將此寄存器放在前4個(gè)控制寄存器之后配置。

            4 結(jié)束語(yǔ)

            本系統(tǒng)所開發(fā)的行車記錄儀已成功的運(yùn)用于A5車的3萬(wàn)公里、5萬(wàn)公里等各種路試,準(zhǔn)確記錄了行車過(guò)程中的重要數(shù)據(jù),對(duì)于研究人員進(jìn)行性能分析、故障分析、以及標(biāo)定工作提供了重要的數(shù)據(jù)依據(jù)。在已具備CAN 總線的車輛上使用基于CAN的行車記錄儀,可大幅度降低系統(tǒng)復(fù)雜度,并降低成本。對(duì)于不同的車型,只需軟件的少許修改而不需要更改硬件,使得記錄儀具有極高的靈活性和可移植性,從而廣泛應(yīng)用于各種車型。



          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: 行車記錄儀數(shù)據(jù)采集CAN總

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();