消息缓冲区溢出教程

缓冲区溢出教程  时间:2021-02-19  阅读:()

1M/4M1553B用户手册版本号:V1.
4.
1目录1M/4M1553B用户手册I目录第一章概述.
11.
1关于本手册21.
2产品描述41.
2.
1特性41.
2.
2软件支持61.
2.
3一般规格61.
3产品安装61.
3.
1安装之前的准备61.
3.
2硬件安装71.
3.
3驱动安装101.
3.
4演示应用软件安装11第二章硬件说明.
122.
1功能结构图132.
2印制板示意图132.
3连接器和信号定义142.
3.
1前面板与连接器142.
3.
2点号定义152.
3.
3连接信号描述16第三章驱动程序编程接口.
183.
1动态库DLL.
193.
1.
1适用编程工具193.
1.
2需要引用的文件193.
1.
3驱动程序结构变量定义193.
2驱动程序函数功能283.
2.
1BC.
283.
2.
2RT283.
2.
3MT283.
3驱动程序函数接口说明293.
3.
1M1553_Open.
293.
3.
2M1553_Close.
293.
3.
3M1553_Reset.
293.
3.
4M1553_GetSerialNum.
303.
3.
5M1553_GetDevParInfo303.
3.
6M1553_GetDevBusInfo.
303.
3.
7M1553_AddTimeTag.
313.
3.
8M1553_SetResponseTimeout313.
3.
9M1553_SetIntMaskReg.
313.
3.
10M1553_CreateIntEvt313.
3.
11M1553_WaitIntEvt.
323.
3.
12M1553_CloseIntEvt.
323.
3.
13M1553_RTC_Cfg331M/4M1553B用户手册目录II3.
3.
14M1553_Set_RTC_Resolution.
333.
3.
15M1553_Get_RTC_Time333.
3.
16M1553_Set_RTC_Time.
333.
3.
17BC_Init343.
3.
18BC_Retry.
343.
3.
19BC_SetRetryNum.
343.
3.
20BC_SetRetryCase343.
3.
21BC_RetryChanSel.
353.
3.
22BC_StopOnError353.
3.
23BC_OnStatusSet353.
3.
24BC_WriteMsg.
363.
3.
25BC_AddEndOfListFlag363.
3.
26BC_MsgRunCtl363.
3.
27BC_GetMsgInfo.
373.
3.
28BC_WriteDataBlock.
373.
3.
29BC_Start.
383.
3.
30BC_Stop.
383.
3.
31BC_GetLastMsgId.
383.
3.
32BC_IsMSGOver.
383.
3.
33BC_GetMsgNum_Newly.
383.
3.
34BC_GetMsgCnt_Total393.
3.
35BC_ReadNextMsg.
393.
3.
36BC_ReadLastMsg.
393.
3.
37BC_GetMsg_Refresh.
403.
3.
38BC_IsRunning403.
3.
39RT_Init.
403.
3.
40RT_TxMode.
403.
3.
41RT_Select.
413.
3.
42RT_ClearTTagOnSync.
423.
3.
43RT_LoadTTagOnSync.
423.
3.
44RT_Status_Set.
423.
3.
45RT_IllegalCmd.
433.
3.
46RT_RevIllegalData433.
3.
47RT_SetIllegalCmdTable.
433.
3.
48RT_SetVectorWord443.
3.
49RT_SetBITWord443.
3.
50RT_SendMSG.
443.
3.
51RT_GetMsgNum_Rx_Newly453.
3.
52RT_GetMsgNum_Tx_Newly.
453.
3.
53RT_ReadMSG_Rx.
453.
3.
54RT_ReadMSG_Tx453.
3.
55RT_Get_Newly_RData.
463.
3.
56RT_Get_Delta_Time.
463.
3.
57MT_Init.
463.
3.
58MT_SetCmdFilterTable.
47目录1M/4M1553B用户手册III3.
3.
59MT_Start.
473.
3.
60MT_GetMsgNum_Newly.
473.
3.
61MT_ReadMSG.
473.
3.
62M1553_WorkMode.
483.
3.
63M1553_4MRateEn.
483.
3.
64M1553_PXIWorkType.
483.
3.
65M1553_PXITrigLineSelect.
493.
3.
66BC_PXIMsgRunCtl.
493.
4驱动程序函数调用步骤493.
4.
1打开板卡493.
4.
2复位板卡493.
4.
3初始化板卡493.
4.
4BC模式.
503.
4.
5RT模式513.
4.
6MT模式533.
4.
7关闭板卡533.
5消息块状态描述字533.
5.
1BC消息块状态描述字.
533.
5.
2RT消息块状态描述字.
533.
5.
3MT消息块状态描述字543.
6MIL-STD-1553B的字.
553.
6.
1命令字553.
6.
2数据字553.
6.
3状态字55第四章功能演示软件.
564.
1使用环境574.
1.
1硬件574.
1.
2操作系统574.
2开发环境574.
3使用说明574.
3.
1板卡选择窗口574.
3.
2主窗口584.
3.
3BC窗口.
594.
3.
4RT窗口604.
3.
5BM窗口.
614.
3.
6功能配置窗口624.
4操作建议711M/4M1553B用户手册1第一章概述1M/4M1553B用户手册第一章概述21.
1关于本手册本手册适用于下列产品型号:表1"1553B产品型号简表"产品型号产品描述1553-CPCI-1S1M速率,3U/6UCPCI总线,单通道,单功能15531553-CPCI-1M1M速率,3U/6UCPCI总线,单通道,多功能15531553-CPCI-2S1M速率,3U/6UCPCI总线,双通道,单功能15531553-CPCI-2M1M速率,3U/6UCPCI总线,双通道,多功能15531553-CPCI-4M1M速率,3U/6UCPCI总线,四通道,多功能15531553-PCI-1S1M速率,PCI总线,单通道,单功能15531553-PCI-1M1M速率,PCI总线,单通道,多功能15531553-PCI-2S1M速率,PCI总线,双通道,单功能15531553-PCI-2M1M速率,PCI总线,双通道,多功能15531553-PCI-4M1M速率,PCI总线,四通道,多功能15531553-PC104-1S1M速率,PC104总线,单通道,单功能15531553-PC104-1M1M速率,PC104总线,单通道,多功能15531553-PC104-2S1M速率,PC104总线,双通道,单功能15531553-PC104-2M1M速率,PC104总线,双通道,多功能15531553-104P-1S1M速率,PC104+总线,单通道,单功能15531553-104P-1M1M速率,PC104+总线,单通道,多功能15531553-104P-2S1M速率,PC104+总线,双通道,单功能15531553-PMC-1S1M速率,PMC总线,单通道,单功能15531553-PMC-1M1M速率,PMC总线,单通道,多功能15531553-PMC-2S1M速率,PMC总线,双通道,单功能15531553-PMC-2M1M速率,PMC总线,双通道,多功能15531553-PMC-4M1M速率,PMC总线,四通道,多功能15531553-PXI-1S1M速率,3UPXI总线,单通道,单功能15531553-PXI-1M1M速率,3UPXI总线,单通道,多功能15531553-PXI-2S1M速率,3UPXI总线,双通道,单功能15531553-PXI-2M1M速率,3UPXI总线,双通道,多功能15531553-PXI-4M1M速率,3UPXI总线,四通道,多功能15531553-PXI-1SBPXI总线,3U,单通道(双冗余)单功能MIL-STD-1553,4M,每个通道BC/31RT/BM三种工作模式软件可选择其中一种工作模式1553-PXI-2SBPXI总线,3U,双通道(双冗余)单功能MIL-STD-1553,4M,每个通道BC/31RT/BM三种工作模式软件可选择其中一种工作模式1553-CPCI-1SBCPCI总线,3U,单通道(双冗余)单功能MIL-STD-1553,4M,每个通第一章概述1M/4M1553B用户手册3道BC/31RT/BM三种工作模式软件可选择其中一种工作模式1553-CPCI-2SBCPCI总线,3U,双通道(双冗余)单功能MIL-STD-1553,4M,每个通道BC/31RT/BM三种工作模式软件可选择其中一种工作模式1553-PCI-1SBPCI总线,单通道(双冗余)单功能MIL-STD-1553,4M,每个通道BC/31RT/BM三种工作模式软件可选择其中一种工作模式1553-PCI-2SBPCI总线,双通道(双冗余)单功能MIL-STD-1553,4M,每个通道BC/31RT/BM三种工作模式软件可选择其中一种工作模式1553-PXI-1MBPXI总线,3U,单通道(双冗余)多功能MIL-STD-1553,4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-PXI-2MBPXI总线,3U,双通道(双冗余)多功能MIL-STD-1553,4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-PXI-4MBPXI总线,3U,四通道(双冗余)多功能MIL-STD-1553,4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-CPCI-1MBCPCI总线,3U,单通道(双冗余)多功能MIL-STD-1553,4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-CPCI-2MBCPCI总线,3U,双通道(双冗余)多功能MIL-STD-1553,4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-CPCI-4MBCPCI总线,3U,四通道(双冗余)多功能MIL-STD-1553,4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-PCI-1MBPCI总线,单通道(双冗余)多功能MIL-STD-1553,4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-PCI-2MBPCI总线,双通道(双冗余)多功能MIL-STD-1553,4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-PCI-4MBPCI总线,四通道(双冗余)多功能MIL-STD-1553,4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-PXI-1SCPXI总线,3U,单通道(双冗余)单功能MIL-STD-1553,1M/4M,每个通道BC/31RT/BM三种工作模式软件可选择其中一种工作模式1553-PXI-2SCPXI总线,3U,双通道(双冗余)单功能MIL-STD-1553,1M/4M,每个通道BC/31RT/BM三种工作模式软件可选择其中一种工作模式1553-CPCI-1SCCPCI总线,3U,单通道(双冗余)单功能MIL-STD-1553,1M/4M,每个通道BC/31RT/BM三种工作模式软件可选择其中一种工作模式1553-CPCI-2SCCPCI总线,3U,双通道(双冗余)单功能MIL-STD-1553,1M/4M,每个通道BC/31RT/BM三种工作模式软件可选择其中一种工作模式1553-PCI-1SCPCI总线,单通道(双冗余)单功能MIL-STD-1553,1M/4M,每个通道BC/31RT/BM三种工作模式软件可选择其中一种工作模式1553-PCI-2SCPCI总线,双通道(双冗余)单功能MIL-STD-1553,1M/4M,每个通道BC/31RT/BM三种工作模式软件可选择其中一种工作模式1553-PXI-1MCPXI总线,3U,单通道(双冗余)多功能MIL-STD-1553,1M/4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-PXI-2MCPXI总线,3U,双通道(双冗余)多功能MIL-STD-1553,1M/4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-PXI-4MCPXI总线,3U,四通道(双冗余)多功能MIL-STD-1553,1M/4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-CPCI-1MCCPCI总线,3U,单通道(双冗余)多功能MIL-STD-1553,1M/4M,每个1M/4M1553B用户手册第一章概述4i注意在使用该产品之前,请您详细阅读本手册各章节的内容.
1.
2产品描述1M/4M1553B是一款MIL-STD-1553总线通讯产品,其强大的功能能够满足不同用户的工业测量和自动化控制需求,良好的兼容性适用于各类系统配置.
1.
2.
1特性n32-bit,33MHzPCI/CPCI/PXI总线n单通道、双通道、四通道n每个通道为A、B双冗余总线n支持单功能、多功能n多功能产品:BC、RT和BM可同时有效n单功能产品:BC、RT或BM只能一种有效n速率为4Mbps,1Mbpsn支持32位时标,时标精度0.
25微秒(4M),时标精度1微秒(1M)n软件可设置应答超时:0~32767微秒n支持中断方式接收消息,可设置中断源n每通道1个BC(总线控制器)、31个RT(远程终端)、1个BM(总线监视器)n每通道带RTC功能(可选),分辨率可设通道BC&31RT&BM三种工作模式可同时工作1553-CPCI-2MCCPCI总线,3U,双通道(双冗余)多功能MIL-STD-1553,1M/4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-CPCI-4MCCPCI总线,3U,四通道(双冗余)多功能MIL-STD-1553,1M/4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-PCI-1MCPCI总线,单通道(双冗余)多功能MIL-STD-1553,1M/4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-PCI-2MCPCI总线,双通道(双冗余)多功能MIL-STD-1553,1M/4M,每个通道BC&31RT&BM三种工作模式可同时工作1553-PCI-4MCPCI总线,四通道(双冗余)多功能MIL-STD-1553,1M/4M,每个通道BC&31RT&BM三种工作模式可同时工作预留ISA总线预留USB总线(兼容USB1.
0,2.
0)预留PXI-E总线预留PCI-E总线第一章概述1M/4M1553B用户手册5n具有硬件定时功能n1553B功能uBC功能自动BC重试,重试通道可选,重试条件可设,重试次数可设:1~2次消息间隔时间可设,分辨率1微秒(1M),0.
25微秒(4M)每条消息可设为"事件消息"或"周期消息"支持周期消息,分辨率1毫秒(1M),0.
25毫秒(4M)在发送过程中,可停止或启动帧中部分消息支持动态修改消息数据支持详细的消息描述(消息类型、响应时间、通道信息、错误信息等)消息缓存大小:4095条消息使能RTC功能后,可自动发送RTC时钟值提供中断和查询两种消息读取方式uRT功能0~31个RT非法命令表功能单缓冲和循环缓冲数据发送方式循环缓冲数据发送方式下,子地址数据区大小Size默认4K*16bit板载内存可最多缓存4096条RT最新接收到的消息使能RTC功能后,RT自动计算BC与RT系统时差提供中断和查询两种消息读取方式uMT功能100%全监听总线消息可以通过命令字过滤表功能,筛选需要监听的消息板载内存可最多缓存131072条最近监听到的消息,采用循环缓冲接收数据查询方式读取消息uPXI背板触发:(8条PXI触发线)每通道均支持单板/多板(主卡)/多板(从卡)三种工作方式;对单板,收到主机的发送命令后,扫描1553B数据链表数据,进行发送,PXI背板1M/4M1553B用户手册第一章概述6触发线不发出触发脉冲;对多板(主卡),收到主机的发送命令后,扫描1553B数据链表数据,进行发送;指定触发的特定消息,在发送消息的同时,PXI背板触发线发出触发脉冲(脉宽100uS);对多板(从卡),收到主机的发送命令后,等待PXI背板的触发信号,触发信号到达,则启动1553B数据链表数据(指定触发的特定消息)发送一次(只支持事件消息);触发线通过软件选择(硬件上电后,默认触发线2);1.
2.
2软件支持nWindows(标配):Win2000,WinXP/Win7(X86,X64)nRTX(定制):5.
5,7.
1,8.
1,9.
0nVxworks(定制):X86-V5.
5,X86-V6.
8,PPC603-Vx5.
5,PPC603-Vx6.
8nQNX(定制):X86-V6.
5nLinux(定制):2.
4,2.
6,NeoKylin5nLabview(定制):RT1.
2.
3一般规格n物理尺寸:标准PXI/CPCI3U卡160mm*100mm*4HP,公差小于0.
2mm,带3U助拔器标准PCI卡175mm*106mm,公差小于0.
2mmPC104/PC104+标准尺寸96mm*92mm,公差小于0.
2mmn连接器:SCSI68母座(PCI/CPCI/PXI)J30J-25ZKWP7(J30J-25TJL(L=300mM))(PC104/PC104+)n工作电源:5Vn工作温度:-40℃~+85℃n相对湿度:0~95%,无凝结1.
3产品安装1.
3.
1安装之前的准备1.
在您安装产品之前请检查包装是否完好,以确定产品在运输的过程中没有遭到损坏.
如果包装发现有破损,请您马上与运输商联系.
2.
在打开包装后请检查产品以及配件的完整性.
打开产品外包装后,您应该发现如下产品n1M/4M1553B板卡n产品合格证n产品配套光盘第一章概述1M/4M1553B用户手册7n标配连接器如有规格不符,请您立刻联系我们,我们将负责维修或者更换.
3.
如果有可能,请您准备防静电工作台并佩戴防静电腕带.
如果不具备以上静电防护装备,请您接触计算机设备的导地部分,例如机箱壳金属部分,以释放身体上的静电.

