好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

MILSTD1553B演示文稿.ppt

77页
  • 卖家[上传人]:s9****2
  • 文档编号:590627545
  • 上传时间:2024-09-15
  • 文档格式:PPT
  • 文档大小:2.73MB
  • / 77 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 恩  菲  特  科  技  有  限  公  司2021/7/11 目   录一、公司简介二、1553B背景介绍1、历史2、1553B的应用3、1553B的优点4、未来的发展(10M-1553)三、1553B基础知识介绍1、网络拓扑结构2、总线控制器(BC)、远程终端(RT)、总线监控器(BM)3、传输方式4、数据格式(1)、概述(2)、命令字、数据字、状态字(3)、1553B消息格式5、总线连接(1)、线缆(2)、耦合方式(3)、网络构成四、公司相关产品介绍及应用      1、恩菲特公司1553B产品简介      2、Eph6273的功能介绍       (1)、BC功能循环帧消息发送插入消息One-shot消息发送其他功能应用举例和功能演示        (2)、RT功能RT发送数据RT接收数据其他功能应用举例和功能演示         2021/7/12 (3)、BM功能BM数据记录消息过滤应用举例和功能演示3、Windows下应用程序编写(1)模块初始化(2)BC(Bus Controller)部分(3)RT(Remote terminal)部分(4)BM(Bus Monitor)部分(5) 1553B 程序消息读取部分说明 2021/7/13 一、公一、公 司司 简简 介介 恩菲特科技(Enpht Technology)是国内航空电子领域的领先设计者和制造者,自公司成立至今,以其创新的设计、高质量的产品和高顾客满意度,赢得业界的认可。

      我们立志于航空电子与自动化测控领域的产品及设备的开发、生产与销售我们决心以谨慎、负责的态度,与新老客户和合作伙伴之间建立密切的、互利的合作关系,为国内的航天、航空、兵器工业、核工业、电子工业、船舶工业、科研院所等行业领域的客户提供最为有效的、快捷的各类测控产品及服务  2021/7/14 恩菲特科技拥有一个技术精良、工作作风严谨和踏实的高素质团队公司绝大部分研发人员长期从事虚拟仪器产品的开发和研制,具有扎实的理论基础,并积累了丰富的实践经验另外,公司与电子科技大学、四川大学、北京航空航天大学等结成战略合作联盟,为公司发展提供长期的智力支持  恩菲特科技拥有先进的开发设计手段,完善、精良的测试设备, 产品设计、开发、生产、安装和服务都以GJB9001A-2001质量管理体系要求为行动准则,确保产品的质量与交付进度,满足国内军工用户对产品的高品质要求2021/7/15 恩菲特科技的产品线包括:高速高精度数据采集模块、多通道多功能数据采集模块、开关和数字量IO模块、激励源和信号发生器、航电测试产品(1553B、ARINC429及高速多串口通讯模块)、自动化测控系统等产品的总线方式包括:     PCI、PXI/CPCI、VXI、PC/104、PC104+、PCMCIA,及定制化产品服务。

        在系统集成方面,公司先后为国内各个领域的客户研制成功了多套专用测控与测试系统,积累了丰富的工程经验,正在形成遍及全国的用户集成服务体系恩菲特科技全体员工将一如既往地以饱满的热情和敬业奉献精神,为使公司成为国内一流的航空电子和测控系统的专业设计制造商这一目标而努力奋斗! 2021/7/16 二、1553B总线历史背景•历史•在国内的应用•1553B的优点•未来的发展(10M-1553)2021/7/17 1、历史在20世纪60年代以前,飞机机载电子系统没有标准的通用数据通道,各个电子设备单元之间连接往往需要大量的电缆随着机载电子系统的不断复杂化,这种通信方式所用的电缆将会占用很大的空间和重量,而且对传输线的定义和测试也较为复杂,费用较高为了解决这一问题,美国SAE A2K委员会在军方和工业界的支持下于1968年决定开发标准的信号多路传输系统,并于1973年公布了MIL-STD-1553标准1973年的1553B多路传输数据总线成为了未来军机将采用的技术,它取代了在传感器、计算机、指示器和其他飞机设备间传递数据的庞大设备,大大减少了飞机重量,并且使用简单、灵活2021/7/18 此标准的修订本于1978年公布,即MIL-STD-1553标准。

      1980年,美国空军对该标准作了修改和补充该标准作为美国国防部武器系统集成和标准化管理的基础之一,而且成为一种国际标准我国于1987年颁布了相应的军标2021/7/19 2、1553B总线的应用1553B总线总线    该总线标准已广泛用于飞机综合航电系统、外挂物管理与集成系统,并逐步扩展坦克、舰船、航天等领域.2021/7/110 国外航电系统起步较早,1553B得到美空军、海军、陆军的认可,得到非常成熟和大面积的应用,F16是采用 1553A 标准的第一种作战飞机 我国早在90年代就已立项做1553B协议的研究与产品研制工作,并被纳入军标GJB 289A《数字式时分制指令/响应型多路传输数据总线》,且投入了大量的人力及物力,参研单位包括:西安航空631所,电子部58所等目前机载,弹载,舰载,车载系统都已经将1553B总线列入系统的核心,这方面的需求量在逐年加大2021/7/111 3、1553B的优点(1)、线性局域网络结构          合理的拓扑结构使得1553B总线成为航空系统或地面车辆系统中分布式设备的理想连接方式与点对点连接相比,它减少了所需电缆、所需空间和系统的重量。

      便于维护,易于增加或删除节点,提高设计灵活性   (2)、冗余容错能力          由于其固有的双通道设计,1553B总线通过在两个通道间自动切换来获得冗余容错能力,提高可靠性   (3)、支持“哑”节点和“智能”节点          1553B总线支持非智能的远程终端这种远程终端提供与传感器和激励器的连接接口十分适合智能中央处理模块和分布式从属设备的连接   2021/7/112 (4)、高水平的电器保障性能          由于采用了电气屏蔽和总线耦合方式,每个节点都能够安全地与网络隔离;减少了潜在的损坏计算机等设备的可能性    (5)、良好的器件可用性          1553B总线器件的制造工艺满足了大范围温度变化以及军标的要求器件的商品化使得1553B总线得以广泛地应用在苛刻环境的项目当中    (6)、保证了的实时可确定性          1553B总线的命令/响应的协议方式保证了实时的可确定性2021/7/113 4、未来的发展(10M-1553)2021/7/114 三、1553B基础知识介绍•网络拓扑结构•总线控制器(BC)、远程终端(RT)、总线监控器(BM)•传输方式•数据格式•连接方式2021/7/115 1、网络拓扑结构1553B总线总线控制器(BC)远程终端(RT)子系统中的终端接口(可任选余度)子系统2021/7/116  1553B总线(数字式时分制指令/响应型多路传输数据总线 )由数据总线、终端或子系统终端接口组成。

      通过分时传输(TDM)方式,实现系统中任意两个终端间相互交换信息终端是数据总线和子系统的接口电子组件,从功能上说它可以是总线控制器(BC)、远程终端(RT)或总线监控器(BM);从物理结构上说 ,它可以是独立组件,也可以包含在子系统中             1553B总线系统采用命令/响应式传输的操作方式只有当总线控制器发出命令后,远程终端才能作出响应       2021/7/117 2、总线控制器(BC)、远程终端(RT)、总线监控器(BM) *总线控制器(Bus Controller):总线的控制、管理者,也是所有通信动作的发起者任何时刻总线上只有一个终端对总线系统实施控制终端执行总线控制器操作时,负责发送命令、参与数据传输、接收状态响应和监测总线系统远程终端(remote terminal):对从总线上总线的控制接收到的有效命令作出响应,回送状态字,完成相应动作总线监视器(Bus Monitor):用于总线上数据的监视、记录2021/7/118 3、传输方式1553B信号以串行数字脉冲编码调制(PCM)形式在数据总线上传输.采用曼彻斯特II型双相电平码.  逻辑1为双极编码信号1/0,即一个正脉冲继之一个负脉冲.逻辑0为双极编码信号0/1,即一个负脉冲继之一个正脉冲。

       1553B的数据传输为半双工方式总线上波特率为1Mbps2021/7/119 4、数据格式(1)、概述 1553B信息流由一串1553B消息构成1553B消息由命令字、数据字、状态字组成命令字、数据字、状态字都应是:3 3位同步头位同步头 + 1616位有效位位有效位 + 1 1位奇偶校验位奇偶校验总共20位构成 1553B数据采用奇校验2021/7/120 ①、命令字指令字应由同步头、远程终端地址字段、发送/接收位(T/R)、子地址/方式字段、数据字计数/方式代码字段及奇偶校验位(P)组成2)、命令字、数据字、状态字2021/7/121 •同步头指令字同步头应是一个无效的曼彻斯特波形其宽度为,前1.5位时的波形为正,后1.5位时的波形为负,如果紧跟同步头后的一位是逻辑0,那么同步头的后半部分有两个位时的表观宽度 2021/7/122 •远程终端地址段紧跟同步头后的五位为远程终端地址段每个远程终端被指定为一个专有地址,从十进制地址0到十进制地址30均可采用,但尽量不采用十进制地址0作为远程终端的专有地址十进制地址31(11111)为所有远程终端的公用地址,供系统采用广播操作时使用。

       •发送/接收位 发送/接收位表示要求远程终端作的操作,逻辑0指定远程终端作接收操作,逻辑1指定远程终端作发送操作 •子地址/方式字段 子地址/方式字段用来指定远程终端的子地址,或者用作总线系统进行方式控制时的标记十进制1(00001)到30(11110)用于指定子系统地址十进制0(00000)和31(11111)不能用于指定子系统地址,而是用于方式代码控制,表示此时数据字/方式代码段的内容为方式代码 2021/7/123 •数据字记数/方式代码字段 该字段用来指定远程终端应发送、应接收的数据字的个数或方式代码在任何一条消息内最多可以发送或接收32个数据字全1表示十进制记数31,而全0表示十进制记数32•奇偶校验位命令字最后一位用作前16位的奇偶校验采用奇校验方式 • 方式代码     当总线控制器发出的命令字中的“子地址/方式字段”为(00000)b或(11111)b时,“数据字个数/方式代码字段”的内容为五位方式代码含方式代码的命令中,“发送/接收位” 、数据字的有无以及是否允许广播等均按协议规定使用方式代码表 2021/7/125 •方式代码表2021/7/126 •方式代码表(续)2021/7/127 数据字应由同步头、数据字段和奇偶校验位组成②数据字2021/7/128 •同步头数据字同步头是一个无效曼彻斯特波形。

      如下图,其宽度为三个位时前一个半位时的波形为负,后一个半位时的波形为正如果该同步头的前位和后位为逻辑1,则同步头的表现宽度为四个位时2021/7/129 •数据段16位数据•奇偶校验位   数据字的最后一位用作前16位数据的奇偶校验2021/7/130 ③状态字状态字同步头、远程终端地址字段、消息差错位、测试手段位、服务请求位、备用位、广播指令接收位、忙位、子系统标志位、动态总线控制接受位、终端标志位及奇偶校验位组成2021/7/131 •同步头同步头与命令字同步头相同•远程终端地址字段该字段有五位,为发送状态字的远程终端的地址•消息差错位表示远程终端刚接受到的消息中有一个或多个字没有通过有效性测试逻辑1表示消息有差错,逻辑0表示消息无差错•测试手段位测试手段位在所有条件下总置为逻辑0该位为可选位,用来区分是指令字还是状态字如果使用,指令字中的相应位置为逻辑1 2021/7/132 •服务请求位该位为逻辑1时表示本远程终端有服务请求,要求总线控制器启动与本远程终端或子系统有关的预操作.当与同一远程终端相连的多个子系统同时要求服务时,设计者必须设计单独的数据字来识别不同的请求服务子系统直到所有的请求都处理完后,状态字中的“服务请求位”复位为逻辑0,表示无服务请求。

      该位只用于在发生异常情况时的触发数据发送操作,而不用于周期性的数据传输服务•备用状态位状态字的第12、13、14位是备用的状态位应将它们置为逻辑0,这些位留作今后使用 •广播命令接受位状态字的第15位时置为逻辑1,表示本远程终端接收到的上一有效指令字是广播指令字未采用广播方式时,置该位为逻辑0 2021/7/133 •忙位状态字的第16位时置为逻辑1表示远程终端处在忙状态,不能按照总线控制器的指令要求将数据移入子系统或从子系统取出数据此时在响应发送指令时只发出它的状态字逻辑0表示不存在忙状态•子系统标志位用来向总线控制器指出存在子系统故障状态,且警告总线控制器本远程终端提供的数据可能无效如果与一个远程终端相连的几个子系统都呈现故障状态,应将它们各自的信号逻辑“或”,形成状态字中的子系统标志位,并将事先准备好的一个数据字中的相应位置1,记录它们的故障报告,以供做进一步检测、分析用该位为可选位逻辑1表示有子系统故障,逻辑0表示无子系统故障 2021/7/134 •动态总线接受位若置为逻辑1,用来表示本远程终端接受动态总线控制的授命逻辑0表示不接受该位为可选位 •终端标志位状态字的第19位时用作终端标志功能。

      逻辑1表示本远程终端内部存在故障,请求总线控制器干预逻辑0表示不存在故障该位为可选位 •奇偶校验位对16bit状态字进行奇校验2021/7/135 (3)、1553B消息格式2021/7/136 广播方式下的消息格式:说明:#消息间隔· ·响应时间2021/7/137 •消息间隔总线控制器不发出无字间间隔的连续消息消息之间的最小间隔时间为4.0μs该时间为从前一消息最后一位的中间过零点到邻接的消息中指令字同步头的中间过零点的时间 相关概念相关概念2021/7/138 •响应时间远程终端响应有效指令字的间隔时间为4.0~12.0μs该时间为从状态字之前的最后一个字的最后一位的中间过零点到状态字同步头中间过零点的时间 •最小无响应超时总线控制器在一路总线上启动传输时,测量由它发出的最后一个字的最后一位的中间过零点起,到期望的状态字同步头的中间过零点的时间当该时间超过14.0μs时,作无响应超时处理 2021/7/139 5、总线连接1553B的数据总线包括电缆和支线支线用于将终端或子系统中的终端接口与主电缆相连总线中的主电缆和支线均应是带护套的、双绞屏蔽电缆,其线间分布电容不超过100.0pF/m,每米应不少于13绞,电缆的屏蔽层覆盖率应不低于75.0%。

      在1MHz的正弦波作用下,电缆的标称特性阻抗Z0应在70.0—85.OΩ范围内电缆的功率损耗不超过0.05dB/m主电缆的两个端头应各接一个阻值等于所选电缆标称特性阻抗(1±2.0%)Z0Ω的电阻器 (1)、线缆2021/7/140 (2)耦合方式•直接耦合方式•变压器耦合方式2021/7/141 •直接耦合方式       直接耦合方式是指用短截线连接总线主电缆和终端的耦合方式短截线长度应不超过0.3m在飞机上,这种直接耦合短截线应尽可能避免使用2021/7/142 •变压器耦合终端通过短截线及耦合变压器连到主电缆上,短截线的长度应不超过6m 2021/7/143 (3)、1553B总线网络构成①③②④⑤②②②①①终端电阻②单耦合器③双耦合器④总线电缆⑤各种连接器⑤⑤⑤⑤⑤2021/7/144 四、公司相关产品介绍及应用•恩菲特公司1553B产品简介•Eph6273的功能介绍•Windows下应用程序编写2021/7/145  1、我们为您提供的--恩菲特公司1553B产品简介•完全吸收消化GJB 289A及MIL-STD-1553A/B,设计研制出了1553B协议芯片及各种外围模块(PCI,CPCI/PXI,VXI,PC104/PC104+, PCMCIA)。

      •自主研发所带来的优质,快速,专业的售前及售后服务•高性价比及快速的产品交付2021/7/146 1553B产品简介产品简介Eph5273   CPCI/PXI 多通道双冗余1553B通信模块 PICMG Specification 2.1, 32-bit/33MHz, 5-volt PCI signaling, 共享中断INTA#2021/7/147 Eph6273PCI多通道双冗余1553B通信模块PCI Specification 2.1,32-bit/33MHz,5-volt PCI signaling,共享中断INTA#2021/7/148 •Eph7273PC/104 plus多通道双冗余1553B通信模块PCI Specification 2.1, 32-bit/33MHz, 5-volt PCI signaling, 共享中断INTA# 2021/7/149 •Eph8273Vxi C尺寸 单宽4通道1553B16T/16R Arinc4292021/7/150 •Eph927316-Bit Ⅱ型 PC Card 单通道双冗余1553B通信模块2021/7/151 •Eph31580符合MIL-STD-1553B Notice2符合GJB-289A-97规范单通道MIL-STD-1553B 通道可设置为BC\RT|BM灵活的处理器接口:可与多种CPU、MPU或CPLD相连支持8、16位数据总线内部4K x 16Bit存储器最大外扩64K x 16Bit 存储器Dip70封装单电源3.3v供电2021/7/152 •循环方式发送可以进行自定义字间隔、帧发送周期的周期性循环消息发送•插入消息  在周期性消息发送的同时可以随机插入一条一次性发送消息进行发送。

      插入消息不能进行错误重试•OneShot方式发送单次发送方式2、Eph6273的功能介绍(1)、BC(Bus Controller)功能2021/7/153 •其他功能重试:在错误发生时进行指定方式的重试发送.最多可提供七次重试重试条件有:无响应、消息错、总线忙、终端标志位置位、子系统标志位置位、测试手段位、服务请求重试方式有:在同一条总线上重试、在另一条总线上重试•错误注入支持错误注入:同步错、Bit错误、数据计数错、校验错•应用举例和功能演示*周期性消息发送*插入消息*OneShot 消息   2021/7/154 •RT接受数据RT接受针对自己的合法接受命令字及其所带的数据字如接收到BC RT、带数据字的广播消息、带数据字的RTRT消息,RT会接受相应数据•RT发送数据RT可以按照命令字的要求向BC或其他RT发送数据,也可在BC的控制下向总线广播数据•其他功能支持错误注入:同步错、Bit错误、数据计数错、校验错提供微秒级的(相对)时标•应用举例和功能演示*BCRT消息发送*RTBC消息发送(2)、RT(Remote Terminate)功能2021/7/155 •100%的监视总线上的消息,包括数据、状态、相对时标。

      •提供可编程的监视过滤条件可以用RT SubAddress、transmit/receive flag和Word code(或Mode code)的组合设置过滤条件•应用举例和功能演示*BM监视功能(3)、BM(Bus Monitor)功能2021/7/156 3、、Window下应用程序编写下应用程序编写•((1)、模块初始化)、模块初始化 ①、设备连接:   ViUInt32 cardnum=0;自动连接,将自动查找并连接系统中第一张1553板卡返回的cardnum将作为以后所有程序操作的设备句柄Eph6273_AutoConnectFirst(&cardnum);也可以指定总线号、设备号进行连接,这种方式多用于系统中有多个1553B模块Eph6273_Init( BusNum,//总线号DeviceNum,//设备号&cardnum);//返回的设备句柄  ②、设置为直接藕合 Eph6273_SetVoltage(cardnum, 0, 0, 0);//dericte couple2021/7/157 •((2)、)、BC((Bus Control)部分)部分①、初始化BC功能Eph6273_BC_Init( cardnum,       //设备句柄    0,  //通道号    0,      //BusA/B可用。

      保留     0,//中断允许 保留   RetryCondition,   // 重试条件ReTime, // 响应时间14us DelayReTime, //延迟响应时间12usframerate,  //帧速率1000~1638375us  0);     //每个消息占的Buffer数保留在BC初始化函数中要设置的有:*重试条件:设置在哪种情况下重试可选的是 BC_RETRY_ME:消息错; BC_RETRY_NRSP: 无响应; BC_RETRY_BUSY: 总线忙; BC_RETRY_TF: 终端标志位置位; BC_RETRY_SSF: 子系统标志位置位; BC_RETRY_INSTR: 测试手段位; BC_RETRY_SRQ: 服务请求;2021/7/158 任意组合响应时间、延迟响应时间:按规定的所有消息传输中,远程终端响应有效指令字的间隔时间为4.0~12.0μs,最小无响应时间为14μs帧速率:设置数据发送的帧速率可设置值为:1000 到 1638375μs ②、设置重试方式Eph6273_BC_RetryInit()③、设置触发方式Eph6273_BC_Trigger()④、定义帧发送次数Eph6273_BC_Frame_Loop()2021/7/159 ⑤、添加发送消息Eph6273_BC_MessageWrite()。

      消息以API_BC_MBUF结构的形式写入1553B消息类型有:BC->RT、Rt->BC、RT->RT、ModeCode、Broadcast、Broadcast ModeCode、Broadcast RT->RT消息编号从0开始⑥、启动BC功能Eph6273_BC_StartStop()⑦消息举例2021/7/160 ※构造消息:API_BC_MBUF bcmessage; //Define BC Message Structure bcmessage.messno = messno; bcmessage.messno_next = 0xFFFF;// (BT_U16BIT)(messno + 1)bcmessage.control = BC_CONTROL_MESSAGE; //Control msg bcmessage.control |= BC_CONTROL_INTERRUPT; //Enable Int bcmessage.control |= BC_CONTROL_BUFFERA; //Use Buffer A bcmessage.control |= BC_CONTROL_MFRAME_BEG; //Begin Minor Frame bcmessage.control |= BC_CONTROL_MFRAME_END; //end Minor Frame2021/7/161 //Commandbcmessage.mess_command1.rtaddr = RT_ADDR; bcmessage.mess_command1.subaddr = SUB_ADDR; bcmessage.mess_command1.wcount = MSG_WORD_COUNT; bcmessage.mess_command1.tran_rec = RECEIVE; bcmessage.errorid = 0; // Default error injection buffer (no errors) bcmessage.gap_time = 8; //从上一条消息完成(含响应时间)开始计数,最//小值为4,最大值为65535(us)。

       for ( j = 0; j < MSG_WORD_COUNT; j++ ) bcmessage.data[0][j] = messageData[j]; //Fill in the data ※写入消息:status = Eph6273_BC_MessageWrite(cardnum,messno,&bcmessage); ……….……2021/7/162 ((3)、)、RT(remote terminal)部分部分①、RT初始化//为RT功能分配存储区Eph6273_RT_MessageAlloc()//初始化RT功能Eph6273_RT_Init()//初始化RT控制控制信息、数据Eph6273_RT_AbufWrite():初始化 RT Address Control Block ,相关数据结构:typedef struct api_rt_abuf { WORD enable_a; // BusA上数据允许 WORD enable_b; // BusB上数据允许 WORD inhibit_term_flag; // “RT_ABUF_ITF” 、“RT_ABUF_DBC_ENA”和 //“RT_ABUF_DBC_RT_OFF”2021/7/163 WORD status; // latest status word WORD command; // latest command word (read only) WORD bit_word; // This is the Built-In-Test word. It can be initialized //by the application to be any value. It is used by the microcode in //order to respond to the Transmit BIT Word modecode message. //The microcode does not modify this word at any time.} API_RT_ABUF;2021/7/164 Eph6273_RT_CbufWrite()RT控制Buffer,定义了RT允许的消息。

      用到的数据组构:typedef struct api_rt_cbuf { DWORD legal_wordcount; // legal word count bits } API_RT_CBUF;legal_wordcount定义了所允许的带指定数据字的消息,对于Mode code类消息来说允许的是mode code这是一个位译码参数,当对应的位为1时允许RT响应相应的数据字消息,为0时不允许一般直接设置为legal_wordcount=0xFFFFFFFF 2021/7/165 Eph6273_RT_MessageWrite()初始化RT数据Buffer.用到的数据结构:typedef struct api_rt_mbuf_write { DWORD enable; // 中断允许位 WORD error_inj_id; // 错误注入WORD mess_data[32]; // 数据 } API_RT_MBUF_WRITE; ②、启动RT功能Eph6273_RT_StartStop()2021/7/166 •((4)、)、BM((Bus Monitor)部分)部分①、BM初始化Eph6273_BM_Init()②、触发方式Eph6273_BM_TriggerWrite()③、启动Eph6273_BM_StartStop()也可以利用Eph6273_BM_FilterWrite()设置BM监视条件,有选择的监视总线上的消息。

      监视条件是RT SubAddress、transmit/receive flag和Word code(或Mode code)的组合2021/7/167 •((5)、)、1553B 程序消息读取部分说明:程序消息读取部分说明:① 、中断方式*注册用于消息处理的回调函数:……API_INT_FIFOsIntFIFO1 …….memset(&sIntFIFO1, 0, sizeof(sIntFIFO1));sIntFIFO1.function = demo_rt_watch_function;-----------回调函数sIntFIFO1.iPriority = THREAD_PRIORITY_ABOVE_NORMAL;sIntFIFO1.dwMilliseconds = 0;sIntFIFO1.iNotification = 0; // Dont care about startup or shutdownsIntFIFO1.FilterType = EVENT_BC_MESSAGE;--------要响应的事件sIntFIFO1.FilterType |= EVENT_RT_MESSAGE;sIntFIFO1.FilterType |= EVENT_BM_MESSAGE;sIntFIFO1.mask_index=0xFFFF;2021/7/168 Eph6273_RegisterFunction( cardnum, -------设备ID0,--通道号,多通道时注意设置,如为单通道,设置为0;   &sIntFIFO1,----------------中断控制结构体(定义请参见软件手册)   1);------------------------标志位:1-注册;0—取消注册………………………………………………*回调函数基本框架。

      ………………….…………………ViInt32 _stdcall demo_rt_watch_function(ViUInt32 cardnum,ViUInt16 chnum,struct api_int_fifo *sIntFIFO){ViUInt32 tail; // FIFO Tail indexViUInt32 messno,wordcount,i=0,j=0; // Message number to be updatedViStatus hr;2021/7/169 //用于读取消息的结构请参见软件手册   API_BC_MBUF api_message; API_RT_MBUF_READ mbuf; API_BM_MBUF  bmbuf; char databuf[200],databuf1[50]; ViUInt16 k=0,count=0; ViUInt16rtaddr,subaddr,transrec,wcount; /************************************************************************ Loop on all entries in the FIFO. Get the tail pointer and extract* the FIFO entry it points to. When head == tail FIFO is empty***********************************************************************/tail = sIntFIFO->tail_index; while ( tail != sIntFIFO->head_index ){2021/7/170 //BC消息读取hr=Eph6273_BC_MessageRead(   cardnum, //  card number    chnum,         //  channel number    messno,     //  index of BC message to read   &api_message); //  user's buffer to write message into //在这里加入BC消息处理代码……………..……………………….          }2021/7/171 //RT        else  if (sIntFIFO->fifo[tail].event_type==EVENT_RT_MESSAGE)          {       messno = sIntFIFO->fifo[tail].bufferID;rtaddr = sIntFIFO->fifo[tail].rtaddress;subaddr = sIntFIFO->fifo[tail].subaddress;transrec =sIntFIFO->fifo[tail].transrec;   count=sIntFIFO->fifo[tail].wordcount;//RT消息读取    Eph6273_RT_MessageRead(cardnum,chnum,rtaddr,subaddr,              transrec,messno,&mbuf);     //在这里加入RT消息处理代码………………..………………              }2021/7/172 //BM         else  if (sIntFIFO->fifo[tail].event_type==EVENT_BM_MESSAGE)          {messno = sIntFIFO->fifo[tail].bufferID;    //BM消息读取Eph6273_BM_MessageRead(   cardnum,         //  card number (0 - based)   chnum,         //  channel number (0 - based)   messno,   &bmbuf);//在这里加入BM消息处理代码………….………….   }2021/7/173 tail++;                         // Next entrytail &= sIntFIFO->mask_index;   // Wrap the indexsIntFIFO->tail_index = tail;   // Save the index        }//whilereturn API_SUCCESS;} 2021/7/174 ②、查询方式BC:对于BC消息的查询,可直接根据要读取消息的消息号利用Eph6273_BC_MessageRead()函数读取。

      RT:可利用Eph6273_RT_ReadNextMessage()函数读取BM:可利用Eph6273_BM_ReadNextMessage ()函数读取2021/7/175 谢谢 谢谢!2021/7/176 结束语结束语若有不当之处,请指正,谢谢!若有不当之处,请指正,谢谢! 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.