国家863项目“飞行控制计算机系统FC通信卡研制”的任务是研究设计符合CPCI总线标准的FC通信卡。本课题是这个项目的进一步引伸,用于设计SCI串行通信接口,以实现环上多计算机系统间的高速串行通信。 本文以此项目为背景,对基于FPGA的SCI串行通信接口进行研究与实现。论文先概述SCI协议,接着对SCI串行通信接口的两个模块:SCI节点模型模块和CPCI总线接口模块的功能和实现进行了详细的论述。 SCI节模型包含Aurora收发模块、中断进程、旁路FIFO、接受和发送存储器、地址解码、MUX。在SCI节点模型的实现上,利用FPGA内嵌的RocketIO高速串行收发器实现主机之间的高速串行通信,并利用Aurora IP核实现了Aurora链路层协议;设计一个同步FIFO实现旁路FIFO;利用FPGA上的块RAM实现发送和接收存储器;中断进程、地址解码和多路复合分别在控制逻辑中实现。 CPCI总线接口包括PCI核、PCI核的配置模块以及用户逻辑三个部分。本课题中,采用FPGA+PCI软核的方法来实现CPCI总线接口。PCI核作为PCI总线与用户逻辑之间的桥梁:PCI核的配置模块负责对PCI核进行配置,得到用户需要的PCI核;用户逻辑模块负责实现整个通信接口具体的内部逻辑功能;并引入中断机制来提高SCI通信接口与主机之间数据交换的速率。 设计选用硬件描述语言VerilogHDL和VHDL,在开发工具Xilinx ISE7.1中完成整个系统的设计、综合、布局布线,利用Modelsim进行功能及时序仿真,使用DriverWorks为SCI串行通信接口编写WinXP下的驱动程序,用VC++6.0编写相应的测试应用程序。最后,将FPGA设计下载到FC通信卡中运行,并利用ISE内嵌的ChipScope Pro虚拟逻辑分析仪对设计进行验证,运行结果正常。 文章最后分析传输性能上的原因,指出工作中的不足之处和需要进一步完善的地方。