精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在VXI系統中嵌入式控制機如何傳遞實時性數據

電子設計 ? 來源:電子設計應用 ? 作者:趙嚴,陳光,顧亞平 ? 2021-06-15 14:09 ? 次閱讀

引 言

在VXI系統中,控制器可以選用各種流行的控制機和操作系統嵌入式控制機無疑是一種很好的選擇。但在一些由VXI組成的大型、復雜系統中,往往一臺計算機無法完成所有的任務,因此需要多臺機器之間配合完成,各自負責處理部分任務,因此如何傳遞彼此間的實時性數據顯得十分重要。本文介紹在一個VXI機箱插入兩個嵌入式計算機,其中一臺作為零槽控制器,另一臺作為一個模塊,兩者之間可以快速、有效地相互交換各自處理的實時性數據。選用的環境是Windows 2000操作系統,Agilent E8401A VXI主機箱一個,NI VXIpc-872B嵌入式計算機兩臺。采用的方法是共享存儲器通信和事件回調機制。

共享存儲器通信

VXI總線的通信方式很多,其中共享存儲器通信是對VXI總線字串行通信的補充。這些協議將使用少量的輔助操作而傳遞大量的信息,而這些輔助操作正是字串行協議所需要的。VISA提供了兩種不同的方式用于直接對寄存器編程:高級存儲器函數或低級存儲器函數。高級存儲器函數允許通過簡單的函數調用訪問接口上的存儲器,這不需要把存儲器映射到窗口。使用高級存儲器函數可完成存儲器映射和直接存儲器訪問。由于此函數包含了存儲器空間的映射和直接寄存器訪問,這就增加了程序的執行時間。和高級存儲器函數一樣,低級存儲器函數允許直接訪問接口上的內存,但是,調用低級存儲器函數時,必須用低級存儲器函數對地址和被訪問的寄存器進行映射。在使用低級存儲器函數時,為了提高程序的執行速度,低級存儲器函數不返回錯誤代碼。

使用事件和句柄

事件是需要引起應用程序注意的特殊事件。事件類型包括服務請求、中斷和硬件觸發。只有當適當的事件允許時,事件才能被傳送。當事件發生時,有兩種方式應引起注意:

1. 用viInstallhandler安裝事件,用viEnableEvent使能一個或多個事件。如果事件以句柄的形式使能,當指定的事件發生時,指定的事件句柄就被調用。這種方式被叫作回調方式。

2. 使用viEnableEvent使能一個或幾個事件并且調用viWaitOn Event函數。viWaitOn Event函數將掛起執行程序,直到指定的事件發生或到達指定的超時值。這種方式被叫做排隊方式。

這兩種方式是彼此獨立的,在同一時間可以使用一種或兩種同時使用。回調方式通常用來處理需要立即反應的事件,排隊方式用來處理非緊急事件。為了滿足實時性的要求,本文采用回調的方式。

動態鏈接庫的設計與實現

為了提高動態鏈接庫的效率,選用動態鏈接庫中的函數的原則如下:

1. 不同的函數按功能分類,如初始化通信環境、傳送數據、釋放系統資源、實用函數(事件回調函數)等。

2. 保持函數之間一定的獨立性。

3. 如果一個功能由數個函數執行,應該簡化命令序列。

4. 使函數總數目最少。

整個動態鏈接庫中函數按照功能可分為初始化和數傳兩類。初始化類包括初始化通信函數和釋放系統資源函數;數傳類包括傳送數據函數和實用函數。

在初始化通信函數中,首先應在兩個模塊的進程中各自打開自己的一個會話。在對接口存儲器進行映射之前先要進行存儲器分配,然后從指定的地址偏移量處進行端口映射,本文采用的是A24地址映射方式。當調用數據傳遞函數傳遞完數據后還應該通知對方接收數據,本文采用的是VXI總線觸發的方式來通知數據傳遞,因此在初始化函數中還應該使能一個事件,指定觸發方式。

數據傳遞函數負責處理數據的傳遞。這里需要注意的是使用存儲器映射函數只能傳遞8位、16位和32位無符號整數,所以必須通過軟件編寫進行數據格式的轉換。

實用函數主要是指在初始化通信函數中使能的事件所對應的回調函數。此函數的作用是監聽并接收數據。如果監聽到的是指定的觸發,就通過存儲器映射函數將數據讀出來,經過一定的數據格式轉換還原出原始數據,之后向主線程發送消息,通知數據已經接收到。主線程使用線程間通信的方法將數據接收并進行相應的處理。從而整個數據的傳遞過程結束。

下面是動態鏈接庫主要函數實現的方法:

poYBAGDIR7aAFMkgAAA3u7PkXC0300.png

void Senddata(unsigned short data2) file:/數據傳遞函數

{

viPoke16(vi,addr,data2);

viAssertTrigger (vi,VI_TRIG_PROT_SYNC);

}

ViStatus _VI_FUNCH myHdlr(ViSession vi,ViEventType eventType,ViEvent ctx,ViAddr userHdlr) file:/事件回調函數

