欢迎来到专业的新思文库网平台! 工作计划 工作总结 心得体会 事迹材料 述职报告 疫情防控 思想汇报 党课下载
当前位置:首页 > 范文大全 > 公文范文 > 正文

基于FPGA的处理器间高精度时钟同步通信机制

时间:2022-10-28 10:35:04 来源:网友投稿

设计基本相同,共用单元包括1553B总线接口电路组成,共用单元与主控单元、备控单元分别通过独立接口进行通信。

1.2 应用背景

为了保证双处理器数据处理模块的主、备处理器间任务调度、切换和主、备单元各总线交换数据的一致性,需要在主、备处理器之间建立一种相互监听的同步通信机制。根据双处理器数据处理模块在嵌入式数据信息交换平台作为的核心控制角色,需要在高速的数据处理和ms级任务调度的情况下,完成主备处理器间的同步通信,需要一个ns级的同步通信通道。需要论证一套同步脉冲(周期1 ms,占空比10%)收发系统,实现发射与接收端脉冲信号时间抖动均方根值小于200 ns,并且保证发射端和接收端的脉冲上升沿相位差固定[1],其抖动也小于200 ns。

2 同步通信机制设计

2.1 硬件电路设计

2.1.1 FPGA选择

由于PowerPC处理器对时钟信号的上升和下降沿,以及时钟上升沿的爬升速度要求极高,减少整个双处理器数据处理模块的时钟源数量(减少电磁干扰);因此需要精确的时序控制和可定制的系统配合能力才能满足处理器间的同步通信;因此具有数字时钟管理器(Digital Clock Manager,DCM)的FPGA具备精准的倍频、分频、相位移动和时钟去偏斜等功能满足处理器间同步通信的功能需要[2]。

利用高稳定度和高精度的外部时钟源为FPGA提供参考时钟和为处理器提供系统时钟,FPGA内部的DCM模块去除时钟偏移时,能消除时钟分配的延迟,完成时钟的闭环控制,提供同步通信脉冲的基准时间。因此,设计选用国微公司的新一代军品级全温度工作范围(-55~125 ℃)VirtexⅡ系列SMQ2V1000FG456芯片[3],FPGA是基于8层金属的0.12 μm CMOS 逻辑工艺加工制造。其中密度为100万等效系统门,300 MHz内部时钟速度(Advance Data,系统频率最高可达300 MHz,指的是以FPGA 芯片内部逻辑单元间的最小延迟时间为依据计算出来的逻辑电路可达到的理论最高速度,并不代表外部端口特性或用户系统能达到此频率值),622 Mb/s 的I/O(Advance Data),具有10 240个内部带时钟使能的寄存器/锁存器,8个DCM模块(精确的时钟去偏斜,可变的频率综合,高分辨率的相移),16个全局时钟多路缓冲器时钟控制块,适合用于复杂逻辑以及有存储、缓冲功能的数据采集系统中。

2.1.2 同步通信电路实现

双处理器数据处理模块的主备处理器都配对了一个FPGA,它主要负责对主备处理器的相关资源进行分配和实时接口资源控制,可以利用这个资源管理的FPGA和处理器匹配电路的时钟源[4],在每个与CPU配对的FPGA中实现一个脉冲发生器和脉冲接收器,通过一个处理器的配对FPGA中的脉冲接收器去监听另一个处理器配对FPGA中的脉冲发生器是否有脉冲心跳变换,判断对方处理器的运行是否正常,同步通信电路图,如图2所示。

主处理器和备处理器分别通过主备电源同时上电,主处理器和备处理器之间通过数据通信接口达成同步握手协议。主处理和备处理器分别使能各自配对FPGA中的脉冲发生器和脉冲接收器后,进行以下两步:

(1) 主备处理器通过eLBC总线对脉冲发生器的状态进行初始化,并进行周期输入使能命令字,触发脉冲发生器发出心跳周期脉冲信号;

(2) FPGA内部实现监听寄存器对脉冲接收器的状态进行观察,当脉冲接收器接收到周期性的脉冲心跳信号后,产生周期性的中断触发信号给各自对应的处理器,处理器通过中断感应对方处理器的同步状态。

2.2 同步控制逻辑设计

2.2.1 同步控制逻辑原理设计

同步通信信号(心跳脉冲)的占空比较小,信号能量较弱,因此在传输之前需对该信号进行编码,以提高信号占空比和能量[5]。利用FPGA内部锁相环(PLL)先将外部时钟源输入的100 MHz的时钟信号进行倍频得到200 MHz时钟信号,作为信号编码的驱动时钟。

