【simulink代做】基于FPGA的PC串口_第1页
【simulink代做】基于FPGA的PC串口_第2页
【simulink代做】基于FPGA的PC串口_第3页
【simulink代做】基于FPGA的PC串口_第4页
【simulink代做】基于FPGA的PC串口_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、1绪论11 课题研究的背景FPGA/CPDL是20世纪90年代发展起来的大规模可编程逻辑器件,随着EDA技术和微电子技术的进步,FPGA的时钟延迟可达到ns级,结合其并行工作方式,在超高速、实时测控方面有非常广阔的应用前景;并且FPGA具有高集成度、高可靠性,几乎可以将整个设计系统下载于同一芯片中,实现所谓片上系统,从而大大缩小其体积,因此以FPAG/CLPD为代表的可编程逻辑器件受到了世界范围内广大电子设计工程师的普遍欢迎,应用日益广泛。在国外,FGPA的技术发展与应用己达到相当高的程度;在国内,FPAG技术发展十分迅速,然而与国外相比还存在较大的差距。随着FPGA的大量应用,作为下位机,经

2、常要处理它和上位机PC之间的通信问题。当上位机PC通过串口输出数据时,下位机以串行方式接收后再以并行的方式输出数据时,需要建立一个模块把输入的数据存储在指定位置并且转化为并行输出。1.2 研究内容本课题要求实现FPGA与PC的串行通信,上位机PC通过串口发送数据,在控制板上实现对串口传输过来的数据,存储到FPGA里面指定的存储地址,并且按照要求以一定的顺序读出这些数据,输出给后续电路。具体如下:1.熟悉串行通信原理及应用;2.通过Verilog或者 VHDL编程构建一个模块,能够把PC输入的串行数据存储到指定位置,并转化为并行输出;3.在此基础上,在FPGA中构建一较简单的数据处理模块,对串行

3、通信功能进行验证。1.3研究意义实现FPGA与P C的串行通信在实际中,特别是在FPGA的调试中有着很重要的应用。调试过程一般是先进行软件编程仿真,然后将程序下载到芯片中验证设计的正确性,目前还没有更好的工具可以在下载后实时地对FPGA的工作情况和数据进行分析。通过串行通信,可以向FPGA发送控制命令让其执行相应的操作,同时把需要的数据通过串口发到P C上进行相应的数据处理和分析,以此来判断FPGA是否按设计要求工作。这样给FPGA的调试带来了很大方便,在不需要DSP等其他额外的硬件条件下,只通过串口就可以完成对FPGA的调试。2 数据通信原理2.1数据通信概述随着人类社会的不断进步、经济的迅

4、猛发展以及计算机的广泛应用,人们对信息的需求越来越大,数据通信得到长足发展。通信的目的是双方信息的互知,是信息的远距离传送。随着社会的进步。传统的电话、电报通信方式已远远不能满足大信息量的需要。以数据作为信息载体的通信手段已成为人们的迫切要求。但“数据”还没有统一严格的定义,一般可以这样认为:数据是预先约定的具有某种含义的数字、字母或符号的组合。计算机出现以后,为了实现远距离的资源共享,很快计算机就与通信技术相结合,产生了数据通信。所以说数据通信是为了实现计算机与计算机或终端与计算机之间信息交互而产生的一种通信技术,是计算机与通信相结合的产物。综上所述,可对数据通信作如下定义:依照通信协议,利

5、用数据传输技术在两个功能单元之间传递数据信息。它可实现计算机与计算机、计算机与终端或终端与终端之间的数据信息传递。2.2数据传输方式数据传输方式指的是通过某种方式建立一个数据传输通道将数据信号在其中传输,它是数据通信的基础。数据的传输方式分为并行传输和串行传输,在串行传输中又分为异步传输和同步传输。按照电路的传输能力,可以分为单工、半双工、全双工传输。2.2.1 并行传输与串行传输并行传输指的是数据以成组的方式,在多条并行信道上同时进行传输。常用的是将构成一个字符的几位二进制码同时分别在几个并行的信道上传输。另外加一条控制信号即“选通”脉冲,它在数据信号发出之后传送,用以通知接收设备所有的位己

