基于VHDL的UART设计论文_第1页
基于VHDL的UART设计论文_第2页
基于VHDL的UART设计论文_第3页
基于VHDL的UART设计论文_第4页
基于VHDL的UART设计论文_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业论文基于VHDL的 UART设计The UART Design Based on VHDL54 / 54摘要UART是设备和设备间进行通信的关键,当一个设备需要和另一个连接的设备进行通信时,通常采用数字信号,这种源自并行的信号必须转换成串行信号才能通过有线或无线传输到另一台设备。在接收端,串行信号又转换成并行信号进行处理,UART处理这种数据总线和串行口之间的串-并和并-串转换。本文所要实现的就是就是这种串-并和并-串的转换,使之能够进行数据的传输。本文介绍了用FPGA技术实现UART电路的一种方法,用VHDL进行编程,在Modelsim下进行编译与仿真等。关 键 字FPGA,VHDL,U

2、ART,接收,发送AbstractUART is the key of communications between devices.When a device needs to communicate with a connected device,usually digital signals applied,which must be transformed into serialised signal to another device through wires or wireless space.When being received to process, the seriali

3、sed signals must be transformed to parellised signals.UART processes this serial_data to parallel_data /parallel _data to serial_data transform between data bus and slave port. This paper is to implement this serial to parallel and parallel to serial transform and make the transferring between data

4、properly.This paper introduces a method implemented by FPGA technique programmed by VHDL,simulated and compiled by Modelsim.KeywordsFPGA,VHDL ,UART,receive ,send 目 录1 绪论611 EDA 技术发展概况61.1.1 CAD 阶段(20 世纪 60 年代中期20 世纪 80 年代初期)61.1.2 CAE 阶段(20 世纪 80 年代初期20 世纪 90 年代初期)61.1.3 EDA 阶段(20 世纪 90 年代以来)61.2 FP

5、GA的发展与优点71.3 电路设计方法发展81.3.1 自底向下的设计方法9.协同设计;10(1)总体结构的设计10(2)子模块的激活实现(Acitive Module Design)10(3)模块的最后合并(Final Assembly)103模块化分的原则10(3)将不同优化目标的逻辑分开11(4)将松约束的逻辑单元归到同一模块11(6)合适的模块规模114.全局逻辑的设计111.4 ISE软件介绍121.6 本文主要工作132.1 常用的计算机接口132.2 RS-232川口通信简介162.2.2RS-232协议171DSR信号线172DTR 信号线173RTS 信号线174CTS 信号

6、线175DCD 信号线176RI信号线172.2.3RS-232通信时序和UART192.2.4. 串行通信实现方案203.1 UART实现原理213.2 UART工作流程224.3 波特率发生器模块的实现24RISE_PULSE_COUNT : BD_COUNT := BD9600_HPC );26FULL_PULSE_COUNT => 10,27RISE_PULSE_COUNT => 5274.4 移位寄存器模块的实现274.5奇偶校验器模块实现28PARITY_RULE : PARITY := NONE );284.6 总线选择模块的实现294.7 计数器模块的实现304.8

7、 UART核模块的实现31(2)奇偶校验器31(5) 波特率发生器344.8.3 UART核模块的实现37PARITY_RULE : PARITY := NONE );38(2)部信号定义39(3)串行加载序列的生成方法394.9 UART顶层模块的实现44DATA_BIT : INTEGER := DATA_BIT;45PARITY_RULE : PARITY := PARITY_RULE;45TOTAL_BIT : INTEGER := TOTAL_BIT455.2.1 信号监测器模块的仿真495.2.2 波特率时钟模块的仿真495.2.3 移位寄存器模块的仿真495.2.4 奇偶校验器模

8、块的仿真495.2.5 总线选择器模块的仿真505.2.6 计数器模块的仿真505.2.7 顶层模块的仿真505.3 FPGA验证511 绪论21 世纪人类将全面进入信息化社会,对微电子信息技术和微电子 VLSI 基础技术将不断提出更高的发展要求,微电子技术仍将继续是21世纪若干年代中最为重要的和最有活力的高科技领域之一。而集成电路(IC)技术在微电子领域中占有重要的地位。且伴随着IC技术的发展,电子设计自动化(Electronic Design Automation,EDA)已经逐渐成为重要的设计手段,其广泛应用于模拟与数字电路系统等许多领域。11 EDA 技术发展概况电子设计自动化(EDA

9、,Electronic Design Automation)是指利用计算机完成电子系统的设计。EDA 技术是以计算机和微电子技术为先导,汇集了计算机图形学、拓扑、逻辑学、微电子工艺与结构学和计算数学等多种计算机应用学科最新成果的先进技术。EDA 技术以计算机为工具,代替人完成数字系统的逻辑综合、布局布线和设计仿真等工作。设计人员只需要完成对系统功能的描述,就可以由计算机软件进行处理,得到设计结果,而且修改设计如同修改软件一样方便,可以极提高设计效率。根据电子设计技术的发展特征,EDA技术发展大致分为三个阶段:1.1.1 CAD 阶段(20 世纪 60 年代中期20 世纪 80 年代初期)第一阶

