基于FPGA的电子钟设计
基于FPGA的高频时钟电路设计

G A的编程可以实现不 同频率输 出。图 2 所示 为它 的部分逻辑单元 。 它 的输 出时钟频 率 f r 小 主要决 定 于 外 o 大 u 部输入的参考时钟 f F R 的频率 以及 内部的 P L E L
(h aeL ce o p 分频 因 子 P、 和 N. P rs- ok dL o ) M 用 公式表达如下 :
响 AD 的动态 性 能 , 了将 这 种 影 响最 小 化 , C 为
输 出我们所需 要频率的时钟信号. 由时钟 芯片 输出的是一对差分 的 L P C V E L电平信号 , 所用
的扇出芯片 N 6 1 S是一个可 以将一对差分 BN 4
的 L P C 电 平 信 号 转 化 为 四对 差 分 的 vEL L D V S电平信号输 出的转换器。图 l 所示 为设
第 2 8卷
20 年 08
第 4期
7 月
核 电子学 与探 测 技 术
Nu la lcr nc cerE e to i s& D tcin Teh oo y eet c n lg o
Vo 8 N0 4 k2 .
J1 20 u. 0 8
基 于 F GA 的 高 频 时 钟 电路 设 计 P
理意义 的参数—— 中微子 混合角 e 。实验利 。
用 电子反中微子在大型液体闪烁体探测器中的 反B 衰变反应来测量反应堆 中微子 。比较远近 探 测 器 测得 的 中微 子 Leabharlann 量 和 能 谱 , 可 以知 道 就
编程实现对时钟芯片 MP 94 2的控制 , C 23 并根
据需要输出高达 1 G赫兹 的高频 时钟. 设计 中 的难点 主要 是 在 时钟 信 号 高达 1 GHz 印制版 时
一种基于fpga的cx9261芯片配置方法

一种基于fpga的cx9261芯片配置方法下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!FPGA技术在现代电子行业中扮演着越来越重要的角色,而CX9261芯片作为一种基于FPGA的解决方案,其配置方法对于设备性能的优化和功能实现至关重要。
基于FPGA的GPS时钟解析技术

基于FPGA的GPS时钟解析技术作者:张明阳马鹏来源:《电子技术与软件工程》2018年第06期摘要概述了FPGA特点和GPS同步时钟装置基本功能后,本文提出了以FPGA为核心单元的GPS时钟解析系统,可高精度实时的解析GPS接收机发出的同步时间信息,并在GPS失步后实现秒脉冲累加计时,最后给出系统时序仿真结果。
【关键词】FPGA GPS 秒脉冲1 引言全球定位系统(GPS)作为新一代卫星导航与定位系统,以其全球性、全天候、高精度、自动化、高效益等显著特点,在我国大地测量、工程测量、水利电力、交通、资源勘探和航海等领域有着广泛的应用。
可以说,GPS技术现已融入了国民经济建设、国防建设和社会发展的各个应用方面。
FPGA是一种可编程逻辑器件,片内有大量逻辑门和触发器,具有集成度高,运算速度快,编程简易的特点,内部程序并行运行,可同时处理不同任务。
同时FPGA有大量软核,可方便进行二次开发。
本文在结合了FPGA的特点和GPS同步时钟装置具有的基本功能后,提出了基于FPGA 的GPS时钟解析系统,设计中以FPGA为核心单元,提高了系统解析效率,实现高速度的实时GPS时钟解析。
2 系统介绍基于FPGA的GPS时钟解析系统采用“自顶向下”的设计方法,使用Verilog HDL语言编写,其内部设计逻辑框图如图1所示,由图可知,系统主要由波特率产生器、UART接收器以及GPS模块组成。
2.1 波特率产生器波特率产生器模块的作用是对FPGA的系统工作时钟进行分频,从而为UART接收器提供工作时序,本文波特率发生器模块输出的时钟频率设为串口数据速率的16倍,同时在数据位中间位置时刻进行采样,有效避免了误码操作。
2.2 UART接收器UART接收器的作用是接收GPS接收机发出的包含时间信息的串口数据,并将接收到的串口数据按照ASCII码的形式发送给GPS模块,每当接收完一个来自串口的字符(8位)数据时,就产生一个接收完成指示信号,GPS模块根据接收完成指示信号将接收的字符数据存储。
(完整版)基于FPGA的等精度频率计的设计与实现毕业设计

第一章课题研究概述1.1课题研究的目的和意义在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。
测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。
目前常用的测频方案有三种:方案一:完全按定义式F=NT进行测量。
被测信号Fx经放大整形形成时标ГX,晶振经分频形成时基TR。
用时基TR开闸门,累计时标ГX 的个数,则有公式可得Fx=1ГX=NTR。
此方案为传统的测频方案,其测量精度将随被测信号频率的下降而降低。
方案二:对被信号的周期进行测量,再利用F=1T(频率=1周期)可得频率。
测周期时,晶振FR经分频形成时标ГX,被测信号经放在整形形成时基TX控制闸门。
闸门输出的计数脉冲N=ГXTR,则TX=NГX。
但当被测信号的周期较短时,会使精度大大下降。
方案三:等精度测频,按定义式F=NT进行测量,但闸门时间随被测信号的频率变化而变化。
如图1所示,被测信号Fx经放大整形形成时标ГX,将时标ГX经编程处理后形成时基TR。
用时基TR开闸门,累计时标ГX的个数,则有公式可得Fx=1ГX=NTR。
此方案闸门时间随被测信号的频率变化而变化,其测量精度将不会随着被测信号频率的下降而降。
本次实验设计中采用的是第三种测频方案。
等精度频率计是数字电路中的一个典型应用,其总体设计方案有两种:方案一:采用数字逻辑电路制作,用IC拼凑焊接实现。
其特点是直接用现成的IC组合而成,简单方便,但由于使用的器件较多,连线复杂,体积大,功耗大,焊点和线路较多将使成品稳定度与精确度大打折扣,而且会产生比较大的延时,造成测量误差、可靠性差。
方案二:采用可编程逻辑器件(CPLD)制作。
随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。
可编程逻辑器件大作业报告-音乐闹钟设计和实现

研究生院《数字系统设计与Verilog HDL 语言》大作业报告题目基于FPGA和SRAM实现的大容量FIFO程序设计学院研究生院专业光学工程学生姓名李磊班级 13级代培学号 1300030022指导老师宋万杰音乐闹钟设计和实现李磊1300030022摘要可编程逻辑器件随着科学技术的发展已经在电子产业中各个领域起到重大的作用。
美国Lattice公司的ispLSI系列可编程器件是一款比较早的在线编程系统,其实现简单,实现了硬件设计软件化。
本文主要是应用实验室的ispLSI1016E开发板,实现简单的计时闹钟并以音乐的方式来告知设定时间已到。
开发过程中充分利用开发板的器件资源使操作简单化结果可视化。
关键字ispLSI1016E 可编程逻辑器件音乐闹钟一、引言目前在数字系统设计中广泛使用的可编程逻辑器件(Programmable Logic Device,简称PLD) 属于LSI中的半用户定制电路。
由于PLD具有结构灵活、性能优越、设计简单等特点,因而在不同应用领域中受到广泛重视,是构成数字系统的理想器件。
在系统编程(In System Programmable,简称ISP)技术是90年代发展起来的一种PLD技术。
所谓在系统编程,是指可以在用户自己设计的目标系统上、为实现预定逻辑功能而对逻辑器件进行编程或改写。
ISP技术是美国Lattice公司于1991年率先推出的,该公司将ISP技术应用到高密度可编程逻辑器件(HDPLD)中,形成了ispLSI系列高密度在系统可编程逻辑器件[1]。
学习和运用ISP技术成为了目前设计数字电路的主流,通过课程设计的八个作业的设计和实现,学习ISP设计的过程和流程,并掌握初步的Verilog程序的设计能力[2]。
结合实际情况,综合应用开发板的资源,本文开发一款音乐闹钟,实现的功能如下:1)显示时间;2)设置闹钟;3)在设置的时间到达到时,触发产生音乐,标识时间到达。
余下章节将详细的介绍设计的原理和编程实现过程。
EDA技术及应用—基于FPGA的电子系统设计:基于Verilog hdl的数字电路设计

