单立超,谢雪松,张小玲,李 超
(北京工业大学 微电子可靠性研究室,北京100124)
遥测系统一般由输入设备、传输设备和终端设备组成。按其使用信道的方式,可分为时分制遥测系统、频分制遥测系统和码分制遥测系统[1]。脉冲编码调制(PCM)在遥测系统中占主导地位。在进行多路传输的PCM遥测系统中,待测参数可以是模拟信号或者是数字信号,也可以是数字和模拟混合信号。这些信号包括速变信号、缓变信号、负脉冲信号和阶跃信号。对于模拟信号,需要将其转换成数字信号,再经过PCM多路复用器,按一定的格式由程序控制器完成格式控制,使PCM遥测信息呈现出具有一定周期的数据结构形成串行的PCM码元序列。PCM遥测信息完成组帧后,通过调制发射出去。
在数字通信系统中,一般采用时分复用方式提高信道的传输速率。所谓时分多路复用(即时分制)即利用各路信号在信道上占有不同的时间间隔的特征来分开各路信号[2],其特点是:各路信号在频谱上是相互重叠的,但在传输时是彼此独立的;任何时刻,信道上只有一个信道在传输[3]。
数据以帧为单位传输,每一片段称为一帧,帧的长度称为帧周期。在每一个帧内,一般还要分为等时间间隔的小段,这些事件小段的分配决定帧结构的构成方式。通常,将这一小段称作子帧,而包含子帧的结构叫做复帧[4]。
在数字通信系统中,一般采用时分复用方式提高信道的传输速率。满足复接条件的低速支路码流进行复接时,根据码流的具体汇接方式分为逐位复接、按字复接和逐帧复接。本文采用按字复接[5]。因为本例包括8路数字信号和16路模拟信号,按字复接有利于数字电话交换,降低设计难度,但同时要求有较大的存储容量。为了既不丢失信号的信息又能合理利用信道,对于不同速率的参数,应在复帧基础上用不同的子帧来实现。数字通道在复帧的固定位置(即占复帧前88 B),模拟通道占160 B,帧计数占 4 B,复帧同步码有 4 B,因此就构成了复帧的256 B。这样就提出一个问题:模拟信号有16路,每一路表示一个单独信息。对于模拟信号一个子帧必须包括16路信息;每路采样率为3 200 S/s,32个采样点组成一路信息为一个周期,则一个子帧有16×32=512 B。这样,一个复帧长度小于子帧,为此就需要多个复帧构成一个子帧。解决这个问题的方式是在有些复帧中插入子帧同步码。图1是帧结构示意图,其上半部分有子帧同步码,下半部分没有子帧同步码。
由于数字部分数据在复帧的位置固定,一个复帧的数据中每个字节都是一个位置,所以可以用一个寄存器来表示,将数字通道数据、帧计数、复帧同步码插到预定的位置。由于传输数据在变化,如:数字通道的刷新率是60 ms(即60 ms出现一帧),有时没有数据(也就是说没有采样数据),这时可以用填充位来填充位置从而确保数字通道位置固定。但是,模拟部分如果没有采集到波形,则可以视为采集到直流的波形。在PCM遥测体制中,PCM遥测编码器采用硬件实现。遥测系统中,由于不同测量目的所需要的遥测参数的数量有所不同,为了保证遥测系统的相对通用性,往往都是以最多测量参数为基准进行设计,且留有冗余的通道。本例中无论8路数字信号还是16路模拟信号都是最大支持通道。考虑到数字分接的难易程度,本系统还提供与原数据高度匹配的随路时钟。
数据复接系统面临着数据滑动或溢出的问题,解决这个问题需要在复接前对各路不同类型的数据进行码速率调整,同时保证定时和时钟同步精度。因缓冲区的容量不可能很大,解决数字信号滑动问题的关键是不能在FIFO写满时读出,读出速率不能小于写入数据速率。可根据需要适时加入填充位,以调整写入、读出速率,防止信息的丢失或溢出。在数字部分中,缓冲器之间可以有一个握手协议,即当组帧部分读取一个数据时计数器减1,而当一帧数据来到时可以屏蔽组帧部分读取,再根据计数器计算地址完成一帧数据赋值,以免数据丢失。在传输协议中,可以加入特定的数据位来指示数据传输的状态信息,比如对帧的数量进行计数。
图2为完整的基于帧的同步数字复接通信系统原理框架,图中线框内分别是数字复接系统。由图可知,遥测数据编码由模拟开关、信号调理模块、电平转换、数据复接器(FPGA组帧单元)构成。外部M个通道的低频数据经过模拟开关后提取出一路信号,再经过A/D转换芯片将其转换成数字信号。外部N-M数字信号由电平转换单元将传输电平转换为TTL电平,再经过一个FIFO缓存器和数据复接器对数据缓冲区中的M个支路的原始数据进行复接后送入编码信道进行传输。
复接系统主要由FPGA Cyclone 3C25、模拟开关ADG506A、模/数转换器ADC(AD7899)以及电平转换器等几部分组成,采用HDL、C语言开发设计。整个系统集成在印制板上,能够满足升空平台对设备体积、重量和功耗的要求。
FPGA主要向模拟门提供选通信号编号,将数据组帧,并且提供随路时钟。模拟门主要是对模拟信号的选通和模拟信号的放大[6]。电平转换模块是将数字信号的其他形式电平转化成TTL电平。采用FPGA设计,系统具备开放性,可以通过加载软件,在不改变硬件的条件下很方便地增加新的功能模块。采用模块化设计使开发过程简化,便于系统的调试,提高研究的效率,系统的升级只需要对软件进行更新。
在数字通信系统中,一般采用时分复用方式提高信道的传输速率。所谓时分多路复用(即时分制)是利用各路信号在信道上占有不同的时间间隔的特征来分开各路信号[4]。而状态机的状态可以代表不同的时间间隔,状态机的顺序操作是以不同时间间隔进行转换的。综合以上分析,利用状态机来实现组帧如图3所示。
首先系统要提供一个819.2 kHz的时钟、FPGA提供50 MHz的时钟。所以这需要一个50 MHz/0.819 2 MHz=61的分频器来提供时钟。这个时钟不仅是状态机的工作时钟也是组帧单元提供的随路时钟。在随路时钟还要有一个每2 048 bit有一个高电平脉冲作为状态机的启动信号(start),同时也是一帧的开始。此外,还要有位计数器Fram_CNT(表示一帧的每一位)清零,其余时刻做加1操作。当分频器来一个高电平脉冲、状态机由idle状态进入RX1状态时,双方通过一个握手协议将1 B数据放在8 bit缓冲器中,8 bit缓冲器再赋值给一个8 bit FIFO单元。FIFO单元再经过一个并/串转换输出串行的码流。延时8个时钟周期以后进入RX2状态;进入RX2状态以后重复状态RX1的操作;当在RX8状态时,则判断RX_CNT是否为 88,是则进入 MN1,否则进入 RX1。
当进入状态MN、MN_CNT=0时,要在序列中加入子帧同步码,然后将采集的数据放在24 bit缓存器中,24 bit缓冲器再赋值给一个24 bit FIFO单元。FIFO单元再经过一个并/串转换输出串行的码流后,MN_CNT加1,计算地址(A0A2A3A4)=(MN_CNT-1)%16,然后发送地址(A0A2A3A4),选通模拟开关,在此状态延时 4个周期,等待模/数转换器转换完进行数据采集。再将采集的数据放在16 bit缓存器中,16 bit缓冲器再赋值给一个16 bit FIFO单元。FIFO单元再经过一个并/串转换输出串行的码流,并同时计数MN_CNT加1。当MN_CNT为256时,对 MN_CNT清零后,发送地址(A0A2A3A4),重复以上的操作。同时在另一模块中,将16 bit寄存器地址发送到16 bit移位寄存器,在计时器为固定值时,最高位直接赋值给data,然后 16 bit移位寄存器再做并/串转换将采集数据由data输出。
当Fram_CNT=260×8,进入复帧计数器状态并在这个状态插上复帧计数时,通过一个累加器将数据放在16 bit缓存器中,16 bit缓冲器再赋值给一个16 bit FIFO单元。FIFO单元再经过一个并/串转换后输出串行的码流。
当Fram_CNT=262×8,采集的数据放在32 bit缓存器中,32 bit缓冲器再赋值给一个32 bit FIFO单元。FIFO单元再经过一个并/串转换后输出串行的码流,插上复帧同步码。
到此,一个复帧已经组建完成。
根据以上分析,基于FPGA的数据链数据复接模块程序在Quartus环境下进行仿真,能够对数字8路、模拟16路复接成一串行码流进行仿真。start表示 启 动 信 号 ;data_Rx1、data_Rx2、data_Rx3、data_Rx4、data_Rx5、data_Rx6、data_Rx7、data_Rx8 表示 8路遥测等类型数据数字信号。本次仿真依次输入1~8;data_MN表示遥测等类型数据模拟信号;本次仿真依次输入 9~24;Addr表示模拟信号选通开关仿真依次输入 0~15;data表示组帧形成的串行码流;clock表示随路时钟。
图4中由于篇幅所限没有完全表示出一帧数据,start一个高电平开始一帧数据先复接8路数字通道,然后需要模拟部分子帧帧同步码(MN_CNT=0)逐个通道发送模拟信号选通开关,再将返回的数据进行复接。此外,还要对帧总数计数,以便计算传输和解码是否发生丢帧。最后是复帧同步码,以实现码、字同步。图4(c)、图4(d)是程序下载到开发板用signal tap ii观测到的波形。图中,framout分别是检测到复帧同步码、子帧同步码输出一个高电平。经过程序仿真后,不同遥测数据成功组帧并能够按照选定速率进行传输。
本文对基于FPGA的混合遥测数据复接技术进行了研究,并结合典型实例进行了设计的仿真验证。结果验证了该项技术能够有效地融合和传输各种类型的遥测数据。整个系统具有模块化设计、开放性、灵活性、体积重量小、功耗低等突出优点,同时节省了信道资源,提高了信息传输效率。
[1]孙义明,杨丽萍.信息化战争中的战术数据链[M].北京:邮电大学出版社,2005:1-5.
[2]张力军.通信原理[M].北京:高等教育出版社,2008:1-5.
[3]韩松,张晓林,占巍,等.基于空中指控节点的信息分发模型及时延分析[J].系统工程与电子技术,2009,31(11):2677-2681.
[4]宋学瑞,蔡子裕,段青青.基于FPGA的数字复接系统的设计与实现[J].计算机测量与控制,2008,38(6):1174-1176.
[5]邓岚,郭勇,赖武刚.基于FPGA的数字复接器的设计[J].微计算机信息,2007,23(11):209-210.
[6]滕克难,董云龙,盛安冬.多传感器异步融合技术研究[J].系统工程与电子技术,2010,32(2):221-225.