新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 基于LabVIEW的CSDB總線信號測試

        基于LabVIEW的CSDB總線信號測試

        ——
        作者:北京航空航天大學儀器科學與光電工程學院 李亞麗 時間:2007-01-26 來源:《電子設計應用》 收藏

        引言

        商業標準數據總線(commercial standard digital bus,以下簡稱csdb總線)是由羅克威爾公司柯林斯通用航空電子分部制定的航空電子設備間互連的串行總線標準,被廣泛應用于客機、軍用運輸機等無線電設備之間的互聯通信。其廣泛應用為機載航空電子設備的可靠性提供了保障,卻為機載電子設備的測試和維修帶來了不便,維修或測試人員不能通過傳統測試設備,如示波器、萬用表等完成總線數據的測試,而必須借助相關產品聯測才能完成某一uut(unit under test)的測試,本文基于此需求,分析和研究了csdb總線的協議,并介紹通過計算機的rs-232串口及相應電平轉換電路,基于labview7.1軟件開發平臺實現的計算機與uut的雙向通信。其中,支持通信的軟件實現是關鍵。

        本文引用地址:http://www.104case.com/article/21169.htm

        csdb總線協議簡介

        csdb總線體系結構的物理層規定了總線的機械特性和電氣特性,數據鏈路層給出了數據幀的定義以及數據幀之間的定時要求,并對總線連接的各種航空設備的參數作出了詳細的規定。

        物理層

        csdb是單向廣播式異步串行總線標準,它可以構成單信源、多接收器的傳輸系統,總線數據采用nrz編碼、全雙工差分方式傳輸,csdb信號的數據格式與rs-232-c標準完全相同,都為異步串行通信格式,即:一個起始位、八個數據位、一個奇偶校驗位,一個停止位,其電氣標準為rs-422-a。

        數據鏈路層

        csdb總線是面向字節的傳輸協議,固定長度的字節組成消息塊,再由一定長度的消息塊組合成幀,封裝在數據幀中的不同數據通過各自的地址字節加以區別,不同的數據幀之間通過同步消息塊分割。csdb總線數據結構如圖1所示。

        在圖1中,消息塊(message block)的第一個字節byte 0稱為標識(或地址),消息塊都是通過標識來區分的。消息塊的長度是固定不變的,為6字節。csdb采用的是異步串行傳輸方式,通過起始位和停止位完成字節的位同步,因此,在編碼中不必帶有時鐘信息,幀同步通過識別同步消息塊6個字節的十六進制“a5”來實現,同步消息塊標識了每個數據幀的開始位置。

        其中:t1=幀時間長=1/最大更新率

        t2=消息塊間隙時間長(無限制)

        t3=總線空閑時間(最小11bit的時間)

        t4=字節間隙時長(無限制)

        csdb總線信號測試

        測試原理

        對csdb總線信號進行測試,是先將csdb信號電平轉換為和計算機適應的rs-232電平,再根據csdb總線的規則,實現對控制信息的正確發送和實時反饋信息的正確接收,并根據需要,將有用信息提出送測試系統處理,完成對航空機載設備的自動化測試。具體步驟分為信號電氣轉換、通信同步和labview實現。

        通信配置

        (1)電氣轉換

        csdb總線信號經過電氣轉換芯片后直接與計算機進行串口通信。在進行rs-422-a到rs-232的電氣標準轉換時,使用max488全雙工電平轉換芯片。

        (2)通信同步

        csdb總線為異步串行通信,按照串行數據傳輸的基本原理,實現正確通信的基本條件是保持接收和發送雙方時鐘一致,以避免發送與接收雙方的數據位寬產生累積誤差,造成不能正確檢測到總線數據。在串行通信中,信息是按位傳送的,傳送速率用波特率表示,數據的發送和接收受各自的時鐘控制,因此,發送方和接收方的波特率應保持一致,經過具體部品測試,csdb數據總線數據波特率為12.5kbit/s。為與此同步,要求計算機產生的波特率也應為12.5kbit/s。

        如圖2所示,在計算機中負責串行通信的器件為8250異步通信適配器(uart),或其兼容元器件,程序通過對8250內部的寄存器讀寫來控制通信模式,8250使用頻率為1.432m赫茲的基準時鐘輸入信號作為主數據時鐘,通過對8250內部寄存器置位來獲得需要的波特率。在異步串行通信中,為防止由于信號畸變、不同步等原因造成對數據的誤讀,通信適配器規定每讀取或發送1bit數據至少要用16個時鐘脈沖來控制其波特率,實際應用中波特率時鐘是主時鐘的1/16或1/(16×n),對于要求的波特率,在寫寄存器時用如下公式計算除數因子:

        除數因子=(主數據時鐘頻率/16)/波特率=115200/波特率

        在算出除數因子后,將相應數據寫入8250內部的波特率設置寄存器,即可在串口得到相應波特率的數據。經計算,115200除以12500后不為整數,所以,受到計算機異步通信適配器8250的限制,在波特率設置上不能完全和12.5kbit/s相同,經計算,當除數因子取9時對應的波特率為12.8kbit/s,與csdb總線要求的波特率最也接近,其每bit占據78μs,相對80μs/bit(12.5kbit/s)誤差為0.25%,小于串行通信波特率最大容許誤差5%。理論上可實現通信同步,因此在程序上將通信的波特率設置為12.8kbit/s。

        基于labview7.1的總線通信

        用labview7.1編程來實現總線通信時,用戶不必對gpib,rs-232,vxi等硬件有專門的了解,labview為用戶提供了標準的i/o接口函數庫,在labview的functions→all functions→ instrument i/o中提供了gpib、串口通信等各種函數模塊,為實現串口通信提供了便捷的實現方法。軟件流程如圖3所示。

        軟件設計中的關鍵問題及解決方法

        (1)發送數據幀結構多樣化解決方案

        通過對系統中不同部品的實現測試發現,由于其互聯情況不同,相應部品控制碼的幀結構也不盡相同,同步字后跟1-4個控制消息塊不等,而在自動化測試系統中要求此通信軟件具有通用性。為此,將發送程序中控制消息塊接口設為最大(4個),當程序檢測到某一接口有數據輸入時就發送此數據,若沒有,則以相等長度的延時代替,這樣,在保證所有數據幀周期相同的情況下,滿足了不同部品控制碼的要求。

        (2)接收數據多重校驗

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

        結語

        作csdb總線數據測試時,可以方便地通過界面改變需要發送的數據,接收的數據也可實時顯示出來,便于測試分析,把此程序封裝成一個子函數模塊,可應用于某航空無線電自動檢測系統中,基于對csdb總線的收發控制,成功實現了vir-32導航接收機、vhf-22甚高頻電臺等相關產品的自動測試。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 崇左市| 台山市| 阿荣旗| 丽水市| 鄂托克前旗| 财经| 崇州市| 尼木县| 扎鲁特旗| 紫金县| 铁岭市| 乳山市| 白沙| 兴安盟| 合阳县| 博湖县| 望都县| 喀喇沁旗| 台州市| 宝应县| 六安市| 神池县| 墨江| 贺州市| 咸丰县| 长泰县| 彰武县| 尼玛县| 高密市| 云南省| 石城县| 江孜县| 仪征市| 屏山县| 松原市| 浙江省| 景德镇市| 衡水市| 通河县| 焦作市| 崇信县|