基于FPGA的数字电子时钟设计与实现

2024-08-08

基于FPGA的数字电子时钟设计与实现(精选10篇)

基于FPGA的数字电子时钟设计与实现 篇1

摘要:介绍基于FPGA芯片实现的机载合成孔径雷达数字信号处理机接口板卡。该接口板卡负责将输入数据缓存和信息格式转换,然后打包成处理机需要的数据帧发送到信号处理机,并具有PCI接口功能和在线自检测功能。着重介绍了系统的硬件结构设计和软件实现功能,给出了选用的主要芯片的型号。该接口板已应用于某合成孔径雷达数字信号处理机中,整机使用证明该系统工作稳定,实现了设计中要求的功能。

关键词:数据接口LINK口现场可编程门阵列PCI接口

机载合成孔径雷达(SyntheticApertureRadar,简称SAR)是以“合成孔径”原理和脉冲压缩技术为理论基础,以高速数字处理和精确运动补偿为前提条件的高分辨率成像雷达。对于机载合成孔径雷达成像处理来讲,仅有目标的原始回波数据是不够的,还必须获得雷达和载机的参数。另外,为了满足信号处理机实时处理的要求,要求输入到处理机的各种数据符合处理机成像处理的数据格式。这样,处理机在获得数据帧后就可以直接进行成像处理而不必再有格式转换的开销。但是?目标的原始回波数据与雷达和载机的参数数据来自两个不同的设备?它们的数据格式和时序都是由各自的设备确定的,因此信号处理机便面临着与外围设备接口的问题。

1系统功能

