當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]摘要:介紹一種應(yīng)用于液晶顯示的數(shù)字存儲(chǔ)示波器波形顯示的算法。通過(guò)分析相鄰采樣數(shù)據(jù)之間的大小關(guān)系。得到逼近波形的系列直線段;通過(guò)分析不同通道直線段的位置關(guān)系,得到最佳的線段合成效果;通過(guò)分析待清除線段和

摘要:介紹一種應(yīng)用于液晶顯示的數(shù)字存儲(chǔ)示波器波形顯示的算法。通過(guò)分析相鄰采樣數(shù)據(jù)之間的大小關(guān)系。得到逼近波形的系列直線段;通過(guò)分析不同通道直線段的位置關(guān)系,得到最佳的線段合成效果;通過(guò)分析待清除線段和需繪制線段的位置關(guān)系,得到最優(yōu)的清除和繪圖列表。算法可有效地提升示波器的顯示速度。
關(guān)鍵詞:線程;LCD逼近;遮蔽分析;清除和繪圖分析

    數(shù)字存儲(chǔ)示波器所顯示的波形是由系列直線段有效地逼近而得到的。畫(huà)波形函數(shù)是由畫(huà)點(diǎn)函數(shù)按照一定的算法寫(xiě)出的,不同的算法畫(huà)出的波形在速度和效果上會(huì)有所不同。因此有效的波形顯示算法可以很大程度上提高波形的顯示速度和視覺(jué)效果。

1 示波器程序模塊的介紹
    示波器采用嵌入式μC/OS操作系統(tǒng)。每一個(gè)任務(wù)都是一個(gè)無(wú)限循環(huán)。為了降低耦合,增強(qiáng)內(nèi)聚,需要建立消息郵箱,以保證不同任務(wù)之間的通信。示波器的模塊示意圖如圖1所示。



2 波形顯示線程和畫(huà)波形函數(shù)的說(shuō)明
    波形顯示功能是由波形顯示線程實(shí)現(xiàn)的,畫(huà)點(diǎn)、畫(huà)線、顯示字符等都由基本的畫(huà)點(diǎn)函數(shù)來(lái)實(shí)現(xiàn)。一種常見(jiàn)的波形顯示方法就是:分別根據(jù)示波器通道的采樣數(shù)據(jù)繪制波形,待下一屏顯示數(shù)據(jù)準(zhǔn)備就緒之后,將上一屏已經(jīng)顯示的波形全部擦除,再繪制準(zhǔn)備就緒的波形數(shù)據(jù)。由于執(zhí)行畫(huà)點(diǎn)函數(shù)比較耗時(shí),特別是在接近圖形滿屏的情況下,畫(huà)點(diǎn)函數(shù)被調(diào)用次數(shù)較多,嚴(yán)重影響其他線程獲得CPU的使用權(quán),有可能會(huì)產(chǎn)生拖屏現(xiàn)象。示波器采用一種高效地波形顯示算法,可以有效的解決上述問(wèn)題,算法是在畫(huà)波形函數(shù)中實(shí)現(xiàn)的。圖2是畫(huà)波形函數(shù)的流程圖。


    首先,聲明一個(gè)wavebuff類型的指針pdl,pdl指向封裝采樣數(shù)據(jù)的鏈表。如果示波器僅有一個(gè)通道處于工作狀態(tài),則pdl→next指向NULL;如果雙通道同時(shí)工作,則將激活狀態(tài)的通道數(shù)據(jù)封裝于鏈表的頭結(jié)點(diǎn),next指向封裝另一通道數(shù)據(jù)的結(jié)點(diǎn)。以鏈表的方式封裝數(shù)據(jù),靈活方便,節(jié)省內(nèi)存,擴(kuò)展性強(qiáng),如果有其他功能需求可以自由擴(kuò)展鏈表長(zhǎng)度。波形需要由經(jīng)過(guò)處理的采樣值構(gòu)造系列直線段逼近得到。直線段的參數(shù)由CLINE類型的數(shù)據(jù)結(jié)構(gòu)封裝。遮蔽分析主要是為了在兩通道同時(shí)工作的情況下,盡量減少畫(huà)點(diǎn)。清屏和繪圖分析是為了將待擦除線段與待繪制線段進(jìn)行比較,重復(fù)線段保留,多余線段擦除,進(jìn)一步達(dá)到減少畫(huà)點(diǎn)的目的。
   
