一種車載終端利用串口實(shí)現(xiàn)cpu負(fù)擔(dān)動(dòng)態(tài)平衡的方法
【專利摘要】本發(fā)明公開(kāi)一種車載終端利用串口實(shí)現(xiàn)CPU負(fù)擔(dān)動(dòng)態(tài)平衡的方法,包括:步驟1:CPU負(fù)擔(dān)調(diào)度程序C實(shí)時(shí)監(jiān)控車載終端模塊和導(dǎo)航屏線程的CPU使用率;步驟2:CPU負(fù)擔(dān)調(diào)度程序C檢測(cè)到有車載終端模塊或者導(dǎo)航屏線程的CPU使用率超出預(yù)設(shè)值,則通知導(dǎo)航屏或車載終端對(duì)CPU使用率超出預(yù)設(shè)值的模塊或線程進(jìn)行抽象,抽象結(jié)束后返回通知CPU負(fù)擔(dān)調(diào)度程序C;步驟3:CPU負(fù)擔(dān)調(diào)度程序C將此超出預(yù)設(shè)值的車載終端模塊或者導(dǎo)航屏線程加入到CPU負(fù)擔(dān)調(diào)度程序C的動(dòng)態(tài)平衡模塊序列中去。該動(dòng)態(tài)平衡模塊序列用于獲取超出預(yù)設(shè)值的車載終端模塊或者導(dǎo)航屏線程的編號(hào),按照優(yōu)先級(jí)以及超出CPU占用率的情況進(jìn)行排序,然后順序執(zhí)行該動(dòng)態(tài)平衡模塊序列,進(jìn)而達(dá)到實(shí)現(xiàn)負(fù)載平衡的目的。
【專利說(shuō)明】—種車載終端利用串口實(shí)現(xiàn)CPU負(fù)擔(dān)動(dòng)態(tài)平衡的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及CPU負(fù)擔(dān)動(dòng)態(tài)平衡的方法,具體涉及一種車載導(dǎo)航屏和車載終端利用串口實(shí)現(xiàn)CPU負(fù)擔(dān)動(dòng)態(tài)平衡的方法。
【背景技術(shù)】
[0002]車聯(lián)網(wǎng)行業(yè)GPS用戶(如出租車,公交車)的GPS車載系統(tǒng)一般由車載終端加調(diào)度屏組成。隨著社會(huì)經(jīng)濟(jì)的發(fā)展,技術(shù)的進(jìn)步,傳統(tǒng)的簡(jiǎn)單調(diào)度屏逐漸被功能強(qiáng)大的導(dǎo)航調(diào)度屏(簡(jiǎn)稱導(dǎo)航屏)替代。導(dǎo)航屏一般都是7寸或更大的彩屏,采用Android或WinCE操作系統(tǒng),可以實(shí)現(xiàn)調(diào)度、導(dǎo)航、多媒體播放等強(qiáng)大的功能,和車載終端之間的交互也更加復(fù)雜。導(dǎo)航屏一般采用和車載終端類似的ARM9或者更強(qiáng)大的CPU,性能較強(qiáng)。
[0003]但是在實(shí)際使用中,往往車載終端CPU負(fù)擔(dān)較重,太多的功能導(dǎo)致CPU不堪重負(fù),從而造成整體性能下降或延時(shí),而導(dǎo)航屏往往負(fù)載較輕,CPU計(jì)算能力大部分時(shí)間被閑置。極端情況下(比如導(dǎo)航屏計(jì)算導(dǎo)航路線時(shí))也會(huì)出現(xiàn)導(dǎo)航屏CPU處理量過(guò)大而車載終端CPU負(fù)載較為輕松的情況。如何平衡導(dǎo)航屏和車載終端之間CPU使用率成為了行業(yè)中的難題。如果能提出一種車載導(dǎo)航屏和車載終端CPU負(fù)擔(dān)動(dòng)態(tài)平衡的方法來(lái)解決這一難題,使導(dǎo)航屏和車載終端的CPU計(jì)算能力都能得到充分的利用,將大大的提高車載GPS系統(tǒng)的工作效率,提高客戶體驗(yàn),使車載GPS系統(tǒng)發(fā)揮更大的作用。而車載終端和導(dǎo)航屏之間一般是串口通訊,串口通訊速率較低,現(xiàn)有的CPU動(dòng)態(tài)平衡方案基本上兩個(gè)CPU在同一個(gè)設(shè)備里,交互通過(guò)高速總線。目前市場(chǎng)上還沒(méi)有別的廠家能提出方案,解決車載導(dǎo)航屏和車載終端這個(gè)設(shè)備之間通過(guò)串口實(shí)現(xiàn)CPU負(fù)載動(dòng)態(tài)平衡的問(wèn)題。
【發(fā)明內(nèi)容】
[0004]因此,本發(fā)明旨在克服現(xiàn)有技術(shù)之不足,提供一種車載導(dǎo)航屏和車載終端兩個(gè)不同設(shè)備之間通過(guò)串口實(shí)現(xiàn)CPU負(fù)擔(dān)動(dòng)態(tài)平衡的方法,以實(shí)現(xiàn)車載終端和導(dǎo)航屏這兩者的CPU之間的負(fù)載平衡,充分發(fā)揮這兩個(gè)CPU (車載終端的CPU和導(dǎo)航屏的CPU)的計(jì)算能力,來(lái)大大提高車載GPS系統(tǒng)的工作效率。
[0005]為了解決上述技術(shù)問(wèn)題,本發(fā)明的思路如下:一般的,車載終端和導(dǎo)航調(diào)度屏之間,一般都是通過(guò)串口通訊。而串口通訊速率較低,最多只有115200bps,所以以前常用的在同一設(shè)備間兩不同CPU負(fù)載平衡的方法并不適用。本發(fā)明則實(shí)現(xiàn)了在較低數(shù)據(jù)交換情況下兩不同設(shè)備之間通過(guò)低速串口實(shí)現(xiàn)CPU負(fù)載的平衡。
[0006]具體的,本發(fā)明的一種車載終端利用串口實(shí)現(xiàn)CPU負(fù)擔(dān)動(dòng)態(tài)平衡的方法,在導(dǎo)航屏的程序中增加一個(gè)CPU負(fù)擔(dān)調(diào)度程序C,該CPU負(fù)擔(dān)調(diào)度程序C負(fù)責(zé)判斷各車載終端模塊和導(dǎo)航屏線程的CPU占用率情況并動(dòng)態(tài)調(diào)度,其調(diào)度方法如下:
步驟1:CPU負(fù)擔(dān)調(diào)度程序C實(shí)時(shí)監(jiān)控車載終端模塊和導(dǎo)航屏線程的CPU使用率;
步驟2 =CPU負(fù)擔(dān)調(diào)度程序C檢測(cè)到有車載終端模塊或者導(dǎo)航屏線程的CPU使用率超出預(yù)設(shè)值(導(dǎo)航屏或者車載終端突發(fā)負(fù)載比較重的線程或者模塊時(shí),則會(huì)發(fā)生該情況),則通知導(dǎo)航屏或車載終端對(duì)CPU使用率超出預(yù)設(shè)值的線程或模塊進(jìn)行抽象,導(dǎo)航屏或車載終端抽象結(jié)束后返回通知CPU負(fù)擔(dān)調(diào)度程序C ;
步驟3 =CPU負(fù)擔(dān)調(diào)度程序C將此超出預(yù)設(shè)值的車載終端模塊或者導(dǎo)航屏線程加入到CPU負(fù)擔(dān)調(diào)度程序C的動(dòng)態(tài)平衡模塊序列中去;其中該動(dòng)態(tài)平衡模塊序列是用CPU負(fù)擔(dān)調(diào)度程序C來(lái)維護(hù)的,該動(dòng)態(tài)平衡模塊序列用于獲取超出預(yù)設(shè)值的車載終端模塊或者導(dǎo)航屏線程的編號(hào),按照優(yōu)先級(jí)以及超出CPU占用率的情況進(jìn)行排序,CPU負(fù)擔(dān)調(diào)度程序C順序執(zhí)行該動(dòng)態(tài)平衡模塊序列,進(jìn)而達(dá)到實(shí)現(xiàn)負(fù)載平衡的目的;
步驟4:如果超出預(yù)設(shè)值是車載終端模塊,則CPU負(fù)擔(dān)調(diào)度程序C通知導(dǎo)航屏CPU執(zhí)行該車載終端模塊,并終止車載終端CPU繼續(xù)執(zhí)行該模塊;
如果超出預(yù)設(shè)值的是導(dǎo)航屏線程,則CPU負(fù)擔(dān)調(diào)度程序C通知車載終端CPU執(zhí)行該導(dǎo)航屏線程,并終止導(dǎo)航屏CPU繼續(xù)執(zhí)行該導(dǎo)航屏線程。
[0007]所述步驟I中,還包括如下過(guò)程:車載終端模塊或?qū)Ш狡辆€程如果檢測(cè)到CPU使用率高的線程,則自動(dòng)將該CPU使用率高的線程向CPU負(fù)擔(dān)調(diào)度程序C匯報(bào)。
[0008]所述步驟2中,導(dǎo)航屏或車載終端對(duì)CPU使用率超出預(yù)設(shè)值的模塊或線程進(jìn)行抽象,具體是將車載終端的程序中的CPU占用率比較高的模塊進(jìn)行抽象,將導(dǎo)航屏的程序中的CPU占用率比較高的線程進(jìn)行抽象,將這些線程或模塊復(fù)雜的計(jì)算統(tǒng)一成浮點(diǎn)計(jì)算模塊在不同運(yùn)算規(guī)則下的結(jié)果(可先生成一個(gè)統(tǒng)一的計(jì)算模板,數(shù)據(jù)處理即可抽象為計(jì)算模板的不同規(guī)則的疊加),這些標(biāo)準(zhǔn)浮點(diǎn)計(jì)算模塊擁有標(biāo)準(zhǔn)的輸入輸出接口,支持抽象出來(lái)的若干計(jì)算規(guī)則,這樣,導(dǎo)航屏和車載終端之間交換處理數(shù)據(jù)則只需要通過(guò)串口交換輸入和規(guī)則序號(hào),獲得輸出結(jié)果即可,這樣,可大大節(jié)省兩者間交互的數(shù)據(jù)量。將車載終端抽象出來(lái)的模塊記為車載終端模塊Al,A2,..An,將導(dǎo)航屏抽象出來(lái)的線程記為導(dǎo)航屏線程BI,B2,…Bm0`[0009]因?yàn)榇陂g通訊速率比較低,不能及時(shí)傳輸較大的數(shù)據(jù)量,所以才需要把一些較復(fù)雜的計(jì)算模塊抽象成簡(jiǎn)單的浮點(diǎn)計(jì)算通過(guò)規(guī)則疊加,這樣只需要傳輸這些簡(jiǎn)單的浮點(diǎn)計(jì)算的規(guī)則,從而可以實(shí)現(xiàn)低數(shù)據(jù)傳輸量下的負(fù)載平衡,因此,本發(fā)明通過(guò)上述步驟I和步驟2即可通過(guò)低速串口實(shí)現(xiàn)CPU負(fù)載的平衡。
[0010]上述過(guò)程中,CPU負(fù)擔(dān)調(diào)度程序C實(shí)時(shí)獲取車載終端CPU和導(dǎo)航屏CPU的運(yùn)行情況,對(duì)自動(dòng)對(duì)其負(fù)載情況進(jìn)行分析判斷。如果車載終端CPU總體負(fù)載過(guò)大,而導(dǎo)航屏CPU利用率低,則從車載終端模塊Al-An中找到最耗CPU的模塊,例如最耗CPU的模塊是Al,則通過(guò)串口通知導(dǎo)航屏程序加載計(jì)算對(duì)應(yīng)的模塊ABl (通過(guò)標(biāo)準(zhǔn)浮點(diǎn)計(jì)算模塊計(jì)算得到的),接收車載終端程序傳來(lái)的Al程序的輸入和規(guī)則,并將ABl的輸出傳送給車載終端程序,同時(shí)通知車載終端程序關(guān)閉計(jì)算模塊Al,將Al模塊的輸入及規(guī)則傳送給導(dǎo)航屏程序,并接受ABl模塊的輸出。若車載終端CPU利用率還是較高,則繼續(xù)轉(zhuǎn)移計(jì)算模塊A2 ;同理,如導(dǎo)航屏CPU利用率較高,則轉(zhuǎn)移BI模塊,以此類推,從而實(shí)現(xiàn)了通過(guò)低速串口導(dǎo)航屏和車載終端CPU負(fù)擔(dān)的動(dòng)態(tài)平衡。
[0011]本發(fā)明通過(guò)上述方案,實(shí)現(xiàn)車載導(dǎo)航屏和車載終端利用串口實(shí)現(xiàn)CPU負(fù)擔(dān)動(dòng)態(tài)平衡。具體的,通過(guò)車載終端和導(dǎo)航屏兩種設(shè)備的不同的CPU,利用較為低速的串口實(shí)現(xiàn)了整個(gè)GPS系統(tǒng)計(jì)算能力的動(dòng)態(tài)平衡,客觀上達(dá)到了同一設(shè)備之間“雙核”的效果,避免了一個(gè)CPU吃不了,另一個(gè)CPU吃不飽的不均衡的狀況,從而避免了設(shè)備實(shí)際運(yùn)行中因?yàn)檐囕d終端(PU或?qū)Ш狡罜PU處理不過(guò)來(lái)而導(dǎo)致的系統(tǒng)處理水平下降、卡機(jī)、速度慢等狀況(如車臺(tái)在實(shí)時(shí)錄音壓縮時(shí)播放tts會(huì)卡頓,計(jì)算導(dǎo)航路線耗時(shí)過(guò)長(zhǎng)的現(xiàn)象),使導(dǎo)航屏和車載終端的CPU計(jì)算能力都能得到充分的利用,大大的提高了車載GPS系統(tǒng)的工作效率,提高了客戶體驗(yàn),使車載GPS系統(tǒng)能夠發(fā)揮更大的作用。
【專利附圖】
【附圖說(shuō)明】
[0012]圖1為本發(fā)明的操作流程示意圖。
【具體實(shí)施方式】
[0013]現(xiàn)結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)一步說(shuō)明。
[0014]程序開(kāi)發(fā)時(shí),針對(duì)嵌入式系統(tǒng)的特點(diǎn),將車載終端的程序中的CPU占用率比較高(比如大于20%)的模塊進(jìn)行抽象,將導(dǎo)航屏的程序中的CPU占用率比較高的線程進(jìn)行抽象,即將這些模塊復(fù)雜的計(jì)算統(tǒng)一成浮點(diǎn)計(jì)算模塊在不同運(yùn)算規(guī)則下的結(jié)果(可先生成一個(gè)統(tǒng)一的計(jì)算模板,數(shù)據(jù)處理即可抽象為計(jì)算模板的不同規(guī)則的疊加。類似于不同的計(jì)算,可以比作某種運(yùn)算的各種規(guī)則下的疊加,也就是本發(fā)明把這些復(fù)雜的計(jì)算抽象成某些基本計(jì)算模塊在不同規(guī)則下的疊加),這些標(biāo)準(zhǔn)浮點(diǎn)計(jì)算模塊擁有標(biāo)準(zhǔn)的輸入輸出接口,支持抽象出來(lái)的若干計(jì)算規(guī)則,這樣,導(dǎo)航屏和車載終端之間交換處理數(shù)據(jù)則只需要通過(guò)串口交換輸入和規(guī)則序號(hào),獲得輸出結(jié)果即可,這樣,可大大節(jié)省兩者間交互的數(shù)據(jù)量。簡(jiǎn)單來(lái)說(shuō)抽象出來(lái)的如車載終端模塊Al,A2..An,導(dǎo)航屏線程BI,B2, Bm,在相對(duì)負(fù)擔(dān)比較輕的導(dǎo)航屏程序中增加一個(gè)CPU負(fù)擔(dān)調(diào)度程序C,由這個(gè)程序負(fù)責(zé)判斷各模塊的CPU占用率情況并動(dòng)態(tài)調(diào)度。如圖,系統(tǒng)上電,導(dǎo)航屏和車載終端正常加載模塊Bl-Bm,C;Al-An。如果導(dǎo)航屏或者車載終端突發(fā)負(fù)載比較重的程序或者模塊,則立即按照已有規(guī)則抽象,并通知調(diào)度程序C。C將此新的模塊加入到動(dòng)態(tài)平衡模塊序列中去。C程序?qū)崟r(shí)獲取車載終端導(dǎo)航屏告訴自己的CPU負(fù)載情況,并自動(dòng)判斷。如車載終端CPU總體負(fù)載過(guò)大,而導(dǎo)航屏CPU利用率低,則從Al-An模塊中判斷最耗CPU的模塊如是Al,則通過(guò)串口通知導(dǎo)航屏程序加載計(jì)算對(duì)應(yīng)的模塊AB1,接收車載終端程序傳來(lái)的Al程序的輸入和規(guī)則,并將ABl的輸出傳送給車載終端程序,同時(shí)通知車載終端程序關(guān)閉計(jì)算模塊Al JfAl模塊的輸入及規(guī)則傳送給導(dǎo)航屏程序,并接受ABl模塊的輸出。若車載終端CPU利用率還是較高,則繼續(xù)轉(zhuǎn)移計(jì)算模塊A2。同理,如導(dǎo)航屏CPU利用率較高,則轉(zhuǎn)移BI模塊,以此類推,從而實(shí)現(xiàn)了通過(guò)低速串口導(dǎo)航屏和車載終端CPU負(fù)擔(dān)的動(dòng)態(tài)平衡。
[0015]盡管結(jié)合優(yōu)選實(shí)施方案具體展示和介紹了本發(fā)明,但所屬領(lǐng)域的技術(shù)人員應(yīng)該明白,在不脫離所附權(quán)利要求書所限定的本發(fā)明的精神和范圍內(nèi),在形式上和細(xì)節(jié)上可以對(duì)本發(fā)明做出各種變化,均為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種車載終端利用串口實(shí)現(xiàn)CPU負(fù)擔(dān)動(dòng)態(tài)平衡的方法,在導(dǎo)航屏的程序中增加一個(gè)CPU負(fù)擔(dān)調(diào)度程序C,該CPU負(fù)擔(dān)調(diào)度程序C負(fù)責(zé)判斷各車載終端模塊和導(dǎo)航屏線程的CPU占用率情況并動(dòng)態(tài)調(diào)度,其調(diào)度方法如下: 步驟1:CPU負(fù)擔(dān)調(diào)度程序C實(shí)時(shí)監(jiān)控車載終端模塊和導(dǎo)航屏線程的CPU使用率; 步驟2 =CPU負(fù)擔(dān)調(diào)度程序C檢測(cè)到有車載終端模塊或者導(dǎo)航屏線程的CPU使用率超出預(yù)設(shè)值,則通知導(dǎo)航屏或車載終端對(duì)CPU使用率超出預(yù)設(shè)值的模塊或線程進(jìn)行抽象,導(dǎo)航屏或車載終端抽象結(jié)束后返回通知CPU負(fù)擔(dān)調(diào)度程序C ; 步驟3 =CPU負(fù)擔(dān)調(diào)度程序C將此超出預(yù)設(shè)值的車載終端模塊或者導(dǎo)航屏線程加入到CPU負(fù)擔(dān)調(diào)度程序C的動(dòng)態(tài)平衡模塊序列中去;其中該動(dòng)態(tài)平衡模塊序列是用CPU負(fù)擔(dān)調(diào)度程序C來(lái)維護(hù)的,該動(dòng)態(tài)平衡模塊序列用于獲取超出預(yù)設(shè)值的車載終端模塊或者導(dǎo)航屏線程的編號(hào),按照優(yōu)先級(jí)以及超出CPU占用率的情況進(jìn)行排序,(PU負(fù)擔(dān)調(diào)度程序C順序執(zhí)行該動(dòng)態(tài)平衡模塊序列,進(jìn)而達(dá)到實(shí)現(xiàn)負(fù)載平衡的目的。
2.根據(jù)權(quán)利要求1所述的車載終端利用串口實(shí)現(xiàn)CPU負(fù)擔(dān)動(dòng)態(tài)平衡的方法,其特征在于:所述步驟2中,導(dǎo)航屏或車載終端對(duì)CPU使用率超出預(yù)設(shè)值的模塊或線程進(jìn)行抽象,具體是將車載終端的程序中的CPU占用率比較高的模塊進(jìn)行抽象,將導(dǎo)航屏的程序中的CPU占用率比較高的線程進(jìn)行抽象,將這些模塊或線程復(fù)雜的計(jì)算統(tǒng)一成浮點(diǎn)計(jì)算模塊在不同運(yùn)算規(guī)則下的結(jié)果。
3.根據(jù)權(quán)利要求1或2所述的車載終端利用串口實(shí)現(xiàn)CPU負(fù)擔(dān)動(dòng)態(tài)平衡的方法,其特征在于:還包括步驟4:如果超出預(yù)設(shè)值是車載終端模塊,則CPU負(fù)擔(dān)調(diào)度程序C通知導(dǎo)航屏CPU執(zhí)行該車載終端模塊,并終止車載終端CPU繼續(xù)執(zhí)行該模塊; 如果超出預(yù)設(shè)值的是導(dǎo)航屏線程,則CPU負(fù)擔(dān)調(diào)度程序C通知車載終端CPU執(zhí)行該導(dǎo)航屏線程,并終止導(dǎo)航屏CPU繼續(xù)執(zhí)行該導(dǎo)航屏線程。
4.根據(jù)權(quán)利要求1或2所述的車載終端利用串口實(shí)現(xiàn)CPU負(fù)擔(dān)動(dòng)態(tài)平衡的方法,其特征在于:所述步驟I中,還包括如下過(guò)程:車載終端模塊或?qū)Ш狡辆€程如果檢測(cè)到CPU使用率高的線程,則自動(dòng)將該CPU使用率高的線程向CPU負(fù)擔(dān)調(diào)度程序C匯報(bào)。
【文檔編號(hào)】G06F9/50GK103713957SQ201410007337
【公開(kāi)日】2014年4月9日 申請(qǐng)日期:2014年1月8日 優(yōu)先權(quán)日:2014年1月8日
【發(fā)明者】唐磊, 許寧, 林德輝, 陳華云, 黃鵬, 蔡珊 申請(qǐng)人:廈門雅迅網(wǎng)絡(luò)股份有限公司