基于VHDL语言的Intel8251可编程串行扩展接口芯片设计摘要随着集成电路技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。电子设计自动化是一种实现电子系统或电子产品自动化设计的技术,它与电子技术,微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。EDA的一个重要特征就是使用硬件描述语言(HDL)来完成的设计文件,VHDL语言是经IEEE确认的标准硬件语言,在电子设计领域受到了广泛的接受。本文介绍了串行通信的基本理论;综述了EDA技术的发展概况,介绍了MAX+PLUSll软件;熟悉Intel8251基本结构和工作原理;最后设计仿真了Intel8251的顶级功能模块和子功能模块.关键词:VHDL语言;MAX+PLUSll软件;串行收发器ABSTRACTWiththetechnicaldevelopmentofintegratedcircuit(IC),theelectronicsdesignautomation(EDA)becomestheimportantdesignmeansgradually,andalreadyextensivelyusedinmanyfieldssuchassimulationanddigitalelectrocircuitsystem.Theelectronicsdesignautomationisakindoftechniquethatcarriesouttheelectronicssystemortheelectronicsproductstoautomatethedesign.Closelyrelatedwiththeelectronicstechniqueandthetechnicaldevelopmentofmicro-electronics,absorbedthelatestresultofthecomputerscienceresearching,usingthecomputerwiththehighcapability,theelectronicsdesignautomationpromotedtheengineeringdevelopment.AsignificantcharacteristicofEDAistocompletethedesignfilesbythehardwaredescriptionlanguage(HDL),VHDLisastandardhardwarelanguagewhichisvalidatedbytheIEEEandisacceptableextensivelyinthefieldoftheelectronicdesign.Thispaperintroducesthebasictheoryofserialcommunication,generalizesdevelopinghistoryofEDA,somesimulativesoftwaresuchassoftwareofMAX+PLUSll,acquaintwiththebasicstructuresandtheworkprinciplesof8251;Atlast,thedesignofthetop-classfunctionmoduleandsub-functionmoduleof8251ispassedinsimulation.Keywords:LanguageofVHDL;MAX+PLUSllsoftware;SerialTransceiver1引言1.1课题研究的背景在系统中嵌入式CPU往往要通过各种串行数据总线与外界进行通信,在应用中,异步的串行数据通信用得较多,而通用异步收发器(UARTUniversalAsynchronousReceiver/Transmitter)在其中扮演着重要角色,它可以完成数据的串并转换,即把并行数据按照通信波特率转化为通信协议中规定的串行数据流,也可从串行数据流中取出有用数据转变为并行数据。而UART与CPU接口简单,CPU只需通过执行读写操作即可完成收发数据,从而完成与外界的通信。有许多现成的芯片可以实现UART的功能:如常用的Intel8250/8251接口芯片就可以作为RS232、RS422串口的UART控制芯片。FPGA/CPDL是20世纪90年代发展起来的大规模可编程逻辑器件,随着EDA技术和微电子技术的进步,FPGA的时钟延迟可达到ns级,结合其并行工作方式,在超高速、实时测控方面有非常广阔的应用前景;并且FPGA具有高集成度、高可靠性,几乎可以将整个设计系统下载于同一芯片中,实现所谓片上系统,从而大大缩小其体积,因此以FPAG/CLPD为代表的可编程逻辑器件受到了世界范围内广大电子设计工程师的普遍欢迎,应用日益广泛。在国外,FGPA的技术发展与应用己达到相当高的程度;在国内,FPAG技术发展十分迅速,然而与国外相比还存在较大的差距。1.2课题研究的主要内容与意义本文的研究课题利用串行通讯相当成熟的技术,重点讨论如何用VHDL编程实现UART,完成基于VHDL语言的可编程串行通信接口8251的设计。论文结构安排如下:第一章:介绍了本文的研究背景、研究内容和意义;第二章:阐述数据通信原理,介绍串行通信;第三章:介绍EDA以及硬件描述语言VHDL、开发工具MaxplusII;第四章:介绍可编程串行通信接口Intel8251及其VHDL实现,验证研究结果的正确性;第五章:关于本次设计的结论和展望。1.3课题研究的意义用VHDL语言来实现8251的UART功能,可以将UART功能集成到FPGA中提高系统的集成度。同时VHDL是一种标准的硬件描述语言,几乎所有的软件仿真编译工具都能支持,因此方便进行仿真修改和移植具有很高的工程实用价值。同时通过本研究可以加快电子设计者以及开发人员更好地学习和掌握FPAG技术,充分体会FGPA所带来的设计理念和应用前景。2数据通信原理2.1数据通信概述随着人类社会的不断进步、经济的迅猛发展以及计算机的广泛应用,人们对信息的需求越来越大,数据通信得到长足发展。通信的目的是双方信息的互知,是信息的远距离传送。随着社会的进步。传统的电话、电报通信方式已远远不能满足大信息量的需要。以数据作为信息载体的通信手段已成为人们的迫切要求。但“数据”还没有统一严格的定义,一般可以这样认为:数据是预先约定的具有某种含义的数字、字母或符号的组合。计算机出现以后,为了实现远距离的资源共享,很快计算机就与通信技术相结合,产生了数据通信。所以说数据通信是为了实现计算机与计算机或终端与计算机之间信息交互而产生的一种通信技术,是计算机与通信相结合的产物。综上所述,可对数据通信作如下定义:依照通信协议,利用数据传输技术在两个功能单元之间传递数据信息。它可实现计算机与计算机、计算机与终端或终端与终端之间的数据信息传递。2.2数据传输方式数据传输方式指的是通过某种方式建立一个数据传输通道将数据信号在其中传输,它是数据通信的基础。数据的传输方式分为并行传输和串行传输,在串行传输中又分为异步传输和同步传输。按照电路的传输能力,可以分为单工、半双工、全双工传输。2.2.1并行传输与串行传输并行传输指的是数据以成组的方式,在多条并行信道上同时进行传输。常用的是将构成一个字符的几位二进制码同时分别在几个并行的信道上传输。另外加一条控制信号即“选通”脉冲,它在数据信号发出之后传送,用以通知接收设备所有的位己经发送完毕,可以对各条信道上的信号进行采样了。收、发双方不存在字符同步的问题,不需要额外的措施来实现收发双方的字符同步,这是并行传输的主要优点。但是并行传输必须有多条并行信道,成本比较高,不适宜远距离传输,因此一般较少使用。串行传输指的是组成字符的若干位二进制码排列成数据流以串行的方式在一条信道上传输。通常传输顺序为由低位到高位,传完这个字符再传下一个字符。因此收、发双方必须保持字符同步,以使接收方能够从接收的数据比特流中正确区分出与发送方相同的一个一个的字符。这是串行传输必须解决的问题。串行传输只需要一条传输信道,易于实现,是目前主要采用的一种传输方式。2.2.2异步传输与同步传输在串行传输中,如何解决字符的同步问题,目前主要存在两种方式:即异步传输和同步传输。异步传输方式的优点是实现字符同步比较简单,收发双方的时钟信号不需要严格同步。缺点是对每个字符都需加入起始位和终止位,因而传输效率低。同步传输是以固定的时钟节拍来发送数据信号的,因此在一个串行数据流中,各信号码元之间的相对位置是固定的(即同步)。接收方为了从接收到的数据流中正确地区分一个个信号码元,必须建立准确的时钟信号。与异步传输方式相比,由于它发送每一字符时不需要单独加起始位和终止位,故具有较高的传输效率,但实现起来比较复杂。有关异步传输和同步传输的数据格式将在2.3中介绍。2.2.3单工、半双工、全双工传输数据传输是有方向性的,根据数据电路的传输能力,可以有三种不同的传输方式或通信方式。(1)单工传输:传输系统的两端数据只能沿单一方向发送和接收,这种方式传输系统的一端固定为发送端,另一端固定为接收端。反向信道的速率一般较低,为5-75bi/ts。实际应用中可以使用反向信道,也可以不用。气象数据的收集、计算机与监视器及硬盘与计算机的数据传输就是单工传输的例子。(2)半双工传输:系统两端可以在两个方向上进行数据传输,但两个方向的传输不能同时进行,当其中一端发送时,另一端只能接收,反之亦然。无论哪一方开始传输,都使用信道的整个带宽。对讲机和民用无线电都是半双工传输。(3)全双工传输:系统两端可以在两个方向上同时进行数据传输,即两端都可同时发送和接收数据。综上所述,异步串行全双工的数据传输方式是较为容易实现的方式,应用较为广泛。2.3串行通信协议数据通信是在各种类型的用户终端和计算机之间以及同一型号的计算机之间进行的。它不同于电话通信方式,其通信控制也复杂得多,因此必须有一系列行之有效的、共同遵守的通信协议。所谓通信协议是指通信双方的一种约定,约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于国际标准化组织ISO(InternationalStandardsOrganization)的开放系统互连OSI(OpenSystemInterconnection)七层参考模型中的数据链路层口。2.3.1串行通信接口标准串行通信接口按电气标准及协议来划分包括Rs-232、Rs-422、Rs485、LVDS等。RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。LVDS是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。(l)RS-232串行接口1969年,美国电子工业协会(EIA)公布了RS-232作为串行通信接口的电气标准,该标准定义了数据终端设备(DTE)和数据通信设备(DCE)间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求。目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通信中增加通信距离的标准,它采取不平衡传输方式,即所谓单端通信。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5到+l5V,负电平在-5到-15v电平。当无数据传输时,线上为TTL电平,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3到+l2v与-3到-12v。Rs-232是为点对点(即只用一对收、发设备)通信而设计的,其驱动器负载为3到7k。。由于RS-232发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约30米,最高速率为20kb