摘 要: 针对传统的地面测控测试设备结构复杂、可移植性差、难以满足当前测试要求的现状,提出了基于CPCI总线设计的卫星PCM测控测试设备。设备采用“通用前板+专用背板”板卡设计方法,提高通用性,降低成本;使用FPGA代替传统分立元件,提高设计效率和可靠性。为便于调试,硬件功能尽量简化,只完成数据发送接收操作,遥测帧同步、遥控指令解析等工作由软件实现。
关键词: CPCI; 通用化设计; 软件帧同步
近年来,我国卫星发射任务日益繁重,卫星研制周期逐渐缩短,测试时间也被压缩,同时卫星型号逐渐增多,若对每一种型号的卫星都单独研发测试设备,不仅浪费资源而且影响测试进度,因此,卫星地面测试设备应向高效、通用的方向发展。传统的地面测试设备多采用分立元件设计,其结构复杂、功能单一、可移植性差、更新换代困难、操作不够灵活,已不能适应当前复杂紧迫的地面测试工作。
基于CPCI的卫星PCM测控测试设备是地面测试系统的重要组成部分,采用了数字化、通用化的设计思想,功能如下:
(1) 完成卫星下行遥测PCM信号的接收和分路;对接收的遥测数据帧同步处理;通过数据服务端口上传遥测数据帧,通过状态服务端口通报遥测数据接收情况。
(2) 通过遥控数据接收端口接收网络遥控指令;完成上行遥控PCM信号的分路输出;通过状态服务端口通报遥控指令发送情况。
1 总体设计方案
1.1 总线平台选择
为使设备结构简单,方便测试,采用了“计算机+专用板卡”的结构,常见的板卡形式为PCI结构或CPCI结构。虽然PCI总线也是一种高性能总线,但是由于其接口不牢固,在恶劣环境下容易脱落、断裂,所以其只能用在比较稳定、理想的环境中[1]。而CPCI技术标准融合了PCI局部总线的电气特性、工业级欧卡封装结构和规格、EC 2 mm高密度针孔连接器等3项技术[2],具有和PCI相同的电气性能和更为牢固的机械结构,因此在可靠性要求较高的场合得到了广泛应用。
目前,CPCI板卡的设计一般采用2种方案:可编程逻辑器件和专用总线接口器件[3]。可编程逻辑器件是根据CPCI协议在FPGA或CPLD中实现CPCI总线接口控制器,但是由于CPCI协议的复杂性,使得开发难度大、周期长,而且很难在短期内达到系统稳定,这种方法只适合于大批量生产的情况。对于一般的开发者来说,大都采用现成的CPCI接口器件。这类专用接口器件具有较低的成本和很好的通用性,能够优化数据传输,提供配置空间,具备用于突发传输功能的片内FIFO等,是一种省时省力的方案。这类专用芯片有很多,如PLX公司的CPCI总线目标接口器件PCI9052、PCI9054和AMCC公司的55933等。
根据设备的功能要求,本设计采用了CPCI总线结构,接口芯片选择成本较低但性能优异的PCI9054。
1.2 设计方案
卫星PCM测控测试设备由遥测数据接收板卡、遥控指令发送板卡、控制软件、CPCI主机4个部分组成。遥测数据接收板卡对卫星下行PCM遥测数据进行信号隔离和电平变换,将遥测数据串并转换后,通过CPCI总线送至测控设备软件,进行帧同步处理。遥控指令发送板卡将CPCI总线送来的指令内容按照遥控指令帧格式组装,组装后的遥控指令经并串转换、信号隔离、电平变换后,发送给卫星,板卡还可以发送生成的虚拟遥测数据,由遥测板卡接收,进行环路自测试。测控设备软件负责板卡的参数设置和状态查询,实现遥测数据帧同步,通过网络端口上传遥测数据帧、接收遥控数据、通报设备工作状态。其组成框图如图1所示。
2 硬件设计
2.1 通用化板卡设计
为使设备具有通用性,在设计硬件板卡时,采用“通用前板+专用背板”的设计方法。前板放置CPCI接口芯片(PLX9054)、FPGA(EP1C12QC2048)以及二者的配置电路,将FPGA的IO管脚通过CPCI接插件送至背板,背板则根据信号相应的电气特性要求,设计不同的电路,然后将信号连接到CPCI接插件上,实现与FPGA相连。这样前板只需负责信号逻辑处理,不需考虑信号的具体电气特性;后板只负责实现硬件接口所要求的电气特性,不涉及信号的逻辑处理。因此,前板可以看成通用的信号处理板,当需要实现不同的功能时,只需改变FPGA内逻辑和重新设计相应背板即可,前板不必重新设计,极大节省了设计时间。这种设计方法可以在对信号处理速度要求不高(10 Mb/s以下)、接口特性相对简单的场合应用。
2.2 FPGA逻辑设计
2.2.1 遥测接收卡逻辑设计
遥测接收模块如图2所示。模块具有1路遥测PCM解调通道和1路用于闭环测试的自测试接收通道。遥测PCM数据进入解调通道后,首先进行信号隔离,实现星上设备和地面设备的隔离保护。隔离后信号分成3路,2路作为分路输出,经信号隔离后输出给下级设备,另外1路作为解调数据。输入的PCM数据可以是NRZ-L/M/S 3种码型之一。如果输入的是NRZ-M/S 2种中的1种,则码型转换电路对其进行差分解码,转换成NRZ-L输出。串并转换模块将接收的串行PCM遥测数据转换为并行数据,写入同步FIFO,以供测控设备软件读取。
自测试接收通道有2种可选模式:(1)接收遥测数据帧,用于遥测PCM解调通道模块的自检;(2)接收遥控数据帧,用于遥控PCM调制模块的自测试以及在设备工作时接收遥控PCM调制模块发送的遥控指令,向测控主机反馈指令的发送状况,2种工作模式能够使用软件切换。其工作流程和解调通道类似,均是将接收数据串并转换后写入同步FIFO,以供计算机读取。
由于测试通道要求既能够接收遥测数据又能够接收遥控数据,并能够灵活切换,而且遥控方式也要比较灵活。如果直接在硬件上同步会比较复杂,而且系统的码速率比较低,采用软件处理其速度完全能够满足要求。故将接收数据在软件上进行帧同步或遥控指令检测的实现方法。
2.2.2 遥控指令发送卡逻辑设计
遥控指令发送模块如图3所示,模块具有1路遥控指令发送通道和1路用于闭环测试的自测试发送通道。由于遥控指令是突发的,为防止FPGA的FIFO出现数据无法全部读出的情况,使用2块双口RAM交替缓存遥控指令,1块作为工作区存储正在发送指令内容,另1块作为存储区存储下次发送的指令内容。发送遥控指令时,首先由主机软件将指令内容存入RAM,然后查询上一帧数据是否发送完毕,如果发送完毕,则启动1次发送。发送时序列生成器首先根据设置的前导序列长度和样式发送前导序列,然后序列生成器在内部产生的PCM时钟的作用下串行输出PCM数据,当1个Byte串行移位结束后从双口RAM下一地址中取数,继续移位操作。当遥控指令发送完之后,FPGA将根据软件的设置继续发送预设好的填充序列,直到启动下一次发送。发送的数据通过码型变换器变换成设置的码型。输出的PCM时钟可设为常发或突发模式,当处于常发模式时,无论有无遥控指令,均输出时钟;当处于突发模式时,只有发送遥控指令时才有时钟输出。
自测试发送通道,在结构上与遥控发送通道类似,只是自测试通道需要产生连续的遥测数据,使用RAM无法实现,故使用FIFO作为数据缓存,测控软件在查询到硬件FIFO中有足够的空间后,将1帧遥测数据写入,FPGA依次将FIFO中的数据读出,通过并串转换及码型变换后送到数据源选择器,软件根据当前的工作模式选择输出。如果工作在转发遥控数据模式,数据源选择器将会输出遥控发送通道产生的遥控PCM数据和时钟;如果工作在发送遥测数据模式,将会把自测试通道产生的遥测数据送出,从而使得自测试通道既能够发送遥控数据,又能够发送遥测数据。
3 软件设计
3.1 驱动程序开发
常用的嵌入式操作系统有VxWorks和Windows2000 由于Windows2000通用、软件资源丰富、易于使用和扩展,本设计选择Windows2000作为操作系统平台。
在Windows环境下,常用的驱动程序开发工具有WindowsDDK、Driverstudio和WinDriver。前2种工具需要开发人员具有系统内核层次的知识,开发周期较长且难度较大,而WinDriver可以在用户模式下编写驱动程序,其函数库提供了大量的API函数,便于调用。另外,WinDriver针对PCI9054特别编写了API函数包,这些函数能够方便地实现中断处理、DMA传输、I/O操作、内存映射以及即插即用等功能[4],可以满足一般的设计要求。故本设计选用WinDriver作为驱动开发工具。其开发流程如下:
(1) 在Driver Wizard下选择需要生成驱动程序的硬件板卡。
(2) 生成INF文件。
(3) 探测硬件,Wizard会自动探测硬件资源。
(4) 测试硬件,包括读/写I/O Port、Memory space和相关寄存器以及监听硬件的中断。
(5) 生成Driver Code。
(6) 修改设计代码,完善驱动程序的功能。
3.2 控制软件组成
控制软件由板卡控制模块、遥测参数设置模块、遥控参数设置模块、数据接收模块、指令发送模块、网络通信模块6部分组成,组成框图如图4所示。
板卡控制模块作为控制软件的基础,控制板卡的打开、关闭、初始化、读、写、中断等操作。遥测参数设置模块根据网络指令,设置遥测帧同步字、帧长、码型等参数,提交当前设备的工作状态。遥控参数设置模块根据网络指令,设置遥控指令长度、码型、前导序列长度、图样、是否校验等参数,提交当前设备的工作状态。数据接收模块完成遥测数据帧同步、遥控指令自环接收和统计误码率,提交同步后的遥测数据和误码率统计结果。遥控指令发送模块将接收的遥控指令内容写入板卡的缓存RAM中。网络通信模块实现本地设备和总控设备的网络通信,解析总控送来的遥控指令内容,上传同步后的遥测数据,设置设备的工作参数,上传设备当前工作状态。
3.3 软件帧同步
由于输入的遥测数据码速率较低(<100 Kb/s),为了简化硬件设计,使用软件完成帧同步的工作。遥测帧同步器按照设定的格式搜索数据流中按照帧长关系反复出现的帧同步字,从而按照定义好的格式输出同步后的数据。帧同步器按照如图5所示的逻辑状态进行工作。图中,帧同步容错参数为0~3 bit可设;校验至锁定次数(L2)参数为0~7次可设;保护至锁定次数(L3)参数为0~7次可设。
(1)帧同步器处于搜索状态,在此状态下,每到来1个新的数据位,遥测帧同步器都将移位寄存器中的数据与设置的帧同步字进行比较,在某些通信方式(如PSK)的解调过程中,会引入相位模糊。在这种情况下,PCM数据有可能与发送方发送的信息是全部反向的。而PCM解调器在进行帧同步的过程中,通过对帧同步字数据反转状态的判别,可以在发生数据反转时自动将接收到的数据反向,以实现自动适应相位模糊的功能。考虑到误码的存在,比较时并不要求全对,只要满足容错(M)参数(0~3 bit错误)要求即可。当搜索到同步字后,即进入校验状态。
(2)在校验状态下,每隔帧长乘以8个bit,再将当前移位寄存器中的数据与设定的帧同步字进行比较,如果不正确,则表示搜索状态获得的比较结果可能是错误的(如当数据域中出现与帧同步字相同的序列),回到搜索状态重新搜索同步。当在校验状态连续L2次比较均正确后,即认为帧同步锁定,开始接收数据帧。
(3)在锁定状态也会每隔帧长乘以8个bit检查同步字是否如约出现,如果没有出现,便进入保护状态。
(4)在保护状态下,如果连续L3次如约收到帧同步字,则回到锁定状态;否则,返回搜索状态重新搜索同步。
4 设备测试和使用
本设备在交付前由用户方进行了详细的测试,测试范围包括接口电气特性测试、功能测试、老化测试等,测试结果各项指标均达到了技术要求,设备于2008年3月交用户使用。通过一年来设备的运行状况以及用户反映,证明该设备具有可靠性高、测试快速准确、操作简便等优点。
基于CPCI的卫星PCM测控测试设备采用目前广泛使用的先进测控总线标准CPCI总线技术研制而成,研制周期短,升级简单,只需稍作更改便可以应用于其他项目的测试工作,具有广阔的应用前景。
参考文献
[1] 于兵,张为公.基于CPCI接口的视频采集卡的设计[J]. 测控技术, 2008(7):20-22.
[2] PICM. PICMG2.0 D3.0 Compact PCI specification[S]. 1999.
[3] 赵肖东. 基于CPCI的高速数据传输卡设计[D]. 北京:中国科学研究院研究生院(电子学研究所),2006.
[4] 韩慧,于守谦. 基于PCI总线图像采集卡开发的图像处理系统[J]. 计算机测量与控制, 2003,11(6):455-457.