6、经发送完毕,可以对各条信道上的信号进行采样了。收、发双方不存在字符同步的问题,不需要额外的措施来实现收发双方的字符同步,这是并行传输的主要优点。但是并行传输必须有多条并行信道,成本比较高,不适宜远距离传输,因此一般较少使用。串行传输指的是组成字符的若干位二进制码排列成数据流以串行的方式在一条信道上传输。通常传输顺序为由低位到高位,传完这个字符再传下一个字符。因此收、发双方必须保持字符同步,以使接收方能够从接收的数据比特流中正确区分出与发送方相同的一个一个的字符。这是串行传输必须解决的问题。串行传输只需要一条传输信道,易于实现,是目前主要采用的一种传输方式。2.2.2 异步传输与同步传输在串行传

7、输中,如何解决字符的同步问题,目前主要存在两种方式:即异步传输和同步传输。异步传输方式的优点是实现字符同步比较简单,收发双方的时钟信号不需要严格同步。缺点是对每个字符都需加入起始位和终止位,因而传输效率低。同步传输是以固定的时钟节拍来发送数据信号的,因此在一个串行数据流中,各信号码元之间的相对位置是固定的(即同步)。接收方为了从接收到的数据流中正确地区分一个个信号码元,必须建立准确的时钟信号。与异步传输方式相比,由于它发送每一字符时不需要单独加起始位和终止位,故具有较高的传输效率,但实现起来比较复杂。有关异步传输和同步传输的数据格式将在2.3中介绍。2.2.3 单工、半双工、全双工传输数据传输

8、是有方向性的,根据数据电路的传输能力,可以有三种不同的传输方式或通信方式。(1)单工传输:传输系统的两端数据只能沿单一方向发送和接收,这种方式传输系统的一端固定为发送端,另一端固定为接收端。反向信道的速率一般较低,为5-75bi/ts。实际应用中可以使用反向信道,也可以不用。气象数据的收集、计算机与监视器及硬盘与计算机的数据传输就是单工传输的例子。(2)半双工传输:系统两端可以在两个方向上进行数据传输,但两个方向的传输不能同时进行,当其中一端发送时,另一端只能接收,反之亦然。无论哪一方开始传输,都使用信道的整个带宽。对讲机和民用无线电都是半双工传输。(3)全双工传输:系统两端可以在两个方向上同

9、时进行数据传输,即两端都可同时发送和接收数据。 综上所述,异步串行全双工的数据传输方式是较为容易实现的方式,应用较为广泛。2.3串行通信协议数据通信是在各种类型的用户终端和计算机之间以及同一型号的计算机之间进行的。它不同于电话通信方式,其通信控制也复杂得多,因此必须有一系列行之有效的、共同遵守的通信协议。所谓通信协议是指通信双方的一种约定,约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于国际标准化组织ISO(International Standards Organizati

10、on)的开放系统互连OSI(Open System Interconnection)七层参考模型中的数据链路层口。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)间按位串行传输的接口信息,合理安排了

11、接口的电气信号和机械要求。目前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发送电平与接收电平的差

12、仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约30米,最高速率为20kb/s。所以RS-232适合本地设备之间的通信。(2)RS-422串行接口RS-422-B全名为“平衡电压数字接口电路的电气特性” (Electrical Characteristics of Balanced Voltage Digital Interface Circuits),它是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,422为标识号,B表示修改次数。RS-422由RS-23

13、2发展而来,它是一种单机发送、多机接收的单向、平衡传输规范。为改进RS-232通信距离短、速度低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mbit/s,并允许在一条平衡总线上连接最多10个接收器。RS-422采用平衡驱动,差分接收电路,即在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号变成CMOS/TTL电平。从根本上取消了信号地接法,大大减少了地电平所带来的共模干扰。平衡驱动器相当于两个单端驱动器,其输入信号相同,两个输出信号互为反相信号。外部输入的干扰信号是以共模方式出现的,两根传输线上的共模干扰信号相同,因接收器是差分输入,共模信号可以

14、相互抵消,从而大大提高了抗共模干扰的能力,并能在较长距离内明显提高传输速率。RS-422的数据信号采用差分传输方式,也称作平衡传输。它使用一对双绞线,将其中一线定义为A,另一线定义为B。通常情况下,发送驱动器之间的差分电压正电平在+2V - +6V,是一个逻辑状态,负电平在-2V - 6V之间,是另一个逻辑状态。另有一个信号地C。在RS一485中还有一“使能”端,“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL

