串口通信程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 引言 (1)
2 应用软件介绍 (2)
2.1Quartus II软件介绍 (2)
2.2 Quartus II工作环境介绍 (2)
2.3ModelSim软件介绍 (3)
3 电路设计及仿真 (5)
3.1总体设计思路 (5)
3.2UART接收器的设计及仿真 (5)
3.3UART发送器的设计及仿真 (6)
3.4整体电路设计及仿真 (6)
4 总结 (8)
参考文献 (9)
附录 (10)
在计算机系统和微机网络的快速发展领域里,串行通信在数据通信及控制系统中得到广泛的应用。UART(Universal Asynchronous Receiver Transmitter通用异步收发器)是数据通信及控制系统中广泛使用的串行数据传输协议,允许在串行线路上进行全双工的通信。通过应用 EDA技术,基于 CPLD/FPGA器件设计与实现 UART的波特率产生器、UART发送器和接收器及其整合电路,目的是熟练运用 VHDL语言,掌握FPGA芯片的使用。波特率发生器、接收器和发送器是UART的三个核心功能模块,利用VHDL语言对这三个功能模块进行描述并加以整合,使整个设计更加紧凑、稳定且可靠,通过QuartusII仿真,使其结果完全符合UART协议的要求和预期的结果。
串行接口的数据传输方式是串行的,即数据是一位位的进行传输。串行接口的应用非常广泛,PC机上一般就至少有两个串行接口——COM1和COM2,虽然串行接口的传输方式导致其传输速度会比较慢,但是却具有较强的抗干扰能力,并能有较长的传输距离。在串行通信中,用“波特率”来描述数据的传输速率。所谓波特率,即每秒传送的二进制位数,其单位为bit/s(bits per second),它是衡量传输串行数据速度快慢的重要指标。有时候也用“位周期”来表示传输速率,位周期是波特率的倒数。国际上规定了一个标准波特率系列:110bit/s、300bit/s、600 bit/s、1200 bit/s、1800 bit/s、2400 bit/s、2400 bit/s、9600 bit/s、14.4k bit/s、19.2 kbit/s、28.8k bit/s等,如9600 bit/s,其意义是每秒传送9600位数据,包含字符位和其他必须的位。大多数串行接口电路的接收波特率和发送波特率都可以设置,但是接收方的波特率必须与发送方的发送波特率形同。通信线上所传输的字符数据时逐位传送的,1个字符由若干位组成,因此每秒钟所传输的字符数(字符速率)和波特率是两种概念。在串行通信中所说的传输速率是指波特率。在串行通信中,除了可以设置波特率外,其他的如字符数据的位数、奇偶校验位、停止位也可以被设置,其中字符数据的位数可以被设置为5~8位;奇偶校验位可以去除,也可以设置为奇校验或者偶校验;停止位可以设置为1位、1.5位或者2位。
2应用软件介绍
2.1Quartus II软件介绍
Quartus II是Altera公司推出的一种针对其公司生产的CPLD/FPGA系列器件的综合性开发软件,是一个集成了编译、布局布线和仿真工具在内的完全集成化的可编程逻辑设计环境,是最先进的EDA工具软件。它能完成从代码输入到物理实现的全部设计流程,支持Altera公司的所有FPGA和CPLD器件,是MaxPlusII 的后继版本。该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,还提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
2.2 Quartus II工作环境介绍
(1)启动QuartusII,其管理窗口如图2-1。
图2-1 Quartus II管理窗口
(2)首先新建一个工程,选择菜单命令File/New Project Wizard ,点击next
将弹出如图所示对话框,对话框中第一行表示工程所在的工作库文件夹,第二行表示此项工程的工程名。选择项目存放目录、填写项目名称,注意项目顶层设计实体名称必须和项目名称保持一致,接下来对器件进行相关的设置。
图2-2 New Project Wizard 窗口
(3)然后新建一个VHDL文件,出现一个空白窗口,在这个空白窗口可以输入VHDL代码,如图2-3所示。
图2-3 输入VHDL代码窗口
输入完VHDL代码后点击Start Compilation即可进行编译。如果程序语法有错就会进行错误提示,如果代码正确则编译提示正确,代码无语法错误。
2.3ModelSim软件介绍
ModelSim是一种第三方EDA仿真工具,它是由Model公司开发的,支持Verilog、VHDL以及两者的混合仿真。它可以将整个程序分步执行,并且可以在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,和某一单元或模块
的输入输出的连续变化等。其主要特点是仿真速度快,仿真精度高,是目前业界最流行最通用的仿真器之一。
编写完VHDL代码且编译通过后,即可对其进行波形仿真。
(1)首先选择QuartusⅡ主窗口Tools/Options命令,改变ModelSim-Altera 的存储地址,如图2-4所示。
图2-4 Options界面
(2)然后选择QuartusⅡ主窗口Assignments菜Device命令,进入 Settings对话框的 Device页面进行设置,如图2-4所示。再点击Test Benches 按钮,进入New Test Benches Setting 界面进行一系列设置。
图2-4 Device设置页面
(3)最后在Tools 的下拉菜单中选择Run EDA Simulation Tool/EDA RTL Simulation,即可得到波形的仿真结果。