10、段的特点是一些单独的工具软件,主要有PCB(Printed Circuit Board)布线设计、电路模拟、逻辑模拟与版图的绘制等,通过计算机的使用,从而将设计人员从大量烦琐重复的计算和绘图工作中解脱出来。例如,目前常用的Protel早期版本Tango,以与用于电路模拟的 SPICE 软件和后来产品化的 IC 版图编辑与设计规则检查系统等软件,都是这个阶段的产品。这个时期的EDA一般称为CAD(Computer Aided Design)。1.1.2 CAE 阶段(20 世纪 80 年代初期20 世纪 90 年代初期)这个阶段在集成电路与电子设计方法学以与设计工具集成化方面取得了许多成果,各种

11、设计工具,如原理图输入、编译与连接、逻辑模拟、测试码生成、版图自动布局以与各种单元库已齐全。由于采用了统一数据管理技术,因而能够将各个工具集成为一个CAE(Computer Aided Engineering)系统。按照设计方法学制定的设计流程,可以实现从设计输入到版图输出的全程设计自动化。这个阶段主要采用基于单元库的半定制设计方法,采用门阵列和标准单元设计的各种ASIC得到了极大的发展,将集成电路工业推入了ASIC时代。多数系统中集成了PCB自动布局布线软件以与热特性、噪声、可靠性等分析软件,进而可以实现电子系统设计自动化。1.1.3 EDA 阶段(20 世纪 90 年代以来)20 世纪 9

12、0 年代以来,微电子技术以惊人的速度发展,其工艺水平达到了深亚微米级,在一个芯片上可集成数百万乃至上千万只晶体管,工作速度可达到 GHz,这为制造出规模更大,速度更快和信息容量很大的芯片系统提供了条件,但同时也对EDA系统提出了更高的要求,并促进了EDA技术的发展。此阶段主要出现了以高级语言描述、系统仿真和综合技术为特征的第三代EDA技术,不仅极提高了系统的设计效率,而且使设计人员摆脱了大量的辅助性与基础性工作,将精力集中于创造性的方案与概念的构思上,下面简单介绍这个阶段EDA技术的主要特征:(1) 高层综合(HLS,High Level Synthesis)的理论与方法取得较大进展,将 ED

13、A设计层次由RT级提高到了系统级(又称行为级),并划分为逻辑综合和测试综合。逻辑综合就是对不同层次和不同形式的设计描述进行转换,通过综合算法,以具体的工艺背景实现高层目标所规定的优化设计,通过设计综合工具,可将电子系统的高层行为描述转换到低层硬件描述和确定的物理实现,使设计人员无须直接面对低层电路,不必了解具体的逻辑器件,从而把精力集中到系统行为建摸和算法设计上。测试综合是以设计结果的性能为目标的综合方法,以电路的时序、功耗、电磁辐射和负载能力等性能指标为综合对象。(2)采用硬件描述语言HDL(Hardware Description Language)来描述10万门以上的设计,并形成了VHD

14、L(Very High Speed Integrated Circuit HDL)和Verilog HDL两种标准硬件描述语言。它们均支持不同层次的描述,使得复杂IC的描述规化,便于传递、交流、保存与修改,也便于重复使用。它们多应用于FPGA/CPLD/EPLD的设计中。(3)可测性综合设计 随着ASIC的规模与复杂性的增加,测试难度与费用急剧上升,由此产生了将可测性电路结构制作在ASIC芯片上的想法,于是开发了扫描插入、BLST(建自测试)、边界扫描等可测性设计(DFT)工具,并已集成到EDA系统中。(4)为带有嵌入IP模块的ASIC设计提供软硬件协同系统设计工具 协同验证弥补了硬件设计和软

15、件设计流程之间的空隙,保证了软硬件之间的同步协调工作。(5)建立并行设计工程 CE(Concurrent Engineering)框架结构的集成化设计环境,以适应当今ASIC的如下一些特点:数字与模拟电路并存,硬件与软件设计并存,产品上市速度要快。在这种集成化设计环境中,使用统一的数据管理系统与完善的通讯管理系统,由若干相关的设计小组共享数据库和知识库,并行地进行设计,而且在各种平台之间可以平滑过度。1.2 FPGA的发展与优点当今社会是数字化社会,数字电路应用非常广泛,其发展从早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以与许多具有特定功能的专用集

