亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于無鎖FIFO 隊(duì)列的CAN 總線數(shù)據(jù)采集系統(tǒng)

        2023-01-08 16:49:16郭健忠田瀟寒杜新寶胡文龍
        電子設(shè)計(jì)工程 2023年1期
        關(guān)鍵詞:實(shí)車數(shù)據(jù)量隊(duì)列

        郭健忠,田瀟寒,謝 斌,杜新寶,胡文龍

        (1.武漢科技大學(xué)汽車與交通工程學(xué)院,湖北武漢 430065;2.武漢保華顯示科技有限公司,湖北 武漢 430082)

        CAN(Controller Area Network)總線作為目前唯一具有國際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線,其以數(shù)據(jù)在通信過程中突出的可靠性、實(shí)時(shí)性和靈活性,被作為車載控制器之間的主要通信網(wǎng)絡(luò)[1]。CAN 總線上的報(bào)文數(shù)據(jù)不僅記錄了汽車的實(shí)時(shí)運(yùn)行狀態(tài),而且可以反映出汽車行駛過程中的各種問題[2]。采集和使用好實(shí)車數(shù)據(jù),可以給車輛檢測(cè)、故障診斷與汽車相關(guān)產(chǎn)品開發(fā)等帶來正面影響,其中完整的實(shí)車數(shù)據(jù)可為車輛檢測(cè)與故障診斷提供全面客觀的數(shù)據(jù)依據(jù),同時(shí)運(yùn)用完整的實(shí)車數(shù)據(jù)可以在開發(fā)過程中對(duì)車載電子嵌入式設(shè)備進(jìn)行多工況模擬測(cè)試[3],模擬汽車真實(shí)運(yùn)行環(huán)境,發(fā)現(xiàn)車載電子嵌入式設(shè)備開發(fā)設(shè)計(jì)中的不足,提出改進(jìn)思路,形成分析-改進(jìn)-分析的閉環(huán)設(shè)計(jì)過程[4]。針對(duì)目前CAN 總線數(shù)據(jù)記錄儀在CAN 總線數(shù)據(jù)量大的應(yīng)用場(chǎng)景下存在數(shù)據(jù)丟幀,所采集的數(shù)據(jù)內(nèi)容無法為車輛檢測(cè)與車載電子嵌入式開發(fā)提供完整可靠的數(shù)據(jù)支持,以及人工操作PC 搭配CAN 分析儀采集實(shí)車數(shù)據(jù)流程繁瑣的問題[5-6],有必要設(shè)計(jì)一種可以完整采集總線實(shí)車數(shù)據(jù)、操作簡單的CAN總線數(shù)據(jù)采集方案。

        1 系統(tǒng)方案整體設(shè)計(jì)

        1.1 系統(tǒng)主要功能

        文中所設(shè)計(jì)開發(fā)的系統(tǒng)主要實(shí)現(xiàn)數(shù)據(jù)采集和數(shù)據(jù)存儲(chǔ)兩種功能[7]。

        1)CAN 總線報(bào)文數(shù)據(jù)采集:車載設(shè)備產(chǎn)生的數(shù)據(jù)信息通過CAN 總線進(jìn)行通信,設(shè)計(jì)的系統(tǒng)將采集監(jiān)聽到的總線數(shù)據(jù)信息。

        2)采集數(shù)據(jù)固定格式存儲(chǔ):系統(tǒng)主控芯片將采集到的CAN 總線數(shù)據(jù)以既定格式寫入Micro SD 卡中進(jìn)行存儲(chǔ)。

        1.2 系統(tǒng)工作原理

        文中的CAN 總線數(shù)據(jù)采集系統(tǒng)以CAN 節(jié)點(diǎn)的形式加入車載CAN 總線中,并對(duì)總線中產(chǎn)生的CAN報(bào)文數(shù)據(jù)進(jìn)行監(jiān)聽、采集與記錄。當(dāng)采集系統(tǒng)監(jiān)聽到總線上有CAN 報(bào)文數(shù)據(jù)時(shí),自動(dòng)觸發(fā)系統(tǒng)中斷,并將實(shí)時(shí)采集的數(shù)據(jù)暫存在無鎖FIFO 隊(duì)列中,隊(duì)列依據(jù)數(shù)據(jù)量的多少自動(dòng)調(diào)節(jié)隊(duì)列大小,在保證總線數(shù)據(jù)存儲(chǔ)無誤的同時(shí)改變系統(tǒng)資源占用。系統(tǒng)控制單元將隊(duì)列內(nèi)的數(shù)據(jù)依次取出并將其以標(biāo)準(zhǔn)CANLog 格式存儲(chǔ)到Micro SD 卡中。最終從Micro SD 卡中導(dǎo)出相應(yīng)數(shù)據(jù),為車載電子嵌入式開發(fā)、測(cè)試等提供實(shí)車數(shù)據(jù)支持。

        1.3 無鎖FIFO隊(duì)列算法

        無鎖FIFO 隊(duì)列作為一種受限制線性表,具有只允許在隊(duì)列的前端進(jìn)行刪除操作,而在隊(duì)列的后端進(jìn)行插入操作的特殊性。也是因?yàn)榇颂匦裕钤邕M(jìn)入隊(duì)列的元素才能最先從隊(duì)列中刪除,即先進(jìn)先出[8]。由于隊(duì)列只有一端可以進(jìn)行插入操作,故隊(duì)列中的每一個(gè)元素都是按照先后順序排列的。根據(jù)以上特點(diǎn),無鎖FIFO 隊(duì)列在實(shí)際應(yīng)用中常用于流量削峰、日志處理場(chǎng)等景中[9]。文中所設(shè)計(jì)的CAN 總線數(shù)據(jù)采集系統(tǒng)屬于單生產(chǎn)者單消費(fèi)者問題,不涉及多生產(chǎn)者多消費(fèi)者情況,可避免多生產(chǎn)者多消費(fèi)者隊(duì)列中ABA 問題帶來的不利影響[10]。

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

        系統(tǒng)硬件主要由核心板和功能擴(kuò)展板兩部分組成,功能口展板搭載CAN 數(shù)據(jù)采集模塊與數(shù)據(jù)存儲(chǔ)模塊。CAN 總線數(shù)據(jù)采集系統(tǒng)工作時(shí)作為CAN 節(jié)點(diǎn)接入總線中,對(duì)車輛CAN 總線上的電子設(shè)備進(jìn)行監(jiān)聽并采集存儲(chǔ)車輛在運(yùn)行過程中所產(chǎn)生的數(shù)據(jù)信息。系統(tǒng)中的Micro SD 卡可隨時(shí)取出,用于PC 端讀取數(shù)據(jù)。系統(tǒng)硬件總體設(shè)計(jì)框圖如圖1 所示。

        圖1 系統(tǒng)硬件總體設(shè)計(jì)框圖

        2.1 核心板主控芯片選型

        邏輯控制單元作為整個(gè)系統(tǒng)的核心,控制協(xié)調(diào)著系統(tǒng)中各個(gè)模塊之間的關(guān)系與系統(tǒng)運(yùn)行的穩(wěn)定。因此,選擇合適的主控芯片至關(guān)重要。通過對(duì)比調(diào)研,針對(duì)該系統(tǒng)功能明確、所用外設(shè)資源少的特點(diǎn),綜合各種因素,最終選擇STM32F103ZET6 芯片作為主控芯片,其性能可以保證邏輯程序的流暢性。該系列外設(shè)類型、數(shù)量豐富,具有良好的擴(kuò)展能力。其中,CAN 接口是ST 公司為汽車領(lǐng)域應(yīng)用專門增加的汽車總線接口,支持CAN2.0B 接口標(biāo)準(zhǔn)。

        2.2 功能擴(kuò)展板設(shè)計(jì)

        1)CAN 數(shù)據(jù)采集模塊

        主控設(shè)備采集到的CAN 信號(hào)通過外部CAN 收發(fā)器將電壓差動(dòng)信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)之后,將CAN報(bào)文以數(shù)字信號(hào)的形式存在到指定的郵箱內(nèi)[11]。TJA1042 作為一款高速CAN 收發(fā)器,可為CAN 控制器提供差動(dòng)發(fā)送與接收功能,最高傳輸輸出達(dá)1 Mbit/s,完全符合ISO 11898-2 標(biāo)準(zhǔn)。

        根據(jù)CAN 節(jié)點(diǎn)組成關(guān)系,CAN 數(shù)據(jù)采集單元電路設(shè)計(jì)如圖2 所示。為保證通信過程中的信號(hào)穩(wěn)定性,采用在電路中加上較小電容的共模電感L3來抑制干擾。電阻R42、R43、R342為CAN 總線在高速通信時(shí)提供一個(gè)阻抗以避免回?fù)芨蓴_。

        圖2 CAN數(shù)據(jù)采集單元電路圖

        2)數(shù)據(jù)存儲(chǔ)模塊

        由于CAN 總線上數(shù)據(jù)傳輸量大、傳輸速率快,在對(duì)接收到的CAN 總線數(shù)據(jù)進(jìn)行存儲(chǔ)時(shí)采用Micro SD 卡作為外部設(shè)存儲(chǔ)設(shè)備,Micro SD 卡支持兩種讀寫方式,即SPI 模式與SDIO 模式。在SPI 模式下,主從機(jī)之間只有一條數(shù)據(jù)線用于數(shù)據(jù)傳輸,其傳輸速率為1~2 MB/s。但SDIO 模式允許四線的高速數(shù)據(jù)傳輸,單線傳輸速率可達(dá)到2 MB/s。文中設(shè)計(jì)選擇采用SDIO 模式四線高速數(shù)據(jù)傳輸方式[12]。

        3 系統(tǒng)軟件開發(fā)

        3.1 CAN數(shù)據(jù)采集功能開發(fā)

        CAN 數(shù)據(jù)采集功能的實(shí)現(xiàn)需要完成對(duì)主控芯片內(nèi)部CAN 控制器初始化、CAN 中斷接收進(jìn)行相應(yīng)的程序設(shè)計(jì)。

        1)CAN 控制器初始化

        CAN 控制器初始化通過功能配置函數(shù)操作CAN控制器寄存器、CAN 郵箱寄存器、CAN 篩選器等三大類寄存器,對(duì)CAN 總線工作模式、波特率及濾波器等進(jìn)行配置,為CAN 總線數(shù)據(jù)接收工作準(zhǔn)備好環(huán)境。具體流程圖如圖3 所示。

        圖3 CAN控制器初始化流程圖

        由于CAN 總線網(wǎng)絡(luò)上掛載的節(jié)點(diǎn)數(shù)量多、總線數(shù)據(jù)傳輸量大。為了保證數(shù)據(jù)在采集時(shí)不丟失,無關(guān)信息對(duì)采集產(chǎn)生干擾,在接收方面CAN 控制器具有兩個(gè)三級(jí)FIFO 緩沖結(jié)構(gòu)。此外,在CAN 控制器中包含時(shí)間觸發(fā)機(jī)制,可以為采集到的數(shù)據(jù)提供時(shí)間戳信息。

        2)CAN 接收中斷處理

        從CAN 總線上接收到的數(shù)據(jù)幀經(jīng)過篩選器篩選,通過FIFO 觸發(fā)接收中斷進(jìn)入中斷函數(shù),在中斷服務(wù)中識(shí)別產(chǎn)生中斷的FIFO,讀取相應(yīng)的數(shù)據(jù),再將接收到的CAN 報(bào)文數(shù)據(jù)存入到已經(jīng)初始化的數(shù)據(jù)結(jié)構(gòu)體當(dāng)中。

        3.2 數(shù)據(jù)存儲(chǔ)功能開發(fā)

        CAN 總線數(shù)據(jù)的存儲(chǔ)功能主要基于FatFS 文件系統(tǒng)進(jìn)行開發(fā),與常規(guī)的裸機(jī)直接操作Micro SD 卡相比,利用FatFS 文件系統(tǒng)模塊可以對(duì)Micro SD 的物理地址進(jìn)行高效統(tǒng)一的管理,所存儲(chǔ)的文件可以隨時(shí)在PC 端使用。而裸機(jī)程序操作Micro SD 卡直接將數(shù)據(jù)寫入物理內(nèi)存,查找困難,電腦等其他設(shè)備也無法讀取所存儲(chǔ)的信息。

        1)Micro SD 卡

        Micro SD 卡與主控芯片之間的命令交互需要通過CMD 引腳實(shí)現(xiàn)。在對(duì)Micro SD 卡進(jìn)行讀寫操作之前,需要對(duì)其進(jìn)行初始化,完成各項(xiàng)參數(shù)配置。Micro SD 介入后,自動(dòng)進(jìn)入等待電壓穩(wěn)定需上電延時(shí)至少74 個(gè)時(shí)鐘周期[13]。Micro SD 卡初始化完成之后,對(duì)其進(jìn)行讀寫操作,將采集到的CAN 總線數(shù)據(jù)寫入到Micro SD 卡中。

        2)FatFS 文件系統(tǒng)移植

        FatFS 文件系統(tǒng)在移植的過程中需要用到六個(gè)文件:diskio.c、dickio.h、ff.c、ff.h、integer.h 與ffconf.h[14],其中,integer.h 中定義了FatFS 所使用的各種數(shù)據(jù)類型;ffcinf.h 是關(guān)于FatFS 文件系統(tǒng)模塊的相關(guān)配置;diskio.c 與dickio.h 包含了FatFS 所規(guī)定的標(biāo)準(zhǔn)函數(shù)接口;ff.c 與ff.h 為標(biāo)準(zhǔn)文件,為應(yīng)用程序提供標(biāo)準(zhǔn)文件操作接口,使用時(shí)只需調(diào)用相關(guān)接口即可。在移植時(shí),只需要根據(jù)具體需求更改diskio.c 與ffconf.h 兩個(gè)文件。其移植主要分為以下三個(gè)步驟:

        1)在integer.h 文件內(nèi)根據(jù)需求對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行定義;

        2)根據(jù)具體功能需求,通過ffconf.h 配置FatFS文件系統(tǒng)相關(guān)模塊;

        3)調(diào)用diskio.c 中六個(gè)函數(shù)接口,進(jìn)行底層驅(qū)動(dòng)編寫,完成相關(guān)功能函數(shù)編寫。

        通過上述三步完成FatFS 文件系統(tǒng)移植。FatFS文件系統(tǒng)完成移植后,只需要根據(jù)具體需求調(diào)用相關(guān)函數(shù)即可實(shí)現(xiàn)相關(guān)功能。

        3.3 算法實(shí)現(xiàn)

        在應(yīng)用文中設(shè)計(jì)的系統(tǒng)時(shí),CAN 數(shù)據(jù)報(bào)文最終以CANlog 格式存儲(chǔ),在采集、存儲(chǔ)數(shù)據(jù)報(bào)文時(shí),需要對(duì)報(bào)文信息進(jìn)行逐條處理,廣義上屬于日志處理范疇[15-16]。同時(shí),當(dāng)CAN 總線上的報(bào)文數(shù)據(jù)量激增時(shí),系統(tǒng)需具備處理大流量數(shù)據(jù)的能力。結(jié)合FIFO 隊(duì)列自身特點(diǎn)與應(yīng)用場(chǎng)景大數(shù)據(jù)量的特性,在設(shè)計(jì)開發(fā)時(shí)將FIFO 隊(duì)列融入到數(shù)據(jù)采集、存儲(chǔ)功能當(dāng)中,并對(duì)其進(jìn)行適應(yīng)性改進(jìn),提出了無鎖FIFO 隊(duì)列。當(dāng)總線數(shù)據(jù)量較小時(shí),自適應(yīng)地減小隊(duì)列大小,以減少系統(tǒng)資源占用;當(dāng)總線數(shù)據(jù)量激增時(shí),則自適應(yīng)地增加隊(duì)列大小,以避免數(shù)據(jù)丟失。無鎖FIFO 隊(duì)列算法原理如圖4 所示。

        圖4 無鎖FIFO隊(duì)列算法原理

        系統(tǒng)采集到CAN 總線上產(chǎn)生的報(bào)文數(shù)據(jù)之后,觸發(fā)硬件外部中斷,報(bào)文數(shù)據(jù)作為隊(duì)列元素臨時(shí)存入到無鎖FIFO 隊(duì)列當(dāng)中,完成入隊(duì)操作,此過程通過系統(tǒng)硬件設(shè)備采集數(shù)據(jù)來激活系統(tǒng)軟件功能。隊(duì)列中被臨時(shí)存入數(shù)據(jù)時(shí),系統(tǒng)會(huì)自動(dòng)將隊(duì)列中臨時(shí)存儲(chǔ)的數(shù)據(jù)通過FatFs 文件系統(tǒng)以標(biāo)準(zhǔn)CANLog 格式寫入到Micro SD 卡中,完成出隊(duì)與存儲(chǔ)操作。在入隊(duì)、出隊(duì)操作時(shí),系統(tǒng)會(huì)根據(jù)數(shù)據(jù)量的大小自動(dòng)調(diào)整隊(duì)列大小,其數(shù)據(jù)存儲(chǔ)流程如圖5 所示。

        圖5 數(shù)據(jù)存儲(chǔ)流程圖

        4 實(shí)驗(yàn)測(cè)試與驗(yàn)證

        文中將對(duì)所開發(fā)的CAN 總線數(shù)據(jù)采集系統(tǒng)進(jìn)行相應(yīng)功能驗(yàn)證,主要以室內(nèi)實(shí)驗(yàn)為主,以此對(duì)該系統(tǒng)進(jìn)行初步功能驗(yàn)證。此方法也是設(shè)備研究開發(fā)過程中的主要測(cè)試方法,避免試車測(cè)試過程中繁瑣的安裝流程,提高開發(fā)效率。

        在CAN 總線數(shù)據(jù)采集系統(tǒng)功能驗(yàn)證實(shí)驗(yàn)中,模擬發(fā)送不同ID 的實(shí)車數(shù)據(jù)報(bào)文,發(fā)送周期為100 ms,表2 為PC 端模擬發(fā)送數(shù)據(jù),圖6 為Micro SD 卡中讀取數(shù)據(jù)。通過對(duì)比表2 與圖6 中的報(bào)文主要信息可知,CAN 總線數(shù)據(jù)采集系統(tǒng)所存儲(chǔ)的數(shù)據(jù)完全正確,且無數(shù)據(jù)丟失現(xiàn)象。

        圖6 存儲(chǔ)數(shù)據(jù)讀取

        表2 實(shí)車模擬數(shù)據(jù)報(bào)文

        通過在測(cè)試實(shí)驗(yàn)中加入對(duì)無鎖FIFO 隊(duì)列的功能驗(yàn)證,進(jìn)一步證明無鎖FIFO 隊(duì)列可避免數(shù)據(jù)丟失問題。在所有實(shí)驗(yàn)條件不變的情況下,分別使用有、無鎖FIFO 隊(duì)列系統(tǒng)進(jìn)行模擬實(shí)車數(shù)據(jù)采集,所采集的數(shù)據(jù)對(duì)比如圖7 所示。以第一輪采集到所有模擬發(fā)送的不同ID 實(shí)車數(shù)據(jù)報(bào)文為例,使用無鎖FIFO 隊(duì)列的系統(tǒng)采集到全部ID 的報(bào)文,沒有使用無鎖FIFO隊(duì)列的系統(tǒng)存在丟幀現(xiàn)象,說明CAN 總線數(shù)據(jù)采集系統(tǒng)具有一定可行性。

        圖7 存儲(chǔ)數(shù)據(jù)對(duì)比

        5 結(jié)束語

        文中結(jié)合無鎖FIFO 隊(duì)列,針對(duì)CAN 總線數(shù)據(jù)量大的特點(diǎn),設(shè)計(jì)開發(fā)了基于無鎖FIFO 隊(duì)列的CAN 總線數(shù)據(jù)采集系統(tǒng)。其具有以下優(yōu)勢(shì):

        1)系統(tǒng)運(yùn)用無鎖FIFO 隊(duì)列算法,可根據(jù)CAN 總線上數(shù)據(jù)量的大小自適應(yīng)地調(diào)整隊(duì)列緩沖區(qū)的大小,可避免在實(shí)車數(shù)據(jù)采集過程中的丟幀現(xiàn)象,完成采集總線實(shí)車數(shù)據(jù)。

        2)該系統(tǒng)無需人工跟車操作,實(shí)現(xiàn)脫離PC 端獨(dú)立采集實(shí)車數(shù)據(jù),簡化數(shù)據(jù)采集流程。系統(tǒng)中搭載FatFs 文件系統(tǒng),將總線數(shù)據(jù)以標(biāo)準(zhǔn)格式存儲(chǔ)于Micro SD 卡,生成的文件具有一定通用性,可在PC端相關(guān)軟件中直接讀取。

        猜你喜歡
        實(shí)車數(shù)據(jù)量隊(duì)列
        以絕版“恐龍”自嘲 保時(shí)捷357概念車實(shí)車靜態(tài)體驗(yàn)
        車主之友(2023年2期)2023-05-22 02:50:34
        實(shí)車碰撞試驗(yàn)牽引系統(tǒng)鋼絲繩疲勞損傷問題分析
        基于手機(jī)藍(lán)牙的奧迪A4L發(fā)動(dòng)機(jī)故障設(shè)置系統(tǒng)設(shè)計(jì)
        基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
        計(jì)算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
        高刷新率不容易顯示器需求與接口標(biāo)準(zhǔn)帶寬
        基于WiFi的奧迪A4L發(fā)動(dòng)機(jī)故障設(shè)置系統(tǒng)
        隊(duì)列里的小秘密
        基于多隊(duì)列切換的SDN擁塞控制*
        軟件(2020年3期)2020-04-20 00:58:44
        寬帶信號(hào)采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計(jì)與研究
        電子制作(2019年13期)2020-01-14 03:15:18
        少妇高潮久久蜜柚av| 久久精品熟女亚洲av艳妇| 又色又爽又黄又硬的视频免费观看| 免费a级毛片无码a∨免费软件| 国产白嫩美女在线观看| 99在线精品国产不卡在线观看| 一级呦女专区毛片| 日韩激情网| 日本久久精品在线播放| 精品黄色国产一区二区| 青青草手机在线免费观看视频 | 国产精品国产三级国产av中文| 俺去啦最新地址| 欧美放荡的少妇| 日日噜噜噜夜夜爽爽狠狠| 免费在线亚洲视频| 一区二区三区四区在线观看视频| 日本中文字幕官网亚洲| 男奸女永久免费视频网站| 成人无码av免费网站| 中文字幕欧美人妻精品一区| 精品国产三级a∨在线观看| 国产精品短视频| 嗯啊 不要 啊啊在线日韩a| 国内偷拍视频一区二区| 亚洲女厕偷拍一区二区| 亚洲av午夜精品无码专区| 久久久久久曰本av免费免费| 疯狂做受xxxx高潮欧美日本| 国产午夜亚洲精品一级在线| 日本大胆人体亚裔一区二区| 国产精品伦理久久一区| 亚洲黄色天堂网站在线观看禁18| 97人伦色伦成人免费视频| 成人无码免费一区二区三区| 依依成人影视国产精品| 人妻一区二区三区免费看| 国产精品国产三级国产剧情| 成在线人免费视频| 大伊香蕉在线精品视频75| 91综合久久婷婷久久|