ionicons-v5-f

基于FPGA的UART指令控制电机实验

实验名称:基于FPGA的UART指令控制电机实验

课程简要信息

课程名称:数字电子技术实验

课程学时:32学时

项目学时:16(8+8)学时

适用专业:电子信息工程、通信工程、自动化等电类专业

学生年级:大二下

设计内容与任务

项目实验实施依托实验室自主开发的FPGA实验箱,QuartusII设计软件、Modelsim仿真软件。

基于FPGA的UART指令控制电机实验,以FPGA为核心通过UART串口与PC上位机连接,PC通过UART向FPGA下发直流电机的控制指令,FPGA对接收到指令进行译码后,控制直流电机驱动电路,实现对电机运动的控制。实验教学过程中让学生:首先明确系统设计的总体要求,重点是功能划分与实现;其次是理解UART通信的基本原理;并掌握基于PWM的直流电机控制原理;最后能独立完成系统的设计、仿真和验证。

基本功能:

(1)以FPGA为核心,PC通过UART接口下达指令;

(2)对UART指令进行译码,控制直流电机的运动方向和快慢;

(3)数码管显示电机的运动方向和指令信息。

相关知识及背景

传统数字电路课程以讲授中小规模电路为主,与产业和技术应用趋势严重脱节,导致培养的学生缺乏设计复杂数字系统的能力、缺乏熟练使用现代数字系统设计、测试和调试工具的能力,所学的知识与实际的技术应用脱钩。FPGA拥有丰富的内部资源,能根据应用需求在硬件层进行灵活修改,适用于大型集成电路和数字系统的开发。

为了进一步培养学生利用模块化的思想设计复杂数字系统的能力,将UART通信与直流电机PWM控制相结合,组成一个相对复杂和完整的系统。该实验将通信和控制的基本原理通过FPGA设计方法有机的结合起来,提高学生学习兴趣的同时,培养和锻炼学生的工程实践能力,为后续的创新实践课程打好基础。

教学目标与目的

(1)数字系统自顶向下的设计方法;

(2)HDL编程与仿真;

(3)UART串口通信的基本原理;

(4)PWM驱动电机的原理与实现;

(5)系统集成、验证与调试方法。

本实验教学紧贴电子信息产业发展与需求,培养电子信息产业发展急需的综合应用型高技能人才。培养学生利用FPGA作为工具进行系统实现,从而加深对所学知识的理解,建立概念;加深理解所学数字系统原理基础知识,锻炼FPGA编程能力;调动学生的积极性,引导学生自发学习相关的知识,培养在实践中研究问题,分析问题和解决问题的能力。

教学设计与引导

本实验是一个综合设计性项目,需要经历相关理论知识学习、技术方案论证、系统设计、计算机仿真等过程。在实验教学中,应在以下几个方面加强对学生的引导:

(1)基于FPGA的自顶向下系统设计方法:这是整个设计中的难点,学生可能不知道如何下手,老师在这一环节需要重点引导。

(2)自底向上的HDL编程:按照系统的层次结构,对功能划分的模块进行编程,采用层次清晰的编程风格,有助于功能的理解、问题排查和复用。

**(3)功能模块仿真:**从底层的功能模块逐步向上开始仿真。对设计的模块模块分别进行仿真,然后进行整体系统的集成,学生易于理解和实现。

**(4)系统调试测试:**对仿真通过的整体系统进行编译和下载,观察实际运行中存在的问题,对存在的问题分析原因,并针对性的修正。培养学生分析并解决复杂工程问题的能力。

设计原理及方案

基于FPGA的UART指令控制电机实验的系统层次框图如图1所示。

图1 系统层次框图

图2功能模块之间的逻辑关系

功能模块一:UART模块。实现波特率为9600,数据位8位,停止位1位的串行数据格式UART接口与外部MAX232连接,实现与PC上位机的通信,用于接收PC下达的电机运动控制指令。Zhu主要有三个小的功能模块组成:UART功能控制模块、发送数据模块和接收数据模块。

功能模块二:数码管译码显示。将UART接收到的PC指令对应的电机转动方向和速度以及扩展的测速数据,扫描显示在数码管上。

