基于fpga的语音定时提醒系统内容摘要:

相比它更适合大规模系统的设计。 VHDL 是一种应用非常广泛的硬件描述语言 , 其语法与 C 语言类似 , 非常容易上手,使用灵活且方便。 它可以用简洁明确的代码描述来进行复杂控制逻辑的设计 可借助高级语言的精巧结构来简化电路的描述具有电路仿真与验证机 制,从而保证设计的正确性。 方案三 使用硬件描述语言和画层次原理图相结合的 方法,来实现电路的整体设计,此方案针对本课题 来说,是最简捷、最高效的途径。 所以该系统采用了硬件描述语言与画层次图相结合的方法。 显示功能 方案一 使用液晶显示,如果我们只需要显示数字可以选择字符型液晶,但是液晶在控制方面比较复杂,规格繁多、接口方面不易选择,价格比较昂贵。 所以此课题没有选择该方案。 方案二 使用数码管显示,因为我们只需要显示数字且没有什么特殊的要求。 基于数码管的价格便宜,使用方便,易于控制等特点所以采用了该方案。 语音功能 方案一 采用自动存储的语言芯片进行语音的提醒和 录制,但在实现时不能较好的与 FPGA 部分进行兼容,而且语音的提醒音乐也较为单一。 方案二 采用单片机控制 ISD2560 语言芯片来实现语音的录放,该方案能够较好的与 FPGA 部分兼容而且该语音芯片自带有存储空间不需要外扩存储设备。 基于此特点 本 课题采用了 该 方案。 天津工程师范学院 2020 届 本科生 毕业设计 5 3 原理概述 原理框图及原理简述 原理框图 该课题的原理框图如图 31 所示 F P G A 显 示 功 能 模 块单 片 机 功 能 模 块语 音功 能 模 块扬 声 器时 钟信 号输 出提 醒信 号输 出控 制信 号输 出图 31 原理框图 原理简述 语音定时提醒系统是指在计时的同时进行语音 定时提醒功能,应用 FPGA 芯片进行时钟设计和模式转换。 FPGA 芯片内部的时钟设计主要是通过分频器把较高的外部时钟频率分频成每一 秒 计一次数的时钟脉冲,从而实现计时功能。 而提醒时间设计主要是通过寄存器和控制器来对提醒时间进行设计和存储。 时间的显示主要是通过显示器来显示当前时间或用户设计的提醒时间,同时还 要 进行当前时间是否与提醒时间相符 的比较,如果相同 则 FPGA 输出提醒信号。 显示模块的上电复位初值是 12:30 分,显示结果是由 FPGA 芯片内部的程序定义的,显示的值根据 FPGA 所给的信号不同发生改变,可以显示正常 的时间、提醒时间、还有闪烁的调整时间。 单片机模块在接收到 FPGA 输出的提醒信号后开始工作,控制语音芯片发出提醒声音。 语音模块的可以单独进行录音操作,但是必须注意的是在录音时必须按下录音键的同时再按下启停按键才可以进行录音。 录音时如果想让新的录音覆盖原来已经天津工程师范学院 2020 届 本科生 毕业设计 6 存储的录音,要首先按下复位键后再进行录音操作。 录音结束后一定要再次按录音键使该键处于放音状态。 天津工程师范学院 2020 届 本科生 毕业设计 7 4 系统组成 FPGA 芯片简介 FPGA 芯片的发展 本 课题中采用了 ALTER 公司的 EP1C6T144C8 芯片 ,以下 对 FPGA 芯片进行简单的介绍。 早期的数字系统多采用试凑法设计,此法无固定的套路可循,主要凭借设计者的经验。 所设计出的电路,虽然不乏构思巧妙者,但交流和修改不方便,设计所花费时间也较长。 随着 FPGA 器件的发展,自身与开发手段上的完善,以及推广应用方面的成就,不仅为 ASIC 的做出了贡献,而且使数字系统逻辑设计的观念、模式、方法面临又一次新的冲击。 以往采用通用逻辑芯片 (TTL, CMOS, MOS 等 )堆砌的模式面临新的挑战。 人们今后做逻辑设计,不再是通用系列芯片的选用 、搭配、堆砌,也不是对商品化的未封装芯片做内部连线与组装 (例如 GA),而是对己封装好的商品化的 FPGA 器件进行外部编程固化 (与 EPROM 固化的过程相类似 ),使之具备由若干通用逻辑电路芯片组成的逻辑单元的同等功能,可以含组合门逻辑、寄存器、时序逻辑等。 于是形成了 购 买通用 FPGA 器件,经用户编程而实现专用化的特殊设计过程。 EP1C6T144C8 芯片结构 介绍 FPGA 基本由 6 个部分组成,分别为可编程输入 /输出单元、基本可编程逻辑单元、嵌入式模块 RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用 硬核等。 芯片结构图如图 41 所示。 (1) I/O 单元,它们是芯片与外界电路的接口部分,完成不同电气特性下对输入 /输出信号的驱动与匹配需求。 为了使 FPGA 有更灵活的应用,目前大多数 FPGA 的 I/O单元设计为可编程模式,即通过软件的灵活配置,可以适配不同的电气标准与 I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。 (2) 基本可编程逻辑单元,是可编程逻辑的主体,可以根据设计灵活地改变其内部连接与配置,完成不同的逻辑功能。 (3) 嵌入式块 RAM,目前大多数 FPGA 都有内嵌的 RAM, FPGA 内部嵌入可编程RAM 模块,大大拓宽了 FPGA 的应用范围和使用的灵活性。 (4) 丰富的布线资源,是用来连通 FPGA 内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。 (5) 底层嵌入功能单元,他的概念比较笼统,这里指的是那些通用程度较高的嵌入天津工程师范学院 2020 届 本科生 毕业设计 8 式功能模块,如 DSP、 CPU 等,随着 FPGA 的发展,这些模块被越来越多地嵌入到FPGA 的内部,以满足不同场合的需求。 (6) 内嵌专用硬核,使指那些通用性相对较弱,不是所有 FPGA 器件都包含硬核的,该课题中用的 FPGA 是通用器件,是区分专 用集成电路而言的。 1122334455667788D DC CB BA AT i t l eN um be r R e vi s i onS i z eA2D a t e : 2020 5 31 S he e t of F i l e : E : \ 毕业设计 \ ..\ 毕业设计的图纸 .s c hdoc D r a w n B y :IO1IO2IO3IO4IO5IO6IO7V C C I O 18GND9IO10IO11I O / nC S O12D A T A 013nC O N F I G14V C C A _P L L 115G C L K 016G C L K 117G N D A _P L L 118G N D G _P L L 119nC E O20nC E21M S E L 022M S E L 123D C L K24I O / A S D O25IO26IO27IO28V C C I O 129GND30IO31IO32IO33IO34IO35IO36IO37IO38IO39IO40IO41IO42GND43VCCIO444GND45VCCINT46IO47IO48IO49IO50IO51IO52IO53GND54VCCINT55IO56IO57IO58IO59IO60IO61IO62GND63VCCINT64GND65VCCIO466IO67IO68IO69IO70IO71IO72IO73IO74IO75IO76IO77IO78IO79GND80V C C I O 381IO82IO83IO84IO85C O N F _D O N E86nS T A T U S87T C K88T M S89T D O90G N D G _P L L 291G C L K 292G C L K 393V C C A _P L L 294T D I95IO96IO97IO98IO99IO100GND101V C C I O 3102IO103IO104IO105IO106IO107IO108IO109IO110IO111IO112IO113IO114VCCIO2115GND116VCCINT117GND118IO119IO120IO121IO122IO123IO124IO125VCCINT126GND127IO128IO129IO130IO131IO132IO133IO134VCCINT135GND136VCCIO2137GND138IO139IO140IO141IO142IO143IO144E P 1C 6T 144C 8I C 1 图 41 EP1C6T144C8 结构图 FPGA 在 本 课题中的开发过程 FPGA 的开发工作多是在 PC 机上完成的, 也可在各种工作站平台上进行。 系统设计者希望开发 FPGA 的软件容易使用、人机界面友好,能够随时得到 “在线求助”。 开发过程主要包括如下几个步骤。 (1)设计输入。 文本方式、图形方式或两者混合的设计输入方式。 对于简单的 FPGA,天津工程师范学院 2020 届 本科生 毕业设计 9 可用 ABEL, CUPL和 PALASM 等可编程逻辑设计 语言描述设计 ; 对于复杂的 FPGA可以用原理图输入方式,也可用 DSL 和 VHDL 等硬件描述 语言进行设计输入,以及采用 “自 顶向下”的层次式结构设计方法,将多个输入文件合并成一个设计文件。 在设计输入时,可以规定器件的引脚分配 ; 也可以暂时不规定器件引脚分配,留在后续处理中自动定位,以提高器件适配的成功率。 (2)设计编译和器件适配。 这是开发过程中的重要部分。 编译软件对 “设计文件”进行逻辑化简、综合和优化,并恰当地用一个或多个器件自动进行适配,产生供器件编程用的编程文件。 编程文件通常采用电子器件工程联合委员会 (JEDEC)标准格式。 编译和适配自动进行,消除了人工布局和布线的麻烦,还可通过设计规则检查 ,标出错误的位置和潜在的不可靠电路。 在编译和适配过程中,系统设计者可规定设计中任何部分的定时等约束条件,进行人工干预。 (3)设计校验。 除了很简单的 FPGA 设计外,至少要进行“功能仿真”。 功能仿真可在编译前进行,也可在编译后进行,以检验设计功能的正确性。 “定时仿真”可模拟在最不利的时间配合情况下器件内各信号之间的时间关系 :“定时分析 可给出影响器件工作速度的性能的关键路径。 对于用多个器件实现的一个设计来说,进行多个器件的联合仿真是非常必要的。 实践证明,在 FPGA 开发过程中,解决好器件内、外各信号之间的时间关系 是设计成败的关键,甚至需要反复修改设计才能获得成功。 FPGA 的编程方式 FPGA 的编程方式分为两大类 :一类是一次性编程 ,另一类是可多次编程。 只允许对 FPGA 器件编程一次 的 ,编程后不能修改,其优点是集成度高、工作频率和可靠性高,可用于辐射较强的恶劣环境。 可多次编程的 FPGA 的优点是可多次修改设计,特别适合于系统样机的研制。 可多次编程 FPGA 的编程信息存储在器件中用以控制器件内部连线关系的 PROM, EEPROM, FLASH 存储器或 SRAM 中。 FPGA 硬件电路组成 系统框 图 FPGA 部分大致划分为以下几个模块: (1) 状态机,系统有多种显示模式(如显示当前时间,报时时间),如果把每种模式当成一种状态,那么用状态机来进行模式的切换是最方便的,因此可以采用状态机作为中心控制模块。 (2) 计时模块,本系统中有一部分功能类似于数字钟,因此计时模块是必不可少的。 (3)报时时间设定模块,系统要求报时可调,由于此功能相对对立,可以单独用一天津工程师范学院 2020 届 本科生 毕业设计 10 个模块来实现。 (4)报时长度设定模块,用以设定报时时间的长短。 (5)显示控制及报时控制模块,根据当前时间(由计时模块输出)、报。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。