www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]在Windows環(huán)境下調(diào)用動(dòng)態(tài)庫實(shí)現(xiàn)VXI嵌入式計(jì)算機(jī)間的數(shù)據(jù)傳遞

摘    要:本文介紹了調(diào)用VISA函數(shù)來實(shí)現(xiàn)動(dòng)態(tài)鏈接庫的設(shè)計(jì),提出軟件設(shè)計(jì)的整體框架和實(shí)現(xiàn)方案。動(dòng)態(tài)鏈接庫的設(shè)計(jì)包括三個(gè)部分:初始化通信環(huán)境、傳送數(shù)據(jù)和事件回調(diào)函數(shù)的設(shè)計(jì)。通過這種方法,實(shí)現(xiàn)了在Windows環(huán)境下通過調(diào)用動(dòng)態(tài)鏈接庫完成同一個(gè)VXI機(jī)箱內(nèi)安裝在不同槽位的嵌入式計(jì)算機(jī)之間的數(shù)據(jù)傳遞。
關(guān)鍵詞:VXI ;VISA函數(shù);動(dòng)態(tài)鏈接庫

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

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

使用事件和句柄
事件是需要引起應(yīng)用程序注意的特殊事件。事件類型包括服務(wù)請求、中斷和硬件觸發(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)方式通常用來處理需要立即反應(yīng)的事件,排隊(duì)方式用來處理非緊急事件。為了滿足實(shí)時(shí)性的要求,本文采用回調(diào)的方式。

動(dòng)態(tài)鏈接庫的設(shè)計(jì)與實(shí)現(xiàn)
為了提高動(dòng)態(tài)鏈接庫的效率,選用動(dòng)態(tài)鏈接庫中的函數(shù)的原則如下:
1. 不同的函數(shù)按功能分類,如初始化通信環(huán)境、傳送數(shù)據(jù)、釋放系統(tǒng)資源、實(shí)用函數(shù)(事件回調(diào)函數(shù))等。
2. 保持函數(shù)之間一定的獨(dú)立性。
3. 如果一個(gè)功能由數(shù)個(gè)函數(shù)執(zhí)行,應(yīng)該簡化命令序列。
4. 使函數(shù)總數(shù)目最少。
整個(gè)動(dòng)態(tài)鏈接庫中函數(shù)按照功能可分為初始化和數(shù)傳兩類。初始化類包括初始化通信函數(shù)和釋放系統(tǒng)資源函數(shù);數(shù)傳類包括傳送數(shù)據(jù)函數(shù)和實(shí)用函數(shù)。
在初始化通信函數(shù)中,首先應(yīng)在兩個(gè)模塊的進(jìn)程中各自打開自己的一個(gè)會話。在對接口存儲器進(jìn)行映射之前先要進(jìn)行存儲器分配,然后從指定的地址偏移量處進(jìn)行端口映射,本文采用的是A24地址映射方式。當(dāng)調(diào)用數(shù)據(jù)傳遞函數(shù)傳遞完數(shù)據(jù)后還應(yīng)該通知對方接收數(shù)據(jù),本文采用的是VXI總線觸發(fā)的方式來通知數(shù)據(jù)傳遞,因此在初始化函數(shù)中還應(yīng)該使能一個(gè)事件,指定觸發(fā)方式。
數(shù)據(jù)傳遞函數(shù)負(fù)責(zé)處理數(shù)據(jù)的傳遞。這里需要注意的是使用存儲器映射函數(shù)只能傳遞8位、16位和32位無符號整數(shù),所以必須通過軟件編寫進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)換。
實(shí)用函數(shù)主要是指在初始化通信函數(shù)中使能的事件所對應(yīng)的回調(diào)函數(shù)。此函數(shù)的作用是監(jiān)聽并接收數(shù)據(jù)。如果監(jiān)聽到的是指定的觸發(fā),就通過存儲器映射函數(shù)將數(shù)據(jù)讀出來,經(jīng)過一定的數(shù)據(jù)格式轉(zhuǎn)換還原出原始數(shù)據(jù),之后向主線程發(fā)送消息,通知數(shù)據(jù)已經(jīng)接收到。主線程使用線程間通信的方法將數(shù)據(jù)接收并進(jìn)行相應(yīng)的處理。從而整個(gè)數(shù)據(jù)的傳遞過程結(jié)束。
下面是動(dòng)態(tài)鏈接庫主要函數(shù)實(shí)現(xiàn)的方法:
void InitCommunication (DWORD thrdid)  file://初始化通信環(huán)境
{
          .
          .
          .
viInstallHandler (vi,VI_EVENT_TRIG,myHdlr, (ViAddr)10); file://聲明一個(gè)回調(diào)函數(shù)
viEnableEvent (vi,VI_EVENT_TRIG,VI_HNDLR, VI_NULL);    file://使能一個(gè)事件
viMemAlloc(vi,0x200,&offset);                        
file://分配一塊內(nèi)存
viMapAddress(vi,VI_A24_ SPACE,0, 0X200,VI_FALSE,VI_ NULL,&addr);  file://映射地址
          .
          .
          .
}
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;
          .
          .
          .
   }
通過在程序中調(diào)用上面的Senddata函數(shù)可以實(shí)現(xiàn)一個(gè)unsigned short型數(shù)據(jù)的傳遞。當(dāng)需要傳遞多個(gè)數(shù)據(jù)時(shí),建議使用結(jié)構(gòu)體定義要傳遞的數(shù)據(jù)。

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