15、电平兼容,可方便与TTL电路连接。接收器作与发送端相对的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在接收端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。定义A端B端与地之间电压的平均值为共模电压,RS-422接收器可以承受-7V,+7V的共模电压。接收器符号见图2.1。ABDOUT图2.1 平衡差分输入线接收器由于接收器采用高输入阻抗和发送驱动器比RS-232更强的驱动能力,故RS-422允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Slave),从设备之间不能通信,所以RS-422支持点

16、对多的双向通信。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON汉OFF握手)或硬件方式(一对单独的双绞线)实现。RS-422的最大传输距离为4000英尺(约1200米),最大传输速率为10Mb/s。其平衡双绞线的长度与传输速率成反比在100kb/s速率以下刁一可能达到最大传输距离。(3)RS-485串行接口为扩展应用范围,EIA在RS-422的基础上制定了RS-485标准,增加了多点、双向通信能力,通常在要求通信距离为几十米至上千米时,广泛采用RS-485收发器。RS-485许多电气规定与RS-422相仿。如都采用平

17、衡传输方式、都需要在传输线上接终端电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS一422有改进,无论四线还是二线连接方式总线上可连接多达32个设备,SIPEX公司新推出的SP485R最多可支持400个节点。RS-485与RS-422的共模输出电压是不同的。RS-485共模输出电压在-7V至+l2V之间,RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12k;RS-422是4k;RS-485满足所有RS-422的规范,所以RS-48

18、5的驱动器可以用在RS-422网络中应用。但RS-422的驱动器并不完全适用于RS-485网络。为方便起见将上述几种主流通信接口的电气特性比较列表如表2.1:表2.1 RS-232RS-422RS-485电气特性比较规定RS-232RS-422RS-485工作方式单端差分差分节点数1收1发10收1发32收1发最大传输速率20Kbs10Mbs10Mbs最大驱动电压+-25V-0.25V-+6V-7V-+12V接收器输入电压范围+-15V-10V-+10V-7V-+12V接收器输入门限+-3V+-200mV+-200mV接收器输入电阻3K-7K4K(最小)12K驱动器共模电压+-3V-1V-+3V

19、接收器共模电压+-7V-7V-+12VRS-232串行接口属于个人计算机(PC)及电信应用领域中最为成功的串行数据标准;而RS-422和RS-485串行接口则是工业应用领域中最为成功的串行数据标准。由于可减少布线成本并实现较长的传输距离,RS-422和RS-485串行接口被广泛应用于汽车电子设备、销售点终端(POs)、工业控制、仪器仪表、局域网、蜂窝基站及电信领域,较高的输入电阻允许多个节点连至总线上。由于该类电路的优异性能,国外市场上目前己经出现了种类繁多的同类电路。几乎国际上几家大的集成电路开发公司都有相关产品,产品型号不胜枚举。但大多为双极工艺制造,采用CMOS工艺制作的产品还不多。(4

20、)LVDS在被称为信息时代的今天,为适应信息化的高速发展,高速处理器、多媒体、虚拟现实以及网络技术对信号的带宽要求越来越大,多信道应用日益普及,所需传送的数据量越来越大,速度越来越快,l0Mbps的速率已然不能满足现代计算机之间高速互联的要求。因此采用新的技术解决I/O接口问题成为必然趋势,LVDS这种高速低功耗接口标准为解决这一瓶颈问题提供了可能。LVDS接口又称RS-644总线接口,是20世纪90年代才出现的一种数据传输和接口技术。LVDS的全称为Low Voltage Differential Signal,即低电压差分信号,这种技术的核心是采用极低的电压摆幅高速差动传输数据,可以实现点

21、对点或一点对多点的连接,具有低功耗、低误码率、低串扰和低辐射等特点。LVDS在对信号完整性、低抖动及共模特性要求较高的系统中得到了越来越广泛的应用。目前,流行的LVDS技术规范有两个标准:一个是TI/EIA的ANSI/TIA/EIA-644标准,另一个是IEEEI596.3标准。这两个标准注重于对LVDS接口的电特性、互连与线路端接等方面的规范,对于生产工艺、传输介质和供电电压等则没有明确规定。LVDS可采用CMOS、GaAs或其他技术实现,其供电电压可以从+5V到+3.3V,甚至更低;其传输介质可以是铜质的PCB连线,也可以是平衡电缆。标准推荐的最高数据传输速率是655Mbps,而理论上,在

