基于PowerPC的1553B总线设计
2012-09-30郭立俊杨志谦
郭立俊 杨志谦
(中国电子科技集团公司第38研究所 合肥 230088)
1 引言
1553B总线是MIL-STD-1553总线的简称,是一种集中式时分串行总线方式,主要功能特点有分布处理、集中控制和实时响应等,其可靠性机制包括防错、容错及错误的检测与定位、错误的隔离、错误的校正、系统监控、系统功能恢复、系统冗余设计等,保证了指令传输的可靠性[1]。综合起来分为以下几个特点:一是实时性好,数据传输率为1Mbps,每个消息最多有32个bytes;二是有效的差错控制和命令方式,为了确保数据传输的完整性,数据总线采取了合理的差错控制措施——反馈重传纠错方法;三是总线效率高,总线形式的拓扑结构对总线效率要求高,为此1553B总线对涉及总线效率指标的某些强制性要求如消息间隔时间、响应时间及每次消息传输最大和最小数据块的长度都有严格限制;四是有命令/响应及“广播”通讯方式。
需要传输的信息嵌在由消息构成的信息帧中。每个消息包含数目不同的字,有控制字、状态字和数据字等,每个字占用20个时钟周期,其中前3个时钟周期为标志位,用于区分字的类型,最后一个时钟周期为奇偶校验位,其余16个时钟周期为有效信息位。
PowerPC是嵌入式系统设计的发展趋势,不仅具备了一般嵌入式系统的高可靠性的优点,而且绝大部分的功能都是在一个芯片中完成设计,集成度高、稳定性好,可以满足军事设备的研制及批量生产要求。可以广泛地应用于数据采集系统和复杂的多CPU的分布式控制系统中,并且通过在线重构FPGA内部的逻辑设计,方便实现系统功能升级[2]。
2 系统架构
根据系统功能模块划分可以得出功能模块示意图如图1所示,PC机主要作为控制和显示终端,通过网络接口连接功能插件。功能插件主要包括电源输入模块、SDRAM、存储器、内嵌 PowerPC硬核的FPGA、匹配接口电路以及程序加载电路等,通过调用FPGA内对应的IP核,能够快速方便的实现接口功能,达到深嵌入式的系统设计,符合功耗低、体积小、功能强的航空设计理念。总线转换器又称模拟收发器,是1553B接口总线的关键部件,采用双向码的曼彻斯特码,本身包含了自定时信息,它能与变压器耦合相协调,作为模拟发送器时,主要是接受曼彻斯特II型单相TTL数据并将其转化为差分的相位调制的双相1553B总线数据;作为模拟接收器时主要是将总线上的1553B类型的双相差分数据转变为单相的TTL电平数据。
系统的硬件设计围绕FPGA芯片以及外围接口电路器件展开,FPGA一方面完成控制系统的指令处理和反馈,另一方面解决1153B通信协议的开发。在硬件设计中,1553B协议模块挂接在Power-PC的OPB总线上,为了方便与PC机通讯,还挂接了一个UART和LAN的IP核,连接OPB总线到外部芯片的数据、地址和控制信号产生满足1553B接口芯片读写时序要求的接口信号,从而使PPC硬核能够控制接口片,实现对其内部寄存器和RAM的读写操作。
图1 系统模块示意图
3 硬件设计
3.1 硬件系统概述
在本系统设计中,硬件设备主要包括一片Xilinx公司的XC5VFX30T FPGA芯片和1553B总线的协议芯片DDC公司的BU-61580,设计的主要思想是充分利用FPGA芯片的片上资源,构建一个以PowerPC440处理器硬核为核心的嵌入式计算机系统,在FPGA芯片内部实现此系统的应用软件程序存储、总线架构、地址译码和系统调试等功能,设计的重点工作是FPGA的用户接口对61580控制时序生成,系统结构框图见2所示。
其中JTAG调试连接PowerPC微处理器核和JTAG链;reset核控制FPGA内各功能模块的reset复位信号;PowerPC有PLB和OPB两种总线,与各外设IP核相连,用户自定义的IP核mycore连接到OPB总线上,用于产生协议芯片的控制时序,实现对其读写等操作,另外,协议芯片的中断信号直接接到PowerPC核的中断输入管腿。
3.2 FPGA 芯片
FPGA芯片选用Xilinx公司的XC5VFX30T型号,内嵌PowerPC 440处理器硬核,包括36K bit的块RAM,运行频率高达550MHz,内核性能高于1000DMIPS,7级流水线,每个工作周期可执行多条指令,32KB64路组关联一级指令或数据高速缓存;128位处理器局部总线结构,用于连接DDR2存储器控制器的专用接口;PPC440嵌入式模块与基于FPGA的协处理器的直接连接。
除了以下资源和结构上优点以外,作为FPGA片上系统的解决方案,具有FPGA现场逻辑可编程调试、IP核重复利用、硬件集成度高等特点;同时,Xilinx公司提供专用的软件开发工具和调试工具,也使得系统应用程序编程、调试和下载灵活方便,所有的这些优势,决定了深嵌入式设计方式成为未来的发展趋势。
图2 系统结构框图
3.3 协议芯片
1553B总线接口电路协议芯片采用DDC公司的BU-61580系列,具有可编程功能,用户只需配置相应的寄存器和芯片内部的RAM即可完成对通信初始化配置,所有通信协议的实现全部由芯片内部硬件逻辑自动实现。器件可以选择在12MHz和16MHz两种时钟频率下工作,内部具有双收发器、编解码器、内存管理和中断控制逻辑等功能,此外,还提供了一个4K Bytes的内部共享静态RAM和与PowerPC微处理器总线之间的缓冲接口,软件接口包括17个内部操作寄存器、8个测试寄存器和64K Bytes的共享存储器地址空间。
3.4 电路设计
图3 接口电路原理图
1553B总线接口硬件电路如图3所示,协议芯片的数据线、地址线和控制线连接到带有处理器硬核的FPGA芯片,完成与FPGA芯片连接,也即作为FPGA芯片的一个外设器件,硬件构建结束后,通过软件工具调用相对应的IP程序包,解决硬件设备驱动,形成可构建的处理器系统。
BU-61580所有控制信号由FPGA的译码电路产生,通过中断方式与PowerPC处理器核通信,输出端通过两个耦合变压器与外部的1553B总线连接,用6位的开关电路设置终端地址。可以设置微处理器核的等待方式受READY信号控制,BU-61580选择非零等待方式,在微处理器对协议芯片进行并行总线读写操作时,BU-61580内部逻辑电路若有操作时,微处理器需要等待 BU-61580 准备好[3]。
4 1553B总线协议接口的设计与仿真
完成硬件构架后,根据系统任务需求配置相应软件驱动和应用程序,系统就可以进行工作。通过PowerPC硬核来初始化芯片内部RAM,然后配置RT(远程终端)的一组状态寄存器,用来控制RT的工作状态。数据传输后,RT对总线上接收到的命令字和数据字进行译码,并存放到接收缓冲单元中,硬核处理器将缓冲单元中的数据存放到RAM中,并根据接收到的命令字将所需要的数据字存放到发送缓冲单元中,远程终端控制器组织状态字,将其和缓冲单元中的数据字重新编码,最后发送到OPB总线上。在整个系统设计上,从IP核的选择,BSP包驱动的生成,到1553B协议程序的编写是一个紧密的过程,具体参见软件系统框图4所示。Xilinx提供了一种总线和用户逻辑的接口IPIF(IP Interface),利用它解决接口信号和总线协议,在用户逻辑看来,IPIF表现为一系列对应的接口信号,两者共同构成了用户 IP 核[4]。
在总线接口模块设计中,曼彻斯特编解码是实现系统功能的核心内容,所以系统研究的重点是验证编码数据和解码数据的正确性。为了观察曼彻斯特编解码是否正确,拟采用Xilinx系列的ChipScope逻辑分析仪工具观察系统仿真波形[5],serial-data是发模块经过编码处理后的串行数据,rx-word是接收模块经过解码得到的16bit并行数据,通过对比图5所示的数据波形,判断这两个数据是否满足曼彻斯特编码标准要求。
从仿真波形图5看出,busy信号在编码过程中始终为高电平,在编码结束后的一个时钟周期内变为低电平。rx-dval信号在解码结束后的一个解码时钟周期内为高电平,说明此时完成解码,接收到数据rx-word为5678,对比发送的数据和编码数据serial-data,表明编解码正确[6]。
图4 软件系统框图
图5 仿真波形图
5 结束语
PowerPC微处理器和1553B协议处理单元的无缝连接,既能满足大规模系统设计,又降低了系统功耗,在硬件上能够很好地符合大系统设计要求。将该系统设计的总线协议接口IP核固化到FPGA中,通过仿真效果示意图可以看出,对总线接口的时序读写符合总体要求,在具体的实际应用中能够满足功能指标。
[1]DDC.ACE/Mini-ACE series BC/RT/MT advanced communication engine integrated 1553 terminal BU-61570,BU-61580,BU-61585,BU-61590,BU-65178,BU-61588,BU-65179,BU-61688,BU-616889,BU-61582,BU-61583,BU-65620 and BU -65621 User’sGuide.JUNE 1999.
[2]马荣彪.PowerPC RISC微处理器[J].电光与控制,1995,(4):41-45.
[3]叶咏辰.基于PowerPC处理器硬核的1553B总线远置终端的实现[J].中国科学院研究生学报,2006,(3):407-411.
[4]李娟.基于 FGPA的1553B总线接口设计[J].微型机与应用,2011,(12):96-98.
[5]石红梅.用FPGA实现1553B总线接口中的曼码编解码器[J].单片机与嵌入式系统应用,2004,(4):18-22.
[6]刘曙蓉,张伟功,段青亚,宋阳.预测校正型曼Ⅱ码译码器技术研究与实现[J].微电子学与计算机,2005,(9):38-41.