功能模块三:电机驱动模块。将UART接收到的PC指令译码得到的速度和方向,产生不同的PWM信号控制直流电机驱动电路,实现对电机的控制。

功能模块四:电机转速测量模块,作为扩展功能,让学生自主设计实现。

各功能模块之间的逻辑连接关系如图2所示。指明了后续的子模块功能设计的前后连接关系,可统一规划子模块端口。为自底向上的功能设计提供了详细的RTL流图。

本实验实现PC上位机通过串口向FPGA发送一个字节的指令,控制电机的转向和转速。指令的格式如下:

方向 PWM占空比
Dir D6 D5 D4 D3 D2 D1 D0

其中:Dir=1,正转; Dir=0,反转。电机速度根据占空比大小分为4级调速:占空比大于>=96时,PWM输出占空比90%;96>占空比大于>=64时,PWM输出占空比50%;64>占空比大于>=32时,PWM输出占空比25%;32>占空比,PWM输出占空比0。

教学实施进程

基于FPGA的UART指令控制电机实验在教学过程中严格按照实验目的与目标进行开展,将教学过程的实施分为三个阶段。

7.1 基本原理与实验电路介绍

这一阶段的教学主要讲述UART和PWM的原理,以及应用时的注意事项,让学生做到“知其然,更知其所以然”。

(1)基本原理

UART(Universal Asynchronous Receiver/Transmitter,即通用异步收发器)串行通信是指计算机与外设之间,或者计算机与计算机之间以串行的方式传送数据。数据位按顺序一位一位地传送,所以串行传送数据最少只需要一根传输线即可完成。UART发送端和接收端为了保持同步,必须采用相同的字符帧格式和波特率。

很实验选择的UART数据帧格式为:1位**开始位、**数据位8位,停止位1位构成,其数据帧如图3所示:

图3 UART数据传输时序图

波特率是通信中的一个重要概念,也叫做比特率。是发送二进制数据位的速率,习惯上用baud表示。常用的波特率有9600,19200,115200等,表示一秒钟发送的二进制数据量。

直流电机驱动一般采用桥式电路,如图4所示:CTR_S-和CTR_S+表示控制电机转动的两个控制端,控制电机的PWM频率一般在几百到5KHz之间,本实验采用500Hz的PWM。

利用PWM(Pulse Width Modulation)的脉冲宽度来控制图4中的CTR-S-和CTR_S+,就是利用PWM占空比大小调节直流电源输出的平均电压大小,如图5所示,以达到控制电机不同运动状态的目的。

https://static.tianyancha.com/patent/abstractPic/CN/U/205/336/CN205336166U_1.png

图4 电机桥式控制原理图

图5 PWM控制原理

(2)电路原理

以下是uart串口和电机驱动的电路,不同的电路控制与驱动的方式不同,让学生理解HDL设计与外部电路相匹配才能实现对应的功能。

图6 UART电路 图7 直流电机驱动电路

7.2 功能模块的设计与仿真

系统按照自顶向下的方法设计,确定功能模块之间的连接端口;功能实现则按照自底向上,一个一个功能模块的设计与仿真。以一电机驱动模块为例如下图所示:

图8 电机驱动control_moter模块

电机驱动control_moter模块由命令解析pwm_config、PWM调制和驱动控制motor_drives三个子模块构成,其内部连接如图8示。

图9 control_moter的内部子模块

电机驱动control_moter模块的端口由系统时钟clk,系统复位rst_n和指令command三个输入端,电机驱动Postive和Negtive输出端构成。根据指令的功能与构成,首先在pwm_config模块里分离出转动方向Rota_dir信号和根据占空比得到的4各速度等级信号speed[1:0]信号;PWM模块根据speed信号等级在时钟信号clk和复位信号rst_n的控制下产生不同占空比的pwm信号;驱动motor_drive模块在Rota_dir方向信号的控制下,将pwm信号传递给postive或negtive电机驱动端,实现不同占空比的电机速度和转动方向控制。

各模块的仿真,结果如下:

图10 pwm_config模块仿真波形

图11 pwm模块仿真波形

图12 motor_drive模块仿真波形

图13 control_moter模块仿真波形

另外功能模块:UART通信模块、显示模块和测速模块依此执行。

