999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式接口通訊軟件代碼自動生成技術

2022-02-15 12:17:38趙昶宇
科技與創新 2022年3期

趙昶宇,胡 平

(1.天津津航計算技術研究所,天津300308;2.海軍工程大學艦船與海洋學院,湖北 武漢430033)

隨著計算機技術的飛速發展,如今的嵌入式系統的復雜程度也變得越來越高,嵌入式系統的內部接口和外部接口類型和種類也越來越豐富,對嵌入式系統的軟件設計和編碼人員也提出了較高的挑戰。目前嵌入式系統常見的接口類型有以太網接口、RS422A接口、RS485接口、CAN總線接口、1553B接口、模擬量信號和離散量信號等。接口通訊代碼程序的開發已經成為嵌入式系統軟件開發中的重要方面,它所占的開發比例也越來越大。一般來講,嵌入式系統軟件中接口通訊代碼是根據具體的接口通訊協議設計編制的,也就是說接口通信代碼和通訊協議之間的耦合度非常高。通訊協議有細微改動,都有可能需要修改接口通訊軟件代碼。軟件設計和編碼人員需要花費相當大的精力用于維護該部分代碼,這樣做不僅導致嵌入式接口通訊代碼的開發效率低下,也使得接口通訊代碼的可靠性和可維護性大大降低。

在嵌入式系統接口通訊軟件中,通常使用接口控制文檔(InterfaceControlDocuments,以下簡稱“ICD”)來描述和維護各個接口之間的關系,ICD的最大優點是通用性強,并且獨立于開發平臺和任務[1]。為了解決現有接口通訊軟件代碼開發效率低、可靠性不高的問題,本文基于ICD特點提出一種軟件代碼的自動生成方法。該方法通過對ICD配置文件的讀取和分析,能夠自動實現并生成接口通訊軟件代碼的功能。后續接口通訊協議發生變化了,無需改動接口通訊代碼,只需要修改ICD配置文件即可自動生成新的接口通訊軟件代碼,極大地提高了軟件開發效率和可靠性。

1 ICD技術簡介

ICD通常是一種以數據庫方式的結構化樹形圖來進行描述,由于不同類型總線采用的通訊協議不同,或是同一種類型總線的數據幀格式不同,因此在進行ICD數據庫設計時,需要根據不同的總線類型進行分別分析,包括數據幀頭、數據字段、數據校驗位和數據幀尾。總線類型首先應該作為ICD結構樹中的單獨一層節點,總線類型相同但是數據幀格式不同的也應該單獨作為ICD結構樹中的一層節點。

為了提高后期自動生成代碼的效率,將每一個ICD結構樹都保存在一個對應的數據庫中[2]。每個數據庫中建立一張表,表中包括建庫時間、信號類型、備注信息等內容,將這張表取名為ICD_Explain。如果總線類型相同,則需要建立一張信號類型表,表中包括數據幀標識號、數據幀名稱、數據頻率、數據塊數量、數據塊內容、板卡號、通道號、接收/發送狀態等,將這張表取名為ICD_BusType_Explain。對于相同總線類型中具有相同數據幀格式的報文建立一張對應的數據表,表中包括該數據幀的參數標識號、參數名稱、數據幀起始位置、數據幀長度、數據幀類型、LSB、狀態信息、參數最小值、參數最大值以及數據幀的步長等,將這張表取名為ICD_BusType_FrameName。

上述定義的ICD庫文件包含了接口通訊軟件中所有的總線接口數據規范[3],涵蓋各個子系統之間、子系統內部各個設備之間以及設備內部各個模塊之間的數據接口格式定義。有了這些ICD數據庫文件,代碼的自動生成技術可以很方便地通過對通訊協議的自動分析,實現對每個通訊接口數據的自動打包和解包處理。一旦通訊協議發生變化,無需修改軟件代碼,只需替換相應的ICD數據庫文件即可。接口通訊軟件的ICD配置文件結構如圖1所示。

圖1 接口通訊軟件ICD配置文件結構圖

2 XML模板生成、驗證和解析

XML(可擴展標記語言)被設計用來傳輸和存儲數據,它具有很強的跨平臺可移植性,且存儲數據基于文本不需要轉換。XML模板生成格式主要采用以下規則。

XML節點具有層次化的特點。利用XML的子節點創建一顆樹型結構,子節點的輸出內容通常比父節點要多縮進一個Tab。

