基于can總線數(shù)據(jù)存儲(chǔ)的方法及其系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)通信領(lǐng)域,特別是涉及一種車用CAN總線數(shù)據(jù)存儲(chǔ)的方法及其系統(tǒng)。
【背景技術(shù)】
[0002]CAN (Controller Area Network,控制器局域網(wǎng)絡(luò))總線以其穩(wěn)定、高速的特點(diǎn)已經(jīng)廣泛應(yīng)用于汽車車身的數(shù)據(jù)通信,使用CAN總線來(lái)進(jìn)行數(shù)據(jù)通信已成為車載應(yīng)用的最好選擇。但是,在某個(gè)操作系統(tǒng)上數(shù)據(jù)的獲取往往是獨(dú)占的,只能由單個(gè)應(yīng)用程序來(lái)獲取,這樣其他需要相同數(shù)據(jù)的應(yīng)用程序就無(wú)法正常工作。
[0003]然而,現(xiàn)有的CAN總線數(shù)據(jù)存儲(chǔ),通常以Excel表形式存儲(chǔ),且Excel表存儲(chǔ)行數(shù)存在限制,因此,當(dāng)產(chǎn)生CAN總線數(shù)據(jù)時(shí)往往會(huì)產(chǎn)生多個(gè)單個(gè)文件,不便于查詢和分享。例如,當(dāng)一臺(tái)電腦和一個(gè)采集裝置連接而成的CAN總線網(wǎng)路,采集的CAN總線數(shù)據(jù)保存于該電腦的單個(gè)文件中,不能同時(shí)調(diào)用多組數(shù)據(jù)分析處理和比較;如果需要對(duì)多組數(shù)據(jù)比較,則需額外花費(fèi)時(shí)間處理多組數(shù)據(jù);如果要實(shí)現(xiàn)多個(gè)電腦查詢,則只能將該數(shù)據(jù)拷貝至其它終端,缺之尚效管理的能力。
【發(fā)明內(nèi)容】
[0004]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種基于CAN總線數(shù)據(jù)存儲(chǔ)的方法及其系統(tǒng),用于解決現(xiàn)有技術(shù)中CAN總線數(shù)據(jù)存儲(chǔ)時(shí),無(wú)法將CAN總線數(shù)據(jù)分享和查詢的問(wèn)題。
[0005]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種基于CAN總線數(shù)據(jù)存儲(chǔ)的方法,包括:
[0006]采集CAN總線數(shù)據(jù);
[0007]將所述CAN總線數(shù)據(jù)以數(shù)據(jù)包的形式傳輸至服務(wù)器緩存,且生成相應(yīng)數(shù)據(jù)庫(kù)臨時(shí)表;
[0008]根據(jù)采集裝置名與數(shù)據(jù)源名分類所述數(shù)據(jù)庫(kù)臨時(shí)表內(nèi)的CAN總線數(shù)據(jù),生成相應(yīng)的新數(shù)據(jù)包;
[0009]根據(jù)預(yù)設(shè)分類標(biāo)準(zhǔn)依次判斷所述數(shù)據(jù)庫(kù)是否需存儲(chǔ)該新數(shù)據(jù)包,如果按預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)不存在相應(yīng)數(shù)據(jù)包,則將該新數(shù)據(jù)包保存于數(shù)據(jù)庫(kù);如果按照預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)存在相應(yīng)數(shù)據(jù)包,則刪除該新數(shù)據(jù)包。
[0010]優(yōu)選地,所述CAN總線數(shù)據(jù)以數(shù)據(jù)包的形式傳輸至服務(wù)器緩存,具體為:
[0011]CAN總線數(shù)據(jù)傳輸?shù)姆绞桨ㄒ苿?dòng)網(wǎng)絡(luò)、有線以太網(wǎng)和USB網(wǎng)絡(luò)中任意一種或多種。
[0012]優(yōu)選地,所述根據(jù)采集裝置名與數(shù)據(jù)源名分類所述數(shù)據(jù)庫(kù)臨時(shí)表內(nèi)的CAN總線數(shù)據(jù),生成相應(yīng)的新數(shù)據(jù)包,具體為:
[0013]其中,分類所述CAN總線數(shù)據(jù)的標(biāo)準(zhǔn)還包括通道號(hào)、采集時(shí)間、數(shù)據(jù)長(zhǎng)度和CAN總線ID,根據(jù)所述分類標(biāo)準(zhǔn)將所述CAN總線數(shù)據(jù)生成相應(yīng)的新數(shù)據(jù)包。
[0014]優(yōu)選地,所述新數(shù)據(jù)包按照分類所述CAN總線數(shù)據(jù)的標(biāo)準(zhǔn)生成其對(duì)應(yīng)的標(biāo)識(shí)符,以區(qū)分新數(shù)據(jù)包。
[0015]優(yōu)選地,所述根據(jù)預(yù)設(shè)分類標(biāo)準(zhǔn)依次判斷所述數(shù)據(jù)庫(kù)是否需存儲(chǔ)該新數(shù)據(jù)包,如果按預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)不存在相應(yīng)數(shù)據(jù)包,則將該新數(shù)據(jù)包保存于數(shù)據(jù)庫(kù);如果按照預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)存在相應(yīng)數(shù)據(jù)包,則刪除該新數(shù)據(jù)包,具體為:
[0016]服務(wù)器根據(jù)預(yù)設(shè)分類標(biāo)準(zhǔn)依次將新數(shù)據(jù)包在數(shù)據(jù)庫(kù)內(nèi)進(jìn)行匹配,判斷是否存在相應(yīng)分類標(biāo)準(zhǔn)的數(shù)據(jù)包如果按照預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)存在相應(yīng)數(shù)據(jù)包,則將臨時(shí)表內(nèi)緩存的該新數(shù)據(jù)包刪除;如果按預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)不存在相應(yīng)數(shù)據(jù)包,則根據(jù)該新數(shù)據(jù)包的設(shè)備名與數(shù)據(jù)源名為表名,新建相應(yīng)的數(shù)據(jù)表保存該新數(shù)據(jù)包;
[0017]循環(huán)處理新數(shù)據(jù)包,直到所述臨時(shí)表內(nèi)無(wú)數(shù)據(jù)包為止,退出程序。
[0018]本發(fā)明的另一目的在于提供一種基于CAN總線數(shù)據(jù)存儲(chǔ)的系統(tǒng),包括:
[0019]采集裝置,適用于采集CAN總線數(shù)據(jù);
[0020]傳輸單元,適用于將所述CAN總線數(shù)據(jù)以數(shù)據(jù)包的形式傳輸至服務(wù)器緩存;
[0021 ] 服務(wù)器,適用于根據(jù)采集裝置名與數(shù)據(jù)源名分類所述數(shù)據(jù)庫(kù)臨時(shí)表內(nèi)的CAN總線數(shù)據(jù),生成相應(yīng)的新數(shù)據(jù)包;還適用于根據(jù)預(yù)設(shè)分類標(biāo)準(zhǔn)依次判斷所述數(shù)據(jù)庫(kù)是否需存儲(chǔ)該新數(shù)據(jù)包,如果按預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)不存在相應(yīng)數(shù)據(jù)包,則將該新數(shù)據(jù)包保存于數(shù)據(jù)庫(kù);如果按照預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)存在相應(yīng)數(shù)據(jù)包,則刪除該新數(shù)據(jù)包;
[0022]數(shù)據(jù)庫(kù),適用于緩存CAN總線數(shù)據(jù),且根據(jù)所述CAN總線數(shù)據(jù)生成相應(yīng)數(shù)據(jù)庫(kù)臨時(shí)表和根據(jù)服務(wù)器指令存儲(chǔ)新數(shù)據(jù)包。
[0023]優(yōu)選地,所述傳輸單元的傳輸方式包括移動(dòng)網(wǎng)絡(luò)、有線以太網(wǎng)和USB網(wǎng)絡(luò)中任意一種或多種。
[0024]優(yōu)選地,所述服務(wù)器根據(jù)所述CAN總線數(shù)據(jù)的預(yù)設(shè)分類標(biāo)準(zhǔn)將所述CAN總線數(shù)據(jù)生成相應(yīng)的新數(shù)據(jù)包,其中,所述預(yù)設(shè)分類標(biāo)準(zhǔn)包括通道號(hào)、采集時(shí)間、數(shù)據(jù)長(zhǎng)度和CAN總線ID。
[0025]優(yōu)選地,所述新數(shù)據(jù)包按照分類所述CAN總線數(shù)據(jù)的標(biāo)準(zhǔn)生成其對(duì)應(yīng)的標(biāo)識(shí)符,以區(qū)分新數(shù)據(jù)包。
[0026]優(yōu)選地,所述服務(wù)器具體適用于根據(jù)預(yù)設(shè)分類標(biāo)準(zhǔn)依次將新數(shù)據(jù)包在數(shù)據(jù)庫(kù)內(nèi)進(jìn)行匹配,判斷是否存在相應(yīng)分類標(biāo)準(zhǔn)的數(shù)據(jù)包,如果按照預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)存在相應(yīng)數(shù)據(jù)包,則將臨時(shí)表內(nèi)緩存的該新數(shù)據(jù)包刪除;如果按預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)不存在相應(yīng)數(shù)據(jù)包,則刪除該新數(shù)據(jù)包;
[0027]循環(huán)處理新數(shù)據(jù)包,直到所述臨時(shí)表內(nèi)無(wú)數(shù)據(jù)包為止,退出程序。
[0028]如上所述,本發(fā)明的基于CAN總線數(shù)據(jù)存儲(chǔ)的方法及其系統(tǒng),具有以下有益效果:
[0029]通過(guò)構(gòu)建CAN總線網(wǎng)絡(luò),將采集的CAN總線數(shù)據(jù)通過(guò)不同地上傳方式傳輸至服務(wù)器,服務(wù)器根據(jù)不同采集裝置與CAN數(shù)據(jù)源的類別不同,將接收的總線數(shù)據(jù)按照上述方式重新分類,形成類似不同識(shí)別碼的新數(shù)據(jù)包(即,新數(shù)據(jù)包),一一核實(shí)篩選數(shù)據(jù)庫(kù)中是否存儲(chǔ)新數(shù)據(jù)包,將新數(shù)據(jù)包依次存儲(chǔ)。不僅可同時(shí)供多個(gè)客戶端查詢和處理數(shù)據(jù)庫(kù)的多組數(shù)據(jù),實(shí)現(xiàn)CAN總線數(shù)據(jù)的高效管理;還避免重復(fù)存儲(chǔ),節(jié)省了數(shù)據(jù)庫(kù)存儲(chǔ)的資源;通過(guò)多種傳輸方式并用,提升了數(shù)據(jù)庫(kù)存儲(chǔ)的效率。
【附圖說(shuō)明】
[0030]圖1顯示為本發(fā)明實(shí)施例中的一種基于CAN總線數(shù)據(jù)存儲(chǔ)的方法流程圖;
[0031]圖2顯示為本發(fā)明實(shí)施例中的一種基于CAN總線數(shù)據(jù)存儲(chǔ)的網(wǎng)絡(luò)拓?fù)鋱D;
[0032]圖3顯示為本發(fā)明實(shí)施例中的一種基于CAN總線數(shù)據(jù)存儲(chǔ)的系統(tǒng)框架圖。
[0033]元件標(biāo)號(hào)說(shuō)明:
[0034]1、客戶端,2、采集裝置,3、傳輸單元,4、服務(wù)器,5、數(shù)據(jù)庫(kù),6、交換機(jī),7、移動(dòng)網(wǎng)絡(luò),
8、USB網(wǎng)絡(luò)。
【具體實(shí)施方式】
[0035]以下通過(guò)特定的具體實(shí)例說(shuō)明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說(shuō)明書(shū)所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過(guò)另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說(shuō)明書(shū)中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒(méi)有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。
[0036]請(qǐng)參閱圖1至圖3。需要說(shuō)明的是,本實(shí)施例中所提供的圖示僅以示意方式說(shuō)明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0037]實(shí)施例1
[0038]如圖1所示,為本發(fā)明實(shí)施例中的一種基于CAN總線數(shù)據(jù)存儲(chǔ)的方法流程圖,詳述如下:
[0039]在步驟S101中,采集CAN總線數(shù)據(jù);
[0040]其中,采集CAN總線數(shù)據(jù)的方式為采集裝置2,該采集裝置2通過(guò)節(jié)點(diǎn)連接CAN總線,當(dāng)檢測(cè)到總線有數(shù)據(jù)時(shí),直接采集CAN總線數(shù)據(jù)。
[0041]在步驟S102中,將所述CAN總線數(shù)據(jù)以數(shù)據(jù)包的形式傳輸至服務(wù)器4緩存,且生成相應(yīng)數(shù)據(jù)庫(kù)5臨時(shí)表;
[0042]其中,CAN總線數(shù)據(jù)被打包成數(shù)據(jù)包,以數(shù)據(jù)包的形式發(fā)送至服務(wù)器4,服務(wù)器4與采集裝置2之間可通過(guò)移動(dòng)網(wǎng)絡(luò)7、有線以太網(wǎng)、USB網(wǎng)絡(luò)8連接,服務(wù)器4接收到該數(shù)據(jù)包,在數(shù)據(jù)庫(kù)5內(nèi)生成臨時(shí)表,用于緩存該數(shù)據(jù)包。
[0043]在步驟S103中,根據(jù)采集裝置2名與數(shù)據(jù)源名分類所述數(shù)據(jù)庫(kù)5臨時(shí)表內(nèi)的CAN總線數(shù)據(jù),生成相應(yīng)的新數(shù)據(jù)包;
[0044]其中,采集裝置2名為采集裝置2的編號(hào)名稱,所述預(yù)設(shè)分類標(biāo)準(zhǔn)包括CAN總線ID、通道號(hào)、數(shù)據(jù)長(zhǎng)度、采集時(shí)間,所述數(shù)據(jù)庫(kù)5按照采集裝置2名與數(shù)據(jù)源名分類臨時(shí)時(shí)表內(nèi)的CAN總線數(shù)據(jù),生成的新數(shù)據(jù)包相當(dāng)于具有唯一標(biāo)識(shí)符的數(shù)據(jù)包,以新數(shù)據(jù)包的形式緩存于臨時(shí)表內(nèi)。
[0045]所述新數(shù)據(jù)包按照預(yù)設(shè)分類標(biāo)注對(duì)所述CAN總線數(shù)據(jù)生成其對(duì)應(yīng)的標(biāo)識(shí)符,以方便服務(wù)器4區(qū)分新數(shù)據(jù)包。
[0046]在步驟S104中,根據(jù)預(yù)設(shè)分類標(biāo)準(zhǔn)依次判斷所述數(shù)據(jù)庫(kù)5是否需存儲(chǔ)該新數(shù)據(jù)包,如果按預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)5不存在相應(yīng)數(shù)據(jù)包,則將該新數(shù)據(jù)包保存于數(shù)據(jù)庫(kù)5;如果按照預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)5存在相應(yīng)數(shù)據(jù)包,則刪除該新數(shù)據(jù)包。
[0047]其中,所述服務(wù)器4根據(jù)預(yù)設(shè)分類標(biāo)準(zhǔn)依次將新數(shù)據(jù)包在數(shù)據(jù)庫(kù)5內(nèi)進(jìn)行匹配,判斷是否存在相應(yīng)分類標(biāo)準(zhǔn)的數(shù)據(jù)包,如果按照預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)5存在相應(yīng)數(shù)據(jù)包,則將臨時(shí)表內(nèi)緩存的該新數(shù)據(jù)包刪除;如果按預(yù)設(shè)分類標(biāo)準(zhǔn)所述數(shù)據(jù)庫(kù)5不存在相應(yīng)數(shù)據(jù)包,則刪除該新數(shù)據(jù)包;
[0048]循環(huán)處理新數(shù)據(jù)包,直到所述臨時(shí)表內(nèi)無(wú)數(shù)據(jù)包為止,退出程序循環(huán)處理新數(shù)據(jù)包,直到所述臨時(shí)表內(nèi)無(wú)數(shù)據(jù)包為止,退出程序。
[0049]在本實(shí)施例中,通過(guò)將采集裝置2、服務(wù)器4與數(shù)據(jù)庫(kù)5之間建立物理連接,實(shí)現(xiàn)連通物理通道,設(shè)定調(diào)節(jié)采集裝置2和CAN總線網(wǎng)路的波特率一致,以致采集裝置2將CAN總線數(shù)據(jù)采集至CAN總線網(wǎng)絡(luò)。
[0050]在本實(shí)施例中,通過(guò)構(gòu)建CAN總線網(wǎng)絡(luò),將采集的CAN總線數(shù)據(jù)通過(guò)不同地上傳方式傳輸至服務(wù)器4,服務(wù)器4根據(jù)不同采集裝置2與CAN數(shù)據(jù)源的類別不同,將接收的總線數(shù)據(jù)按照上述方