22、一个无衰耗的传输线上,LVDS的最高传输速率可达1.923Gbps。LVDS技术之所以能够解决目前物理层接口的瓶颈,正是由于其在速度、噪声、EMI、功耗、成本等方面的优点:高速传输能力:LVDS技术的恒流源模式低摆幅输出意味着LVDS能高速驱动,例如:对于点到点的连接,传输速率可达800MbPs;对于多点互连FR4背板,十块卡作为负载插入总线,传输速率可达400Mbps。低噪声:LVDS产生的电磁干扰低。这是因为低电压摆幅、低边沿速率、奇模式差分信号以及恒流驱动器的Iss尖峰只产生很低的辐射。在传输线上流过大小相等、极性相反的电流,电流在该线对内返回,使面积很小的电流回路产生最低的电磁干扰。当

23、差分传输线紧藕合时,串入的信号是作为共模电压出现在接收器输入的共模噪声中,差分接收器只响应正负输入之差。因此当噪声同时出现在2个输入中时,差分信号的幅度并不受影响。共模噪声抑制也同样适用于其它噪声源,比如电源波动、衬底噪声和接地回跳等。低功耗:LVDS器件是用CMOS工艺实现的,这就提供了低的静态功耗。同时LVDS使用恒定电流源驱动器,随着工作频率的增加,其电源电流仍然保持平坦,而CMOS和TTL技术的电源电流则随频率增加而呈指数上升。因此,恒定电流驱动模式大大减少了LVDS的功耗。从对负载功率的计算(3.5mA电流乘以100欧终端电阻上的350mV压降)可看到LVDS仅有1.2mW的功耗。作

24、为对比,TTL在负载电阻上有1V压降,负载电流为40mA,因而负载功耗为40mW。节省成本:LVDS器件采用经济的CMOS工艺制造,用低成本的电缆线和连接器件就可以达到很高的速率。由于功耗较低,电源,风扇等其他散热开销就大大降低。LVDS产生极低的噪声,噪声控制和EMI等问题迎刃而解。与并行连接相比,可以减少大量的电缆,连接器和面积费用。集成能力强:由于可在标准CMOS工艺中实现高速LVDS,因此用LVDS模拟电路集成复杂的数字功能是非常有利的。LVDS内集成的串行化器和解串行化器使它能在一个芯片上集成许多通道。较窄的链路大大减少了引脚数量和链路的总费用。差分信号能承受高电平的切换噪声,因而能

25、用大规模数字电路进行可靠的集成。恒定电流的输出模式使LVDS只产生很低的噪声,因此能实现完整的芯片接口系统。目前LVDS技术在传输距离上有其局限性,一般应用在20m以下。LVDS的显著优势使得其应用范围远远超过那些传统器件,标准LVDS产品可广泛应用于计算机、通讯、消费电子、显示等领域。LVDS拥有低噪声的特色,最适用于笔记掌上型计算机的液晶显示器。平板显示器链接需要将大量的显示数据从笔记本计算机传送到平板显示器。美国国家半导体公司(NSC)和日本几家笔记本电脑生产商合作定义了FPD-Link标准用于平板显示器的链接,并生产出使用LVDS方式传输的样片。此外,NSC公司还建立基于LVDS的低摆

26、幅差分信号标准RSDS,该标准将LVDS的性能特点应用到平板显示器的列驱动电路与TCON的芯片的连接上。它在功耗、噪声等方面有进一步改善,为LVDS在显示技术领域的应用提供了新的机遇。高速串行通信也是LVDS最引人注目的应用之一。为实现并行数据并串及串并转换功能,德州仪器公司(TI)日前宣布推出一系列新型通用多芯片组器件,该系列器件充分发挥了TI在数据传输技术方面的设计经验和优势。就低电压差分信号(LVDS)链路数据传输而言,新系列产品是业界用途最为广泛的数据并串、串并转换器解决方案。采用该解决方案,设计人员不仅能将电线或电路板走线的数量减少一半以上,而且可将数据传输距离提高10倍。与其它串并