16、成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。   早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可按除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。 &

17、#160;  其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”表达式来描述,所以, PLD能以乘积和的形式完成大量的组合逻辑功能。   这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。 PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。 PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的

18、逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。PLA器件既有现场可编程的,也有掩膜可编程的。在PAL的基础上,又发展了一种通用阵列逻辑GAL (Generic Array Logic),如GAL16V8,GAL22V10 等。它采用了EEPROM工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。尽管FPGA,CPLD和其它类型PLD的结构各有其特点

19、和长处,但概括起来,它们是由三大部分组成的,·一个二维的逻辑块阵列,构成了PLD器件的逻辑组成核心。输入输出块和连接逻辑块的互连资源。连线资源:由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块与输入输出块之间的连接。FPGACPLD芯片都是特殊的ASIC芯片,它们除了具有ASIC的特点之外,还具有以下几个优点:·随着VlSI(Very Large Scale IC,超大规模集成电路)工艺的不断提高单一芯片部可以容纳上百万个晶体管,FPGACPLD芯片的规模也越来越大,其单片逻辑门数已达到上百万门,它所能实现的功能也越来越强,同时也可以实现系

20、统集成。·FPGACPLD芯片在出厂之前都做过百分之百的测试,不需要设计人员承担投片风险和费用,设计人员只需在自己的实验室里就可以通过相关的软硬件环境来完成芯片的最终功能设计。所以,FPGACPLD的资金投入小,节省了许多潜在的花费。·用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。所以,用FPGAPLD 试制样片,能以最快的速度占领市场。 FPGACPLD软件包中有各种输入工具和仿真工具,与版图设计工具和编程器等全线产品,电路设计人员在很短的时间就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。当电路有少量改动时,更能显示出F

21、PGACPLD的优势。电路设计人员使用FPGACPLD进行电路设计时,不需要具备专门的IC(集成电路)深层次的知识,FPGACPLD软件易学易用,可以使设计人员更能集中精力进行电路设计,快速将产品推向市场。1.3 电路设计方法发展在计算机辅助电子设计出现之前,人们采用的传统的硬件电路设计方法,即自底向上(Bottom up)的设计方法。自底向上的电路设计方法是根据系统对硬件的要求,写出详细的技术规格书,并画出系统的控制流程图。根据技术规格书和系统控制流程图,对系统的功能进行细化,合理的划分功能模块,画出系统的功能框图。对各个功能模块进行细化和电路设计。各个功能模块电路设计、调试完成后,将各个功

22、能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。随着大规模专用集成电路(ASIC)的开发和研制,开发效率不断提高,同时还增加了已有开发成果的可重用性以与缩短开发时间,其中各个ASIC研制和生产厂家不断开发了自己的硬件语言。1.3.1 自底向下的设计方法传统的电路设计方法是自底向上的,而基于EDA技术的自顶向下的设计方好与其相反,其步骤就是采用可完全独立与目标芯片物理结构的硬件描述语言,如VHDL,在系统的基本功能或行为级上对设计的产品进行描述和定义,结合多层次的仿真技术,在确保设计的可行性与正确性的前提下,完成功能确认。然后利用EDA工具的逻辑综合功能,把功能描述转换成某

23、一具体的目标的网表文件,并将其输出到该器件厂商的布局布线适配器,进行逻辑映射与布局布线,再利用产生的仿真文件进行包括功能和时序的验证,以确保实际系统的性能,即系统的结构构成方式与系统的行为或算法方式向混合的描述。 自顶向下的设计方法的优越性主要表现在以下几个方面:1)由于顶层的功能描述可以独立与目标器件的结构,在设计的最初阶段,设计人员可不受芯片的约束,集中精力对产品进行最适应市场需求的设计,从而避免了传统设计的方法中德在设计风险,缩短了产品的上市周期。2)设计成果的再利用得到保证。对于以往成功的设计成果稍加修改、组合就能投入再利用,从而产生全新的或派生的设计模块,同时还可以一种IP核的方式进

24、行存档。3)由于采用的是结构化开发手段,因此一旦主系统得到确认,即可实现多人多任务的并行工作方式,使系统的设计规模和效率大幅度提高。4)在实现系统的目标器件的类型、规模、硬件结构等方面具有更大的自由度。通常将电路设计的层次划分分为5个层次如下图。设计级别行为描述结构描述几何描述计算机描述功能级算法流程图方块图VHDL寄存器传输级状态图方框图VHDL门级卡诺土与布尔方程逻辑图VHDL晶体管级网络方程电路图YALSPICE版图级电子、空穴等传输方程设计规则工艺要求版图EDIFGDS21.3.2 总体结构与模块化分随着可编程技术的发展,大部分复杂系统的核心电路需要使用上百万以上的大规模FPGA来设计

