基于LabVIEW的CSDB总线数据测试
本文分析和研究了CSDB总线的协议,并介绍了通过计算机的RS-232串口及相应电平转换电路,基于LabVIEW7.1软件开发平台实现的计算机与UUT的双向通信。其中,支持通信的软件实现是关键。

图1 CSDB总线结构
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实现。

图2 CSDB总线信号通信原理框图
通信配置
(1)电气转换
CSDB总线信号经过电气转换芯片后直接与计算机进行串口通信。在进行RS-422-A到RS-232的电气标准转换时,使用MAX488全双工电平转换芯片。
(2)通信同步
CSDB总线为异步串行通信,按照串行数据传输的基本原理,实现正确通信的基本条件是保持接收和发送双方时钟一致,以避免发送与接收双方的数据位宽产生累积误差,造成不能正确检测到总线数据。在串行通信中,信息是按位传送的,传送速率用波特率表示,数据的发送和接收受各自的时钟控制,因此,发送方和接收方的波特率应保持一致。经对具体部品测试,CSDB数据总线数据波特率为12.5Kbit/s,为与此同步,要求计算机产生的波特率也应为12.5Kbit/s。
如图2所示,在计算机中负责串行通信的器件为8250异步通信适配器(UART),或其兼容元器件,程序通过对8250内部的寄存器读写来控制通信模式,8250使用频率为1.8432MHz的基准时钟输入信号作为主数据时钟,通过对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接口函
数库,在Lab VIEW的Functions→All Functions→Instrument I/O中提供了GPIB、串口通信等各种函数模块,为实现串口通信提供了便捷的实现方法。软件流程如图3所示。

图3 串口通信软件流程图
软件设计中的关键问题及解决方法
(1) 发送数据帧结构多样化解决方法
通过对系统中不同部品的实际测试发现,由于其互联情况不同,相应部品控制码的帧结构也
- 基于LabVIEW RT的自定义流程测控系统(10-30)
- 基于LabVIEW的语音分析平台的实现(10-30)
- 基于示波器卡和LabVIEW的马达编码器测试系统(11-06)
- 基于虚拟仪器的网络虚拟实验室构建(11-06)
- 运用LabView控制DS3900串口通信模块(02-02)
- 采用模块化仪器,对新兴音频和视频应用进行测试(02-19)
- 妤傛ḿ楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閸忋劍鏌熸担宥咁劅娑旂姴鐨犳0鎴滅瑩娑撴氨鐓$拠鍡礉閹绘劕宕岄惍鏂垮絺瀹搞儰缍旈懗钘夊閿涘苯濮幃銊ユ彥闁喐鍨氶梹澶歌礋娴兼ḿ顫呴惃鍕殸妫版垵浼愮粙瀣瑎...
- 娑擃厾楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
缁箖鈧拷30婢舵岸妫亸鍕暥閸╃顔勭拠鍓р柤閿涘奔绗撶€硅埖宸跨拠鎾呯礉閸斺晛顒熼崨妯烘彥闁喕鎻崚棰佺娑擃亜鎮庨弽鐓庣殸妫版垵浼愮粙瀣瑎閻ㄥ嫯顩﹀Ч锟�...
- Agilent ADS 閺佹瑥顒熼崺纭咁唲鐠囧墽鈻兼總妤勵棅
娑撴挸顔嶉幒鍫n嚦閿涘苯鍙忛棃銏n唹鐟欘枃DS閸氬嫮顫掗崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱遍崝鈺傚亶閻€劍娓堕惌顓犳畱閺冨爼妫跨€涳缚绱癆DS...
- HFSS鐎涳缚绡勯崺纭咁唲鐠囧墽鈻兼總妤勵棅
鐠у嫭绻佹稉鎾愁啀閹哄牐顕抽敍灞藉弿闂堛垼顔夐幒鍦欶SS閻ㄥ嫬濮涢懗钘夋嫲鎼存梻鏁ら敍灞藉簻閸斺晜鍋嶉崗銊╂桨缁崵绮洪崷鏉款劅娑旂姵甯夐幓顡嶧SS...
- CST瀵邦喗灏濆銉ょ稊鐎广倕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閺夊孩妲戝ú瀣╁瘜鐠佽绱濋崗銊╂桨鐠佸弶宸緾ST閸氬嫰銆嶉崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱濋崝鈺傚亶韫囶偊鈧喕鍤滅€涳附甯夐幓顡塖T鐠佹崘顓告惔鏃傛暏...
- 鐏忓嫰顣堕崺铏诡攨閸╃顔勭拠鍓р柤
娑撳洣绗€妤傛ɑ銈奸獮鍐叉勾鐠у嚖绱濇潻娆庣昂鐠囧墽鈻兼稉杞扮稑閸︺劌鐨犳0鎴炲Η閺堫垶顣崺鐔枫亣鐏炴洘瀚甸懘姘剧礉閹垫挷绗呴崸姘杽閻ㄥ嫪绗撴稉姘唨绾偓...
- 瀵邦喗灏濈亸鍕暥濞村鍣洪幙宥勭稊閸╃顔勭拠鍓р柤閸氬牓娉�
鐠愵厺鎷遍崥鍫ユ肠閺囨潙鐤勯幆鐙呯礉缂冩垵鍨庨妴渚€顣剁拫鍙樺崕閵嗕胶銇氬▔銏犳珤閵嗕椒淇婇崣閿嬬爱閿涘本鍨滅憰浣圭壉閺嶉绨块柅锟�...