{

viGetAttribute(ctx,VI_ATTR_ RECV_TRIG_ID,&trigId);

file:/得到觸發id

switch(trigId)

{

case VI_TRIG_TTL0: file:/判斷是否TTL0的觸發

viPeek16(vi,addr,&a);

break;

}

通過在程序中調用上面的Senddata函數可以實現一個unsigned short型數據的傳遞。當需要傳遞多個數據時,建議使用結構體定義要傳遞的數據。

結 語

本文通過對VXI共享存儲器通信和處理事件機制的介紹,闡述了如何在Windows環境下通過動態鏈接庫實現兩塊嵌入式計算機之間的數據傳遞,其中有關VISA函數的細節在HP或NI提供的VISA幫助中有詳盡的說明,不再贅述。基于這種方法編寫出來的程序處理VXI零槽控制器和非零槽模塊之間的通信問題是比較合適的。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5072

    文章

    19026

    瀏覽量

    303524
  • 存儲器
    +關注

    關注

    38

    文章

    7455

    瀏覽量

    163623
  • 操作系統
    +關注

    關注

    37

    文章

    6747

    瀏覽量

    123204
收藏 人收藏

    評論

    相關推薦

    基于實時操作系統嵌入式控制器的設計

    實時操作系統.為應用程序的設計提供了軟件平臺,與傳統的單片控制相比,解決了難于實現多任務,復雜控制算法以及
    發表于 04-27 21:41

    Python開發實時嵌入式系統的作用

    Raspberry Pi等單板計算機上被采用。隨著這種廣泛且不斷增長的采用,人們可能想知道實時嵌入式系統是否存在Python的位置。以下
    發表于 01-11 18:22

    嵌入式系統實時與快速有關

    新概念提出時,常常使電子技術應用領域中的人員感到莫明其妙。以前的“嵌入式系統”概念是其一,而今“嵌入式系統實時
    發表于 06-18 06:50

    嵌入式系統電子的實時是什么?

    新概念提出時,常常使電子技術應用領域中的人員感到莫明其妙。以前的“嵌入式系統”概念是其一,而今“嵌入式系統實時
    發表于 09-05 07:36

    嵌入式實時系統設計模式是什么?

    系統的觀點來看,嵌入式實時系統也是系統,特別是硬件技術的快速發展,嵌入式
    發表于 10-08 11:35

    什么是嵌入式系統

    操作系統目前的嵌入式應用中用得越來越廣泛,尤其功能復雜、系統龐大的應用顯得愈來愈重要。首先
    發表于 04-16 09:53

    嵌入式實時系統是什么

    、通信等領域中廣泛使用。由于嵌入式實時系統應用環境的特殊,因此設計實現過程存在著許多特殊問
    發表于 10-27 10:09

    基于ARM的嵌入式系統設計

    碩士學位論文基于ARM的嵌入式系統設計摘要嵌入式系統以其小型、專用、易攜帶、可靠高的特點,已經
    發表于 12-22 06:59

    嵌入式實時系統及其煙機的應用

    近年來, 嵌入式實時系統已經工業等各個領域得到廣泛關注與應用。 本文介紹嵌入式實時
    發表于 04-07 09:51 ?9次下載

    嵌入式Linux 實時分析與實時改進

    分析Linux 實時的同時,指出了將其應用于嵌入式實時系統時所存在的不足·研究了中斷模擬和調
    發表于 04-21 23:32 ?16次下載

    通過任務分割提高嵌入式系統實時

    分析長任務對嵌入式系統實時的影響,在此基礎上提出任務分割是提高嵌入式系統
    發表于 05-15 15:07 ?4次下載

    工控應用系統嵌入式數據實時研究

    工業控制嵌入式實時系統應用的數據庫要同時滿足
    發表于 06-10 11:01 ?16次下載

    嵌入式操作系統實時比對與分析

    嵌入式操作系統實時比對與分析 以影響嵌入式操作系統實時
    發表于 03-29 15:14 ?1846次閱讀
    <b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統</b><b class='flag-5'>實時</b><b class='flag-5'>性</b>比對與分析

    XMLHttP對象嵌入式Web實時系統的應用

    本文以Microchip公司的TCP/IP協議棧為基礎,討論XMLHttp對象嵌入式Web實時系統的具體應用方法。所選用的測試電路以PI
    發表于 11-15 16:02 ?1210次閱讀
    XMLHttP對象<b class='flag-5'>在</b><b class='flag-5'>嵌入式</b>Web<b class='flag-5'>實時</b><b class='flag-5'>系統</b><b class='flag-5'>中</b>的應用

    嵌入式實時系統及其通信系統的應用

    闡述了嵌入式實時系統的原理及特點,分析并論述嵌入式實時系統實現過程
    發表于 05-30 09:52 ?2944次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>實時</b><b class='flag-5'>系統</b>及其<b class='flag-5'>在</b>通信<b class='flag-5'>系統</b><b class='flag-5'>中</b>的應用