女人被弄到高潮的免费视频,久久婷婷人人澡人爽人人喊,浪潮av色综合久久天堂,美女裸体18禁免费网站,免费在线黄色电影

基于VxWorks的多路高速串口的通信方法設(shè)計(jì)

串口通信具有傳輸距離遠(yuǎn)、傳輸穩(wěn)定、簡單實(shí)用等特點(diǎn),已被廣泛應(yīng)用于工業(yè)控制、數(shù)據(jù)采集、網(wǎng)絡(luò)通信等領(lǐng)域。在這些應(yīng)用領(lǐng)域中,串口通信用于實(shí)時(shí)地從各個(gè)串口接收數(shù)據(jù),而向各個(gè)串口發(fā)送的主要是控制信息,一般不要求嚴(yán)格的實(shí)時(shí)性。因此提高串口設(shè)備接收的實(shí)時(shí)性至關(guān)重要。

設(shè)備接收到數(shù)據(jù)時(shí),系統(tǒng)可通過兩種途徑獲取數(shù)據(jù)包到達(dá)的信息。一種是中斷方式,利用硬件中斷機(jī)制實(shí)現(xiàn)設(shè)備和系統(tǒng)的應(yīng)答對話,即當(dāng)外部設(shè)備需要CPU處理數(shù)據(jù)時(shí),設(shè)備就發(fā)一個(gè)中斷信號給系統(tǒng),系統(tǒng)在收到中斷請求時(shí)要保存中斷現(xiàn)場,調(diào)用相應(yīng)的中斷服務(wù)程序響應(yīng)設(shè)備的中斷請求,退出中斷處理程序后要恢復(fù)現(xiàn)場。上下文的切換要占據(jù)系統(tǒng)開銷,在數(shù)據(jù)量過載時(shí)會使得中斷頻率過高,CPU忙于處理硬件中斷,上層應(yīng)用程序?qū)τ跀?shù)據(jù)包的處理無法執(zhí)行,而中斷程序還不斷往隊(duì)列中放數(shù)據(jù),系統(tǒng)將自陷在中斷響應(yīng)這一環(huán)節(jié),產(chǎn)生所謂的“活鎖”。另一種是輪詢方式,系統(tǒng)每隔一定時(shí)間便檢查一次物理設(shè)備,若設(shè)備“報(bào)告”有數(shù)據(jù)到達(dá),則調(diào)用相應(yīng)的處理程序。但固定的輪詢周期增加了數(shù)據(jù)等待處理時(shí)間,降低了系統(tǒng)實(shí)時(shí)性。而且當(dāng)數(shù)據(jù)量比較小時(shí),頻繁查詢沒有數(shù)據(jù)達(dá)到的設(shè)備也是對CPU資源的浪費(fèi)。

可見中斷和輪詢方式都不能滿足不同負(fù)載情況下系統(tǒng)的實(shí)時(shí)性要求。本文借鑒Linux系統(tǒng)中NAPI[1]方法,結(jié)合中斷與輪詢的優(yōu)點(diǎn),提出一種輪詢與中斷結(jié)合的調(diào)度方式。這種調(diào)度機(jī)制在多串口系統(tǒng)中,當(dāng)負(fù)載在不同的串口通道不均衡時(shí),可以提高CPU的利用效率,并能滿足業(yè)務(wù)的時(shí)延要求。另外,根據(jù)到達(dá)數(shù)據(jù)量分析得出了輪詢、中斷切換門限和輪詢周期。

1 算法描述

在同一系統(tǒng)中處理相同業(yè)務(wù)量時(shí),中斷和輪詢處理的時(shí)間相同。因?yàn)檫^程相同,都是把數(shù)據(jù)從外設(shè)緩沖搬移到CPU內(nèi)存中,所不同的是中斷進(jìn)行上下文切換要占據(jù)系統(tǒng)開銷,而輪詢只是查詢一下寄存器狀態(tài)。相比之下,輪詢占用CPU的時(shí)間很短,一般中斷為幾個(gè)μs,輪詢?yōu)閹装賜s,根據(jù)不同系統(tǒng)而有差別。相反,在數(shù)據(jù)量比較小的情況下輪詢中存在空轉(zhuǎn)情況,無疑增加了系統(tǒng)開銷。

目前,處理中斷和輪詢互換的方法有定時(shí)中斷法(Clocked Interrupts),即設(shè)置一個(gè)定時(shí)器,定時(shí)器到時(shí),如果有中斷,則響應(yīng)中斷,調(diào)用中斷服務(wù)程序處理數(shù)據(jù)。這種方法在數(shù)據(jù)量大時(shí)類似于輪詢,在負(fù)載小時(shí)中斷由異步事件觸發(fā)降低了開銷。但是這種機(jī)制需要一個(gè)精確的、頻率很高的系統(tǒng)時(shí)鐘,并且這種方法受固定定時(shí)周期的限制,不是在任何情況下都有效。

在并行系統(tǒng)中還應(yīng)用了一種叫輪詢定時(shí)(Polling Watchdog)的機(jī)制,這種方法主要是為了解決接收處理中的等待時(shí)延問題;舅枷刖褪窃谳喸兘邮臻_始時(shí)設(shè)置一個(gè)看門狗定時(shí)器,以滿足業(yè)務(wù)的最小時(shí)延要求,而且中斷要在接收超時(shí)才產(chǎn)生。此方法的不足之處是在負(fù)載小時(shí)解決不了輪詢空轉(zhuǎn)問題。