2.1 構(gòu)造繪圖線段
    畫(huà)波形函數(shù)是由畫(huà)點(diǎn)函數(shù)按照一定的算法寫(xiě)出的,不同的算法繪制波形在速度和效果上會(huì)有所不同。波形顯示算法要求達(dá)到波形粗細(xì)均勻,連續(xù),繪制的速度快。示波器每屏顯示600個(gè)離散數(shù)據(jù)。如果僅是將經(jīng)處理后的采樣離散數(shù)據(jù)在LCD對(duì)應(yīng)的位置畫(huà)出點(diǎn)來(lái),波形不是連續(xù)的,而是離散的點(diǎn),且看起來(lái)不清晰。構(gòu)造繪圖線段的作用就是根據(jù)相鄰離散數(shù)據(jù)的大小關(guān)系得到繪制連續(xù)波形的一系列直線段的上下端點(diǎn)數(shù)值,流程圖如圖3所示。其方法如下:定義一個(gè)wavebuff類型的指針pdl。如果當(dāng)前點(diǎn)的值大于與之相鄰的下一點(diǎn)的值即pdl→buff[i]>pdl→buff[i+1],那么當(dāng)前點(diǎn)所對(duì)應(yīng)的直線段的上端點(diǎn)值hi=pdl→buff[i],下端點(diǎn)值lo=pdl→buff[i+1]+1;如果pdl→buff[i]<pdl→buff[i+1],則hi=pdl→buff[i+1]-1,lo=pdl→buff[i];如果pdl→buff[i]=pdl→buff[i+1],則hi=lo=buff[i]。這樣,離散的點(diǎn)就被一系列直線段所代替,構(gòu)成連續(xù)的波形。波形的顯示區(qū)域有一定范圍,d_limit是顯示區(qū)域的下邊界值;u_limit是上邊界值;如果整個(gè)直線段都超出上下界的范圍,整個(gè)直線段將被舍去,不顯示。如果直線段僅是下端超出下邊界,那么直線段的下端值就被賦為下邊界的值;同理,相反情況下,直線段的上端值就被賦為上邊界的值。


2.2 遮蔽分析
    遮蔽分析主要作用就是在兩個(gè)通道同時(shí)工作的情況下,分析代表不同通道數(shù)據(jù)的直線段在繪圖時(shí)互相的遮擋關(guān)系,以達(dá)到少畫(huà)點(diǎn)的目的,這種會(huì)相互遮擋的直線段在液晶屏上的橫坐標(biāo)總是相同的。數(shù)據(jù)先進(jìn)入的通道的優(yōu)先級(jí)高即此通道的波形可以覆蓋其他通道的波形。當(dāng)代表不同通道的直線段在位置上有重合關(guān)系時(shí),優(yōu)先級(jí)高的線段覆蓋優(yōu)先級(jí)低的線段,這樣可以避免重合部分的重復(fù)繪制。根據(jù)線段之間不同位置關(guān)系,遮蔽關(guān)系有6種:即(nlo>lo,nhi<hi),(nlo>lo,nhi>=hi,nlo<=hi),(nlo>-hi),(nlo<=lo,nhi<hi,nhi>=lo),(nlo<= lo,nhi>=hi),(nhi<lo)。其中:hi,lo分別代表高優(yōu)先級(jí)線段的上、下端點(diǎn)值,nhi、nlo分別代表低優(yōu)先級(jí)線段的上、下端點(diǎn)值。以nlo<lo,nhi>hi的情況為例說(shuō)明遮蔽分析的原理如圖4所示。圖中1代表先入數(shù)據(jù)線段,2代表后入數(shù)據(jù)線段,其程序具體流程如下:獲取先入數(shù)據(jù)的lo,hi,color,聲明一個(gè)CLINE類型的指針變量pdline,判斷是否還有其他通道數(shù)據(jù),如果沒(méi)有,則直接結(jié)束遮蔽分析(遮蔽分析在這種情況下無(wú)意義,它起到減少畫(huà)點(diǎn)作用是兩通道同時(shí)工作時(shí));如果有另一通道工作,則處理之后線段被分為了三部分。其遮蔽后的效果如圖5所示,最下面的線段2將作為鏈表頭結(jié)點(diǎn),成員值分別是pdline→lo=nlo,pdline→hi=lo-1,pdline→color=ncolor;線段1則成為第二結(jié)點(diǎn),pdline→next→lo=lo,pdline→next→hi=hi,pdline→next→color=color;最上面的線段2為第三結(jié)點(diǎn),pdline→next→next→lo= hi+1,pdline→next→next→hi=nhi,pdline→next→next→color=ncolor。鏈表的方向是由下至上的指向各線段的,這樣可以簡(jiǎn)化清除和繪圖分析,具體將在下文說(shuō)明??梢?jiàn),如果不進(jìn)行遮蔽分析,當(dāng)兩個(gè)通道同時(shí)工作時(shí),考慮到數(shù)據(jù)線段的優(yōu)先級(jí),線段繪制的先后順序是先2后1,繪制線段的總長(zhǎng)度為(nhi-nlo)+(hi-lo)。進(jìn)行遮蔽分析后,線段繪制的順序是由鏈表的指向性確定的,繪制線段總長(zhǎng)度為nhi-nlo。


