本發(fā)明屬于車載健康管理嵌入式存儲(chǔ),具體涉及一種跨平臺(tái)嵌入式存儲(chǔ)功能代碼自動(dòng)生成方法,該方案涉及當(dāng)嵌入式存儲(chǔ)設(shè)備部署不同裝甲車輛平臺(tái)時(shí),相關(guān)的存儲(chǔ)功能代碼程序自動(dòng)生成的方法。
背景技術(shù):
1、信息化條件下的跨平臺(tái)協(xié)同戰(zhàn)斗,戰(zhàn)場(chǎng)空間廣闊,戰(zhàn)斗行動(dòng)速度快,情況復(fù)雜多變,對(duì)保障的時(shí)效性、準(zhǔn)確性、靈活性提出了更高要求。精確高效,是完成裝甲車輛保障任務(wù)的基本目標(biāo)和要求,也是評(píng)估保障效益的基本標(biāo)準(zhǔn)。不管在保障時(shí)機(jī)上、在保障地點(diǎn)上、還是在保障種類和數(shù)量上,跨平臺(tái)協(xié)同作戰(zhàn)背景下亟需進(jìn)行跨平臺(tái)協(xié)同保障??缙脚_(tái)族系化發(fā)展現(xiàn)狀下,裝甲車輛平臺(tái)種類多樣,跨平臺(tái)協(xié)同保障需盡可能縮小保障種類和數(shù)量差。在準(zhǔn)確掌握各保障對(duì)象的需要的基礎(chǔ)上,適當(dāng)富余,避免過量,力求使有限人力、物力最大限度地發(fā)揮保障效能。
2、裝甲車輛惡劣的服役環(huán)境是造成裝備性能退化、功能失效的重要誘因,往往導(dǎo)致裝備發(fā)生瞬態(tài)故障、間歇故障等。在故障機(jī)理不明、故障樣本缺乏的情況下,亟需進(jìn)行裝甲車輛便捷嵌入式數(shù)據(jù)存儲(chǔ)設(shè)計(jì),對(duì)實(shí)車數(shù)據(jù)進(jìn)行長(zhǎng)時(shí)間采樣存儲(chǔ),便于進(jìn)行基于大量數(shù)據(jù)變化趨勢(shì)的性能退化分析。
3、裝甲車輛的類型不同,結(jié)構(gòu)組成不同,相應(yīng)的每類車輛的信息系統(tǒng)需要實(shí)現(xiàn)的信息采集、傳輸、處理、存儲(chǔ)、顯控等功能也都不一樣。根據(jù)任務(wù)特點(diǎn)、作戰(zhàn)環(huán)境、結(jié)構(gòu)特點(diǎn)、成本等因素,不同類型車輛的信息系統(tǒng)的體系架構(gòu)、總線網(wǎng)絡(luò)、接口、功能等存在較大差別??缙脚_(tái)協(xié)同保障背景下,設(shè)計(jì)的便捷嵌入式存儲(chǔ)設(shè)備需適配所有裝甲車輛平臺(tái),存儲(chǔ)設(shè)備可以在各裝甲車輛平臺(tái)間通用。針對(duì)便捷存儲(chǔ)設(shè)備的跨平臺(tái)通用適配需求,不同裝甲車輛平臺(tái)因采集信息不同導(dǎo)致存儲(chǔ)功能不同,如何優(yōu)化平臺(tái)間的適配存儲(chǔ)策略是解決跨平臺(tái)存儲(chǔ)的首要問題;裝甲車輛型號(hào)對(duì)系統(tǒng)組成要求嚴(yán)格,通常不允許額外增加用于存儲(chǔ)功能的部件,便捷存儲(chǔ)功能需要基于任務(wù)模塊的控制單元及其存儲(chǔ)芯片,在不增加額外硬件開支的情況下,如何利用有限存儲(chǔ)容量達(dá)成長(zhǎng)時(shí)間的存儲(chǔ)記錄需求是需要解決的第二個(gè)問題;針對(duì)部署便捷存儲(chǔ)設(shè)備時(shí)裝甲車輛車型發(fā)生改變或車型信息發(fā)生變化時(shí)面臨存儲(chǔ)功能代碼重復(fù)編寫的問題,如何避免存儲(chǔ)代碼編寫過程中大量的數(shù)據(jù)幀信息、位置的重復(fù)核對(duì),實(shí)現(xiàn)存儲(chǔ)功能代碼自動(dòng)生成提高存儲(chǔ)設(shè)備快速高效部署是需要重點(diǎn)考慮的第三個(gè)問題。
技術(shù)實(shí)現(xiàn)思路
1、(一)要解決的技術(shù)問題
2、本發(fā)明要解決的技術(shù)問題是:如何提供一種跨平臺(tái)嵌入式存儲(chǔ)功能代碼自動(dòng)生成方法。
3、(二)技術(shù)方案
4、為解決上述技術(shù)問題,本發(fā)明提供一種跨平臺(tái)嵌入式存儲(chǔ)功能代碼自動(dòng)生成方法,所述跨平臺(tái)嵌入式存儲(chǔ)功能代碼自動(dòng)生成方法基于存儲(chǔ)代碼生成工具來實(shí)施;
5、如圖1所示,所述跨平臺(tái)嵌入式存儲(chǔ)功能代碼自動(dòng)生成方法包括如下步驟:
6、步驟1:所述存儲(chǔ)代碼生成工具通過文件讀取接口接收跨平臺(tái)特定格式協(xié)議文件;
7、步驟2:所述存儲(chǔ)代碼生成工具生成c語言格式的存儲(chǔ)功能代碼文件;
8、步驟3:所述存儲(chǔ)代碼生成工具通過文件輸出接口輸出存儲(chǔ)功能代碼文件。
9、其中,所述步驟1中,所述特定格式協(xié)議文件包括以特定格式信息表形式存放的協(xié)議文件和can文件;
10、所述存儲(chǔ)代碼生成工具通過can數(shù)據(jù)接口接收協(xié)議文件每幀can數(shù)據(jù)的slot、basecycle、cycle?repetition、byte、bit、bit?length以及can文件的can?id、數(shù)據(jù)長(zhǎng)度、信號(hào)起始byte、起始bit、bit長(zhǎng)度信息;
11、在步驟2中,存儲(chǔ)代碼生成工具按照編碼格式,將讀取到的數(shù)據(jù)信息,轉(zhuǎn)換為c語言代碼,輸出成為c語言格式的存儲(chǔ)功能代碼文件。
12、其中,所述步驟1中,所述文件讀取接口為can數(shù)據(jù)接口;
13、如圖2所示,所述存儲(chǔ)代碼生成工具獲取特定格式協(xié)議文件的數(shù)據(jù)信息的過程如下:
14、存儲(chǔ)代碼生成工具打開特定格式協(xié)議文件中的特定格式信息表,判斷是否讀取到特定格式信息表的最后一行;若未讀取到最后一行,則獲取當(dāng)前can幀的起始行和結(jié)束行,并獲取其中的can幀信息;若已讀取到最后一行,則結(jié)束數(shù)據(jù)信息的獲取過程,轉(zhuǎn)入步驟2。
15、其中,所述步驟2包括:
16、步驟21:存儲(chǔ)代碼生成工具將步驟1中接收到的數(shù)據(jù)信息,轉(zhuǎn)換為待分配的c語言代碼數(shù)據(jù);
17、步驟22:存儲(chǔ)代碼生成工具根據(jù)c語言代碼數(shù)據(jù),生成存儲(chǔ)代碼頭文件,即.h文件;
18、步驟23:存儲(chǔ)代碼生成工具根據(jù)c語言代碼數(shù)據(jù),生成存儲(chǔ)代碼c語言文件,即.c文件;
19、步驟24:存儲(chǔ)代碼生成工具根據(jù)c語言代碼數(shù)據(jù),生成存儲(chǔ)功能代碼的存儲(chǔ)結(jié)構(gòu)文件,即.csv文件;
20、步驟25:根據(jù)所述.h文件、.c文件以及.csv文件,生成待輸出的c語言格式的存儲(chǔ)功能代碼文件。
21、其中,所述存儲(chǔ)代碼生成工具中包含存儲(chǔ)代碼生成模塊;
22、所述步驟21中,所述存儲(chǔ)代碼生成模塊將接收到的數(shù)據(jù)信息,作為需要存儲(chǔ)的can數(shù)據(jù)信息,將can數(shù)據(jù)信息轉(zhuǎn)換成待進(jìn)行存儲(chǔ)的c語言代碼數(shù)據(jù);
23、其具體過程如下:
24、如圖3所示,首先,獲取can信息表的相關(guān)信息;然后,根據(jù)相關(guān)信息生成用于數(shù)據(jù)存儲(chǔ)的相關(guān)結(jié)構(gòu);再之,根據(jù)相關(guān)信息生成待進(jìn)行存儲(chǔ)的c語言代碼數(shù)據(jù)。
25、其中,所述步驟22中,存儲(chǔ)代碼生成工具根據(jù)c語言代碼數(shù)據(jù),生成存儲(chǔ)代碼頭文件,即.h文件;
26、如圖4所示,具體過程如下:
27、步驟221:根據(jù)can信息形式的c語言代碼數(shù)據(jù),在存儲(chǔ)代碼頭文件中定義周期存儲(chǔ)數(shù)據(jù)塊的字節(jié)數(shù)量;
28、步驟222:定義定時(shí)存儲(chǔ)的can數(shù)據(jù)的幀數(shù);
29、步驟223:填寫循環(huán)存儲(chǔ)幀的結(jié)構(gòu)體定義;
30、步驟224:填寫循環(huán)存儲(chǔ)幀的時(shí)間信息定義;
31、步驟225:判斷當(dāng)前幀是否為最后一幀轉(zhuǎn)換幀;若否,轉(zhuǎn)入步驟226,若是,轉(zhuǎn)入步驟227;
32、步驟226:填寫循環(huán)存儲(chǔ)幀的結(jié)構(gòu)信息后,返回步驟225;
33、步驟227:填寫循環(huán)存儲(chǔ)幀的can_bus_off信息定義后,完成存儲(chǔ)代碼頭文件的生成,轉(zhuǎn)入步驟23。
34、其中,所述步驟23中,存儲(chǔ)代碼生成工具根據(jù)c語言代碼數(shù)據(jù),生成存儲(chǔ)代碼c語言文件,即.c文件;
35、如圖5所示,具體過程如下:
36、步驟231:在存儲(chǔ)代理c語言文件的循環(huán)存儲(chǔ)結(jié)構(gòu)對(duì)象中填寫時(shí)間信息;
37、步驟232:根據(jù)can信息形式的c語言代碼數(shù)據(jù),將can幀信息填寫到循環(huán)存儲(chǔ)結(jié)構(gòu)中;
38、步驟233:在最后填寫can_bus_off狀態(tài)變量,完成存儲(chǔ)代碼c語言文件的生成,轉(zhuǎn)入步驟24。
39、其中,所述步驟24中,存儲(chǔ)代碼生成工具根據(jù)c語言代碼數(shù)據(jù),生成存儲(chǔ)功能代碼的存儲(chǔ)結(jié)構(gòu)文件,即.csv文件;
40、其中,所述.csv文件定義了最小的存儲(chǔ)結(jié)構(gòu)大小,為1024字節(jié),在1024字節(jié)中,前8字節(jié)為時(shí)間信息,之后每8字節(jié)作為一組數(shù)據(jù)存儲(chǔ),對(duì)于不滿8字節(jié)的數(shù)據(jù)幀,如果相鄰的多幀數(shù)據(jù)可以組成8字節(jié)的則多幀組合成8字節(jié),如果不能組成8字節(jié)則也占用8字節(jié);在整個(gè)組成幀的結(jié)構(gòu)的最后是1字節(jié)的can?bus?off狀態(tài)變量信息。
41、其中,所述存儲(chǔ)功能代碼的存儲(chǔ)結(jié)構(gòu)如表1所示:
42、表1
43、
44、其中,所述方法實(shí)施過程中,確定以1秒鐘作為車輛電氣系統(tǒng)數(shù)據(jù)周期記錄的主程序周期。
45、(三)有益效果
46、與現(xiàn)有技術(shù)相比較,本發(fā)明具備如下有益效果:
47、(1)存儲(chǔ)功能代碼生成工具是基于國(guó)產(chǎn)控制單元,針對(duì)控制單元的存儲(chǔ)功能,生成可以在控制單元上使用的c文件代碼,通過將生成的代碼添加到工程中,調(diào)用存儲(chǔ)代碼中的相關(guān)方法可以將指定的c?an信息存儲(chǔ)到控制單元的存儲(chǔ)芯片中。
48、(2)本發(fā)明方案實(shí)施所涉及的存儲(chǔ)設(shè)備可以以裝甲車輛某一總線節(jié)點(diǎn)部件為基礎(chǔ),借助該部件的控制單元及其存儲(chǔ)功能,不需要額外增加硬件設(shè)計(jì)支出,可以通過在工程中增加存儲(chǔ)代碼來便捷實(shí)現(xiàn)存儲(chǔ)功能。
49、(3)本發(fā)明采用緊湊型數(shù)據(jù)格式和優(yōu)化的存儲(chǔ)記錄方法,極大的縮小了數(shù)據(jù)的存儲(chǔ)空間,非常適合于小型單片機(jī)系統(tǒng)嵌入式診斷系統(tǒng)的應(yīng)用,很好的解決了有限存儲(chǔ)空間下長(zhǎng)時(shí)間數(shù)據(jù)記錄的需求。
50、(4)本發(fā)明的存儲(chǔ)功能代碼自動(dòng)生成方法適配裝甲車輛多平臺(tái),解決了傳統(tǒng)測(cè)試系統(tǒng)的多平臺(tái)數(shù)據(jù)獲取難度大、部署困難的問題,將推進(jìn)我國(guó)裝甲車輛測(cè)試的數(shù)據(jù)分析模式從單一平臺(tái)專用測(cè)試分析過渡到跨平臺(tái)通用協(xié)同測(cè)試分析。