现在您可以准备安装1553B板卡了.
1.
3.
2硬件安装第一步:打开板卡的防静电包装袋,取出板卡.
i注意手持板卡时,请您尽量只接触板卡的边缘.
在板卡安装到您的计算机设备之前,请将板卡平放置于防静电包装袋中,这样有利于保护板卡不受静电损伤.
取出板卡后,请您保留产品的防静电和防震包装,以便在您不使用时产品可以妥善存放.
图1-1aCPCI总线单通道1M1553B产品图片示例1M/4M1553B用户手册第一章概述8图1-1bCPCI总线四通道1M1553B产品图片示例图1-1cPCI总线单通道1M1553B产品图片示例第一章概述1M/4M1553B用户手册9图1-1dPCI总线双通道1M1553B产品图片示例图1-1ePXI总线双通道1M1553B产品图片示例1M/4M1553B用户手册第一章概述10图1-1fPCI总线四通道4M1553B总线产品图片示例图1-1gCPCI总线双通道4M1553B产品图片示例第二步:关闭计算机设备的电源,将板卡安装到您的计算机机箱内.
1553B板卡不需要进行任何的开关和跳线的设置,一切资源的配置都由系统自动完成.

第三步:将配套的连接器或连接电缆插到板卡的连接器接口上.
关于连接电缆的制作请参照2.
3.
2和2.
3.
3节的内容.
第四步:开启计算机,系统提示发现新硬件,然后安装产品的驱动.
1.
3.
3驱动安装在产品配套光盘的"DvrINF"目录中,您可以找到1M/4M1553B板卡的驱动.
第一章概述1M/4M1553B用户手册11请您按如下步骤安装产品的驱动:1、将板卡安装入目标机中的对应总线插槽中2、系统提示找到新硬件,需要安装它的软件3、点击硬件安装的下一步,确定驱动程序所在的目录请指向产品配套光盘中"DvrINF"目录(包括32位和64位驱动,系统自动识别安装)4、点击下一步,直到驱动程序安装成功在完成1553B板卡驱动安装后,您可以通过计算机系统的"设备管理器"来确认板卡驱动是否正确安装.
访问"设备管理器"可以通过"控制面板"/"系统"/"设备管理器".
如果板卡驱动正确安装,您可以在"设备管理器"的设备列表中看到1553B板卡设备项,如图1-2所示.
图1-21553B板卡在设备管理器中的设备项1.
3.
4演示应用软件安装在安装完1553B板卡驱动之后,您可以安装配套光盘中附带的功能演示软件.
执行安装程序,按系统提示,即可以完成演示软件的安装.
演示软件可以满足基本的产品测试和演示功能.
具体使用方法,您可以参考第4章节的内容1M/4M1553B用户手册12第二章硬件说明第二章硬件说明1M/4M1553B用户手册13本章描述了1553B通讯卡硬件信息,包括硬件设置、I/O连接器和信号定义等.
2.
1功能结构图图2-11553B功能结构图示例2.
2印制板示意图图2-2aCPCI总线N通道1M1553B印制板示意图1M/4M1553B用户手册第二章硬件说明14图2-2bPCI总线N通道4M1553B印制板示意图图2-2cCPCI总线N通道4M1553B印制板示意图2.
3连接器和信号定义1553B板卡采用了一个SCSI68母座用于信号输入输出.
CPCI总线产品,通过后走线连接器P2进行信号的输入输出连接.
2.
3.
1前面板与连接器图2-3描述了1553B板卡连接器在前面板的位置.
第二章硬件说明1M/4M1553B用户手册15图2-31553B前面板示意图2.
3.
2点号定义图2-4描述了1553B板卡连接器的点号定义.
图2-4连接器点号定义1M/4M1553B用户手册第二章硬件说明162.
3.
3连接信号描述1553-CPCI/PCI/PXI-4M/MB/MC/MD管脚名称说明管脚名称说明1CH1A+1通道A冗余1553总线+35CH1B+1通道B冗余1553总线+2CH1A-1通道A冗余1553总线-36CH1B-1通道B冗余1553总线-3CH2A+2通道A冗余1553总线+37CH2B+2通道B冗余1553总线+4CH2A-2通道A冗余1553总线-38CH2B-2通道B冗余1553总线-5CH3A+3通道A冗余1553总线+39CH3B+3通道B冗余1553总线+6CH3A-3通道A冗余1553总线-40CH3B-3通道B冗余1553总线-7CH4A+4通道A冗余1553总线+41CH4B+4通道B冗余1553总线+8CH4A-4通道A冗余1553总线-42CH4B-4通道B冗余1553总线-1553-CPCI/PCI/PXI-2M/MB/MC/MD、1553-CPCI/PCI/PXI-2S/SB/SC/SD管脚名称说明管脚名称说明1CH1A+1通道A冗余1553总线+35CH1B+1通道B冗余1553总线+2CH1A-1通道A冗余1553总线-36CH1B-1通道B冗余1553总线-3CH2A+2通道A冗余1553总线+37CH2B+2通道B冗余1553总线+4CH2A-2通道A冗余1553总线-38CH2B-2通道B冗余1553总线-5396407418421553-CPCI/PCI/PXI-1M/MB/MC/MD、1553-CPCI/PCI/PXI-1S/SB/SC/SD管脚名称说明管脚名称说明1CH1A+1通道A冗余1553总线+35CH1B+1通道B冗余1553总线+2CH1A-1通道A冗余1553总线-36CH1B-1通道B冗余1553总线-337438539640741842第二章硬件说明1M/4M1553B用户手册17CPCI后走线4M1553B信号定义:输入/输出接口:J2连接器型号:P2连接器1553-CPCI/PCI/PXI-4/(M/S)/(B/C/D)-01引脚定义说明引脚定义说明引脚定义说明引脚定义说明引脚定义说明A1B1C1D1E1A2B2C2D2E2A3B3C3D3E3A4B4C4D4E4A5B5C5D5E5A6B6C6D6E6A7B7C7D7E7A8BUS1_A-B8BUS1_A+C8D8BUS1_B-E8BUS1_B+A9BUS1_A-B9BUS1_A+C9D9BUS1_B-E9BUS1_B+A10BUS2_A-B10BUS2_A+C10D10BUS2_B-E10BUS2_B+A11BUS2_A-B11BUS2_A+C11D11BUS2_B-E11BUS2_B+A12BUS3_A-B12BUS3_A+C12BUS3_A+D12BUS3_B-E12BUS3_B+A13BUS3_A-B13C13D13BUS3_B-E13BUS3_B+A14B14C14D14E14A15B15C15D15E15A16B16C16D16E16A17B17C17D17E17A18BUS0_A-B18BUS0_A+C18D18BUS0_B-E18BUS0_B+A19BUS0_A-B19BUS0_A+C19D19BUS0_B-E19BUS0_B+A20B20C20D20E20A21B21C21D21E21A22B22C22D22E22名称说明BUSn_A+,(n=0,1,2,3)1-4通道A冗余1553总线+BUSn_A-,(n=0,1,2,3)1-4通道A冗余1553总线-BUSn_B-,(n=0,1,2,3)1-4通道B冗余1553总线+BUSn_B-,(n=0,1,2,3)1-4通道B冗余1553总线-1M/4M1553B用户手册18第三章驱动程序编程接口第三章驱动程序编程接口1M/4M1553B用户手册19本章主要讲述了如何使用1553B板卡的驱动程序接口,为用户编程提供参考.
1553B驱动程序提供了丰富的接口函数,能满足用户对板卡的操作需求;具有良好的兼容性,能适用于多种编程环境;操作简单方便,可以大大缩短用户的开发周期.
3.
1动态库DLL1553B驱动程序接口函数按ANSIC标准编写,以动态链接库DLL形式提供给用户.
您可以在1553B板卡配套光盘中获取.
3.
1.
1适用编程工具运行环境:Windows:Win2000,WinXP/Win7(X86,X64)操作系统开发工具:nVisualC++nVisualBasicnC++BuildernDelphinLabviewnLabwindows/CVI3.
1.
2需要引用的文件当您进行程序开发时,需要引用下列文件:n库文件:MIL1553B.
dll和MIL1553B.
libn函数库头文件:MIL1553B_lib.
h3.
1.
3驱动程序结构变量定义3.
1.
3.
1BC控制字结构typedefstruct_CONTROL_WORD_STRUCT_{BOOLRetry;BYTEChanSel;BYTEMsgFmt;}CONTROL_WORD_STRUCT;结构参数说明:Retry:消息重试允许位TRUE:允许消息重试ChanSel:消息发送时的通道选择0:ChannelB1:ChannelAMsgFmt:设置消息的类型,消息的类型设置见表3-11M/4M1553B用户手册第三章驱动程序编程接口20表3-1消息类型设置D7~D3D2D1D0消息类型0000BC-to-RT(如果T/=0)或者RT-to-BC(如果T/=1)0001RT-to-RT0010Broadcast0011RT-to-RTs(Broadcast)0100ModeCode0101保留0110BroadcastModeCode0111保留3.
1.
3.
2BC消息描述符结构typedefstruct_MSG_DESCRIPTOR_STRUCT_{WORDCmdWord1;WORDCmdWord2;WORDDatablk[32];WORDStatusWord1;WORDStatusWord2;}MSG_DESCRIPTOR_STRUCT;结构参数说明:CmdWord1:命令字1CmdWord2:命令字2,在RT-RT的消息类型时为发送命令字,此时命令字1就为接收命令字Datablk:消息的数据字StatusWord1:状态字1StatusWord2:状态字2,在RT-RT的消息类型时为接收状态字,此时状态字1为发送状态字3.
1.
3.
3BC消息发送结构typedefstruct_SMSG_STRUCT_{CONTROL_WORD_STRUCTCtlWord;MSG_DESCRIPTOR_STRUCTMsgBlock;WORDGap;WORDPeriod;WORDInitPeriod;BOOLRun;}SMSG_STRUCT;第三章驱动程序编程接口1M/4M1553B用户手册21结构参数说明:CtlWord:BC控制字结构变量MsgBlock:BC消息描述结构变量Gap:消息间间隔,分辨率0.
25μs(4M),分辨率1μs(1M)Period:消息发送周期,分辨率0.
25ms(4M),分辨率1ms(4M)(Period=0,为事件消息;否则为周期消息)InitPeriod:消息发送周期的初始值,,单位0.
25ms(4M),单位1ms(1M).
可以调整消息运行的初始点Run:消息的初始状态:TRUE:在运行BC_Start函数后,本消息马上会被执行FALSE:在运行BC_Start函数后,BC会跳过该消息,消息不会被执行,直到用户调用函数BC_MsgRunCtl来启动消息的执行.
3.
1.
3.
4BC消息接收结构typedefstruct_RMSG_STRUCT_{WORDBSW;DWORDTimeTag;MSG_DESCRIPTOR_STRUCTMsgBlock;}RMSG_STRUCT;结构参数说明:BSW:BlockStatusWord,BC消息块状态描述字,详细说明请参照"消息块状态描述字"部分TimeTag:时标,分辨率1μs;在非时标模式下,该项无意义,为0MsgBlock:消息描述符结构变量,用来存放消息的命令字、状态字、数据字.

