




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息科学与工程学院 FPGA IP核设计与应用FPGA IP核设计与应用摘 要随着超大规模集成电路技术的不断发展, 集成电路的集成度越来越高,片上系统(SoC) 的规模越来越大,因此片上系统的设计变得越来越复杂.。由于采用IP 核复用技术可以简化多功能芯片的设计,开发IP 核成为当前片上系统的重要设计手段。 文中重点描述了IP 核的设计技术, 并以8051核的应用、UART核的设计和PS2键盘接口协议模块的设计为例说明IP 软核的设计和应用方法。 最后通过MUC8051核、UART核和PS2模块的使用,并以C语言程序为主控程序,实现标准键盘对串口LCD的显示控制。关键词:IP核,8051核,UART核,PS2协议,串口LCDTHE DESIGEN AND APPLICATION OF IP COREABSTRACTWith the unceasing development of LSI (Large Scale Integration Circuit),and the integration of integrated circuit is getting higher and higher ,the scale of SOC(system on a chip) is getting larger and larger.So the design of SOC become more and more complex. Due to the IP nuclear multiplexing technique can simplify the multi-function chip design, the development of IP core become an important design method of chip system. This paper mainly describes the design technology of IP core and with the application of 8051 nuclear, the design of UART nuclear and PS2 keyboard interface protocols module as an example to illustrate the design and application method of IP soft nuclear. Finally through the use of MUC8051 nuclear, UART nuclear and PS2 module, and with C language program for master program, realize the control to serial LCD with standard keyboard.Keywords: IP core, 8051 nuclear, UART nuclear, PS2 nuclear, serial LCD目录第一章 绪论11.1 引言11.2 IP核研究现状11.3 实现目标1第二章 系统开发平台及工具简介22.1 FPGA( Field Programmable GateArray)现场可编程门阵列22.2 IP核22.3 SOPC技术32.4 CYCLONE II器件32.5 verilog HDL语言42.6 VHDL语言52.7 quartus II软件5第三章 IP核的设计73.1 实验板介绍73.2 MCU8051 IP核应用73.2.1 MCU8051 IP核概述73.2.2 MCU8051功能特点83.2.3 MCU8051 IP核基本结构及原理93.2.4 MCU8051 IP核的使用103.2.5 MCU8051 IP核的调试103.3 PS2 核设计113.3.1 PS2接口概述113.3.2 PS2设备接口原理113.3.2 PS2程序设计123.3.3 PS2 核的调试133.4 UART IP核设计143.4.1 UART IP核概述143.4.2 UART IP核原理143.4.3 UART IP核程序设计153.4.4 UART IP核调试194.3 综合模块电路连接214.3.1线路连接214.3.2 SOC上的电路图224.4 综合系统调试22第五章 总结26参考文献27致 谢28第一章 绪论1.1 引言随着超大规模集成电路(VL S I) 工艺的进一步迅猛发展, 片上系统SoC (system on a ch ip ) 的规模越来越大, 由此片上系统的设计变得越来越复杂。 由于采用IP 核复用技术可以简化多功能芯片的设计, 开发IP 核成为当前片上系统设计的重要手段。嵌入式软核处理器在设计开发中的应用越来越广泛, 与传统的基于处理器芯片的开发方式相比, 软核受硬件条件限制小, 具有更大的灵活性, 可缩短系统的设计开发时间。采用FPGA 与IP 核相结合进行嵌入式系统开发,为设计人员提供了一种新的快捷高效的设计思路。本文设计实现了一个优化的8051 IP 核、UART核和ps2键盘接口协议模块, 将其嵌入A ltera 公司Cyclone 系列FPGA 器件中, 并做了功能测试及应用设计。1.2 IP核研究现状IP 是知识产权模块( in tellectual p ropertyb lock ) 的简称, 定义为密封在硬件设计中的可重复利用的软件。 在电子工业上通常把IP 核分为软核、硬核和固核三种。 软核开发工作量较小, 因此一般开发成本较低, 柔性大, 如可增加特性或选择工艺并容易从一个工艺向另一个工艺转移, 且性能可提高, 但可预测性差。 硬核的开发成本最高, 柔性小, 但性能一定并具有可预测性, 更重要的是上市时间短, 易于使用。 固核介于硬核与软核之间, IP 用户将从实用、性能、价格、上市时间等各种因素综合考虑选择IP。 软核和硬核的设计工作量、设计预测性和性能的差异是由它们不同的设计流程所决定的为了加快产品的研发进度, 基于芯核的设计已成为EDA 发展的必然趋势。 IP 核重复利用具有可以提高设计能力, 节省设计劳力, 有效填平8051和其他功能模块 的设计与制造之间鸿沟; 大大缩短上市周期;更好地利用现有的工艺技术, 降低成本等诸多优点。 那么基于IP 复用技术的设计方法将会提高SoC 的开发效率, 并逐渐成为了21 世纪集成电路技术的必然趋势。1.3 实现目标(1)实现MCU8051 核的应用(2)实现PS/2键盘接口的设计(3)实现UART IP核的设计(4)综合实现,将几个模块组装成一个整体,实现标准键盘控制液晶的显示。第二章 系统开发平台及工具简介2.1 FPGA( Field Programmable GateArray)现场可编程门阵列FPGA( Field Programmable GateArray)即现场可编程门阵列,通过软件编程对目标器件的结构和工作方式进行重构,能随时对设计进行调整。具有集成度高、结构灵活、开发周期短、快速可靠性高等特点。同时,随着FPGA和SoPC技术的迅速发展,在单芯片上实现的功能越来越复杂。这就使得设计师的工作量往往非常大,而利用IP核的复用可以大大减少工作量,从而减小设计的复杂性,提高产品的设计生产效率。先进的ASIC生产工艺已经被用于FPGA的生产,越来越多功能丰富的处理器内核被嵌入到高端的FPGA芯片中,使得基于FPGA的开发成为一项系统级的设计工程。随着半导体制造工艺的提高,FPGA的集成度将不断提高,制造成本将不断降低,其作为替代ASIC来实现电子系统的前景将日趋光明。2.2 IP核IP核是将一些在数字电路中经常使用但比较复杂的功能块,如FIR滤波器、SDRAM控制器、PCI接口等设计成可修改参数的模块。随着CPLD/FPGA的规模越来越大,设计越来越复杂,调用IP核能避免重复劳动,大大减轻工程师的负担,因此使用IP核是数字电路设计的一个发展趋势。IP内核可以在不同的硬件描述级实现,由此产生了三类IP内核:软核、固核和硬核这种分类主要依据产品交付的方式,而这三种IP内核实现方法也各具特色。IP内核可以在不同的硬件描述级实现,由此产生了三类IP内核:软核、固核和硬核。这种分类主要依据产品交付的方式,而这三种IP内核实现方法也各具特色。软核是用VHDL等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。软IP通常是以硬件描述语言HDL源文件的形势出现,应用开发过程与普通的HDL设计也十分相似,只是所需的开发硬软件环境比较昂贵。软IP的设计周期短,设计投入少。由于不涉及物理实现,为后续设计留有很大的发挥空间,增大了IP的灵活性和适应性。其主要缺点是在一定程度上使后续工序无法适应整体设计,从而需要一定程度的软IP修正,在性能上也不可能获得全面的优化。由于软核是以源代码的形式提供,尽管源代码可以采用加密方法,但其知识产权保护问题不容忽视。硬核提供设计阶段最终阶段产品:掩模。以经过完全的布局布线的网表形式提供,这种硬核既具有可预见性,同时还可以针对特定工艺或购买商进行功耗和尺寸上的优化。尽管硬核由于缺乏灵活性而可移植性差,但由于无须提供寄存器转移级(RTL)文件,因而更易于实现IP保护。固核则是软核和硬核的折衷。大多数应用于FPGA的IP内核均为软核,软核有助于用户调节参数并增强可复用性。软核通常以加密形式提供,这样实际的 RTL对用户是不可见的,但布局和布线灵活。在这些加密的软核中,如果对内核进行了参数化,那么用户就可通过头文件或图形用户接口(GUI)方便地对参数进行操作。对于那些对时序要求严格的内核(如PCI接口内核),可预布线特定信号或分配特定的布线资源,以满足时序要求。这些内核可归类为固核,由于内核是预先设计的代码模块,因此这有可能影响包含该内核的整体设计。由于内核的建立(setup)、保持时间和握手信号都可能是固定的,因此其它电路的设计时都必须考虑与该内核进行正确地接口。如果内核具有固定布局或部分固定的布局,那么这还将影响其它电路的布局。 2.3 SOPC技术System-on-a-Programmable-Chip,即可编程片上系统,用可编程逻辑技术把整个系统放到一整块硅片上。SOPC是一种特殊的嵌入式系统:首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。SOPC结合了SOC和PLD、FPGA各自的优点,一般具备以下基本特征:至少包含一个嵌入式处理器内核;具有小容量片内高速RAM资源丰富的IP 核资源可供选择;足够的片上可编程逻辑资源;处理器调试接口和FPGA编程接口;可能包含部分可编程模拟电路;单芯片、低功耗、微封装。SOPC技术主要应用以下三个方向: (1)基于FPGA嵌入IP硬核的应用。这种SOPC系统是指在FPGA中预先植入处理器。这使得FPGA灵活的硬件设计与处理器的强大软件功能有机地结合在一起,高效地实现SOPC系统。(2)基于FPGA嵌入IP软核的应用。这种SOPC系统是指在FPGA中植入软核处理器,如:NIOS II核等。用户可以根据设计的要求,利用相应的EDA工具,对NIOS II及其外围设备进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足用户系统设计的要求。 (3)基于HardCopy技术的应用。这种SOPC系统是指将成功实现于FPGA器件上的SOPC系统通过特定的技术直接向ASIC转化。把大容量FPGA的灵活性和ASIC的市场优势结合起来,实现对于有较大批量要求并对成本敏感的电子产品,避开了直接设计ASIC的困难。2.4 CYCLONE II器件Altera推出的Cyclone II FPGA是Cyclone系列低成本FPGA中的最新产品。Altera于2002年推出的Cyclone器件系列永远地改变了整个FPGA行业,带给市场第一也是唯一的以最低成本为基础而设计的FPGA系列产品。 Altera采用相同的方法在尽可能小的裸片面积下构建了Cyclone II 系列。Cyclone II FPGA系列提供了与其上一代产品相同的优势一套用户定义的功能、业界领先的性能、低功耗但具有更多的密度和功能,极大地降低了成本。Cyclone II 器件扩展了低成本FPGA的密度,最多达68,416个逻辑单元(LE)和1.1M比特的嵌入式存储器。Cyclone II器件的制造基于300mm晶圆,采用台积电90nm、低K值电介质工艺,这种可靠工艺也曾被用于Altera的Stratix® II器件。这种工艺技术确保了快速有效性和低成本。通过使硅片面积最小化,Cyclone II器件可以在单芯片上支持复杂的数字系统,而在成本上则可以和ASIC竞争。图2-1为本实验用到的Cyclone II EP2C8Q208C8。图2-1 Cyclone II EP2C8Q208C8表2-1 Cyclone II EP2C8Q208C8芯片参数芯片型号Core voltageLEsUser I/OMemory bitsEmbedded multiplierPLLGlobal clocksCycloneII EP2C8Q208C81.2V825613816588836282.5 verilog HDL语言HDL语言以文本形式来描述数字系统硬件结构和行为,是一种用形式化方法来描述数字电路和系统的语言,可以从上层到下层来逐层描述自己的设计思想。即用一系列分层次的模块来表示复杂的数字系统,并逐层进行验证仿真,再把具体的模块组合由综合工具转化成门级网表,接下去再利用布局布线工具把网表转化为具体电路结构的实现。目前,这种自顶向下的方法已被广泛使用。概括地讲,HDL语言包含以下主要特征:HDL语言既包含一些高级程序设计语言的结构形式,同时也兼顾描述硬件线路连接的具体结构。 通过使用结构级行为描述,可以在不同的抽象层次描述设计。HDL语言采用自顶向下的数字电路设计方法,主要包括3个领域5个抽象层次。 HDL语言是并行处理的,具有同一时刻执行多任务的能力。这和一般高级设计语言(例如C语言等)串行执行的特征是不同的。 HDL语言具有时序的概念。一般的高级编程语言是没有时序概念的,但在硬件电路中从输入到输出总是有延时存在的,为了描述这一特征,需要引入时延的概念。HDL语言不仅可以描述硬件电路的功能,还可以描述电路的时序。 利用Verilog语言所提供的功能,就可以构造一个模块间的清晰结构来描述复杂的大型设计,并对所需的逻辑电路进行严格的设计。 下面列出的是Verilog语言的主要功能: 可描述顺序执行或并行执行的程序结构; 用延迟表示式或事件表达式来明确地控制过程的启动时间; 通过命名的事件来触发其他过程里的激活行为或停止行为; 提供了条件和循环等程序结构; 提供了可带参数且非零延续时间的任务程序结构; 提供了可定义新的操作符的函数结构; 提供了用于建立表达式的算术运算符、逻辑运算符和位运算符; 提供了一套完整的表示组合逻辑基本元件的原语; 提供了双向通路和电阻器件的描述; 可建立MOS器件的电荷分享和衰减模型; 可以通过构造性语句精确地建立信号模型;2.6 VHDL语言VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。2.7 quartus II软件Quartus II是Altera提供的FPGA/CPLD开发集成环境,Altera是世界最大可编程逻辑器件供应商之一。Quartus II在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX+plus II的更新换代产品,其界面友好,使用便捷。在Quartus II上可以完成设计输入、HDL综合、布线布局(适配)、仿真和下载和硬件测试等流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。Altera的Quartus II 提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为Altera DSP开发包进行系统模型设计提供了集成综合环境。Quartus II设计工具完全支持VHDL、Verylog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。Quartus II也可以利用第三方的综合工具,如Leonardo Spectrum、Synplify Pro、FPGA Complier II,并能直接调用这些工具。同样,Quartus II具备仿真功能,同时也支持第三方的仿真工具,如ModelSim。此外,Quartus II与MATLAB和DSP Builder结合,可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。Quartus II包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analysis & Synthesis)、适配器(Filter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)、EDA网表文件生成器(EDA Netlist Writer)和编辑数据接口(Complier Database Interface)等。可以通过选择Start Complication来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择Complier Tool(Tools 菜单),在Complier Tool 窗口中运行该模块来启动编辑器模块。在Complier Tool 窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。此外,Quartus II还包含许多十分有用的LPM(Library of Parameterized Modules)模块,它们是复杂或高级系统构建的重要组成部分,在SOPC设计中被大量使用,也可在Quartus II普通设计文件一起使用。Altera提供的LPM函数均基于Altera器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些Altera特定器件的硬件功能。例如各类片上存储器、DSP模块、LVDS驱动器、PLL以及SERDES和DDIO电路模块等。Quartus II编译器支持的硬件描述语言有VHDL(支持VHDL87及VHDL97标准)、Verilog HDL及AHDL(Altera HDL),AHDL是Altera公司自己设计、制定的硬件描述语言,是一种以结构描述方式为主硬件描述语言,只有企业标准。Quartus II允许来自第三方的EDIF文件输入,并提供了很多EDA软件的接口,Quartus II支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与HDL混合输入设计问题。在设计输入之后,Quartus II的编译器将给出设计输入的错误报告。Quartus II 拥有良好的设计输入定位器,用于确定文本或图形设计中的错误。对于使用HDL的设计,可以使用Quartus II带有的RTL Viewer观察综合后的RTL图。在进行编译后,可对设计进行时序仿真。第三章 IP核的设计3.1 实验板介绍本设计用的实验板是杭州康芯公司提供的KX_7C8Q系列电子系统开发板作为开发板材,几乎可以用来完成某些DSP功能,如语音处理,压缩和频谱分析等。再加上FPGA本身的高速性能,完成许多高性能指标的系统功能将变得十分容易;而把CPU、锁相环、数据RAM、程序ROM、接口模块、通信模块、显示控制模块、数据采样和信号发生模块等等,都放在同一片FPGA(CycloneII EP2C8Q208)内,从而构成SOC系廟。图31 KX_7C系列开发板3.2 MCU851 HP核应用3.2.1 MCU051 IP核概述长期以来,单片机以其性价比高体积小、功能瀵活等方面的独特优点被广泛应用。但受其内部资源的限制,協片机需要在片外扩展相关资源。为了达到处理速度和控制瑵活性方面的需求,采用微控制器和可编程逻辙器件设计单片机嵌入式系统。随着现场可编稃逻辑阵列(FPGA)及EDM技术的发展,百万门级的PA、可重构的嵌入式MC核、功能复杂的IP核及各种能强大的EDA工具的出现,实现将MCU、嬘储器和一些外围电路集成到一个芯片成为可能随着IP核技术在FPC中的应用,特别是MCU IP核技札的发展。出现了性能不同的嵌入式MCU软核。MS-51系列MCU昏盢前应用时间最长、最普及、可获得应用资料最多的功能强大的8位MCU,建立805l MCU可综合IP核对于各种嵌入式系统和片上系统(SOC)的应用。对8041MCU的应用前景,出现了几个比较典型的805l IP核,妀DW8051核OpenCore组织的0C8051核及V1核,C805l核等。这些IP核都是采用HDL语言描述的软MCU内核,其与工艺无关,能够在多种FPGA上进行逻辑综合及实现。这里采用免费的MC805lIP核,通过对MC8051结构原理的分析,详细论述其在FPCA中的实现及应用。3.2.2 MCU8051功能特点采用完全同步设计:指令集和标准8051微控制器完全兼容;指令执行时间为l4个时钟周期,执行性能优于标准805l微控制器8倍左右;用户可选择定时计数器、串行接口单元的数量,最多可增加到256组;新增特殊功能寄存器用于选择不同的定时计数器、串行接口单元;可选择是否使用乘法器(乘法指令MUL);可选择是否使用除法器(除法指令DIV);可选择是否使用十进制调整功能(十进制调整指令DA);I/0口不复用,无双向数据IO端口,输入、输出端口独立;内部带256Byte RAM;最多可扩展至64 KB的ROM和64 KB的RAM;与工艺无关,可通过修改VHDL源代码扩展及参数化设置。在使用FPGA时嵌入8051 IP核比不使用IP核有着巨大的优势,现在归纳主要有以下几点:(1)编写程序方便:使用8051 IP核的时候,你完全可以像使用普通的8051单片机,因为在指令上他与普通8051单片机完全兼容,你设计FPGA时,要改变其逻辑部分时你无须改变其逻辑电路,而只是像普通的单片机一样改变程序代码,使逻辑电路设计变得简单有效,同时也更容易读懂。(2)资源利用:8051 IP核本身就是一块CPU,自带一些运算单元,这点恰恰弥补了EDA器件在运算上面的优势,可以很好的节省FPGA资源,同时也能很好的完成一些复杂的计算。(3)SOC设计:利用IP 核,你可以十分省力的完成一些简单的电路设计。里面自带的ROM,RAM,还有更多的逻辑芯片(如74LS373,74LS244等),你完全可以利用里面的资源完成电路的设计,同时可以时时检测电路的可行性,为你电路的设计节省不少的时间,同时也能大幅度的节省设计成本。(4)速度优势:普通的单片机由于受电路设计的关系在晶振上不可能达到一个很高的速度(一般20MHz),但是利用8051 IP核时完全可以达到200MHz速度,利用IP核的高速就可以完成普通单片机所无法完成的任务。下面举以下几个典型的列子来说明使用IP核时候带来的方便。例一:利用EDA器件设计液晶显示。液晶显示是一个相对比较复杂的程序,有着很强的时序逻辑(什么时候写命令,什么时候读数据,什么时候判断液晶是否为忙等等),纯粹利用FPGA设计在时序上十分复杂,并且容易出现错误, 检查和修改错误都存在着很大的不便,此时如果你使用8051 IP核去实现的话一切都变得简单多了,你完全可以把8051 IP核当做普通的单片机使用(IP核使用时可以把P0当做数据总线,P1、P2当做地址总线),在C程序的编译环境下编写液晶显示程序(C程序在逻辑理解上比FPGA来的简单的多),然后将C程序代码生成的HEX文件写入到IP核的ROM中,运行IP核,你就可以实现利用EDA器件来完成液晶显示的设计。例二:利用EDA器件完成简单的运算 假如你要显示利用数码管显示一个简单的整数(如12345),利用VHDL语言你就无法避免的到了MOD指令(取余指令),而这个在FPGA中是一个十分占资源的指令,往往一个简单的MOD指令可以占用几十甚至几百个逻辑单元,显示(12345)会利用到5次取余指令,至少会占用几百个逻辑单元,有些资源不是十分充分的EDA器件总共也只有几百个逻辑单元,这是我们所无法忍受的。但是只要利用IP核去完成以上的任务的时候完全可以不去担心这个问题,因为IP自带的运算器可以十分轻松的完成以上的任务,并且十分的节省资源。3.2.3 MCU8051 IP核基本结构及原理8051软核在接上了ROM和RAM后就成为了一个完整的8051单片机了,原理图如图3-2。图3-2 基本8051CPU核应用电路其中MCU8051是8051单片机核,由VQM源码表述:MCU8051.VQM,将其转化为如图2_1的原理图元件进行调用。改元件可以与其他不同语言表述的元件一同综合与编译,该核拥有标准8051完全兼容的指令系统的CPU,外部总线可接256字节的内容LPM_RAM和最大至64K字节的程序LPM_ROM。单片机时钟由锁相环体统,设在12MHZ,元件RAM和ROM都是LPM模块,前者设为256字节,厚着设为4KB,放置程序代码。与普通8051 不同,8051核 的四个IO 口是分开的。例如P1 口,其输入端P1 I 和输出端P1O 是分开的,如果需要使用P1 口的双向口功能,必须外接一些电路才能实现。MCU8051 核在接上了ROM 和RAM 后就成为一个完整的8051单片机了。3.2.4 MCU8051 IP核的使用IP核的使用过程如下所示:(1)调入CPU核(2)调入LPM_ROM程序存储器。存储量的大小可以根据应用程序的大小,以及FPGA可以提供嵌入式RAM的大小来决定。然后为此ROM指定默认初始化程序。(3)调入 LPM_RAM作为单片机的内部RAM,存储字节选择256字节。单片机时钟由嵌入式锁相环提供,调入锁相环LPM_PLL,为单片机提供工作频率。3.2.5 MCU8051 IP核的调试(1)用C语言设计了一个数字循环程序,通过P1口输出并且在数码管上显示。将程序载入到IP核的rom中。(2)在该工程项目选择一个目标器件CycloneII EP2C8Q208并对相应的引脚进行锁定引脚锁定如下表3-1:表3-1 CycloneII EP2C8Q208引脚锁定引脚信号引脚信号23Clk6MT31Led04NO30Led10129RST15Led214Led3数字循环程序如下:while(1)if(s=9)s=0;else s+; P1=s; delay(1000); (3)对该工程文件进行便已处理,若在编译过程中发现错误,找出并更正错误直至编译成功为止。(4)拿出现在电缆并将电缆的两端分别接到PC机和KX_7C系列实验板的下载口上,打开工作电源,把程序下载到实验板上的EP2C8Q208器件中去。执行下载命令。按下复位键即可看到数码管显示数字的循环跳变。3.3 PS2 核设计3.3.1 PS2接口概述随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1983年IBM推出了IBM PC/XT键盘及其接口标准。该标准定义了83键,采用5脚DIN链接器和简单的串行协议。实际上,第一套键盘扫描码集并没有主机到键盘的命令。为此,1984年IBM推出了IBM AT键盘接口标准。该标准定义了84-101键,采用5脚DIN连接器和双向串行通讯协议,此协议依照第二套键盘扫描码集设有8个主机到键盘的命令。到了1987年,IBM又推出了PS/2键盘接口标准。该标准仍旧定义了84-101键,但是采用6脚mini-DIN连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。本次设计就是采用Altera公司的QuartusII,基于Clone系列的FPGA芯片的PS/2键盘接口的设计。3.3.2 PS2设备接口原理PS/2设备的Clock(时钟脚)和Data(数据脚)都是集电极开路的,平时都是高电平。当PS/2设备等待发送数据时,它首先检查Clock(时钟脚)以确认其是否为高电平。如果是低电平,则认为是PC机抑制了通讯,此时它必须缓冲需要发送的数据直到重新获得总线的控制权。如果Clock(时钟脚)为高电平,PS/2设备便开始将数据发送到PC机。一般都是由PS/2设备产生时钟信号。发送时一般都是按照数据帧格式顺序发送。其中数据在Clock(时钟脚)为高电平时准备好,在Clock(时钟脚)的下降沿被PC机读入。当时钟频率为15Khz时,从Clock(时钟脚)的上升沿到数据位转变时间至少要5us。数据变化到Clock(时钟脚)的下降沿的时间至少也有5us,但不能大于25us,这是由PS/2通讯协议的时序规定的。如果时钟频率是其他值,参数的内容应稍作调整。PS/2通讯协议是一种双向同步串行通讯协议。通讯的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。如果是PC机和PS/2键盘间的通讯,则PC机必须做主机。每一数据帧包涵11-12个位,具体含义如表3-2:表3-2键盘接收数据的格式1个起始位总是逻辑08个数据位(LSB)低位在前1个奇偶校验位奇校验1个停止位总是逻辑11个应答位仅用在主机对设备的通讯中校验位:用来进行错误检测。如果数据位中包含了偶数个1,校验位置1,否则为0,数据位中1的个数加上校验位为奇的是奇校验,反之为偶校验。3.3.2 PS2程序设计 数据包的结构键盘的状态每改变一次,键盘至少会发出三个字节的数据包,在有键按下时会向主机发送该键的通码(Make Code),当键释放时发送断码( Break Code)。本设计中主要是发送程序设计,分为两个步骤:(1)接收键盘数据: 串并转换用移位寄存器实现,有串行输入端和并行输出端的移位寄存器可以很方便的实现串并转换,但是这样要耗费很多的逻辑宏单元,因为移位寄存器数据的输入要靠时钟的上升沿来控制,而数据的采样要靠时钟的下降沿来控制,本实验采用一个随时钟变化的计数器,在时钟的下降沿,把采样的数据赋给相应的并行数据的某一位,然后计数器自增。实体端口定义如表3-3:表3-3 接受键盘数据端口定义 端口名称 端口定义clkIn系统同步时钟Ps2k_dataIn键盘串行数据输入Ps2k_clkInPS/2键盘时钟rst_nIn复位信号Temp_dataBuffer扫描码输出源程序见附录ps2scan.v由于键盘协议规定是键盘时钟下降沿时传送数据,并且系统时钟频率远远大于键盘时钟,故在程序中由系统同步信号做为敏感信号量检测键盘时钟值,并将其锁存在寄存器中,当前一时钟信号值大于当前信号值时,证明键盘时钟下降沿到来。并将键盘时钟下降沿的到来做为传送数据的条件。使用tempdata存放数据,至此,接受键盘数据接受的程序完成。 (2) 锁存扫描码:此部分功能主要是判断是否有按键按下和按键是否放开,有按键按下并且按键放开,则锁存扫描码。源程序见附录ps2scan.v表3-4 锁存扫描码端口定义 端口名称 端口定义clkIn系统同步时钟rst_nIn复位信号Key_f0Buffer松键标志Ps2_state_rBuffer键盘状态输出Ps2_byte_rBuffer扫描码输出Key_f0是松键标志位,置1表示接收到数据8hf0,扫描码锁存给ps2_byte_r,ps2_state_r键盘当前状态, 高电平表示有键被按下。用ps2_byte_r锁存扫描码,至此,按键判断和扫描码锁存完成。(3)将扫描码转换成ASCII码:具体程序见附录源程序见附录ps2scan.v,以下为程序简介:实体端口定义如表3-5:表3-5 扫描码转ASCII码端口定义端口名称端口定义Ps2_byte_rIn键盘扫描码输入Ps2_asci outASCII码输出此部分程序为网上查找通用程序,可以正常实现基本功能,对扫描码进行转换并最终将ASCII信号转化为8位2进制输出。(4)PS2模块如图3-3: 图3-3 PS2模块3.3.3 PS2 核的调试(1)将ps2模块和mcu8051模块连接,ps2_byte数据输出口和MCU8051 P3输入口连接,ps2_state和MCU8051的P20输入口连接,rst_n复位键和P22输出口连接,对该工程文件进行编译,若在编译过程中发现错误,找出并更正错误直至编译成功为止。(2)用c语言编写ps2读程序,将所读数据通过P1输出给数码管显示。程序如下:char ps2receive()rst=0;rst=1;while(P20=0);delay(200);while(P20=0);return(P3);void main()P1=ps2receive();(3)在该工程项目选择一个目标器件CycloneII EP2C8Q208并对相应的引脚进行锁定引脚锁定如图3-6:表3-6 引脚锁定引脚信号23Clk208Ps2_clk203Ps2_data(4)对该工程文件进行编译处理,若在编译过程中发现错误,找出并更正错误直至编译成功为止。(5)拿出现在电缆并将电缆的两端分别接到PC机和KX_7C系列实验板的下载口上,打开工作电源,把程序下载到实验板上的EP2C8Q208器件中去。执行下载命令。按下FPGA板的复位键,再按键盘字母或者数字,观察数码管的显示,看是否和所按的字母或者数据的ASCAII码一致。如果一致,则PS2设备接口设计成功。3.4 UART IP核设计3.4.1 UART IP核概述随着EDA 技术的发展,FPGA/ CPLD 已经在许多方面得 到了广泛应用,而UART(Universal Asynchronous Receiver Trans2 mitter 通用异步收发器) 是广泛使用的串行数据传输协议。 UART允许在串行链路上进行全双工的通信。串行外设用到 RS2322C 异步串行接口,一般采用专用集成电路即UART 实 现,常见的有芯片8250、8251 等,但这些芯片速度较慢,难以 满足一些需要高速应用的场合,虽然新型的UART 如16550、 16750 ,可以满足高速的要求,但是所有的UART芯片都存在 引脚较多、体积较大、与其它器件的接口较为复杂的缺点。 因此将需要的UART功能集成到FPGA内部。利用 VHDL 语言将UART的核心功能集成,不仅解决传统芯片的 缺点,也使整个设计更加紧凑、稳定且可靠。3.4.2 UART IP核原理UART 即通用异步收发器,是一种串行通信方式。数据 在传输过程中是通过一位一位地进行传输来实现通信的。 串行通信具有传输线少、成本低等优点,缺点是速度慢。 串行通信分为两种类型:同步通信方式和异步通信方 式。本方案采用的是异步通信方式,其的特点是:通信的发 送方和接收方各自有独立的时钟,传输的速率由双方约定。 国际上规定的一个串行通信波特率标准系列是: 110 、300 、600 、1200 、1800 、2400 、4800 、9600 、19200 。本方案采用的波 特率是9600 。异步传输是一个字符接一个字符传输,一个字符的信息 由起始位、数据位、奇偶校验位和停止位组成。每一个字符 的传送靠起始位来同步,字符的前面是一位起始位,用下降 沿通知收方传输开始,紧跟着起始位之后的是数据位,传输 时低位在前、高位在后,字符本身由5 8 位数据位组成。 数据位后面是奇偶校验位,最后是停止位,停止位是高电平 标志一个字符的结束,并为下一个字符的开始传送做准备。 停止位后面是不定长度的空闲位。停止位和空闲位都规定 高电平,这样可以保证起始位开始处有一个下降沿。如图3_4 所示是UART的帧格式,本方案中采用1 位起始位,8 位数据位,不设奇偶校验位,一位停止位,波特率可调。图3-4 基本UART的帧格式3.4.3 UART IP核程序设计(1)整体结构UART处理的是并行数据转为串行信号和串行转为并行, 但并不是简单地转换。分析UART的结构,可以看出UART主要由数据线接口、波特率发生器、发送逻辑和接收逻辑等部分组成,各部分间关系如图3-5。MCU8051发送模块接收模块波特率模块LCD液晶图3-5 UART功能模块图(2)发送模块设计发送部分的用途是将准备输出的并行数据,按照图1 的基本帧格式,转为txd 信号串行输出,这里的串行化时的时钟信号只要使用对应要求的波特率的本地时钟即可。发送器的状态图如图24。图3-6 UART发送功能模块状态机波形仿真:图3-7 UART发送功能模块波形仿真(3)接收模块的设计UART接收部分接收rxd 串行信号,并将其转化为并行数据。但串并转换的时钟同发送模块一样处理。发送来的数据由逻辑1 变为逻辑0 可以视为一个数据帧的开始。接收器先要捕捉起始位,确定rxd 输入由1 到0 ,逻辑0 要8 个CLK16 时钟周期,才是正常的起始位,然后在每隔16 个CLK16 时钟周期采样接收数据,移位输入接收移位寄存器rsr ,最后输出数据dout 。还要输出一个数据接收标志信号标志数据接收完。接收器的状态机如图25。图3-8 UART接收功能模块状态机仿真波形:图3-9 UART接收功能模块波形仿真(3)波特率模块的设计UART的接收和发送是按照相同的波特率进行收发的(当然也可以实现成对的不同波特率进行收发) 。波特率是可以通过CPU 的总线接口设置的。波特率发生器产生的时钟频率不是波特率时钟频率,而是波特率时钟频率的16 倍,目的是为在接收时进行精确地采样,送出异步的串行数据。根据给定的晶振时钟和要求的波特率算出波特率分频数,即假定当前按照9600bps 进行收发,那么波特率发生器输出的时钟频率应为9600 16Hz ,当然这也是可以改变的。本系统提供的时钟是20MHZ,用计数器的方式获得9600bps的波特率。实体端口定义如表3-7:表3-7 波特率端口定义端口名称端口定义ClockIn系统时钟输入Clktp out9600*16时钟输出程序如下:process(clock)beginif rising_edge(clock) thenif cntdivdiv1 thenclkk=0;else clkk= 1;end if;if cntdiv=div2 then cntdiv=0;else cntdiv= cntdiv+1;end if;end if;end process;clktp=clkk;(4)UART顶层电路如下图:图3-10 UART顶层模块电路图3.4.4 UART IP核调试(1)将UART模块和mcu8051模块连接,发送数据输出口txd和MCU8051 P0输出口连接,发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏淮安市洪泽经济开发区投资控股集团有限公司招聘模拟试卷有答案详解
- 2025年湖北医药学院专项公开招聘第二批工作人员11人考前自测高频考点模拟试题含答案详解
- 2025年绥化青冈县乡镇卫生院公开招聘医学毕业生5人模拟试卷及一套参考答案详解
- 2025江苏灌云万邦人力资源有限公司招聘工作人员考前自测高频考点模拟试题及答案详解(夺冠)
- 2025贵州织金翔盛工业发展有限公司面向社会招聘10人模拟试卷附答案详解(黄金题型)
- 2025至2030中国狗眼镜行业产业运行态势及投资规划深度研究报告
- 2025至2030中国隔离轨行业运营态势与投资前景调查研究报告
- 2025江苏无锡市滨湖区卫生健康系统事业单位招聘高端、紧缺性人才14人(长期)模拟试卷附答案详解(突破训练)
- 2025年烟台海阳市卫生健康局所属事业单位公开招聘工作人员(58人)考前自测高频考点模拟试题完整答案详解
- 2025年烟台市烟台山医院住院医师规范化培训预招生考前自测高频考点模拟试题完整答案详解
- 成人床旁心电监护护理规程
- 食用菌种植项目可行性研究报告立项申请报告范文
- 2025版技术服务合同协议
- 焦炉机械伤害事故及其预防
- GB 5768.1-2025道路交通标志和标线第1部分:总则
- 江西红色文化考试试题及答案
- 苏州市施工图无障碍设计专篇参考样式(试行)2025
- 哮喘的诊疗和规范化治疗
- 2025年中国文创产品行业市场发展现状及投资前景展望报告
- 2025年新高考“八省联考”语文试题及参考答案解析版
- 2024年巴中市市属事业单位考试真题
评论
0/150
提交评论