節點名稱具有層次化的特點。同一父節點下的子節點之間如果名稱相同,則在輸出內容時的縮進是相同的;如果名稱不相同,則同一父節點下名稱編號大的比名稱編號小的子節點在輸出內容時要多縮進一個Tab。

節點內容具有層次化的特點。在節點內容中加入一個“ ”表示一個縮進,加入多少個“ ”表示輸出內容時縮進多少個Tab。一個節點內容對應一行目標代碼,若輸出新的節點內容時需增加回車換行。

XML模板驗證包括DTD(文檔類型定義)和XML Schema,前者用于定義XML文檔的合法構建模塊,后者除了具備前者功能外,還具有良好的可擴展性。

XML解析是XML模板生成的逆向過程,它通過XML模板生成格式讀取XML模板信息并生成標準格式的目標代碼。

圖2為ICD配置文件自動生成代碼的原理圖。在圖2中,ICD庫需要對RS-422A串口、GJB289A總線、高速總線、開關量和以太網數據進行歸納總結,找出各種信號幀數據段的規律,作為生成代碼的依據;知識庫和類型庫提供生成不同模塊代碼的規則和算法以及生成代碼需要的數據類型;詞法分析器用于將XML模板在更新時確保數據一致性;XML模板生成、XML結構定義(XSD)模板驗證和XML模板解析用于將ICD庫中的信息配合知識庫自動生成XML模板,并采用XSD模板對XML模板進行驗證,再通過解析XML模板得到目標代碼。

圖2 ICD配置文件自動生成代碼的原理圖

驅動模型。驅動模型根據ICD庫的接口描述關系,對輸入ICD信息進行建模,輸出代碼生成機理的描述。驅動模型是平臺無關模型,描述了ICD配置文件自動生成代碼的機制,驅動模型的組成和原理如圖3所示。

圖3 驅動模型的組成和原理圖

知識庫和類型庫。知識庫用來存放代碼生成的語法規則和代碼映射規則,類型庫用來描述代碼生成過程中所有可能用到的數據類型。

詞法分析器。知識庫中可變代碼段的XML模板設計需要用到詞法分析器。可變代碼段的XML模板的生成是一個動態建立的過程,XML模板所需要的部分信息由ICD配置文件確定。XML模板中會存在多個變量關聯到ICD配置文件的同一個參數數據結構。在ICD配置文件更新后,利用此法分析器在XML模板所需要的內存緩沖區中搜索所有關聯到該參數數據結構并全部更新,這樣就可以保證XML模板的數據一致性。

XML模板生成、驗證和解析。XXXX軟件根據ICD配置文件、知識庫、類型庫和詞法分析結果,并采用XmlWriter設計和生成XML模板;采用XMLSchema模板對生成的XML模板進行驗證,保證XML模板的語法正確;最后,通過對XML模板進行解析,生成標準格式的目標代碼。

3 接口通訊軟件代碼自動生成模型

接口通訊軟件代碼的自動生成技術包含以下幾個關鍵技術:ICD數據庫設計、驅動模型建立、知識庫設計、類型庫設計以及代碼生成單元設計。其中,ICD數據庫設計是代碼自動生成的基礎和依據,它將系統中的各種類型總線數據進行分析匯總,并找尋出各個數據幀的規律;驅動模型基于ICD數據庫中描述的數據接口關系,對每種輸入數據元素進行建模,并將ICD參數和數據塊輸出給代碼生成單元;知識庫中用于存放生成目標代碼的映射規則、語法規則和算法等;類型庫用于存放自動生成目標代碼過程中所使用的各種數據類型;代碼生成單元是自動生成代碼技術的核心,它根據ICD數據庫、知識庫和類型庫中的信息,并基于代碼自動生成機理產生最終的目標代碼。接口通訊軟件自動生成模型如圖4所示。

接口通訊軟件通常由以下幾部分組成:①通用代碼。一般為固定代碼,以基本函數的形式存在,它不會隨著ICD數據庫的變化而改變。②專用代碼。需要根據每種數據幀進行結構體定義、打包和解包處理。③發送代碼。定義執行發送數據幀相關操作的函數。④接收代碼。定義執行接收數據幀相關操作的函數。

通過讀取ICD數據庫配置文件,并基于上述驅動模型生成各種ICD數據幀和ICD參數,提取不同總線類型的數據幀結構體,并生成相應的打包和解包函數,從而構建接口通訊軟件的專用代碼。在生成專用代碼的同時,可以分析并構建接收代碼和發送代碼,通用代碼可以通過知識庫中的規格和算法生成,這樣就輸出了接口通訊軟件的所有類型代碼。

