一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在VXI系統(tǒng)中嵌入式控制機(jī)如何傳遞實(shí)時(shí)性數(shù)據(jù)

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì)應(yīng)用 ? 作者:趙嚴(yán),陳光,顧亞平 ? 2021-06-15 14:09 ? 次閱讀

引 言

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

共享存儲(chǔ)器通信

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

使用事件和句柄

事件是需要引起應(yīng)用程序注意的特殊事件。事件類(lèi)型包括服務(wù)請(qǐng)求、中斷和硬件觸發(fā)。只有當(dāng)適當(dāng)?shù)氖录试S時(shí),事件才能被傳送。當(dāng)事件發(fā)生時(shí),有兩種方式應(yīng)引起注意:

1. 用viInstallhandler安裝事件,用viEnableEvent使能一個(gè)或多個(gè)事件。如果事件以句柄的形式使能,當(dāng)指定的事件發(fā)生時(shí),指定的事件句柄就被調(diào)用。這種方式被叫作回調(diào)方式。

2. 使用viEnableEvent使能一個(gè)或幾個(gè)事件并且調(diào)用viWaitOn Event函數(shù)。viWaitOn Event函數(shù)將掛起執(zhí)行程序,直到指定的事件發(fā)生或到達(dá)指定的超時(shí)值。這種方式被叫做排隊(duì)方式。

這兩種方式是彼此獨(dú)立的,在同一時(shí)間可以使用一種或兩種同時(shí)使用?;卣{(diào)方式通常用來(lái)處理需要立即反應(yīng)的事件,排隊(duì)方式用來(lái)處理非緊急事件。為了滿足實(shí)時(shí)性的要求,本文采用回調(diào)的方式。

動(dòng)態(tài)鏈接庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)

為了提高動(dòng)態(tài)鏈接庫(kù)的效率,選用動(dòng)態(tài)鏈接庫(kù)中的函數(shù)的原則如下:

1. 不同的函數(shù)按功能分類(lèi),如初始化通信環(huán)境、傳送數(shù)據(jù)、釋放系統(tǒng)資源、實(shí)用函數(shù)(事件回調(diào)函數(shù))等。

2. 保持函數(shù)之間一定的獨(dú)立性。

3. 如果一個(gè)功能由數(shù)個(gè)函數(shù)執(zhí)行,應(yīng)該簡(jiǎn)化命令序列。

4. 使函數(shù)總數(shù)目最少。

整個(gè)動(dòng)態(tài)鏈接庫(kù)中函數(shù)按照功能可分為初始化和數(shù)傳兩類(lèi)。初始化類(lèi)包括初始化通信函數(shù)和釋放系統(tǒng)資源函數(shù);數(shù)傳類(lèi)包括傳送數(shù)據(jù)函數(shù)和實(shí)用函數(shù)。

在初始化通信函數(shù)中,首先應(yīng)在兩個(gè)模塊的進(jìn)程中各自打開(kāi)自己的一個(gè)會(huì)話。在對(duì)接口存儲(chǔ)器進(jìn)行映射之前先要進(jìn)行存儲(chǔ)器分配,然后從指定的地址偏移量處進(jìn)行端口映射,本文采用的是A24地址映射方式。當(dāng)調(diào)用數(shù)據(jù)傳遞函數(shù)傳遞完數(shù)據(jù)后還應(yīng)該通知對(duì)方接收數(shù)據(jù),本文采用的是VXI總線觸發(fā)的方式來(lái)通知數(shù)據(jù)傳遞,因此在初始化函數(shù)中還應(yīng)該使能一個(gè)事件,指定觸發(fā)方式。

數(shù)據(jù)傳遞函數(shù)負(fù)責(zé)處理數(shù)據(jù)的傳遞。這里需要注意的是使用存儲(chǔ)器映射函數(shù)只能傳遞8位、16位和32位無(wú)符號(hào)整數(shù),所以必須通過(guò)軟件編寫(xiě)進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)換。

