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

        ?

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

        2022-02-15 12:17:38趙昶宇
        科技與創(chuàng)新 2022年3期

        趙昶宇,胡 平

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

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

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

        1 ICD技術簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        5 結束語

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

        人妻献身系列第54部| 顶级高清嫩模一区二区| 亚洲av无码乱码国产麻豆| 青楼妓女禁脔道具调教sm| 香蕉色香蕉在线视频| 免费人成黄页网站在线观看国内| 护士人妻hd中文字幕| 久久午夜无码鲁丝片午夜精品 | 久久久久成人精品免费播放动漫| 中国人妻被两个老外三p| 国产偷国产偷高清精品 | 日韩av一区二区不卡| 大胸少妇午夜三级| 亚洲最新偷拍网站| 国产高潮精品一区二区三区av | 久久久国产精品免费无卡顿| 久久中文字幕av一区二区不卡| 激情综合色综合啪啪开心| 中文字幕日韩一区二区三区不卡| 欧美综合图区亚洲综合图区| av毛片亚洲高清一区二区 | 久久九九国产精品怡红院| 欧洲一区在线观看| 麻豆成人久久精品二区三区免费| 亚洲国产精品成人精品无码区在线 | 国产精品ⅴ无码大片在线看| 免费中文熟妇在线影片| 少妇呻吟一区二区三区| 免费观看mv大片高清| 人妻丰满熟妇av无码处处不卡| 高潮社区51视频在线观看| 久久综合久久综合久久| 亚洲色欲色欲大片www无码| 亚洲国产美女在线观看| 国产盗摄一区二区三区av| 欧美大胆性生话| 国产女精品视频网站免费| 中文字幕亚洲乱亚洲乱妇| 国产一区二区三区久久悠悠色av| 久热这里只有精品视频6| 亚洲先锋影院一区二区|