网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

基于VHDL的异步串行通信电路设计

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
异步串行通信电路设计摘 要:本课程设计用VHDL硬件描述语言完成了异步串行通信电路的设计。随着计算机应用技术和微机网络技术的发展,计算机与其外部设备之间的数据传输越发显得重要。而串行通讯技术是实现这一功能的有效途径,他具有使用方便、数据传输可靠、适用于远距离通讯的特点,在工业监控、数据采集、检测等系统中有着广泛的应用。随着EDA技术得发展,CPLD已经在许多方面得到了广泛应用,而串行通信是实现远程测控的重要手段。本文利用VHDL语言在CPLD上实现了串行通信,完全可以脱离单片机使用,克服了单片机的许多缺点。
关键词:异步串行通信;频率同步;三段采样目  录1 引言 11.1课题的背景、目的 1
1.2 课题设计环境 12 EDA与VHDL简介 32.1 EDA介绍 3
2.2 VHDL语言介绍 63串口异步通信的帧格式和波特率 83.1串行异步通信的帧格式 8
3.2 串行异步通信的波特率 94串行发送电路的设计 104.1波特率发生器的设计 10
4.2发送电路的设计 10
4.3时序仿真 125串行接收电路的设计 135.1波特率发生器和采样时钟的设计 13
5.2接收电路的设计 16
5.3时序仿真 196小结 20参考文献 196
 
基于VHDL的异步串行通信电路设计1 引言随着电子技术的发展,现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD的出现,使得电子系统的设计者利用与器件相应的电子CAD软件,在实验室里就可以设计自己的专用集成电路ASIC器件。这种可编程ASIC不仅使设计的产品达到小型化、集成化和高可靠性,而且器件具有用户可编程特性,大大缩短了设计周期,减少了设计费用,降低了设计风险。目前数字系统的设计可以直接面向用户需求,根据系统的行为和功能要求,自上至下地逐层完成相应的描述﹑综合﹑优化﹑仿真与验证,直到生成器件,实现电子设计自动化。其中电子设计自动化(EDA)的关键技术之一就是可以用硬件描述语言(HDL)来描述硬件电路。VHDL是用来描述从抽象到具体级别硬件的工业标准语言,它是由美国国防部在80年代开发的HDL,现在已成为IEEE承认的标准硬件描述语言。VHDL支持硬件的设计、验证、综合和测试,以及硬件设计数据的交换、维护、修改和硬件的实现,具有描述能力强、生命周期长、支持大规模设计的分解和已有设计的再利用等优点。利用VHDL这些优点和先进的EDA工具,根据具体的实际要求,我们可以自己来设计串口异步通信电路。
1.1课题的背景、目的  二十一世纪是信息化高速发展的世纪,产业的信息化离不开硬件芯片的支持。芯片技术的进步是推动全球信息化的动力。因此在二十一世纪掌握芯片技术是十分有必要的。本次课题是计算机组成原理的课程设计,这次课题旨在通过自己对所需功能芯片的设计与实现来巩固以前所学的计算机硬件基础知识,同时也提高动手实践的能力,还有为将来进行更大规模更复杂的开发积累经验。
1.2 课题设计环境  本次课题设计方要用到的开发环境是Altera公司的EDA设计工具软件QuartusII 10.1的版本。Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。  Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。  Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。  此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。  Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。  Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。   Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。支持MAX7000/MAX3000等乘积项器件。
2 EDA与VHDL简介2.1 EDA介绍EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。        利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。         现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA 技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。EDA 设计可分为系统级、电路级和物理实现级。(一). EDA常用软件          EDA工具层出不穷,目前进入我国并具有广泛影响的EDA软件有:EWB、PSPICE、OrCAD、PCAD、Protel、Viewlogic、Mentor、Graphics、Synopsys、LSIlogic、Cadence、MicroSim等等。这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同时以可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。下面按主要功能或主要应用场合,分为电路设计与仿真工具、PCB设计软件、        1、电子电路设计与仿真工具        电子电路设计与仿真工具包括SPICE/PSPICE;EWB;Matlab;SystemView;MMICAD等。下面简单介绍前三个软件。SPICE(Simulation Program with Integrated Circuit Emphasis) 是由美国加州大学推出的电路分析仿真软件,是20世纪80年代世界上应用最广的电路设计软件,1998年被定为美国国家标准。1984年,美国MicroSim公司推出了基于SPICE的微机版PSPICE(Personal—SPICE)。现在用得较多的PSPICE6.2, EWB(Electronic Workbench)软件   是Interactive ImageTechnologies Ltd 在20世纪90年代初推出的电路仿真软件。目前普遍使用的是EWB5.2,相对于其它EDA软件,它是较小巧的软件(只16M)。但它对模数电路的混合仿真功能却十分强大,几乎100%地仿真出真实电路的结果,并且它在桌面上提供了万用表、示波器、信号发生器、扫频仪、逻辑分析仪、数字信号发生器、逻辑转换器和电压表、电流表等仪器仪表。它的界面直观,易学易用。MATLAB产品族        它们的一大特性是有众多的面向具体应用的工具箱和仿真块,包含了完整的函数集用来对图像信号处理、控制系统设计、神经网络等 2、PCB设计软件         PCB(Printed—Circuit Board)设计软件种类很多,如Protel; OrCAD;Viewlogic; PowerPCB; Cadence PSD;MentorGraphices的Expedition PCB;Zuken CadStart; Winboard/Windraft/Ivex-SPICE;PCB Studio; TANGO等等。目前在我国用得最多应属Protel(二). EDA的应用           EDA在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。           在教学方面,几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的基本概念和基本原理、掌握用HDL语言编写规范、掌握逻辑综合的理论和算法、使用EDA工具进行电子电路课程的实验并从事简单系统的设计。一般学习电路仿真工具(如EWB、PSPICE)和PLD开发工具(如Altera/Xilinx的器件结构及开发系统),为今后工作打下基础。          科研方面主要利用电路仿真工具(EWB或PSPICE)进行电路设计与仿真
 
