基于RTX的1553B实时驱动程序

设计了基于PCI总线的1553B总线接口驱动软件, 系统运行环境为Windows XP加RTX实时扩展模块, 保证了总线接口驱动软件的实时性和容错性。

概述:

MIL-STD-1553B为美国国防部制定的国内、国际陆、海、空三军和航天工业控制系统广泛应用的数据总线,为电子系统的标准信息传输和互联接口系统。这种数据总线被用来为各种系统之间数据和信息的交换提供媒介,它类似"局域网或LAN"。总线的传输速度为每秒1M 比特,字的长度为20 个比特,数据有效长度为16 个比特,信息量最大长度为32 个字,传输方式为半双工方式,传输协议为命令/响应方式,故障容错有典型的双冗余方式,第二条总线处于热备份状态,信息格式有BC 到RT、RT 到BC、RT 到RT、广播方式和系统控制方式;能挂31 个远置终端,终端类型有总线控制器(BC)、远置终端(RT)和总线监听器(BM),帧传输方式可分为两部分:帧传输方式和广播帧传输方式。在帧传输方式中有六种帧传输格式,分别为BC 到RT、RT 到BC、RT 到RT 和命令模式三种,传输过程中各种字所需的时间:命令字、状态字和数据字均为20 微秒,响应时间最长为12 微秒。不同帧与帧之间传输是有时间间隔的,一般时间间隔为10 到30 微秒,传输媒介为屏蔽双绞线。

RTX 是美国Ardence公司开发的Windows平台的硬实时系统,可以为用户提供优秀的实时控制性能,高效的可扩展性及稳定性。RTX 被设计为Windows上的一个实时的扩展子系统,其本身并不是一个独立的操作系统。RTX 提供了对IRQ、I/O、内存的精确控制,以确保实时任务执行时具有100%的可靠性。由于RTX的操作均在Ring 0 级实现,可以在保证最高性能的基础上实现最少的配置操作。RTX支持30KHz的持续中断触发速度,平均IST延迟小于1微秒。RTX 与Windows 系统无缝地结合在一起,可以利用Windows 系统的各种优势。包括大量标准的API函数;高效的内存管理机制;以及各种Windows 下的通用资源。RTX 应用程序在开发阶段运行于系统的Ring 3 级别;一旦开发者完成了调试工作,RTX 应用程序将被部署到Ring 0 级别以提供最好的时间响应特性。其他的Windows 扩展不具备这种能力。作为一个完全的Windows 扩展系统, RTX 子系统(RTSS, Real-time Sub-system )拥有精确高速的任务调度器,同时支持基于优先级和时间片轮询两种调度算法。RTX最高支持1000个独立的进程,每个进程下可以运行的线程数不受限制。128个优先级可以满足几乎所有用户的编程需要,RTX调度器可以确保线程切换时间保持在500纳秒到2微秒之间。通过应用高速的IPC信息和同步机制,RTX 可以实现和Windows之间的数据通讯。精确的时间执行机制对实时系统至关重要,通过选用适合的时钟,RTX 的时钟分辨率可以达到100纳秒,并且不会产生漂移现象。其定时器周期最低可以做到1000、500、200、100微秒。作为Windows 的扩展子系统,除了借助Windows 的资源外,RTX还可以独立存在,即使在Windows 系统呈现蓝屏时,RTX 依然可以健壮地运行。

- RTX实时扩展子系统架构

---

- 基于RTX下的PCI总线1553B模块驱动程序主要开发步骤

PCI总线1553B模块驱动程序开发

采用基于PCI总线QPCX-1553板卡开发,下图是QPCX-1553B板卡的部分寄存器功能。

--

根据板卡说明书,通过对PCI总线的枚举获取QPCX-1553板卡基地址,控制寄存器,中断号等信息,程序如下

PCI_SLOT_NUMBER SlotNumber;

PPCI_COMMON_CONFIG PciData;

UCHAR buffer[PCI_COMMON_HDR_LENGTH];

ULONG uTemp = 0;

USHORT IoBase;

int vendorID;

int deviceID;

PCHAR vBAR0=NULL, vBAR1 = NULL; // pointer virtual memory addresses

vendorID=0x13c6;

deviceID=0x1556;