为了减小最终输出端的脉冲信号的上升沿抖动,确保200 MHz时钟信号的第200 000个脉冲的上升沿与1 kHz的上升沿对齐,并且保证编码后信号的在该时刻的上升沿也跟两路信号的上升沿对齐。同时,对第200 000个脉冲的前几个脉冲进行一定的编码,即在第199 997个脉冲的位置输出连续“0”,在第199 998个脉冲的位置输出连续的“1”,以此来作为脉冲信号上升沿的帧头识别。因此,只要在接收端识别到帧头,就可以在之后的第一个上升沿作为1 kHz脉冲的上升沿输出,并且使其输出100 μs的宽度,便可以正确的解调出1 kHz的脉冲信号。在接收端,接收到编码后的信号,可以通过高速时钟采样接收信号,等识别到该帧头后把接收信号的第一个上升沿作为1 kHz脉冲的上升沿,并且连续输出200 000个CLK的高电平来实现100 μs的脉冲,这样就产生了同步信号[1]。

2.2.2 同步控制逻辑原理实现

主CPU上电之后,首先通过eLBC总线向主FPGA内部的同步脉冲使能寄存器(EN_Plus_Register)写入“1”,使能脉冲发生器,通过eLBC向脉冲命令寄存器(Cmd_Plus_Register)写入16 b的启动命令,第1 ms写入0x”5A5A”,第2 ms写入0x”A5A5”,第3 ms写入0x”5A5A”,第4 ms写入0x”A5A5”,依次类推[6]。主FPGA中的脉冲发送状态机,每隔1 ms读取脉冲命令寄存器的值,若数据值为0x”5A5A”和0x”A5A5”交替出现,则认为主处理器工作正常,发送心跳脉冲信号(周期1 ms,占空比10%)到备FPGA的监测接口寄存器。

备FPGA中的内部监测心跳信号状态机,监测心跳脉冲信号(周期1 ms,占空比10%)的上升沿数量,当上升沿的数量≥5(每隔5 ms)时,触发一次备处理器的同步正常中断(IRQ2中断,中断信号持续时间为2 ms),备CPU进入中断服务程序后,首先关闭备处理器的IRQ2中断,同时上报主处理器同步通信状态正常。

若主FPGA的脉冲发生状态机读取脉冲命令寄存器(Cmd_Plus_Register)的值,不是X”5A5A”和X”A5A5”交替出现,或者同一命令字重复出现两次时,则认为主处理器工作异常,主FPGA中的脉冲发生状态机停止发送脉冲同步信号,同时备FPGA中的脉冲接收器如果持续20 ms,未接收到主FPGA发送的周期性脉冲信号,则备FPGA中的脉冲接收状态机触发备处理器的同步异常中断信号(IRQ1中断),备FPGA触发备FPGA中断信号(一旦使能,就一直保持),备处理器进入中断服务程序,关闭备处理器的IRQ1中断,报主处理器的同步信号异常。主处理器监控备处理器的同步通信信号的实现原理一致。如图3所示。

处理器配对FPGA中的同步通信监控逻辑程序如图4所示,并将逻辑控制部分的信号说明如表1所示。

3 同步通信机制验证

为了进一步确保处理器间的时钟同步通信设计的可实用性,将该时钟同步通信机制在本文提到了双处理器数据处理模块中进行了应用,同时在工程应用中了相应的专项测试数据,如表2所示。

表1 FPGA的同步通信控制逻辑寄存器说明表

表2 时钟同步通信机制工程应用

通过工程测试,基于FPGA的同步通信机制主要由以下几个优点:

(1) 以处理器的eLBC总线功能是否正常作为处理器正常工作的判断标准,提高了双处理器数据处理模块的可靠性;

(2) 采用FPGA协助完成故障检测功能,减轻了处理器的资源消耗,提高了双处理器数据处理模块的运行效能。

参考文献

[1] 李超然,郑建生,林炳章.基于FPGA 的同步脉冲传输系统设计[J].通信技术,2011,44(6):6⁃8.

[2] 贾亮,马兴,孙伟,等.基于Xilinx FPGA DCM的研究与设计[J].电子测量技术,2014,37(10):85⁃88.

[3] 佚名.SMQ2V1000FG456产品数据手册第A版[EB/OL].[2013⁃01⁃18]. http://wenku.baidu.com/link?url=GBU0-TZu1VYIhia5bj2rgmLscBIHb6vtJD70Ef1EN1IiYayC0MUnGpUVMWMGyJCCFtKfc7eJoR914EabwGW4sW-MK6IkrPSp37_SbRoJhS.

[4] 张东升,张东来,秦海亮,等.基于FPGA的高速采集系统设计与实现[J].电子技术应用,2006,32(5):76⁃79.

[5] 李向涛,仵国峰.FPGA同步设计技术[J].无线通信技术,2003,12(3):58⁃61.

[6] 林长青,孙胜利.基于FPGA的多路高速数据采集系统[J].电测与仪表,2005,42(5):52⁃54.

推荐访问:时钟 处理器 同步 机制 通信