<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > CSDB總線介紹及其數(shù)據(jù)測試

          CSDB總線介紹及其數(shù)據(jù)測試

          作者: 時間:2012-01-26 來源:網(wǎng)絡(luò) 收藏

          基于LabVIEW7.1的通信

          本文引用地址:http://www.ex-cimer.com/article/194502.htm

            用LabVIEW7.1編程來實現(xiàn)通信時,用戶不必對GPIB,RS-232,VXI等硬件有專門的了解,LabVIEW為用戶提供了標(biāo)準(zhǔn)的I/O接口函

            數(shù)庫,在Lab VIEW的Functions→All Functions→Instrument I/O中提供了GPIB、串口通信等各種函數(shù)模塊,為實現(xiàn)串口通信提供了便捷的實現(xiàn)方法。軟件流程如圖3所示。

            

          圖3 串口通信軟件流程圖

            軟件設(shè)計中的關(guān)鍵問題及解決方法

            (1) 發(fā)送幀結(jié)構(gòu)多樣化解決方法

            通過對系統(tǒng)中不同部品的實際發(fā)現(xiàn),由于其互聯(lián)情況不同,相應(yīng)部品控制碼的幀結(jié)構(gòu)也不盡相同,同步字后跟1~4個控制消息塊不等,而在自動化系統(tǒng)中要求此通信軟件具有通用性。為此,將發(fā)送程序中控制消息塊接口設(shè)為最大(4個),當(dāng)程序檢測到某一接口有輸入時就發(fā)送此,若沒有,則以相等長度的延時替代。這樣,在保證所有數(shù)據(jù)幀周期相同的情況下,滿足了不同部品控制碼的不同要求。

            (2) 接收數(shù)據(jù)多重校驗

            數(shù)據(jù)接收程序中,LabVIEW要求設(shè)置接收數(shù)據(jù)緩沖長度,程序在接收此長度數(shù)據(jù)后才能進行后續(xù)處理。實際程序運行后發(fā)現(xiàn),如緩沖長度僅為一幀(24×8bit),接收數(shù)據(jù)有可能誤接收。為避免此情況,將緩沖長度設(shè)置為一幀字長的4~6倍,在接收到數(shù)據(jù)后,再根據(jù)同步字、標(biāo)號等多重匹配原則進行驗證后將數(shù)據(jù)取出,再將4~6組數(shù)據(jù)相比較,如相同,則認為數(shù)據(jù)可信,如不相同,則認為數(shù)據(jù)不可信。

            結(jié)語

            作數(shù)據(jù)時,可以方便通過界面改變需要發(fā)送的數(shù)據(jù),接收的數(shù)據(jù)也可實時顯示出來,便于測試分析。把此程序封裝成一個子函數(shù)模塊,可應(yīng)用于某航空無線電自動測試系統(tǒng)中,基于對總線的收發(fā)控制,成功實現(xiàn)了VIR-32導(dǎo)航接收機、VHF-22 甚高頻電臺等相關(guān)產(chǎn)品的自動測試。


          上一頁 1 2 下一頁

          關(guān)鍵詞: CSDB 總線 數(shù)據(jù) 測試

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();