一種單片機的顯示方法和顯示裝置制造方法
【專利摘要】本發明公開了一種單片機的顯示方法和顯示裝置,包括:對圖像數據進行分段,形成顯示任務段;對顯示任務段進行緩沖處理;對經緩沖處理的顯示任務段進行顯示。所述緩沖處理包括:調取幀緩沖中對應數量的地址序列到行緩沖中;將顯示任務段寫入到行緩沖;將行緩沖中的顯示任務段更新至幀緩沖。本發明利用單片機外接顯示模塊,可對低成本的單片機實現高質量的圖形顯示。實用新型公開了一種帶有3G功能的光時域反射儀,包括智能控制模塊、脈沖產生模塊、耦合模塊、脈沖檢測模塊,還包括與智能控制模塊相連接的3G功能模塊。本光時域反射儀集成度高,方便檢測人員及時向外界求助及將檢測結果及時送至外界,實現檢測現場與外界的信息實時共享,使檢測更方便,工作方式靈活。
【專利說明】一種單片機的顯示方法和顯示裝置
【技術領域】
[0001]本發明涉及電子【技術領域】,具體涉及一種單片機的顯示方法和顯示裝置。
【背景技術】
[0002]MCU (Micro Control Unit即微控制單元或單片機)在各種場合得到了長足發展,隨著ARM平臺(即Advanced RISC Microprocessor即高級單片機)的快速發展,MCU的運行速度得到了飛速發展,同時也對用戶操作界面提出了更高要求,圖形化操作界面將成為趨勢。出于降低成本、簡化接口的目的,MCU通常采用SPI (Serial Peripheral Interface即串行外設接口)接口顯示模塊作為顯示輸出設備,如光纖熔接機等手持式儀表。
[0003]現有技術中,單片機出于低成本考慮,其內存相對較小,不能直接對顯示任務作幀緩沖處理,其⑶I (Graphical User Interface即圖形用戶接口)實現圖形化界面時通常由應用程序直接控制顯示細節,這導致一方面需增加內存,從而與單片機低成本的特性相矛盾;另一方面導致應用程序開發困難,從而妨礙單片機應用。
【發明內容】
[0004]本發明的目的是提供一種低成本但又有高質量圖形顯示畫面的單片機的顯示方法和顯示裝置。
[0005]本發明的另一目的是提供一種系統效率高的顯示方法和顯示裝置。
[0006]實現本發明的顯示方法包括:步驟A、對圖像數據進行分段,形成顯示任務段;步驟B、對顯示任務段進行緩沖處理;步驟C、對經緩沖處理的顯示任務段進行顯示。
[0007]所述步驟B進一步包括:調取幀緩沖中對應數量的地址序列到行緩沖中;將顯示任務段寫入到行緩沖;將行緩沖中的顯示任務段更新至幀緩沖。
[0008]優選地,在步驟A與步驟B之間還包括:對顯示任務段進行排序,并按照排序對顯示任務段進行緩沖處理。
[0009]所述對顯示任務段進行排序的步驟還可包括:統計每個顯示任務段所包含的顯示任務的數量;根據統計的數量對顯示任務段進行降序排列。
[0010]實現本發明的顯示裝置包括:分段模塊,用于對圖像數據進行分段,形成顯示任務段;緩沖處理模塊,用于對顯示任務段進行緩沖處理;執行顯示模塊,用于對經緩沖處理的顯示任務段進行顯示。
[0011]進一步地,所述緩沖處理模塊包括:調取模塊,用于調取幀緩沖中對應數量的地址序列到行緩沖中;寫入模塊,用于將顯示任務段寫入到行緩沖;更新模塊,用于將行緩沖中的顯示任務段更新至幀緩沖。
[0012]優選地,在分段模塊與緩沖處理模塊之間還包括排序模塊,用于對顯示任務段進行排序,并按照排序對顯示任務段進行緩沖處理。
[0013]所述對顯示任務段進行排序的排序模塊還可包括:統計模塊,用于統計每個顯示任務段所包含的顯示任務的數量;降序排列模塊,用于根據統計的數量對顯示任務段進行降序排列。
[0014]實現本發明的一種電子設備包括:MCU、存儲模塊、顯示控制芯片和顯示屏,所述存儲模塊、顯示控制芯片和顯示屏均與MCU電路連接。
[0015]進一步地,所述顯示控制芯片與MCU之間通過SPI接口相連接。
[0016]本發明的有益效果是:節約GUI系統設計成本,實現步驟簡單,在RAM不足情況下同樣可以實現高質量的圖形顯示,有利于低成本的單片機在圖形用戶界面市場取得新的應用前景。
[0017]通過對圖像數據分段,將多行歸并形成顯示任務段;及通過降序排列,優先處理包含顯示任務最多的顯示任務段,這都可避免過于頻繁的調取幀緩沖中的地址序列,降低SPI總線的負載,從而相應的提聞系統效率。
【專利附圖】
【附圖說明】
[0018]為了更清楚地說明本發明的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單介紹。顯而易見,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其它的附圖。
[0019]圖1為本發明系統結構圖;
[0020]圖2為本發明的一個實施例;
[0021]圖3為本發明的另一實施例。
【具體實施方式】
[0022]下面將結合附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發明一部分實施例,而不是全部實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都屬于本發明的范圍。
[0023]如圖1所示,為控制成本,所選用的單片機內部包括:微控制器MCU、較少的RAM (random access memory即隨機存儲器)和適量的ROM (Read-Only Memory即只讀存儲器),并外接SPI接口的顯示模塊,顯示模塊包括顯示控制芯片和顯示屏,它們之間都電連接。在SPI接口的顯示模塊中,具有完全的幀緩沖器,液晶顯示電路根據幀緩沖器決定顯示內容。
[0024]由于單片機內RAM容量較少,不足以構建完全的幀緩沖,單片機內的GUI系統采用行緩沖方式實現圖形的顯示輸出。因此,GUI系統接收應用程序的繪制請求后,需要對其按行輸出。為了提高效率,減少對同一行內容的重復訪問,GUI系統會先累積一定的繪制請求,對其按行歸并即形成顯示任務段后,再對顯示任務段進行緩沖處理,然后對經緩沖處理的顯示任務段進行顯示。此處緩沖處理包括:通過SPI總線調取顯示模塊中幀緩沖中對應數量的地址序列到單片機內的行緩沖中,將顯示任務段疊加到行緩沖;將行緩沖中的顯示任務段更新至幀緩沖。
[0025]MCU還會統計每個顯示任務段所包含的顯示任務的數量,并對統計數量作降序排列,也就是說繪制內容最多的那段顯示任務會首先輸出。優先處理包含顯示任務最多的顯示任務段,可避免過于頻繁的調取幀緩沖中的地址序列,降低SPI總線的負載,從而相應的提聞系統效率。
[0026]具體實施例1
[0027]以繪制一條30個像素長的豎線舉例,將其轉化為三十次顯示輸出請求,每個顯示輸出請求中都列出了要顯示輸出的坐標位置及顏色值,然后將這些顯示輸出請求提交至輸出請求隊列,并由調度線程對其進行排序,最終由顯示線程負責處理這些請求。調度線程監測到輸出請求隊列的變化,首先對顯示輸出請求進行分段,即是根據行緩沖的大小,將若干個操作同一行緩沖區域的顯示輸出請求進行歸并即形成顯示任務段。如當前LCD為320x240,行緩沖大小為320x16,從LCD上點x=20、y=13畫豎線到點x=20、y=42,其圖像處理過程如下:
[0028]第一步:調度線程根據行緩沖大小將直線分段并生成顯示任務段,可分為y=13?y=28 和 y=29 ?y=42 兩段;
[0029]第二步:通過SPI總線,顯示線程讀取幀緩沖器中的linel3?line28的數據至行緩沖,并將同一段的顯示任務段寫入行緩沖中;
[0030]第三步:通過SPI總線,顯示線程將行緩沖中的內容更新至幀緩沖器中;
[0031]第四步:通過SPI總線,顯示線程讀取幀緩沖器中的line29?line44的數據至行緩沖,并將y=29?y=42的顯示輸出請求寫入行緩沖中;
[0032]第五步:通過SPI總線,顯示線程將行緩沖中的內容更新至幀緩沖器中。
[0033]具體實施例2
[0034]行緩沖大小如同實施例1。
[0035]輸出圖像數據請求隊列1,如圖2所示,隊列中共有3幅圖:
[0036]①點斜線點3O 個點(X=25,y=20 ?χ=1δ,y=49)
[0037]②畫矩形(20x25:x=30, y=25 ?x=49, y=49)
[0038]③輸出字符(2個δχ8的大小:x=60, y=18?x=69y=25)
[0039]他們在LCD上對應的像素縱坐標:ymin=18?ymax=49
[0040]圖像顯示輸出處理步驟如下:
[0041]第一步:調度線程基于像素縱坐標根據行緩沖大小來對輸出請求隊列I分段并生成顯示任務段,如下分二段:
[0042]I) SegA=18 ?33 (① y=20 ?y=33;② y=25 ?y=33;③ y=18 ?y=25)
[0043]2) SegB=33 ?49 (① y=33 ?y=49;② y=33 ?y=49)
[0044]第二步:統計每個顯示任務段所包含的顯示任務的數量,并根據統計數量對顯示任務段進行降序排列,則排列順序為顯示任務段I) SegA、顯示任務段2) SegB。
[0045]第三步:顯示線程從顯示模塊內的幀緩沖中調取LIN18?33序列至行緩沖,然后將顯示任務段SegA=18?33 (1.y=20?y=33; 2.y=25?y=33; 3.y=18?y=25)寫入行緩沖,再將行緩沖的內容更新至幀緩沖;
[0046]第四步:顯示線程從幀緩沖器中調取LIN33?49序列至行緩沖,然后將顯示任務SegB=33?49 (①y=33?y=49;②y=33?y=49)寫入行緩沖,再將行緩沖內容更新至巾貞緩沖器;
[0047]第五步:對經幀緩沖處理的顯示任務顯示至顯示器,即如圖2所示。
[0048]實施例三
[0049]輸出圖像數據請求隊列2,如圖3所示,隊列中共有3幅圖:
[0050]④點斜線點30 個點(x=25,y=20 ?x=15,y=49)
[0051]⑤畫矩形(20x25:x=30, y=25 ?x=49, y=49)
[0052]⑥輸出字符(2個 δχ8 的大小:x=60, y=42 ?x=69,y=49)
[0053]他們在LCD上的像素縱坐標^η=20?y_=49
[0054]行緩沖大小如同實施例1。
[0055]第一步:調度線程根據行緩沖大小基于像素縱坐標來對輸出請求隊列2分段并生成顯示任務段,如下分二段:
[0056]I) SegA=18 ?33 (① y=20 ?y=33;② y=25 ?y=33)
[0057]2) SegB=33 ?49 (① y=33 ?y=49;② y=33 ?y=49;③ y=42 ?y=49)
[0058]第二步:統計每個顯示任務段所包含的顯示任務的數量,并根據統計數量對顯示任務段進行降序排列,則排列順序為顯示任務段2) SegB、顯示任務段I) SegA。
[0059]第三步:顯示線程從幀緩沖器中調取LIN33?49序列至行緩沖,然后將顯示任務SegB=33?49 (①y=33?y=49;②y=33?y=49;③y=42?y=49)寫入行緩沖,再將行緩沖內容更新至幀緩沖器;
[0060]第四步:顯示線程從幀緩沖器中調取LIN18?33序列至行緩沖,然后將顯示任務SegA=18?33(①y=20?y=33;②y=25?y=33)寫入行緩沖,再將行緩沖內容更新至巾貞緩沖器;
[0061]第五步:幀緩沖器中的內容顯示至顯示器,即如圖3所示。
[0062]實施例二與實施例三的區別是:針對不同的應用程序繪制請求,按顯示任務中所包含的顯示輸出請求數量多少,對分段后的數據進行顯示輸出,對于請求隊列1,優先處理SegA ;對于請求隊列2,優先處理SegB。即顯示輸出請求多的顯示任務段優先處理。
[0063]如圖1所示的一種單片機的顯示裝置,單片機內部包括:微控制器MCU、較少的RAM (random access memory即隨機存儲器)和適量的ROM (Read-Only Memory即只讀存儲器),并外接SPI接口的顯示模塊,顯示模塊包括顯示控制芯片和顯示屏,它們之間都電連接。在SPI接口的顯示模塊中,具有完全的幀緩沖器,液晶顯示電路根據幀緩沖器決定顯示內容。
[0064]由于單片機內RAM容量較少,不足以構建完全的幀緩沖,單片機內的GUI系統采用行緩沖方式實現圖形的顯示輸出。因此,GUI系統接收應用程序的繪制請求后,需要對其按行輸出。為了提高效率,減少對同一行內容的重復訪問,MCU內的分段模塊會首先對圖像數據進行分段即形成顯示任務段,然后緩沖處理模塊會先累積一定的繪制請求并對繪制請求緩沖處理,執行顯示模塊會對經緩沖處理的顯示任務段進行顯示。緩沖處理模塊包括:調取模塊,用于調取幀緩沖中對應數量的地址序列到行緩沖中;寫入模塊,用于將顯示任務段寫入到行緩沖;更新模塊,用于將行緩沖中的顯示任務段更新至幀緩沖。
[0065]在分段模塊與緩沖處理模塊之間還包括排序模塊,用于對顯示任務段進行排序,并按照排序對顯示任務段進行緩沖處理。排序模塊進一步又可包括:統計模塊,用于統計每個顯示任務段所包含的顯示任務的數量;降序排列模塊,用于根據統計的數量對顯示任務段進行降序排列,也就是說繪制內容最多的那段顯示任務會首先輸出。優先處理包含顯示任務最多的顯示任務段,可避免過于頻繁的調取幀緩沖中的地址序列,降低SPI總線的負載,從而相應的提聞系統效率。
[0066]具體實施例四
[0067]以繪制一條30個像素長的豎線舉例,將其轉化為三十次顯示輸出請求,每個顯示輸出請求中都列出了要顯示輸出的坐標位置及顏色值,然后將這些顯示輸出請求提交至輸出請求隊列,并由分段模塊對其進行分段,最終由緩沖處理模塊負責處理這些請求。分段模塊監測到輸出請求隊列的變化,首先對顯示輸出請求進行分段,即是根據行緩沖的大小,將若干個操作同一行緩沖區域的顯示輸出請求進行歸并即形成顯示任務段。如當前LCD為320x240,行緩沖大小為320x16,從LCD上點x=20、y=13畫豎線到點x=20、y=42,其圖像處理過程如下:
[0068]第一步:分段模塊根據行緩沖大小將直線分段并生成顯示任務段,可分為y=13?y=28 和 y=29 ?y=42 兩段;
[0069]第二步:通過SPI總線,調取模塊讀取幀緩沖器中的linel3?line28的數據至行緩沖,并通過寫入模塊將同一段的顯示輸出請求寫入行緩沖中;
[0070]第三步:通過SPI總線,更新模塊將行緩沖中的內容更新至幀緩沖器中;
[0071]第四步:通過SPI總線,調取模塊讀取幀緩沖器中的line29?line44的數據至行緩沖,并通過寫入模塊將y=29?y=42的顯示輸出請求寫入行緩沖中;
[0072]第五步:通過SPI總線,更新模塊將行緩沖中的內容更新至幀緩沖器中;
[0073]第六步:執行緩沖模塊對幀緩沖器中的內容顯示到LCD屏幕上。
[0074]具體實施例五
[0075]行緩沖大小如同實施例1。
[0076]輸出圖像數據請求隊列1,如圖2所示,隊列中共有3幅圖:
[0077]①點斜線點30 個點(x=25, y=20 ?x=15, y=49)
[0078]②畫矩形(20x25:x=30, y=25 ?x=49, y=49)
[0079]③輸出字符(2個δχ8的大小:x=60, y=18?x=69y=25)
[0080]他們在LCD上對應的像素縱坐標:ymin=18?ymax=49
[0081]圖像顯示輸出處理步驟如下:
[0082]第一步:分段模塊基于像素縱坐標根據行緩沖大小來對輸出請求隊列I分段并生成顯示任務段,如下分二段:
[0083]I) SegA=18 ?33 (① y=20 ?y=33;② y=25 ?y=33;③ y=18 ?y=25)
[0084]2) SegB=33 ?49 (① y=33 ?y=49;② y=33 ?y=49)
[0085]第二步:統計模塊統計每個顯示任務段所包含的顯示任務的數量,降序排列模塊根據統計數量對顯示任務段進行降序排列,則排列順序為顯示任務段I) SegA、顯示任務段2) SegB0
[0086]第三步:調取模塊從顯示模塊內的幀緩沖中調取LIN18?33序列至行緩沖,寫入模塊將顯示任務段SegA=18?33 (1.y=20?y=33; 2.y=25?y=33; 3.y=18?y=25)寫入行緩沖,更新模塊將行緩沖的內容更新至幀緩沖;
[0087]第四步:調取模塊從幀緩沖器中調取LIN33?49序列至行緩沖,然后寫入將顯示任務SegB=33?49 (①y=33?y=49;②y=33?y=49)寫入行緩沖,更新模塊再將行緩沖內容更新至幀緩沖器;
[0088]第五步:執行顯示模塊對經幀緩沖處理的顯示任務顯示至顯示器,即如圖2所示。
[0089]具體實施例六
[0090]輸出圖像數據請求隊列2,如圖3所示,隊列中共有3幅圖:
[0091]④點斜線點3O 個點(X=25,y=20 ?χ=1δ,y=49)
[0092]⑤畫矩形(20x25:x=30, y=25 ?x=49, y=49)
[0093]⑥輸出字符(2個 δχ8 的大小:x=60, y=42 ?x=69,y=49)
[0094]他們在LCD上的像素縱坐標^η=20?y_=49
[0095]行緩沖大小如同實施例1。
[0096]第一步:分段模塊根據行緩沖大小基于像素縱坐標來對輸出請求隊列2分段并生成顯示任務段,如下分二段:
[0097]I) SegA=18 ?33 (① y=20 ?y=33;② y=25 ?y=33)
[0098]2) SegB=33 ?49 (① y=33 ?y=49;② y=33 ?y=49;③ y=42 ?y=49)
[0099]第二步:統計模塊統計每個顯示任務段所包含的顯示任務的數量,降序排列模塊根據統計數量對顯示任務段進行降序排列,則排列順序為顯示任務段2) SegB、顯示任務段I) SegA。
[0100]第三步:調取模塊從幀緩沖器中調取LIN33?49序列至行緩沖,然后寫入模塊將顯示任務SegB=33?49 (①y=33?y=49;②y=33?y=49;③y=42?y=49)寫入行緩沖,更新模塊再將行緩沖內容更新至幀緩沖器;
[0101]第四步:調取模塊從幀緩沖器中調取LIN18?33序列至行緩沖,然后寫入模塊將顯示任務SegA=18?33(①y=20?y=33;②y=25?y=33)寫入行緩沖,更新模塊再將行緩沖內容更新至幀緩沖器;
[0102]第五步:執行顯示模塊將幀緩沖器中的內容顯示至顯示器,即如圖3所示。
[0103]實施例五與實施例六的區別是:針對不同的應用程序繪制請求,按顯示任務中所包含的顯示輸出請求數量多少,對分段后的數據進行顯示輸出,對于請求隊列1,優先處理SegA ;對于請求隊列2,優先處理SegB。即顯示輸出請求多的顯示任務段優先處理。
【權利要求】
1.一種單片機的顯示方法,其特征在于,包括: 步驟A、對圖像數據進行分段,形成顯示任務段; 步驟B、對顯示任務段進行緩沖處理; 步驟C、對經緩沖處理的顯示任務段進行顯示。
2.如權利要求1所述的顯示方法,其特征在于:在步驟A與步驟B之間還包括:對顯示任務段進行排序,并按照排序對顯示任務段進行緩沖處理。
3.如權利要求2所述的顯示方法,其特征在于,所述對顯示任務段進行排序的步驟包括: 統計每個顯示任務段所包含的顯示任務的數量; 根據統計的數量對顯示任務段進行降序排列。
4.如權利要求1至3任一項所述的顯示方法,其特征在于,所述緩沖處理包括: B-1、調取幀緩沖中對應數量的地址序列到行緩沖中; B-2、將顯示任務段寫入到行緩沖; B-3、將行緩沖中的顯示任務段更新至幀緩沖。
5.一種單片機的顯示裝置,其特征在于,包括: 分段模塊,用于對圖像數據進行分段,形成顯示任務段; 緩沖處理模塊,用于對顯示任務段進行緩沖處理; 執行顯示模塊,用于對經緩沖處理的顯示任務段進行顯示。
6.如權利要求5所述的顯示裝置,其特征在于:在分段模塊與緩沖處理模塊之間還包括排序模塊,用于對顯示任務段進行排序,并按照排序對顯示任務段進行緩沖處理。
7.如權利要求6所述的顯示裝置,其特征在于,所述對顯示任務段進行排序的排序模塊包括: 統計模塊,用于統計每個顯示任務段所包含的顯示任務的數量; 降序排列模塊,用于根據統計的數量對顯示任務段進行降序排列。
8.如權利要求5至7任一項所述的顯示裝置,其特征在于,所述緩沖處理模塊包括: 調取模塊,用于調取幀緩沖中對應數量的地址序列到行緩沖中; 寫入模塊,用于將顯示任務段寫入到行緩沖; 更新模塊,用于將行緩沖中的顯示任務段更新至幀緩沖。
9.一種電子設備,其特征在于,包括: MCU、存儲模塊、顯示控制芯片和顯示屏,所述存儲模塊、顯示控制芯片和顯示屏均與MCU電路連接。
10.如權利要求9所述的電子設備,其特征在于:所述顯示控制芯片與MCU之間通過SPI接口相連接。
【文檔編號】G06F3/14GK104282289SQ201310286792
【公開日】2015年1月14日 申請日期:2013年7月9日 優先權日:2013年7月9日
【發明者】李智敏 申請人:大豪信息技術(威海)有限公司, (株)韓國一諾儀器株式會社