25、。但是,为了对市场需求作出最快速的反映,要求这些电子产品的设计周期尽量缩短。因此在工程实践中常常采用模块化的设计方法,投入更多的人力并行工作、协同设计。模块化设计方法的基本思想是先将大规模复杂的系统按照一定的规则化分成若干模块。然后对每个模块进行设计输入与综合,并将实现结果约束在预先设置好的区域。最后将所有的模块的实现结果有机的组织起来,完成整个系统的设计。模块化设计方法是为了适应自顶向下和规模电路设计应用而生的。目前是中等规模和大规模设计的必选模式。模块化设计的优点主要有以下几个方面:.协同设计;.有效的模块化分可以提高设计的综合、实现效果并节约时间;.便于进行时序约束和物力区域约束;.便于

26、代码阅读、继承、复用。1设计输入与综合模块化设计输入与综合主要完成两个方面的工作.(1)总体结构的设计项目管理者需要完成总体结构顶层模块的设计输入和综合,为进行模块设计实现阶段的第1步初始化预算阶段(Initial Budgeting Phase)做准备。(2)子模块的设计每个项目成员相对独立的并行完成各个子模块的设计输入和综合,为进行模块化设计实现第2步子模块的激活实现(Active Module Implementation)做准备.2实现模块化设计的实现包含以下3个步骤。(1)初始预算(Initial Budgeting )在这阶段,项目管理者对顶层模块完成顶层约束。顶层约束包含对整个设

27、计的全局区域约束、对每个子模块的规模和区域的约束、对每个模块输入/输出的约束、对整个设计的时序约束等,并对设计的顶层模块进行初始化预算估计。(2)子模块的激活实现(Acitive Module Design)在这阶段每个项目成员并行完成各个子模块的实现。子模块一般较为简单,它通常一定已完成了输入/输出端口的定义、基本功能定义、组合逻辑定义、时序逻辑定义和反馈信号的定义。此时,电路设计者需要根据这些定义和逻辑方程式进行电路描述,将其保存。完成全部描述后,设计者将完成子模块的文件的编译,验证子模块的逻辑功能,并通过输出波形验证时序逻辑是否正确。但所有子模块的逻辑功能和时序逻辑都符合整体设计要求时,

28、子模块的激活实现才算完成。(3)模块的最后合并(Final Assembly)项目管理者将设计的顶层模块和子模块的激活实现结果有机的组织起来,完成整个设计的实现步骤。在进行大规模复杂系统的设计时,采用模块化设计方法能够在最大程度上发挥项目组中的所有工程的作用,提高设计效率,缩短项目开发时间。但是模块化设计对管理者提出了更高的要求:项目管理者应该合理的划分模块,对项目进度作出最好的权衡,使所有子模块设计任务并行完成,从而不耽误模块合并阶段的工作进度。在模块化设计中,模块的划分也会带来额外的资源,层次结构最终实现的是芯片上的平面的逻辑,层次的命名和相关处理,会带来逻辑冗余。所以,如果逻辑规模很小,

29、则不用划分模块;如果逻辑规模比较大,则需要划分模块。3模块化分的原则模块化设计的关键是在于如何进行模块化分,好的模块化分将加速工程进度,优化整体设计;而差的模块化分将过多的消耗资源,并带来约束、关键路径终端、优化等诸多方面的问题。模块化分不但关系到是否最大程度上发挥项目成员的协同设计能力,而且直接决定着设计的综合、实现时间。模块化设计中的模块化分的基本原则是子模块相对独立,模块部联系尽量紧密,而模块间的连接尽量简单。(1)对每个同步设计的子模块的输出使用寄存器(Registering ),利用寄存器分个同步时序模块。 使用寄存器可以使用综合工具在编译综合时会将分割的子模块中的组合电路合同步时序

30、电路整体考虑。而且这种模块结构符合时序约束的习惯,便于使用时序约束熟悉进行约束。(2)将相关的逻辑和可以复用的逻辑化分在同一模块。设计者将相关的逻辑和可以复用的逻辑化分在同一模块,可以最大程度的复用资源,减少设计消耗的面积。同时也更利于综合工具优化一个具体功能在时序上的关键路径。因为综合工具只能同时考虑一部分逻辑,而同时优化的逻辑单元就是模块,所以将相关功能划分在以同一模块更有利于综合起的优化。(3)将不同优化目标的逻辑分开在规划阶段,设计者就应该考虑设计的贷改规模和关键路径,并对设计的优化目标有一个整体上的把握。对于时序紧的部分,应该独立划分一个模块,其优化目标为“speed”,这种划分方法

