李 娟,周井泉
(南京邮电大学 电子科学与工程学院,江苏 南京210003)
MIL-STD-1553总线是美国20世纪80年代制定的第一个军用数据总线标准,它是一种串行的数据总线。该总线标准自制定后广泛应用于军用飞机、车辆、船舶中,并鉴于其高可靠性和灵活性,逐渐应用在许多其他机动平台上。
1553 B是一种时分制指令/响应式多路传输数据总线,总线上的所有消息传输都由总线控制器发起,远程终端对发出的指令应给予回答(响应)并执行相关操作。这种方式非常适合集中控制的分布式处理系统。1553B总线通信系统是由总线控制器、远程终端、总线监控器三部分组成。一个通信总线上最多可以挂32个远程终端,传输介质采用屏蔽双绞线,对噪声等干扰有很好的抑制能力。1553B总线的数据传输率为1 Mb/s,在一次消息传输中最多可以传送32个字,所有单次传输的时间较短,具有很好的实时性[1]。
在MIL-STD-1553总线通信系统中,总线接口板是系统的关键部分,其中核心部分的接口电路是总线应用中的主要制约因素。在1553B总线得到广泛应用的今天,国内应用1553B总线协议的通信模块的解决方案多采取基于进口1553B总线协议芯片来开展相关设计,如UT公司的UTl553B协议芯片、DDC公司的高级协议处理芯片BU-61580等,虽然这些芯片能够完成协议功能,但价格昂贵、灵活性差,这些弱点在一定程度上限制了设计能力,因此提出一种新的基于嵌入式方法实现的1553B数据总线接口逻辑。
本文采用Xilinx公司的FPGA芯片作为协议处理核心器件,选用TI公司的TMS320C5510作为主处理器负责接收FPGA处理过的数据和调度FPGA的具体操作。总体方案的系统结构如图1所示。
由于1553B总线上传输的是双极性的差分信号,主处理器不能直接接收来自总线上的数据,所以需要信号调制解调及电平转换电路。
电平转换部分一方面将总线上传输的电平信号转换成标准的CMOS电平供处理器使用,另一方面将处理器发出的CMOS信号变成总线标准进行传输。模拟收发器部分简单地说就是将单极性曼彻斯特编码和双极性曼彻斯特编码相互转换。本文采用HOLT公司的HI-1567PSI,它是一款专门为 MIL-STD-1553开发的模拟收发器,供电电压为3.3 V,通过隔离变压器连接到总线上。HI-1567PSI是双通道收发器结构,因此要有两个隔离变压器与其相连接。
数字通信部分是1553B总线接口模块的核心,完成协议数据的收发处理,由可编程逻辑器件Virtex系列芯片和DSP芯片组成。FPGA芯片在模块中起到1553B通道的作用,接收总线上送来的数据并根据协议进行处理之后送给处理器。FPGA模块中开辟了足够空间的FIFO存储处理后的数据,当达到一定数量后,主处理器采用中断的方式读取FIFO中的数据。在本文的设计中,为了便于观察实验结果,将DSP接收到的数据送到串口上进行显示。同样地,DSP将要发送的数据送到FPGA开辟的另一个FIFO中,当每个数据编码结束后通过状态机程序产生FIFO信号的时钟读取下一个数据进行编码,所以这里的FIFO采用的是异步的工作方式。
总线接口模块最主要的部分是FPGA实现的功能,其总体功能如图2所示。
FPGA中最重要的部分是发送器和接收器,现将这两部分的工作过程做简要分析。
(1)DSP将要发送的数据依次送到发送 FIFO中进行存储,硬件将根据状态机运行情况产生FIFO读时钟读取数据并送到同步头产生器。
(2)根据要发送的是状态/命令字或数据字在同步头产生器中加上相应的同步头,若是状态/命令字则在有效数据前加上3个二进制位,先正后负,正负电平各占1.5 bit,数据字则相反。
(3)奇偶校验器通过将有效数据位的各位进行异或即可实现。
(4)硬件将经过奇偶校验器的数据送到曼彻斯特编码器进行编码,编码器的实现相对较简单。编码时钟采用2 MHz,有效数据位和奇偶校验位都采用曼彻斯特码的形式发送,加上同步头共40 bit二进制位,使用2 MHz的时钟发送到1553B数据总线上[2]。
在数字发送部分控制状态机是保证时序的关键所在,状态机不仅控制发送FIFO的时钟,同时也有效地输出编码的触发信号。状态机的状态转移如图3所示。
(1)FPGA将经过模拟电路后的单极性曼彻斯特码送到同步头检测器,提取同步头后进行奇偶校验,然后再送到解码器。
(2)解码器采用 8 MHz的时钟进行采样,由于曼彻斯特编码在时钟的中间时刻有电平的跳变,所以在采样到跳变沿的下一个时钟将采样到的数据取反就得到二进制码。同时,当计数器计数到132时对一个有效数据字解码结束产生使能信号停止采样,将17 bit二进制数放到移位寄存器中实现串并转换。
(3)解码器在解码完一个数据后会产生接收FIFO的时钟信号,将数据送到接收FIFO中,当FIFO中达到可编程满设定的数据后便产生中断信号,通知DSP将数据读走。
在研究分析了1553B总线接口模块的功能及系统设计[3-5]后,在实验室经过PCB设计投产了两块板卡,搭建了实验平台并进行功能验证。由于实验室条件有限,功能验证的设计流程是将发送模块DSP发送的数据经过FPGA处理,得到曼彻斯特编码,并经过模拟收发器、耦合变压器后连接到接收模块的输入端,信号经过模拟电路部分送到FPGA解码后送给DSP处理[6-7]。
在总线接口模块中,曼彻斯特编解码是实现功能的核心部分,所以编码数据和解码数据是进行功能验证时观察的重点。为了观察曼彻斯特编解码是否正确,这里采用Xilinx的Chip Scope逻辑分析仪观察数据,serial_data是发送模块经过编码部分处理后的串行数据,rx_dword是接收模块中经过解码部分得到的16 bit数据,对比这两个数据的波形是否满足曼彻斯特编码标准即可验证设计的准确性,用Chip Scope捕捉到的波形如图4所示。
从上面的波形图中可以看到,busy信号在编码的过程中一直为高电平,在编码结束后的一个编码时钟周期内为低电平。rx_dval信号在解码结束的一个解码时钟周期内为高电平,说明此时解码结束,接收到的数据rx_dword为5 678,对比发送的数据和编码数据serial_data,说明编解码均正确。
同时,为了观察DSP发送的数据与接收模块DSP接收的数据是否正确,提高测试数据的直观性,在这里加上串口调试助手,通过RS232总线传输接收数据,于PC机平台上运行串口调试助手观察接收数据。
在分析了1553B总线接口模块的功能后介绍了总线接口部分的FPGA系统设计,在搭建的平台上进行了功能验证,实验过程中获得的数据表明了论文中设计的接口模块的功能达到了预期目标要求。
[1]DDC Company.MIL-STD-1553 Designer’s Guide.pdf[S].Sixth Edition.1998.
[2]CONDOR ENGINEERING.MIL-STD-1553 tutorial.pdf[S].1997.
[3]武恒州,王维.基于FPGA的1553B总线控制器接口芯片设计[J].仪器仪表用户,2010,17(3):45-46.
[4]陈卫涛,史忠科.基于FPGA的1553B总线系统设计与实现[J].测控技术,2008,27(8):74-76.
[5]汤清华,曾婷婷,吴国安.1553B多路总线接口的FPGA设计[J].设计与应用,2007,15(4):501-502.
[6]程希,罗志会,陈小刚.一种基于FPGA的曼彻斯特编译码电路设计[J].2008,30(6):85-87.
[7]何鹏.基于DSP+FPGA的1553B总线接口通讯模块的研究和应用[D].西安:长安大学,2009.