欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于汽車CAN總線數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集方法與流程

文檔序號:12134111閱讀:572來源:國知局

本發(fā)明屬于汽車電子技術(shù)領(lǐng)域,具體涉及一種基于汽車CAN總線數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集方法。



背景技術(shù):

在汽車電子領(lǐng)域,整車網(wǎng)絡(luò)化是最為重要的發(fā)展趨勢。在網(wǎng)絡(luò)化的情況下,各個電子系統(tǒng)采用統(tǒng)一的總線進(jìn)行通信。如今,CAN總線已發(fā)展為車輛電子系統(tǒng)的主流總線,因此車載電子設(shè)備采用CAN通信標(biāo)準(zhǔn)交換數(shù)據(jù)是今后的發(fā)展方向。隨著數(shù)字技術(shù)的進(jìn)步,軟件就是儀器的思想已廣泛運(yùn)用到各種領(lǐng)域的監(jiān)測和控制系統(tǒng)中。將嵌入式計算機(jī)應(yīng)用于汽車領(lǐng)域,用軟件的方法實(shí)現(xiàn)汽車儀表和汽車信息系統(tǒng),改善了儀表的精度、實(shí)時性和檔次,使原來只有豪華級汽車才能采用的技術(shù)應(yīng)用于針對普通消費(fèi)者的汽車中,從而可以滿足人們對汽車綜合性能的要求。在這種情況下,現(xiàn)場采集數(shù)據(jù)是非常重要的。

現(xiàn)場數(shù)據(jù)采集一般有兩CAN總線與RS485總線兩種有線組網(wǎng)方式,但是RS485采用主從多址輪詢的方式,實(shí)現(xiàn)多址介入,輪詢周期隨著節(jié)點(diǎn)數(shù)量的增大而加長,影響數(shù)據(jù)傳輸?shù)膶?shí)時性。而CAN總線是一宗有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò),它可靠性高,且網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)個數(shù)在理論上不受限制,各節(jié)點(diǎn)之間實(shí)現(xiàn)自由通信。因此,出現(xiàn)了基于CAN總線汽車數(shù)據(jù)采集的方法。作為目前最流行的現(xiàn)場總線技術(shù)之一的CAN總線,是一種串行通訊協(xié)議,是一種基于微控制器件的網(wǎng)絡(luò),其通訊接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈接層功能。

基于CAN總線汽車數(shù)據(jù)采集的方法的缺陷在于:CAN總線會受到空間干擾、電源波動的影響,有時候會啟動錯誤幀,通知發(fā)送器重發(fā)數(shù)據(jù),同時丟掉錯誤的數(shù)據(jù)幀。另一方面,CAN總線在不同狀態(tài)中節(jié)點(diǎn)的發(fā)送有不同的延遲。



技術(shù)實(shí)現(xiàn)要素:

針對上述現(xiàn)有技術(shù)中存在的問題,本發(fā)明的目的在于提供一種可避免出現(xiàn)上述技術(shù)缺陷的基于汽車CAN總線數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集方法,以便在CAN通信設(shè)備驅(qū)動程序中,增強(qiáng)CAN通信的通信能力、提高通信效率。

為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提供的技術(shù)方案如下:

一種基于汽車CAN總線數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集方法,通過汽車CAN總線數(shù)據(jù)采集系統(tǒng)進(jìn)行數(shù)據(jù)采集,所述汽車CAN總線數(shù)據(jù)采集系統(tǒng)包括依次連接的系統(tǒng)CAN總線、CAN驅(qū)動器、CAN模塊以及分別與CAN模塊相連接的SD卡模塊、LED模塊、上位機(jī)交互模塊。

進(jìn)一步地,所述數(shù)據(jù)采集方法包括:

系統(tǒng)CAN總線與汽車CAN總線對接,設(shè)置好波特率;

CAN驅(qū)動器將采集到的CAN數(shù)據(jù)先保存到一個環(huán)形緩沖區(qū)里面,以供給多個模塊調(diào)用;