31、便于设计者进行时序约束,也便于综合和实现工具优化。对于矛盾集中在芯片面积的部分,应该将其划分成独立的模块,其优化目标是芯片面积(Area),这样划分将更有利于区域布局与约束。这种根据优化目标进行优化的方法的最大好处是,对于某个模块综合器仅仅需要考虑一种优化目标和方法,即可比较容易的达到较好的优化效果。(4)将松约束的逻辑单元归到同一模块 有些逻辑的时序非常宽松,不需要较高的时序约束,可以将这类逻辑归入同一模块,如多周期路径“multi-cycle”等。将这些模块归类,则可于让综合器尽量的接生面积资源。(5)将RAM/ROM/FIFO等逻辑独立划分成模块绝大部分器件都有用于存储的硬件原语结构,若

32、将RAM/ROM/FIFO等逻辑独立划分成模块,那么综合器可以将利用这些原语结构实现存储,从而节省了芯片的面积,同时仿真是消耗的存也会较少,便于提高仿真速度。(6)合适的模块规模 模块规模大,有利于资源共享。但是规模过大的模块对综合器会造成运算负担,使得逻辑量过大,则不利于多模块和增量编译模式。4.全局逻辑的设计传统的自底向上的电路设计方法,电路设计这首先定义子模块,进行子模块的具体设计,然后再根据设计的总体要求,将各个功能子模块合成,最后完成硬件的总体设计。这种设计方法的全局逻辑设计时在完成子模块的基础上,通过子模块的有限次连接或是子模块间的时序调整来完成的。因此,利用自底向上的设计方法,子

33、模块的实现对全局逻辑的设计至关重要,如果子模块实现没有完善设计,那么全局逻辑的设计必须在完善子模块的实现后重新开始。采用自顶向下的设计方法,电路设计者首先不是去关心各个子模块的具体实现,而是确定电路设计的顶层模块。他们将各个子模块看作一个定义了输入/输出、基本功能和时序逻辑的“黑匣子”,根据电路的设计要求完成子模块间的联结和时序调整,即完成全局逻辑的设计,然后再进行功能子模块的详细设计。1.4 ISE软件介绍ISE是Xilinx公司提供的集成化FPGA开发软件,它的主要功能包括设计输入(Design Entry)、综合(Synthesis)、仿真(Simulation)、实现(Implemen

34、tation)和下载(Download)。1)设计输入(Design Entry) ISE 软件提供的设计输入工具包括用于HDL代码输入和报告查看的ISE文本编辑器(The ISE Text Editor),用于原理图编辑的工具ECS(The Engineering Capture System),用于生成IP CORE的 CORE Generator,用于状态机设计的 StateCAD以与用于约束文件的编辑 Constraint Editor等。2)综合(Synthesis) ISE的综合工具不但包括了Xilinx自身提供的综合工具XST,同时还可以集成Mentor Graphics 公司的

35、 LeonardoSpectrum和 Synplicity公司的 Synplify。3)仿真(Simulation) ISE本身自带了一个具有图形化编辑功能的仿真工具HDLBencher ,同时又提供了使用Model Technology公司的Modelsim进行仿真的接口。 4)实现(Implementation)此功能包括了翻译(Translate)、映射(Map)、布局布线(Place and Route)等。5)下载(Download)下载功能包括了BitGen,用于将布局布线后的设计文件转换为位流(Bitstream)文件,还包括iMPACT,功能是进行设置配置和通信,控制将程序写到

36、芯片中去(FPGA)。使用ISE进行FPGA设计的各个过程可能涉与到的设计工具如下表设计输入综合仿真实现下载HDLECS原理图编辑的工具StateCA状态机编辑器CORE GeneratorConstraint EditorXSTFPGA ExpressSynplifyLeonardoSpectrumHDL BencherModelsimTranslateMapPlace and RouteXpoweriMPACTPROM File Formatter1.5 本课题的目的和意义进入90年代,电子信息类产品的开发明显地出现了两个特点:一是开发产品的复杂程度加深;二是开发产品的上市时限紧迫。所谓开

37、发产品的复杂程度深是指设计者往往要将更多的功能、更高的性能和丰富的技术含量集成于所要开发的电子系统之中。目前的趋势是系统集成(System on chip或Chip in system)。所谓产品开发的时限性,是指在产品的寿命期间应让产品早日上市。从市场的角度来看,开发应市的新产品应该做到无延误地投放市场。 本文的研究课题,是使用FPGA代替传统的单片机和外围扩展芯片,利用串行通讯相当成熟的技术,目的是加快电子设计者以与开发人员更好地学习和掌握FPGA技术,充分体会FPGA所带来的设计理念和应用前景。1.6 本文主要工作本文以UART为原型,通过使用VHDL语言来实现UART的各相应功能. 首