2.3 清除和繪圖分析
    在繪制新波形之前,總要先清除舊波形。一般的方法就是,將舊波形數(shù)據(jù)存于待清除波形列表中,通過(guò)畫(huà)點(diǎn)函數(shù)將舊波形畫(huà)成背景色,然后再繪制新波形,清除和繪圖本質(zhì)都是調(diào)用畫(huà)點(diǎn)函數(shù)進(jìn)行繪圖。大多數(shù)情況下,待清除的波形和待繪制的波形都會(huì)有重合部分,如果通過(guò)一定的分析找到重合部分,重合部分不清除也不重新繪制,等同于少調(diào)用了兩次畫(huà)點(diǎn)函數(shù),這就大幅縮短波形顯示線程占用CPU的時(shí)間,特別是在示波器采樣率較低,波形接近滿屏的情況下,效果更加明顯。
    p1,p2分別是指向待清除、繪制線段數(shù)據(jù)結(jié)構(gòu)的CLINE類型指針,待清除和待繪制的直線段位置關(guān)系有6種:(p1→lo<p2→lo,p1→hi>p2 →hi),(p1→lo<p2→lo,p1→hi>=p2→lo,p1→hi<=p2→hi),(p1→lo>=p2→lo,p1→hi<=p2→hi,p1→hi>p2→lo),(p1→lo>=p2→lo,p1→hi<=p2→hi,p1→hi<=p2→lo),(p1→hi<p2→lo),(p1→lo>p2→hi)。以p1→lo<p2→lo,p1→hi>p2→hi的情況為例,如圖5所示,說(shuō)明分析的原理。如果p1或p2任一為空,則結(jié)束分析;若都不為空,則需要對(duì)鏈表進(jìn)行插入操作,即將原待清除的線段分成兩部分。令value= p1→hi,當(dāng)待清除和待繪制線段的顏色相同時(shí),p1→lo不變,p1→hi=p2→lo-1,p1→next→lo=p2→hi+1,p1→next→hi=vslue,由于重合部分顏色相同,故不清除也不用繪圖,p2指向的結(jié)點(diǎn)被刪除。當(dāng)顏色不同時(shí),p1→lo不變,p1→hi=p2→lo-1,p1→next→lo=p2→hi+1,p1→next→hi=value,重合部分顏色不同故此部分仍需繪制,p2→hi、p2→lo都不變。由于遮蔽分析使鏈表方向是自下而上的指向各個(gè)線段,故只需讓p1或者p2中指向位置在下面線段的指針指向其下一結(jié)點(diǎn)即可,之后判斷是否符合循環(huán)條件。這樣可以大大簡(jiǎn)化循環(huán)流程,假設(shè)清除線段和繪圖線段各有三段,由于鏈表具有自下而上的指向性,則最多循環(huán)3次即可以完成分析;如果沒(méi)有指向性,那么就至少需要循環(huán)3×3次才能完成分析。



3 結(jié)語(yǔ)
    采樣頻率是衡量數(shù)字存儲(chǔ)示波器示波器性能的重要指標(biāo),但如果顯示算法不理想,即使采樣頻率較高也無(wú)法將采集的波形及時(shí)的顯示在使用者面前。畫(huà)點(diǎn)函數(shù)占用CPU時(shí)間較其他函數(shù)久,這會(huì)導(dǎo)致優(yōu)先級(jí)低的任務(wù)長(zhǎng)時(shí)間無(wú)法得到CPU的使用權(quán)。因此一種有效的波形顯示算法對(duì)于提升示波器的性能同樣是十分重要的。算法已在投產(chǎn)的示波器上得到很好的應(yīng)用,有效解決了波形接近滿屏情況下的拖屏現(xiàn)象,對(duì)于提升示波器的顯示速度乃至整機(jī)性能有很大幫助。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