毕业论文--基于fpga的串口通信电路设计内容摘要:

力和直观易用的接口,越来越受到数字系统设计者的欢迎。 Quartus II 软件支持 APEX 系列、 Cyclone 系列、 Stratix 系列和 Excalibur 系列等新型系列器件的开发。 含有工作组计算、集成逻辑分析仪、 EDA 工具集成、多过 程支持、增强重编译和 IP 集成等特性。 支持百万门级的设计,支持高速 I/O设计 , 具有更强的设计能力和更快的编译速度。 Quartus II 开发软件为可编程片上系统( SOPC)设计提供了一个完整的设计环境。 无论是使用个人电脑、 NUIX或 Linux 工作站, Quartus II 都提供了方便设计、快速编译处理以及编程功能。 Quartus II 输入的设计过程可分为创建工程、输入文件、项目编译、项目校验和编程下载等几个步骤。 FPGA 开发板介绍 本设计中开发板采用 Altera 公司 Cyclone II 系列 EP2C5T144C8 或者EP2C8T144C8 芯片而设计的。 帮助用户降低学习成本和加快用户快速进入可编程逻辑器件的设计开发领域。 提供一个帮助用户快速学习可编程逻辑器件的硬件平台。 开发板上使用 JTAG 接口对芯片进行编程,也可以使用 AS 接口下载。 配送的 ByteBlaster II 下载线可以下载 Altera 公司的所有 FPGA/CPLD 芯片。 开发板上所有的 I/O 口都通过排针引了出来,板上都有标示。 引出来的 I/O用户可以任意配置分配管脚,方便用户开发自己的产品,最大限度为用户节约学习成本。 开发板硬件配置介绍: ( 1) CycloneII U1 EP2C5T144C8 或者 EP2C8T144C8 ( 2) IIC U5 AT24C04 或者 AT24C02 或者 AT24C01 ( 3) AS U6 EPCS1 或者 EPCS4 基于 FPGA的串口通讯电路设计 9 ( 4) UART 通用的 MAX232 转换或者 USB— 串口小板 ( 5) PS/2 A; PS/2 B ( 6) 8 个动态数码管 ( 7) 8 个 LED 灯 ( 8) BELL ( 9) LCD12864/LCD1602 接口 ( 10) 4 个独立按键 ( 11) 一个 FPGA 重配置按键 ( 12) JTAG AS 下载模式 ( 13) 上电模式:外接 5V DC 电源 ( 14) 50M 有源晶体 ( 15) 8 路数据输入,可以固定的输入 1(高电平)或者 0(低电平) 本程序用到的 LED 灯管脚分配原理图如 12 所示, I/O 口分配如下: D30 : PIN6 D31 : PIN6 D32 : PIN70、 D33 : PIN7 D34 : PIN7 D35 : PIN7D36 : PIN7 D37 : PIN60,当 I/O 口为低电平时 LED 点亮。 图 12 8个发光二极管 I/O口分配 基于 FPGA的串口通讯电路设计 10 本程序用到的串口通信,串口管脚分配原理图如 13 所示, I/O 口分配如下:TX : PIN RX : PIN8。 图 13 串口接口的 I/O口分配 开发板上没有用的 I/O 都接了出来,具体请 看学习板上的标示,板上更清楚。 没有用的 I/O 口如图 13 所示。 本设计中输出的节后也用到了其中几个 I/O 接口,后面分配的时候可以看到本设计具体分配的管脚。 基于 FPGA的串口通讯电路设计 11 图 14 没有用的 I/O口分配 本章小结 首先本章主要对 Verilog HDL 语言进行简要概述,介绍了 Verilog HDL 语言的发展历史和 Verilog HDL 硬件描述语言具备的能力。 其次还对 Quartus II 软件进行了简要概述, Quartus II 作为一种可编程逻辑的设计环境,由于其强大的设计能力 支持 APEX 系列、 Cyclone 系列、 Stratix 系列和 Excalibur 系列等新型系列器件的开发。 含有工作组计算、集成逻辑分析仪、EDA 工具集成、多过程支持、增强重编译和 IP 集成等特性。 支持百万门级的设计,支持高速 I/O 设计 , 具有更强的设计能力和更快的编译速度。 Quartus II 输入的设计过程可分为创建工程、输入文件、项目编译、项目校验和编程下载等几个步骤。 最后本章还对 FPGA 进行了简要概述,并且对本设计将用到的 FPGA 开发板进行了介绍,以及本设计中将要用到的 I/O 口都给出了图示。 后面的章节将用到本章介绍的 Verilog HDL语言和 Quartus II软件以及 FPGA开发板,还将对软件的使用和开发过程进行详细介绍。 基于 FPGA的串口通讯电路设计 12 第 2 章 串口通信协议简介 RS232[8]接口(又称 EIA RS232C)是目前最常用的一种串行通讯接口。 它是在 1970 年由美国电子工业协会( EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。 本章主要介绍 RS232 接口的原理介绍。 串口通信接口 串口即串行数据接口,是一种常用的数据接口。 在 PC 一般都有两个串行口( COM1 和 COM2),其形状如图 11 所示,是典型的 9 针 D 形 接口,也称为DB9。 由于串口多采用 RS232C 传输协议并长达数十年,因此也常被称为 RS232接口。 图 21 串口的物理形状示意图 串口主要用于网管控制或主业务数据的传输,支持数据的双向传输,速率9600115200bps,即可以完成和 PC 的通信,也可以完成与带有标准串口的外设相连,其典型的连接方式如图 12 所示。 其中串口接口分为带插孔和带插针的两种,其中插针端称为 DCE,插孔端称为 DTE。 图 22 串口连接的示意图 RS232 通信协议 RS232 全名是“数据终端设备( DTE)和数据通讯设备( DCE)之间串行基于 FPGA的串口通讯电路设计 13 二进制数据交换接口技术标准”,该标准规定采用 25 个脚的串口连接器( DB25),不仅对连接器的每个引脚的信号内容加以规定,还规定了各种信号的电平。 标准的 RS232C 协议具有 25 根信号线,其中有 4 根为数据线、 11 根控制线、 3 根定时线和 7 根备用线。 通常情况下,使用其中的 9 根线就可以实现 RS232串口通信。 通常 DB25 也可以像 DB9 那样使用,但是它们的针号和针孔之间的连接关系是不一样的,下面给出常用的 25 针 DB25 和 DB9 的对照表以及管脚说明 [9],如表 11 所示。 表 21 RS232C接口引脚定义 DB25 DB9 信号源 信号名 信号功能描述 2 3 DCE TXD 发送数据,终端通过此将信号发给调制器 3 2 DTE RXD 接收数据,终端通过此从调制器接收数据 4 7 DCE RTS 请求发送,当终端需要发送数据时,使能该信号,控制调制器进入发送状态 5 8 DTE CTS 允许发送,当调制器准备好接收数据时,使能该信号,通知终端开始发送数据 6 6 DTE DSR 数据就绪状态,当其状态有效时,表明调制器处于可用状态 7 5 GND GND 信号地,信号地是所有信号的参考电平 8 1 DTE DCD 载波检测,当信号有效时,表明调制器已经接通了通信链路,终端可以准备接收数据 20 4 DCE DTR 数据终端准备,当其信号有效时表明数据终端可以使用 22 9 DTE RI 响铃指示,当本地调制器收到交换台发送的振铃呼叫信号时,使能该信号,通知终端 最为简单且常用的 RS232C 连接方法就是三线连接法,即地、接收数据和发送数据三脚相连。 这是因为收、发数据是时分的,二者不会同时传输 [10]。 对于DB9 和 DB25,常用的 3 线连接 法的原则如表 12 所示。 表 22 DB DB25 常用的 3线连接法 DB9~DB9 DB25~DB25 DB9~DB25 2 3 3 2 2 2 3 2 2 3 3 3 5 5 7 7 5 7 基于 FPGA的串口通讯电路设计 14 串口通信时序分析 RS232C 的串行总线在空闲的时候保持为逻辑“ 1”状态,即串行连接线上的电平为 3~15V。 当需要传送一个字符时,首先会发送一个逻辑为“ 0”的起始位,表示开始发送数据;之后就逐个发送数据位、奇偶校验位和停止位(逻辑“ 1”),每一次传输 1 个字符( 8 个比特)。 由于任意两个 字符对应瞬间的时间间隔是可变的,因此也被称为异步格式 [11]。 典型的传输时序如图 13 所示。 图 23 RS232 协议的传输时序 在 RS232C 协议中,可以设置数据的传输速率。 除此之外,字符的位宽、奇偶校验位、停止位都可以被设置。 字符可以被设置成 5~8 比特,奇偶校验位可以被去除;停止位可以设置成 1 位、 2 位甚至 位。 每秒传输的比特数也被称为二进制波特率,即位周期的倒数,简称为比特率,用于衡量 RS232 的传输速率。 RS232C 有一系列波特 率标准: 110bps、 300bps、 600bps、 1200bps、 1800bps、2400 bps、 4800bps、 9600bps、 、 、 、 和 56kbps 等。 有两点注意的是:首先,在设置波特率时,必须同时通知通信双方;其次,波特率的计算包括了起始位、字符、校验位、停止位在内所有的比特,而不是仅针对字符 [12]。 发送数据过程:空闲状态,线路处于高电位;拉低线路一个数据位的时间 T,接着数据按低位到高位依次发送,数据发送完毕后,接着发送奇偶校验位和 停止位(停止位为高电位),一帧资料发送结束。 接收数据过程:空闲状态,线路处于高电位;当检测到线路的下降沿(线路电位由高电位变为低电位)时说明线路有数据传输,按照约定的波特率从低电位到高电位接收数据,数据发送完毕后,接着接收并比较奇偶校验位是否正确,如果正确则通知后续设备准备接收数据或存入缓存 [13]。 由于 UART 是异步传输,没有传输同步时钟。 为了能保证数据传输的正确性, UART 采用 16 倍数据波特率的时钟进行采样。 每个数据有 16 个时钟采样,LSB 字符 2 P SP st 起始位( start) 奇偶位( parity) 停止位( stop) st 字符间隔 MSB 基于 FPGA的串口通讯电路设计 15 取中间采样值,以保证采样不会滑码或误码。 一般 UART 一帧的数据位数为 8,这样即使每个数据有一个时钟的误差,接收端也能正确地采样到数据。 UART 的接收数据时序为 [14]:当检测到数据的下降沿是,表明线路上有数据进行传输,这时计数器 CNT 开始计数当计数器为 24=16+8 时,采样的值为第 0位数据;当计数器的值为 40 时,采样的值为第 1 位数据,依此类推,进行后面6 个数据的采样。 如果需要进行奇偶校验,则当计数器的值为 152 时,采样的值即为奇偶位;当计数器的值 168 时,采样的值为“ 1”表示停止位,一帧数据接收完成。 本设计将按上面的算法进行 Verilog HDL 语言编程与仿真。 本 章小结 本章主要介绍了 RS232 通信协议的基础知识,明确实现串口通信需要的端口和功能,为以下章节通过 Verilog HDL 硬件描述语言实现串口的通信。 目前,大部分处理器 都集成了 支持 RS232C 的 通用异步收 发器( Universal Asynchronous Receiver/Transmitter, UART。 本设计在后面提到的 UART 即串口通信控制器),辅助处理器和串行设备之间通信,设计人员只需要对其进行配置即可完成下列工作: ( 1) 完成处理器内部的并行数据到串行数据的转化以及外部串行数据到并行数据的转化。 ( 2) 完成输入数据的奇偶校验,以及在输出数据中插入奇偶校验比特。 ( 3) 完成数据传输和停止位的检测,并从中提取符号数据。 ( 4) 完成外部设备串口设备的管理和响应。 基于 FPGA的串口通讯电路设计 16 第 3 章 串口通信的 Verilog HDL 实现 本设计通过前面两张介绍的串口通信基本知识和 Verilog HDL 语言进行串口通信的实现,本设计实现的串口通信电路主要由波特率发生器、数据接收模块和数据发送模块这 3 个模块组成,强调功能划分明确,便于系统设计和调试。 设计功能说明 本实设计要求在 FPGA 开发板上实现波特率为 115200bps,停止位为 1 比特、1 比 特校验位的串口通信,并要求和 PC 机通过串口调试助手完成双向通信。 不仅要求将 PC通过键盘输入的数据显示在 PC机的串口调试助手的数据发送框中,还要求用 PC 发送数据的 ASCII 码来驱动 FPGA 开发板的 8 个 LED 灯。 开发板上接收到数据后将数据通过串口数据线发送回 PC 的串口调试助手上并显示在数据接收框中。 通过检测 LED 灯的亮灭来判断发送数据的 ASCII 码是否正确,并观察串口调试助手上接收到的数据与发送的数据是否一致。 波特率发生器。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。