38、先,采用标准的自顶向下的设计方法,用VHDL语一言完成整个系统的RTL级设计,完成功能仿真。其次,完成整个系统的综合、后仿真验证以与性能分析。最后,对UART进行了基本的扩展,包括键盘和拨码键盘。2 计算机接口与RS-232串口简介2.1 常用的计算机接口2.1.1常用的计算机接口简介常用的计算机接口有并行接口、串行接口、磁盘接口等,下面做一些简要的介绍。1.并行接口目前,计算机中的并行接口主要作为打印机端口,接口使用的不再是36针接头而是25针D形接头。所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,容易出

39、错。现在有五种常见的并口:4位、8位、半8位、EPP和ECP,大多数PC机配有4位或8位的并口,许多利用Intel386芯片组的便携机配有EPP口,支持全部IEEE1284并口规格的计算机配有ECP并口。标准并行口有4位、8位、半8位:4位口一次只能输入4位数据,但可以输出8位数据;8位口可以一次输入和输出8位数据;半8位也可以。EPP口(增强并行口):由Intel等公司开发,允许8位双向数据传送,可以连接各种非打印机设备,如扫描仪、LAN适配器、磁盘驱动器和CDROM 驱动器等。ECP口(扩展并行口):由Microsoft、HP公司开发,能支持命令周期、数据周期和多个逻辑设备寻址,在多任务环

40、境下可以使用DMA(直接存储器访问)。目前几乎所有的586机的主板都集成了并行口插座,标注为 Paralle1或LPT1,是一个26针的双排针插座。2.串行接口 计算机的另一种标准接口是串行口,现在的PC机一般至少有两个串行口COM1和COM2。串行口不同于并行口之处在于它的数据和控制信息是一位接一位串行地传送下去。这样,虽然速度会慢一些,但传送距离较并行口更长,因此长距离的通信应使用串行口。通常COM1使用的是9针D形连接器,而COM2有些使用的是老式的DB25针连接器。3.磁盘接口1)IDE接口IDE接口也叫做ATA端口,只可以接两个容量不超过528M的硬盘驱动器,接口的成本很低,因此在3

41、86、486时期非常流行。但大多数IDE接口不支持DMA数据传送,只能使用标准的PCIO端口指令来传送所有的命令、状态、数据。几乎所有的586主板上都集成了两个40针的双排针IDE接口插座,分别标注为IDE1和IDE2。2)EIDE接口EIDE接口较IDE接口有了很大改进,是目前最流行的接口。首先,它所支持的外设不再是2个而是4个了,所支持的设备除了硬盘,还包括CDROM驱动器磁盘备份设备等。其次,EIDE标准取消了528MB的限制,代之以8GP限制。第三,EIDE有更高的数据传送速率,支持PIO模式3和模式4标准。4.SCSI接口SCSI(SmallComputerSystemInterfa

42、ce)小计算机系统接口,在做图形处理和网络服务的计算机中被广泛采用SCSI接口的硬盘。除了硬盘以外,SCSI接口还可以连接CDROM驱动器、扫描仪和打印机等,它具有以下特点:.可同时连接7个外设;.总线配置为并行8位、16位或32位;.允许最大硬盘空间为8.4GB(有些已达到9.09GB);.更高的数据传输速率,IDE是2MB每秒,SCSI通常可以达到5MB每秒,FASTSCSI(SCSI2)能达到10MB每秒,最新的SCSI3甚至能够达到40MB每秒,而EIDE最高只能达到16.6MB每秒;.成本较IDE和EIDE接口高很多,而且,SCSI接口硬盘必须和SCSI接口卡配合使用,SCSI接口卡

43、也比IED和EIDE接口贵很多。.SCSI接口是智能化的,可以彼此通信而不增加CPU的负担。在IDE和EIDE设备之间传输数据时,CPU必须介入,而SCSI设备在数据传输过程中起主动作用,并能在SCSI总线部具体执行,直至完成再通知CPU。5.USB接口最新的USB串行接口标准是由Microsoft、Intel、Compaq、IBM等大公司共同推出,它提供机箱外的热即插即用连接,用户在连接外设时不用再打开机箱、关闭电源,而是采用“级联”方式,每个USB设备用一个USB插头连接到一个外设的USB插座上,而其本身又提供一个USB插座给下一个USB设备使用,通过这种方式的连接,一个USB控制器可以连