混合中斷、輪詢方式(HIP)主要應(yīng)用在網(wǎng)絡(luò)接口系統(tǒng)中。工作方式為基于觀測接收的負(fù)載,改變切換門限,自動在中斷和輪詢兩種方式中切換。中斷方式?jīng)]有考慮到超時(shí)中斷,當(dāng)數(shù)據(jù)到達(dá)間隔很大時(shí),會降低實(shí)時(shí)性。在比較中斷和輪詢開銷時(shí),定義VI+V(B)為中斷開銷,其中VI為中斷的固有開銷,V(B)為系統(tǒng)接收B字節(jié)數(shù)據(jù)的開銷,VP+V(B)為輪詢開銷,VP為輪詢的固有開銷。但在一次輪詢和中斷接收中,中斷和輪詢所接收的數(shù)據(jù)可能不相等,中斷開銷和輪詢開銷便失去了比較意義。

以上幾種方法均有不足,但在多路串口系統(tǒng)中,還各有不同的特點(diǎn),即在每個(gè)獨(dú)立的通道可能存在不同的負(fù)載情況。如果對全部的串口通道統(tǒng)一應(yīng)用中斷方式或查詢方式,則顯然不能適應(yīng)各自串口通道的數(shù)據(jù)量,不能滿足系統(tǒng)實(shí)時(shí)性和高效率的綜合要求。根據(jù)這一特點(diǎn),提出了在多路串口系統(tǒng)中,輪詢和中斷相結(jié)合的接收策略,在中斷方式下還靈活應(yīng)用了批中斷技術(shù)。

算法描述:

com0=polling...comN=polling

For comID←0 up to comMAX

If TI>γ or PU=PUMAX Then

comID=interrupt

DelList(comID)

N路串口的初始狀態(tài)為輪詢,檢查輪詢隊(duì)列,如果數(shù)據(jù)到達(dá)間隔時(shí)間TI大于門限γ或者輪詢空轉(zhuǎn)次數(shù)PU等于空轉(zhuǎn)門限PUMAX,則該端口改為中斷狀態(tài),在輪詢隊(duì)列中刪除該端口。根據(jù)不同的系統(tǒng),間隔時(shí)間門限γ和空轉(zhuǎn)門限PUMAX的取值不同。

If TI<γ Then

comID=polling

AddList(comID)

在中斷狀態(tài)下,如果數(shù)據(jù)到達(dá)間隔時(shí)間TI小于門限γ,則該端口改為輪詢狀態(tài),在輪詢隊(duì)列中增加該端口。

2 門限設(shè)計(jì)

如果事件隨機(jī)發(fā)生而且發(fā)生頻率很低,以致大多數(shù)輪詢都認(rèn)為事件沒有發(fā)生,則中斷就會是首選的事件通知機(jī)制;如果事件定期發(fā)生且可以預(yù)測,而大多數(shù)輪詢都發(fā)現(xiàn)事件已發(fā)生,則首選機(jī)制是輪詢。在這兩者之間存在這樣一種情況,即輪詢行為和反應(yīng)型行為的效果都相同,在它們之間如何選擇都無關(guān)緊要。這種情況即為所尋找的輪詢和中斷的切換門限。

2.1 門限度量標(biāo)準(zhǔn)的選擇

數(shù)據(jù)多少的衡量都是以單位時(shí)間內(nèi)的吞吐量計(jì)算,即數(shù)據(jù)速率。如果以吞吐率的多少作為切換門限的標(biāo)準(zhǔn),則在分組定長情況下,這種計(jì)算方法可以近似體現(xiàn)出負(fù)載情況,但當(dāng)分組不定長時(shí)就不能體現(xiàn)實(shí)際負(fù)載了,如圖1所示的四種情況。

圖1(a)和圖1(b)的分組長度不同,但之間的到達(dá)間隔都很小。計(jì)算得出圖1(b)單位時(shí)間的吞吐率明顯要比圖1(a)小,但如果圖1(b)采用中斷方式,就要頻繁地響應(yīng)中斷,效率將大大降低。圖1(d)的分組很長,一次接收中接收到的數(shù)據(jù)非常多,但之間的到達(dá)間隔很長,如果計(jì)算吞吐率選擇的單位時(shí)間正好為數(shù)據(jù)接收時(shí)間,在這一段時(shí)間內(nèi)吞吐率很大,則誤認(rèn)為數(shù)據(jù)量很大,選擇輪詢方式接收。相比之下,圖1(c)和圖1(d)選用中斷方式更為理想。

根據(jù)以上分析可以發(fā)現(xiàn),用數(shù)據(jù)到達(dá)的時(shí)間間隔可以近似地表示數(shù)據(jù)量的大小。如果數(shù)據(jù)到達(dá)間隔很小,且頻繁到達(dá),則認(rèn)為負(fù)載很大,選擇輪詢方式;如果數(shù)據(jù)到達(dá)間隔很大,則認(rèn)為負(fù)載很小,選擇中斷方式。在輪詢方式中,如果根據(jù)已知的到達(dá)時(shí)間,推算出下一數(shù)據(jù)的到達(dá)時(shí)間,根據(jù)計(jì)算出的結(jié)果來設(shè)定輪詢周期,則輪詢效率更加提升。

作者:李柏楠 王文峰 季中恒 來源:電子技術(shù)應(yīng)用


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號,免費(fèi)領(lǐng)取以下5G精品資料

本周熱點(diǎn)本月熱點(diǎn)

 

  最熱通信招聘

  最新招聘信息