基于1553B总线的星载相机地面检测程序通用化设计
2014-03-05崔艳召何欣杜以强
崔艳召 何欣 杜以强
(北京空间机电研究所,北京 100094)
0 引言
目前,1553B总线已成为卫星平台与相机分系统间进行通信的有效选择。其使用特点是:各类星载相机的1553B总线通信协议均不一致,通信的应答方式和数据的传输模式也多种多样。为了在不同1553B总线通信进行地面测试时,有效地降低地面测试程序的开发难度,提高程序的开发效率,保证接口程序的一致性和地面测试程序的可靠性,国内外航空、航天领域提出了1553B总线通信测试的通用化设计方向[1-2]。本文设计一套1553B总线通信进行地面测试时的通用化接口程序,可以适应不同型号的星载相机采用1553B总线进行数据传输的需求。
要使不同型号星载相机的1553B总线通信测试通用化,要求程序接口和代码具有通用度高、可靠性高和实时性强的特点。本文基于VC编程技术,借鉴程序通用化的设计思想,通过给上位机界面提供通用、高度集成的接口函数,实现1553B总线通信地面测试程序的通用化。
1 通信电路的硬件设计
本文设计的数据通信电路由4部分组成:CPCI(compact peripheral component interconnect)接口协议电路单元、现场可编程门阵列(field programmable gate array,FPGA)时序和逻辑电路单元、1553B总线通信电路单元、秒脉冲电路单元(产生秒脉冲信号,并以此触发1553B总线发送秒脉冲对应的时刻数据),如图1所示。
图1 通信电路的结构Fig.1 Block diagram of the communication board
CPCI接口电路单元采用的协议芯片为PCI9054[3-5](其配置芯片为NM 93CS56),主要特点如下:
1)具有可选的串行EEPROM接口;
2)CPCI与本地总线的数据传送速率高达132Mbyte/s[6-7];
3)本地总线时钟由外部提供,该时钟可与CPCI时钟异步;
4)具有8个32bit的Mailbox寄存器和2个32 bit的Doorbell寄存器;
5)本地总线速率高达50MHz;支持复用/非复用的32bit地址/数据;本地总线有三种模式:M模式、C模式和J模式,可利用模式选择引脚加以选择。
FPGA时序和逻辑电路单元选择的芯片为EP1C3T144,该款芯片具有2910LE逻辑单元,13条M 4KRAM(共6.5Kbyte),还有1个数字锁相环。EP1C3T144与PCI9054的连接如图2所示[8-9]。
图2 EP1C3T144与PCI9054连接图Fig.2 The connection between EP1C3T144 and PCI9054
1553B协议定义了一个多元数据总线。该标准不仅定义了串行数据总线的数据格式、命令/响应方式、时分割等技术,而且定义了数据总线及其接口的电气特性。BU-61580高级通信引擎为主处理器和1553B总线间提供了完全集成化的接口,实现了总线控制器(BC),远程终端(RT)和监视器终端(MT)模式[10-13]。
2 通用接口程序
2.1 通用接口函数概述
不同型号星载相机的1553B总线协议不同,对应RT的协议及其地面检测系统的上位机界面也有较大差别。不同的协议会造成1553B总线通信程序频繁改动,不但降低了程序的可靠性,而且降低了地面检测系统的研发效率。为了解决这些问题,本文设计了通用接口程序。该程序为上位机提供了统一的调用函数,使各型星载相机的1553B总线协议在此接口处实现了统一调用。增加通用接口程序后的地面检测系统只需修改上位机的操作界面,无需进行其他改动,即可满足RT进行1553B总线通信测试的要求。
1553B总线通信地面检测系统如图3所示,包括上位机界面、通用接口程序、底层驱动和1553B总线通信板卡(包含BC)。本文设计的通用化接口程序是连接上位机界面与底层驱动的桥梁。通用接口程序接收上位机的统一调度,根据不同参数来做相应的配置,通过底层驱动和CPCI总线连接1553B总线通信板卡,最后由BC来实现与RT的通信。
利用本文设计的程序通用,上位机对星载相机进行1553B总线通信测试时的操作流程如图4所示。
图3 1553B总线通信地面检测系统结构Fig.3 Themodule of checkoutsystem for 1553B bus communication
图4 上位机调用1553B总线程序流程图Fig.4 The flow of PC calling 1553B bus program
本程序在运行时,只需对此接口函数的参数进行设置,即可满足不同类型协议的需要,也可设置中断函数,来满足1553B总线突发数据的传输。本文设计的通用化接口程序由5部分组成:BU-61580寄存器设置函数、1553B总线数据帧收发函数、中断响应函数、电路板复位函数以及其他辅助函数[14-15]。
2.2 寄存器设置函数
由于不同类型的协议对1553B总线的使用设置和数据传输属性不同,要实现接口通用化,须将各类协议使用的设置参数化,以方便上位机选择使用。本文对BU-61580寄存器设计了通用设置函数,函数为重要的设置均留有通用的接口参数。寄存器设置的函数名为:
BOOLReg_1553_Func(REG_SET_STRUCT*pREG_SET_STRUCT)
其中的参数为结构体指针,具体定义如下:
使用时可根据不同型号的需要对此接口函数的参数进行不同的设置,具体参数的定义见表1。
表1 寄存器设置结构体参数表Tab.1 The parameters of register-setting structure body
2.3 数据帧收发函数
在同一类协议中,通常存在不同类型的数据传输,如:不同的消息传输模式(一般消息、矢量字和广播消息)、不同帧内消息的个数不相同、不同消息内字的个数不相同等,本节的通用函数就是针对上述问题设计。数据帧收发函数如下:
BOOL Me_1553_Func(byte Me_Num,bool direction,byte Word_Num1,byte Word_Num2,byte Word_Num3,byteWord_Num4,ME_SET_STRUCT*pME_SET_STRUCT)
在使用此函数时,可根据不同协议的需要对其参数进行设置,具体参数的定义可参考表 2。在进行1553B总线数据帧传输时,本文设计的一帧内消息的最大个数为4个。
表2 数据帧收发函数参数表Tab.2 The parameters of data frame sending and receiving function
其中,ME_SET_STRUCT是结构体指针*pME_SET_STRUCT的实体。
在开机时,为了保持数据的识别统一性,初始化的值都设置为0,数据帧收发函数结构体参数见表3。
表3 数据帧收发函数结构体参数表Tab.3 The parameters of structure body of data frame sending and receiving function
为增加消息传输的可靠性,所有不同类型的消息地址均不相同,可以避免不同类型数据的冲突。
2.4 中断函数
此中断函数的作用是为了配合秒脉冲信号,在1553B总线上输出对应秒脉冲时刻的数据。同时,上位机也可以此为时间基准进行地检设备内部校时。此中断函数为:void Open_Interrupt(void)。
在VC++6.0编制测试界面时,需声明消息响应:ON_MESSAGE(WM_PCI9054_INTERRUPT,OnInterrupt)。
2.5 电路复位函数
电路在工作前,需要对整个系统进行复位,调用下述函数就可发出电路复位信号,使电路复位:RETURN_CODEPci9054_BoardRst(void)。
2.6 辅助函数
辅助函数包括上位机与驱动之间的地址映射函数、连接函数以及解除地址映射函数和解除连接函数。
在VC++6.0编制测试界面时,需声明一下物理内存:PHYSICAL_MEM PciMemory。
程序开始时的地址映射函数为:PhysicalMemoryMap(&PciMemory)。
程序开始时和硬件建立连接的函数(如连接不上,则弹出提示界面)为:
程序结束时的解除地址映射函数为:PhysicalMemoryUnMap(&PciMemory)。
程序结束时和硬件解除建立连接的函数为:DisconnectToPCI9054()。
3 接口函数测试与验证
为保证通用程序的可靠性,本文使用VC++6.0编制了一个上位机测试界面,可以用此界面实现1553B总线所有类型消息的传输[15]。该上位机程序将后台操作流程界面化,操作人员可以根据不同需求进行灵活设置。
1553B总线数据收、发测试界面如图5所示,1553B总线通信地面检测程序自检界面如图6所示。
图5 1553B总线数据收、发测试界面Fig.5 Receiving and sendingmeasuring interface of 1553B bus data
图6 1553B总线通信自检界面Fig.6 Self-checking interface of 1553B bus communication
地面测试设备外接1553B总线监视器,通过图4收、发1553B总线数据界面中的“消息收发次数”进行设置,对数据进行分类测试。程序经过不断完善,数据连续正确传输次数达到千万次,数据量达到了10Gbyte。测试结果表明:此1553B总线通信通用测试接口程序在接口架构和代码编写方面完全可以被上位机调用,结果正确,符合预期效果。
4 结束语
本文设计了一种星载相机1553B总线通信地面测试程序的通用化程序,利用CPCI总线设计了1553B总线通信的硬件电路,并编制了通用接口程序,减少了地面检测设备1553B总线通信程序的更改次数和更改量,提高了地面检测程序开发的效率,提高了地面检测程序对不同1553B总线传输协议的适应性,提高了地面检测程序的可靠性。
References)
[1] 颜猛,蒋轩祥.1553总线BC/BBC配置下总线管理软件的研究与实现[J].微电子学与计算机,2003(1):20-22.YAN Meng,JIANG Xuanxiang.Research and Implementation of 1553 Bus Management Software Based on BC/BBC Configuration[J].M icroelectronicsand Computer,2003(1):20-22.(in Chinese)
[2] 李曼.基于SOC的1553B接口技术研究[D].西安:西北工业大学,2007.LIMan.Research of 1553B Interface Technique Based on SOC[D].Xi’an:Northwestern Polytechnical University,2007.(in Chinese)
[3] Tom Shanley.PCI系统结构[M].北京:电子工业出版社,2000.Tom Shanley.PCISystem Architecture[M].Beijing:Publishing Houseof Electronics Industry,2000.(in Chinese)
[4] 李贵山,戚德虎.PCI局部总线开发者指南[M].西安:电子科技大学出版社,2003.LIGuishan,QIDehu.Developer Directory of PCILocal Bus[M].Xi’an:Publishing House of University of Electronic Science and Technology,2003.(in Chinese)
[5] 陈大羽,王琨,李涛,等.空间高速总线SpaceWire节点的设计与实现[J].航天返回与遥感,2010,31(4):58-64.CHEN Dayu,WANG Kun,LITao,et al.The Design and Implementation of Space High-speed Bus SpaceWire Codec[J].SpacecraftRecovery&Remote Sensing,2010,31(4):58-64.(in Chinese)
[6] 刘涛,黄伟,潘卫军.SpaceWire软核的设计与验证[J].航天返回与遥感,2011,32(1):51-58.LIU Tao,HUANG Wei,PAN Weijun.Design and Verification of SpaceWire IP Core[J].Spacecraft Recovery&Remote Sensing,2011,32(1):51-58.(in Chinese)
[7] 万旻,包斌,成桂梅.一种现场可编程门阵列门延时精确调整时序的方法[J].航天返回与遥感,2010,31(2):62-68.WAN M in,BAO Bin,CHENG Guimei.A FPGA Based Gate Delay Precise Tim ing AdjustMethod[J].Spacecraft Recovery&Remote Sensing,2010,31(2):62-68.(in Chinese)
[8] 陈彦,张宏伟,林宏宇.基于FPGA的CMOS图像传感器LUPA-4000时序设计[J].航天返回与遥感,2012,33(5):62-67.CHEN Yan,ZHANG Hongwei,LIN Hongyu.Tim ing Design of CMOS Image Sensor LUPA-4000 Based on FPGA[J].SpacecraftRecovery&Remote Sensing,2012,33(5):62-67.(in Chinese)
[9] 黄伟,刘涛,王华,等.SRAM型FPGA的单粒子效应及TMR设计加固[J].航天返回与遥感,2012,33(2):49-53.HUANG Wei,LIU Tao,WANG Hua,et al.Single-event Effects on and TMR Radiation-harden of SRAM-based FPGA[J].SpacecraftRecovery&Remote Sensing,2012,33(2):49-53.(in Chinese)
[10] 顾骧,周东,田忠.用于1553总线控制器的存储管理单元设计[J].电子科技大学学报,2003,32(3):317-320.GU Xiang,ZHOU Dong,TIAN Zhong.Design of Memory Management Used in M IL-STD-1553 Bus Controllers[J].Journal of University of Electronic Scienceand Technology,2003,32(3):317-320.(in Chinese)
[11] 郭坚,付连芳,王海涛.基于8051单片机的1553B总线接口设计[J].计算机测量与控制,2006,14(7):946-950.GUO Jian,FU Lianfang,WANG Haitao.Interface Design of 1553B Bus Based on 8051 Singlechip[J].ComputerMeasurement and Control,2006,14(7):946-950.(in Chinese)
[12] 林强,熊华刚,张其善.DSP在1553总线接口技术中的应用[J].微计算机应用,2004,25(3):339-343.LIN Qiang,XIONG Huagang,ZHANG Qishan.Application of DSP in the Design of 1553 Interface[J].M icrocomputer Applications,2004,25(3):339-343.(in Chinese)
[13] 孙军文,安妮,王中训.基于VC++6.0的网络通信设计[J].现代电子技术,2011,34(23):52-54.SUN Junwen,AN Ni,WANG Zhongxun.The Network Communicating Design Based VC++6.0[J].Modern Electronics Technique,2011,34(23):52-54.(in Chinese)
[14] 陶桂宝,郭少波.MATLAB与VC++混合编程在系统仿真中的应用[J].重庆大学学报,2007,30(7):26-29.TAO Guibao,GUO Shaobo.The Application of M ixing Program Using MATLAB and VC++in System Emulation[J].Journal of Chongqing University,2007,30(7):26-29.(in Chinese)
[15] 张晓光.CC++语言考试自动评分系统的设计与实现[D].西安:电子科技大学,2010.ZHANG Xiaoguang.The Design and Application of Automatic Graded System of CC++Language Exam ination[D].Xi’an:University of Electronic Science and Technology of China,2010.(in Chinese)