1系统组成和原理 本文要实现的1553B仿真开发系统如图1
所示,分为上 位机和下位机两部分。
上位机即PC机,上面运行的是1553B仿真开发系统的用户应用程序。上位机软件完成初始化输入,将输入参数传给下位机,实时接收下位机上传的通讯过程,实时对通讯过程进行统计、显示和存储,在用户要求运行停止时,通知下位机停止运行。同时,在离线状态下,对运行结果进行显示、查询、处理分析。 下位机即1553B仿真卡上的386EXCPU,上面运行的是VxWorks实时嵌入式操作系统。下位机在收到完整的输入参数之后,启动1553B总线协议芯片的运行,在运行过程中,对通讯过程进行分析,将通讯过程通过双口RAM发送给上位机。在给定的运行周期到达或收到上位机的停止运行命令后,停止1553B总线协议芯片的运行。 本文中的1553B仿真开发系统上位机和下位机之间的通信采用查询方式。系统上电时,下位机处于复位状态,上位机的应用程序开始执行,首先配置双口RAM的LocalBusCon-figuration寄存器,设置双口RAM的LOCAL端(386EXCPU一侧)的接口方式为16位方式;通过HostControlRegister的LocalProcessorReset位使下位机复位,一秒后释放下位机,下位机开始启动,启动完成后开辟初始化数据和1553B消息数据存储缓冲区,向双口RAM的特定区域写入成功启动信息,进入查询状态,等待上位机下传初始化数据。上位机的应用程序在查询到双口RAM该区域的成功启动信息后之后,启动用户界面。用户手动输入或读入以前的设置,启动初始化数据的下传,在初始化数据的下传结束后,向双口RAM的特定区域写入成功下传信息,下位机查询到双口RAM该区域的成功下传信息后,开始接收初始化数据,并根据初始化数据的不同,运行相应的功能模块[1]。
1.1 双口RAM 通过图1可以看到,本仿真开发系统的1553B仿真卡是 一块PCI卡,它通过PCI总线与PC机进行通讯。1553B仿真卡上的双口RAM选用CYPRESS公司的CY7C09449,它是一块带PCI桥的双口RAM,通过它,实现上位机和下位机之间的通讯。上位机传给下位机的输入参数首先缓存在双口RAM中,下位机再从双口RAM中读出这些参数;下位机实时上传的通讯结果也是先缓存在双口RAM中,然后再由上位机读出。
1.2 386EXCPU 386EXCPU是整个1553B仿真卡的核心。386EXCPU上 面运行的是VxWorks实时嵌入式操作系统,整个仿真开发系统的消息调度都是由386EXCPU完成,保证了系统的实时性。386EXCPU上面的VxWorks开发主要分为板极支持包BSP的开发和应用程序的开发。 1.31553B总线协议芯片 1553B总线协议芯片负责同1553B总线上的其它设备进 行通讯。在本文要实现的1553B仿真开发系统中,根据输入参数的不同,1553B总线协议芯片可以配置为BC、RT、MT这3种工作模式。 1553B总线协议芯片选用DDC公司的BU-61580。BU-61580芯片和1553B总线之间多采用变压器藕合方式,通过变压器同外部总线相连。外部总线一般为二冗余的双总线结构,BU-61580内部也是一个逻辑二冗余的结构。
BU-61580的存储器分为内存RAM和寄存器REGISTER。REGISTER控制BU-61580的运行方式,如工作于哪种工作模式,使用逻辑A区还是B区,如何产生中断,如何处理错误等。RAM是BU-61580的数据存储区,包括各种数据指针和数据结构,及接收发送数据的存储区域等。RAM有少部分区间的使用是硬件预先设定的,其余大部分的使用是用户可自定义的。 BU-61580的初始化步骤主要有:复位61580;清61580内部RAM;内部RAM初始化;寄存器初始化;设置中断向量;开对应中断;启动芯片运行[2]。
2 VxWorks实时嵌入式操作系统开发
本文中的1553B仿真开发系统使用了386EXCPU,386EXCPU的资源丰富,处理能力强大。如果采用传统的编程方法,由程序员在自己的程序里面分配、管理CPU资源,不仅非常烦琐,容易出错,而且也不能有效地利用CPU的资源和处理能力。因此,有必要使用嵌入式操作系统,在操作系统的基础上直接进行开发,不仅避免了烦琐的资源分配管理,而且提高了编程的效率、可靠性和可维护性。 操作系统是整个系统应用的基础,它是硬件管理和软件应用之间的桥梁,操作系统的任何缺陷都可能引起非常严重而且不可预知的问题。因此,一个高性能的嵌入式操作系统,必须具有很高的可靠性。 本文中的1553B仿真开发系统选用了美国Windriver公司的VxWorks嵌入式实时操作系统。VxWorks是一个优秀的实时嵌入式操作系统,
主要优势包括:
(1)高效的代码和良好的可裁剪性。VxWorks采用微内核结构,内核可裁减至几十K字节,对于资源相对紧张的嵌入式系统具有非常好的适应性。
(2)丰富的接口资源和大量的第3方产品为VxWorks的广泛应用奠定了坚实的基础。
(3)良好的移植性。VxWorks支持包括X86系列,POWER-PC系列,SPARC系列,ARM系列,MIPS系列等几乎所有流行的CPU,可适应于不同的硬件平台。VxWorks提供POSIX1003.1b(对应旧标准1003.4)标准规定的大部分接口,使得对已有系统的移植变得非常容易。
(4)良好的开发环境。VxWorks有一个非常优秀的开发环境Tornado[3]。 本文中,VxWorks实时嵌入式操作系统开发主要包括:板极支持包BSP和应用程序的开发。
2.1板极支持包BSP的开发 板极支持包BSP即BoardSupportPackage,其功能相当于 PC机的BIOS。它来源于嵌入式操作系统与硬件无关的设计思想,操作系统被设计为运行在虚拟的硬件平台上。对于具体的硬件平台,与硬件相关的代码都被封装在BSP中,由BSP向上提供虚拟的硬件平台,BSP与操作系统通过定义好的接口进行交互[4]。 BSP由3部分组成: (1)源文件、头文件以及编译描述文件makefile。主要是C语言程序和少量汇编语言程序。 (2)导出文件。导出文件是由BSP的基本文件、
驱动文件