44、接多达127个外设,而每个外设间的距离可达5米。USB统一的4针圆形插头将取代机箱后的众多的串/并口(鼠标、MODEM)键盘等插头。USB能智能识别USB链上外围设备的插入或拆卸。除了能够连接键盘、鼠标等,USB还可以连接ISDN、系统、数字音响、打印机以与扫描仪等低速外设。6其它接口 除了上述的接口外,还有一些其他的接口也是经常使用的,比如用于连接键盘的PS/2,用于支持无线传输的红外、蓝牙接口,以与PC电脑上常见的音频输入/输出、视频输入/输出接口等。2.1.2 接口的控制方式CPU通过接口对外设进行控制的方式有以下几种:1)程序查询方式这种方式下,CPU通过I/O指令询问指定外设当前的状

45、态,如果外设准备就绪,则进行数据的输入或输出,否则CPU等待,循环查询。这种方式的优点是结构简单,只需要少量的硬件电路即可,缺点是由于CPU的速度远远高于外设,因此通常处于等待状态,工作效率很低。2)中断处理方式在这种方式下,CPU不再被动等待,而是可以执行其他程序,一旦外设为数据交换准备就绪,可以向CPU提出服务请求,CPU如果响应该请求,便暂时停止当前程序的执行,转去执行与该请求对应的服务程序,完成后,再继续执行原来被中断的程序。中断处理方式的优点是显而易见的,它不但为CPU省去了查询外设状态和等待外设就绪所花费的时间,提高了CPU的工作效率,还满足了外设的实时要求。但需要为每个IO设备分

46、配一个中断请求号和相应的中断服务程序,此外还需要一个中断控制器(IO接口芯片)管理IO设备提出的中断请求,例如设置中断屏蔽、中断请求优先级等。此外,中断处理方式的缺点是每传送一个字符都要进行中断,启动中断控制器,还要保留和恢复现场以便能继续原程序的执行,花费的工作量很大,这样如果需要大量数据交换,系统的性能会很低。3)DMA(直接存储器存取)传送方式DMA最明显的一个特点是它不是用软件而是采用一个专门的控制器来控制存与外设之间的数据交流,无须CPU介入,大大提高CPU的工作效率。在进行DMA数据传送之前,DMA控制器会向CPU申请总线控制权,CPU如果允许,则将控制权交出,因此,在数据交换时,

47、总线控制权由DMA控制器掌握,在传输结束后,DMA控制器将总线控制权交还给CPU。2.2 RS-232川口通信简介2.2.1 串行通信概述在数据通信、计算机网络以与分布式工业控制系统中,经常采用串行通信来交换数据和信息。1969年,美国电子工业协会(EIA)将RS-232定为串行通信接口的电气标准,该标准定义了数据终端设备(DTE)和数据通信设备(DCE)将按位串行传输的接口信息,合理的安排了接口的电气信号和机械要求,适合于数据传输速率在0-20000bit/s围的通信。RS-232作为一种标准接口,不仅被置于每一台计算机中,同时也被置于各种的外设中。RS-232具有以下的几个优点: .使用广

48、泛,几乎每一台PC都会有一台或者多个RS-232接口;.连接距离可达15m;.实现简单,RS-232用于双向连接,只需要3条导线。除了RS-232标准,美国电子工业协会(EIA)还制定了RS-232与RS-485标准。RS-422由RS-232发展而来,它视为弥补RS-232不足而提出的。RS-422定义了一种平衡通信接口,将传输速率提升到10Mbit/s, 传输距离延长到4000英尺(速率低于100kbit/s),并允许在一天平衡总线上连接最多10各连接器。RS-422是一种单机发送、多机接收的单向、平衡传输规,被命名为TIA/EIA-422-A标准。为扩展应用围,EIA又于1983年在RS

49、-433基础上制定了RS-485标准,增强了多点、双向通信能力,即允许多个收发器连到同一条总线上,同时增强了发送器的驱动能力和冲突保护特性,扩展了总线共模围,命名为RS-485标准。RS-232,RS-422与RS-485的电气参数如表2-1所示。表2-1 RS-232,RS-422与RS-485的电气参数规定RS-232RS-422RS-485工作方式单端差分差分节点数1收1发1发10收1法32收最大传输电缆长度50英尺400英尺400英尺最大传输速率20kbit/s10Mbit/s10Mbit/s最大驱动输出电压+/-25V-0.25V+6V-7V+12V驱动器输出信号电平(附在最小值)+

