• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種嵌入式分區(qū)操作系統(tǒng)中虛擬化串口的設(shè)計與實現(xiàn)

      2016-12-31 19:41:14郭芳超周霆徐曉光中航工業(yè)西安航空計算技術(shù)研究所
      數(shù)碼世界 2016年6期
      關(guān)鍵詞:下層中斷串口

      郭芳超 周霆 徐曉光中航工業(yè)西安航空計算技術(shù)研究所

      ?

      一種嵌入式分區(qū)操作系統(tǒng)中虛擬化串口的設(shè)計與實現(xiàn)

      郭芳超周霆徐曉光
      中航工業(yè)西安航空計算技術(shù)研究所

      摘要:文章針對軟件虛擬化過程中對設(shè)備虛擬化的需求,提出了基于客戶(CLIENT)/服務(wù)器(SERVER)模式的串口設(shè)備訪問模型,分別闡述了虛擬化過程中串口服務(wù)器的處理功能、硬件設(shè)備中斷處理方法、客戶端代理驅(qū)動接口功能及結(jié)構(gòu)設(shè)計、以及數(shù)據(jù)傳輸采用的地址空間共享。

      關(guān)鍵字:設(shè)備虛擬化 串口 代理驅(qū)動 客戶/服務(wù)器

      1 引言

      設(shè)備虛擬化是軟件虛擬化的重要研究方向,也是軟件虛擬化過程中必須解決的。高效的設(shè)備虛擬化方法可以有效提高設(shè)備訪問效率,提高系統(tǒng)。串口通信方式簡單、可靠、穩(wěn)定,具有很好的可移植性、實時性,且具有使用線路少、成本低的特點。在嵌入式操作系統(tǒng)中對串口進行虛擬化可以快速驗證設(shè)備虛擬化方案的。

      2 虛擬化串口訪問模型

      虛擬化串口訪問模型采用客戶(CLIENT)/服務(wù)器(SERVER)模式的設(shè)備虛擬化方法實現(xiàn),設(shè)備驅(qū)動程序在設(shè)備服務(wù)分區(qū)地址空間內(nèi)。虛擬化串口的訪問要求設(shè)備服務(wù)分區(qū)內(nèi)包含合適的驅(qū) 動程序,其它分區(qū)包含代理驅(qū)動。一旦用戶調(diào)用代理驅(qū)動提供的設(shè)備操作接口,它就會把用戶的請求轉(zhuǎn)發(fā)到設(shè)備服務(wù)分區(qū)內(nèi)的串口服務(wù)器。代理驅(qū)動提供的函數(shù)在接口形式上與原物理設(shè)備驅(qū)動接口保持一致,在函數(shù)內(nèi)部將對物理設(shè)備的訪問封裝為特定形式的IPC消息格式轉(zhuǎn)發(fā)到串口服務(wù)器。串口服務(wù)器為每個分區(qū)創(chuàng)建一個虛擬串口設(shè)備,分區(qū)所有對物理設(shè)備的訪問請求被轉(zhuǎn)換為對虛擬串口設(shè)備的訪問。

      設(shè)備服務(wù)器直接控制物理設(shè)備,仲裁處理各個分區(qū)之間的競爭,同時處理設(shè)備中斷請求。另外,為了處理來自微內(nèi)核虛擬機管理器轉(zhuǎn)發(fā)的串口中斷請求,在設(shè)備服務(wù)分區(qū)內(nèi)創(chuàng)建處理串口中斷的用戶級中斷處理任務(wù)。

      2.1串口服務(wù)器

      串口服務(wù)器的主要功能之一就是對某個物理串口設(shè)備,在設(shè)備服務(wù)器內(nèi)部創(chuàng)建多個虛擬串口實例,用戶分區(qū)通過IPC請求操作設(shè)備時,設(shè)備服務(wù)器將訪問對象轉(zhuǎn)換為創(chuàng)建出的虛擬串口。串口服務(wù)線程啟動后根據(jù)配置信息檢測硬件設(shè)備并初始化,讀取分區(qū)配置信息判斷系統(tǒng)中需要使用串口的分區(qū)個數(shù),根據(jù)配置信息生成虛擬串口設(shè)備描述符,進行部分初始化,然后進入等待態(tài),等待來自其它應(yīng)用分區(qū)的設(shè)備使用請求,設(shè)備使用請求包含四類:

      a請求設(shè)備:處理來自客戶分區(qū)對串口設(shè)備的請求,為虛擬設(shè)備分配共享邏輯地址空間,將共享空間的<邏輯--物理>地址映射關(guān)系通過虛擬機管理器提供的映射/解映射接口加入客戶分區(qū)設(shè)備owner 線程(pager)的映射表中,將共享空間的邏輯地址和大小反饋給客戶分區(qū)。

      b注冊控制塊:將客戶分區(qū)劃分好的共享空間控制塊地址注冊到串口服務(wù)器分配的對應(yīng)虛擬設(shè)備描述符中。方便之后客戶分區(qū)與串口服務(wù)器交換數(shù)據(jù)讀/寫位置等信息。

      c初始化虛擬設(shè)備:實現(xiàn)虛擬設(shè)備所有者信息的注冊/變更,只有虛擬設(shè)備的所有者被允許修改設(shè)備的訪問屬性,例如打開/關(guān)閉等。

      d關(guān)閉虛擬設(shè)備:清理緩沖區(qū),將待發(fā)送隊列中的所有數(shù)據(jù)發(fā)送出去。如果接收緩沖內(nèi)有數(shù)據(jù),通知虛擬串口對應(yīng)的分區(qū)來取數(shù)據(jù)。最后刪除虛擬設(shè)備描述符。

      e中斷請求和數(shù)據(jù)收發(fā)請求,串口服務(wù)器將這兩類時間統(tǒng)一劃分為異步事件。系統(tǒng)中虛擬設(shè)備與物理設(shè)備之間存在多對一的關(guān)系,因此設(shè)計了雙層數(shù)據(jù)處理流。數(shù)據(jù)發(fā)送時,串口服務(wù)器程根據(jù)應(yīng)用分區(qū)待發(fā)送數(shù)據(jù)流內(nèi)的數(shù)據(jù)包個數(shù),為其分配下層數(shù)據(jù)包,初始化下層數(shù)據(jù)包內(nèi)各個域的值,加入到下層數(shù)據(jù)發(fā)送隊列中。數(shù)據(jù)接收時,根據(jù)待接收數(shù)據(jù)的個數(shù)分配下層數(shù)據(jù)包并加入接收等待隊列中。上層數(shù)據(jù)包與下層數(shù)據(jù)包只是建立對應(yīng)依賴關(guān)系而不進行數(shù) 據(jù)拷貝。

      串口服務(wù)器處理發(fā)送/接收數(shù)據(jù)請求的流程。串口服務(wù)器在發(fā)送流程處理過程中如果有下層 數(shù)據(jù)包不夠使用的情況出現(xiàn),需要主動清空虛擬設(shè)備占有的下層發(fā)送隊列數(shù)據(jù)包。進入當前處理流程后,數(shù)據(jù)已由硬件發(fā)送出去,此時只需要修改下層數(shù)據(jù)包對應(yīng)的上層數(shù)據(jù)包狀態(tài),將處理完后的數(shù)據(jù)包加入到當前虛擬設(shè)備的空閑隊列中,處理完成后釋放下層數(shù)據(jù)包,同時通知接收分區(qū)處理上層數(shù)據(jù)包。

      2.2串口中斷處理

      串口設(shè)備中斷處理包括上下兩層,下層位于虛擬機管理器中,物理中斷到來時,虛擬機管理器進行中斷統(tǒng)一處理流程,再調(diào)用串口中斷處理函數(shù)時向設(shè)備服務(wù)分區(qū)發(fā)送中斷通知。設(shè)備服務(wù)分區(qū)內(nèi)單獨創(chuàng)建一個處理來自串口的中斷處理線程。

      2.3代理驅(qū)動

      在客戶分區(qū),創(chuàng)建代理驅(qū)動程序供應(yīng)用程序訪問,代理驅(qū)動程序在接口形式上保持與原始驅(qū)動程 序接口一致。串口設(shè)備訪問過程中基本的操作有 open、close、read、write和ioctl。

      2.4串口數(shù)據(jù)傳輸

      本文使用的IPC消息機制可以高效的傳遞設(shè)備控制信息,傳輸數(shù)據(jù)時由于數(shù)據(jù)量比較大,使用IPC通信方式會影響設(shè)備訪問效率,影響虛擬設(shè)備的性能,所以需要使用更為高效的共享內(nèi)存方式。

      3 結(jié)束語

      本文采用基于客戶(CLIENT)/服務(wù)器(SERVER) 模式的設(shè)備訪問模型在嵌入式分區(qū)操作系統(tǒng)中對串口設(shè)備進行了虛擬化,實現(xiàn)了設(shè)備服務(wù)分區(qū)內(nèi)串口服務(wù)器的功能設(shè)計,硬件設(shè)備中斷的任務(wù)級處理、數(shù)據(jù)發(fā)送、接收流程設(shè)計、客戶端代理驅(qū)動程序的設(shè)計,以及其他關(guān)鍵技術(shù)。通過串口設(shè)備的成功虛擬化,有效驗證了基于C/S模型設(shè)備虛擬化方法的可行性。

      參考文獻

      [1]Gernot Heiser, Chief Technology. Virtualization for Embedded Systems, OK 40036:2007

      [2]Asif Iqbal, Nayeema Sadeque, Rafika Ida Mutia. An Overview of Microkernel, Hypervisor and Microvisor Virtualization Approaches for Embedded Systems, Sweden

      [3]郝繼鋒,任曉瑞,胡寧,一種基于微核架構(gòu)的虛擬化設(shè)備高效訪問模型,電子技術(shù),2013 42(7)4-6

      [4]VxWorks中任務(wù)恢復機制的設(shè)計與實現(xiàn)[J].空軍工程大學學報(自然科學版),2013 14(5)3-4.

      猜你喜歡
      下層中斷串口
      淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
      跟蹤導練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      一類多個下層的雙層規(guī)劃問題
      積雪
      陜西橫山羅圪臺村元代壁畫墓發(fā)掘簡報
      考古與文物(2016年5期)2016-12-21 06:28:48
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
      地礦測繪(2015年3期)2015-12-22 06:27:26
      有借有還
      基于并行控制的FPGA多串口拓展實現(xiàn)
      赤水市| 马尔康县| 婺源县| 巴马| 精河县| 平乐县| 邯郸县| 原阳县| 博野县| 定日县| 沂水县| 淄博市| 新郑市| 桂东县| 罗源县| 登封市| 福建省| 上林县| 金湖县| 庆云县| 巴塘县| 肃南| 新乐市| SHOW| 德州市| 定远县| 临沂市| 涿鹿县| 屏南县| 无锡市| 盐城市| 长沙市| 玉树县| 鸡泽县| 无棣县| 南川市| 南京市| 西乡县| 黔西县| 怀集县| 监利县|