4 接口通訊軟件代碼自動生成流程

為了實現接口通訊軟件代碼自動生成技術的通用化,在軟件設計時會為任何一個數據幀保存一個對應的配置文件。在自動生成接口通訊軟件代碼前,先將所有的配置文件加載到程序中,分析提取其中的數據幀到相應的結構體內,并基于知識庫中的語法規格和代碼映射規則生成通用代碼。這樣做的好處是一旦通訊協議發生變化,在修改完相應配置文件內容后,重新加載一遍配置文件即可。然后通過對不同數據幀的解析,根據該數據幀的ICD數據塊和參數內容,針對每種數據幀生成相應的打包和解包函數;同時,通過對類型庫中總線類型和數據類型的解析,生成不同數據幀的接收代碼和發送代碼。接口通訊軟件代碼自動生成的流程如圖5所示。

圖5 接口通訊軟件代碼自動生成流程圖

針對不同總線類型的報文或是同一種總線類型但數據幀格式不同的報文,雖然它們各自有各自的通訊協議和處理函數,但是這些代碼自動生成的流程是相同的。為了提高接口通訊軟件的通用性和可靠性,對相同總線類型不同數據幀格式的報文采用通用的自動生成流程和處理方法,將它們各自的數據處理函數當作一個總線處理函數庫,通過設計并不斷優化該總線處理函數庫,使得該總線類型下的所有數據幀格式的報文均能夠采用上述的總線處理函數庫進行數據處理,最終使得接口通訊軟件的代碼自動生成技術具有更廣泛的適用性。

5 結束語

本文提出了一種嵌入式接口通訊軟件代碼的自動生成方法,進行了ICD數據庫設計、驅動模型建立、知識庫設計、類型庫設計以及代碼生成單元設計。該方法已經在某航空監控設備系統中得到了應用,大大提高了軟件代碼的開發效率和軟件可靠性。

主站蜘蛛池模板: 美女视频黄频a免费高清不卡| 成人福利在线观看| 亚洲无码日韩一区| 欧美成一级| h视频在线观看网站| 18禁黄无遮挡网站| 久久免费看片| 亚洲午夜国产精品无卡| 亚洲中文在线视频| 欧美成人国产| 97se亚洲综合在线| 四虎永久免费在线| 免费av一区二区三区在线| 国产制服丝袜91在线| 国产中文一区a级毛片视频| 亚洲男人在线天堂| 91在线高清视频| 久久这里只有精品2| 3D动漫精品啪啪一区二区下载| 国产精品久线在线观看| 天天干天天色综合网| 午夜国产精品视频| 国产精品无码制服丝袜| 欧美午夜在线视频| 精品国产Av电影无码久久久| 亚洲欧洲日韩国产综合在线二区| 三区在线视频| 99re热精品视频中文字幕不卡| 99视频精品在线观看| 亚洲精品第一在线观看视频| 国产成人综合亚洲欧美在| 国产亚洲精品97在线观看| 婷婷丁香色| 国产黄色免费看| 青草视频网站在线观看| 国产精品浪潮Av| 国产美女人喷水在线观看| 992tv国产人成在线观看| 成人福利在线视频| 亚洲欧美一区二区三区蜜芽| 国产精品林美惠子在线观看| 国产美女在线观看| 欧美视频在线不卡| 色九九视频| 免费午夜无码18禁无码影院| 中文字幕日韩视频欧美一区| 午夜免费小视频| 欧美日韩北条麻妃一区二区| 久久国产V一级毛多内射| 免费看的一级毛片| 伊人网址在线| 国产精品自拍露脸视频| 在线亚洲精品自拍| 色婷婷电影网| 久久精品人人做人人爽97| 国产无人区一区二区三区| 热这里只有精品国产热门精品| 丝袜国产一区| 在线免费无码视频| 国产免费人成视频网| 热这里只有精品国产热门精品| 国产精品一区不卡| 天天色综合4| 综合网久久| 极品av一区二区| jizz亚洲高清在线观看| 国产成人超碰无码| 亚洲高清无码精品| 亚洲无码高清一区| 亚洲日韩高清在线亚洲专区| 欧美视频在线不卡| 日韩在线第三页| 国产精品污污在线观看网站| 综合色88| 台湾AV国片精品女同性| 大陆精大陆国产国语精品1024| 国产区福利小视频在线观看尤物| 日韩欧美国产中文| 亚洲精品无码AⅤ片青青在线观看| 亚洲区一区| 亚洲手机在线| 欧美午夜在线视频|