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

        ?

        基于汽車儀表的5寸單色反顯TFT液晶屏驅(qū)動(dòng)功能實(shí)現(xiàn)

        2022-12-29 00:00:00陸敬泉
        汽車科技 2022年5期

        摘 "要:構(gòu)建了汽車組合儀表的5寸單色TFT反顯屏軟、硬件驅(qū)動(dòng)方案,重點(diǎn)設(shè)計(jì)了該液晶屏的顯示驅(qū)動(dòng)、數(shù)據(jù)壓縮等實(shí)現(xiàn)算法,通過詳細(xì)設(shè)計(jì)、計(jì)算分析與實(shí)驗(yàn)驗(yàn)證,該方案能夠可靠的驅(qū)動(dòng)液晶屏顯示,通過優(yōu)化系統(tǒng)軟件和顯示策略,保證了在不更換更高主頻性能的MCU前提下,驅(qū)動(dòng)更高顯示分辨率的液晶屏(320*240)。同時(shí)由于相同構(gòu)型和分辨率下的反顯屏在采購成本上明顯低于正顯屏,因此使用反顯液晶屏模組能充分滿足單色液晶儀表的降成本要求,滿足客戶對液晶顯示的更高性能需求。該設(shè)計(jì)具有可靠性高、易實(shí)現(xiàn)、低成本、可移植的特點(diǎn),該設(shè)計(jì)的應(yīng)用在某種程度上使公司在組合儀表的單色TFT液晶顯示方案上實(shí)現(xiàn)了突破,從而提高公司的產(chǎn)能和產(chǎn)品質(zhì)量。在取代競爭對手為公司創(chuàng)造良好經(jīng)濟(jì)效益的同時(shí)。該驅(qū)動(dòng)方法可推廣移植應(yīng)用于其他汽車組合儀表設(shè)計(jì)上,實(shí)現(xiàn)該技術(shù)的持續(xù)增盈。

        關(guān)鍵詞:汽車儀表;反顯;TFT_LCD

        中圖分類號:U463.7 " " "文獻(xiàn)標(biāo)識碼:A " " "文章編號:1005-2550(2022)05-0080-08

        Realization of 5-inch Monochrome Reverse Display TFT LCD Drive Function of Automobile Instrument

        LU Jing-quan

        ( Dongfeng Electric Drive System Co., Ltd, Xiangyang 441001, China)

        Abstract:The software and hardware driving scheme of the 5-inch monochrome TFT with reverse display screen of the Automobile combination instrument is constructed, focusing on designing the display driving, data compression and other implementation algorithms of the LCD drive. Through detailed design, calculation analysis and experimental verification, the solution can drive the LCD reliably. By optimizing the system software and display strategy, it is guaranteed to drive the LCD with higher display resolution (320*240) without replacing the MCUs which need higher frequency performance. At the same time, since the purchase cost of the reverse display LCD with the same configuration and resolution is significantly lower than that of the positive display LCD, the use of the reverse display LCD module can fully make the cost reduction and the higher performance requirements for the customers. The design has the characteristics of high reliability, easy implementation, low cost and portability. The application of this design has enabled the company to achieve a breakthrough in the monochrome TFT LCD scheme of the instrument cluster to some extent, thereby improving the company's production capacity and product quality. While replacing competitors to create good economic benefits for the company, this driving method can be popularized and transplanted to other vehicle combination instrument designs, and realize the continuous increase of the technology.

        Key Words: Automobile Instrument; Reverse Display; TFT_LCD

        前 " "言

        根據(jù)客戶的需求。為其設(shè)計(jì)一款24V電氣系統(tǒng)的5寸單色TFT組合儀表,該款組合儀表要求采用5寸單色TFT液晶屏,采用320*240顯示分辨率,比我司老款5寸組合儀表的液晶屏分辨率要求更高(老款儀表液晶屏分辨率為166*128)。該項(xiàng)目是我公司重點(diǎn)項(xiàng)目。經(jīng)過技術(shù)上的縝密分析,最終決定在不更換主控MCU的前提下,匹配新一代5寸單色TFT液晶顯示屏,并根據(jù)降成本指標(biāo),采用采購成本更低的反顯液晶屏模組。

        1 " " 策略設(shè)計(jì)

        根據(jù)技術(shù)背景可知,此款組合儀表的液晶屏顯示驅(qū)動(dòng)功能,在不提高主MCU性能的情況下必須保證流暢、清晰的顯示質(zhì)量。同時(shí)由于分辨率的提高,同樣顯示區(qū)域內(nèi)的數(shù)據(jù)量會(huì)急劇增加,因此顯示的內(nèi)容必須經(jīng)過數(shù)據(jù)壓縮處理,否則相關(guān)的圖片信息數(shù)據(jù)過大,數(shù)據(jù)存儲(chǔ)將超出現(xiàn)有FLASH的容量,導(dǎo)致數(shù)據(jù)無法放置到FLASH中去。同時(shí),由于點(diǎn)陣數(shù)量的增加,在整屏界面顯示切換時(shí)刻,顯示界面刷新率會(huì)降低,會(huì)出現(xiàn)清屏?xí)r間變長,界面的切換動(dòng)作時(shí)間變長的現(xiàn)象,會(huì)導(dǎo)致液晶屏上出現(xiàn)殘影,直接影響最終的用戶體驗(yàn)。

        通過以上分析,此款組合儀表的液晶顯示驅(qū)動(dòng)功能設(shè)計(jì)為:

        1.液晶屏驅(qū)動(dòng)初始化設(shè)計(jì):對液晶屏初始化流程、去初始化流程進(jìn)行設(shè)計(jì)。

        2.液晶屏顯示接口設(shè)計(jì):液晶顯示填充接口,液晶顯示清屏接口,液晶區(qū)域顯示接口設(shè)計(jì)。

        3.液晶顯示填充、清屏策略優(yōu)化設(shè)計(jì),點(diǎn)陣數(shù)據(jù)結(jié)構(gòu)解壓縮算法設(shè)計(jì)。

        2 " "5寸TFT單色屏驅(qū)動(dòng)原理設(shè)計(jì)

        2.1 " 儀表5寸TFT單色屏硬件電路

        如圖1,儀表微控制器(mcu)內(nèi)部需要13個(gè)GPIO與液晶屏進(jìn)行連接和通訊,同時(shí)需要一路PWM輸出進(jìn)行液晶屏背光控制,13個(gè)GPIO的引腳功能分別是。見表1。

        2.2 " 基本時(shí)序的軟件實(shí)現(xiàn)

        軟件通過操作表一的相關(guān)IO口的時(shí)序進(jìn)行液晶驅(qū)動(dòng)顯示。驅(qū)動(dòng)此液晶屏需要產(chǎn)生兩個(gè)最基本的通訊時(shí)序。見圖2和圖3:

        寫入指令的驅(qū)動(dòng)代碼的實(shí)現(xiàn)方式

        void ECU_Matrix_TxCmd(unsigned char u8t_Cmd)

        {

        IO_LCD_CS_OUTPUT = 0; "/* pull down CS to enable input/output for data/command */

        IO_LCD_A0_OUTPUT = 0; "/* Set 0 to A0 : PA0-PA7 is command output */

        IO_LCD_RD_OUTPUT = 1;

        IO_LCD_WR_OUTPUT = 0;

        /* send out data bit by bit*/

        WriteData2LCDRegister(u8t_Cmd);

        IO_LCD_WR_OUTPUT = 1;

        IO_LCD_CS_OUTPUT = 1; " "/* set 1 to CS, the data bus 表示數(shù)據(jù)總線高阻抗*/

        }/*注WriteData2LCDRegister 函數(shù)為單片機(jī)引腳按位分配和輸出函數(shù) 不包含時(shí)序過程*/

        寫入數(shù)據(jù)的驅(qū)動(dòng)代碼的實(shí)現(xiàn)方式

        void ECU_Matrix_TxData(unsigned char u8t_Data)

        {

        IO_LCD_CS_OUTPUT = 0; " /* pull down CS to enable input/output for data/command */

        IO_LCD_A0_OUTPUT = 1; " /* Set 1 to A0 : PA0-PA7 is data or command parameter output */

        IO_LCD_RD_OUTPUT = 1;

        IO_LCD_WR_OUTPUT = 0;

        /* send out data bit by bit*/

        WriteData2LCDRegister(u8t_Data);

        IO_LCD_WR_OUTPUT = 1;

        }/*注WriteData2LCDRegister 函數(shù)為單片機(jī)引腳按位分配和輸出函數(shù) 不包含時(shí)序過程*/

        軟件通過以上兩個(gè)最基本子函數(shù),通過對屏寫入相關(guān)指令和數(shù)據(jù)來實(shí)現(xiàn)屏幕顯示驅(qū)動(dòng)功能。實(shí)際屏幕的掃描動(dòng)作、初始化配置、包括Display RAM(顯存)的操作均是由這兩個(gè)基本時(shí)序函數(shù)的組合而來。

        2.3 " 液晶屏掃描方式

        液晶屏像素點(diǎn)的掃描坐標(biāo)有兩個(gè)基本的單位(X軸和Y軸),分別是address(地址)和page(頁)。Address是第一個(gè)坐標(biāo)軸刻度,每個(gè)address掃描8個(gè)像素點(diǎn),即一個(gè)8位數(shù)據(jù),它也是液晶屏軟件控制的最小元素。頁是指另一個(gè)坐標(biāo)軸刻度,由于address的8個(gè)像素點(diǎn)的特性,page的構(gòu)成也是由8個(gè)像素點(diǎn)作為最小步進(jìn)的。因此液晶屏顯示區(qū)域的點(diǎn)陣長寬均是8的倍數(shù)(320*240),如圖4:

        液晶屏掃描方式可由MCU配置液晶屏相關(guān)的寄存器進(jìn)行調(diào)整,圖4中只是其中一種掃描方式,該反顯屏共有8種掃描方式,見表2。

        結(jié)合項(xiàng)目需求以及液晶屏的布置方向,該項(xiàng)目使用垂直掃描的第一種方式(Address正常掃描Page不翻轉(zhuǎn)),軟件通過設(shè)置液晶屏相關(guān)的功能寄存器實(shí)現(xiàn)。

        2.4 " 液晶屏顯示極性設(shè)置

        普通單色液晶屏的背景底色為黑色:即“陽極”顯示白色像素點(diǎn),“陰極”為不顯示,這種液晶屏為普通的正向顯示屏。但結(jié)合本項(xiàng)目需要,為了降低成本,采用工藝成本低的反顯屏。液晶屏平時(shí)的背景底色為白色:即“陽極”顯示黑色像素點(diǎn),“陰極”為背景底色顯示白色。那么針對這種特殊需求,需要對液晶屏的特殊寄存器進(jìn)行特殊配置實(shí)現(xiàn)。即實(shí)現(xiàn)DOT Inversion(像素點(diǎn)翻轉(zhuǎn))

        如圖5,軟件控制方式需要改變。一般來說,軟件通過控制MCU的GPIO在發(fā)送數(shù)據(jù)中的“按位”翻轉(zhuǎn)可以實(shí)現(xiàn)顯示像素點(diǎn)的翻轉(zhuǎn)方式,但是考慮到還要區(qū)分顯存RAM數(shù)據(jù)和寄存器數(shù)據(jù)的翻轉(zhuǎn)選擇(寄存器數(shù)據(jù)不允許GPIO翻轉(zhuǎn),DISPLAY RAM需要GPIO翻轉(zhuǎn))。由此一來軟件代碼不夠簡潔,也不方便移植,所以最好的方式是保持GPIO數(shù)據(jù)的透傳性,通過操作液晶屏DISSET1寄存器或者是ACSET寄存器來改變液晶屏的顯示極性,即在液晶屏內(nèi)部產(chǎn)生極性翻轉(zhuǎn)。

        3 " " 液晶屏詳細(xì)驅(qū)動(dòng)設(shè)計(jì)

        3.1 " 液晶屏初始化流程

        在軟件設(shè)計(jì)時(shí)需要按照圖6的流程對液晶屏進(jìn)行初始化動(dòng)作,流程之間的時(shí)間必須大于流程圖中的時(shí)間,否則會(huì)引起液晶屏花屏、黑屏等顯示故障。

        部分液晶屏初始化源碼如下(篇幅受限,隱藏部分寄存器配置代碼):

        /*initial all the used pins*/

        IO_LCD_RES_OUTPUT = 1;IO_LCD_CS_OUTPUT = 1;IO_LCD_A0_OUTPUT = 0;

        IO_LCD_RD_OUTPUT = 1;IO_LCD_WR_OUTPUT = 0;

        for(i=0;ilt;3000;i++){__asm(“ nop”);//DelayXms(5);}

        for(i=0;ilt;3000;i++){__asm(“ nop”);//DelayXms(100);}

        /* Hardware reset */

        IO_LCD_RES_OUTPUT = 0;delayms(50);IO_LCD_RES_OUTPUT = 1;delayms(100);

        /* Software reset */

        ECU_Matrix_TxCmd(0x5Eu);ECU_Matrix_TxData(0xA5u);delayms(50);

        /* DISAR (Display Area: 91h) */

        ECU_Matrix_TxCmd(0x91u);

        ECU_Matrix_TxData(0x00u); /* Parameter1: number of display lines (MSB) */

        /*Hiding Some Code*/

        ……

        /*Hiding Some Code*/

        /*delay more than 1ms*/

        delayms(10);

        /* SLEEP OUT */

        ECU_Matrix_TxCmd(0x13u);ECU_Matrix_TxData(0xA5u);delayms(10);

        /* Display ON */

        ECU_Matrix_TxCmd(0x12u);ECU_Matrix_TxData(0xA5u);ECU_Matrix_TxCmd(0x3Au);ECU_Matrix_TxData(0xA5u);

        /* Display OFF */

        ECU_Matrix_TxCmd(0x11u);ECU_Matrix_TxData(0xA5u);

        3.2 " 液晶屏去初始化流程

        去初始化流程一般用于儀表在休眠前對液晶屏的操作,去初始化流程不能省略,該流程的執(zhí)行決定了下次液晶屏啟動(dòng)時(shí)的工作狀態(tài),能充分保證液晶屏再次啟動(dòng)運(yùn)行時(shí)的顯示質(zhì)量,杜絕黑屏、花屏等顯示故障的發(fā)生,同時(shí)能有效提高液晶屏的使用壽命。

        液晶屏初始化源碼如下

        void ECU_MatrixLcd_DeInit(void)

        {

        /* SLEEP IN */

        ECU_Matrix_TxCmd(0x14u);

        ECU_Matrix_TxData(0xA5u);

        delayms(10);

        ECU_POWER_5V_2_OFF();//TURN OFF LCD VDD1amp;VDD2

        }

        3.3 " 液晶屏顯示填充和清屏功能實(shí)現(xiàn)

        在項(xiàng)目實(shí)際應(yīng)用中,液晶屏顯示填充功能主要應(yīng)用于儀表自帶的液晶屏診斷功能,將液晶屏的所有像素點(diǎn)點(diǎn)亮,用于診斷儀表液晶屏是否存在壞點(diǎn)。而液晶屏的清屏功能則主要應(yīng)用于顯示界面的整體切換,在顯示新的界面前需要把液晶屏進(jìn)行全屏清除。傳統(tǒng)的實(shí)現(xiàn)方法如下,通過將數(shù)據(jù)連續(xù)的寫入DISPLAY RAM,直到把所有的點(diǎn)陣數(shù)據(jù)全部寫完,具體執(zhí)行代碼如下:

        顯示填充:

        /* Description : set all the matrix display, the whole display is white*/

        void ECU_MatrixLcd_Fill(void)

        {

        unsigned short i;

        ECU_Matrix_SetPage(0u, 0x1du);

        ECU_Matrix_SetAddr(0x00u, 0x00u, 0x01u, 0x3fu);

        ECU_Matrix_TxCmd(0x3Au);

        ECU_Matrix_TxData(0xA5u);

        for(i = 0u; i lt; 9600u; i++) " /* 9600 = (240/8) * 320 */

        {

        ECU_Matrix_TxData(0x00u);

        }

        }

        清屏顯示:

        /* Description : set all the matrix display, the whole display is black*/

        void ECU_MatrixLcd_Fill(void)

        {

        unsigned short i;

        ECU_Matrix_SetPage(0u, 0x1du);

        ECU_Matrix_SetAddr(0x00u, 0x00u, 0x01u, 0x3fu);

        ECU_Matrix_TxCmd(0x3Au);

        ECU_Matrix_TxData(0xA5u);

        for(i = 0u; i lt; 9600u; i++) " /* 9600 = (240/8) * 320 */

        {

        ECU_Matrix_TxData(0xFFu);

        }

        }

        由于采用的是320*240像素的點(diǎn)陣屏,像素點(diǎn)數(shù)量為76800個(gè),因此需要向液晶屏傳遞9600個(gè)字節(jié)寫入顯存。這種傳統(tǒng)的驅(qū)動(dòng)方式應(yīng)用在驅(qū)動(dòng)像素?cái)?shù)量較低的液晶屏上,單片機(jī)的處理時(shí)間還能承受,但是在驅(qū)動(dòng)320*480或更高像素點(diǎn)陣屏?xí)r,單片機(jī)的運(yùn)行速度就力不從心了,因此需要其他效率更高的方式來實(shí)現(xiàn)以上的填充或清屏功能。

        3.4 " "液晶屏區(qū)域顯示功能

        液晶屏區(qū)域顯示功能是液晶驅(qū)動(dòng)層的核心部分,功能上就是將需要顯示的界面或圖片生成點(diǎn)陣數(shù)據(jù),按照一定的數(shù)據(jù)結(jié)構(gòu)傳遞到液晶屏指定區(qū)域的Display RAM中去,并將界面圖片顯示出來。具體流程和顯示舉例見圖8:

        執(zhí)行代碼如下:

        void descompression_far1(unsigned char start_page,unsigned short start_address,unsigned char height,unsigned short width,__far const unsigned char *p)

        {//適用于320×240 TFT點(diǎn)陣屏 height為頁高度

        end_page = start_page + (height - 1);

        ECU_Matrix_SetPage(start_page,end_page);

        end_address = start_address + (width - 1);

        ECU_Matrix_SetAddr((unsigned char)(start_address / 0x100),

        (unsigned char)(start_address % 0x100),

        (unsigned char)(end_address / 0x100),

        (unsigned char)(end_address % 0x100));

        ECU_Matrix_TxCmd(0x3Au);//write data to display ram

        ECU_Matrix_TxData(0xA5u);

        IO_LCD_CS_OUTPUT = 0; " /* pull down CS to enable input/output for data/command */

        IO_LCD_A0_OUTPUT = 1; " /* Set 1 to A0 : PA0-PA7 is data or command parameter output */

        IO_LCD_RD_OUTPUT = 1;

        number_byte=*p + *(p+1)*0x100;

        //number_byte = lenth;

        for(k=2; klt;number_byte; k++)

        {

        if(*(p+k)==0)

        {//hiding data unpack code

        }

        else

        {

        IO_LCD_WR_OUTPUT = 0;

        WriteData2LCDRegister(*(p+k));

        IO_LCD_WR_OUTPUT = 1;

        }

        }

        }

        程序代碼通過代入的顯示圖片起始頁,起始地址的形參來定位圖片位置,并根據(jù)圖片寬度和高度形參來計(jì)算寫入D_RAM(顯)的范圍,最后通過代入顯示數(shù)據(jù)數(shù)組的FLASH首地址將顯示數(shù)據(jù)逐個(gè)寫入到D_RAM中去。(注:顯示數(shù)據(jù)的長度數(shù)值存放在顯示數(shù)組的首兩個(gè)地址中)。相關(guān)的計(jì)算方法見以下公式:

        (1)

        式中 " " " " " " " " "為圖片起始地址; " " " " " " 為顯存橫坐標(biāo)值; " " " " " 為像素點(diǎn)橫坐標(biāo)

        (2)

        式中 " " " " " " " "為圖片結(jié)束地址; " " " " " " " " 為圖片起始地址; " " " " " " " " 為圖片寬度

        (3)

        式中 " " " " " " "為圖片起始頁; " " " " " " "為顯存縱坐標(biāo)值; " " " " "為像素點(diǎn)縱坐標(biāo)

        (4)

        式中 " " " " " " 為圖片結(jié)束頁; " " " " " " "為圖片起始頁; " " " " " " " " "為圖片高度。

        4 " " "液晶屏驅(qū)動(dòng)優(yōu)化計(jì)算分析

        4.1 " 液晶屏顯示填充和清屏功能優(yōu)化

        本文3.3部分對液晶屏顯示填充和清屏功能的實(shí)現(xiàn)進(jìn)行了描述,但隨著TFT像素點(diǎn)數(shù)量的增加,針對320*240分辨率的液晶屏, MCU需要寫入像素點(diǎn)數(shù)量為76800個(gè),總共9600個(gè)字節(jié),那么3.3部分的實(shí)現(xiàn)方式就無法滿足要求,因?yàn)樾聝x表為了降低開發(fā)成本,MCU仍沿用老款儀表的型號,意味著相同的“馬”要拉更大的“車”。

        寫顯存數(shù)據(jù)代碼:

        for(i = 0u; i lt; 9600u; i++) " /* 9600 = (240/8) * 320 */

        {

        ECU_Matrix_TxData(0xFFu);

        }

        以上程序經(jīng)分析需要執(zhí)行9600個(gè)循環(huán),其中ECU_Matrix_TxData()函數(shù)展開計(jì)算大概需要15個(gè)運(yùn)行指令,按照指令復(fù)雜度,每個(gè)運(yùn)行指令可能會(huì)花費(fèi)多個(gè)時(shí)鐘周期,同時(shí)還要考慮for循環(huán)的指令數(shù)量。我們按照單次執(zhí)行此函數(shù)花費(fèi)50個(gè)時(shí)鐘周期來計(jì)算,結(jié)合MCU的16Mhz主頻,執(zhí)行寫顯存數(shù)據(jù)代碼的LCD刷新時(shí)間為16000000/9600/50≈33hz,此刷新頻率用肉眼即可分辨。因此在顯示界面整屏切換時(shí),用戶體驗(yàn)較差,會(huì)覺得界面切換不流暢,液晶顯示有卡頓現(xiàn)象。因此需要對軟件處理策略進(jìn)行優(yōu)化調(diào)整。優(yōu)化后的代碼如下:

        ECU_Matrix_SetPage(0u, 0x1du);

        ECU_Matrix_SetAddr(0x00u, 0x00u, 0x01u, 0x3fu);

        ECU_Matrix_TxCmd(0x31u);//block fill

        ECU_Matrix_TxData(0x01u);

        ECU_Matrix_TxData(0xA5u);

        ECU_Matrix_TxData(0xA5u);

        ECU_Matrix_TxData(0xA5u);

        for(i = 0u; i lt; 8000u; i++) " /* 9600 = (240/8) * 320 */

        {

        __asm(“ nop”);

        }

        優(yōu)化的策略是不再使用MCU向LCD寫顯存的方式進(jìn)行清屏或顯示填充策略,而是采用向屏傳遞特殊命令的方式讓屏內(nèi)的控制器自己去刷新液晶屏的顯存,即使用“Block fill”功能。通過訪問液晶屏的BLKFIL(31H)功能寄存器,實(shí)現(xiàn)顯存區(qū)域塊的批量填充和清除功能。

        雖然實(shí)際上也需要等待一段時(shí)間,但是這個(gè)時(shí)間比MCU向LCD寫顯存的時(shí)間大大縮短了。

        這主要是由于LCD內(nèi)部的控制器去訪問內(nèi)部顯存的效率要比單片機(jī)訪問LCD的顯存速度快很多。我們再來計(jì)算下時(shí)間,程序中耗費(fèi)時(shí)間比較長的8000個(gè)循環(huán),這8000個(gè)循環(huán)的目的是為了等待液晶屏控制器刷新顯存的時(shí)間,循環(huán)中只有__asm(“ nop”);這一條語句,該指令只消耗一個(gè)時(shí)鐘周期。此時(shí)LCD刷新時(shí)間為16000000/8000≈2000hz.顯然這個(gè)時(shí)間已經(jīng)很短,肉眼已經(jīng)分辨不出。極大的改善了用戶體驗(yàn)。

        4.2 " 液晶屏顯示數(shù)據(jù)壓縮算法優(yōu)化

        由于新款儀表的液晶屏分辨率提高到320* 240,像素點(diǎn)數(shù)量為76800個(gè),一整屏圖片數(shù)據(jù)量為9600個(gè)字節(jié)。而老款儀表液晶屏的166*128分辨率,像素點(diǎn)數(shù)量為21248個(gè),整屏圖片數(shù)據(jù)量為2526個(gè)字節(jié)。因此新款儀表的顯示界面數(shù)據(jù)量約為老款儀表界面數(shù)據(jù)量的3.8倍。而新老兩款儀表采用的MCU芯片型號不變,那么意味著如果顯示相同的內(nèi)容,同樣的FLASH空間,新款儀表需要多存儲(chǔ)2.8倍的圖片數(shù)據(jù)。所以針對圖片的數(shù)據(jù)必須要進(jìn)行壓縮。否則FLASH空間將不再滿足顯示圖片的存放需求。

        由于大部分的圖片數(shù)據(jù)會(huì)連續(xù)出現(xiàn)多個(gè)0x00或0xFF數(shù)據(jù),即圖片中會(huì)有很多區(qū)域是連續(xù)填充的或清除的,所以顯示圖片壓縮算法遵循以下原則。

        當(dāng)檢測到數(shù)據(jù)中出現(xiàn)0x00或0xff時(shí),立刻計(jì)算后續(xù)的連續(xù)出現(xiàn)的0x00或0xff的個(gè)數(shù)。

        當(dāng)連續(xù)出現(xiàn)的個(gè)數(shù)小于等于255個(gè),則此連續(xù)數(shù)據(jù)用兩個(gè)字節(jié)代替,第一個(gè)字節(jié)用0x00或0xff表示,標(biāo)明是0x00或0xff的連續(xù)數(shù)據(jù),第二個(gè)字節(jié)表示長度;

        當(dāng)連續(xù)出現(xiàn)的個(gè)數(shù)大于255小于等于65535個(gè),則此連續(xù)數(shù)據(jù)用四個(gè)字節(jié)代替,第一個(gè)字節(jié)和第二個(gè)字節(jié)用0x00或0xff表示,標(biāo)明是0x00或0xff的連續(xù)數(shù)據(jù),第三個(gè)和第四個(gè)字節(jié)表示長度;

        由于最大顯示數(shù)據(jù)不會(huì)超過9600個(gè),因此以上壓縮策略已經(jīng)足夠。圖片壓縮算法通過上位機(jī)軟件實(shí)現(xiàn),針對儀表顯示端采用軟件解壓縮策略。

        解壓縮算法流程圖如圖9所示。

        結(jié) " "論

        儀表總成效果圖如圖10所示:

        按照以上策略優(yōu)化LCD顯示清除和填充功能,保證了在不更換高性能MCU的前提下,依然能高效率的驅(qū)動(dòng)高分辨率TFT屏,將整屏顯示切換速度提高了幾十倍。保證液晶屏流暢的切換顯示。提高了用戶體驗(yàn)。

        采用數(shù)據(jù)壓縮優(yōu)化算法能有效的降低顯示圖片的FLASH占用空間,不需要更換更大容量的FLASH或MCU芯片,有效降低了硬件成本,提高了產(chǎn)品收益率。該方案獲得項(xiàng)目組和技術(shù)組的一致認(rèn)可。相關(guān)組合儀表項(xiàng)目計(jì)劃于2021年7月實(shí)現(xiàn)量產(chǎn),且根據(jù)市場訂單,預(yù)計(jì)2022年實(shí)現(xiàn)銷售額700萬元。

        以上基于優(yōu)化后的5寸TFT單色反顯液晶屏驅(qū)動(dòng)策略,可靠、快速的響應(yīng)了公司對相關(guān)組合儀表項(xiàng)目的投產(chǎn)需求,為公司創(chuàng)造了良好的經(jīng)濟(jì)效益的同時(shí),該驅(qū)動(dòng)優(yōu)化算法可推廣移植應(yīng)用于其他基于5寸單色TFT液晶屏的儀表項(xiàng)目設(shè)計(jì)中去,以實(shí)現(xiàn)技術(shù)的持續(xù)增盈。

        參考文獻(xiàn):

        [1]朱玉龍.汽車電子硬件設(shè)計(jì)[M]. 北京:北京航空航天大學(xué)出版社.2011.1版.

        [2]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社.2005.第3版.

        [3]馬群剛.TFT_LCD原理與設(shè)計(jì)[M].電子工業(yè)出版社.2011.12版.

        [4]戴亞翔.TFT_LCD面板的驅(qū)動(dòng)與設(shè)計(jì)[M].北京:清華大學(xué)出版社.2008.11版.

        [5]杜春雷. ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社.2003版.

        陸敬泉

        畢業(yè)于湖北工業(yè)大學(xué),工學(xué)學(xué)士學(xué)位,現(xiàn)就職于東風(fēng)電驅(qū)動(dòng)系統(tǒng)有限公司,任技術(shù)中心主任工程師,高級工程師職稱,現(xiàn)主要研究方向:智能網(wǎng)聯(lián)汽車技術(shù)、汽車電子產(chǎn)品研發(fā)。

        專家推薦語

        程春林

        東風(fēng)電驅(qū)動(dòng)系統(tǒng)有限公司技術(shù)中心

        主任工程師 "高級工程師

        本文采用數(shù)據(jù)壓縮優(yōu)化算法降低了顯示圖片的占用空間,通過向屏傳遞特殊命令的方式刷新液晶屏,提高了整屏顯示切換速度,在保證液晶屏流暢的顯示的同時(shí)降低了硬件成本,具有較高的理論水平及實(shí)際應(yīng)用價(jià)值。

        少妇勾引视频网站在线观看| 中文字幕无码免费久久9一区9 | 色老板在线免费观看视频日麻批| 国产日本精品一区二区| 久久久亚洲av午夜精品| 91国产超碰在线观看| 天堂影院久久精品国产午夜18禁 | 熟女白浆精品一区二区| 漂亮人妻被强中文字幕乱码| 麻豆久久91精品国产| 东北女人啪啪对白| 国产人妻大战黑人20p| 欧美日韩国产成人高清视频| 国内少妇人妻丰满av| 久久水蜜桃亚洲av无码精品麻豆| 无码精品国产午夜| 青青青视频手机在线观看| 91九色视频在线国产| 在厨房拨开内裤进入毛片| 国产成人av一区二区三区| 久久久久久人妻一区二区三区| 亚洲成av人最新无码| 亚洲av乱码专区国产乱码| 中文字幕一区二区三区在线看一区| 青青草成人在线免费视频| 免费女人高潮流视频在线观看| 黄色a级国产免费大片| 亚洲爆乳大丰满无码专区| 白白色发布视频在线播放| 一道本久久综合久久鬼色| 国语自产偷拍在线观看| 亚洲熟妇色xxxxx欧美老妇y| 亚洲中文字幕av天堂| 日本一区二区三区在线视频播放| 亚洲一区毛片在线观看| 欧美国产一区二区三区激情无套| 六月丁香久久| 国产三级黄色片子看曰逼大片| 99久久国产精品免费热| 亚洲国产欧美在线观看| 亚洲av无码成人精品区天堂|