3.
1.
3.
5BC消息重试结构typedefstruct_RETRY_CASE_STRUCT_{BOOLRetry_IF_MSGErr;BOOLRetry_IF_StatusSet;}RETRY_CASE_STRUCT;结构参数说明:除了应答超时、格式错误(状态字地址错误,数据格式错误,同步字错误等)消息会重试外,以下2种情况也可使消息重试:Retry_IF_MSGErr:如果消息传输出错Retry_IF_StatusSet:RT的状态字低11位被置位1M/4M1553B用户手册第三章驱动程序编程接口223.
1.
3.
6BC消息重试通道选择typedefstruct_RETRY_CHANNEL_SEL_STRUCT_{BOOLAlter_Chan_On_Retry1;BOOLAlter_Chan_On_Retry2;}RETRY_CHANNEL_SEL_STRUCT;结构参数说明:Alter_Chan_On_Retry1:第一次重试改变通道TRUE:如果消息第一次传输是在通道A,那么第一次重试改为B通道传输;FALSE:不改变通道Alter_Chan_On_Retry2:第二次重试改变通道TRUE:如果消息第一次传输是在通道A,那么第二次重试改为B通道传输;FALSE:不改变通道3.
1.
3.
7BC消息和帧处理当状态字置位typedefstruct_STATUS_SET_STRUCT_{BOOLStop_On_MSG;BOOLStop_On_Frame;}STATUS_SET_STRUCT;结构参数说明:Stop_On_MSG:消息停止执行TRUE:如果状态字中低11位某位被置位,在处理完本条消息后将停止消息处理Stop_On_Frame:帧停止执行TRUE:如果状态字中低11位某位被置位,在处理完本帧后将停止帧处理3.
1.
3.
8BC消息处理当消息出错typedefstruct_STOP_ON_ERR_STRUCT_{BOOLMSG_STOP_ON_ERR;BOOLFRAME_STOP_ON_ERR;}STOP_ON_ERR_STRUCT;结构参数说明:第三章驱动程序编程接口1M/4M1553B用户手册23MSG_STOP_ON_ERR:出错时,停止消息执行TRUE:消息出错(包括字错误、帧格式错误、超时错误)时停止消息处理,但如果重试使能,那么先重试,重试还有错误再停止FRAME_STOP_ON_ERR:出错时,停止帧执行TRUE:在自动重发模式下,出错时消息帧停止3.
1.
3.
9RT状态字设置typedefstruct_RT_STATUS_WORD_STRUCT_{BOOLTerminalFlag;BOOLSubSystemFlag;BOOLServiceReq;BOOLBusy;BOOLDBusCtl;}RT_STATUS_WORD_STRUCT;结构参数说明:TerminalFlag:如果该位为真,RT的状态字中的"TerminalFlag"位将会置1SubSystemFlag:如果该位为真,RT的状态字中的"SubsystemFlag"位将会置1ServiceReq:如果该位为真,RT的状态字中的"ServiceRequest"位将会置1Busy:如果该位为真,RT的状态字中的"Busy"位将会置1DbusCtl:如果该位为真,RT的状态字中的"DynamicBusControlAcceptance"位将会置13.
1.
3.
10RT非法命令表结构typedefstruct_RT_Illegal_CMD_TABLE_STRUCT_{DWORDCmdTable[32][2][32];}RT_Illegal_CMD_TABLE_STRUCT;结构参数说明:CmdTable[I][J][K]:一个三维的RT非法命令表,一维坐标I代表RT的地址,二位坐标J代表发送或接收位(J=0,代表接收J=1,代表发送),三维坐标K代表RT的子地址.
数组的值的定义如下:BITSDESCRIPTIOND01:数据量为32的命令字非法0:合法D11:数据量为01的命令字非法0:合法D21:数据量为02的命令字非法0:合法D31:数据量为03的命令字非法0:合法1M/4M1553B用户手册第三章驱动程序编程接口24D41:数据量为04的命令字非法0:合法D51:数据量为05的命令字非法0:合法D61:数据量为06的命令字非法0:合法D71:数据量为07的命令字非法0:合法D81:数据量为08的命令字非法0:合法D91:数据量为09的命令字非法0:合法D101:数据量为10的命令字非法0:合法D111:数据量为11的命令字非法0:合法D121:数据量为12的命令字非法0:合法D131:数据量为13的命令字非法0:合法D141:数据量为14的命令字非法0:合法D151:数据量为15的命令字非法0:合法D161:数据量为16的命令字非法0:合法D171:数据量为17的命令字非法0:合法D181:数据量为18的命令字非法0:合法D191:数据量为19的命令字非法0:合法D201:数据量为20的命令字非法0:合法D211:数据量为21的命令字非法0:合法D221:数据量为22的命令字非法0:合法D231:数据量为23的命令字非法0:合法D241:数据量为24的命令字非法0:合法D251:数据量为25的命令字非法0:合法D261:数据量为26的命令字非法0:合法D271:数据量为27的命令字非法0:合法D281:数据量为28的命令字非法0:合法D291:数据量为29的命令字非法0:合法D301:数据量为30的命令字非法0:合法D311:数据量为31的命令字非法0:合法Eg:CmdTable[3][1][20]=0x00000001表示RT地址为3,RT的子地址为20,发送32个数据的命令为非法的.
3.
1.
3.
11RT数据发送缓冲模式选择typedefstruct_RT_TX_MODE_STRUCT_{BYTETxMode[32][32];}RT_TX_MODE_STRUCT;结构参数说明:TxMode[I][J]:一个二维的模式设置数组,数组的行坐标代表RT的地址,数组的列坐标代表RT的子地址,数组的值为模式设置位,取值0为单缓冲模式,此种模式下RT发送数据都从发送数第三章驱动程序编程接口1M/4M1553B用户手册25据区起始点读取数据发送;取值1为循环缓冲模式,此种模式下RT顺序从发送区读取数据发送,直到发送数据区指针到达设定的边界时,发送指针自动回到起始位置继续读数用于发送.

