一種數(shù)字儀表的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)字儀表,尤其是一種顯示流暢平滑便于準確讀取數(shù)據(jù)的數(shù)字儀表。
【背景技術(shù)】
[0002]伴隨著數(shù)字電子顯示技術(shù)的不斷進步,其正在飛速地從高端設(shè)備的應(yīng)用,發(fā)展到工廠視頻文本控制、機電一體化的安全監(jiān)控以及人們?nèi)粘I钪兴佑|到的汽車、電梯、智能家居等生活的方方面面。由于信息技術(shù)的發(fā)展以及電子消費品市場在最近幾年的普遍應(yīng)用已經(jīng)證明HMI (Human Machine Interface人機接口)對客戶的重要性,以此逐步形成現(xiàn)場總線CAN這種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò)。同時基于嵌入式技術(shù)的高可靠、低功耗、長壽命、小體積、高性能的功能以及文本、視頻顯示形式在現(xiàn)實世界的大規(guī)模應(yīng)用,數(shù)字顯示系統(tǒng)越來越成為汽車工業(yè)、節(jié)能減排、信息家電、儀器儀表等電子信息領(lǐng)域不可或缺的一部分。通過對于市場上現(xiàn)有數(shù)字儀表的顯示功能進行深入調(diào)查后發(fā)現(xiàn):有的數(shù)字儀表只是單純的文本顯示,不能滿足人們對實時動態(tài)信息準確的掌握;有的數(shù)字儀表只是視頻顯示,不能較直觀、精確的滿足人們對準確數(shù)字的要求;而有的數(shù)字儀表雖然既能顯示文本又能顯示視頻,但是在實際應(yīng)用中要不就是在顯示圖像的細節(jié)處理方面存在毛刺,要不就是高昂的價格讓人卻步。面對電子顯示技術(shù)日益發(fā)展和成熟的新時代,此類產(chǎn)品具有如下缺點:a、不能支持視頻、表盤、文本的綜合顯示;b、數(shù)字儀表不能實現(xiàn)平滑、流暢的顯示,還達不到與機械表盤同樣的顯示效果;C、沒有結(jié)合CAN總線接口的優(yōu)點。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的就是解決上述的難題,提供一種數(shù)字儀表使數(shù)字儀表的指針運動顯示流暢平滑,便于準確的讀取儀表數(shù)據(jù)。
[0004]本發(fā)明的目的是通過如下的電路模塊和控制步驟實現(xiàn)的,其包括:顯示器,顯示器連接顯示模塊,顯示模塊連接CPU,CPU連接程序存儲器和數(shù)據(jù)存儲器,CPU還連接數(shù)據(jù)通訊接口,所述顯示模塊在CPU控制下通過如下步驟在顯示器上顯示測量數(shù)據(jù):
(1)測量數(shù)據(jù)經(jīng)數(shù)據(jù)通訊接口存入數(shù)據(jù)存儲器中的公用數(shù)據(jù)區(qū);
(2)查詢共用數(shù)據(jù)區(qū)中是否有測量數(shù)據(jù)更新,如果有測量數(shù)據(jù)更新則進入下一個步驟(3)進行處理,如果沒有測量數(shù)據(jù)更新則仍繼續(xù)查詢;
(3)將測量更新的數(shù)據(jù)轉(zhuǎn)換為指針數(shù)據(jù);
(4)先將更新前的指針數(shù)據(jù)作為當前指針數(shù)據(jù),然后按照指針數(shù)據(jù)在儀表指針圖像庫中的排列順序,從儀表指針圖像庫中更新前的指針數(shù)據(jù)開始,循環(huán)執(zhí)行本步驟:將在儀表指針圖像庫中當前指針數(shù)據(jù)對應(yīng)的儀表指針圖像放入疊加圖層,接著將背景圖層中存儲的儀表表盤圖像調(diào)出與從疊加圖層調(diào)出的儀表指針圖像疊加后形成顯示圖像,然后將顯示圖像顯示在顯示器上,接著將儀表指針圖像庫中下一個顯示位置的指針數(shù)據(jù)作為當前指針數(shù)據(jù),直到當前指針數(shù)據(jù)超越了更新后的指針數(shù)據(jù)即結(jié)束本循環(huán)步驟; (5)返回步驟(2)。
[0005]所述的步驟(I)顯示控制前進行如下步驟的初始化:
a.將儀表的量程和刻度數(shù)設(shè)置在儀表表盤圖像上,并將表盤圖像存入背景圖層中;
b.在儀表表盤圖像上從量程起始位置開始,儀表指針每旋轉(zhuǎn)I個旋轉(zhuǎn)精度,就將相應(yīng)角度下對應(yīng)形狀的儀表指針圖像依次存入儀表指針庫中,直到量程的終點位置為止,所述的I個旋轉(zhuǎn)精度為旋轉(zhuǎn)角度0.1°至1°。
[0006]將獲得的測量數(shù)據(jù)轉(zhuǎn)換為儀表的指針數(shù)據(jù)采用如下步驟:
一、根據(jù)測量數(shù)據(jù)確定在顯示時,儀表指針位于表盤圖像中的象限位置;
二、根據(jù)測量數(shù)據(jù)所處的象限位置確定指針的旋轉(zhuǎn)角度,將指針的旋轉(zhuǎn)角度作為指針數(shù)據(jù)。
[0007]如所述儀表的指針旋轉(zhuǎn)角度在0°到180°之間,且儀表的指針沿逆時針方向旋轉(zhuǎn),測量數(shù)據(jù)中沒有負值,則將獲得的測量數(shù)據(jù)轉(zhuǎn)換為指針數(shù)據(jù)采用如下步驟:
A.如果測量數(shù)據(jù)大于儀表量程的上限,就將儀表量程的上限作為指針數(shù)據(jù);如果測量數(shù)據(jù)小于儀表量程的下限,就將儀表量程的下限作為指針數(shù)據(jù);
B.如果測量數(shù)據(jù)在儀表量程的范圍內(nèi),將儀表量程的上限減去儀表量程的下限得到差值;用指針指向儀表上限時指針所需的旋轉(zhuǎn)角度減去指針指向儀表下限時指針所需的旋轉(zhuǎn)角度得到的角度差;差值除以角度差得到比例系數(shù);比例系數(shù)乘以測量數(shù)據(jù)得到預(yù)顯數(shù)據(jù);判斷儀表指針庫中是否有該預(yù)顯數(shù)據(jù),如果有該預(yù)顯數(shù)據(jù),就將該預(yù)顯數(shù)據(jù)作為指針數(shù)據(jù),如果沒有該預(yù)顯數(shù)據(jù),則在儀表指針庫中取小于預(yù)顯數(shù)據(jù)的一個角度為下比較角度,且該下比較角度與預(yù)顯數(shù)據(jù)間差值的絕對值小于一個旋轉(zhuǎn)精度,在儀表指針庫中取大于預(yù)顯數(shù)據(jù)的一個角度為上比較角度,且該上比較角度與預(yù)顯數(shù)據(jù)間差值的絕對值小于一個旋轉(zhuǎn)精度,取上比較角度與下比較角度的中間值,如果預(yù)顯數(shù)據(jù)大于該中間值,則取上比較角度作為指針數(shù)據(jù),如果預(yù)顯數(shù)據(jù)小于該中間值,則取下比較角度作為指針數(shù)據(jù)。
[0008]如所述儀表的指針旋轉(zhuǎn)角度在0°到180°之間,指針既能沿逆時針方向旋轉(zhuǎn)又能沿順時針方向旋轉(zhuǎn),測量數(shù)據(jù)中既有正值,又有負值,則將獲得的測量數(shù)據(jù)轉(zhuǎn)換為指針數(shù)據(jù)采用如下步驟:
A.如果測量數(shù)據(jù)大于儀表量程的上限,就將儀表量程的上限作為指針數(shù)據(jù);如果測量數(shù)據(jù)小于儀表量程的下限,就將儀表量程的下限作為指針數(shù)據(jù);
B.如果測量數(shù)據(jù)在儀表量程的范圍內(nèi),將儀表量程的上限減去儀表量程的下限得到差值,儀表上限時指針的旋轉(zhuǎn)角度減去儀表下限時指針的旋轉(zhuǎn)角度得到的角度差,差值除以角度差得到比例系數(shù),比例系數(shù)乘以測量數(shù)據(jù)得到預(yù)處理數(shù)據(jù),預(yù)處理數(shù)據(jù)如果為正值,則將90°減去預(yù)處理數(shù)據(jù)作為預(yù)顯數(shù)據(jù),預(yù)處理數(shù)據(jù)如果為負值,則將180°減去預(yù)處理數(shù)據(jù)的絕對值作為預(yù)顯數(shù)據(jù),判斷儀表指針庫中是否有該預(yù)顯數(shù)據(jù),如果有該預(yù)顯數(shù)據(jù),就將該預(yù)顯數(shù)據(jù)作為指針數(shù)據(jù),如果沒有該預(yù)顯數(shù)據(jù),則在儀表指針庫中取小于預(yù)顯數(shù)據(jù)的一個角度為下比較角度,且該下比較角度與預(yù)顯數(shù)據(jù)間差值的絕對值小于一個旋轉(zhuǎn)精度,在儀表指針庫中取大于預(yù)顯數(shù)據(jù)的一個角度為上比較角度,且該上比較角度與預(yù)顯數(shù)據(jù)間差值的絕對值小于一個旋轉(zhuǎn)精度,取上比較角度與下比較角度的中間值,如果預(yù)顯數(shù)據(jù)大于該中間值,則取上比較角度作為指針數(shù)據(jù),如果預(yù)顯數(shù)據(jù)小于該中間值,則取下比較角度作為指針數(shù)據(jù)。
[0009]所述的步驟(4)替換為如下內(nèi)容:首先將背景圖層中存儲的儀表表盤圖像調(diào)出,接著將文字疊加在儀表表盤圖像上,然后將疊加了文字的儀表表盤圖像放回背景圖層,接下來將更新前的指針數(shù)據(jù)作為當前指針數(shù)據(jù),然后按照指針數(shù)據(jù)在儀表指針圖像庫中的排列順序,從儀表指針圖像庫中更新前的指針數(shù)據(jù)開始,循環(huán)執(zhí)行本步驟:將在儀表指針圖像庫中當前指針數(shù)據(jù)對應(yīng)的儀表指針圖像放入疊加圖層,接著將背景圖層中存儲的儀表表盤圖像調(diào)出與從疊加圖層調(diào)出的儀表指針圖像疊加后形成顯示圖像,然后將顯示圖像顯示在顯示器上,接著將儀表指針圖像庫中下一個顯示位置的指針數(shù)據(jù)作為當前指針數(shù)據(jù),直到當前指針數(shù)據(jù)超越了更新后的指針數(shù)據(jù)即結(jié)束本循環(huán)步驟。
[0010]所述的步驟(4)替換為如下內(nèi)容:首先將背景圖層中存儲的儀表表盤圖像調(diào)出,接著將文字疊加在儀表表盤圖像上,然后將疊加了文字的儀表表盤圖像放回背景圖層,接下來將更新前的指針數(shù)據(jù)作為當前指針數(shù)據(jù),然后按照指針數(shù)據(jù)在儀表指針圖像庫中的排列順序,從儀表指針圖像庫中更新前的指針數(shù)據(jù)開始,循環(huán)執(zhí)行本步驟:將在儀表指針圖像庫中當前指針數(shù)據(jù)對應(yīng)的儀表指針圖像放入疊加圖層,接著將背景圖層中存儲的儀表表盤圖像調(diào)出與從疊加圖層調(diào)出的儀表指針圖像疊加后形成顯示圖像,然后將顯示圖像與從數(shù)據(jù)通訊接口獲得的視頻圖像直接疊加形成混合圖像,然后將混合圖像顯示在顯示器上,接著將儀表指針圖像庫中下一個顯示位置的指針數(shù)據(jù)作為當前指針數(shù)據(jù),直到當前指針數(shù)據(jù)超越了更新后的指針數(shù)據(jù)即結(jié)束本循環(huán)步驟。
[0011]所述的顯示模塊包括:顯示控制器和顯存,顯示控制器為愛普生S1D13506顯示芯片。所述顯示模塊連接CPLD輔助顯示控制器,CPLD輔助顯示控制器直接連接顯示器。所述CPLD輔助顯示控制器連接視頻采集模塊。
[0012]本發(fā)明通過顯示模塊不斷實時將測量數(shù)據(jù)轉(zhuǎn)化為儀表指針圖像的不斷旋轉(zhuǎn)變化,使數(shù)字儀表的指針運動顯示流暢平滑,便于準確的讀取儀表數(shù)據(jù),對指針的疊加操作使用了透過疊加方式,避免了圖像疊加覆蓋時覆蓋掉背景信息。本發(fā)明利用分層功能,把文本的顯示和提示信息,都在背景層完成,這樣不會影響到指針的顯示效果,還可將從視頻監(jiān)視設(shè)備傳輸過來的顯示內(nèi)容,在不經(jīng)過顯存的情況下,直接疊加到顯示器的數(shù)據(jù)線上,提高了視頻處理的效率,也很好的解決了顯示多種疊加模式的問題。
【附圖說明】
[0013]圖1為本發(fā)明的組成模塊的結(jié)構(gòu)圖,圖2為本發(fā)明的顯示狀態(tài)圖。
【具體實施方式】
[0014]本發(fā)明實施例1包括:顯示器,顯示器連接顯示模塊,顯示模塊連接CPU,CPU連接程序存儲器和數(shù)據(jù)存儲器,CPU連接數(shù)據(jù)通訊接口。CPU采用日立SH7708系列的32位RISC處理器進行信號處理。顯示模塊包括:顯示控制器和顯存,顯示控制器為愛普生S1D13506顯示芯片,愛普生S1D13506顯示芯片連接顯存,顯存為512KB的高速動態(tài)RAM。數(shù)據(jù)通訊接口包括:CAN總線模塊和RS232隔離通訊模塊。CPU連接SDRAM型的數(shù)據(jù)儲器和Flash型的程序存儲器,CPU還連接有CPLD輔助控制器,CPLD輔助控制器采用美國萊迪思(lattice )的一片128個宏單元的LC4128V-144,用來管理芯片間的邏輯關(guān)系,提高整個系統(tǒng)的容錯性和準確性。顯示器則采用800*600分辨率的TFT液晶顯示器。
[0015]在本發(fā)明出廠前進行如下步驟的初始化:
a.將儀表的量程和刻度數(shù)設(shè)置在儀表表盤圖像中,并將表盤圖像存入背景圖層中,本實施儀表的量程為0-100,刻度總數(shù)為101,其O位在儀表表盤圖像的右側(cè);
b.根據(jù)儀表表盤圖像中的量程,從量程起始位置開始每旋轉(zhuǎn)儀表指針每旋轉(zhuǎn)I個旋轉(zhuǎn)精度,將相應(yīng)角度的儀表指針圖像依次存入儀表指針庫中,直到量程的終點位置為止,所述的I個旋轉(zhuǎn)精度為旋轉(zhuǎn)角度1°,此步驟建立了在儀表指針每一個旋轉(zhuǎn)精度下,相應(yīng)儀表指針圖像與儀表指針旋轉(zhuǎn)角度的對應(yīng)關(guān)系,即從0°至180°每隔Γ存入一個當前旋轉(zhuǎn)轉(zhuǎn)度的儀表指針圖像,且儀表指針庫排列順序為依據(jù)旋轉(zhuǎn)角度的逐漸增大依次存儲儀表指針圖像。
[0016]在本發(fā)明工作中,顯示模塊在CPU控制下通過如下步驟在顯示上顯示測量數(shù)據(jù):
(1)測量數(shù)據(jù)經(jīng)數(shù)據(jù)通訊接口存入數(shù)據(jù)存儲器中的公用數(shù)據(jù)區(qū);
(2)查詢共用數(shù)據(jù)區(qū)中是否有測量數(shù)據(jù)更新,如果有測量數(shù)據(jù)更新則進入下一個步驟(3)進行處理,如果沒有測量數(shù)據(jù)更新則仍繼續(xù)查詢;
(3)將測量數(shù)據(jù)轉(zhuǎn)換為指針數(shù)據(jù),指針數(shù)據(jù)為經(jīng)過處理的能夠在儀表指針圖像庫找到對應(yīng)位置儀表指針圖像的數(shù)據(jù),因為測量數(shù)據(jù)與儀表指針圖像不是一一對應(yīng)關(guān)系,需要預(yù)先進行處理以保持測量數(shù)據(jù)與指針儀表指針圖像的對應(yīng)關(guān)系;
(4)先將更新前的指針數(shù)據(jù)作為當前指針數(shù)據(jù),然后按照指針數(shù)據(jù)在儀表指針圖像庫中的排列順序,從儀表指針圖像庫中更新前的指針數(shù)據(jù)開始,循環(huán)執(zhí)行本步驟:將在儀表指針圖像庫中當前指針數(shù)據(jù)對應(yīng)的儀表指針圖像放入疊加圖層,接著將背景圖層中存儲的儀表表盤圖像調(diào)出與從疊加圖層調(diào)出的儀表指針圖像疊加后形成顯示圖像,然后將顯示圖像顯示在顯示器上,接著將儀表指針圖像庫中下一個顯示位置的指針數(shù)據(jù)作為當前指針數(shù)據(jù),直到當前指針數(shù)據(jù)超越了更新后的指針數(shù)據(jù)即結(jié)束本循環(huán)步驟;儀表表盤圖像與儀表指針圖像的疊加是透過式疊加,即僅儀表指針圖像覆蓋地方儀表表盤圖像不能透過顯示,其他地方儀表表盤圖像正常顯示;
(5)返回步驟(2)。
[0017]將指針的旋轉(zhuǎn)點作為直角平面坐標系的原點,測量數(shù)據(jù)大于等于O且小于50時指針經(jīng)旋轉(zhuǎn)后最終的顯示位置位于直角坐標系的第一象限,測量數(shù)據(jù)大于50且小于等于100時指針經(jīng)旋轉(zhuǎn)后最終的顯示位置位于直角坐標系的第二象限。儀表的指針旋轉(zhuǎn)角度在0°到180°之間,指針沿逆時針方向旋轉(zhuǎn),且測量數(shù)據(jù)中沒有負值,則將獲得的測量數(shù)據(jù)轉(zhuǎn)換為儀表的指針數(shù)據(jù)采用如下步驟:
A.判斷測量數(shù)據(jù)是否在儀表量程的范圍內(nèi),如果測量數(shù)據(jù)大于儀表量程的上限,就將儀表量程的上限作為指針數(shù)據(jù);如果測量數(shù)據(jù)小于儀表量程的下限,就將儀表量程的下限作為指針數(shù)據(jù);
B.如果測量數(shù)據(jù)在儀表量程的范圍內(nèi),將儀表量程的上限減去儀表量程的下限得到差值,儀表上限時指針的旋轉(zhuǎn)角度減去儀表下限時指針的旋轉(zhuǎn)角度得到的角度差,差值除以角度差得到比例系數(shù),即比例系數(shù)為:I (100-0)/ (180-0) 1=5/9,比例系數(shù)乘以測量數(shù)據(jù)得到預(yù)顯數(shù)據(jù),預(yù)顯數(shù)據(jù)即將要顯示儀表指針的旋轉(zhuǎn)角度,根據(jù)已經(jīng)建立的儀表指針圖像與儀表指針旋轉(zhuǎn)角度的對應(yīng)關(guān)系,判斷儀表指針庫中是否有該預(yù)顯數(shù)據(jù),如果有該預(yù)顯數(shù)據(jù),就將該預(yù)顯數(shù)據(jù)作為指針數(shù)據(jù),如果沒有該預(yù)顯數(shù)據(jù)的角度,則在儀表指針庫中取小于預(yù)顯數(shù)據(jù)的一個角度為下比較角度,且下比較角度與預(yù)顯數(shù)據(jù)的絕對差值小于一個旋轉(zhuǎn)精度,在儀表指針庫中取大于預(yù)顯數(shù)據(jù)的一個角度為上比較角度,且上比較角度與預(yù)顯數(shù)據(jù)的絕對差值小于一個旋轉(zhuǎn)精度,取上比較角度與下比較角度的中間值,如果預(yù)顯數(shù)據(jù)大于該中間值,則取上比較角度作為指針數(shù)據(jù),如:預(yù)顯數(shù)據(jù)為30.16°,由于I個旋轉(zhuǎn)精度為旋轉(zhuǎn)角度1°,則取大于30.16°的上比較角度31° ,取小于30.16°的下比較角度30°,而30.16°小于30°與31°的中間數(shù)值30.5°,故將預(yù)顯數(shù)據(jù)30.16°轉(zhuǎn)換為指針數(shù)據(jù)時,指針數(shù)據(jù)為30°,如果預(yù)顯數(shù)據(jù)小于該中間值,則取下比較角度作為指針數(shù)據(jù),如:預(yù)顯數(shù)據(jù)為30.65°,由于I個旋轉(zhuǎn)精度為旋轉(zhuǎn)角度1°,則取大于30.16°的上比較角度31°,取小于30.16°的下