<strike id="kiyse"></strike>
  • <tr id="kiyse"></tr>
  • <strike id="kiyse"></strike><samp id="kiyse"><tbody id="kiyse"></tbody></samp>
    <strike id="kiyse"><s id="kiyse"></s></strike>
    <tr id="kiyse"></tr>
    <noframes id="kiyse"><code id="kiyse"></code></noframes>
    <th id="kiyse"></th>
    <samp id="kiyse"></samp>
  • <th id="kiyse"><s id="kiyse"></s></th>
  • Linux的系統實時性測試

     2014-1-17              

            在工業控制領域,很多時候對系統實時性的要求較高,下面就通過英創公司的EM9160(內核為Linux-2.6)和EM9280(內核為Linux-3.9)工控主板,對Linux的不同版本2.6和3.9進行實時性的探究,對它們分別測試,得出測試結果,通過實驗數據說明Linux-2.6和Linux-3.9在實時性方面的差別。

     

            實時性的一個重要參數就是任務的響應延遲時間,它包含了其它幾個重要的實時性參數(中斷潛伏期時間,調度潛伏期時間等),任務響應延遲時間越短,說明任務對外部事件的響應速度越快,實時性也就越好。

     

            本次測試就是針對任務的響應延遲時間進行的,使用串口接收整包數據然后解包得到數據,再對數據打包回發。測量出串口接收端RX接收數據完畢到發出端TX開始發送數據的時間間隔,并對EM9160和EM9280的測試結果進行比較。

     

            測試中,使用一塊工控主板通過串口向測試使用的EM9160和EM9280每秒發送一個9字節的整包數據。

     

            測試中通訊數據包定義如下:

     

    0x55

    0xaa

    DestAddr

    SourceAddr

    DatLen

    Dat0

    Datn

    checksum

     

            測試得出的時間間隔包括兩段,串口RX端接受數據完畢至系統響應數據的延遲時間和處理數據的時間。這里的處理數據非常簡單,讀取數據解包,再打包回發,所用時間僅為10us不到。所以,測量出的時間間隔主要是系統響應串口接收數據的延遲時間。

     

            由于測量任務的響應延遲時間不同于一般的時間參數測量,它要求很高的時間測量精度(至少微秒級)。所以,測試中采用示波器作為測試工具,分別測出在接受處理數據時串口RX端和TX端的波形,觀察波形之間的時間間隔,就能精確的測量出串口收發數據的時間間隔。

     

            根據上面所闡述的,在EM9160和EM9280工控主板上分別進行Linux系統對任務響應延遲的測量。

     

            測試所用程序的一些主要部分;

     

            首先配置并打開串口: 
            rc = m_Serial.OpenPort( 2, 115200, '8', '1', 'N');

     

            這里為打開ttyS2,波特率115200,8位字符長度掩碼,1位停止位,無奇偶校驗。

     

            數據的接收采用建立一個單獨線程的方式,在線程中調用select()函數等待數據,當接受到數據以后,對數據處理,要進行相應解包,檢驗和的驗證,并且回發: 
            pthread_create(&m_thread,&attr,(void *(*) (void *))&ReceiveThreadFunc, (void*)this );

     

            串口發送數據需要經過打包處理: 
            int CSerial::WritePort(unsigned char *Buf, int len ,int fd)

     

            對該例程感興趣的客戶可以點此下載該例程完整代碼。

     

            在EM9160和EM9280上面都使用同樣的程序進行測試。

     

            基于EM9160平臺,對Linux-2.6的測試結果:

     

            橙色線CH1的波形是串口接收端RX的波形,藍色線CH2的波形是串口發送端TX的波形,波形橫軸每一格的單位為2.5ms。測試波形的截圖如下。

     

     

       

     

            通過對以上四張圖波形的觀察,可以發現,EM9160工控主板在Linux-2.6的環境下,系統等任務的響應延遲是一個范圍值,最短時間在1ms左右,最長時間已經超過了10ms。

     

            下面來看基于EM9280平臺,對Linux-3.9的測試結果:

     

            橙色線CH1的波形是串口接收端RX的波形,藍色線CH2的波形是串口發送端TX的波形。波形橫軸每一格的單位為250us,測試波形的截圖如下。

     

     

       

     

            通過對這三張圖中波形的分析,可以看出,在EM9280工控主板在Linux-3.9的環境下波形很穩定,系統對任務的響應延遲時間在1MS以內。能夠滿足對實時性的較高要求。

     

            分析實驗數據,可以發現,Linux-3.9對任務的響應延遲時間能夠保持在1ms之內,而Linux-2.6對任務的響應延遲時間最短時間在1ms左右,但是最長時間卻達到了10ms左右。通過對比,可以得出Linux-3.9相對于Linux-2.6在實時性上有相對較大的提升。

     

            本次測試采用的波特率是115200,這樣可以盡可能的減少數據傳輸時間和接收與發送超時的影響,與系統的響應時間對比,能夠顯現出實時性的特點。對于較慢的波特率,比如9600,4800等,數據傳輸本身較慢,等待數據傳輸和超時的時間也較長,可能一次數據傳輸完成的時間和系統響應的時間已經相差不大或者超過系統響應時間,這種情況下,Linux-2.6已經能夠滿足實時性的要求。但是當客戶的傳輸速率較快而且對實時性的要求較高時,建議選用內核為Linux-3.9的工控主板進行相關開發,能夠滿足需求。

     

            點此下載該例程完整代碼

    国美女福利视频午夜精品| 国产精品三级在线观看无码| 久久黄色精品视频| 国产精品女同一区二区| 亚洲精品456播放| 日韩精品一区二区三区中文3d | 亚洲AV日韩精品久久久久| 亚洲精品国产精品乱码不卞| 精品无码国产AV一区二区三区| 91久久精品电影| 国产精品手机在线| 久久国产精品免费看| 国产日韩精品一区二区三区在线| 2021国内久久精品| 国内精品99亚洲免费高清| 久久久精品久久久久影院| 久久久无码精品亚洲日韩按摩| 香蕉依依精品视频在线播放| 精品丰满人妻无套内射| 久久精品电影免费动漫| 精品人妻少妇一区二区三区在线 | 亚洲国产成人精品无码区花野真一| 久久精品中文騷妇女内射| 久久精品国产清白在天天线| 中文无码久久精品| 国产精品爽爽V在线观看无码| 免费看国产精品3a黄的视频| 97精品人妻系列无码人妻| 久久无码国产专区精品| 精品亚洲aⅴ在线观看| 99国产精品免费观看视频| 久久亚洲精品无码| 久久国产精品一国产精品| 久久精品国产亚洲综合色| 九九99精品久久久久久| 久久国产精品99久久久久久老狼| 亚洲精品字幕在线观看| 国产精品对白交换视频| 久久久久免费精品国产小说| 久热re这里只有精品视频| 人妻少妇精品视频二区|