27、转换器解决方案不同,MuxIt系列产品可高度适应各种总线宽度和速度,应用领域包括电信、打印/复印机、视频成像和消费类产业等。目前,LVDS技术日益受到中国电路设计工程师的重视,LVDS应用前景广阔,在国内的发展非常迅猛。例如银河巨型机的高速互连传输中就采用了LVDS技术。但是国内使用的基本上都是国外厂商提供的成品,几乎没有自主设计的LVDS核心电路和芯片。令人欣慰的是,国内现在己经有几家公司正在研发LVDS核心电路和芯片。2.3.2串行通信软件协议目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特两大类。2.3.2.1异步通信协议异步通信协议中常用的是起止式异步协议

28、,SCI软核中采用的就是这种协议。起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。其格式如图2-2所示。每一个字符的前面都有一位起始位(低电平,逻辑值0),后面是字符数据位,接着字符后面是一位校验位(也可以没有校验位),最后是一位、或一位半、或二位停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下降沿。1起.止起止0 |-一个字符-| |-一个字符-|图2-2起止式异步传输从图2-2中可以看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起始式

29、协议。传送时,数据的低位在前,高位在后。起始位实际上是作为联络信号附加进来的,当它变为低电平时,告诉收方传送开始。它的到来,表示下面是数据位,要准备接收。而停止位标志一个字符的结束,它的出现,表示一个字符传送完毕。这样就为通信双方提供了何时开始收发,何时结束的标志。传送开始前,发收双方把所采用的起止式格式(包括字符的数据位长度,停止位位数,有无校验位以及是奇校验还是偶校验等)和数据传输速率作统一规定。传送开始后,接收设备不断地检测传输线,看是否有起始位到来。当收到一系列的“1”(停止位或空闲位)之后,检测到一个下降沿,说明起始位出现,起始位经确认后,就开始接收所规定的数据位和奇偶校验位以及停止

30、位。经过处理将停止位去掉,把数据位拼装成一个并行字节,并且经校验后,无奇偶错才算正确的接收一个字符。一个字符接收完毕,接收设备有继续测试传输线,监视“0”电平的到来和下一个字符的开始,直到全部数据传送完毕。由上述工作过程可看到,异步通信是按字符传输的,每传输一个字符,就用起始位来通知收方,以此来重新核对收发双方同步。若接收设备和发送设备两者的时钟频率略有偏差,这也不会因偏差的累积而导致错位,加之字符之间的空闲位也为这种偏差提供一种缓冲,所以异步串行通信的可靠性高。但由于要在每个字符的前后加上起始位和停止位这样一些附加位,使得传输效率变低了。因此,起止协议一般用在数据速率较慢的场合。在高速传送时

31、,一般要采用同步协议。2.3.2.2 同步通信协议(1)面向字符的同步协议面向字符的同步协议的典型代表是IBM公司的二进制同步通信协议。它的特点是一次传送由若干个字符组成的数据块,而不是只传送一个字符,并规定了10个字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息,它们也叫做通信控制字。由于被传送的数据块是由字符组成,故被称作面向字符的协议。如图2-3所示,数据块的前后都加了几个特定字符。SYN是同步字符(Synchronous Character),每一帧开始处都有SYN,加一个SYN的称单同步,加两个SYN的称双同步。设置同步字符是起联络作用,传送数据时,接收端不断检测,一旦出

32、现同步字符,就知道是一帧开始了。接着的SOH是序始字符(Start Of Header),它表示标题的开始。标题中包括源地址、目的地址和路由指示等信息。STX是文始字符(Start Of Text),它标志着传送的正文(数据块)开始。数据块就是被传送的正文内容,由多个字符组成。数据块后面是组终字符ETB(End Of Transmission Block)或文终字符ETX(End Of Text),其中ETB用在正文很长、需要分成若干个分数据块、分别在不同帧中发送的场合,这时在每个分数据块后面用文终字符ETX。一帧的最后是校验码,它对从SOH开始到ETX或ETB字段进行校验,校验方式可以是奇偶