50、/-5V+/-15V+/-2.0V+/-1.5V驱动器输出信号电平(空载最大值)+/-25V+/-6V+/-6V驱动器负载阻抗37千欧姆100欧姆54欧姆摆率(最大值)30V/usN/AN/A接收器输入电压围+/-15V-10V+10V-7V+12V接收器输入门限+/-3V+/-200mV+/-200mV接收器输入电阻37千欧姆4千欧姆(最小)=12千欧姆驱动器共模电压-3V+3V-1V+3V接收器共模电压-7V+7V-7V+12V虽然RS-232,RS-422与RS-485标准对电器特性做出了规,但是没有规定连接插件、电缆或协议,所以在此基础上用户可以建成自己的高层通信协议。RS-232等协

51、议在视频传输中被广泛应用,许多厂家多建立了一套高层通信协议,或公开或厂家独家使用。目前,RS-232是PC机与通信工业中应用最广泛的一种串行接口。2.2.2RS-232协议标准的RS-232接口有25跟信号线,其中有4根市数据线、11根控制线、3根定时线和7根备用线。通常情况下,使用25根信号线中的9根就可以实现RS-232通信。1DSR信号线DSR (Data Set Ready) 意思是数据装置就绪,当其状态为有效时,表示Modem出于可以使用的状态。2DTR 信号线DTR(Data Terminal Ready)以四位数据终端就绪,当其状态为有效时,表示数据终端可以使用。3RTS 信号线

52、RTS (Request To Send) 意思是请求发送,即当终端需要发送数据时,使该数据有效,向Modem请求发送。它用于控制Modem是否有效,通知终端开始发送数据。4CTS 信号线CTS (Clear To Send) 意思是允许发送,这个信号是对RTS信号的响应。当Modem已经准备好接收终端发送过来的数据时,使该信号有效,通知终端开始发送数据。5DCD 信号线DCD (Data Carrier Detection) 意思为数据载波检出,当此信号为有效时表示Modem已经接通了通信链路,即本地Modem受到了通信链路另一端的远程Modem送来的载波信号,终端可以准备接收数据。6RI信

53、号线RI (Ringing) 表示振铃指示,但本地Modem受到交换台发送的振铃呼叫信号时,使该信号有效,通知终端已被呼叫。7 TxD 信号线TxD (Transmitted Data) 意思是发送数据,终端通过此信号将数据发送给Modem。8. RxD信号线RxD (Received Data) 意思是接收数据,终端通过此信号从Modem 接收数据。9. 地线地线有两根,分别是信号地SG (Signal Ground) 和保护地 PE(Protection ground),信号地使所有信号的参考电平,保护地用于连接设备的外壳或者地表。常见的RS-232串行口连接器主要有两种,一种是25针的

54、DB-25,另一种是9针的DB-9,其示意图如图所示,其中DB-9主要用于上述的9根信号线连接的方法,DB-25可以连接所有的RS-232标准定义的信号线。DB-25也可用像DB-9那样使用,但是它们的针号与信号之间的连接关系是不一样的,如表2-2。表2-2DB-9与DB-9针号信号线连接对应表9针串口连接器DB-925针串口连接器DB-25针号功能缩写针号功能缩写1数据载波检测DCD8数据载波检测DCD2接收数据RXD3接收数据RXD3发送数据TXD2发送数据TXD4数据终端准备DTR20数据终端准备DTR5信号线GND7信号线GND6数据设备准备好DSR6数据设备准备好DSR7请求发送RT

55、S4请求发送RTS8清除发送CTS5清除发送CTS图2.1 RS-232 串行口连接器示意图最为简单常用的RS-232连接方法是三线连接法,即地、接收数据和发送数据三角相连。对于上述的DB-25连接器和DB-9连接器,三线连接法的原则如下所示。表2-3DB-25, DB-9三线连接法DB-9- DB-9DB-25- DB-25DB-25-DB-9233222322333557757由于RS-232电气特定的电平不符合通常电路中所使用的TTL或者CMOS点评,所以在接入电路之前需要对其进行转换。RS-232串口电平的转换一般使用的是专门的芯片实现,其中最常用的就是MAX232。MAX232可以将

56、串口设备需要发送的TTL/CMOS逻辑电平转换为RS-232逻辑电平,同时也可以见要接收的RS-232电平转换为TTL/CMOS逻辑电平,下图2.2为MAX232的顶层图。MAX232典型的连接方法如图2.3所示,其中有5个0.1u的去耦电容;11管脚和10管脚是TTL/CMOS电平输入,对应14管脚和7管脚的RS-232电平输出,它们一般接到RS-232的RxD上,12管脚和9管脚是TTL/CMOS电平输出,对应13管脚和8管脚的RS-232电平输入,它们一般接到RS-232的TxD上。2.2.3RS-232通信时序和UART在串行通信中,用“波特率”来描述数据的传输速率。所谓波特率,即每秒钟传送的二进制位数,其单位是 bit/s(bit per s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论