Eg:TxMode[1][6]=1表示RT地址为1,子地址为6的远程终端的发送采用循环缓冲的模式3.
1.
3.
12MT命令字过滤表结构typedefstruct_MT_CMD_FILTER_TABLE_STRUCT_{DWORDFilter[32][2];}MT_CMD_FILTER_TABLE_STRUCT;结构参数说明:Filter[I][J]:一个二维的命令字过滤表,数组的行坐标I代表待监测的远程终端地址,数组的列坐标代表发送或接收位(J=0:接收J=1:发送),数组的值定义如下:BITSDESCRIPTIOND01:方式代码被监测0:不被监测,消息丢掉D11:子地址为01的远程终端被监测0:不被监测,消息丢掉D21:子地址为02的远程终端被监测0:不被监测,消息丢掉D31:子地址为03的远程终端被监测0:不被监测,消息丢掉D41:子地址为04的远程终端被监测0:不被监测,消息丢掉D51:子地址为05的远程终端被监测0:不被监测,消息丢掉D61:子地址为06的远程终端被监测0:不被监测,消息丢掉D71:子地址为07的远程终端被监测0:不被监测,消息丢掉D81:子地址为08的远程终端被监测0:不被监测,消息丢掉D91:子地址为09的远程终端被监测0:不被监测,消息丢掉D101:子地址为10的远程终端被监测0:不被监测,消息丢掉D111:子地址为11的远程终端被监测0:不被监测,消息丢掉D121:子地址为12的远程终端被监测0:不被监测,消息丢掉D131:子地址为13的远程终端被监测0:不被监测,消息丢掉D141:子地址为14的远程终端被监测0:不被监测,消息丢掉D151:子地址为15的远程终端被监测0:不被监测,消息丢掉D161:子地址为16的远程终端被监测0:不被监测,消息丢掉D171:子地址为17的远程终端被监测0:不被监测,消息丢掉D181:子地址为18的远程终端被监测0:不被监测,消息丢掉D191:子地址为19的远程终端被监测0:不被监测,消息丢掉D201:子地址为20的远程终端被监测0:不被监测,消息丢掉D211:子地址为21的远程终端被监测0:不被监测,消息丢掉D221:子地址为22的远程终端被监测0:不被监测,消息丢掉D231:子地址为23的远程终端被监测0:不被监测,消息丢掉D241:子地址为24的远程终端被监测0:不被监测,消息丢掉D251:子地址为25的远程终端被监测0:不被监测,消息丢掉1M/4M1553B用户手册第三章驱动程序编程接口26D261:子地址为26的远程终端被监测0:不被监测,消息丢掉D271:子地址为27的远程终端被监测0:不被监测,消息丢掉D281:子地址为28的远程终端被监测0:不被监测,消息丢掉D291:子地址为29的远程终端被监测0:不被监测,消息丢掉D301:子地址为30的远程终端被监测0:不被监测,消息丢掉D311:方式代码被监测0:不被监测,消息丢掉3.
1.
3.
13中断屏蔽寄存器结构typedefstruct_INTERRUPT_MASK_REGISTER_STRUCT_{BOOLBC_MsgOver;BOOLBC_STOP;BOOLRT_RMsg;BOOLRT_TMsg;}INTERRUPT_MASK_REGISTER_STRUCT;结构参数说明:BC_MsgOver:BC消息结束中断使能位TRUE:BC处理完一条消息时,将会触发一个中断BC_STOP:BC消息出错停止中断使能位TRUE:BC消息出错停止时,将会触发一个中断RT_RMsg:RT接收到一条接收数据消息中断使能位TRUE:RT接收到一条接收数据消息时,将触发中断RT_TMsg:RT接收到一条发送数据消息中断使能位TRUE:RT接收到一条发送数据消息时,将触发中断3.
1.
3.
14RTC配置寄存器typedefstruct_RTC_CFG_STRUCT_{BOOLBstRTCEn;BOOLNonBstRTCEn;WORDSubAddr;}RTC_CFG_STRUCT;结构参数说明:BstRTCEn:RTC消息类型是否为BC到RT的广播消息TRUE:BC到RT的广播消息为RTC消息类型NonBstRTCEn:RTC消息类型是否为BC到RT的非广播消息TRUE:BC到RT的非广播消息为RTC消息类型SubAddr:用于RTC功能的消息命令字中子地址设置第三章驱动程序编程接口1M/4M1553B用户手册273.
1.
3.
15板卡句柄结构typedefstruct_ST_DEVDSC_{HDEVICEhCard;BYTECardId;}ST_DEVDSC,*HDEVICE;3.
1.
3.
16板卡设备参数信息结构typedefstruct_ST_DEVPARST_{DWORDdwCardType;DWORDdwhwVersion;DWORDdwdvrVersion;DWORDdwlibVersion;DWORDdwBoardID;DWORDdwSN;DWORDdwChMax;}ST_DEVPARST,*pST_DEVPARST;dwCardType:板卡类型如0x1214表示M1553B-214,详见表1"M1553B产品型号简表"dwhwVersion:硬件版本号dwdvrVersion:驱动版本号dwlibVersion:库版本号注:高16位为主版本号,低16位为次版本号,版本号编码方式为BCD码dwBoardID:拨码开关ID(板卡不支持)dwSN:序列号dwChMax:通道数目3.
1.
3.
17板卡设备总线信息结构typedefstruct_ST_DEVBUSST_{WORDwdDevID;WORDwdVenID;WORDwdSubDevID;WORDwdSubVenID;WORDwdBusNum;WORDwdDevNum;WORDwdFunNum;WORDwdIrqNum;ULONGdwMemBase[6][2];}ST_DEVBUSST,*pST_DEVBUSST;wdDevID:设备DevIDwdVenID:设备VenIDwdSubDevID:设备SubDevID1M/4M1553B用户手册第三章驱动程序编程接口28wdSubVenID:设备SubVenIDwdBusNum:总线号wdDevNum:总线号wdFunNum:功能号wdIrqNum:中断号dwMemBase:资源信息[1]表示起始地址,[0]表示长度(长度为0表示没有)3.
2驱动程序函数功能函数功能主体分三类,分别是BC、RT和MT3.
2.
1BCn自动BC重试n重试通道可选n重试条件可设n重试次数可设:1~2次n支持单条消息的定时发送,分辨率0.
25ms(4M),分辨率1ms(1M)n消息间隔时间可设,分辨率0.
25μs(4M),分辨率1μs(1M)n中断和查询两种消息接收方式n支持消息的顺序读取和刷新读取n4K*48*16bit数据空间n4K*8*16bit命令字空间n中断方式下可缓存4096条最新消息n查询方式下最少可缓存4096条最新消息n采用链表的方式来管理消息,可以动态插入消息n可修改运行中的BC待发送的数据字3.
2.
2RTn0~31个RTn非法命令表功能n单缓冲和循环缓冲数据发送方式,每个子RT的数据缓存可到4K*16bitn循环缓冲数据接收方式,缓冲区大小:1M*16bitn中断和查询两种消息接收方式n中断方式下可缓存4K条发送数据消息及4K条接收数据消息n查询方式下可缓存4K条发送数据消息及4K条接收数据消息n运行中可随时读取RT下的某个子RT接收到最新数据nRTC功能3.
2.
3MTn命令字过滤功能n采用循环缓冲接收数据第三章驱动程序编程接口1M/4M1553B用户手册29n1M*16bit的数据区n可缓存128K条最近监控到的消息n查询方式来接收数据消息3.
3驱动程序函数接口说明本节内容详细描述了API函数的调用原型,函数功能、参数说明和返回值.
3.
3.
1M1553_Open函数原型:BOOL__stdcallM1553_Open(OUTHDEVICE*phM1553,INBYTECardId);函数功能:找板卡,并分配板卡资源参数说明:phM1553:板卡句柄的指针CardId:板卡编号,取值范围为0~7(若工控机中同时插8块1553B板卡,板卡的编号按一定的顺序(跟主板有关)依次编号0,1,…,7;若PC机中同时只插一块板,板卡编号为0)返回值:若板卡打开成功,函数返回值为真;否则为假3.
3.
2M1553_Close函数原型:BOOL__stdcallM1553_Close(INHDEVICEhM1553);函数功能:关闭板卡,释放板卡资源参数说明:hM1553:板卡的句柄返回值:若板卡关闭成功,函数返回值为真;否则为假3.
3.
3M1553_Reset函数原型:BOOL__stdcallM1553_Reset(INHDEVICEhM1553);函数功能:板卡复位函数参数说明:hM1553:板卡的句柄返回值:若板卡复位成功,函数返回值为真;否则为假板卡复位执行的操作为:BC停止所有RT不使能MT不使能时间标签模式不使能BC消息到达标志被清除1M/4M1553B用户手册第三章驱动程序编程接口30BC两次重试不改变通道BC重试不使能BC消息在MessageError和RT状态字低11位置位时不重试RT状态字低11位置位后BC消息和帧发送不停止消息出错时BC消息和帧发送不停止应答超时设置清零RT非法命令表不使能RT接收非法命令数据所有的中断不使能其余的设置保持不变3.
3.
4M1553_GetSerialNum函数原型:void__stdcallM1553_GetSerialNum(INHDEVICEhM1553,OUTDWORD*SN);函数功能:获取板卡序列号参数说明:hM1553:板卡的句柄SN:存放板卡序列号返回值:空3.
3.
5M1553_GetDevParInfo函数原型:BOOL__stdcallM1553_GetDevParInfo(INHDEVICEhM1553,OUTpST_DEVPARSTpstParinfo)函数功能:读取板卡的硬件参数信息参数说明:hDevice:板卡的句柄pstParinfo:设备参数结构信息的结构体指针返回值:若操作成功,返回值为真(TRUE=1);否则假(FALSE=0)3.
3.
6M1553_GetDevBusInfo函数原型:BOOL__stdcallM1553_GetDevBusInfo(INHDEVICEhM1553,OUTpST_DEVBUSSTpstBusinfo)函数功能:读取板卡的硬件参数信息参数说明:hDevice:板卡的句柄pstBusinfo:设备总线结构信息的结构体指针第三章驱动程序编程接口1M/4M1553B用户手册31返回值:若操作成功,返回值为真(TRUE=1);否则假(FALSE=0)3.
3.
7M1553_AddTimeTag函数原型:BOOL__stdcallM1553_AddTimeTag(INHDEVICEhM1553,INBYTEChanNo,INBOOLEnable);函数功能:启动或停止时间标签模式参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Enable:时标模式使能位TRUE:时标使能返回值:若时标模式设置成功,函数返回值为真;否则为假3.
3.
8M1553_SetResponseTimeout函数原型:BOOL__stdcallM1553_SetResponseTimeout(INHDEVICEhM1553,INBYTEChanNo,INWORDTimeOut);函数功能:设置应答超时参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3TimeOut:超时时间设置寄存器,分辨率0.
5S返回值:若设置成功,返回值为真;否则为假.
3.
3.
9M1553_SetIntMaskReg函数原型:BOOL__stdcallM1553_SetIntMaskReg(INHDEVICEhM1553,INBYTEChanNo,ININTERRUPT_MASK_REGISTER_STRUCT*IntReg);函数功能:设置中断屏蔽寄存器参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3IntReg:中断屏蔽寄存器结构指针变量返回值:若中断屏蔽寄存器设置成功,函数返回值为真;否则为假3.
3.
10M1553_CreateIntEvt函数原型:BOOL__stdcallM1553_CreateIntEvt(INHDEVICEhM1553,1M/4M1553B用户手册第三章驱动程序编程接口32INBYTEChanNo,OUTHANDLE*phEvt);函数功能:创建中断触发事件.
参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3phEvt:事件句柄指针返回值:若事件设置成功,函数返回值为真;否则为假内部部分代码*phEvt=CreateEvent(NULL,FALSE/*自动事件*/,FALSE/*开始无信号*/,NULL);3.
3.
11M1553_WaitIntEvt函数原型:BYTE__stdcallM1553_WaitIntEvt(INHDEVICEhM1553,INBYTEChanNo,INHANDLEhEvt);函数功能:获取最近被处理消息中断事件,驱动通过该事件来通知应用程序.