33、校验或CRC校验。SYN字符SYN字符SOH.标题STX正文ETX或ETB校验码图2-3 面向字符的同步协议的数据格式(2)面向比特的同步协议面向比特的协议中最具有代表性的是BIM的同步数据链路控制规程SDLC(Synchronous Data Link Control),国际标准化组织ISO(International Standard Organization)的高级数据链路控制规程HDLC(High Level Data Link Control),美国国家标准协会(American National Standard Constitute)的先进数据通信规程ADCCP(Advanced

34、 Data Communication Control Procedure)。这些协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,故称“面向比特”的协议。这中协议的一般帧格式如图2-4所示: |-一帧-|0111 1110ACIFC0111 1110 开始标志 地址场 控制场 数据场 16位CRC 结束标志图2-4 SDLC/HDLC帧格式由图2-4可见,SDLC/HDLC的一帧信息包括以下几个场(Filed),所有场都是从有效位开始传送。(1)SDLC/HDLC标志字符:SDLC/HDLC协议规定,所有信息传输必须以一个标志字符开始

35、,且以同一个字符结束。这个标志字符是01111110,称标志场(F)。从开始标志到结束标志之间构成一个完整的信息单位,称为一帧 (Frame)。所有的信息是以帧的形式传输的,而标志字符提供了每一帧的边界。接收端可以通过搜索“01111110”来探知帧的开头和结束,以此建立帧同步。(2)地址场和控制场:在标志场之后,可以有一个地址场A(Address)和一个控制场C(Control)。地址场用来规定与之通信的次站的地址。控制场可规定若干个命令。SDLC规定A场和C场的宽度为8位或16位。接收方必须检查每个地址字节的第一位,如果为“0”,则后面跟着另一个地址字节;若为“1”,则该字节就是最后一个地

36、址字节。同理,如果控制场第一个字节的第一位为为“0”,则还有第二个控制场字节,否则就只有一个字节。(3)信息场:跟在控制场之后的是信息场(Information)。I场包含有要传送的数据,并不是每一帧都必须有信息场。即数据场可以为O,当它为O时,则这一帧主要是控制命令。(4)帧校验信息:紧跟在信息场之后的是两字节的帧校验,帧校验场称为Fe(Frame Check)场或称为帧校验序列FCS(Frame Cheek Sequence)。SDLC/HDLC均采用16位循环冗余校验码CRC(Cyclic Redundancy Code)。除了标志场和自动插入的“0”以外,所有的信息都参加CRC计算。第

37、三章 FPGA及基于FPGA的系统设计FPGA是近几年出现的新型可编程逻辑器件,它不仅具有很高的速度和可靠性,而且具有用户重复定义的逻辑功能,即具有可编程的特点。它的出现不仅使数字电路系统的设计非常灵活,而且大大缩短了系统研制周期,缩小了数字电路系统的体积和所用芯片的种类。3.1 FPGA的发展当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。

38、系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可删除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“

39、或”门阵列组成,而任意一个组合逻辑都可以用“与-或”表达式来描述,所以, PLD能以乘积、和的形式完成大量的组合逻辑功能。这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。 PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。 PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。 PLA器件既有现场可编程的,也有掩膜可编程的。 20世纪80年代

40、中期。 Altera和Xilinx分别推出了类似于PAL结构的扩展型 CPLD(Complex Programmab1e Logic Dvice)和与标准门阵列类似的FPGA,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。 这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、

41、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。3.2 FPGA产品类型FPGA与 CPLD都是可编程逻辑器件,它们是在PAL、GAL等逻辑器件的基础之上发展起来的。同以往的PAL、GAL等相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片 21,22,23,24,25。表3-1:各大FPGA产品排名公司销售额(亿美金)市场占有率1Altera5.9630.12Xilinx5.7429.03Vantis2.2011.14Lattice2.1811.05Actel1.397.06Luccent0.854.37Cypress0.442.28Atmel

42、0.422.19Philips0.281.410Quicklogic0.241.2经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,它们开发较早,占用了较大的PLD市场。通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。可以讲Altera和Xilinx共同决定了PLD技术的发展方向。当然还有许多其它类型器件,如:Lattice,Vantis,Actel,Quicklogic,Lucen