10100
1111
15
10101
8421BC 余三码 D码
0000
0011
0001
0100
0010
0101
0011
0110
0100
0111
0101
1000
0110
1001
0111
1010
1000
1011
1001
1100
-
-
-
-
-
-
-
-
-
-
-
-
4位格雷码
0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000
4'b0011:a_to_g=7'b1111001; //显示3
4'b0100:a_to_g=7'b0110011; //显示4
4'b0101:a_to_g=7'b1011011; //显示5
4'b0110:a_to_g=7'b1011111; //显示6
4'b0111:a_to_g=7'b1110000; //显示7
4: y= {d[2:0],d[3]}; // rol
5: y= {d[3],d[3:1]}; // asr
6: y= {d[1:0],d[3:2]}; // ror2
7: y= d;
// noshift
default: y = d;
图6-2 基本门电路仿真结果
综合结果如图6-3所示。
图6-3 基本门电路综合结果
2、 三态逻辑电路
数电课程设计报告数字钟的设计
数电课程设计报告第一章设计背景与要求设计要求第二章系统概述设计思想与方案选择各功能块的组成工作原理第三章单元电路设计与分析各单元电路的选择设计及工作原理分析第四章电路的组构与调试遇到的主要问题现象记录及原因分析解决措施及效果功能的测试方法,步骤,记录的数据第五章结束语对设计题目的结论性意见及进一步改进的意向说明总结设计的收获与体会附图电路总图及各个模块详图参考文献第一章设计背景与要求一.设计背景与要求在公共场所,例如车站、码头,准确的时间显得特别重要,否则很有可能给外出办事即旅行袋来麻烦;数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确度和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用;数字钟是一种典型的数字电路,包括了组合逻辑电路和时序电路;设计一个简易数字钟,具有整点报时和校时功能;1以四位LED数码管显示时、分,时为二十四进制;2时、分显示数字之间以小数点间隔,小数点以1Hz频率、50%占空比的亮、灭规律表示秒计时;3整点报时采用蜂鸣器实现;每当整点前控制蜂鸣器以低频鸣响4次,响1s、停1s,直到整点前一秒以高频响1s,整点时结束;4才用两个按键分别控制“校时”或“校分”;按下校时键时,是显示值以0~23循环变化;按下“校分”键时,分显示值以0~59循环变化,但时显示值不能变化;二.设计要求电子技术是一门实践性很强的课程,加强工程训练,特别是技能的培养,对于培养学生的素质和能力具有十分重要的作用;在电子信息类本科教学中,课程设计是一个重要的实践环节,它包括选择课题、电子电路设计、组装、调试和编写总结报告等实践内容;通过本次简易数字钟的设计,初步掌握电子线路的设计、组装及调试方法;即根据设计要求,查阅文献资料,收集、分析类似电路的性能,并通过组装调试等实践活动,使电路达到性能要求;第二章系统概述设计思想与方案选择方案一 ,利用数字电路中学习的六十进制和二十四进制计数器和三八译码器来实现数字中的时间显示;方案二,利用AT89S51单片机和74HC573八位锁存器以及利用C语言对AT89S51进行编程来实现数字钟的时间显示;由于方案一通过数电的学习我们都比较熟悉,而方案二比较复杂,涉及到比较多我们没学过的内容,所以选择方案一来实施;简易数字钟电路主体部分是三个计数器,秒、分计数器采用六十进制计数器,而时计数器采用二十四进制计数器,其中分、时计数器的计数脉冲由校正按键控制选择秒、分计数器的溢出信号或校正10Hz计数信号;计数器的输出通过七段译码后显示,同时通过数值判断电路控制蜂鸣器报时;各功能块的组成分频模块,60进制计数器模块,24进制计数器模块,4位显示译码模块,正点报时电路模块,脉冲按键消抖动处理模块工作原理一.简易数字钟的基本工作原理是对1Hz标准频率秒脉冲进行计数;当秒脉冲个数累计满60后产生一个分计数脉冲,而分计数脉冲累计满60后产生一个时计数脉冲,电路主要由3个计数器构成,秒计数和分计数为六十进制,时计数为二十四进制;将FPGA开发装置上的基准时钟OSC作为输入信号通过设计好的分频器分成1Hz~10MHz8个10倍频脉冲信号;1Hz的脉冲作为秒计数器的输入,这样实现了一个基本的计时装置;通过4位显示译码模块,可以显示出时间;时间的显示范围为00时00分~23时59分;二.当需要调整时间时,可使用数字钟的时校正和分校正进行调整,数字钟中时、分计数器都有两个计数脉冲信号源,正常工作状态时分别为时脉冲和分脉冲;校正状态时都为5~10Hz的校正脉冲;这两种状态的切换由脉冲按键控制选择器的S 端来实现;为了更准确的设定时间,需要对脉冲按键进消抖动处理;三.电路在整点前10 秒钟内开始控制蜂鸣器报时,可采用数字比较器或逻辑门判断分、秒计数器的状态码值,以不同频率的脉冲控制蜂鸣器的鸣响;第三章单元电路设计与分析各单元电路的选择1分频模块,设计一个8级倍率为10 的分频电路,输出频率分别为1Hz 、10Hz、100 Hz、1k Hz、10k Hz、100k Hz、1 MHz、10MHz8组占空比为50%的脉冲信号;260进制计数器模块,采用两片74161级联;324进制计数器模块,采用两片74161级联;44位显示译码模块,由分频器,计数器,数据选择器,七段显示译码,3-8线译码器构成一个4位LED数码显示动态扫描控制电路;其中4位计数器用74161,数据选择器用74153,七段显示译码器部分采用AHDL硬件描述语言设计;5正点报时电路模块,该模块采用与门和数据选择器74153构成6脉冲按键消抖动处理模块,采用D触发器实现消抖动,从而能够比较精确地设定时间;设计及工作原理分析1分频模块要输出8级频率差为10倍的分频电路,可采用十进制计数器级联实现;集成十进制计数器的类型很多,比较常用的有74160、74162、74190、74192和7490等;这里采用7490来实现分频,7490是二-五-十进制加计数器,片上有一个二进制计数器和一个异步五进制计数器;QA是二进制加计数器的输出,QB、QC、QD是五进制加计数器的输出,位序从告到低依次为D,C,B;该分频器一共用到7片7490,初始信号输入到第一片7490的CLKB 端口,QD输出端连接到CLKA端,作为输入,从QA引出1MHz的output端口,并引线到第二片7490的CLKB端口,依此类推,直到第七片7490连接完成如附图所示;每片7490相当于一个五进制计数器和一个二进制计数器级联实现了十进制加计数,从而实现分频;分频模块图如图所示分频模块内部结构图如下图所示260进制计数器模块采用两片74161级联,如图,下面一片74161做成十进制的,初始脉冲从CLK输入,ENT和ENP都接高电平,而QD与QA用作为与非门的两个输入,与非门输出分别连接到自身的LDN端与上面一片74161的CLK端;上面一片74161的QC和QA端作为与非门的两个输入通过输出连接到自身的LDN,ENT 和ENP接高电平;下面一片实现从0000到1001即0~9十个状态码的计数,当下面一片为1001状态时,自身的LDN为低电平,此时QD,QC,QB,QA的状态恢复到0000,即从0开始从新计数,而上面一片74161的CLK电平改变,上面一片74161开始计数为0001,实现从0000~到0101即0到5六个状态码的计数,当上面一片状态为0101时,LDN为低电平,此时计数器为0000;这样子通过两片74161就实现了一个六十进制计数器;下图为六十进制计数器模块的示意图由六十进制计数模块构成的秒分计数如下图,下面那块六十进制技术模块表示为妙,上面那块六十进制计数模块表示为分;当妙计数模块的状态为0101 1001时,向分计数模块进位, 即通过74153M的输入C1,此时74153M输出接到分计数模块的输入端 ,通过74153M作为选择器,实现进位控制;324进制计数器模块采用两片74161级联,如图,下面一片74161做成十进制的,初始脉冲从CLK输入,ENT和ENP都接高电平,而QD与QA用作为与非门的两个输入分别连接到自身的LDN端与上面一片74161的CLK端;上面一片74161的QB非门的一个输入通过输出连接到自身的LDN,ENT 和ENP接高电平,并且上面74161的QB端和下面一块74161的QC端通过与非门输出接到两片74161的清零端CLRN;下面一片实现从0000到1001即0~9十个状态码的计数,当下面一片为1001状态时,自身的LDN为低电平,此时QD,QC,QB,QA的状态恢复到0000,即从0开始从新计数,而上面一片74161的CLK电平改变,上面一片74161开始计数为0001,实现从0000~到0010即0到2三个状态码的计数,当上面一片状态为0010即2时,下面一片状态为0100即4时,两块74161的CLRN为低电平,此时两块74161的状态都为0000,即实现了23时过后显示00时;这样子通过两片74161就实现了一个24进制计数器;下图为24进制计数器模块示意图由二十四进制计数模块构成的时计数模块如图,下面那块六十进制技术模块表示为分,上面那块24进制计数模块表示为时;当分计数模块的状态为0101 1001时,向时计数模块进位, 即通过74153M的输入C1,此时74153M输出接到时计数模块的输入端 ,通过74153M作为选择器,实现进位控制;二十四进制计数模块构成的时计数模块44位显示译码模块由分频器,计数器,数据选择器,七段显示译码,3-8线译码器构成一个4位LED数码显示动态扫描控制电路;4位计数器由74161构成;如下图所示74161构成的4位计数器数据选择器采用两片74153 和一片74153M两片74153实现连在一起实现对四个数字的选择,而一片74153M实现对小数点的选择;如下图所示74153M构成的数据选择器两片74153构成的数据选择器七段显示译码器部分采用AHDL硬件描述语言设计,语句如下:subdesign ymqdata_in3..0 :input;a,b,c,d,e,f,g :output;begintabledata_in3..0 =>a,b,c,d,e,f,g;b"0000" =>1,1,1,1,1,1,0;b"0001" =>0,1,1,0,0,0,0;b"0010" =>1,1,0,1,1,0,1;b"0011" =>1,1,1,1,0,0,1;b"0100" =>0,1,1,0,0,1,1;b"0101" =>1,0,1,1,0,1,1;b"0110" =>0,0,1,1,1,1,1;b"0111" =>1,1,1,0,0,0,0;b"1000" =>1,1,1,1,1,1,1;b"1001" =>1,1,1,0,0,1,1;b"1010" =>1,1,1,0,1,1,1;b"1011" =>0,0,1,1,1,1,1;b"1100" =>1,0,0,0,1,1,0;b"1101" =>0,1,1,1,1,0,1;b"1110" =>1,0,0,1,1,1,1;b"1111" =>1,0,0,0,1,1,1;end table;end;整个四位显示译码模块如图所示5正点报时电路模块该模块采用与门和数据选择器74153构成,如下图所示;7个输入端口的与门控制A,当时间在59分51s,53s,55s,57s,59s的时候,A为高电平1,当秒的个位数为9时,B为高电平1,A为1,B为0时,输出C1低频率信号,A为1,B为1时输出C3高频率信号,实现整点的不同频率的报时电路;整点报时电路模块6脉冲按键消抖动处理模块采用D触发器实现消抖动,从而能够精确地设定时间;校正状态为5HZ的校正脉冲,分频器输出的10HZ通过T触发器得到5HZ的校正脉冲;如图脉冲按键消抖动处理模块通过T触发器得到的5HZ校正脉冲第四章电路的组构与调试遇到的主要问题1在用74161做二十四进制计数器时,没有深入考虑,打算采用第一片六进制,第二片四进制级联而成,结果出现问题;2时、分调整按键没有安装消抖动装置;3在设置简易数字钟的分时,时计数器也会进;现象记录及原因分析1虽然也能够计数实现二十四进制,但是不能与七段显示译码器配合使用,不能显示直观的数值,这样给用户带来不便;2在下载调试的时候,我要进行时分调整,但是有时按一下子脉冲键会进两个数值,这样子给时分的设置带来了麻烦,原因是按键没有采用消抖动装置;3在调试的时候,打算通过按键调整分,但是发现时计数器也会进位,这就不符合要求了,原因是调整分时,各计数器都按正常状况在计数,所以会按正常情况产生进位;解决措施及效果1仍然采用两片74161,第一片可以从0~9,第二片只能从0~2,而且当第二片为2的时候,第一片到4的话就都清零复位,这样不仅实现了二十四进制计数器,而且能与七段显示译码器配合使用,直观的显示数字;2在脉冲控制按键上加上了D触发器,这样子可以达到消抖动的效果;3加上选择器,把两路信号分开,当调整分的时候,不对时计数器产生进位,这样子就不会产生十进位了,解决了这个问题;功能的测试方法、步骤,记录的数据1简易数字钟的测试,将电路图连好后,分析与综合,仿真,编译,下载到仪器上,表示秒的小数点按1Hz,占空比50%跳动,分从0~59计数,分过了59后,向时计数器进1;2整点点报时功能的测试,到了整点,即59分51s,53s,55s,57s时蜂鸣器低频率间断性鸣响,59分59秒时,蜂鸣器高频率鸣响一次;3时、分调整功能的测试,按分调整键,分按一定的频率逐次加一,但是时显示不变;按时调整键,时按一定的频率逐次加一,但是分显示不变;第五章结束语对设计题目的结论性意见及进一步改进的意向说明简易数字钟的设计中,主要运用了分频器,六十进制计数器,二十四进制计数器,动态扫描显示电路,选择器,按键消抖以及门电路等数字电路方面的知识;可以在简易数字钟的基础上加上24小时和12小时转换功能,秒表功能,闹钟功能,这样更能满足人们的使用需求;总结设计的收获与体会简易数字钟的设计及实验当中,我坚持了下来,上学期的数电我学的并不好,而且对软件应用的接受能力不强,刚开始的时候做的很慢,看到别人都做好了,心里比较着急,于是,我找出了数电课本,复习所涉及的知识点,并练习所学软件,终于有了进步,可以更上同学们的进度,但数字钟的设计一直困扰我,看到别人拓展功能都做好了,自己基本的都还没做好,心里很急;在设计的过程中,碰到了很多的困难,遇到了很多问题,不断地思考与尝试,以及向同学和老师请教,但还是没能完全设计好,以后有时间还得多去实验室尝试,争取做好一些拓展功能;通过这次设计,对上学期学习的数字电路的相关知识得到了复习和巩固,也查阅了一些相关的资料,也加深了我对数字电路应用的理解,总之这次的电子技术课程设计受益匪浅;参考文献:基于FPGA的数字电路系统设计西安电子科技大学出版社数字电子技术基础电子工业出版社数字电路与逻辑设计实验及应用人民邮电出版社附图1.分频模块分频器仿真波形下图为分频器线路图2.60进制计数器模块60进制计数器仿真波形3.24进制计数器模块24进制计数器仿真波形4. 4位显示译码模块七段显示译码器模块七段显示译码器部分采用AHDL硬件描述语言设计,语句如下:subdesign ymqdata_in3..0 :input;a,b,c,d,e,f,g :output;begintabledata_in3..0 =>a,b,c,d,e,f,g;b"0000" =>1,1,1,1,1,1,0;b"0001" =>0,1,1,0,0,0,0;b"0010" =>1,1,0,1,1,0,1;b"0011" =>1,1,1,1,0,0,1;b"0100" =>0,1,1,0,0,1,1;b"0101" =>1,0,1,1,0,1,1;b"0110" =>0,0,1,1,1,1,1;b"0111" =>1,1,1,0,0,0,0;b"1000" =>1,1,1,1,1,1,1;b"1001" =>1,1,1,0,0,1,1;b"1010" =>1,1,1,0,1,1,1;b"1011" =>0,0,1,1,1,1,1;b"1100" =>1,0,0,0,1,1,0;b"1101" =>0,1,1,1,1,0,1;b"1110" =>1,0,0,1,1,1,1;b"1111" =>1,0,0,0,1,1,1;end table;end;整个4位显示译码模块四位显示译码模块。
基于FPGA的时钟采样帧发生器设计
C K 同时 为帧脉 冲发 生器 提 供时钟 输 入信号 。 L G,
波特率发 生器
B R[:] RS 70
CLK- RES ET
硬件 描述 语 言 , 计 完 成 了方 便 易用 且 可任 意进 行 设 参 数设 置 的时钟采 样 帧发 生器 I P核 _ 。 4 J
叵堑亘H亘圃
定义 如表 1 示 , R R[ : ] 所 B S 2 0 三个 组 合 位 , 即预 调整
帧脉 冲控 制 寄存器 F E 7 O 控 制 , 过设 置这 两 P R[ : ] 通
个寄存 器 中的位 控制 参 数 , 以 实现 多种 时钟 采 样 可 帧功 能 。C K和 R S T作 为外 部 输 入 信 号 对 这 两 L EE
结 构模 型 , 然后通 过模 块 细 分原 则 和 可变 参数 编 程 结构 设计 , 用 V L语 言 , 过 对 各 组 成 模 块 的 利 HD 通
为 :C = Didy Dv b2×C K SK v b l id y i x i L。
28 9O
F G S : OUT S TD L OGI C;
_
科
学
技
术
与
工
程
1 卷 1
43 0n 。 2 s
CL KG : OUT TD S
—
—
L G C) 0 I ;
第1卷 1
第 1期 3
2 1 5月 0 1年
科
学
技
术
与
工
程
Vo.11 No 1 M a 1 .3 y 201 1
l7 — 1 1 (0 1 1—9 70 6 1 85 2 1 )3 27 —4
Sce c c noo y a in e Te h lg nd Engne rng i ei
基于FPGA的IEEE_1588时钟同步系统的设计与实现
第13卷㊀第5期Vol.13No.5㊀㊀智㊀能㊀计㊀算㊀机㊀与㊀应㊀用IntelligentComputerandApplications㊀㊀2023年5月㊀May2023㊀㊀㊀㊀㊀㊀文章编号:2095-2163(2023)05-0064-06中图分类号:TP393文献标志码:A基于FPGA的IEEE1588时钟同步系统的设计与实现徐卓汀,商艳娟,王成群(浙江理工大学信息学院,杭州310018)摘㊀要:IEEE1588精密时钟协议用于分布式系统中各节点上独立时钟的同步,纯软件实现的IEEE1588精密时钟协议的时间戳只能标记在数据链路层,受网络传输延迟以及网络抖动的影响,时钟同步精度一般只能达到微秒级㊂本文设计了一种基于FPGA的IEEE1588协议的时钟同步系统,采用EP4CE6E22C8和RTL8201CP芯片,通过编程实现IEEE1588报文识别㊁时钟偏移补偿算法等㊂该方法进一步降低了网络传输延迟的不确定性,提高了时间戳捕获的精度㊂通过实验对主从时钟同步精度的一致性进行测试,满足设计要求㊂关键词:IEEE1588精密时钟协议;FPGA;时间戳;时钟同步DesignandimplementationofIEEE1588protocolbasedonFPGAXUZhuoting,SHANGYanjuan,WANGChengqun(SchoolofInformation,ZhejiangSci-TechUniversity,Hangzhou310018,China)ʌAbstractɔIEEE1588precisionclockprotocolisusedtosynchronizetheindependentclocksoneachnodeinthedistributedsystem.ThetimestampofIEEE1588precisionclockprotocolimplementedbypuresoftwarecanonlybemarkedonthedatalinklayer.Duetotheimpactofnetworktransmissiondelayandnetworkjitter,theclocksynchronizationaccuracycanonlyreachthemicrosecondlevel.ThispaperdesignsaclocksynchronizationsystembasedonIEEE1588protocolbasedonFPGA.EP4CE6E22C8andRTL8201CPchipsareusedtorealizeIEEE1588messagerecognitionandclockoffsetcompensationalgorithmthroughprogramming.Thismethodfurtherreducestheuncertaintyofnetworktransmissiondelayandimprovestheaccuracyoftimestampacquisition.Theexperimentmeetsthedesignrequirementsbytestingtheconsistencyofmaster-slaveclocksynchronizationaccuracy.ʌKeywordsɔIEEE1588precisionclockprotocol;FPGA;timestamp;clocksynchronization基金项目:浙江省级重点研发计划(2021C01047);流程工业综合自动化国家重点实验室开放课题基金资助项目(2021-KF-21-06,2020-KF-21-09)㊂作者简介:徐卓汀(1998-),男,硕士研究生,主要研究方向:嵌入式与物联网技术;商艳娟(1997-),女,硕士研究生,主要研究方向:物联网㊁工业互联网;王成群(1981-),男,博士,讲师,主要研究方向:工业互联网㊁AI及其在行业中的应用㊂通讯作者:王成群㊀㊀Email:cqwang@zstu.edu.cn收稿日期:2022-06-140㊀引㊀言随着分布式网络应用范围及应用规模的不断增大,同步系统内各分散节点时钟的一致性变得越来越重要,精确的时间同步技术在分布式系统中占据着越来越重要的地位[1]㊂目前,时钟同步的主要方法包括IRIG-B(InterRangeInstrumentationGroup-B)码时钟同步㊁网络时间协议(NTP)㊁简单网络时钟同步(SNTP)和全球定位系统(GPS)等[2]㊂传统的NTP只能提供毫秒级的时间精度,不能满足现代工业以太网的高精度时钟需求㊂SNTP协议是NTP的简化版本,采用了简化的同步算法,提高了性能,但只能满足对时间精度要求不高的系统㊂GPS可以提供微秒级的时间精度,但其需要GPS接收机这样的特殊设备,不仅成本比较高,而且不易实现[3]㊂IEEE1588精密时间协议的出现一定程度上弥补了一些时钟同步方式的不足[4]㊂IEEE1588协议基于以太网,不需要建立新的时钟网络,主从时钟通过交换时钟信息来进行同步[5]㊂通过软件实现的IEEE1588协议可以提供微秒级别的时间精度[6];通过硬件实现的IEEE1588协议可以提供纳秒级别的时间精度[7]㊂同时,硬件实现的IEEE1588协议对资源要求低,不仅可以通过支持IEEE1588协议的专用芯片实现,也可以在FPGA芯片上实现,实现成本低,适用于各种分布式系统[8]㊂本文在详细分析IEEE1588协议基本内容的基础上,通过软硬件结合的方式,在FPGA芯片上实现IEEE1588报文的检测和时间戳的捕获㊂实验验证结果表明该系统能够正常工作,能满足现代工业以太网的高精度时钟同步需求㊂1㊀IEEE1588时钟同步原理IEEE1588精确时间协议在同步过程中,主时钟和从时钟之间相互交换带有精确时间戳和预估时间戳的报文[9]㊂各个从时钟得到这些时间戳信息后,计算与主时钟的链路传输延迟和时钟偏差,进而调整从时钟,达到与主时钟同步的目的㊂IEEE1588协议的主从同步过程如图1所示[10]㊂M a s t e r S l a v eT M 1T M 4D e l a y _r e s pD e l a y _r e qF o l l o w _u pS y n cT S 2T S 3o f f e s t S l a v e _M a s t e r _d e l a y o f f e s t M a s t e r _S l a v e _d e l a y 从时钟收到的时间戳T S 2T M 1、T S 2T M 1、T S 2、T S 3T M 1、T S 2、T S 3、T M 4图1㊀IEEE1588协议的主从同步过程Fig.1㊀MasterandslavesynchronizationprocessofIEEE1588㊀㊀IEEE1588协议的同步原理是延时响应机制,通过PTP(PrecisionTimeProtocol)报文承载时间戳来完成,PTP报文分为4种:Sync同步报文㊁Follow_up跟随报文㊁Delay_req延迟请求报文㊁Delay_resp延迟请求报文㊁Delay_resp延迟请求响应报文[11]㊂一次时钟同步过程:(1)Sync报文周期性从主时钟向从时钟以广播的形式发出,主时钟在发送结束那一刻记录Sync报文离开主时钟的精确发送时间TM1;(2)主时钟将精确时间戳TM1封装进Follow_up报文中,发送给从时钟;(3)从时钟记录Sync报文到达从时钟的精确时间点Ts2;(4)从时钟发送Delay_req报文,并在发送结束那一刻记录下精确发送时间TS3;(5)主时钟记录Delay_req报文到达主时钟的精确到达时间TM4;(6)主时钟发送携带精确时间戳信息TM4的Delay_resp报文到从时钟㊂经过一次时钟同步后,从时钟寄存4个精确时间戳信息㊂利用4个时间戳可以计算链路延时和时钟偏移㊂设报文由主时钟到从时钟的链路延迟,式(1):Master_(Slave_delay)=TM1-TS2(1)㊀㊀此时主时钟与从时钟之间存在的时间偏差offset1,式(2):offset1=TS2-TM1-Master_(Slave_delay)(2)㊀㊀报文由从时钟到主时钟的链路延迟,式(3):Slave_(Master_delay)=TS3-TM4(3)㊀㊀此时从时钟与主时钟之间存在的时间偏差offset2,式(4):offset2=TM4-TS3-Master_(Slave_delay)(4)㊀㊀因为IEEE1588协议假设链路延迟是对称的,式(5):Slave_(Master_delay)=Master_(Slave_delay)(5)㊀㊀那么平均链路延迟mean_delay,式(6):mean_delay=TM4-TM1()-(TS3-TS2)2(6)此时主从时钟偏差offset,式(7):offset=TS2-TM1()-mean_delay(7)进一步计算得到offset,式(8):offset=TS2-TM1()+(TS3-TM4)2(8)对从时钟进行补偿来达到同步于主时钟的目的㊂2㊀系统软硬件设计2.1㊀时间戳标记位置IEEE1588协议的报文在交换消息过程中包含着各时钟的信息,所以时钟信息的提取对于提高同步精度有着十分重要的作用㊂时间的标记位置有3种方案,如图2所示㊂应用层传输层M A C 层P H Y网络AB C R M I I 图2㊀时间戳位置标记Fig.2㊀Timestamppositionmarking56第5期徐卓汀,等:基于FPGA的IEEE1588时钟同步系统的设计与实现㊀㊀方案A:在应用层进行时间戳的标记,虽然实现方法简单,但由于协议栈的抖动和延迟是不确定的,会导致较大误差,使用软件实现的精度只能达到毫秒级㊂方案B:在介质访问控制层(MAC),避免了协议栈的抖动和延迟,提高时间戳的标记精度,能够使用软件实现,时间精度达到微秒级[12]㊂方案C:在MAC层和物理层(PHY)之间的简化媒体独立接口(RMII)处标记时间戳,通过软硬结合的方法实现㊂目前有两种方法,一种是使用支持IEEE1588协议的专用PHY硬件芯片,如DP83640,可以在物理层检测IEEE1588报文,并将时间戳信息填充到IEEE1588报文中;第二种方法是在对原有硬件不做改变的情况下,在FPGA芯片中识别IEEE1588报文以及捕获时间戳[13]㊂时间戳的标记越接近于实际网络,抖动和延迟就越小,计算出的时钟偏差和链路延迟更接近于真实值,所以在本文的设计中,采用了方案C,因为方案C的第二种方法不需要专用的PHY芯片,而且FPGA处理速度足够快,实现方法更简单㊂2.2㊀系统硬件搭建系统硬件采用AlteraCycloneIV系列中的EP4CE6E22C8FPGA芯片以及RTL8201CP接口PHY芯片,分别作为系统的主控模块以及网络通信模块㊂RTL8201CPPHY芯片采用RMII模式下的以太网连接方式,是简化的媒体独立接口,减少了以太网通信所需的引脚数,将引脚数从16个减少为7个,有着更简单的连接结构㊂AlteraCycloneIV系列FPGA芯片作为主控模块,自身能够在物理层和PHY之间的RMII接口处进行时间标记,相对于其他如STM32F407系列CPU芯片只能在MAC数据链路层标记,有着更高的时间戳精度㊂主控模块主要实现接受发送PTP报文,以及时钟同步等功能㊂2.3㊀系统软件设计本文系统的软件结构主要分为协议层㊁应用层㊂协议层完成报文的解析以及封装过程,应用层完成实时时钟以及精确时钟同步功能㊂其系统结构图如图3所示㊂㊀㊀协议层分为UDP/IP协议㊁EtherCAT协议以及PTP协议,EtherCAT协议有两种实现方式:一种是利用标准IEEE802.3以太网帧实现,一种是放入UDP/IP协议中实现,本文采用第二种实现方式㊂系统的主时钟将PTP报文封装在EtherCAT中,再将EtherCAT报文封装在UDP报文中,最后通过网络传输到从时钟㊂从时钟接收到报文后,解析报文,进行时间戳的寄存和提取㊂A l t e r a C y c l o n e I VE P4C E6E22C8A l t e r a C y c l o n e I VE P4C E6E22C8应用层协议层P T PE t h e r C A TU D PI PM A CP H Y应用层协议层P T PE t h e r C A TU D PI PM A CP H Y以太网络主时钟从时钟图3㊀系统结构图Fig.3㊀Systemstructurediagram㊀㊀时钟同步系统上电后,通过PC机,以UDP协议的形式发送指令报文,初始化各主从时钟的计数器,并设定与PC机通信的为主时钟,与主时钟通过网线相连的为从时钟㊂初始化各主从时钟后,PC机周期性发送Sync报文,进入时钟同步阶段㊂如果本地时钟为主时钟状态,其主时钟流程图如图4所示㊂主时钟接受来自PC机的报文,识别并转发Sync报文,对RMII接口的TX_EN信号进行锁存,当TX_EN信号由高电平变为低电平时,寄存这个周期的时钟计数器,接着发送Follow_up报文,Follow_up报文的64位精确时间戳为上一个寄存的时钟计数器的时间,发送结束后,等待接收下一条报文㊂接收到报文时,RMII接口的RX_EN信号由低变高,寄存该周期的时钟计数器,识别接受的报文,如果识别为其他报文,丢弃该时间戳,并回到等待接受Delay_req报文状态,若为Delay_req报文,保留该时间戳,并读取来自从时钟的端口号,接着构造Delay_resp报文,Delay_resp报文的64位精确时间戳即为上一次寄存的时钟计数器㊂主时钟进入等待接受PC机报文状态㊂㊀㊀如果本地时钟为从时钟,从时钟流程图如图5所示㊂时钟计数器初始化后,接受到报文时,RMII接口的RX_EN信号由低变高,寄存器寄存该周期的时钟计数器的值,识别该报文是否是Sync报文,若不是,则丢弃寄存的时间戳,并返回等待报文接受状态;如果是,继续接受并解析Follow_up报文,读66智㊀能㊀计㊀算㊀机㊀与㊀应㊀用㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀第13卷㊀取报文中的时间戳,并开始构造Delay_req报文㊂当发送Delay_req报文结束时,即RMII接口处的TX_EN信号由高变低,寄存该时刻的时钟计数器的值,并与接受Follow_up报文同样的过程接受Delay_resp报文,并读取报文中的精确时间戳㊂从时钟得到来自物理层和PHY之间的RMII接口处的4个精确时间戳,进入链路延迟以及时钟偏差计算阶段,并对从时钟进行补偿,得到同步的从时钟进入下一次时钟补偿阶段㊂发送D e l a y _r e s p 报文判断D e l a y _r e q报文接受D e l a y _r e q 报文,记录时间戳生成D e l a y _r e s p 使能信号等待接受D e l a y _r e q u 报文发送F o l l o w _u p 报文N丢弃该记录的时间戳Y生成F o l l o w _u p 使能信号发送S y n c 报文,记录时间戳从P C 机接受S y n c 报文设定为主时钟状态初始化通电图4㊀主时钟流程图Fig.4㊀Masterclockstatemachineprocess丢弃该记录的时间戳NY构造D e l a y _r e q 报文发送D e l a y _r e q 报文,记录时间戳等待接收D e l a y _r e s p 报文接受D e l a y _r e s p 报文判断D e l a y _r e s p 报文寄存D e l a y _r e s p 中的戳记戳计算时钟偏移,进行时钟同步接受F o l l o w _u p 报文,寄存F o l l o w _u p 中的时间戳判断S y n c 报文接受S y n c 报文,记录时间戳等待接受S y n c 报文设定为从时钟状态初始化开始丢弃该记录的时间戳图5㊀从时钟流程图Fig.5㊀Slaveclockstatemachineprocess2.4㊀本地时钟补偿算法本地时钟补偿采用动态的频率补偿算法来实现,其频率补偿过程如图6所示㊂M a s t e rS l a v eT 1M 1T 2M 1T n M 1T 1S 2T 2S 2T n S 2S y n cS y n cS y n c图6㊀频率补偿过程Fig.6㊀Frequencycompensationprocess㊀㊀在时钟同步过程中,当系统进行第一次时钟同步过程中时,主站记录下第一次发送Sync同步报文的时间戳T1M1,从站记录下第一次收到同步报文的时间戳T1S2㊂同理,当系统进行第二次时钟同步时,记录下时间戳T2M1和T2S2㊂则主站的发送时间间隔MCC,式(9):MCC=T2M1-T1M1(9)㊀㊀同理,从站接收到的时间间隔SCC,式(10):SCC=T2S2-T1S2(10)㊀㊀主从站的时间偏差MSC,式(11):MSC=|MCC-SCC|(11)㊀㊀主从之间的时间比率,式(12):γ=SCC/MSC(12)㊀㊀在每次时钟同步过程中,从时钟持续补偿计算出的时钟偏移量;在补偿过程中,判断偏移量的最高位是否为1,若是表示从时钟快于主时钟,偏移量的值应取反加1,补偿进从时钟中,反之,直接补偿从时钟;对于时间频率的补偿,从系统的第二次时钟同步阶段开始,判断MSC的值,若最高位为1,说明主时钟频率高于从时钟频率,则从时钟的纳秒(ns)计数器每增加γ值时减1,反之,主时钟频率低于从时钟频率,纳秒(ns)计数器每增加γ值时加1㊂3㊀时钟同步测试为了验证IEEE1588时钟同步系统的可行性,将IEEE1588协议以及本地时钟补偿算法应用于基于FPGA的EtherCAT协议栈中,采用低延时㊁高带宽㊁确定性的现场总线结构,该协议栈具有区分IEEE1588报文和普通报文的功能,主站能解析来自PC机的报文,并将报文内容转发至从站,从站能够解析各报文命令,执行时间戳提取㊁初始化操作㊁时钟同步以及同步输出等功能㊂本系统以主站的本地晶振作为授时源,通过主76第5期徐卓汀,等:基于FPGA的IEEE1588时钟同步系统的设计与实现从站直连的方式进行时钟同步性能测试,设置的同步时间间隔为1s,时钟同步过程分为两步:(1)系统启动,发送初始化指令报文进行各主从站计数器清零操作;(2)周期性发送Sync报文,进行时钟同步㊂3.1㊀一主一从主从直连同步测试系统初始化后周期性发送Sync同步报文进行时钟同步,其中主从站某一次输出1s脉冲图如图7所示,横坐标每一格线代表20ns,该波形表示主从站的同步输出偏差为0ns㊂㊀㊀200次主从同步,其时间偏差结果如图8所示㊂图7㊀主从站某一次输出1s脉冲Fig.7㊀Primaryandsecondarystationoutput1spulsediagramatonetime050100150200时钟同步次数时间偏差/n s9080706050403020100图8㊀时间偏差结果Fig.8㊀Timedeviationresult㊀㊀其中时间偏差为一个绝对值量㊂由图8可知,主从时钟最大时钟偏差为80ns,时钟偏差基本分布在ʃ80ns之间,能够满足现代工业以太网对时间精度的需求㊂3.2㊀一主二从主从直连同步测试系统初始化,进行200次同步测试,其主从同步结果如图9所示㊂㊀㊀其中,ID1时钟表示从站1与主站的时钟偏差,ID2表示从站2与主站的时钟偏差㊂ID1-ID2时钟差值(LCK)为ID1时钟与ID2时钟的差值,ID1-ID2时钟差值(ns)为ID1-ID2时钟差值(LCK)乘20ns所得㊂图9㊀主从同步结果Fig.9㊀Masterslavesynchronizationresult㊀㊀主站与从站1的时钟偏差图和主站与从站2的时钟偏差图如图10和图11所示㊂经过200次测试,从站1与主时钟的最大时钟偏差为100ns,时钟偏差基本分布在ʃ100ns;从站2与主时钟的最大偏差为100ns,时钟偏差基本分布在ʃ100ns㊂相对一主一从的同步测试,由于其加大了链路延时的不对称性以及从站内部的处理延时,增大了时钟偏差,导致同步精度下降㊂86智㊀能㊀计㊀算㊀机㊀与㊀应㊀用㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀第13卷㊀12010080604020050100150200时钟同步次数时钟偏差/n s 图10㊀主站与从站1的时钟偏差Fig.10㊀Clockdeviationbetweenmasterstationandslavestation1120100806040200050100150200时钟同步次数时钟偏差/n s 图11㊀主站与从站2的时钟偏差Fig.11㊀Clockdeviationbetweenmasterstationandslavestation24㊀结束语本文详细分析了IEEE1588协议,并将IEEE1588协议以及本地时钟补偿算法应用于分布式时钟同步系统中,在一主一从的分布式时钟同步基础上,拓展到了一主两从的分布式时钟同步系统㊂实验证明该方案的同步精度能够达到ns级别,同步的时钟设备越少,时钟偏差越小㊂同步一个时钟设备和两个时钟设备,主从时钟偏差基本分布在ʃ100ns之间,能够满足现代工业以太网对高精确时钟的需求,简化了硬件电路设计,不需要专用的PHY芯片,时钟戳提取和报文识别都在FPGA芯片内部完成,降低开发难度和成本㊂参考文献[1]韩一德.基于IEEE1588协议的高精度时钟同步系统研究与实现[D].太原:中北大学,2021.[2]谢华.基于GPS信号和NTP协议的本地时间同步网络[J].工业控制计算机,2010,23(6):75-76.[3]何一航.IEEE1588高精度网络时钟同步研究与实现[D].武汉:华中科技大学,2011.[4]EIDSONJC,FISCHERM,WHITEJ.IEEE-1588TMStandardforaprecisionclocksynchronizationprotocolfornetworkedmeasurementandcontrolsystems[C]//Proceedingsofthe34thAnnualPreciseTimeandTimeIntervalSystemsandApplicationsMeeting.2002:243-254.[5]ZHAOB,WANGN.TheimplementationofIEEE1588clocksynchronizationsystembasedonFPGA[C]//FifthInternationalConferenceonIntelligentControlandInformationProcessing.IEEE,2014:216-220.[6]刘宝明,冯振乾.时间敏感网络关键技术与应用研究[J].工业控制计算机,2021,34(11):1-4.[7]周峰,刘迎澍,安笑蕊.嵌入式IEEE1588精确时钟同步实现[J].电气技术,2013(4):44-47.[8]李培基,李卫,朱祥维,等.网络时间同步协议综述[J].计算机工程与应用,2019,55(3):30-38.[9]王创,郑宾.交互式多模型IEEE1588时钟同步算法[J].自动化技术与应用,2019,38(4):13-17.[10]王贤德,贾连兴.基于DTS和IEEE1588v2协议的网络跳变同步技术研究[J].装甲兵工程学院学报,2017,31(4):87-92.[11]MOHAMMADJHandTHOMASKandHOWARDS.ARecursiveMethodforClockSynchronizationinAsymmetricPacketBasedNetworks[J].IEEE/ACMTransactionsonNetworking(TON),2016,24(4):2332-2342.[12]KYRIAKAKISE,SPARSØJ,SCHOEBERLM.Hardwareassistedclocksynchronizationwiththeieee1588-2008precisiontimeprotocol[C]//Proceedingsofthe26thInternationalConferenceonReal-TimeNetworksandSystems.2018:51-60.[13]QIM,WANGX,YANGZ.DesignandimplementationofIEEE1588timesynchronizationmessagestimestampingbasedonFPGA[C]//20114thInternationalConferenceonElectricUtilityDeregulationandRestructuringandPowerTechnologies(DRPT).IEEE,2011:1566-1570.(上接第63页)[15]HUJ,LIS,SUNG,etal.Squeeze-and-ExcitationNetworks[J].IEEETransactionsonPatternAnalysisandMachineIntelligence,2020,42(8):2011-2023.[16]LIJ,JINK,ZHOUDL,etal.Attentionmechanism-basedCNNforfacialexpressionrecognition[J].Neurocomputing,2020,411:340-350.[17]LUCEYP,COHNJF,KANADET,etal.TheExtendedCohn-KanadeDataset(CK+):Acompletedatasetforactionunitandemotion-specifiedexpression[C]//ComputerVision&PatternRecognitionWorkshops.IEEE,2010:174-183.[18]LIUM,SHANS,WANGR,etal.LearningExpressionletsonSpatio-temporalManifoldforDynamicFacialExpressionRecognition[C]//2014IEEEConferenceonComputerVisionandPatternRecognition(CVPR).IEEE,2014:94-102.[19]王攀杰,郭绍忠,侯明,等.激活函数的对比测试与分析[J].信息工程大学学报,2021,22(5):551-557.[20]DONGN,ZHAOL,WUCH,etal.Inceptionv3basedcervicalcellclassificationcombinedwithartificiallyextractedfeatures[J].AppliedSoftComputingJournal,2020,93:151-171.[21]ShaheedKashif,MaoAihua,QureshiImran,etal.DS-CNN:Apre-trainedXceptionmodelbasedondepth-wiseseparableconvolutionalneuralnetworkforfingerveinrecognition[J].ExpertSystemsWithApplications,2022:191-199.[22]LIX,WUW,LIT,etal.FaceLivenessDetectionBasedonParallelCNN[C]//JournalofPhysics:ConferenceSeries.IOPPublishing,2020,1549(4):042069.[23]DINGH,ZHOUSK,CHELLAPPAR.Facenet2expnet:Regularizingadeepfacerecognitionnetforexpressionrecognition[C]//201712thIEEEInternationalConferenceonAutomaticFace&GestureRecognition(FG2017).IEEE,2017:118-126.96第5期徐卓汀,等:基于FPGA的IEEE1588时钟同步系统的设计与实现。
基于FPGA的设计 正文
引言随着经济和科学技术的发展,电梯在高层建筑物的作用越来越凸出。
目前电梯主要分为机械系统与控制系统两大部份,而电梯的控制系统主要有三种控制方式分别是:继电路控制系统(“早期安装的电梯多位继电器控制系统)、基于FPGA控制系统、微机控制系统。
实现继电路控制系统方法很多,可以用标准逻辑器件、可编程序控制器PLC、单片机等方案来实现。
但是这些方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的困难,且该系统由于故障率高、可靠性差、控制方式不灵活以及消耗功率大等缺点,已渐渐被人民淘汰。
微机控制系统虽在智能控制方面有较强的功能,但也存在抗扰性差,系统设计复杂,一般维修人员难以掌握其维修技术等缺陷,没能广泛应用电梯中。
而基于FPGA的电梯控制系统由于可靠性高,使用维修方便,抗干扰性强,设计和调试周期较短等优点,在电梯控制中得到广泛应用,从而使电梯由传统的继电器控制方式发展为计算机控制的一个重要方向,成为当前电梯控制和技术改造的热点之一。
本文给出一个基于FPGA的6层自动升降电梯控制系统的设计方案。
它的设计是采用通俗易懂的Verilog HDL硬件描述语言使用EDA技术在Quartus II软件平台上设计完成,程序设计、编译以及时序仿真通过后再下载到开发板配合外围电路(模拟电梯的电路)来验证该系统的可行性。
这个系统分主要有6个模块,分别是键盘响应寄存处理模块、上升/下降请求寄存处理模块、电梯运行和停止处理模块、开门/关门与延时处理模块、电梯运行方向判断模块和电梯运行状态显示模块。
通过模块化设计不仅提高了程序编程错误的排查能力还提高了系统的可靠性。
1 概论1.1 电梯国内外现状1.1.1国内现状电梯作为中国对外最早的行业经过多年的发展,电梯产品无论在数量和质量都有了显著的提高,和国外产品差距越来越小。
考虑到经济性,现有国内的电梯控制系统,通常采用微机或可编程逻辑控制器对变频器进行多段速控制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
长春理工大学毕业论文 - - I
目 录 第一章 绪 论 ............................................................................................................. 1 第二章 可编程逻辑器件概述及设计方案 ............................................................... 2 2.1 CPLD/FPGA概述及VHDL语言的特点 .............................................................. 2 2.2可编程逻辑器件的分类和发展历程 ..................................................................... 4 2.3 EPF10K10LC84-4芯片简介 .................................................................................. 5 2.4 电子时钟的设计方案 ............................................................................................ 6
第三章 系统电路设计 ............................................................................................... 7 3.1 总体设计 .............................................................................................................. 7 3.2 显示电路设计 ...................................................................................................... 8 3.2.1 分频器电路 ................................................................................................ 10 3.2.2 扫描电路电路 ............................................................................................. 11 3.2.3 BCD码多路选择器 .................................................................................... 12 3.2.4 BCD译码器 ................................................................................................ 13 3.2.5 位选码电路 ................................................................................................ 15 3.3 电子时钟计数器电路设计 .................................................................................. 15 3.3.1 秒和分计数器设计 .................................................................................... 16 3.3.2 小时计数器设计 ........................................................................................ 17
总 结 ..................................................................................................................... 23 参考文献 ..................................................................................................................... 24 致 谢 ................................................................................... 错误!未定义书签。 长春理工大学毕业论文
- - 1
第一章 绪 论 时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能更进一步,产品更新换代的节奏也越来越快。 现代电子设计技术的核心是EDA ( Electronic Design Automation ) 技术。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL (Hardware Description Language)为系统逻辑描述手段完成的设计文件。 20世纪80年代末,出现了FPGA(Field Programmable Gate Array),CAE和CAD技术的应用更为广泛,它们在PCB设计的原理图输入,自动布局布线及PCB分析,以及逻辑设计、逻辑仿真、布尔综合和化简等方面担任了重要的角色,为电子设计自动化必须解决的电路建模、标准文档及仿真测试奠定了基础。硬件描述语言是EDA技术的重要组成部分,VHDL是作为电子设计主流硬件的描述语言。本论文就是应用VHDL语言来实现秒表的电路设计。VHDL语言是标准硬件描述语言,它的特点就是能形式化抽象表示电路结构及行为,支持逻辑设计中层次领域的描述,借用了高级语言的精巧结构简化电路描述,具有电路模拟与验证及保证设计的正确性,支持电路由高层向低层的综合变换,便于文档管理,易于理解和设计重用。 本课题选用了Altera公司的FPGA产品并以其专门开发软件为平台,运用VHDL硬件描述语言设计一个电子时钟。CPLD/FPGA以高集成度、高速度和高可靠性而著称,运用FPGA进行产品开发,其开发周期短,投资风险小,产品上市速度快,决定其有着无比的市场前景,是现代EDA技术中广泛运用的硬件。 该系统通过VHDL语言和原理图混合应用的方式来实现电子时钟的设计,并下载到硬件之中进行验证。我们将电子时钟的设计分成了四大模块,分别是时间计数器模块;键盘控制模块;显示电路模块和时间调整模块。 本次设计主要让我们掌握CPLD/FPGA的研发过程,掌握VHDL语言的编程思想及过程,以及电子时钟基本功能和实现的基本原理。 长春理工大学毕业论文 - - 2
第二章 可编程逻辑器件概述及设计方案 可编程逻辑器件PLD(Programmable Logic Device)是20世纪70年代发展起来的一种新的集成器件。PLD是大规模集成电路技术发展的产物,是一种半定制的集成电路,结合计算机的软件技术(EDA技术)可以快速、方便地构建数字系统。
2.1 CPLD/FPGA概述及VHDL语言的特点 1、CPLD/FPGA概述 不论是简单的还是复杂的数字系统都是由基本门来构成的,如与门、或门、非门、传输门等。 人们发现,不是所有的基本门都是必须的,如用与非门单一基本门就可以构成其他的基本门。任何的组合逻辑函数都可以化为“与—或”表达式。即任何的组合电路(需要提供输入信号的非信号),可以用“与门—或门”二级电路实现。同样,任何时序电路都可由组合电路加上存储元件,即锁存器、触发器、RAM构成的。由此人们提出了一种可编程电路结构,即乘积项逻辑阵列结构。 当然,“与—或”结构组成的PLD器件的功能比较简单。此后,人们又从ROM工作原理、地址信号与输出数据间的关系以及ASIC 的门阵列法中获得启发,构造另外一种可编程的逻辑结构,那就是SRAM查表的方式,并使用多个查找表构成了一个查表阵列,称为可编程门阵列(Programmable Gate Array)。 可编程逻辑器件的两种主要类型是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。 在这两类可编程逻辑器件中,FPGA提供了最高的逻辑密度、最丰富的特性和最高的性能。 现在最新的FPGA器件,如Xilinx Virtex™系列中的部分器件,可提供八百万"系统门"(相对逻辑密度)。 这些先进的器件还提供诸如内建的硬连线处理器(如IBM Power PC)、大容量存储器、时钟管理系统等特性,并支持多种最新的超快速器件至器件(device-to-device)信号技术。 FPGA被应用于范围广泛的应用中,从数据处理和存储,以及到仪器仪表、电信和数字信号处理等。 与此相比,CPLD提供的逻辑资源少得多 - 最高约1万门。 但是,CPLD提供了非常好的可预测性,因此对于关键的控制应用非常理想。 而且如Xilinx CoolRunner™系列CPLD器件需要的功耗极低,并且价格低廉,从而使其对于成本敏感的、电池供电的便携式应用(如移动电话和数字手持助理)非常理想。 FPGA基于SRAM的架构,集成度高,以LE(包括查找表、触发器及其他)为基本单元,有内嵌Memory、DSP等。具有易挥发性,需要有上电加载过程。