基于fpga的串口通信
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA的串口通信设计
学号:
姓名:
班级:
指导教师:
电子与控制工程学院
一、串行通信系统
1.1概述
在计算机系统和微机网络的快速发展领域里串行通信在数据通信及控制系统中得到广泛的应用。UART Universal AsynchronousReceiver Transmitter
控制系统中广泛使用的一种全双工串行数
UART的全部功能。只需将其核心功能集成即可。波特率发生器、接收器和发送器是UART
利用Verilog-HDL语言对这三个功能模块进行描述并加以整合UART是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。串行外设用到RS232-C UART实现。如8250、8251、NS16450等芯片都是常见的UART
如FIFO有时我们不需要使用完整UART的功能和这些辅助功能。或者设计上用到了FPGA/CPLD器件那么我们就可以将所需要的UART功能集成到FPGA内部。使用VHDL或Veriolog -HDL将UART的核心功能集成从而使整个设计更加紧凑、稳定且可靠。本文应用EDA FPGA/CPLD器件设计与实现UART。
通信指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递从广义上指需要信息的双方或多方在不违背各自意愿的情况下无论采用何种方
不同的环境下有不同的解释在出现电波传递通信后通信(Communication)被单一解释为信息的传递是指由一地向另一地进行信息的传输与交换其目的是传输消息。然而通信是在人类实践过程中随着社会生产力的发展对传递消息的要求不断提升使得人类文明不断进步。在各种各样的通信方式中利用“电”来传递消息的通信方法称为电信(Telecommunication)
1.2串行通信简介
计算机与计算机,计算机与外部设备进行数据交换也称为通信,一般有两种方式并行通信和串行通信。信息的各位数据被同时传送的通信方法是并行通信并行通信依靠I/O接口来实现。并行通信中数据有多少位就需要多少条信号传输线。这种通信方式快,但由于传输线较多,所以成本较高,仅适合近距离通信通常传送距离小于30米。当距离大于30米时则多采用串行通信方式串行通信是指
外部设备和计算机间使用一根数据线另外需要地线可能还需要控制线进行数据传输的方式。数据在一根数据线上一位一位进行传输每一位数据都占据一个固定的时间长度。
与并行通信方式相比有以下优点:
1、传输距离长
2
信时钟频率比并行通信更容易提高。
3
4、通信成本低。
5
因此串行通信得到广泛的应用。
目前的串行通信常用UART实现数据的串/并转换或并/串转换。 UART(通用异步收发器)是一种串行通信协议,主要用于短距离,低速率,低成本的数据的计算机和外设之间的交流。是电脑硬件的一部分,具体实物表现为一块并行输入成为串行输出的模块化芯片。8250、8251、NS16450等芯片都是常见的UART器件。
UART主要功能实现通信中的数据串并转换,且能奇偶检验。将计算机内部传送过来的并行数据转换为串行数据流加入奇偶校验位后输出。或者将计算机外部来的串行数据奇偶校验后转换为字节,供计算机内部使用并行数据的器件使用。它的异步模式使芯片适应性强,对时钟精度要求低(成本低)。
随着FPGA的广泛应用,经常需要FPGA与其他数字系统进行串行通信,专用的UART集成电路如8250,8251等是比较复杂的,因为专用的UART集成电路既要考虑异步的收发功能,又要兼容RS232接口设计,在实际应用中,往往只需要用到UART的基本功能,使用专用芯片会造成资源浪费和成本提高。如果设计上用到FPGA /CPLD器件,可以将所需要的UART功能集成到FPGA内部,实现FPGA 与其他数字系统的直接通信,从而简化了整个系统电路,提高了可靠性、稳定性和灵活性。
二、 UART理论基础
2.1 接口技术简介
接口是CPU 与外界的连接部件,是CPU 与外界交换信息的中转站。
一个接口的基本功能是在系统总线和I/O 设备之间传输信号,提供缓冲作用,以满足接口两边的时序要求。如图1,
图1 接口功能
主要的计算机接口技术有两种:并行接口和串行接口。
串行通信是把要传输数据中的各个二进制码置于同一条传输线上,从低位到高位、逐位地、顺序地进行传送。所用传输线少,一个方向只需一条传输线,成本低。
串行通信分为两种类型:同步通信和异步通信。
串行异步是计算机通信最常用的数据信息传输方式,接收和发送双方不使用共同的参考时钟,以字符为单位进行传输,字符之间的传输间隔任意,而每个字符的前后都要用一些位数来作为分隔位。
2.2 UART 基本结构
UART 主要由UART 内核、信号检测器、移位寄存器、波特率发生器和计数器组成,如图2所示。 CPU 接口电
路I/O 设备
图2 UART 功能模块
从异步接收输入信号RXD 接收到的异步信号通过接收器完成串行/并行的转换,形成异步数据帧;发送器将CPU 发出的8位数据进行并行/串行转换,从TXD 发送出去。
2.3 UART 数据帧格式
基本的UART 通信只需要两条信号线(RXD,TXD )就可以完成数据的相互通信,接收与发送是全双工形式,其中TXD 是UART 发送端,RXD 是UART 接收端。UART 基本特点是:在信号线上有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。在发送器空闲时,数据线应保持在逻辑高电平状态。发送器是通过发送起始比特而开始一个字符传送,起始比特使数据线处于逻辑0状态,提示接收器数据传输即将开始。数据位一般为8位一个字节的数(也有6位7位的情况),低位(LSB )在前,高位(MSB )在后。校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。停止位在最后,用以标志UART 一个字符传送的结束,它对应于逻辑1状态,UART 数据帧格式如图3所示。
图3 UART 数据帧格式
一帧异步通信传输经历的步骤为:
无传输:发送器处于空闲状态,数据线保持“1”状态。 UART 内核后续数据处理模块信号检测器
移位寄存器计数器波特率发生器数据发
送缓冲
器控制信号握手信号接收数据
发送数据
控制信号
控制信号控制信号控
制
信
号发送数据指示信号波特率时钟接收数据接收数据接收数据
发送数据
RXD
TXD 起始位0 DO D1 D2 D3 D4 D5 D6 D7 奇偶位 停止位1
一个字符单位数据位
空号1空号1