CAN模塊從CAN驅(qū)動器中獲取數(shù)據(jù),將數(shù)據(jù)寫入另一個環(huán)形緩沖區(qū)中,然后再將數(shù)據(jù)過濾轉(zhuǎn)發(fā)給SD卡模塊或LED模塊或上位機(jī)交互模塊;

上位機(jī)交互模塊接收CAN模塊過濾轉(zhuǎn)發(fā)的數(shù)據(jù)并進(jìn)行分析處理,然后根據(jù)從電腦終端輸入的命令來執(zhí)行電腦終端命令數(shù)據(jù)操作。

進(jìn)一步地,所述電腦終端命令數(shù)據(jù)操作包括幫助命令、版本命令、顯示數(shù)據(jù)命令、設(shè)置波特率、發(fā)送數(shù)據(jù)幀、設(shè)置過濾模式、實(shí)時發(fā)送數(shù)據(jù)。

進(jìn)一步地,所述CAN模塊包括槽,所述槽內(nèi)包括CAN過濾器和環(huán)形緩沖區(qū)。

進(jìn)一步地,所述SD卡模塊包括互相連接的微處理器和SD卡,所述微處理器與CAN模塊相連接。

進(jìn)一步地,所述LED模塊包括互相連接的微處理器和LED,所述微處理器與CAN模塊相連接。

本發(fā)明提供的基于汽車CAN總線數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集方法,將CAN總線發(fā)出的數(shù)據(jù)都放在同一個環(huán)形緩沖區(qū),使用環(huán)形緩沖區(qū)可以使得讀寫數(shù)據(jù)并發(fā)執(zhí)行,方便了緩存的使用和管理,提高了CAN總線的通信效率和通信能力,同時在上位機(jī)中使用本系統(tǒng)設(shè)置的命令來查看所需的CAN總線發(fā)送的時間和數(shù)據(jù),提高了系統(tǒng)的實(shí)時性和可靠性,提高了通信效率;本發(fā)明可以實(shí)時采集車輛狀況的數(shù)據(jù),并通過CAN總線把數(shù)據(jù)傳至上位機(jī),上位機(jī)動態(tài)顯示數(shù)據(jù)變化,同時采集器的命令可由上位機(jī)進(jìn)行設(shè)定,比如可以設(shè)置CAN總線工作模式的波特率,使采集器和汽車CAN總線互相通訊;也可以通過設(shè)置過濾模式進(jìn)入ID列表,了解它有哪些ID的數(shù)據(jù)幀是已經(jīng)發(fā)送過來的,還可以將這些采集到的數(shù)據(jù)保存到SD卡指定的文件或新生成的文件中,可以很好地滿足實(shí)際應(yīng)用的需要。

附圖說明

圖1為汽車CAN總線數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)框圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,下面結(jié)合附圖和具體實(shí)施例對本發(fā)明做進(jìn)一步說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

一種基于汽車CAN總線數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集方法,通過汽車CAN總線數(shù)據(jù)采集系統(tǒng)進(jìn)行數(shù)據(jù)采集,如圖1所示,所述汽車CAN總線數(shù)據(jù)采集系統(tǒng)包括依次連接的系統(tǒng)CAN總線、CAN驅(qū)動器、CAN模塊以及分別與CAN模塊相連接的SD卡模塊、LED模塊、上位機(jī)交互模塊Mutual;所述SD卡模塊包括互相連接的微處理器stm32和SD卡,所述微處理器stm32與CAN模塊相連接;所述LED模塊包括互相連接的微處理器stm32和LED,所述微處理器stm32與CAN模塊相連接。

所述基于汽車CAN總線數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集方法包括以下步驟:

系統(tǒng)CAN總線與汽車CAN總線對接,設(shè)置好波特率;

CAN驅(qū)動器將采集到的CAN數(shù)據(jù)先保存到一個環(huán)形緩沖區(qū)里面,以供給多個模塊調(diào)用;

CAN模塊從CAN驅(qū)動器中獲取數(shù)據(jù),將數(shù)據(jù)寫入另一個環(huán)形緩沖區(qū)中,然后再將數(shù)據(jù)過濾轉(zhuǎn)發(fā)給SD卡模塊或LED模塊或上位機(jī)交互模塊Mutual;