以上代码通过RtGetBusDataByOffset函数来枚举计算机上的所有PCI总线槽,每个槽上插的PCI板卡信息读取放在PciData结构体里,根据(PciData->VendorID==vendorID)和(PciData->DeviceID==deviceID)来找到我们的板卡,这里我们的1553B板卡的vendorID为0x13c6,deviceID为0x1556,这样确定我们的板卡。根据板卡手册确定我们板卡的8MB内存空间,基地址存放在PLX9056的BAR2里面,及在结构体的位置为PciData->u.type0.BaseAddresses[2],获取基地址后,通过RtMapMemory()函数映射成我们应用程序可以访问的指正,通过这个指针实现对板卡各个寄存器的操作。RTX环境下具有直接访问内存和IO的能力,中断服务线程直接响应物理中断号,不需要中断的中转,板卡中断服务函数绑定使用以下函数:

HANDLE RtAttachInterruptVector(

PSECURITY_ATTRIBUTES pThreadAttributes,

ULONG StackSize,

VOID (RTFCNDCL *pRoutineIST)(PVOID ContextIST),

PVOID ContextIST,

ULONG Priority,

INTERFACE_TYPE InterfaceType,

ULONG BusNumber,

ULONG BusInterruptLevel,

ULONG BusInterruptVector);

1553B协议实现

数据传输通信协议是指对数据传输的约定,包括定时、控制、格式化和数据表示方法等。1553B总线采用指令/响应型通信协议,它有三种终端类型:

(A) 总线控制器(BC),它是在总线上惟一被安排为执行建立和启动数据传输任务的终端。

(B) 远程终端(RT)它是用户子系统到数据总线上的接口,它在BC的控制下提取或吸收数据。

(C) 总线监视器(MT),它是监控总线上的信息传输,以完成对总线上的数据源进行纪录和分析,但它本身不参与总线通信

根据1553B总线协议和QPCX-1553B板卡的寄存器功能,在RTX下实现编写QPCX-1553B的以下功能和函数

--BM功能流程图

根据BM的流程,实现以下各个功能函数:

初始化卡:BusTools_API_InitExtended()

BM初始化卡: BusTools_BM_Init()

设置总线方式:BusTools_SetInternalBus()

设置信息分配:BusTools_BM_ MessageAlloc()

设置时间模式:BusTools_TimeTagMode ()

设置滤波参数:BusTools_BM_FilterWrite()

耦合方式和电压:BusTools_SetVoltage()

动BM工作:BusTools_BM_StartStop()

获取总线消息:BusTools_BM_MessageRead()或者BusTools_BM_MessageReadBlock()

停止BM工作: BusTools_BM_StartStop()

板卡下电:BusTools_API_Close()

--RT功能流程图

根据RT的流程,实现以下各个功能函数:

初始化卡:BusTools_API_InitExtended()

设置总线方式:BusTools_SetInternalBus()

设置RT有广播方式:BusTools_SetBroadcast()

设置子地址模式码方式:BusTools_SetSa31 ()

RT初始化卡: BusTools_RT_Init()

设置模拟RT:BusTools_RT_AbufWrite ()

开收/发缓冲区:BusTools_RT_CbufWrite ()

置模拟RT发送的消息: BusTools_RT_MessageWrite ()

启动RT工作: BusTools_RT_StartStop ()

读模拟RT的消息: BusTools_RT_MessageRead ()

停止RT工作: BusTools_RT_StartStop ()

板卡下电:BusTools_API_Close()

--BC功能流程图

根据BC功能的流程,实现以下各个功能函数:

初始化卡:BusTools_API_InitExtended()

初始化BC功能: BusTools_BC_OneShotInit()

设置耦合和输出电压:BusTools_SetVoltage()

开始BC消息传输: BusTools_BC_OneShotExecute()

板卡下电:BusTools_API_Close()

结论

基于RTX的1553B总线接口驱动软件具备与标准Windows驱动软件高度的一致性,同时具备强大的实时性和容错性,在某xx导弹单元测试仪中经过实践验证,满足了项目的使用,取得了很好的效果。

RTSim实时仿真系统应用领域

● 国防安全和军事工程

● 航空和航天仿真系统

典型应用

● 分布式实时仿真系统

● 实时仿真测试系统

● 飞行模拟器显控系统

● 分布式实时仿真和转台控制系统

 
 
 

北京华泰显控科技有限公司

Copyright © Beijing Vertextron Technology Co., Ltd

网站备案 / 许可证号:京ICP备18049970号-1