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

        ?

        基于Cairo的組合式儀表HMI系統(tǒng)設(shè)計(jì)

        2021-10-28 04:42:34郭健忠
        關(guān)鍵詞:圖層內(nèi)存嵌入式

        郭健忠,耿 屹,謝 斌,閔 銳

        (1.武漢科技大學(xué) 汽車與交通工程學(xué)院,湖北 武漢 430065; 2.武漢保華顯示科技有限公司,湖北 武漢 430081)

        0 引 言

        隨著智能網(wǎng)聯(lián)汽車、高級輔助駕駛等技術(shù)的發(fā)展,數(shù)字儀表作為車況信息顯示終端被廣泛應(yīng)用于汽車電子系統(tǒng)中[1-2]。作為數(shù)字儀表的一種,組合式儀表由低成本微處理單元(MPU)、5至8英寸液晶顯示屏、機(jī)械指針或斷碼屏組合而成,相較于全液晶儀表,其顯示效果與信息呈現(xiàn)形式存在一定差距[3]。人機(jī)交互界面(HMI)是汽車數(shù)字儀表的核心功能之一,承擔(dān)駕駛員與汽車信息交互的功能[4-5]。傳統(tǒng)HMI軟件通常借助MiniGUI[6-7]、Qt/Embedded[8]等嵌入式圖形用戶界面(GUI)框架開發(fā),應(yīng)用于窗口化而非全屏模式的應(yīng)用場景,UI界面響應(yīng)鼠標(biāo)、鍵盤等輸入信號,未針對汽車HMI以總線信號為觸發(fā)源的信號環(huán)境進(jìn)行優(yōu)化。在移植方式上,傳統(tǒng)框架需要將自身框架源碼跨平臺編譯至目標(biāo)平臺,移植方式較為繁瑣[9]。Cairo圖形庫具備跨平臺、輕量化、可定制性強(qiáng)等特性[10],本設(shè)計(jì)基于Cairo圖形庫構(gòu)建虛擬HMI平臺和嵌入式平臺,創(chuàng)新跨平臺開發(fā)方式,簡化開發(fā)與移植流程,針對低成本嵌入式平臺,從多維度設(shè)計(jì)并優(yōu)化HMI軟件,提高軟硬件運(yùn)行效率,以更低成本實(shí)現(xiàn)可靠的功能性及更佳的顯示效果。

        1 汽車儀表HMI設(shè)計(jì)與優(yōu)化

        1.1 HMI圖層與場景

        汽車儀表HMI一般由圖1左側(cè)所示的背景圖層、儀表盤指針圖層、狀態(tài)指示燈圖層和報(bào)警/菜單顯示圖層組成,由于圖層結(jié)構(gòu)相對固定,圖形庫渲染時(shí)按照從下至上的順序?qū)D層進(jìn)行堆疊渲染。圖層由如圖1右側(cè)所示的一個(gè)或多個(gè)場景組成,場景中包含圖片、文字以及動(dòng)畫效果等元素,場景中包含的元素內(nèi)容、顯示內(nèi)容及觸發(fā)方式均與總線數(shù)據(jù)逐一對應(yīng),例如儀表盤指針圖層與背景圖層根據(jù)總線信號中關(guān)于當(dāng)前駕駛模式的數(shù)據(jù),分別顯示ECO、SPORT和標(biāo)準(zhǔn)模式場景以提供不同的主題色彩和顯示效果;報(bào)警/菜單圖層則根據(jù)總線信號中當(dāng)前菜單的索引數(shù)據(jù)和報(bào)警數(shù)據(jù)觸發(fā)相應(yīng)的菜單或報(bào)警場景。

        圖1 汽車儀表HMI圖層及場景示意圖

        1.2 場景設(shè)計(jì)與導(dǎo)出

        HMI圖層與場景采用Fairy GUI軟件進(jìn)行設(shè)計(jì)和導(dǎo)出,F(xiàn)airy GUI是一款用于軟件或游戲的UI設(shè)計(jì)軟件,可提供跨平臺UI設(shè)計(jì)解決方案[11]。該軟件支持在工程設(shè)計(jì)樹中以包和組件的方式管理HMI圖層和場景,可在場景中導(dǎo)入界面元素,為每個(gè)場景內(nèi)元素設(shè)定顯示坐標(biāo)、旋轉(zhuǎn)角度、旋轉(zhuǎn)錨點(diǎn)、縮放比例、透明度等信息。設(shè)計(jì)完成后可通過軟件中的發(fā)布功能生成包含當(dāng)前圖層和場景布局信息的XML文件,用于后期圖形渲染。為簡化設(shè)計(jì)流程,HMI中靜態(tài)文字、按鈕等控件元素均使用支持透明背景(支持Alpha通道)的PNG圖片資源,動(dòng)態(tài)文字通過預(yù)留空位,在程序中調(diào)用Cairo圖形庫中的矢量字庫接口繪制文字。

        1.3 場景元素封裝

        在嵌入式GUI框架中,圖片資源通過資源文件路徑加載,而資源文件通常儲存在存儲器不同扇區(qū)中,此方式會增加文件隨機(jī)讀寫次數(shù),不適用于圖片資源較多且讀寫速度有限的Flash存儲器上。汽車HMI單一場景內(nèi)的元素內(nèi)容數(shù)量較少、重復(fù)性小且元素搭配相對固定,因此以場景為單位,封裝場景內(nèi)的元素為單個(gè)二進(jìn)制(bin)文件,將多次隨機(jī)讀寫轉(zhuǎn)換為單次順序讀寫,可有效提高場景資源文件加載效率,封裝后的二進(jìn)制文件格式及相關(guān)描述如表1所示。為進(jìn)一步提升Flash存儲器的讀寫效率,文件中數(shù)據(jù)以四字節(jié)對齊的方式排列,元素?cái)?shù)據(jù)域內(nèi)圖片數(shù)據(jù)按照設(shè)計(jì)的堆疊順序依次收尾相連,數(shù)據(jù)加載時(shí)通過文件頭中元素地址索引定位。

        表1 場景元素封裝二進(jìn)制文件格式

        2 雙平臺圖形庫環(huán)境搭建

        Cairo是基于C語言編寫的跨平臺2D圖形庫,支持Windows、Linux等主流操作系統(tǒng)和部分嵌入式平臺,支持將渲染好的像素?cái)?shù)據(jù)導(dǎo)出為多種格式的文件或與各平臺圖形底層結(jié)合顯示圖像,其圖形應(yīng)用程序接口(API)和畫面輸出效果在任意平臺下均保持一致,擁有優(yōu)秀的跨平臺開發(fā)特性[12]。基于Cairo圖形庫搭建虛擬HMI開發(fā)平臺和嵌入式平臺,可確保雙平臺下HMI軟件代碼的一致性,便于后期程序跨平臺移植。

        2.1 虛擬HMI平臺環(huán)境搭建

        虛擬HMI平臺本質(zhì)是在Windows操作系統(tǒng)環(huán)境下運(yùn)行的窗口應(yīng)用程序,其編譯與運(yùn)行分別依賴靜態(tài)庫cairo.lib和動(dòng)態(tài)庫cairo.dll,上述庫文件可從Gtk+框架中提取或通過編譯圖形庫源碼獲得[13-14]。由于Gtk+中的Cairo庫文件版本較低,對Win32平臺支持性較差,而通過編譯最新版本源碼生成的庫文件具有良好的兼容性并支持完整的新特性。Cairo源碼編譯依賴PNG圖片解碼庫libpng和像素處理函數(shù)庫pixman,而libpng庫依賴zlib函數(shù)庫提供對PNG圖片數(shù)據(jù)壓縮與解壓的支持[15],因此編譯順序如圖2所示。編譯完成后,將生成的靜態(tài)庫文件添加到工程鏈接器配置屬性中的附加依賴項(xiàng)中,將動(dòng)態(tài)庫文件移動(dòng)至生成的程序執(zhí)行文件根目錄下,即可完成虛擬HMI開發(fā)平臺運(yùn)行環(huán)境搭建。

        圖2 Cairo圖形庫編譯順序

        2.2 嵌入式平臺

        目前市場主流全液晶儀表采用恩智浦i.MX系列[16-17]、瑞芯微RK系列等高性能處理器,此類處理器硬件采購成本、電路設(shè)計(jì)及電路板印制成本較高,無法滿足組合式儀表對成本的限制需求。普通MCU由于性能較弱無法兼顧數(shù)據(jù)處理與畫面顯示,采用雙芯片設(shè)計(jì)能有效均衡算力從而降低成本[18]。文中采用如圖3所示的S32K144 MCU處理總線數(shù)據(jù)及IO信號,F(xiàn)1c100s MPU用于畫面顯示,二者通過高速串口進(jìn)行數(shù)據(jù)交互。

        圖3 雙芯片架構(gòu)示意圖

        其中全志F1c100s是基于ARM9架構(gòu)設(shè)計(jì)默認(rèn)主頻為400 MHz的微處理器,集成DDR內(nèi)存,可運(yùn)行XBOOT、精簡版Linux等操作系統(tǒng)。

        XBOOT是一款功能強(qiáng)大、可移植性強(qiáng)、代碼復(fù)用率高的嵌入式系統(tǒng)Bootloader,同時(shí)也是片上系統(tǒng)應(yīng)用程序執(zhí)行引擎,可為應(yīng)用程序提供啟動(dòng)及運(yùn)行環(huán)境。由于XBOOT系統(tǒng)具備體積小,功能完善的特點(diǎn),且內(nèi)置Cairo圖形庫與文件系統(tǒng),無需用戶額外配置,適合跨平臺輕量化HMI開發(fā)。XBOOT源碼可從開源項(xiàng)目網(wǎng)站上獲取,解壓后需編輯源碼目錄中的Makefile文件,添加編譯選項(xiàng),指定目標(biāo)編譯平臺和交叉編譯器:

        CROSS_COMPILE?=arm-eabi-

        PLATFORM ?=arm32-f1c100s

        再將源碼工程添加至集成CDT插件的Ecllipse IDE中編譯,將生成的二進(jìn)制bin文件通過sunxi_tools燒寫工具燒寫至板載閃存中運(yùn)行。

        3 HMI程序設(shè)計(jì)

        由于跨平臺軟件開發(fā)存在編譯速度慢、資源燒寫過程繁瑣甚至無法調(diào)試等問題,極大影響軟件開發(fā)速度。虛擬HMI平臺依托Visual Studio集成開發(fā)環(huán)境(IDE),具備完善的編譯與調(diào)試環(huán)境,無需燒寫資源,使HMI軟件開發(fā)流程更為簡化,從而提高開發(fā)效率。

        3.1 虛擬HMI平臺架構(gòu)

        虛擬HMI平臺由圖4所示的五個(gè)部分組成:(1)窗口程序主框架;(2)虛擬總線數(shù)據(jù)模塊;(3)虛擬按鍵模塊;(4)數(shù)據(jù)緩沖區(qū);(5)HMI模塊。窗口程序主框架負(fù)責(zé)初始化程序各模塊,創(chuàng)建可視化窗口,監(jiān)聽響應(yīng)系統(tǒng)消息和用戶操作和任務(wù)調(diào)度;虛擬總線數(shù)據(jù)模塊與虛擬按鍵模塊為非模態(tài)對話框子程序,負(fù)責(zé)轉(zhuǎn)換用戶鼠標(biāo)操作為虛擬總線數(shù)據(jù)并發(fā)送至數(shù)據(jù)緩沖區(qū),HMI模塊掃描緩沖區(qū)中的數(shù)據(jù)進(jìn)行實(shí)時(shí)畫面顯示。

        3.2 HMI模塊

        HMI模塊包含數(shù)據(jù)解析、事件隊(duì)列、XML文件解析和圖形抽象四個(gè)單元,模塊的數(shù)據(jù)接口與平臺類型無關(guān),圖形抽象接口可根據(jù)當(dāng)前運(yùn)行環(huán)境適配,因此在虛擬HMI平臺中構(gòu)建的HMI模塊可整體移植至目標(biāo)嵌入式平臺,使移植步驟更簡化。

        3.2.1 HMI模塊工作流程

        數(shù)據(jù)解析單元負(fù)責(zé)掃描緩沖區(qū)中數(shù)據(jù)的異動(dòng)情況,根據(jù)當(dāng)前數(shù)據(jù)異動(dòng)情況向事件隊(duì)列單元發(fā)送相應(yīng)事件,事件是一個(gè)包含當(dāng)前事件信息的結(jié)構(gòu)體DisplayEvent:

        typedef struct __DisplayEvent

        {

        scr_id_t ScrId; //場景ID,與二進(jìn)制文件頭中ID對應(yīng)

        scr_time_t ScrDisplayTime; //場景顯示時(shí)長

        priority_t ePriority; //事件優(yōu)先級

        bool isInterrupt; //是否能被打斷

        bool isRedisplay; //打斷后是否重新顯示

        payload_t ePayload; //當(dāng)前場景數(shù)據(jù)負(fù)載

        }DisplayEvent;

        事件隊(duì)列單元中的事件按照優(yōu)先級從高到底以鏈表形式排列,事件插入函數(shù)依據(jù)傳入結(jié)構(gòu)體中的ePriority值向鏈表中插入事件,事件響應(yīng)函數(shù)優(yōu)先響應(yīng)鏈表頭部事件,再調(diào)用XML解析單元和圖形抽象單元繪制場景元素。XML文件解析依賴libxml2庫,場景布局?jǐn)?shù)據(jù)以鍵值對的形式存儲在XML文件中,解析時(shí)將鍵值對數(shù)據(jù)逐一拷貝至PngInfo結(jié)構(gòu)體數(shù)組中相應(yīng)的位置,解析流程如圖5所示。

        typedef struct __PngInfo

        {

        uint32_t pIndex; //場景元素編號

        float x; //x軸坐標(biāo)

        float y; //y軸坐標(biāo)

        float scale_x; //x軸縮放比

        float scale_y; //y軸縮放比

        int rotation; //旋轉(zhuǎn)角度

        float rot_x; //旋轉(zhuǎn)錨點(diǎn)x軸坐標(biāo)

        float rot_y; //旋轉(zhuǎn)錨點(diǎn)y軸坐標(biāo)

        uint8_t* pPngFileData; //文件數(shù)據(jù)指針

        uint8_t* pPngRawData; //元素?cái)?shù)據(jù)指針

        cairo_surface_t PNGSurface; //圖形庫Surface指針

        } PngInfo;

        圖5 XML解析單元流程

        3.2.2 圖形抽象單元

        圖形抽象單元負(fù)責(zé)場景元素加載、解析和渲染,虛擬HMI平臺中的圖形抽象單元基于Windows系統(tǒng)下的圖形設(shè)備接口(GDI)與Cairo圖形庫搭建,由于Cairo圖形庫無法直接在應(yīng)用程序窗口上繪制圖形,依賴GDI為Cairo圖形庫提供設(shè)備上下文環(huán)境(device context,DC)。使用GetDC()函數(shù)可基于當(dāng)前窗口創(chuàng)建DC,若直接在窗口DC上渲染圖形會造成畫面撕裂和閃爍,使用雙重緩沖區(qū)可解決上述問題。調(diào)用CreateCompatibleDC()和CreateCompatibleBitmap()函數(shù)在內(nèi)存中分別創(chuàng)建基于窗口DC的兼容DC和兼容位圖數(shù)據(jù)緩沖區(qū),待Cairo圖形庫繪制完成后,使用BitBlt()函數(shù)將兼容DC中的像素?cái)?shù)據(jù)逐字節(jié)拷貝至窗口DC,可在窗口中實(shí)現(xiàn)穩(wěn)定的畫面顯示。

        Cairo圖形庫為GDI提供了cairo_win32_surface_create()接口,該接口可將兼容DC轉(zhuǎn)換成類型為cairo_surface_t的抽象繪制平面(Surface),后續(xù)圖形均在此上下文繪制。圖形繪制流程由資源加載、圖形變換、圖形繪制、資源銷毀四個(gè)階段組成:

        階段一,資源加載:圖片資源從對應(yīng)場景的bin文件中加載,一種方式是通過libpng庫將bin文件數(shù)據(jù)域中的圖片數(shù)據(jù)解析為像素?cái)?shù)據(jù),傳入Cairo圖形庫中的cairo_image_surface_create_for_data()接口創(chuàng)建類型為cairo_t的上下文目標(biāo)。第二種方式無需顯式地讓libpng庫參與圖片加載過程,而是向Cairo圖形庫中的cairo_image_surface_create_from_png_stream()接口傳入事先讀取好的圖片數(shù)據(jù)創(chuàng)建上下文目標(biāo)。以上兩種方案均需重載用于讀取PNG文件的回調(diào)函數(shù),并將函數(shù)指針傳遞至png_set_read_fn()接口調(diào)用。

        階段二,圖形變換:汽車儀表HMI中涉及到的基本變換操作包含平移、縮放和旋轉(zhuǎn),變換參數(shù)已由XML解析單元解析至PngInfo結(jié)構(gòu)體中,為簡化變換流程,將所需的變換步驟封裝為如下所示單一函數(shù)中:

        void Paint_PNG_Element(cairo_t* cr, PngInfo* info)

        {

        cairo_save(cr);

        if (!(info->rotation == 0)) //旋轉(zhuǎn)

        {

        cairo_translate(cr, info->rot_x, info->rot_y);

        cairo_rotate(cr, info->rotation);

        cairo_translate(cr, -info->rot_x, -info->rot_y);

        }

        if (!(info->scale_x == 1.0&&info->scale_y == 1.0)) //縮放并平移

        {

        cairo_scale(cr, info->scale_x, info->scale_y);

        cairo_set_source_surface(cr, info->PNGSurface,

        (int)info->x / info->scale_x,

        (int)info->y / info->scale_y);

        }

        else //僅平移

        {

        cairo_set_source_surface(cr, info->PNGSurface,info->x,info->y);

        }

        }

        階段三,圖形繪制:圖形的加載和變換將圖片位圖數(shù)據(jù)置于內(nèi)存中處理,并未與最初創(chuàng)建的Cairo抽象繪制平面綁定,因此可使用cairo_paint()或cairo_paint_with_alph()函數(shù)將內(nèi)存中的數(shù)據(jù)渲染在上下文上,后者支持透明背景渲染。cairo_paint()不僅可以繪制圖片,還可以繪制實(shí)時(shí)矢量圖形和矢量文字,增加了HMI軟件設(shè)計(jì)的靈活性。

        階段四,資源銷毀:受嵌入式平臺內(nèi)存或顯存因素的制約,當(dāng)場景內(nèi)的某一元素不再顯示或發(fā)生場景切換等情況,需及時(shí)銷毀當(dāng)前資源或場景在內(nèi)存中的數(shù)據(jù),釋放內(nèi)存。Cairo圖形庫提供了cairo_surface_destroy()和cairo_destroy()接口,分別用于銷毀內(nèi)存中的圖片數(shù)據(jù)和抽象繪制平面。

        4 跨平臺移植

        由于XBOOT系統(tǒng)為嵌入式平臺提供了包含Cairo圖形庫在內(nèi)的完整的運(yùn)行環(huán)境,虛擬HMI平臺與嵌入式平臺圖形環(huán)境基本一致,不同之處在于數(shù)據(jù)解析單元的總線數(shù)據(jù)來源、圖形抽象層與設(shè)備底層之間的接口以及部分設(shè)備驅(qū)動(dòng)接口。因此移植過程更為簡化,僅需將虛擬HMI平臺中的代碼進(jìn)行部分修改后拷貝至嵌入式平臺工程中編譯即可,移植詳情如表2所示。

        表2 HMI模塊各單元移植方式

        首先要向工程中注入資源文件,將各場景的bin文件及xml文件分別拷貝至./xboot/src/romdisk/framework/asset/scr和./xboot/src/romdisk/framework/asset/cfg目錄下,此目錄在編譯階段會自動(dòng)生成虛擬文件系統(tǒng),便于程序通過文件路徑調(diào)用文件。由于XBOOT內(nèi)存結(jié)構(gòu)及空間申請方式與Linux系統(tǒng)類似,采用雙向鏈表的形式管理,設(shè)備上下文環(huán)境需要調(diào)用list_for_each_entry_safe函數(shù)在鏈表中尋找足夠的內(nèi)存空間,并在此內(nèi)存空間上創(chuàng)建Cairo圖形庫的抽象繪制平面作為上下文,具體代碼如下,后續(xù)繪圖階段代碼則與虛擬HMI平臺保持一致。

        cairo_surface_t * cs;

        cairo_t * cr;

        struct framebuffer_t * fb;

        list_for_each_entry_safe(pos, n, &__device_head[DEVICE_TYPE_FRAMEBUFFER], head)

        fb = (struct framebuffer_t *)(pos->priv))

        cs = cairo_xboot_surface_create(fb);

        cr = cairo_create(cs);

        Cairo圖形庫渲染后的像素?cái)?shù)據(jù)關(guān)聯(lián)在cs指針中,還需通過cairo_xboot_surface_present()函數(shù)將數(shù)據(jù)傳遞至硬件底層,交由LVDS驅(qū)動(dòng)傳輸至顯示屏顯示。

        5 測試驗(yàn)證與軟件優(yōu)化

        5.1 測試與試驗(yàn)驗(yàn)證

        本節(jié)采用虛擬HMI平臺與嵌入式平臺聯(lián)合實(shí)驗(yàn)的方式驗(yàn)證HMI軟件的可行性與可靠性。首先測試HMI軟件對總線信號響應(yīng)的準(zhǔn)確度,由于雙平臺中總線數(shù)據(jù)解析、事件隊(duì)列及XML解析單元中代碼一致,因此可在虛擬HMI平臺中測試驗(yàn)證。根據(jù)如表3所示的汽車儀表HMI軟件測試用例對HMI軟件中指示燈顯示狀態(tài)、優(yōu)先級打斷邏輯、報(bào)警場景觸發(fā)準(zhǔn)確性等方面進(jìn)行全功能測試,結(jié)果表明,儀表能準(zhǔn)確響應(yīng)總線信號并顯示正確的提示信息,具備可靠的功能性。

        表3 汽車儀表HMI軟件測試用例部分測試項(xiàng)目

        軟件性能方面,HMI軟件在嵌入式設(shè)備上的每秒顯示幀數(shù)(fps)是畫面流暢度的重要評價(jià)指標(biāo)之一,fps值受當(dāng)前設(shè)備內(nèi)存、FLASH讀寫速度與MCU算力的制約,在汽車儀表HMI軟件中,場景資源的加載、解析及圖形變換對fps值影響較大。為測試上述問題對fps值的影響,本節(jié)使用包含120張分辨率為480*800動(dòng)畫序列圖片的場景作為測試目標(biāo),在虛擬HMI中平臺測試,目的是記錄單幀渲染時(shí)長和內(nèi)存占用情況。對照組采用以文件路徑作為形參調(diào)用圖形庫接口對圖片逐一加載的方式,方式一和方式二為3.2.2節(jié)中提出的兩種方式,方式三則是先將場景資源全部解析到內(nèi)存中,再調(diào)用圖形庫從內(nèi)存中讀取數(shù)據(jù),此方式對內(nèi)存占用較大,不適用嵌入式平臺,僅供參考。測試結(jié)果如圖6和表4所示,方式二相比于傳統(tǒng)方式平均單幀渲染時(shí)間降低4 ms,平均幀率提升5 fps,而方式三由于渲染時(shí)無需加載圖片資源,其單幀渲染時(shí)間僅為1 ms,但內(nèi)存占用為常規(guī)方式的5.6倍,上述結(jié)果說明方式二為更加合理的圖片資源加載方式。

        圖6 單幀渲染時(shí)間測試

        表4 測試詳情

        5.2 軟硬件聯(lián)合優(yōu)化

        軟件方面,方式三單幀渲染時(shí)間極低,但需要圖片數(shù)據(jù)常駐內(nèi)存,因此可應(yīng)用于變化不大且需長期顯示的場景,例如背景、儀表盤及指針?biāo)幍哪J綀鼍?,其他場景則繼續(xù)采用方式二加載。經(jīng)測試,嵌入式平臺HMI軟件運(yùn)行在480*800分辨率的主界面下,混合加載模式相較于僅采用方式二的模式,平均幀率由27.2 fps提升至35.7 fps,提升幅度為31.25%。

        硬件方面,全志F1c100s主頻默認(rèn)400 MHz,通過修改時(shí)鐘配置文件,可將主頻提升至720 MHz從而提升幀率。由于Flash閃存在HMI軟件運(yùn)行時(shí)為只讀狀態(tài),將SPI驅(qū)動(dòng)變更為雙線只讀模式,能提升一定的讀取速率。經(jīng)測試驗(yàn)證,平均幀率由軟件優(yōu)化后的35.7 fps提升至42.7 fps,提升幅度為19.6%,軟硬件聯(lián)合優(yōu)化后的實(shí)時(shí)幀率滿足汽車組合儀表HMI流暢顯示的設(shè)計(jì)需求。

        6 結(jié)束語

        介紹了面向低成本組合式汽車儀表的HMI系統(tǒng)設(shè)計(jì),提出了以圖層與場景為單位的界面元素結(jié)構(gòu),搭建了基于Cairo圖形庫的虛擬HMI平臺和嵌入式平臺,簡化了界面設(shè)計(jì)、軟件編譯及調(diào)試的繁瑣步驟,同時(shí)雙平臺圖形環(huán)境的一致性使開發(fā)效率得以提升,從而降低了軟件的研發(fā)成本。HMI程序設(shè)計(jì)針對汽車信號環(huán)境進(jìn)行了優(yōu)化,通過監(jiān)聽數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)異動(dòng)情況,根據(jù)當(dāng)前觸發(fā)事件的優(yōu)先級響應(yīng)繪圖事件,調(diào)用XML解析單元和圖形抽象單元完成畫面繪制。試驗(yàn)表明,組合式儀表能在保證可靠功能性的同時(shí),通過虛擬HMI平臺的仿真實(shí)驗(yàn)和軟硬件的聯(lián)合優(yōu)化,大幅提升HMI實(shí)時(shí)幀率,保證了儀表顯示的流暢性,達(dá)成了以低成本實(shí)現(xiàn)更佳顯示效果的設(shè)計(jì)目的。

        猜你喜歡
        圖層內(nèi)存嵌入式
        “春夏秋冬”的內(nèi)存
        搭建基于Qt的嵌入式開發(fā)平臺
        巧用混合圖層 制作抽象動(dòng)感森林
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        圖層法在地理區(qū)域圖讀圖中的應(yīng)用
        淺析“遞層優(yōu)化法”在礦井制圖中的應(yīng)用
        河南科技(2014年6期)2014-04-04 08:00:42
        Altera加入嵌入式視覺聯(lián)盟
        倍福 CX8091嵌入式控制器
        基于內(nèi)存的地理信息訪問技術(shù)
        Photoshop圖層的解讀
        奇米影视777撸吧| 美女与黑人巨大进入免费观看| 又黄又刺激的网站久久| 亚洲国产精品va在线看黑人 | 成人在线视频亚洲国产| 久久99天堂av亚洲av| 亚洲综合在线一区二区三区| 91精品国产综合成人| 国产亚洲青春草在线视频| 久久亚洲中文字幕精品熟| 亚洲va国产va天堂va久久| 无码欧亚熟妇人妻AV在线外遇 | 性一交一乱一伦一色一情孩交 | 国产精品自在线拍国产手机版| 日本在线视频网站www色下载| 久久精品国产精品亚洲婷婷| 在线免费观看黄色国产强暴av| 精品少妇爆乳无码av无码专区| 国产无套露脸| av在线不卡一区二区三区| 欧洲美女黑人粗性暴交视频| 无遮无挡爽爽免费视频| 人妻中出精品久久久一区二 | 91极品尤物国产在线播放| 国产91精品一区二区麻豆亚洲| 永久免费人禽av在线观看| 久久99精品久久久久久野外| 一区二区三区四区亚洲综合| 日本中文一区二区在线| 无码人妻av一二区二区三区| 国内精品人妻无码久久久影院94| 日韩精品一区二区在线视| 亚洲国产日韩a在线乱码| 国产肉丝袜在线观看| 91极品尤物在线观看播放| 天堂av网手机线上天堂| 亚洲精品无amm毛片| 亚洲av日韩av综合aⅴxxx| 精品国产一区二区三区av新片| 亚洲av综合av国产av中文| 伊人久久综合影院首页|