参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3hEvt:事件句柄返回值:最新中断事件状态D7D6D5D4D3D2D1D0无效无效无效无效RTRINT1有事件0无事件RTTINT1有事件0无事件BCMsgInt1有事件0无事件BCStopInt1有事件0无事件内部部分代码WaitForSingleObject(hEvt,INFINITE);3.
3.
12M1553_CloseIntEvt函数原型:BOOL__stdcallM1553_CloseeIntEvt(INHDEVICEhM1553,INBYTEChanNo,INHANDLEhEvt);函数功能:关闭中断触发事件.
参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3phEvt:事件句柄返回值:若事件设置成功,函数返回值为真;否则为假内部部分代码CloseHandle(hEvt);第三章驱动程序编程接口1M/4M1553B用户手册333.
3.
13M1553_RTC_Cfg函数原型:BOOL__stdcallM1553_RTC_Cfg(INHDEVICEhM1553,INBYTEChanNo,INRTC_CFG_STRUCT*pRTCCfg);函数功能:设置实时时钟RTC配置寄存器参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3PRTCCfg:RTC配置寄存器结构指针返回值:若实时时钟配置寄存器设置成功,函数返回值为真;否则为假3.
3.
14M1553_Set_RTC_Resolution函数原型:BOOL__stdcallM1553_Set_RTC_Resolution(INHDEVICEhM1553,INBYTEChanNo,INBYTEResolution);函数功能:设置RTC时间分辨率参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Resolution:RTC时间分辨率设置寄存器,单位0.
25μs(4M),单位1μs(1M)返回值:若RTC时间分辨率设置成功,函数返回值为真;否则为假3.
3.
15M1553_Get_RTC_Time函数原型:__int64__stdcallM1553_Get_RTC_Time(INHDEVICEhM1553,INBYTEChanNo);函数功能:获取当前RTC计数器的值参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:函数返回值为当前RTC计数器的值,低48位有效,分辨率可由函数M1553_Set_RTC_Resolution设置3.
3.
16M1553_Set_RTC_Time函数原型:void__stdcallM1553_Set_RTC_Time(INHDEVICEhM1553,INBYTEChanNo,IN__int64Time);函数功能:设置当前RTC计数器的值参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~31M/4M1553B用户手册第三章驱动程序编程接口34Time:当前RTC计数器的值,低48位有效,分辨率可由函数M1553_Set_RTC_Resolution设置返回值:空3.
3.
17BC_Init函数原型:BOOL__stdcallBC_Init(INHDEVICEhM1553,INBYTEChanNo);函数功能:初始化总线控制器参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:若BC初始化成功,函数返回值为真;否则为假3.
3.
18BC_Retry函数原型:BOOL__stdcallBC_Retry(INHDEVICEhM1553,INBYTEChanNo,INBOOLEnable);函数功能:BC重试使能参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Enable:重试使能位TRUE:使能BC重试返回值:若BC消息重试设置成功,函数返回值为真;否则为假3.
3.
19BC_SetRetryNum函数原型:void__stdcallBC_SetRetryNum(INHDEVICEhM1553,INBYTEChanNo,INBYTENum);函数功能:设置BC重试的次数参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Num:BC重试次数设置0---重试1次1---重试2次返回值:空3.
3.
20BC_SetRetryCase函数原型:BOOL__stdcallBC_SetRetryCase(INHDEVICEhM1553,INBYTEChanNo,INRETRY_CASE_STRUCT*Retry);函数功能:设置BC重试的条件第三章驱动程序编程接口1M/4M1553B用户手册35参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Retry:BC消息重试结构指针变量返回值:若BC消息重试的条件设置成功,函数返回值为真;否则为假3.
3.
21BC_RetryChanSel函数原型:BOOL__stdcallBC_RetryChanSel(INHDEVICEhM1553,INBYTEChanNo,INRETRY_CHANNEL_SEL_STRUCT*ChanSel);函数功能:设置BC重试通道选择参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3ChanSel:BC消息重试通道选择结构指针变量返回值:若BC消息重试通道选择设置成功,函数返回值为真;否则为假3.
3.
22BC_StopOnError函数原型:BOOL__stdcallBC_StopOnError(INHDEVICEhM1553,INBYTEChanNo,INSTOP_ON_ERR_STRUCT*Err);函数功能:BC停止消息处理参数说明:hM1553:板卡的句柄ChanNo:通道号,取值0~1Err:结构指针,当RT状态字出现MessageError时,BC将停止消息或帧的处理返回值:若函数设置成功,返回值为真;否则为假3.
3.
23BC_OnStatusSet函数原型:BOOL__stdcallBC_OnStatusSet(INHDEVICEhM1553,INBYTEChanNo,INSTATUS_SET_STRUCT*Status);函数功能:当RTSTATUS_SET置为时,BC将停止消息或帧的处理功能设置参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Status:结构指针返回值:若函数设置成功,返回值为真;否则为假1M/4M1553B用户手册第三章驱动程序编程接口363.
3.
24BC_WriteMsg函数原型:BOOL__stdcallBC_WriteMsg(INHDEVICEhM1553,INBYTEChanNo,INWORDMsgId,SMSG_STRUCT*Msg);函数功能:配置BC消息:包块消息块的控制字、命令字、数据字、消息间的间隔、消息的格式、消息的类型(周期消息和事件消息)及消息的周期等参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3MsgId:消息的id号,从0开始编号,到4094结束.
由于消息是顺序执行的,消息链表中的消息编号必须连续.
并且事件消息和周期消息统一编号.
消息链表必须有一个结束符.
由函数BC_AddEndOfListFlag产生.
Msg:消息描述符结构变量返回值:如果MsgId或ChanNo取值超出范围,函数返回值为假;否则为真.
3.
3.
25BC_AddEndOfListFlag函数原型:BOOL__stdcallBC_AddEndOfListFlag(INHDEVICEhM1553,INBYTEChanNo,INWORDMsgId);函数功能:添加消息链表结束符参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3MsgId:结束符的位置,取值0~4095.
例:消息链表中最后一条消息的id为9,则消息结束符的id为10返回值:如果MsgId或ChanNo取值超出范围,函数返回值为假;否则为真.
3.
3.
26BC_MsgRunCtl函数原型:BOOL__stdcallBC_MsgRunCtl(INHDEVICEhM1553,INBYTEChanNo,INWORDMsgId,INBOOLRun);函数功能:BC消息运行控制函数参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3MsgId:消息的id号,从0开始编号,到4094结束.
Run:消息运行控制位:第三章驱动程序编程接口1M/4M1553B用户手册37TRUE---当BC已经开始运行时(BC的运行由函数BC_Start启动),该为置位会使消息编号为MsgId的消息开始执行FALSE:当BC已经开始运行时(BC的运行由函数BC_Start启动),该位的清零会使消息编号为MsgId的消息不再执行返回值:如果参数MsgId超出范围,函数返回值为假;否则为真;如果写BC消息运行控制失败,函数返回值为假;否则为真.
3.
3.
27BC_GetMsgInfo函数原型:BOOL__stdcallBC_GetMsgInfo(INHDEVICEhM1553,INBYTEChanNo,INWORDMsgId,OUTSMSG_STRUCT*Msg);函数功能:获取消息链表中消息配置信息参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3MsgId:消息id号,取值0~4094Msg:消息描述符结构变量,存放消息的配置信息返回值:如果MsgId或ChanNo取值超出范围,函数返回值为假;否则为真.
3.
3.
28BC_WriteDataBlock函数原型:BOOL__stdcallBC_WriteDataBlock(INHDEVICEhM1553,INBYTEChanNo,INWORDMsgId,INBYTEWordCnt,INWORD*DataBuf);函数功能:修改运行中的BC发送的数据字参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3MsgId:消息id号,取值0~4094WordCnt:要写入的数据字的数量,取值0~32DataBuf:存放待写入的数据字返回值:如果MsgId或ChanNo取值超出范围或待修改的消息不是BC->RT的消息,函数返回值为假;如果修改运行中的BC发送的数据字失败,函数返回值为假;否则为真.
1M/4M1553B用户手册第三章驱动程序编程接口383.
3.
29BC_Start函数原型:void__stdcallBC_Start(INHDEVICEhM1553,INBYTEChanNo);函数功能:BC开始处理消息.
当BC数据传输的过程中出错时,BC将自动停止.
参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:空3.
3.
30BC_Stop函数原型:void__stdcallBC_Stop(INHDEVICEhM1553,INBYTEChanNo);函数功能:BC停止消息处理参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:空3.
3.
31BC_GetLastMsgId函数原型:void__stdcallBC_GetLastMsgId(INHDEVICEhM1553,INBYTEChanNo,OUTWORD*MsgId);函数功能:获取最近被处理消息的Id参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3MsgId:存放消息id号返回值:空3.
3.
32BC_IsMSGOver函数原型:BOOL__stdcallBC_IsMSGOver(INHDEVICEhM1553,INBYTEChanNo);函数功能:查询BC是否有新消息参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:如果BC有新消息,函数返回值为真;否则为假3.
3.
33BC_GetMsgNum_Newly函数原型:WORD__stdcallBC_GetMsgNum_Newly(INHDEVICEhM1553,INBYTEChanNo);第三章驱动程序编程接口1M/4M1553B用户手册39函数功能:查询BC新消息数目(用户还未来得及接收的新消息)参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:函数返回新消息的数目本函数在中断和查询方式下均可使用3.
3.
34BC_GetMsgCnt_Total函数原型:DWORD__stdcallBC_GetMsgCnt_Total(INHDEVICEhM1553,INBYTEChanNo);函数功能:查询BC从板卡复位到目前处理的总的消息数(包括用户还未来得及接收的新消息)参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:函数返回消息的总条数本函数仅在中断屏蔽寄存器中"BC_MsgOver"为TRUE时有效3.
3.
35BC_ReadNextMsg函数原型:void__stdcallBC_ReadNextMsg(INHDEVICEhM1553,INBYTEChanNo,OUTWORD*MsgId,OUTRMSG_STRUCT*Msg);函数功能:用户按BC处理消息的先后顺序依次读取消息参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3MsgId:输出参数,存放消息的id号Msg:存放读取到的消息返回值:空本函数在中断和查询方式下均可使用3.
3.
36BC_ReadLastMsg函数原型:void__stdcallBC_ReadLastMsg(INHDEVICEhM1553,INBYTEChanNo,OUTWORD*MsgId,OUTRMSG_STRUCT*Msg);函数功能:用户读取BC最近处理的那条消息参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3MsgId:输出参数,存放消息的id号1M/4M1553B用户手册第三章驱动程序编程接口40Msg:存放读取到的消息返回值:空本函数在中断和查询方式下均可使用3.
3.
37BC_GetMsg_Refresh函数原型:BOOL__stdcallBC_GetMsg_Refresh(INHDEVICEhM1553,INBYTEChanNo,INWORDMsgId,OUTRMSG_STRUCT*Msg);函数功能:用户指定消息id来读取BC消息参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3MsgId:输入参数,存放待读取消息的id号Msg:存放读取到的消息返回值:如果消息号为MsgId的消息处理完毕,函数返回值为真;否则为假本函数仅在中断屏蔽寄存器中"BC_MsgOver"为TRUE时有效3.
3.
38BC_IsRunning函数原型:BOOL__stdcallBC_IsRunning(INHDEVICEhM1553,INBYTEChanNo);函数功能:获取BC运行状态参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:如果BC运行中,函数返回值为真;否则为假3.
3.
39RT_Init函数原型:BOOL__stdcallRT_Init(INHDEVICEhM1553,INBYTEChanNo);函数功能:初始化远程终端参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:若RT初始化成功,函数返回值为真;否则为假3.
3.
40RT_TxMode函数原型:void__stdcallRT_TxMode(INHDEVICEhM1553,INBYTEChanNo,INRT_TX_MODE_STRUCT*TxMode);函数功能:设置数据发送的模式第三章驱动程序编程接口1M/4M1553B用户手册41参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3TxMode:数据发送模式结构指针变量返回值:空3.
3.
41RT_Select函数原型:BOOL__stdcallRT_Select(INHDEVICEhM1553,INBYTEChanNo,INDWORDRTEnable);函数功能:RT使能函数参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3RTEnable:RT使能寄存器,定义如下:数据位描述D01:地址为0的远程终端使能0:不使能D11:地址为1的远程终端使能0:不使能D21:地址为2的远程终端使能0:不使能D31:地址为3的远程终端使能0:不使能D41:地址为4的远程终端使能0:不使能D51:地址为5的远程终端使能0:不使能D61:地址为6的远程终端使能0:不使能D71:地址为7的远程终端使能0:不使能D81:地址为8的远程终端使能0:不使能D91:地址为9的远程终端使能0:不使能D101:地址为10的远程终端使能0:不使能D111:地址为11的远程终端使能0:不使能D121:地址为12的远程终端使能0:不使能D131:地址为13的远程终端使能0:不使能D141:地址为14的远程终端使能0:不使能D151:地址为15的远程终端使能0:不使能D161:地址为16的远程终端使能0:不使能D171:地址为17的远程终端使能0:不使能D181:地址为18的远程终端使能0:不使能D191:地址为19的远程终端使能0:不使能D201:地址为20的远程终端使能0:不使能D211:地址为21的远程终端使能0:不使能D221:地址为22的远程终端使能0:不使能D231:地址为23的远程终端使能0:不使能D241:地址为24的远程终端使能0:不使能1M/4M1553B用户手册第三章驱动程序编程接口42D251:地址为25的远程终端使能0:不使能D261:地址为26的远程终端使能0:不使能D271:地址为27的远程终端使能0:不使能D281:地址为28的远程终端使能0:不使能D291:地址为29的远程终端使能0:不使能D301:地址为30的远程终端使能0:不使能D31未定义返回值:若RT使能成功,函数返回值为真;否则为假3.
3.
42RT_ClearTTagOnSync函数原型:void__stdcallRT_ClearTTagOnSync(INHDEVICEhM1553,INBYTEChanNo,INBOOLEnable);函数功能:RT在接收到不带数据的同步方式指令后时标寄存器清零参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Enable:模式使能位TRUE:使能该功能返回值:空3.
3.
43RT_LoadTTagOnSync函数原型:void__stdcallRT_LoadTTagOnSync(INHDEVICEhM1553,INBYTEChanNo,INBOOLEnable);函数功能:RT在接收到带数据的同步方式指令后,将命令中的数据加载到时标寄存器中作为初始值参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Enable:模式使能位TRUE:使能该功能返回值:空3.
3.
44RT_Status_Set函数原型:DLLBOOL__stdcallRT_Status_Set(INHDEVICEhM1553,INBYTEChanNo,INBYTERTAddr,INRT_STATUS_WORD_STRUCT*StatusWord);函数功能:设置RT的状态字参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3第三章驱动程序编程接口1M/4M1553B用户手册43RTAddr:RT的地址,低5位有效StatusWord:RT状态字设置结构指针变量返回值:若RT状态字设置成功,函数返回值为真;否则为假3.
3.
45RT_IllegalCmd函数原型:BOOL__stdcallRT_IllegalCmd(INHDEVICEhM1553,INBYTEChanNo,INBOOLEnable);函数功能:RT非法命令表使能函数参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Enable:使能位TRUE:使能非法命令表返回值:若RT非法命令表设置成功,函数返回值为真;否则为假3.
3.
46RT_RevIllegalData函数原型:BOOL__stdcallRT_RevIllegalData(INHDEVICEhM1553,INBYTEChanNo,INBOOLEnable);函数功能:RT非法指令接收数据使能参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Enable:使能位TRUE:接收非法指令数据,将数据写入接收数据缓存,并将状态字中的消息差错位置位;对于发送数据指令RT只发送状态字(如果需要发送),且将状态字中的消息差错位置位,不发送数据.
FALSE:不接收非法指令数据,将状态字中的消息差错位置位返回值:若RT非法指令接收数据使能设置成功,函数返回值为真;否则为假3.
3.
47RT_SetIllegalCmdTable函数原型:BOOL__stdcallRT_SetIllegalCmdTable(INHDEVICEhM1553,INBYTEChanNo,INRT_Illegal_CMD_TABLE_STRUCT*CmdTable);函数功能:RT非法指令表设置参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~31M/4M1553B用户手册第三章驱动程序编程接口44CmdTable:指向RT非法命令表结构的指针返回值:若RT非法指令接收数据使能设置成功,函数返回值为真;否则为假3.
3.
48RT_SetVectorWord函数原型:void__stdcallRT_SetVectorWord(INHDEVICEhM1553,INBYTEChanNo,INBYTERTAddr,INWORDVectorWord);函数功能:设置矢量字参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3RTAddr:RT的地址VectorWord:矢量字返回值:空3.
3.
49RT_SetBITWord函数原型:void__stdcallRT_SetBITWord(INHDEVICEhM1553,INBYTEChanNo,INBYTERTAddr,INWORDBITWord);函数功能:设置自检字参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3RTAddr:RT的地址BITWord:自检字返回值:空3.
3.
50RT_SendMSG函数原型:BOOL__stdcallRT_SendMSG(INHDEVICEhM1553,INBYTEChanNo,INBYTERTAddr,INBYTESubAddr,INWORDMsgLen,INWORD*Msg);函数功能:RT发送数据函数参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3RTAddr:待发送数据的远程终端SubAddr:待发送数据的远程终端的子地址MsgLen:待发送数据字的数量,单缓冲模式下可发送数据字的数量最大为32;循第三章驱动程序编程接口1M/4M1553B用户手册45环缓冲模式下可发送数据字的数量最大为4096Msg:存放待发送的数据字,缓冲区的大小要能容纳所有待发送的数据返回值:若RT发送数据函数成功,函数返回值为真;否则为假3.
3.
51RT_GetMsgNum_Rx_Newly函数原型:WORD__stdcallRT_GetMsgNum_Rx_Newly(INHDEVICEhM1553,INBYTEChanNo);函数功能:查询RT接收到的接收数据消息的条数(用户还未来得及接收的新消息)参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:函数返回值为RT接收数据消息的条数3.
3.
52RT_GetMsgNum_Tx_Newly函数原型:WORD__stdcallRT_GetMsgNum_Tx_Newly(INHDEVICEhM1553,INBYTEChanNo);函数功能:查询RT接收到的发送数据消息的条数(用户还未来得及接收的新消息)参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:函数返回值为RT发送数据消息的条数3.
3.
53RT_ReadMSG_Rx函数原型:BOOL__stdcallRT_ReadMSG_Rx(INHDEVICEhM1553,INBYTEChanNo,OUTRMSG_STRUCT*Msg);函数功能:读取RT接收到的接收数据消息参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Msg:存放接收到的接收数据消息返回值:如果RT接收到一条接收数据消息,函数返回值为真;否则为假3.
3.
54RT_ReadMSG_Tx函数原型:BOOL__stdcallRT_ReadMSG_Tx(INHDEVICEhM1553,INBYTEChanNo,OUTRMSG_STRUCT*Msg);函数功能:读取RT接收到的发送数据消息1M/4M1553B用户手册第三章驱动程序编程接口46参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Msg:存放接收到的发送数据消息返回值:如果RT接收到了一条发送数据消息,函数返回值为真;否则为假3.
3.
55RT_Get_Newly_RData函数原型:void__stdcallRT_Get_Newly_RData(INHDEVICEhM1553,INBYTEChanNo,INBYTERTAddr,INBYTESubAddr,OUTBYTE*WordCnt,OUTWORD*DataBuf);函数功能:在中断方式下,获取RT接收数据消息接收到的最新的数据参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3RTAddr:RT的地址,取值0~31SubAddr:RT的子地址,取值0~31WordCnt:存放接收到的数据量,最多32个1553数据.
若没有新数据,数据量为0DataBuf:存放读取到的数据返回值:空3.
3.
56RT_Get_Delta_Time函数原型:__int64__stdcallRT_Get_Delta_Time(INHDEVICEhM1553,INBYTEChanNo);函数功能:获取当前RT中的RTC计数值与1553网络中的BC实时时钟计数器的差值参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:函数返回值为时间差值,分辨率可由函数M1553_Set_RTC_Resolution设置,低48位有效3.
3.
57MT_Init函数原型:void__stdcallMT_Init(INHDEVICEhM1553,INBYTEChanNo);函数功能:初始化总线监视器参数说明:hM1553:板卡的句柄时间差值=BC当前RTC计数值-RT当前RTC计数值第三章驱动程序编程接口1M/4M1553B用户手册47ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:空3.
3.
58MT_SetCmdFilterTable函数原型:void__stdcallMT_SetCmdFilterTable(INHDEVICEhM1553,INBYTEChanNo,INMT_CMD_FILTER_TABLE_STRUCT*FTable);函数功能:设置待监测的消息参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3FTable:命令字过滤表结构指针返回值:空3.
3.
59MT_Start函数原型:BOOL__stdcallMT_Start(INHDEVICEhM1553,INBYTEChanNo,INBOOLEnable);函数功能:使能MT,并开始工作参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Enable:使能位TRUE:使能MT返回值:若MT使能成功,函数返回值为真;否则为假3.
3.
60MT_GetMsgNum_Newly函数原型:DWORD__stdcallMT_GetMsgNum_Newly(INHDEVICEhM1553,INBYTEChanNo);函数功能:查询MT最新消息数目参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3返回值:MT最新消息数目3.
3.
61MT_ReadMSG函数原型:BOOL__stdcallMT_ReadMSG(INHDEVICEhM1553,INBYTEChanNo,OUTRMSG_STRUCT*Msg);函数功能:MT消息读取函数1M/4M1553B用户手册第三章驱动程序编程接口48参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Msg:存放监测到的消息返回值:如果MT监测到消息,函数返回值为真;否则为假3.
3.
62M1553_WorkMode函数原型:BOOL__stdcallM1553_WorkMode(INHDEVICEhM1553,INBYTEChanNo,INBYTEModeSel);函数功能:单功能工作模式选择(仅支持单功能[同时仅能使用BC/RT/MT其中一种])参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3ModeSel:取值0表示BC,1表示RT,2表示MT返回值:若工作模式选择成功,函数返回值为真;否则为假3.
3.
63M1553_4MRateEn函数原型:BOOL__stdcallM1553_4MRateEn(INHDEVICEhM1553,INBYTEChanNo,INBOOLEnable);函数功能:1M/4M速率设置(1M1553板卡不支持该函数)参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Enable:1M/4M速率使能位TRUE:使能4M速率,FALSE:使能1M速率返回值:若频率使能设置成功,函数返回值为真;否则为假3.
3.
64M1553_PXIWorkType函数原型:BOOL__stdcallM1553_PXIWorkType(INHDEVICEhM1553,INBYTEChanNo,INBYTEType);函数功能:PXI板卡工作类型选择(仅支持PXI总线的1553板卡)参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3Type:取值0表示单板,1表示多板(主卡),2表示多板(从卡)返回值:若PXI板卡工作类型选择成功,函数返回值为真;否则为假第三章驱动程序编程接口1M/4M1553B用户手册493.
3.
65M1553_PXITrigLineSelect函数原型:BOOL__stdcallM1553_PXITrigLineSelect(INHDEVICEhM1553,INBYTEChanNo,INBYTETrigLine);函数功能:PXI板卡工作类型为多板时,触发线选择(仅支持PXI总线的1553板卡)参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3TrigLine:取值0~7返回值:若触发线选择成功,函数返回值为真;否则为假3.
3.
66BC_PXIMsgRunCtl函数原型:BOOL__stdcallBC_PXIMsgTrigCtl(INHDEVICEhM1553,INBYTEChanNo,INWORDMsgId,INBOOLEnable);函数功能:BC消息触发控制函数(仅支持PXI总线的1553板卡)参数说明:hM1553:板卡的句柄ChanNo:通道号,单通道取值0,双通道取值0~1,4通道取值0~3MsgId:消息的id号,从0开始编号,到4094结束.
Enable:消息运行控制位:TRUE---表示该消息有PXI触发功能如果是主卡(通过M1553_PXIWorkType设置),此条消息执行的同时,通过PXI触发线发出触发脉冲;如果是从卡,此条消息必须是事件消息,在触发信号到达时,进行事件触发;FALSE:表示该消息无PXI触发功能返回值:如果参数MsgId超出范围,函数返回值为假;否则为真;3.
4驱动程序函数调用步骤3.
4.
1打开板卡调用函数M1553_Open来找板卡,并分配板卡资源3.
4.
2复位板卡调用函数M1553_Reset来复位板卡到一个初始状态3.
4.
3初始化板卡1、启动或停止时间标签模式(M1553_AddTimeTag)1M/4M1553B用户手册第三章驱动程序编程接口502、设置应答超时(M1553_SetResponseTimeout)3、设置RTC配置字(M1553_RTC_Cfg)4、创建中断触发事件(M1553_CreateIntEvt)3.
4.
4BC模式3.
4.
4.
1初始化1、BC初始化(BC_Init)2、BC重试a)设置BC重试的次数(BC_SetRetryNum)b)设置BC重试的条件(SetRetryCase)c)设置BC重试的通道(BC_RetryChanSel)3、设置消息出错时,BC消息处理(BC_StopOnError)4、设置RT状态字置位时,BC消息处理(BC_OnStatusSet)3.
4.
4.
2消息发送1、配置BC消息链表(BC_WriteMsg),当消息链表结束时,添加消息链表结束符(BC_AddEndOfListFlag)2、启动BC(BC_Start)在BC运行的过程中,调用函数BC_MsgRunCtl可以控制消息的执行与否3.
4.
4.
3消息接收查询的方式1、判断BC消息传输是否结束(BC_IsMSGOver)或查询BC最新消息数目(BC_GetMsgNum_Newly)2、若BC消息结束或BC最新消息数目不为0,则读取消息(BC_ReadNextMsg)3、重复以上2步中断的方式1、设置中断屏蔽寄存器(M1553_SetIntMaskReg)中的BC_MsgOver位此时中断触发事件将会通知应用程序,有新消息被缓存(驱动程序将会按中断的方式接收消息,并将消息进行缓存)2、读取消息1)顺序读取消息第三章驱动程序编程接口1M/4M1553B用户手册51判断是否产生中断(M1553_WaitIntEvt一直被阻塞,直到有中断事件)[可选项]判断是否产生中断(BC_IsMSGOver或BC_GetMsgNum_Newly),若产生中断,调用函数BC_ReadNextMsg顺序读取消息2)读取最新消息判断是否产生中断(M1553_WaitIntEvt一直被阻塞,直到有中断事件)[可选项]判断是否产生中断(BC_IsMSGOver或BC_GetMsgNum_Newly),若产生中断,调用函数BC_ReadLastMsg读取最新消息3)刷新方式读取消息直接调用函数BC_GetMsg_Refresh来读取消息3、重复23.
4.
4.
4获取消息链表的配置信息调用函数BC_GetMsgInfo可获取消息块的配置3.
4.
4.
5改变运行中消息的数据调用函数BC_GetLastMsgId来获取刚被BC执行的消息的id,以确定BC执行的位置,在不会产生冲突的情况下,调用函数BC_WriteDataBlock来修改消息的数据.
3.
4.
4.
7获取BC的运行情况查询的方式调用函数BC_IsRunning可获取BC是否在运行中中断的方式1、设置中断屏蔽寄存器(M1553_SetIntMaskReg)中的BC_STOP位2、判断是否产生中断(M1553_WaitIntEvt),若产生中断,则说明BC出错停止了3、重复23.
4.
5RT模式1、RT初始化(RT_Init)2、设置RT数据发送模式(RT_TxMode)3、清置时标a)清除时标(RT_ClearTTagOnSync)b)重新装载时标(RT_LoadTTagOnSync)4、RT状态字设置(RT_Status_Set)1M/4M1553B用户手册第三章驱动程序编程接口525、RT非法命令设置a)启动或停止RT非法命令表模式(RT_IllegalCmd)b)若启动了RT非法命令表模式,则设置是否接收非法命令的数据(RT_RevIllegalData)及RT非法命令表(RT_SetIllegalCmdTable)6、设置矢量字(RT_SetVectorWord)7、设置自检字(RT_SetBITWord)8、RT使能(RT_Select)9、发送数据消息(RT_SendMSG)10、接收数据消息n接收接收数据消息中断的方式a)中断屏蔽寄存器(M1553_SetIntMaskReg)中的RT_RMsg置位b)判断是否产生中断(M1553_WaitIntEvt一直被阻塞,直到有中断事件)[可选项](此时驱动程序将会按中断的方式接收消息,并将消息进行缓存))c)调用函数RT_GetMsgNum_Rx_Newly来获取中断的次数,然后调用函数RT_ReadMSG_Rx读取接收到的接收数据消息d)重复b查询的方式调用函数RT_GetMsgNum_Rx_Newly来获取新消息的条数,然后调用函数RT_ReadMSG_Rx读取接收到的接收数据消息n接收发送数据消息中断方式a)中断屏蔽寄存器(M1553_SetIntMaskReg)中的RT_TMsg置位b)判断是否产生中断(M1553_WaitIntEvt一直被阻塞,直到有中断事件)[可选项](此时驱动程序将会按中断的方式接收消息,并将消息进行缓存)c)调用函数RT_GetMsgNum_Tx_Newly来获取中断的次数,然后调用函数RT_ReadMSG_Tx读取接收到的接收数据消息d)重复b查询方式调用函数RT_GetMsgNum_Tx_Newly来获取新消息的条数,然后调用调用函数第三章驱动程序编程接口1M/4M1553B用户手册53RT_ReadMSG_Tx读取接收到的发送数据消息3.
4.
6MT模式1、初始化MT(MT_Init)2、设置MT待监控的消息(MT_SetCmdFilterTable)3、MT使能(MT_Start)4、获取新消息的数目(MT_GetMsgNum_Newly)5、读取消息(MT_ReadMSG)6、重复4~5步3.
4.
7关闭板卡应用程序退出时,请复位板卡(M1553_Reset),并关闭板卡(M1553_Close3.
5消息块状态描述字3.
5.
1BC消息块状态描述字BITSDescription15EOMBC消息结束标志,1有效14SOMBC消息开始标志,1有效13CHANNELB/A消息发送通道指示0:消息从A通道发出1:消息从B通道发出12ERRORFLAG消息出错指示,当出现8、9、10位中的任何一种情况时,1有效11STATUSSET状态字低11位存在非0的位,1有效10FORMATERROR帧格式错误,1有效9NORESPONSETIMEOUT应答超时,1有效8CMD_ERR发送的命令有误,1有效7保留6RETRYCOUNT1重试次数0:0次1:1次3:2次5RETRYCOUNT04GOODDATABLOCKTRANSFER消息传送正常指示,1有效3AD_ERRRT状态字地址有误,1有效2LEN_ERR字长有误,1有效1INCORRECTSYNCTYPE同步字头错误,1有效0INVALIDWORD同步字、曼彻斯特编码、校验或位长度有误,1有效3.
5.
2RT消息块状态描述字1M/4M1553B用户手册第三章驱动程序编程接口54BITDescription15EOM消息结束标志,1有效14SOM消息开始标志,1有效13CHANNELB/A消息发送通道指示0:消息从A通道发出1:消息从B通道发出12ERRORFLAG消息出错指示,当出现8、9、10位中的任何一种情况时,1有效11RT-RTFORMATRT-RT消息指示,1有效10FORMATERROR帧格式错误,1有效9NORESPONSETIMEOUT应答超时,1有效8保留7ROB循环缓冲模式下缓冲区溢出标志6CMDILL非法指令指示5WL_ERR数据长度错误标志4SYN_ERR同步字头错误标志3WD_ERR数据错误标志2AD_ERR状态字地址错误标志1CMD2_ERRRT-RT传输中第二个命令字错误标志0CMD_ERR命令字错误标志3.
5.
3MT消息块状态描述字BITDescription15EOM消息结束标志,1有效14SOM消息开始标志,1有效13CHANNELB/A消息发送通道指示0:消息从A通道发出1:消息从B通道发出12ERRORFLAG消息出错指示,当出现8、9、10位中的任何一种情况时,高有效11RT-RTFORMATRT-RT消息指示,1有效10FORMATERROR帧格式错误,1有效9NORESPONSETIMEOUT应答超时,1有效8保留7GOOD消息传送正常指示,1有效6ROB循环缓冲模式下缓冲区溢出标志5LEN_ERR数据长度错误标志4SYN_ERR同步字头错误标志3WD_ERR数据错误标志2AD_ERR状态字地址错误标志1CMD2_ERRRT-RT传输中第二个命令字错误标志0CMD_ERR命令字错误标志第三章驱动程序编程接口1M/4M1553B用户手册553.
6MIL-STD-1553B的字3.
6.
1命令字D15~D11D10D9~D5D4~D0RTAddressT/RSubAddress/ModeDataWordCount/ModeCodeRTAddress:远程终端的地址,取值0~31;31为广播地址T/R:发送或接收位'0':RT接收数据'1':RT发送数据SubAddress/Mode:RT子地址或方式代码指示位;取值0或31为方式代码DataWordCount/ModeCode:数据量或方式代码,由SubAddress/Mode取值决定;若SubAddress/Mode取值为1~30,则该字段为数据量,0为32个数据;否则为方式代码.
3.
6.
2数据字数据字为一个16位宽度的数据3.
6.
3状态字D15~D11D10D9D8D7~D5D4D3D2D1D0RTAddressMessageErrorINSTRUMENTATIONSERVICEREQUESTRESERVEDBROADCASTCOMMANDRECEIVEDBUSYSUBSYSTEMFLAGDYNAMICBUSCONTROLACCEPTANCETERMINALFLAGRTAddress:接收或发送数据RT的地址MessageError:消息差错位INSTRUMENT:测试手段SERVICEREQUEST:服务请求位BROADCASTCOMMANDRECEIVED:接收到广播指令BUSY:系统忙SUBSYSTEM:子系统标志DYNAMICBUSCONTROLACCEPTANCE:动态总线控制接收TERMINALFLAG:终端标志1M/4M1553B用户手册56第四章功能演示软件第四章功能演示软件1M/4M1553B用户手册57M1553应用程序以Windows操作系统为基本运行平台,采用多文本窗口形式提供图形化的人机交互界面.
界面类型主要分为初始化窗口、板卡选择窗口、主窗口、BC窗口、RT窗口、BM窗口、功能配置窗口、信息/警告/错误提示窗口、关于…窗口,共9类.
4.
1使用环境4.
1.
1硬件n内存:至少128M内存n分辨率:建议至少1024*768n板卡:1553B通讯板4.
1.
2操作系统Windows:Win2000,WinXP/Win7(X86,X64)操作系统4.
2开发环境MicrosoftVisualC++7.
14.
3使用说明演示程序使用四通道多功能1553板卡进行说明4.
3.
1板卡选择窗口图4-1板卡选择窗口选择板卡,应用程序按照指定的"板卡号"获得板卡硬件资源,从而实现对硬件的操作.
如果应用程序找不到硬件资源,则会提示下面的错误信息,并进入"演示模式",进入"演示模式"后,只能查看应用程序的基本界面,不能实现对硬件的功能配置与通讯控制.
图4-2进入演示模式提示窗口1M/4M1553B用户手册第四章功能演示软件584.
3.
2主窗口图4-4主窗口主窗口由标题栏、菜单栏、工具栏、状态栏和子窗口显示区组成.
4.
3.
21菜单n工作模式u新建工作模式[新建BC/RT/BM工作模式]u打开数据文件[打开数据文件,从文件中读出消息,要求必须先创建一种工作模式]u退出[退出应用程序]n关于u关于M1553[显示"关于…窗口"]4.
3.
2.
2工具栏工具栏中由左向右功能分别为:n新建工作模式[显示"工作模式选择窗口"]n打开数据文件n保存数据文件[保存数据到文件,要求必须先创建一种工作模式,工作模式窗口中有消息显示]n显示"时标与应答超时设置窗口"n显示I/O窗口(该版本无IO功能)n"实时显示接收消息"功能选择n显示"关于…窗口"4.
3.
2.
3状态栏状态栏提供菜单与工具栏中功能信息的提示显示.
第四章功能演示软件1M/4M1553B用户手册594.
3.
3BC窗口通过执行"新建工作模式",在"工作模式选择窗口"中选择"总线控制器(BC)",确定后创建BC窗口.
图4-5BC窗口创建BC窗口后,主窗口的菜单会增加BC窗口的相关功能"总线控制器(BC)".
4.
3.
3.
1菜单n工作模式u新建工作模式[新建BC/RT/BM其中一种工作模式]u打开数据文件[打开数据文件,读出BC消息,并显示在BC接收消息列表中]u保存数据文件[将当前活动窗口接收消息列表中的数据存放到文件中]u关闭[关闭当前活动窗口]n总线控制器(BC)u设置[显示"总线控制器(BC)设置窗口"]u配置消息[创建/编辑/删除消息]u创建消息群[组建消息群]u开启接收[开始接收BC消息]u停止接收[停止接收BC消息]u开启发送[开始发送BC消息]u即时修改消息[对通讯中的消息进行数据修改]u清空接收消息[清空接收消息列表中的所有消息]u查看消息[选择回放查看的消息,要求已接收到的消息数量不能为0]u查找记录[从接收消息显示列表中查找与条件相符合的记录]n窗口u层叠u平铺u---u√[显示当前窗口]n关于u关于M1553[显示"关于…窗口"]4.
3.
3.
2工具栏工具栏中由左向右功能分别为:n设置n配置消息1M/4M1553B用户手册第四章功能演示软件60n创建消息群n开启接收n停止接收n开启发送n发送消息帧n清空接收消息n查看消息n查找记录4.
3.
3.
3状态栏状态栏提供"总消息量"、"错误消息量"、"RTC计数器值"的显示,数量在重新开始接收时被清0.
其中"RTC计数器值"每1秒进行一次刷新.
4.
3.
4RT窗口通过执行"新建工作模式",在"工作模式选择窗口"中选择"远程终端(RT)",确定后创建RT窗口.
图4-6RT窗口创建RT窗口后,主窗口的菜单会增加RT窗口的相关功能"远程终端(RT)".
4.
3.
4.
1菜单n工作模式u新建工作模式[新建BC/RT/BM其中一种工作模式]u打开数据文件[打开数据文件,读出RT消息,并显示在RT接收消息列表中]u保存数据文件[将当前活动窗口接收消息列表中的数据存放到文件中]u关闭[关闭当前活动窗口]n远程终端(RT)u设置[显示"远程终端(RT)设置窗口"]u配置数据[显示"数据配置窗口",配置RT和SA的数据]u开启接收[开始接收RT消息]u停止接收[停止接收RT消息]u清空接收消息列表[清空接收消息列表中的所有消息]u查看消息[选择回放查看的消息,要求已接收到的消息数量不能为0]u查找记录[从接收消息显示列表中查找与条件相符合的记录]n窗口u层叠u平铺u---u√[显示当前窗口]n关于第四章功能演示软件1M/4M1553B用户手册61u关于M1553[显示"关于…窗口"]4.
3.
4.
2工具栏工具栏中由左向右功能分别为:n设置n配置数据n开启接收n停止接收n清空接收消息列表n查看消息n查找记录4.
3.
4.
3状态栏状态栏提供"总消息量"、"错误消息量"、"接收(Rx)类消息量"、"发送(Tx)类消息量"、"RTC计数器值"、"RTC计数器差值"的显示,数量在重新开始接收时被清0.
其中"RTC计数器值"与"RTC计数器差值"每1秒进行一次刷新.
4.
3.
5BM窗口通过执行"新建工作模式",在"工作模式选择窗口"中选择"总线监视器(BM)",确定后创建BM窗口.
图4-7BM窗口创建BM窗口后,主窗口的菜单会增加BM窗口的相关功能"总线监视器(BM)".
4.
3.
5.
1菜单n工作模式u新建工作模式[新建BC/RT/BM其中一种工作模式]u打开数据文件[打开数据文件,读出BM消息,并显示在BM接收消息列表中]u保存数据文件[将当前活动窗口接收消息列表中的数据存放到文件中]u关闭[关闭当前活动窗口]n总线监视器(BM)u过滤器[显示"监视过滤设置窗口"]u开启接收[开始接收BM消息]u停止接收[停止接收BM消息]u清空接收消息[清空接收消息列表中的所有消息]u查看消息[选择回放查看的消息,要求已接收到的消息数量不能为0]u查找记录[从接收消息显示列表中查找与条件相符合的记录]n窗口1M/4M1553B用户手册第四章功能演示软件62u层叠u平铺u---u√[显示当前窗口]n关于u关于M1553[显示"关于…窗口"]4.
3.
5.
2工具栏工具栏中由左向右功能分别为:n过滤器n开启接收n停止接收n清空接收消息n查看消息n查找记录4.
3.
5.
3状态栏状态栏提供"总消息量"和"错误消息量"的显示,数量在重新开始接收时被清0.
4.
3.
6功能配置窗口图4-8工作模式选择窗口该板卡具备四通道多功能,每个通道均有BC、MT、RT,根据不同型号,每通道速率1M,4M可选配置.
第四章功能演示软件1M/4M1553B用户手册634.
3.
6.
2时标/应答超时/RTC设置窗口图4-9时标/应答超时/RTC设置窗口启动/停止时标,配置应答超时.
且对RTC消息模式选择和用于RTC命令字中子地址的设置.
设置RTC时间分辨率.
4.
3.
6.
3BC设置窗口图4-10BC设置窗口提供BC功能的设置.
1M/4M1553B用户手册第四章功能演示软件644.
3.
6.
4消息配置窗口图4-11a1M消息配置窗口图4-11b4M消息配置窗口添加、删除、保存消息,在消息列表中的空白处双击鼠标左键时,会自动建出"消息创建窗口",如果双击已经创建并显示在列表中的消息行,则出现"消息编辑窗口".
第四章功能演示软件1M/4M1553B用户手册654.
3.
6.
5消息创建窗口图4-12消息创建窗口按照列表中给出的基本消息类型创建消息,可以消息编辑窗口中对消息的具体内容进行编辑.

4.
3.
6.
6消息编辑窗口图4-13a1M消息编辑窗口1M/4M1553B用户手册第四章功能演示软件66图4-13b4M消息编辑窗口提供消息编辑功能,如果消息为新创建的消息,确定后该消息会显示在"消息配置窗口"的列表中,如果存在同名消息,则提示是否覆盖.
第四章功能演示软件1M/4M1553B用户手册674.
3.
6.
7消息群配置窗口图4-14消息群配置窗口创建消息群,左边为已经创建的消息列表,可将列表中的消息添加或插入到右边的消息群列表中,消息群列表中列出的则是将要组建在消息群中的消息.
1M/4M1553B用户手册第四章功能演示软件684.
3.
6.
8即时修改消息窗口图4-15即时修改消息窗口当BC正在运行时,可以即时修改已配置消息群中的消息,消息初修改后,修改结果也会提交给硬件.
第四章功能演示软件1M/4M1553B用户手册694.
3.
6.
9RT设置窗口图4-16RT设置窗口配置远程终端(RT)的状态字、矢量字、自检字、以及非法指令表等功能.

ManSora:英国CN2 VPS,1核/1GB内存/10GB SSD/1TB流量/100Mbps/KVM,$18.2/月

mansora怎么样?mansora是一家国人商家,主要提供沪韩IEPL、沪日IEPL、深港IEPL等专线VPS。现在新推出了英国CN2 KVM VPS,线路为AS4809 AS9929,可解锁 Netflix,并有永久8折优惠。英国CN2 VPS,$18.2/月/1GB内存/10GB SSD空间/1TB流量/100Mbps端口/KVM,有需要的可以关注一下。点击进入:mansora官方网站地址m...

随风云-内蒙古三线BGP 2-2 5M 25/月 ,香港CN2 25/月 ,美国CERA 25/月 所有云服务器均支持5天无理由退款

公司成立于2021年,专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,面向全球客户提供基于云计算的IT解决方案与客户服务,拥有丰富的国内BGP、三线高防、香港等优质的IDC资源。公司一直秉承”以人为本、客户为尊、永续创新”的价值观,坚持”以微笑收获友善, 以尊重收获理解,以责任收获支持,以谦卑收获成长”的行为观向客户提供全面优质的互...

VirMach(8元/月)KVM VPS,北美、欧洲

VirMach,成立于2014年的美国IDC商家,知名的低价便宜VPS销售商,支持支付宝、微信、PayPal等方式付款购买,主打美国、欧洲暑假中心产品,拥有包括洛杉矶、西雅图、圣何塞、凤凰城在内的11个数据中心可以选择,可以自由搭配1Gbps、2Gbps、10Gbps带宽端口,有Voxility DDoS高防IP可以选择(500Gbps以上的防御能力),并且支持在控制面板付费切换机房和更换IP(带...

缓冲区溢出教程为你推荐
刷网站权重如何提高网站权重和流量博客外链博客和博客之间怎么建超级链接vista系统重装怎样重装vista系统中国电信互联星空中国电信宽带于互联星空的区别显卡温度多少正常显卡温度是多少才算正常的?不兼容手机软件与系统不兼容应该怎么办网店推广网站网店怎么推广?小米3大概多少钱小米3现在多少钱ios系统ios系统的手机有哪些?二层交换机什么是三层交换机?什么是二层叫交换机?有什么区别?
深圳网站空间 域名主机空间 怎样注册域名 未注册域名查询 个人注册域名 郑州服务器租用 vps优惠码 骨干网 directspace asp.net主机 googleapps php主机 Hello图床 godaddy优惠券 镇江联通宽带 中国特价网 qq数据库下载 dd444 个人域名 韩国名字大全 更多