在本机载合成孔径雷达系统中,进出接口板卡的数据流包括数据采集设备输入的原始回波数据、监控设备输入的雷达和载机的参数数据以及输出到处理机的成像处理数据。它们有如下特点:①输入数据流的`速度和时序不匹配。数据采集设备和监控设备是两个异步的系统,它们都有自己的定时控制电路,以自己的速度传输数据。②输入输出数据流的信息格式不匹配。数据采集设备输入的原始回波数据和监控设备输入的雷达和载机的参数数据采用FPDP协议传输,接口板卡输出到处理机的数据采用Link口传输协议进行传输。

考虑到进出接口板卡数据流的特点和雷达系统对接口板卡的控制要求,接口板卡要具有如下功能:

(1)设置数据的缓冲、存储逻辑,以适应不同设备之间的速度差异和时序差异;

(2)进行信息格式转换,将目标的原始回波数据与雷达和载机的参数数据打包,插入相应的帧信息形成处理机要求的数据帧,并控制数据流的走向;

(3)实现PCI接口,能够产生PCI中断;

(4)具有在线自检测功能。

2系统硬件结构设计

为了简化系统硬件设计,增加系统的灵活性,采用FPGA芯片实现系统要求的数据格式转换、打包、分发和逻辑控制功能。数据缓存采用硬件FIFO和软件双口RAM。PCI接口采用专用接口芯片实现。硬件FIFO和软件双口RAM的写时钟分别由各自的FPDP接口提供,其它时钟由接口板上的晶振提供。系统的硬件结构框图如图1所示。

2.1输入数据流的缓存方案

为了适应处理机与数据采集设备和监控设备之间的速度差异,解决速度不匹配问题,需要将输入的数据先进行缓存。数据采集设备送入的原始回波数据每帧的数据量比较大,接口板卡上设计了硬件FIFO作为原始回波数据的缓存器,FIFO的读写使能由FPGA编程控制,写时钟由FPDP接口提供,读时钟由接口板卡上的晶振提供。数据采集设备和监控设备是两个异步的系统,雷达参数数据流和原始回波数据流之间没有同步关系,一帧雷达参数数据对应几帧原始回波数据,因此设计中用双口RAM作为雷达参数数据的缓存器。另外,每帧雷达参数的数据量比较小,本设计在FPGA内利用参数化的模块库(LibraryofParameterizedModules,简称LPM)中的lpm_ram_dp编程实现双口RAM,简化了硬件设计。

2.2PCI接口设计?

实现PCI接口的方案一般有两种:采用可编程逻辑器件和采用专用总线接口器件。采用可编程逻辑器件实现PCI接口的最大好处是比较灵活,缺点是设计难度较高,开发周期较长。采用专用接口器件实现虽然没有采用可编程逻辑器件实现那么灵活,但能够有效地降低接口设计的难度,缩短开发时间。本系统采用专用接口器件PCI9052实现接口板卡的PCI接口。

接口板卡的硬件资源为映射到FPGA内部寄存器的I/O映射空间和一个中断源。PCI9052提供5个局部地址空间,选用Space0作为接口板的地址空间,分配16个8位地址。同时设置相应的初始化,PCI配置寄存器中的PCIBAR2设置为0XFFFFFFF0,向系统请求分配内存的数量为16。设置局部地址空间的范围为0X01000000~0X01000010。PCI9052提供两个局部中断源,选用LINTi1。FPGA提供电平触发中断信号,因此PCI9052的中断触发模式设置为电平触发。利用PCI9052的局部设备片选信号CS0#作为FPGA的片选信号。CS0#片选信号的起始地址和地址范围由CS0BaseAddress寄存器的设置值0x01000011决定,即起始地址为1000000h,地址范围为20h。PCI9052寄存器的初始值由串行EEPROM提供,在PCI9052加电后读取。EEPROM必须采用支持连读功能的芯片,本设计中采用FairChildSemiconductor公司的93CS4

6N。

2.3FPGA的配置设计?

本设计为FPGA提供了两种配置方式:主动串行配置和被动串行配置。

主动串行配置由EPC2向FPGA器件输入串行位流的配置数据。在该配置方式下,一直由FPGA控制着配置过程。在加电过程中,FPGA检测到nCONFIG由低到高的跳变时,就开始准备配置。FPGA将CONF_DONE拉低,驱动EPC2的nCS为低,而nSTATUS引脚释放并由上拉电阻拉至高电平使能EPC2。此后,EPC2就用其内部振荡器的时钟将数据串行地从EPC2?DATA?输送到FPGA?DATA0?。当配置完成后,FPGA释放CONF_DONE,将EPC2与系统隔离。

被动串行配置由编程硬件通过ByteBlaster配置。ByteBlaster产生一个由低到高的跳变送到nCONFIG引脚,然后由编程硬件将配置数据送到DATA0引脚,该数据锁存至CONF_DONE变为高电平为止。当CONF_DONE变成高电平时,用DCLK的10个周期初始化FPGA,器件的初始化由下载电缆自动执行。

为了两种配置方式共存,设计中用拨码开关将EPC2与FPGA和ByteBlaster的下载电缆插座隔离。当用被动串行方式配置时,拨码开关断开,由上位机通过ByteBlaster下载电缆加载FPGA。当用主动串行方式配置时,拨码开关接通,由EPC2加载FPGA。电路图如图2所示。

2.4在线自检测功能

板卡设计时还应考虑便于日常调试维护及故障检测定位。板卡在硬件上针对各电源信号和关键的状态信号设计了信号灯,一旦发现有误,便可给出信号触发该电路板上的信号灯告警,定位系统故障。另外在电路设计时应留出测试孔,以增加电路的可测性。

3系统的软件设计

系统上电后,PCI上电复位,FIFO清零。上位机向相应寄存器写入初始值,完成寄存器设置。当系统启动信号有效时,接口板开始接收数据,进行数据打包和分发,直到上位机向接口板卡写停止命令为止。图3给出了系统工作流程图。

3.1数据的打包和流向控制

雷达参数数据和原始回波数据的数据源是异步的,不能保证两者确切的对应关系,接口板卡利用对缓存原始回波数据FIFO和缓存雷达参数数据双口RAM的读写控制,调整雷达参数数据和原始回波数据对应关系,将两种数据源按处理机要求的输入数据格式组成正确的数据帧。雷达参数数据和原始回波数据打包后的数据帧格式如下:

在程序中,设计了雷达参数发送控制计数器Para_counter和回波数据发送控制计数器Data_counter。系统工作后,每次检测到原始回波数据流的数据有效信号data_valid的上升沿(标记收到完整的一帧回波数据)时,启动雷达参数发送控制计数器开始计数,当计数到设定的值(本设计中为25)时停止计数并启动回波数据发送控制计数器开始计数,计数到设定的值(本设计中为5000)时停止计数。当检测到原始回波数据流的数据有效信号data_valid的下降沿(标记开始接收新的一帧回波数据)时,两个计数器都清零。根据计数器的计数值产生Link口选择信号?确定数据的流向。图4给出了数据流向的示意图。图5给出了基于MAXPLUSⅡ10.0的仿真结果,仿真显示正确地实现了数据打包和流向控制。

图3系统工作流程图

3.2Link口传输协议的实现

Link口的数据传输是在同步时钟线(LxCLK)与应答线(LxACK)相互握手的情况下同步传输的。一个传输字为32bit,Link口以4bit为单位进行传输。在LxCLK上升沿,发送端会发送一个新的4bit数据,在LxCLK的下降沿,接收方锁存数据线上的数据。8个4bit数据发送完毕后,如果接收方准备好接收下一个字,则将LxACK置1。发送方在每次发送新字的第一个4bit时对LxACK采样,如果LxACK为0,表明接收方没有准备好,则发送方保持LxCLK为高电平,且数据线上保持当前的4bit数据,直到接收方将LxACK置1,发送方才将LxCLK下拉,并继续发送新的数据。当发送方缓存为空时,表明没有数据需要发送,则LxCLK保持为低电平。接口板利用VHDL语言实现了Link口传输协议。下面给出了关键的程序片断:

ChangeStateMode?process?NibleCount?empty?LxACK?PresentState?empty?

begin

casePresentStateis

whenSendACK=>

ifLxACK='1'andempty='0'then

NextState<=Send?

elseNextState<=SendACK?

endif?

whenSend=>

ifNibleCount/=3or?NibleCount=3andempty='0'andLxAck='1'?then

NextState<=Send?

elseNextState<=SendACK?

endif?

endcase?

endprocesschangestatemode?

图5数据转发仿真时序较

4应用和结论

基于FPGA的数字电子时钟设计与实现 篇2

关键词:FPGA,DDS,任意分频,时钟恢复

在数字通信中, 位同步是要在接收端确定每一个码元的起止时刻, 从而在数据流中区分出独立的码元, 它起着为接收信号提供基准的作用[1]。主要体现在产生与接收的数字信号时钟同频同相的恢复时钟, 从而准确地解出数据流中携带的数字信息。

常用的位同步时钟恢复电路主要有数字锁相环和1比特位同步器, 作为当前的主流技术而广泛使用, 但它们的优缺点也是显而易见的。本文在分析了两种位同步时钟恢复方法的原理及其优缺点的基础上, 提出了利用DDS高精度分频原理实现快速时钟恢复的设计方案, 能够快速稳定地从数据流中恢复出时钟, 并且适用于各种频率要求, 通用性强。

1 位同步性能分析

数字锁相环是一种闭环结构的位同步电路, 1比特位同步器则基于开环结构。下面对这两种电路原理进行介绍, 并分析其优缺点。

1.1 数字锁相环法

通常数字锁相环主要由鉴相器、数字环路滤波器、数控振荡器三部分组成, 其原理图如图1所示。

首先将输入信号与反馈时钟进行鉴相, 得出时钟相位的超前滞后信息;然后在环路滤波器中对超前滞后信息进行计数, 当达到模值K时产生加扣指令, 数控振荡器根据加扣指令插入或扣除一个时钟脉冲, 从而实现时钟相位的调整[2]。

数字锁相环是一个闭环反馈结构, 这种结构能够使同步时钟在码元相位出现抖动或者码元消失时不会出现较大变化, 仍然可以稳定地输出同步脉冲[3]。也正是因为这种反馈结构, 使得数字锁相环法的同步建立时间变得很长, 往往需要十几甚至几十个信号周期。

数字锁相环法的原理也决定了它的同步带宽较窄, 对于宽范围的不同频率的信号, 需要花大量资源去实现脉冲步长的控制以提高同步速度和精度, 造成结构复杂。

1.2 比特位同步法

与数字锁相环的闭环结构不同, 1比特位同步法是一种开环结构, 它主要由双边沿提取电路、状态寄存器和N进制计数器组成, 原理图如图2所示。

当输入信号发生跳变时, 根据边沿脉冲产生一个清零信号, 对计数器进行清零, 以输出一个反映输入信号相位的时钟短脉冲。状态控制器可以在接收码元出现连“1”或是连“0”时保证仍然会有固定的反映输入信号时钟频率的短脉冲输出[4]。

1比特位同步器的这种开环结构可以在每一个输入信号跳变沿校准码同步时钟的相位。所以, 它的同步建立时间很短, 可以在出现第一个跳变的码元时就输出正确的码同步信号。同时, 这种结构在输入信号由交替变化的“0”和“l”组成时, 边沿脉冲可以有效地校正频差。

但是由于跳变沿提取电路的每一个边沿脉冲输出都会对计数器清零, 如果跳变沿出现严重抖动, 则边沿脉冲信号会与计数器原本的输出产生冲突, 造成输出时钟信号占空比大幅度变化, 严重时甚至会出现毛刺, 对后续电路的功能实现无疑会产生致命的影响。

另外, 位同步器输出的是脉冲信号, 所以需要添加一个时钟整形电路, 将输出时钟脉冲变为占空比50%的时钟周期信号。

2 DDS高精度分频设计

本方案时钟恢复的高精度任意分频利用DDS的相位累加器原理实现, 原理框图如图3所示。

该时钟分频器由DLL、频率控制字寄存器、N位加法器以及累加和寄存器组成。晶振经过DLL倍频后作为分频器的工作时钟, 在每个时钟的上升沿, 累加的和与频率控制字进行相加, 并将结果保存到累加和寄存器[5]。这个过程中, 累加和S会从0开始逐渐增加直到溢出, 然后进行下一轮的累加。当频率控制字和加法器位数确定以后, 累加溢出的频率就确定了, 因为溢出位会按照特定的频率由“0”和“1”交替变化, 所以直接将累加和的溢出位作为时钟输出, 就可以得到一个占空比为50%的分频时钟输出, 而不需要添加时钟整形电路。

设输入时钟频率为fi, 频率控制字为K, 时钟输出为fo, N为累加器字长, 则有:

在实际应用中, 频率控制字K可由式 (1) 求出。

当分频系数确定时, K不可能取得整数, 只是一个逼近值。但是由于N的取值关系, 可以达到较高的分辨率。同时分频系数越小, 精度越低, 反之精度越高。

3 基于DDS的时钟恢复设计

本文设计的位同步时钟提取电路结合了超前滞后锁相环与1比特位同步器的优点, 在使用基于DDS原理分频的1比特位同步器时钟恢复方案的基础上添加了一个鉴相器, 根据鉴相器的结果调整频率控制字, 在一定的周期内, 通过控制频率控制字来调节时钟频率和相位, 最终实现位同步时钟的生成。基于DDS的时钟恢复设计原理框图如图4所示。

图4中K为频率控制字, S为累加和, Rst为复位信号。其工作原理为:首先根据待测信号频率计算出频率控制字K, 当有输入信号出现跳变时, 鉴相器启动DDS时钟生成器开始生成相应频率的时钟;然后在每个输入信号跳变沿, 鉴相器读取相位累加和的值进行判读, 频率控制字控制器根据鉴相器判读结果改变DDS分频器的频率控制字来调节相位, 从而实现恢复时钟的频率和相位的锁定。

3.1 鉴相器

鉴相器用来提取输入数字信号与时钟信号相位之差。与常用的对两个信号进行比较的原理不同, 本文设计的鉴相器是建立在DDS分频基础上的。由于DDS分频原理是通过频率控制字的累加溢出来生成时钟信号, 所以可以将其累加和S看作是时钟相位的实时体现, 鉴相器只需在输入信号发生跳变时, 读取此时相位累加器的累加值并进行判断, 就可以得出时钟信号为超前还是滞后, 并能同时确定相位误差的值。

信号跳变沿到来时, 首先根据此时溢出位的值判断同步时钟处于前半周期还是后半周期。当溢出位为0时为前半周期, 为1时则为后半周期。然后根据累加和值S的大小判断相位关系。

图5所示为两种典型的跳变沿到来时信号与时钟可能的相位关系, 其中 (1) 所示为前向抖动, 此时信号的跳变略早于时钟信号; (2) 为后向抖动, 输入信号的跳变沿略晚于时钟信号。如果以0~M (N位全为1的数) 表示完整的时钟相位, 则 (1) 所示相位差为M-S, (2) 所示相位差为S。

3.2 频率控制字控制

相位控制以鉴相器输出的鉴相结果作为依据改变频率控制字来实现。首先设置一个抖动容限值L, 当相位差小于L时, 表示抖动在允许范围以内, 不对频率控制字做改变, 即不对时钟相位做调整。当相位误差大于L时, 如果此时为前向抖动, 则将频率控制字左移1位, 使相位累加提前溢出, 最终使时钟相位前移;如果为后向抖动, 则不对频率控制字做改变, 而是鉴相器输出复位信号到时钟生成器来快速对齐时钟相位, 与1比特位同步法相同。

4 性能分析及仿真测试

与常用的位同步时钟恢复电路相比较, 本方案设计的基于DDS分频原理的位同步时钟恢复电路有以下优点:

(1) 极大地增加了同步带宽。基于DDS的任意分频方法使得本方案设计的位同步器可以适用于多种频率要求, 只需要改变频率控制字就可以得到任意频率的分频时钟, 而且可以达到很高的频率分辨率。分频的分辨率同时也是分频的最小值, 如式 (2) 所示:

分频的最大值受限于奈奎斯特定理, 理论上为本地高频时钟fi的一半, 实际中约为40%。

(2) 有效降低了频差的影响。当输入信号出现较长的连续0或者1时, 此时没有跳变沿来校正时钟相位, 频差会在连续时钟周期内叠加。而基于DDS的分频方法在多个时钟周期的累加过程中, 每一次累加溢出时, 其余值会进入下一个周期进行累加, 而不是清零, 这样可以使误差相互抵消, 因此即使单个时钟周期误差较大, 也不会使误差叠加, 将频差的影响降到最低[6]。

(3) 可以实现快速、稳定的位同步。当时钟相位误差较大时, 能够通过改变频率控制字与复位时钟生成电路, 在1~2个周期内快速实现同步, 比锁相环法反应更加迅速;与开环结构的1比特位同步方法相比, 在大幅相位抖动时不会产生毛刺, 时钟更加稳定。

本文在ISE环境下采用VHDL语言设计了位同步提取电路, 使用Xilinx公司的Spartan3E系列FPGA芯片XC3S250E予以实现, 并进行了仿真实验验证, 如图6所示。

图6中clk为本地时钟, pcm_i为输入信号, K[63:0]为频率控制字, c为恢复时钟输出。可以看出, 当输入信号跳变时时钟生成电路开始工作, 生成固定频率的时钟信号, 时钟上升沿位于码元周期的中间位置, 可以更准确地读取码元。在输入信号的跳变沿, 会根据时钟信号与输入信号的相差来调整时钟相位, 图中 (1) 所示位置为后向抖动, 时钟生成器被复位, 以对齐时钟相位; (2) 所示为大幅度的前向抖动, 此时频率控制字被左移1位, 使时钟信号相位前移。

在实际工作时根据需要的频率计算出频率控制字即可, 图7所示为实际测试时使用示波器测量的位同步情况, 图中上面为输入信号, 下面为位同步时钟。结果表明, 本方案设计的电路能够实现时钟恢复的功能, 其性能稳定。

本文提出了一种基于DDS高精度任意分频的时钟恢复方案, 与常用的位同步方法相比, 具有时钟分频精度高、适用频率范围宽、同步速度快、同步时钟稳定度好以及设计简单等优点。并且该方案经过仿真以及实际测试验证其正确可行, 是数字时钟恢复方案的一种很好的选择。

参考文献

[1]李超, 谢雪松, 张小玲.一种DDS任意波形发生器的ROM优化方法[J].电子技术应用, 2013, 39 (2) :12-21.

[2]陈华君, 杨涛.一种基于FPGA的全数字锁相环设计[J].物联网技术, 2011, 1 (10) :76-78.

[3]张志文, 曾志兵, 罗隆福, 等.基于新型全数字锁相环的同步倍频技术[J].电力自动化设备, 2010, 30 (2) :123-126.

[4]靖文, 李斌, 屈薇, 等.一种快速位同步时钟提取方案及实现[J].电子设计应用, 2007 (12) :84-87.

[5]柳春, 甘泉.基于FPGA的雷达信号源设计[J].电子技术应用, 2013, 39 (11) :47-49.

基于FPGA的数字电子时钟设计与实现 篇3

关键词: 数字下变频; CIC; FPGA

中图分类号:TN92 文献标识码:A 文章编号:1674-1161(2014)06-0051-04

为了更好地体现软件无线电体系中在尽可能靠近天线的地方使用A/D的核心思想,全数字化解调器的设计大多采用直接在中频进行信号采样,即高频模拟信号先经过模拟下变频到适当中频,然后在中频阶段对其进行A/D采样以输出高速的数字中频信号[1],经过数字下变频技术的抽取和低通滤波处理,使其变为较低速率的基带信号再送给后端数字信号处理模块进行解调、译码等相关处理。数字下变频(DDC)技术连接着前端ADC和后端DSP,其性能好坏直接影响解调器的可靠性与稳定性,是全数字解调器的核心技术之一。

目前,数字下变频模块的实现基本分两种方式:一种是利用专用DDC芯片完成数字下变频功能,另一种是利用自主搭建的软硬件平台编程设计实现。专用数字下变频芯片具有抽取比率大、性能稳定等优点,但专用数字下变频芯片价格昂贵、灵活性不强,不能充分体现软件无线电的优势[2]。近年来, FPGA器件在工艺方面的进步,为之带来了前所未有的逻辑规模和强大的处理性能,用FPGA来实现比用专用芯片可以带来更多的好处。FPGA器件具有高速、可编程、模块化等优点,可以采用灵活的结构来满足不同的系统要求,便于进行系统功能扩展和性能升级,具有很强的灵活性和稳定性,是实现数字中频处理的理想器件[3]。现介绍一种基于FPGA的数字下变频的设计与实现。

1 数字下变频的结构设计

数字下变频的基本功能是从输入的宽带高数据流数字信号中提取所需的窄带信号, 将其下变频为数字基带信号, 并转换成较低的数据流以正交的形式输出[4]。自主设计的数字下变频主要包括4个部分,即正交变换、CIC抽取、匹配滤波器和参数控制,其组成结构如图1所示。首先,通过正交变换部分把信号搬移到基带,然后将混频器输出信号接到一组滤波器上,通过滤波器将有用信号提取出来。由于采样频率很高,信号带宽和过渡带较窄,直接在高采样率下设计一个过渡带较窄的滤波器很难物理实现,因此采用级联积分梳状抽取滤波器(CIC)和FIR低通匹配滤波器两级级联的方式进行信号滤波。同时通过参数的灵活配置设计,实现对不同速率信号的降采样率变换和基带匹配滤波。

2 数字下变频的模块设计

2.1 正交变换

正交变换模块的基本功能是把A/D转换器输出的中频信号搬移到基带,转变成基带正交复信号。即输入的A/D信号经由两个相乘器所构成的混频器,分别乘以两路正交的本地载波分量,一路为同相分量(cos),另一路为正交分量(sin),cos和sin采用FPGA内部频率合成器产生。FPGA具有可编程的频率和初始相位,其中的初始相位控制字用来设置本地载波分量的初相,频率控制字用来设置产生本地载波信号的频率。

2.2 CIC抽取滤波器设计

CIC滤波器是一种基于零极点相抵消的FIR滤波器,它的系统函数如下:

H(z)=

=(1-z-D)N=[HI(z)Hc(z)]N

式中:D为抽取因子;N为级联级数;HI(z)=为积分器;Hc(z)=(1-z-D)N为梳状滤波器。

CIC滤波器就是积分器和梳状滤波器的N级级联。单级CIC滤波器的阻带抑制比较差,第一旁瓣电平只比主瓣小13.46 dB 。为了增大阻带衰减,在设计中选取N值为5,即采用5级级联,此时可以得到第一旁瓣相对主瓣67.30 dB的衰减,满足实用需求。5级级联抽取系数为16的CIC滤波器频率响应如图2所示。

5级级联的CIC抽取设计结构框图如图3所示。从CIC的实现结构中可见,实现一组CIC滤波器只需加减法器和寄存器,不需要复杂的乘法运算。在用FPGA实现CIC滤波器时,每一级滤波器都会带来系统增益,为避免累加器溢出,累加结果寄存器的位宽需进行扩展,并在滤波器输出结果时根据抽取系数的范围进行动态调整截位,这样既保证了滤波器输出无失真,同时也实现了尽量采用最少资源存储信号的最大精度。

2.3 FIR低通滤波器设计

在数字下变频中,信号经过CIC抽取滤波器后输入到 FIR低通滤波器的采样速率,相对来说已经很低,因此当FPGA在一定的处理时钟速率下,能够实现较高阶的 FIR 滤波,使得滤波器的通带波动、过渡带带宽、阻带最小衰减等指标达到很好的设计。FIR 低通滤波器主要作用就是对整个信号进行整形滤波。

在通信系统应用中,为了有效利用信道,提高频带的利用率,在基带信号发送之前需要经过成形滤波器进行频谱压缩,由此就会引入码间干扰,为了使传输误码率足够小,必须最大限度地减少码间干扰。根据奈奎斯特第一准则,如果信号经传输后整个波形发生了变化,只要其抽样判决特定点的抽样值保持不变,那么仍然可以准确地恢复出原始信号。满足奈奎斯特第一准则的低通滤波器有很多种,最常用的是升余弦滚降滤波器,其频率响应表达式如下[5]:

实际通信系统中,当奈奎斯特滤波器是升余弦滚降滤波器时,发送端的成形滤波器和接收端的匹配滤波器都应采用平方根升余弦滚降滤波器。为了更好地对信号进行整形滤波,将数字下变频中的低通滤波器设计成平方根升余弦滚降滤波器,其时域表达式为[6]:

在设计根升余弦滚降滤波器时,采用了凯塞窗(Kaiser Window),这种窗序列虽然比其他窗序列复杂一些,但它有着更好的性能,并且使用起来更加灵活,采样速率是符号速率的4倍。利用MATLAB仿真软件FDA_TOOL设计生成的128阶根升余弦成形滤波器系数及幅频响应如图4所示。

2.4 参数配置设计

由于数字下变频需要处理不同速率的多载波信号,且各个载波信号的带宽不尽相同,因此在实际设计时,通过计算机控制软件实现对数字下变频各个模块的参数配置,可编程设置NCO输出信号频率、CIC抽取系数、根升余弦滤波器滚降系数,并可实现滤波器系数的自动计算及定点格式转换,在解调器启动工作前对FPGA中的FIR滤波器进行系数动态配置,这样就满足了不同带宽、不同载波信号的低通整形滤波。目前DDC的设计大多可实现频率和抽取系数的编程配置,而FIR滤波器系数的自动生成及动态配置是本文自主提出的设计思想。采用这项技术,实现了数字下变频中不同速率信号的匹配滤波,很好地提高了窄带信号提取的低通滤波性能。参数配置控制软件界面如图5所示。

3 数字下变频的FPGA实现

本文所描述的数字下变频设计硬件平台选用的是Xilinx公司Spartan 3 系列XC3S4000 FPGA芯片,在Xilinx ISE 9.2编程环境下,采用Verilog语言编程设计实现,顶层设计原理如图6所示。输入A/D采样信号宽14比特位,FPGA工作时钟为61.44 Mhz,DDC输出信号位宽16比特位,正交变换模块由loopdds和I_MUL、Q_MUL实现,CIC_D_N5_I和CIC_D_N5_Q完成正交变换后的I和Q两路信号的CIC抽取滤波,SQRTRCOS_FIL_I和SQRTRCOS_FIL_Q实现了两路正交信号的低通匹配滤波。经实际通信系统验证,该设计在全数字解调器中很好地完成了多载波、多速率信号的数字下变频处理功能。

4 结语

本文主要研究了数字下变频中的各个模块结构设计与FPGA实现,由于FPGA在设计和修改上的灵活性,可以满足各种不同应用领域的设计要求,因此用FPGA代替专用数字下变频芯片,可以简化硬件电路设计,提高全数字解调器的集成度、稳定性、可靠性及可扩展性,具有很高的实用价值。

参考文献

[1] 徐小明,蔡灿辉.基于FPGA 的数字下变频(DDC)设计[J].通信技术,2011(10):19-24.

[2] 孙琛.基于FPGA的数字下变频的设计与实现[J].信息系统工程,2010(7):20-21.

[3] 刘凯.一种基于FPGA的数字下变频器设计[J].设计参考,2009(1):63-65.

[4] 李玉柏.软件数字下变频的实现与算法分析[J].通信学报,2000(10):44-49.

[5] 秦志强.阶数可变的成形滤波器FPGA 实现[J].通信技术,2009(3):261-262,265.

基于FPGA的数字电子时钟设计与实现 篇4

利用MAX PLUSII软件工具,设计一个全数字锁相环路,通过它从19.2k的信号中提取同步信号。本地源时钟为11.0592MHz。

要求实现的功能:

a当远端信号(方波)的占空比分别为1:

1、1:

3、1:5和1:7时,从其中提取同步信号。b先将远端信号(方波)转变成伪随机序列,然后从中提取同步信号。完成仿真过程,给出测试结果,要求得到同步带宽、捕捉带宽和最大同步时间。

2.设计原理

2.1数字锁相环基本原理

一个典型的锁相环(PLL)系统,是由鉴相器(PD),压控荡器(VCO)和低通滤波器(LPF)三个基本电路组成,如图1所示。

图1 PLL模块图

传统的锁相环是模拟电路,它利用环路中误差信号去连续地调整位同步信号的相位。全数字锁相环路完全用数字电路构成,采用高稳定度的振荡器(信号钟),从鉴相器所获得的与同步误差成比例的误差信号不是直接用于调整振荡器,而是通过一个控制器在信号钟输出的脉冲序列中附加或扣除一个或几个脉冲,这样同样可以调整加到鉴相器上的位同步脉冲序列的相位,达到同步的目的。

全数字锁相环(ADPLL)由数字鉴相器(DP)、数字滤波器(DF)与数字压控振荡器(DCO)三个数字电路部件组成,如图2所示。

图2 ADPLL模块图

2.2数字锁相环原理框图

本设计中的数字锁相环由信号钟、控制器、分频器、相位比较器组成。其原理框图如图3所示。

图3 数字锁相环原理框图

信号钟包括一个高稳定度的晶体振荡器和整形电路。若接收码元的速率为F=1/T,那么振荡器频率设定在nF,经整形电路之后,输出周期性脉冲序列,其周期T0=1/(nF)=T/n。本设计中时钟为11.0592MHz。

控制器包括图中的扣除门(常开)、附加门(常闭)和“或门”,它根据相位比较器输出的控制脉冲(“超前脉冲”或“滞后脉冲”)对信号钟输出的序列实施扣除(或添加)脉冲。分频器是一个计数器,每当控制器输出n个脉冲时,它就输出一个脉冲。控制器与分频器的共同作用的结果就调整了加至相位比较器的位同步信号的相位。这种相位前、后移的调整量取决于信号钟的周期,每次的时间阶跃量为T0,相应的相位最小调整量为Δ=2πT0/T=2π/n。

相位比较器将接收脉冲序列与位同步信号进行相位比较,以判别位同步信号究竟是超前还是滞后,若超前就输出超前脉冲,若滞后就输出滞后脉冲。

3.数字锁相环的硬件实现

根据图3(数字锁相环原理框图),利用MAX PLUSII中的硬件仿真功能,实现数字锁相环。下面将给出信号钟、分频器和相位比较器的硬件实现图。

信号钟包含一个晶振和整形电路,晶振产生的方波信号经过整形电路后变成脉冲信号。为了和控制器相配合,需要两路脉冲信号。整形电路由D触发器和逻辑与、或、非门组成。D触发器起到延时的作用,然后通过逻辑或门和与门产生脉冲波。电路如图4所示。

图4 整形电路(rc)

分频器是一个计数器,由3片74LS161来实现。电路如图5所示。

图5 分频器(fd)

相位比较器主要由微分脉冲电路和逻辑与、非门组成。微分脉冲形成电路由D触发器和逻辑异或、与门组成。D触发器起延时的作用。微分脉冲形成电路如图6所示。

图6 微分脉冲形成电路(dp)

数字锁相环的硬件实现电路如图7所示。图中蓝色字样所在框图由上至下分别为微分脉冲形成电路(dp)、整形电路(rc)和分频器(fd),具体结构如图

6、图4和图5所示。

图7 数字锁相环电路

由于在MAX PLUSII中没有占空比为1:

3、1:5和1:7的方形波,所以要利用可用的元器件来生成满足要求的信号。可以通过把方波分别通过模

4、模6和模8计数器来达到这一目的。在本设计中,利用74LS161来实现这些计数器。模

4、模

6、模8计数器分别如图

8、图

9、图10所示。

图8 模4计数器(1_3)

图9 模6计数器(1_5)

图10 模8计数器(1_7)

方波通过这些计数器后就能形成占空比满足要求的信号,然后再将信号送入图7所示的数字锁相环电路中,便可以提取出同步信号。

在本设计中,将方波转变成伪随机序列用到74LS194和逻辑异或门、与非门。7位伪随机序列发生器电路如图11所示。将产生的伪随机序列送入图7所示的数字锁相环电路中,便可以提取出同步信号。

图11 7位伪随机序列发生器

4.仿真过程

4.1接收信号的占空比为1:1

条件设置为:End Time = 10ms,Grid Size = 45.2ns 位同步信号超前于接收脉冲序列的情况如图12所示,蓝色线条处放大后如图13所示。经过一段时间后锁相成功,达到同步状态,如图14所示。

图12 位同步信号超前于接收脉冲序列

图13 超前脉冲作用于扣除门

图14同步状态

位同步信号滞后于接收脉冲序列的情况如图15所示,蓝色线条处放大后如图16所示。经过一段时间后锁相成功,达到同步状态,如图17所示。

图15 位同步信号滞后于接收脉冲序列

图16 滞后脉冲作用于附加门

图17 同步状态

通过多次试验,可得测试结果如下: 同步建立时间:14.824ms 同步带宽:40hz 4.2接收信号的占空比为1:3

条件设置为:End Time = 10ms,Grid Size = 45.2ns 位同步信号超前于接收脉冲序列的情况如图18所示,蓝色线条处放大后如图19所示。经过一段时间后锁相成功,达到同步状态,如图20所示。同步建立时间:6.906ms

图18 位同步信号超前于接收脉冲序列

图19 超前脉冲作用于扣除门

图20 同步状态

位同步信号滞后于接收脉冲序列的情况如图21所示,蓝色线条处放大后如图22所示。经过一段时间后锁相成功,达到同步状态,如图23所示。

图21 位同步信号滞后于接收脉冲序列

图22 滞后脉冲作用于附加门

图23 同步状态

通过多次试验,可得测试结果如下: 同步建立时间:14.905ms 同步带宽:24hz 4.3接收信号的占空比为1:5

条件设置为:End Time = 10ms,Grid Size = 45.2ns 位同步信号超前于接收脉冲序列的情况如图24所示,蓝色线条处放大后如图25所示。经过一段时间后锁相成功,达到同步状态,如图26所示。

图24 位同步信号超前于接收脉冲序列

图25 超前脉冲作用于扣除门

图26 同步状态

位同步信号滞后于接收脉冲序列的情况如图27所示,蓝色线条处放大后如图28所示。经过一段时间后锁相成功,达到同步状态,如图29所示。

图27 位同步信号滞后于接收脉冲序列

图28 滞后脉冲作用于附加门

图29 同步状态

通过多次试验,可得测试结果如下: 同步建立时间:14.706ms 同步带宽:16hz 4.4接收信号的占空比为1:7

条件设置为:End Time = 20ms,Grid Size = 45.2ns 位同步信号超前于接收脉冲序列的情况如图30所示,蓝色线条处放大后如图31所示。经过一段时间后锁相成功,达到同步状态,如图32所示。

图30 位同步信号超前于接收脉冲序列

图31 超前脉冲作用于扣除门

图32 同步状态

位同步信号滞后于接收脉冲序列的情况如图33所示,蓝色线条处放大后如图34所示。经过一段时间后锁相成功,达到同步状态,如图35所示。

图33 位同步信号滞后于接收脉冲序列

图34 滞后脉冲作用于附加门

图35 同步状态

通过多次试验,可得测试结果如下: 同步建立时间:14.865ms 同步带宽:18hz 4.5远端信号(方波)转变成伪随机序列

条件设置为:End Time = 20ms,Grid Size = 45.2ns 位同步信号超前于接收脉冲序列的情况如图36所示,蓝色线条处放大后如图37所示。经过一段时间后锁相成功,达到同步状态,如图38所示。

图36 位同步信号超前于接收脉冲序列

图37 超前脉冲作用于扣除门

图38 同步状态

位同步信号滞后于接收脉冲序列的情况如图39所示,蓝色线条处放大后如图40所示。经过一段时间后锁相成功,达到同步状态,如图41所示。

图39 位同步信号滞后于接收脉冲序列

图40 滞后脉冲作用于附加门

图41 同步状态

通过多次试验,可得测试结果如下: 同步建立时间:52.476ms 同步带宽:8hz 5.心得体会

数字电子时钟开题报告 篇5

一、课题任务与目的二、调研资料情况

时钟,自从它发明的那天起,就成为人类的朋友,但随着科技的飞速发展,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。人们对时间计量的精度要求也越来越高,应用越来越广。怎样让时钟更好地为人民服务,这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替了机械式转动,用LED显示器代替指针显示进而显示时间,减小了计时误差。

目前,单片机正朝着高性能和多品种方向发展的趋势进一步向CMOS化、低能耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。

单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方案。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

数字时钟在单片机模块里比较常见,数字时钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

数字时钟是采用数字电路实现对时、分、秒、数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,犹豫数字集成电路的发展和石英晶体振捣器的广泛使用,使得数字时钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动开启闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电器的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研

究数字时钟及扩大其应用,有着非常现实的意义

参考文献:

[1] 林凌,李刚,丁茹,李小霞.新型单片机接口器件与技术[M].西安:西安电子科技大学出版社,2005年.[2] 高伟.AT89单片机原理及应用[M].北京:国防工业出版社,2008年.[3] 蔡朝阳.单片机控制实习与专题制作[M].北京:北京航空航天大学出版社,2006年.[4] 杨凌霄.微型计算机原理及应用[M].江苏:中国矿业大学出版社,2004年.[5] 胡学海.单片机原理及应用系统设计[M].北京:北京电子工业出版社,2005年.[6] 边春远,王志强.《MCS-51单片机应用开发实用子程序》人民邮电出版社

[7] 李朝青.《单片机原理及接口技术》第3版北京航空航天大学出版社

数字时钟的设计实验报告 篇6

数字时钟的设计

一、实验目的

1、掌握数字钟的设计方法。

2、掌握计数器相互级联的方法。学号:14040120049 姓名:陶泽

二、实验设备和器件

1、数字逻辑电路实验板2、74HC(LS)20(二四输入与非门)

3、74HC(LS)160(4位十进制计数器)

1块 2片 4片、三、实验原理

1、设计总框图:

2、各部分单元的设计提示与分析: 1)时钟源

它是数字式时钟的核心,它保证了时钟的走时准确及稳定。1Hz的脉冲信号由CPLD输出的信号得到。

2)时间计数单元

时间计数单元有分计数和秒计数等几个部分。分计数和秒计数单元为60进制计数器,其输出为8421BCD码。

3)译码驱动及显示单元 计数器实现了对时间的累计并以8421BCD码形式输出,显示译码电路将计数器的输出数码转换为数码显示器件所需要的输出逻辑和一定的电流。4)校时电路

当重新接通电源或走时出现误差时都需要对时间进行校正。通常,校正时间的方法是:首先截断正常的计数通路,然后再进行人工出触发计数或将频率较高的方波信号加到需要校正的计数单元的输入端,校正好后,再转入正常计时状态即可。5)闹钟电路

一般时钟都应具备闹钟功能,即在到达某预定时间时,时钟会发出连续的或有节奏的音频声波,较复杂的也可以是实时语音提示,以示提醒。实验用器件管脚介绍:

四、实验内容与步骤

1、用两片74HC(LS)160连接构成秒计数器,并连接数码管显示(基本命题)

例如采用整体置零法。实现计数范围为0000 0000--0101 1001。电路连接完成后,检验其功能。

2、在实验内容与步骤1的基础上再用两片74 HC(LS)160实现分的计数(基本命题)

分计数器的个位和十位之间的连接类同于秒计数器。需实现从秒到分的进位。电路连接完成后检验其功能。

3、实现校时功能(扩展命题)

检验功能

4、实现闹钟功能(扩展命题)

连接电路,检验其功能。

五、实验注意事项 集成电路要轻插轻拔!

六.实验电路图

1.用两片74HC(LS)160连接构成秒计数器,并连接数码管显示

2.在实验内容与步骤1的基础上再用两片74 HC(LS)160实现分的计数

基于FPGA的数字电子时钟设计与实现 篇7

1 FIR数字滤波器的基本原理及结构

对于一个FIR滤波器系统,它的冲击响应总是有限长的,其系统函数可以记为:

该数学表达式可用差分方程来表示:

式中:x(n)是输入采样序列;h(i)是滤波器系数;k是滤波器阶数;y(n)表示滤波器的输出序列。

图1为k阶FIR数字滤波器的结构框图。

2 FIR数字滤波器的设计流程

该设计流程主要涉及到Matlab/Simulink、DSP Builder和QuartusⅡ等工具软件的开发设计。整个设计流程,包括从系统描述直至硬件实现,可以在一个完整的设计环境中完成[4],如图2所示。

(1)Matlab/Simulink中设计输入,即在Matlab的Simulink环境中建立一个扩展名为mdl的模型文件,用图形方式调用Altera DSP Builder和其他Simulink库中的图形模块(Block),构成系统级或算法级设计框图(或称Simulink设计模型)。

(2)利用Simulink的图形化仿真、分析功能,分析此设计模型的正确性,完成模型仿真,也叫系统级仿真。

(3)DSP Builder设计实现的关键一步,通过SignalCompiler把Simulink的模型文件转化成通用的硬件描述语言Verilog文件。

(4)转换好的Verilog源代码用Model Sim软件进行功能仿真,验证Verilog文件的正确性。接下来的几个步骤是对以上设计产生的Verilog的RTL代码和仿真文件在QuartusⅡ工具软件中进行综合、编译适配,生成扩展名为.sof的文件加载到FPGA硬件系统中。

3 FIR数字滤波器的详细设计

3.1 FIR数字滤波器模块设计与系统级仿真

根据FIR数字滤波器的原理,在Simulink环境下搭建16阶的FIR数字滤波器结构,如图3所示。

在模型的搭建过程中,使用了两个8位的Shift Taps移位寄存器模块对输入信号进行分解,然后根据数字滤波器的原理进行算法计算。

模型搭建好之后,需要确定16阶FIR数字滤波器的系数,在这使用Matlab中的FDATool滤波器设计工具来确定。确定好滤波器的指标:

(1)设计一个16阶的FIR滤波器;

(2)低通滤波器;

(3)采样频率fs为16 384 Hz,截频点频率fs为533 Hz;

(4)输入序列位宽为16位。

在设计滤波器界面中,如图4所示,进行下列选择:

(1)滤波器类型(Filter Type)为低通(Lowpass);

(2)设计方法(Design Method)为FIR,采用窗口法(Window);

(3)滤波器阶数(Filter Order)定制为15(设置为15阶而不是16阶,是由于设计的16阶FIR滤波器的常系数项h(0)=0);

(4)滤波器窗口类型为Kaiser,Beta为0.5。

所有的选项确定好后,在FDATool滤波器设计界面中点击“Design Filter”,Matlab就会计算滤波器系数并作相关分析。图5所示为滤波器的幅频响应,图6所示为滤波器的阶跃响应。

由于所有的模块都在同一个Simulink图中,这时的Simulink设计图显得很复杂,不利于阅读和排错,因此把FIR数字滤波器模型做成一个子系统在设计图中显示出来,如图7所示,这就是Matlab中的层次化设计,在顶层设计图中,滤波器作为名称是Sub FIR_533_16js的一个模块出现。同时,图7中还设置了其他模块,包括仿真信号输入模块、Signal TapⅡ信号实时监测模块、Signal Compiler模块、硬件开发板模块、Test Bench模块。

这样整个滤波器的Simulink电路设计模型就完成了,然后要对该模型进行系统级仿真,查看其仿真结果,在频率为533 Hz的波形输入上加入了频率为3 600 Hz的扰动波形,其Simulink仿真结果如图8所示。

图中,上面的波形是533 Hz的输出,中间的波形是533 Hz加上3 600 Hz高频干扰后的输出,下面的波形是经过滤波后的输出。

3.2 从模型文件到Verilog代码的RTL级转换和编译适配

利用Signal Compiler模块将电路模型文件即Simulink模块文件(.mdl)转换成RTL级的Verilog代码表述和Tcl(工具命令语言)脚本。这种转换是用来对数字滤波器Simulink模型进行结构化分析的[5]。获得转换好的VHDL描述后就可以调用Verilog综合器,这里我们选用QuartusⅡ,用来生成底层网表文件,同时也就可以得到其网表文件对应的RTL电路图。如图9所示。

3.3 数字滤波器的Model Sim功能仿真

Model Sim软件可支持VHDL和Verilog混合仿真,无论是FPGA设计的RTL级和门级电路仿真,还是系统的功能仿真都可以用Model Sim来实现[4,5]。由Signal Compiler生成的Verilog硬件描述语言模块,在Model Sim中可以直接对Verilog代码进行仿真,检测源代码是否符合功能要求。图10所示的16阶FIR数字滤波器的功能仿真结果图。与图8的Simulink仿真结果图的波形一致,表明经过转换的Verilog源代码可以实现正常的滤波功能。

3.4 FIR数字滤波器的FPGA硬件实现

FIR数字滤波器一般是嵌入在采集器的采集板卡中进行工作的,把由数字滤波器的Verilog源代码生成的模块嵌入到采集板卡的FPGA逻辑中,如图11所示。在QuartusⅡ环境下,数字滤波器的内部逻辑经过编译适配之后,以.sof文件的形式直接加载到FPGA中。

4 FIR数字滤波器的FPGA实时测试

进行实时测试的电路是应用FPGA和USB的数据采集电路[3],如图12所示。

测试时把信号发生器设置好的输入信号输入到A/D,采样得到的数据经过FPGA,再通过USB与PC机相连,应用QuartusⅡ中的Signal TapⅡ工具进行实时检测,结果如图13所示,其中,上面的波形为输入波形,频率为200 Hz,下面的波形为输出波形,由于200 Hz在低通的带通内,所以两者的波形相差不大。当输入波形为频率533 Hz时,由于是在截频点,其输出波形的幅值约为输入波形幅值的71%,如图13和14所示。

5 结语

FIR数字滤波器在数字信号处理领域有着广泛的使用,本文通过仿真和实时验证两种方式实现了一种基于FPGA和DSP Builder的FIR数字滤波器。先根据FIR滤波器的基本原理和结构框图搭建了滤波器的模型,再根据滤波器的性能指标通过FDATool工具对其进行设计,并通过系统级仿真和Model Sim功能仿真进行了简要的可行性分析,最后通过QuartusⅡ软件对FIR数字滤波器进行实时验证,表明所设计的FIR滤波器功能正确,性能良好。

参考文献

[1]陈家祯,郑子华,叶锋,等.基于FPGA的数字滤波系统设计[J].计算机仿真,2009,26(12):329-332.

[2]刘艳,赵洪,于效宇,等.可配置参数FIR数字滤波系统设计[J].数据采集与处理,2009,24(6):835-839.

[3]孙耀奇,高火涛,熊超,等.基于Matlab和FPGA的FIR数字滤波器设计及实现[J].现代电子技术,2008,31(11):89-92.

[4]王旭东,潘明海.数字信号处理的FPGA实现[M].北京:清华大学出版社,2011.

[5]杜勇,路建功,李元洲.数字滤波器的Matlab与FPGA实现[M].北京:电子工业出版社,2012.

[6]戴曜泽,王春雷,朱智强.基于FPGA高阶FIR滤波器的实现[J].现代电子技术,2012,35(8):110113.

基于FPGA的数字电子时钟设计与实现 篇8

【关键词】FPGA 蓝牙智能小车 设计

一、设计原理

本实例以FPGA为下位机,智能手机为上位机,通过蓝牙接口实现智能手机与FPGA开发板的通信,进一步达到手机对小车的控制。现代的大部分电子产品都基于可编程的中央处理器,这些处理器都可以与蓝牙芯片进行串口通信,蓝牙技术的适用性十分广泛。基于蓝牙技术的智能控制系统,只需在载有处理器的下位机上增加蓝牙模块,配置通信协议,实现串口通信,就可以实现基于蓝牙技术的智能控制系统。

二、硬件设计

(一)电机驱动模块的设计

本系统使用L298N作为电机驱动芯片。L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以同时驱动2个二相或1个四相步进电机,接收标准TTL逻辑准位信号,且可以直接透过电源来调节输出电压。此芯片可直接由FPGA的10端口来提供模拟时序信号。ISEN A和ISEN B可与电流侦测用电阻连接来控制负载的电路;OUT1、OUT2和OUT3、OUT4之间可分别接2个步进电机;IN1~IN4输入控制电位来控制电机的正反转;使能端ENA和EN B则控制电机停转。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。

(二)超声波模块的设计

本系统使用的超声波模块主要实现的功能是测距并返回数据。超声波测距模块通过发射电路和接收电路测出时间差T,然后根据公式S=CT/2算出小车距离障碍物的距离S(其中C为超声波在空气中的传播速度)。FPGA实时接收和处理距离信号,并将处理后的信号转换为控制指令。当到达警报距离时,FPGA控制电机驱动模块使小车减速;当到达极限距离时,FPGA控制电机驱动模块使小车马上左转。此处的左转是依照左手定则,当小车的前方和左方都有障碍物时,小车左转两次,实现向后运动。

(三)蓝牙模块的设计

本系统使用的蓝牙模块是SH-HC-06,利用串口UART协议进行收发数据。手机蓝牙作为客户端,小车上的蓝牙模块作为服务端。客户端通过蓝牙与服务端进行数据传输,服务端将接收到的客户端信号传给FPGA控制模块,FPGA接收并处理数据,然后再把处理后的数据发回去。发送格式为:1bit起始位,8bit数据,1bit停止位。整个通信处理过程可细分为数据接收和数据发送。

三、系统综合与仿真测试

1.超声波模块

在超声波模块仿真过程中,涉及蓝牙模块实时采集数据,但是仿真环境中无法实现。

2.砸动模块

图1为小车驱动控制模块仿真图,CLK为时钟信号输入端,RESET为重置信号输入端,PWM_Data为占空比信号输入端,Car_State为小车状态控制输入端,ENA、ENB、ENC、END为占空比输出端,IN1、IN2、IN3、IN4为小车驱动控制模块控制电机的输出端。在本次仿真中,占空比设置为20,小车状态为O时四个电机均无输出;小车状态为1时,小车前进,输出状态为1010;小车状态为2时,小车掉头,输出状态为0101;小车状态为3时,小车左转,输出状态为0110;小车状态为4时,小车右转,输出状态为1001。

四、系统总结

数字时钟设计开题报告 篇9

设计(论文)题目: 基于单片机的家庭报时系统硬软件设计

1、目的及意义

单片机是为了实现控制功能而设计的一种微型计算机,它的应用首先是控制功能,即实现计算机控制。单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已经渗透到我们生活的各个领域。单片机控制技术主要研究如何控制计算机技术和自动控制理论应用于工业生产过程中。随着科学技术的不断发展,单片机报时控制技术的应用领域已经日益广泛,如在冶金、化工、电力、自动化机床、工业机器人控制、柔性制造系统和计算机集成制造系统等工业测控方面,已经取得了令人瞩目的研究与应用成果,并在国民经济中发挥着越来越大的作用。

自从有了时间的概念,人们就开始研究如何计时。随着时代的发展,尤其是近些年来科学技术的飞速发展,计时的方式有了很大的进步,现在,也可以说是前些年,计时系统并不单单具有计时的功能,大都带有定时、自动报时的功能,并且,这种技术日趋完善,现在已被广泛的应用在我们生活、生产的方方面面,大到大型的企业集团,小到一个学校的定时系统以及家用的具有智能性的闹钟等。例如奥运会倒计时显示屏、铁路安全日显示屏、生产线看板、体育比赛记时屏、大型室外高亮度时钟等,这类产品覆盖银行、医院、地铁车站、体育运动、电视台、监控系统、高大建筑物等行业。而在这些时钟里,带自动报时功能的时钟以其特有的方式得到了更广泛的研究。 报时系统最重要的一个特性就是体现出其控制时间的准确性、精确性。本设计任务正是以时间为控制对象,设计一个由单片机控制的报时系统。我所设计的基于单片机的自动报时系统,它不仅能实现数字电子时钟的各种功能,如具有较时、调时、定时、闹钟等功能,而且还能实现定点报时的功能。实现时钟可提供秒、分、时、日、星期、月和年的显示。本设计具有简单,实用性强,成本低,使用维护方便,软件功能强,运行稳定可靠等优点。

2、研究(设计)的基本内容、目标、拟采用的技术方案及措施

研究(设计)的基本内容:

本设计是基于单片机为控制核心,采用模块设计法完成多功能电子钟的设计。本设计采用LED液晶显示屏显示时间,并在特定的定时时间到时,采用简单的单片录放音电路(ISD4004)准点报时,设计中还用到键盘输入电路,可通过按键实现定时,调时等功能,最后在LED液晶显示屏上显示。当然,整个设计过程需要单片机的编程来实现,然后通过仿真软件对各个模块和主电路进行仿真,确保系统的完整运行。

研究的基本目标:

设计出自动报时系统各个模块的电路,实现模块与模块之间的连接,完成各个模块的C语言编程,最终通过protel仿真技术来实现软件的编程和调试,使得系统完美运行。

拟采用的技术方案及措施:

(1)硬件平台设计:我所设计的是一个自动报时系统,自动报时系统用到的单片机芯片是AT89C51芯片,除此之外还包括晶振电路和复位电路构成单片机最小应用系统;还有独立式按键电路;动态显示电路;语言报时电路等等。系统电路设计框图如下图1所示。

(2)软件平台设计:自动报时系统用到了DS1302芯片,在此设计中用定时器来完成动态扫描显示,要有主程序,本设计使用按键来对DS1302写入时间校时,对时,设定时间的,所以要有DS1302的写时钟程序。语音报时系统中采用了ISD4004录放音芯片,因此还需要完成报时系统的定点报时程序。

(3)仿真及调试:系统调试包括硬件调试和软件调试,程序的调试一个模块一个模块的进行,单独调试各功能子程序,通过PROTEL仿真软件和KEIL软件来验证程序。

3、进度安排

3.2-3.7 查阅设计题目的相关资料

3.7-3.20 修改、完善开题报告,技术方案要详细具体、明确无误

3.21-3.28 学习51单片机,C语言的相关知识

3.29-4.14 确定电子钟的设计方案,完成最小系统的设计和写出汇编语言 的源代码

4.15-4.22 搭建最小系统模块,进行调试并且修改

4.23-4.30 撰写毕业设计论文目录,需要获得指导老师认可

5.1-5.17 根据论文目录撰写正文,内容层次清楚,格式规范、完善论文

5.18-5.24 上传论文

5.27-6.2 打印论文,准备答辩

4、参考文献

[1]陈权昌, 李兴富. 单片机原理及应用. 华南理工大学出版社,.8

[2]唐勇. 基于单片机的电子钟的设计. 湖南工学院, 2007

[3]谭浩强.C程序设计(第三版).北京.清华大学出版社,2007

[4]朱善军等.单片机接口技术与应用.北京.清华大学出版社,

[5]刘宁. 单片机多功能时钟的设计. 浙江海洋学院,

[6]黄智伟.全国大学生电子设计竞赛系统设计[M]. 北京:北京航空航天大学出版社,

[7]陈海宴.51单片机原理及应用[M].北京航空航天大学出版社,.

[8]何宏主.单片机原理与接口技术. 北京:国防工业出版社. 2006.07 [9]李及,赵利民.MCS-51系列单片机原理与应用.长春:吉林科学技术社,1995.

[10]李陪金.C语言程序设计案例教程.西安:西安电子科技大学出版社,.1

[11]朱清慧等.Proteus教程.北京.清华大学出版社,2008.

[12]李勋.单片机实用教程[M].北京:航空航天大学出版社,.6.

[13]Xiu-rui Song,Zhi-guo Liu ,Zhi-yong Wu,An-fu Yu. The system of 24-channel digital potentiometers based on single-chip microcomputer.Advanced Computer Theory and Engineering (ICACTE), 2010 3rd International Conference on .2010 .

[14]Leung Kin Chiu ,Kavanagh, P.Designing a clock cleaner with an on-demand digital sigma-delta modulator .Global Conference on Signal and Information Processing (GlobalSIP), IEEE .2013 , Page(s): 671 C 674.

单片机数字时钟课程设计感想 篇10

在实验的开始几天,基本上没有收获,不知何从下手,不知所措。为了看得更远,不妨站在前人的肩膀上,我在整体思路模糊的情况下,在网上大量招资粮,各种与电子时钟相关的文章,我阅读了不少。随着涉猎的点滴积累,我对电子时钟的设计方案已经慢慢酝酿而成。有了方向和不少知识储备后,在接下来的几天,几乎每天都有突破,虽然有时只是一句程序的修改或诞生,但那种收获的感觉很暖人心。

实验中遇到了不少问题,接下来总结一下,共同探讨。

1,按键问题。我的设计中,很多功能选择是通过按键开关实现的。在仿真中发现,调整数值时,有时按键反应太快,按一次,跳了几下,使设置时间,日期很不方便。但是仿真多了之后,找到了按键(实际上是按鼠标)的节奏,对按键的掌控力提高了不少,不怎么会出现跳变的情况了。有些开关我采用了长按键的方式来防抖,效果不错,但是每次都要长按键,调整效率太低,我没有普及。本来想把所有的按键都加延时防抖电路,但仿真中感觉对键盘的控制力没提高多少,有时还是会出问题,这个方案放弃了。索性将板子焊接出来了在调试软件吧,仿真毕竟不是那么“真”啊!实际电路调试中,按键反应没有出现过于灵敏的问题,基本可控制。

出现以上问题,我认为是电路板上焊接点太多,接触不是很好,影响了信号的传输时间,从而解决了按键问题!也有可能是按键质量问题,接触不良。

2,P0口开关问题。P0口比较特殊,它存在高阻态,要使其输入不是高电平就是低电平,就要接上拉电阻,给其高电平输入。

3,音乐闹铃问题。在闹铃时间到,闹铃提醒时,我的数码管为熄灭状态,因为开始我的响铃程序内,没有数码管扫描显示程序。但加入数码管显示子程序后,我的闹铃音乐被影响了,一开始不知所措,有点怀疑是显示程序时间过长,影响音乐的定时(节拍),我就在响铃程序中加延时模块,延时长度逐渐提高,最后出现了类似的问题,看来时显示程序占用时间太长,使音乐每个音符的节拍出现了紊乱,音乐功能被遏制了!鱼和熊掌不能兼得,我只能牺牲显示来获得音乐闹铃,但为了弥补显示,我设计了闪烁提醒方案,就是在手动或音乐自然停止后,进入当前时间闪烁提示,8秒后若不按返回键,则自动跳入主程序。

在仿真中,老师提供的响铃电路不能实现功能,但是在我的电路板中效果很好,令人费解!4,中断冲突问题,为了实现秒表,我在T0中断嵌套了秒表相关进位程序,由于秒表要求精度0.01秒,故我的T0中断定时为就刚好0.01秒,中断100次,刚好1秒。秒表确实实现了,但是我的闹铃音质变差了。一开始以为是闹铃程序存太多冗余环节,影响了T1的音乐输出中断,但是检查程序后,发现没什么多余的,裁剪无从下手。

在仿真中,我让音乐模块运行,发现音质很好。添加T0中断服务程序,但是将中断进入的间隔变大,即0.05秒进入一次中断,发现音质有所下降,有滋滋声,但比原来的好。最后认定应该是T0中断过于频繁,T1音乐频率发生中断被打破,当单位时间内被打破的次数达到一定程度时,音符和节拍的对应发生紊乱,最终音质变差。

虽然如此,我的焊接的电路板的表现却很争气,闹铃音质可以接受!虽然这次实际表现不错,但问题还是有的,还是要解决的,我的方案是把秒表程序放在T1中断服务程序,虽然音乐的发生要用到T1中断,但是秒表的显示和闹铃音乐的演奏上不会重合在一起,闹铃判断是在主程序,而秒表实现是在秒表子程序,故原本相互矛盾的两个功能,在T1中断服务程序中找到了共同的归宿,和谐相处。

5,显示数字分隔问题。本实验中用8个共阴极数码管显示日历及其时间,但是8个数码管连在一起,显示过程中不能有效地区分时,分,秒和年,月,日,数码管是两两组合起来,形成某位的十位和个位,故用小数点在适当位置一直保持高亮状态,形成分隔符,实现方便的读取数据。具体方法是,将需要小数点位高亮的数码管找出来,在动态显示扫描到该数码管时,先将提取的字段码的最高位变为1,利用语句 ORL A,#10000000B 实现,修正字码后,再将字码送入P1口显示数字,如此问题得以解决。

6,添加倒计时器嘀嘀声提示功能。这个功能我用到了T1中断,作为音调频率发生器,但是T1已经承担了音乐闹铃的音调发生功能,在此通过设立标志位实现中断服务程序的转变。即使我将秒表的实现服务程序放入T1中断实现,也没问题,只要选择标志位判断就可以了。在此,我们用调整状态指示灯的状态来做标志位,具体的说是P0.1口做标志位。

还有一个问题就是如何使铃声有间隔的响,这就牵涉到定时,在此我们用硬件定时,即T1中断的次数作为定时参数。我的设计是音调响0.25秒,然后用T1延时0.5秒,由于计数器工作于方式1时,12MHZ时钟频率下时,一次中断最多定时65536*1us=0.065536秒,为了实现0.5秒的响声间隔,将T1中断1次定时为0.05秒,中断10次后,重新装音调发生计数初值。对于响铃时间的设定原理类似,可以有发声频率求出一次发声定时中断的时间,N次发声定时中断后,使时间变化0.25秒,而后转入发声间隔定时程序。

设计体会

上一篇:《散文两篇》教案下一篇:我最喜欢的话作文350字