上位機(jī)交互模塊Mutual接收CAN模塊過濾轉(zhuǎn)發(fā)的數(shù)據(jù)并進(jìn)行分析處理,然后根據(jù)從電腦終端輸入的命令來執(zhí)行電腦終端命令數(shù)據(jù)操作。

所述電腦終端命令數(shù)據(jù)操作包括幫助命令、版本命令、顯示數(shù)據(jù)命令、設(shè)置波特率、發(fā)送數(shù)據(jù)幀、設(shè)置過濾模式、實(shí)時發(fā)送數(shù)據(jù)。

CAN驅(qū)動器是進(jìn)行汽車CAN數(shù)據(jù)采集的中心,將采集到的CAN數(shù)據(jù)先保存到一個環(huán)形緩沖區(qū)RingBuffer里面,可以供給多個模塊調(diào)用,CAN收發(fā)器芯片使用TJA1041型號。

所述CAN模塊包括槽,所述槽內(nèi)包括CAN過濾器和環(huán)形緩沖區(qū)。所述槽可以注冊多個子槽,如圖1中所示子槽1、子槽2……子槽n,用來放置多個功能函數(shù)并且將所有槽均置為可用,然后主函數(shù)即可獲取一個可用的子槽來操作CAN模塊。CAN模塊會從CAN驅(qū)動器中獲取數(shù)據(jù),將數(shù)據(jù)寫入另一個環(huán)形緩沖區(qū)RingBuffer中,然后再將數(shù)據(jù)從已分配的槽中過濾轉(zhuǎn)發(fā)。如圖1中所示,子槽1通過槽端口1與上位機(jī)交互模塊Mutual相連接,子槽2通過槽端口2與SD卡模塊的stm32相連接,子槽3通過槽端口3與LED模塊的stm32相連接。

當(dāng)CAN總線數(shù)據(jù)幀傳送到CAN模塊時,所有的ID都會經(jīng)過CAN過濾器過濾。CAN過濾器可以把一個ID加入CAN過濾器,并允許這個ID的數(shù)據(jù)幀通過;也可以把一個ID從過濾器中刪除,這個ID的幀將不能從過濾器中通過;還可以判斷一個ID是否是有效ID,有效ID將被允許通過,無效ID不被允許通過。

當(dāng)識別到有CAN總線的數(shù)據(jù)幀傳送過來時,汽車CAN總線數(shù)據(jù)采集系統(tǒng)會在LED模塊的stm32中打開定時器,使紅色和綠色LED燈交替閃爍。

當(dāng)上位機(jī)使用命令data或者retrans時,汽車CAN總線數(shù)據(jù)采集系統(tǒng)會將讀取的數(shù)據(jù)保存到SD卡指定的文件或新生成的文件中。

上位機(jī)交互模塊Mutual是整個系統(tǒng)的控制中心,是跟電腦終端的交互模塊,使用串口線和電腦終端的串行通訊端口相連,首先設(shè)置一個槽端口接收CAN盒里面過濾轉(zhuǎn)發(fā)的數(shù)據(jù)并分析處理,接下來是根據(jù)從電腦終端輸入的命令來執(zhí)行以下電腦終端命令數(shù)據(jù)操作:

1.幫助命令(help):顯示幫助手冊;

2.版本命令(version):顯示軟件版本;

3.顯示數(shù)據(jù)命令(data):顯示CAN總線傳送過來的數(shù)據(jù),具體格式如下所示;

(1)data-o:設(shè)置傳輸模式;

(2)data-n:關(guān)閉傳輸模式;

(3)data[-f<filename>][-i|-e]<-a|-d><ID>:-f表示數(shù)據(jù)會被寫入命名的文件中,filename:表示文件將被創(chuàng)建或被創(chuàng)建;

4.設(shè)置波特率(setbd):設(shè)置CAN總線工作的波特率,具體格式如下所示:

(1)setbd[-p<port>]<value>:value表示波特率的數(shù)值,單位是K;