實(shí)用函數(shù)主要是指在初始化通信函數(shù)中使能的事件所對(duì)應(yīng)的回調(diào)函數(shù)。此函數(shù)的作用是監(jiān)聽(tīng)并接收數(shù)據(jù)。如果監(jiān)聽(tīng)到的是指定的觸發(fā),就通過(guò)存儲(chǔ)器映射函數(shù)將數(shù)據(jù)讀出來(lái),經(jīng)過(guò)一定的數(shù)據(jù)格式轉(zhuǎn)換還原出原始數(shù)據(jù),之后向主線程發(fā)送消息,通知數(shù)據(jù)已經(jīng)接收到。主線程使用線程間通信的方法將數(shù)據(jù)接收并進(jìn)行相應(yīng)的處理。從而整個(gè)數(shù)據(jù)的傳遞過(guò)程結(jié)束。

下面是動(dòng)態(tài)鏈接庫(kù)主要函數(shù)實(shí)現(xiàn)的方法:

poYBAGDIR7aAFMkgAAA3u7PkXC0300.png

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

{

viPoke16(vi,addr,data2);

viAssertTrigger (vi,VI_TRIG_PROT_SYNC);

}

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

{

viGetAttribute(ctx,VI_ATTR_ RECV_TRIG_ID,&trigId);

file:/得到觸發(fā)id

switch(trigId)

{

case VI_TRIG_TTL0: file:/判斷是否TTL0的觸發(fā)

viPeek16(vi,addr,&a);

break;

。

}

通過(guò)在程序中調(diào)用上面的Senddata函數(shù)可以實(shí)現(xiàn)一個(gè)unsigned short型數(shù)據(jù)的傳遞。當(dāng)需要傳遞多個(gè)數(shù)據(jù)時(shí),建議使用結(jié)構(gòu)體定義要傳遞的數(shù)據(jù)。

結(jié) 語(yǔ)

本文通過(guò)對(duì)VXI共享存儲(chǔ)器通信和處理事件機(jī)制的介紹,闡述了如何在Windows環(huán)境下通過(guò)動(dòng)態(tài)鏈接庫(kù)實(shí)現(xiàn)兩塊嵌入式計(jì)算機(jī)之間的數(shù)據(jù)傳遞,其中有關(guān)VISA函數(shù)的細(xì)節(jié)在HP或NI提供的VISA幫助中有詳盡的說(shuō)明,不再贅述?;谶@種方法編寫(xiě)出來(lái)的程序處理VXI零槽控制器和非零槽模塊之間的通信問(wèn)題是比較合適的。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5125

    文章

    19438

    瀏覽量

    313199
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7613

    瀏覽量

    165948
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7025

    瀏覽量

    124725
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于實(shí)時(shí)操作系統(tǒng)嵌入式控制器的設(shè)計(jì)

    實(shí)時(shí)操作系統(tǒng).為應(yīng)用程序的設(shè)計(jì)提供了軟件平臺(tái),與傳統(tǒng)的單片機(jī)控制相比,解決了難于實(shí)現(xiàn)多任務(wù),復(fù)雜控制算法以及
    發(fā)表于 04-27 21:41

    Python開(kāi)發(fā)實(shí)時(shí)嵌入式系統(tǒng)的作用

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

    嵌入式系統(tǒng)實(shí)時(shí)與快速有關(guān)

    新概念提出時(shí),常常使電子技術(shù)應(yīng)用領(lǐng)域中的人員感到莫明其妙。以前的“嵌入式系統(tǒng)”概念是其一,而今“嵌入式系統(tǒng)實(shí)時(shí)
    發(fā)表于 06-18 06:50

    嵌入式系統(tǒng)電子的實(shí)時(shí)是什么?

    新概念提出時(shí),常常使電子技術(shù)應(yīng)用領(lǐng)域中的人員感到莫明其妙。以前的“嵌入式系統(tǒng)”概念是其一,而今“嵌入式系統(tǒng)實(shí)時(shí)
    發(fā)表于 09-05 07:36

    嵌入式實(shí)時(shí)系統(tǒng)設(shè)計(jì)模式是什么?

    系統(tǒng)的觀點(diǎn)來(lái)看,嵌入式實(shí)時(shí)系統(tǒng)也是系統(tǒng),特別是硬件技術(shù)的快速發(fā)展,嵌入式
    發(fā)表于 10-08 11:35

    什么是嵌入式系統(tǒng)

    操作系統(tǒng)目前的嵌入式應(yīng)用中用得越來(lái)越廣泛,尤其功能復(fù)雜、系統(tǒng)龐大的應(yīng)用顯得愈來(lái)愈重要。首先
    發(fā)表于 04-16 09:53

    嵌入式實(shí)時(shí)系統(tǒng)是什么

    、通信等領(lǐng)域中廣泛使用。由于嵌入式實(shí)時(shí)系統(tǒng)應(yīng)用環(huán)境的特殊,因此設(shè)計(jì)實(shí)現(xiàn)過(guò)程存在著許多特殊問(wèn)
    發(fā)表于 10-27 10:09

    基于ARM的嵌入式系統(tǒng)設(shè)計(jì)

    碩士學(xué)位論文基于ARM的嵌入式系統(tǒng)設(shè)計(jì)摘要嵌入式系統(tǒng)以其小型、專(zhuān)用、易攜帶、可靠高的特點(diǎn),已經(jīng)
    發(fā)表于 12-22 06:59

    嵌入式實(shí)時(shí)系統(tǒng)及其煙機(jī)的應(yīng)用

    近年來(lái), 嵌入式實(shí)時(shí)系統(tǒng)已經(jīng)工業(yè)等各個(gè)領(lǐng)域得到廣泛關(guān)注與應(yīng)用。 本文介紹嵌入式實(shí)時(shí)
    發(fā)表于 04-07 09:51 ?9次下載

    嵌入式Linux 實(shí)時(shí)分析與實(shí)時(shí)改進(jìn)

    分析Linux 實(shí)時(shí)的同時(shí),指出了將其應(yīng)用于嵌入式實(shí)時(shí)系統(tǒng)時(shí)所存在的不足·研究了中斷模擬和調(diào)
    發(fā)表于 04-21 23:32 ?16次下載

    通過(guò)任務(wù)分割提高嵌入式系統(tǒng)實(shí)時(shí)

    分析長(zhǎng)任務(wù)對(duì)嵌入式系統(tǒng)實(shí)時(shí)的影響,在此基礎(chǔ)上提出任務(wù)分割是提高嵌入式系統(tǒng)
    發(fā)表于 05-15 15:07 ?4次下載

    工控應(yīng)用系統(tǒng)嵌入式數(shù)據(jù)庫(kù)實(shí)時(shí)研究

    工業(yè)控制嵌入式實(shí)時(shí)系統(tǒng)應(yīng)用的數(shù)據(jù)庫(kù)要同時(shí)滿足
    發(fā)表于 06-10 11:01 ?16次下載

    嵌入式操作系統(tǒng)實(shí)時(shí)比對(duì)與分析

    嵌入式操作系統(tǒng)實(shí)時(shí)比對(duì)與分析 以影響嵌入式操作系統(tǒng)實(shí)時(shí)
    發(fā)表于 03-29 15:14 ?1953次閱讀
    <b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>實(shí)時(shí)</b><b class='flag-5'>性</b>比對(duì)與分析

    XMLHttP對(duì)象嵌入式Web實(shí)時(shí)系統(tǒng)的應(yīng)用

    本文以Microchip公司的TCP/IP協(xié)議棧為基礎(chǔ),討論XMLHttp對(duì)象嵌入式Web實(shí)時(shí)系統(tǒng)的具體應(yīng)用方法。所選用的測(cè)試電路以PI
    發(fā)表于 11-15 16:02 ?1249次閱讀
    XMLHttP對(duì)象<b class='flag-5'>在</b><b class='flag-5'>嵌入式</b>Web<b class='flag-5'>實(shí)時(shí)</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>中</b>的應(yīng)用

    嵌入式實(shí)時(shí)系統(tǒng)及其通信系統(tǒng)的應(yīng)用

    闡述了嵌入式實(shí)時(shí)系統(tǒng)的原理及特點(diǎn),分析并論述嵌入式實(shí)時(shí)系統(tǒng)實(shí)現(xiàn)過(guò)程
    發(fā)表于 05-30 09:52 ?3114次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>實(shí)時(shí)</b><b class='flag-5'>系統(tǒng)</b>及其<b class='flag-5'>在</b>通信<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>中</b>的應(yīng)用