通过仿真,让学生掌握仿真的作用:在不同的输入信号作用下,该功能模块是否达到对应的设计功能?没达到,修改设计文件直至实现;达到后,进行各功能模块的级联实现较复杂的功能。

7.3 系统的集成与验证

完成各功能模块的设计与仿真后,系统各模块的级联,管脚的映射,布局布线和编译,最后下载到实验平台进行验证

(1)各功能模块在系统层上例化完成,掌握局部与整体的关系,以及对数据流的掌控。

图14 系统整体设计RTL图

(2)正确的管脚映射,实现理论设计与实际电路的统一,把设计落实为具体的实物。

C:\Users\LENOVO\AppData\Local\Temp\WeChat
Files\ff75db3870ca463f7a2ae29241e7911.jpg 图15 系统管脚映射表

(3)功能测试与验证,内化指令与系统运行的逻辑,成就思想与行为统一的成功。

图16 串口指令控制电机运动

学生通过设计、仿真、系统集成到最后的程序下载,并成功运行的一系列过程,体会系统的概念,掌握自顶向下的系统设计方法,统筹全局;在实现的过程中,除了功能模块的具体功能的实现,还要注意与其他模块之间的关系;在测试中,检验指令与系统行为的统一与否,能判断运行状态与指令是否一致;最后思考对现有的系统在功能完善、扩展和代码质量方面是否还有改进的空间,使学习过程得到进一步的消化和沉淀。

课程设计报告要求

报告主要包括如下内容:

  1. 设计任务及要求;

  2. 问题分析与方案选择;

  3. 功能模块的划分,编程、仿真和实现;

  4. 系统实现过程中的问题分析及解决办法

  5. 体会与改进意见和建议

考核要求与方法

(1)系统设计:设计方案层次合理,功能模块划分与信号定义;成绩占比20%。

(2)功能实现:HDL编程良好的代码风格;在Quartus II或Modelsim对各层次功能模块进行较全面覆盖的仿真,实际测试功能正确;成绩占比45%。

(3)功能扩展:串口波特率灵活调整,PWM占空比连续可调,电机转速测量等;成绩占比15%。

(4)实验报告:方案设计描述,所遇问题分析与解决方案,收获与建议;成绩占比20%。

项目特色或创新

设计的以FPGA为核心的数字系统实验平台解决了分立元件实验中的学用脱节、功能单一、连线繁琐杂乱的问题。本实验的特色与创新点:

**(1)强调自顶向下系统设计方法,树立系统意识:**从系统整体概念出发,从总体到局部的设计方法,完成单独知识点向多知识点的融合;促进学生学习思维能力的提升,提高应用型人才培养质量。

**(2)通过自底向上的功能实现,锻炼工程实践能力:**自底向上的实现过程,体现理论知识点和实际应用的一一映射,让学生不仅对数字逻辑电路的内部结构知其然而且知其所以然;锻炼学生解决工程复杂问题的能力

**(3)应用与理论的表里统一,培养创新意识:**通过功能模块不同的实现方式,破解从理论到实践的鸿沟,让学生体会到解决问题的成就感;引导学生自主、自发的学习兴趣,培养创新意识。

参赛选手信息表

案例提供单位 长江大学电工电子国家级实验教学示范中心 相关专业 电子信息类专业
设计者姓名 郑恭明 电子邮箱 zgm931@yangtzeu.edu.cn
移动电话 18986660902

通讯地址

(含邮编)

湖北省荆州市长江大学东校区
设计者姓名 电子邮箱
移动电话

通讯地址

(含邮编)

设计者姓名 电子邮箱
移动电话

通讯地址

(含邮编)

相关课程名称 数字电子技术、FPGA程序设计与实战 学生年级 二年级下 学时(课内+课外) 16(8+8)

支撑

条件

仪器设备 电脑、直流稳压电源、万用表、示波器
软件工具 Quartus II,Modelsim
主要器件 FPGA系统平台

获奖信息

获奖等级 一等奖
年份 2023

作品信息

学时分类 13-20学时

作者信息

作者
郑恭明
学校
长江大学

电工电子实验教学资源平台 苏ICP备09069895号-19