(2)setbd[-p<port>]-a:-a表示自動探索汽車CAN總線工作的波特率;

-p<port>:指定CAN總線端口設(shè)置;port:1或2,默認(rèn)是兩個;

5.發(fā)送數(shù)據(jù)幀(send),格式如下所示:

(1)send[-p<port>]<id><byte0><byte1>...:發(fā)送1幀數(shù)據(jù)或者是反復(fù)發(fā)送1針數(shù)據(jù);<id>:表示id的十六進(jìn)制數(shù)據(jù)幀,應(yīng)該介于0-3ff之間;<byte>:十六進(jìn)制字節(jié)的數(shù)據(jù),單獨(dú)的每個字節(jié)使用空間,只有第一個是8個字節(jié);

(2)send[-p<port>]-s<series_nr>:發(fā)送預(yù)先定義一系列的多個數(shù)據(jù)幀;Series_nr表示預(yù)定義的一系列數(shù)據(jù)將被發(fā)送;

6.設(shè)置過濾模式(filter),格式如下所示:

(1)filter-I:進(jìn)入包含模式;

(2)filter-E:進(jìn)入排除模式;

(3)filter-l:列出包含和排除列表;

(4)filter-m:獲取ID列表;

(5)filter-s:一步一步進(jìn)入設(shè)置模式;

(6)filter[-i|-e]<-a|-d><ID>

-i:包含模式進(jìn)入增加或刪除操作;

-e:排除模式進(jìn)入增加或刪除操作;

-a:把ID加入過濾器中;

-d:把ID從過濾器中刪除;

ID:這個ID發(fā)送的數(shù)據(jù);

7.實(shí)時發(fā)送數(shù)據(jù)(retrans),格式如下所示:

(1)retrans[filename][-o|-n port]:

-n:數(shù)據(jù)將從端口發(fā)出;

-o:數(shù)據(jù)不會從端口發(fā)出;

-l:顯示狀態(tài);

filename:創(chuàng)建文件并將數(shù)據(jù)寫進(jìn)去。

本發(fā)明提供的基于汽車CAN總線數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集方法,將CAN總線發(fā)出的數(shù)據(jù)都放在同一個環(huán)形緩沖區(qū),使用環(huán)形緩沖區(qū)可以使得讀寫數(shù)據(jù)并發(fā)執(zhí)行,方便了緩存的使用和管理,提高了CAN總線的通信效率和通信能力,同時在上位機(jī)中使用本系統(tǒng)設(shè)置的命令來查看所需的CAN總線發(fā)送的時間和數(shù)據(jù),提高了系統(tǒng)的實(shí)時性和可靠性,提高了通信效率;本發(fā)明可以實(shí)時采集車輛狀況的數(shù)據(jù),并通過CAN總線把數(shù)據(jù)傳至上位機(jī),上位機(jī)動態(tài)顯示數(shù)據(jù)變化,同時采集器的命令可由上位機(jī)進(jìn)行設(shè)定,比如可以設(shè)置CAN總線工作模式的波特率,使采集器和汽車CAN總線互相通訊;也可以通過設(shè)置過濾模式進(jìn)入ID列表,了解它有哪些ID的數(shù)據(jù)幀是已經(jīng)發(fā)送過來的,還可以將這些采集到的數(shù)據(jù)保存到SD卡指定的文件或新生成的文件中,可以很好地滿足實(shí)際應(yīng)用的需要。

以上所述實(shí)施例僅表達(dá)了本發(fā)明的實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
海宁市| 峨眉山市| 金昌市| 确山县| 海丰县| 芮城县| 苗栗县| 镇雄县| 孝感市| 开阳县| 罗田县| 北海市| 八宿县| 子长县| 石棉县| 济宁市| 诸暨市| 育儿| 精河县| 哈密市| 南乐县| 盐城市| 遵义县| 许昌县| 邵阳市| 越西县| 新宁县| 嵊州市| 巴林左旗| 遵义市| 茂名市| 尚义县| 沿河| 临澧县| 潮安县| 阜康市| 北京市| 余干县| 福州市| 镇坪县| 榕江县|