异步串行通信电路设计利用虚拟仪器进行产品测试;将CPLD/FPGA器件实际应用到仪器设备中;从事PCB设计和ASIC设计等。               
(三).EDA技术的发展趋势            从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用文泛、工具多样、软件功能强大。            中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PC主板和小型ASIC领域,仅有小部分(约11%)的设计人员研发复杂的片上系统器件。为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一些最新的EDA技术。           在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。要大力推进制造业信息化,积极开展计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机辅助工艺(CAPP)、计算机机辅助制造(CAM)、产品数据管理(PDM)、制造资源计划(MRPII)及企业资源管理(ERP)等。有条件的企业可开展“网络制造”,便于合作设计、合作制造,参与国内和国际竞争。开展“数控化”工程和“数字化”工程。自动化仪表的技术发展趋势的测试技术、控制技术与计算机技术、通信技术进一步融合,形成测量、控制、通信与计算机(M3C)结构。在ASIC和PLD设计方面,向超高速、高密度、低功耗、低电压方向发展。        在EDA软件开发方面,目前主要集中在美国。但各国也正在努力开发相应的工具。日本、韩国都有ASIC设计工具,但不对外开放 。中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。相信在不久的将来会有更多更好的设计工具有各地开花并结果。据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年复合增长率分别达到了50%和30%。            EDA技术发展迅猛,完全可以用日新月异来描述。EDA技术的应用广泛,现在已涉及到各行各业。EDA水平不断提高,设计工具趋于完美的地步。EDA市场日趋成熟,但我国的研发水平沿很有限,需迎头赶上。
2.2 VHDL语言介绍(一)VHDL语言        超高速集成电路硬件描述语(VHSIC Hardware Deseription Language,简称VHDL),是IEEE的一项标准设计语言。它源于美国国防部提出的超高速集成电路(Very High Speed Integrated Circuit,简称VHSIC)计划,是ASIC设计和PLD设计的一种主要输入工具。  1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的。    (1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。    (2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。    (3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效、高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。    (5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。
(二)VHDL语言的特点(1)作为硬件描述语言的第一个国际标准,VHDL具有很强的可移植性。(2)具有丰富的模拟仿真语句和库函数,随时可对设计进行仿真模拟,因而能将设计中逻辑上的错误消灭在组装之前,在大系统的设计早期就能查验设计系统功能的可行性。(3)设计层次较高,用于较复杂的计算时,能尽早发现存在的问题,从而缩短设计周期。(4)VHDL的设计不依赖于特定的器件,方便了工艺的转换。(5)支持大规模设计的分解和已有设计的再利用。(6)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动地把VHDL描述设计转变成门级网表。(7)VHDL用源代码描述来进行复杂控制逻辑的设计,灵活又方便,同时也便于设计结果的交流、保存和重用。3串口异步通信的帧格式和波特率在数字系统中数据总是二进制的,也就是数字的,这样处理起来就相对容易,因此我们希望无论在何种情况下,信息都是数字化的,包括数据的传输。然而在真实的环境中,数据的传输通常都不是数字形式,而是以模拟信号的方式传输。我们都知道模拟信号是易变且不易精确分辨的,这就使数据的传输变得看似简单却十分复杂。好在现在这部分工作都由相应的数模、模数转换器来完成,也就省去了我们不少的工夫。不过,由于本次课题做的是异步的通信传输,这里又存在这一些问题,像数据何时开始,何时结束啊,那些二进制位是有效数据,哪些是无用信息啊,这些都是要解决的问题。要解决这个问题最好的办法就是传输端和接收端共同约定一个协议,也就是规定什么样的信号表示开始,什么样的信号表示结束。这样也就要要求数据以一定的格式来传输,这在计算机通信方面是十分重要的,下面就来介绍一下本次课题中串行异步通信传输帧的格式。
3.1串行异步通信的帧格式  在串行异步通信中,数据位是以字符为传送单位,数据位的前、后要有起始位、停止位,这样才能确保接收端知道数据传送何时开始,何时结束,从而保证数据的正确接收。另外可以在停止位的前面加上一个比特位(bit)的校验位。其帧格式如图3-1所示。
 
基于VHDL的异步串行通信电路设计图3-1 串行异步通信的帧格式
  起始位是一个逻辑0,总是加在每一帧的开始,为的是提醒数据接收设备接收数据,在接收数据位过程中又被分离出去。数据位根据串行通信协议,允许传输的字符长度可以为5、6、7或8位。通常数据位为7位或8位,如果要传输非ASCII数据(假如使用扩展字符设置的文本或者二进制数据),数据位格式就需要采用8位。数据位被传输时从一个字符的最低位数据开始,最高位数据在最后。例如字母C在ASCII表中是十进制67,二进制的01000011,那么传输的将是11000010。校验位是为了验证传输的数据是否被正确接收,常见的校验方法是奇、偶校验。另外校验位也可以为0校验或者1校验,即不管数据位中1的个数是多少,校验位始终为0或者1,如果在传输的过程中校验位发生了变化,这就提示出现了某类错误。不过,在传输数据的时候,也可以不用校验位。停止位,为逻辑1,总在每一帧的末尾,可以是1位、1.5位或者2位。最常用的是1位,超过1位的停止位通常出现在这样的场合:在处理下一个即将发送来的字符之前接收设备要求附加时间。
3.2 串行异步通信的波特率    串行口每秒发送或接收数据的位数为波特率。若发送或接收一位数据需要时间为t,则波特率为1/t,相应的发送或接收时钟为1/tHz。发送和接收设备的波特率应该设置成一致,如果两者的波特率不一致,将会出现校验错或者帧错。这一点是十分重要的,它直接影响到数据传送的成败。本次课题中就使用了同一脉冲源来使发送端与接收端的波特率一至,该脉冲源产生的波特率为9600。4串行发送电路的设计4.1波特率发生器的设计    要产生9600波特率,要有一个不低于9600Hz的时钟才可以。为产生高精度的时钟,我选了6MHz(6M能整除9600)的晶振来提供外部时钟。当然,你也可以选其它频率的时钟来产生9600Hz的时钟。对于6MHz时钟,需要设计一个625进制的分频器来产生9600波特率的时钟信号。用VHDL设计分频器较简单,在这里就不再给出源程序了。
4.2发送电路的设计    根据采用的帧格式,需要发送的数据为10位(1位开始位、8位数据位、1位停止位),在发送完这10位后,就应该停止发送,并使发送端电平处于逻辑1,然后等候下次的发送。下面是实现上述功能的VHDL源程序:
library ieee;use ieee.std_logic_1164.all;
entity Com is  port(clk,en:in std_logic;   Send_data:in std_logic_vector(9 downto 0);   serial:out std_logic); end com;
architecture com_arc of com is begin  process(clk)   variable count:integer range 0 to 9 :=0;   begin   if en='0' then    count:=0;    serial<='1'; lwfree.cn   else     serial<=Send_data(count);     count:=count+1;    end if;   end if;  end process; end com_arc;
其中,Send_data(0to9)表示需要发送的数据帧,发送时,开始位Send_data(0)必须为逻辑0,停止位Send_data(9)必须为逻辑1,否者与硬件电路连接的设备接收到的数据会出现错误。在发送每一帧之前,首先给输入端en一个低电平脉冲,让电路复位(count置0),然后开始发送。变量count在进程中用来记录发送的数据数目,当数据帧发送完后,发送端就一直发送停止位(逻辑1)。在QuartusII中,发送端的RTL级视图如图4-1所示。 图4-1 发送端的RTL级视图4.3时序仿真    选EDA工具,对VHDL源程序编译。用的是Altera公司的QuartusII 10.1,这个工具支持VHDL的编译、仿真。图4-2是编译后的仿真结果,其中,Clk为频率9600Hz的时钟,当然,为了仿真的方便我进行了适当的调整,不过这只是为了方便仿真,不会对真实环境下的电路产生什么影响。Send_data0为开始位,Send_data[8..0]为数据位,Send_data9为停止位。结果显示,输出完全是按数据帧格式发送的。
 
异步串行通信电路设计5串行接收电路的设计接收电路比发送电路要复杂,接收电路要时实检测起始位的到来,一旦检测到起始位到,就要将这一帧数据接收下来。为提高接收的准确性,减少误码率,每一位数据都用3倍频的波特率对数据进行采样(如图4-2所示),然后对3次采样结果进行判决:如果3次采样中至少有2次为高电平,则接收这一位数据被判决为高电平,否者,为低电平。这是为了提高数据接收的可靠性而增加的模块,不过在任何用到数据传送的地方,可靠性是十分重要的。 图5-1 数据的三次采样
5.1波特率发生器和采样时钟的设计  为完成3次采样,除了频率为9600Hz的接收时钟外,还要有一个3倍频的采样时钟。下面是实现上述功能的VHDL源程序:
library ieee; use ieee.std_logic_1164.all;
entity count625 is  port(clk,en:in std_logic;  Clock1,Clock3:out std_logic); end count625;
architecture count625_arc of count625 is begin  process(clk,en)  variable count:integer range 0 to 625 :=0;  begin   if en='0' then    NUll;   elsif (rising_edge(clk)) then    count:=count+1;    if count=625 then     Clock1<='1';     count:=0;    else     Clock1<='0';    end if;    if (count=100 or count=300 or count=500 ) then     Clock3<='1';    else     Clock3<='0';    end if;   end if;  end process; end count625_arc;
其中clk为6MHz的时钟;en控制波形的产生;Clock1为9600Hz的接收时钟;Clock3为3倍频的采样时钟,也就是频率为28800Hz。在QuartusII中的RTL级视图如图4-3所示。 图5-2 波特率发生器和采样时钟的RTL级视图
下面是波特率发生器和采样时钟在QuartusII 10.1下的时序仿真波形图,由于仿真的时间都不可能设得太长,所以在仿真时,我将相应的数值改小了一些,这样只是方便在软件下进行仿真,对实际的结果没有什么影响。 
图5-3 波特率发生器和采样时钟仿真图5.2接收电路的设计  串行接收电路首先要能判断接收数据的到来,即每一帧的开始,然后对数据进行3次采样,最后判决输出。为简化设计,帧格式仍然采用1位开始位+8位数据位+1位停止位。下面是设计的接收电路VHDL程序:
library ieee;use ieee.std_logic_1164.all;
entity com_receive10 is port(com,clr,clk1,clk3:in std_logic;  Q:out std_logic_vector(0 to 9);  Valid:out std_logic);end com_receive10;
architecture com_receive10_arc of com_receive10 is Signal Enable:std_logic :='1'; Signal Hold:std_logic :='0'; Signal N:std_logic_vector(0 to 2) :="000";beginlwfree.cn   range 0 to 9 :=0;  begin  if clr='0' then   Enable<='1';   Num:=0;   Q<="0000000000";  elsif (rising_edge(clk1)) then   Q(Num)<=(N(0) and N(1)) or (N(1) and N(2)) or (N(0) and N(2));   if Num=9 then    Enable<='0';    Num:=0;
 
基于VHDL的异步串行通信电路设计else    Num:=Num+1;   end if;  end if; end process;
 process(clk3,clr)  variable m:integer range 0 to 2 :=0;  begin  if clr='0' then   m:=0;  elsif(rising_edge(clk3)) then   N(m)<=com;   if m=2 thenlwfree.cn  end if; end process;
 process(clr,com)  begin  if clr='0' then   Hold<='0';  elsif falling_edge(com) then   Hold<='1';  end if; end process;end com_receive10_arc;
  代码当中,N(m)<=com是用来对波形进行采样用的,计算式子如下:Q(Num)<=(N(0)andN(1))or(N(1)andN(2))or(N(0)andN(2)),这是对其中1位数据的3次采样结果判决;Num用来记录接收的数据位数;falling_edge(com)是用来时实检测每一帧的起始位(即下降沿)的到来;Valid<=EnableandHold用来输出到波特率发生器电路单元控制时钟的产生,最后将一帧的10位数据输出。其在QuartusII 10.1下的RTL级视图为图5-4所示。   图5-4 数据接收端的RTL级视图用QuartusII 10.1将上面两个VHDL文件制成库器件,然后在电路图上调出来,最后做成的串行接收电路图如图5-4所示。图5-5 总模块逻辑图
5.3时序仿真  时序仿真如图5所示,Receive为接收到的序列波形,最后结果:接收到的数据位为6D,起始位为0,停止位为1。 图5-6 串行接收电路的时序仿真6小结VHDL语言设计的出现从根本上改变了以往数字电路的设计模式,使电路设计由硬件设计转变为软件设计,这样提高了设计的灵活性,降低了电路的复杂程度,修改起来也很方便。 利用VHDL设计的灵活性,根据串行通信协议的要求,可以在实验室利用先进的EDA工具,用VHDL设计出符合自己实际需求的异步串行通信电路。 本文设计出的基于VHDL异步串行通信电路,在实验室已经与计算机串口RS-232进行了通信实验(注意:TTL和RS-232逻辑电平的转换)。实验证明,0至255的所有数据都能被正确收、发。
 
基于VHDL的异步串行通信电路设计参考文献[1] 孙裕晶,沙玲,赵红霞.实用控制系统设计教程[M].长春:吉林大学出版社,2000.[2] 张振荣,晋明武等.MCS-51单片机原理及实用技术[M].北京:人民邮电出版社,2000.[3] 周兴华.手把手教你学单片机[M].北京:北京航空航天大学出版社,2005.[4]褚振勇,翁木云.FPGA设计及应用[M].西安:西安电子科技大学出版社,2002.[5]潘 松,王国栋.VHDL实用教程[M].成都:电子科技大学出版社,2000.[6] 王新梅,肖国镇.纠错码——原理与方法(修订版) [M].西安电子科技大学出版社,2001.
  • 下一篇资讯: 辩论赛的通知
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师