43、t等。3.3 ALTERA的FPGA产品Altera公司生产的FLEX 10K系列的FPGA,具有规模覆盖范围广、布线资源丰富、时间可预测性好的优点,在数字通信系统设计中得到了广泛的应用。由于在信道编码中,没有过多存储器的要求,它只是需要很多的D触发器和一些常用的门电路,而FLEX 10K芯片有一定的片内EAB资源,另外实现信道编码的时序控制逻辑不太复杂,大概需要2万门左右的资源就够了,再加上系统其它功能块也不过几万门。考虑到方案的性价比以及将来的功能的增加,本方案的FPGA选用Cyclone芯片,实现了系统的单片设计,从而大大减小电路的复杂度和体积。此外Altera公司的Cyclone系列的

44、FPGA在通信行业具有广泛的应用,这是一款低成本的FPGA产品。3.4 QuartusII介绍MaxPlusII是ALTERA公司较早的一款软件,它的界面非常的简单,是初学者比较容易接受的一款软件,但是Altera公司已经停止了对其的升级,所以MaxPlusII所支持的器件比较少,而且对于一些大型项目开发就不太适用了。QuartusII是ALTERA公司的新一代开发软件,它拥有两种界面,一种是QuartusII的界面,另一种是用有QuartusII全部功能的MaxPlusII界面,从而使原有的MaxplusII的用户更快的适应新的开发环境。目前 QuartusII 最高版本好似QuartusI

45、I7.2。相对于MaxPlusII,QuartusII支持更多的器件,而且也支持Altera最新的一些器件如Straix、Straix GX系列。在本课题中,我们采用QuartusII开发软件,在功能上比MAXplusII更加强大。 3.5 硬件描述语言Verilog HDL所谓硬件描述语言,就是可以描述硬件电路的功能,信号连接关系及定时关系的语言。其中Verilog HDL是一种应用广泛的硬件描述语言,可用于算法级、门级到开关级的多种抽象层次的数字系统设计。从语法结构来讲,Verilog HDL和C语言有许多相似之处,它能够形式化地表示电路的结构和行为,可以借用高级语言的结构和语句,能够在多

46、个层次上对所设计的系统加以描述。Verilog HDL最大的特点就是易学易用,由于Verilog HDL的各种优越性,使它广泛流行,尤其在ASIC领域,更是处于主流地位。在美国、日本等国家,Verilog HDL语言一直是使用最为广泛的硬件描述语言。那么为什么要使用Verilog HDL呢?首先,考虑到Verilog HDL与C语言有着密切的联系,而C语言很灵活,查错功能强,可以通过PLI(编程语言接口)编写自己的系统任务直接与硬件仿真器(如Verilog-XL)结合使用。C语言是目前世界上应用最为广泛的一种编程语言,因而C程序的设计环境比Verilog HDL的完整。此外,C语言可应用于许多

47、领域,有可靠的编译环境,语法完备,缺陷较少。 比较起来, Verilog 语言只是针对硬件描述的,在别处使用(如用于算法表达等)并不方便。而且Verilog的仿真、综合、查错工具等大部分软件都是商业软件,与C语言相比缺乏长期大量的使用,可靠性较差,亦有很多缺陷。所以,只有在C语言的配合使用下,Verilog才能更好地发挥作用。 C语言与Verilog语言相辅相成,互相配合使用。这就是既要利用C 语言的完整性,又要结合Verilog对硬件描述的精确性,来更快更好地设计出符合性能要求的硬件电路系统。利用C语言完善的查错和编译环境,设计者可以先设计出一个功能正确的设计单元,以此作为设计比较的标准。然

48、后,把C程序一段一段地改写成用并型结构(类似于Verilog)描述的C程序,此时还是在C的环境里,使用的依然是C语言。如果运行结果都正确,就将C语言关键字用Verilog相应的关键字替换,进入Verilog的环境。将测试输入同时加到C与Verilog两个单元,将其输出做比较。这样很容易发现问题的所在,然后更正,再做测试,直至正确无误。剩下的工作就交给后面的设计工程师继续做。 四、整体方案的研究及实现4.1 基于FPGA的串口通信的研究利用FPGA来实现串口通信,实际上就是利用FPGA来编写串口通信的协议。在前面几章,我们基本了解了串口通信的基本协议,下面就其实现做具体介绍。PC机FPGA板图4

49、-1 系统结构4.1.1 波特率的计算电子通信领域,波特率即调制速率,指的是信号被调制以后在单位时间内的波特数,即单位时间内载波参数变化的次数。它是对信号传输速率的一种度量,通常以“波特每秒”(Bps)为单位。 波特率有时候会同比特率混淆,实际上后者是对信息传输速率(传信率)的度量。波特率可以被理解为单位时间内传输码元符号的个数(传符号率),通过不同的调制方法可以在一个码元上负载多个比特信息。调制解调器的通讯速度。波特率是指线路状态更改的次数。只有每个信号符合所传输数据的一位时,才等于每秒位数。 为了在彼此之间通讯,调制解调器必须使用相同的波特率进行操作。如果将调制解调器的波特率设置为高于其他

50、的调制解调器的波特率,则较快的调制解调器通常要改变其波特率以匹配速度较慢的调制解调器。在FPGA中,我们要讲时钟频率转化为对应的波特率频率,其具体的代码如下: parameter div_par=16'h104; /产生波特率为9600的分频值/产生9600波特率的时钟信号always(posedge clk ) /40_0000_00/(9600*2)=2083.333333begin if(!rst) /-又由于有8个时隙div_reg<=0; else begin /-所以分频率系数为:if(div_reg=div_par-1) div_reg<=0; /-2083.

51、333333/8=260.4260else div_reg<=div_reg+1; /-转化为16进制为:104 endend/产生9600波特率的时钟信号always(posedge clk)beginif(!rst)clkbaud8x<=0;else if(div_reg=div_par-1)clkbaud8x<=clkbaud8x;end由计算公式,我们将时钟频率40MHZ除以波特率9600的两倍,可以得到一个分频系数2083.3333,又由于我们的串口通信的8位通信,应此要将获得的分频值再除以8,我们得到260,转化为16进制16'h104,这个就是我们得到的

52、分频值。4.1.2 按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号小型如下图。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,如下图。抖动时间的长短由按键的机械特性决定,一般为5ms10ms。这是一个很重要的时间参数,在很多场合都要用到。图4-2 按键毛刺按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。按

53、键的抖动,可用硬件或软件两种方法。 硬件消抖:在键数较少时可用硬件方法消除键抖动。下图所示的RS触发器为常用的硬件去抖。图中两个“与非”门构成一个RS触发器。当按键未按下时,输出为1;当键按下时,输出为0。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。软件消抖:如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,产生5ms10ms的延时,让前沿

54、抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms10ms的延时,待后沿抖动消失后才能转入该键的处理程序。在这里,我们利用FPGA来实现软件来实现按键的消抖功能,具体的过程如下所示:always(posedge clk )beginif(!rst) begin cnt_delay<=0;start_delaycnt<=0; endelse if(start_delaycnt) beginif(cnt_delay!=20'd800000) begincnt_delay<=cnt_delay+1; endelse

55、begincnt_delay<=0;start_delaycnt<=0; end endelse beginif(!key_input&&cnt_delay=0)start_delaycnt<=1; endend/消除按牛抖动always(posedge clk)beginif(!rst) key_entry1<=0;else beginif(key_entry2)key_entry1<=0;else if(cnt_delay=20'd800000) beginif(!key_input)key_entry1<=1; end ende

56、nd通过这个过程,我们可以将按键的毛刺消除掉,从而实现系统的稳定。4.1.3 PC向FPGA进行通信在这里,我们将介绍由PC机向FPGA开发板发送数据的实现,其主要核心代码如下:if(state_rec>=1&&state_rec<=8) begin if(clkbaud_rec) begin rxd_buf7<=rxd_reg2;rxd_buf6:0<=rxd_buf7:1;state_rec<=state_rec+1; end end这里我们采用的是利用状态机来实现串口通信,当发送数据位的时候,状态在1到8的时候,利用移位的方法,将数据一位一位的发送出去,将状态作为计数器一个一个的相加,这样,对应的发送一位数据,将其中的状态累加,即进入下一个状态,从而实现数据位的发送。UART协议是实现设备之间低速数据通信的标准协议。因发送时不需同时发送时钟,故此协议为异步,UART链接典型为38400,9600波特。UART字符格式为1个起始位,58个数据位,1个地址位或奇偶位(可选),1个停止位。 由于接收器、发送器异步工作,无需联接接收和发送时钟。接收器采取对输入数据流高度采

温馨提示

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

评论

0/150

提交评论