基于串口通信的电子琴
实验题目:基于串口通信的电子琴
1. 课程简要信息
课程名称:电子设计与创新基础 B课程学时:理论 24学时,实验40学时项目学时:8 学时(课内) $^ { + 8 }$ 学时(课外)适用专业:通信工程、电子科学与技术等相关专业学生年级:二年级上学期(第 3学期)
2. 实验内容与任务(限 500 字,可与“实验过程及要求”合并)
基于串口通信的电子琴结构框图如图 1 所示,控制器由 FPGA 实现。通过电脑键盘发送串口数据给 FPGA,FPGA通过对串口信号的接收处理,将串口信号转变成蜂鸣器控制信号、数码管控制信号、led灯控制信号,控制相应的外设工作。

图1 基于串口通信的电子琴结构框图
具体技术指标:
1)将电脑键盘作为琴键发送数据,控制器通过串口接收电脑键盘按键数据,控制蜂鸣器演奏相应的音符。音符音域为 C调,具有三个八度。
2)控制器在键盘弹奏时使用 led 灯进行氛围调控,或者使用数码管显示音符名 。
3)通过串口返回弹奏时的音符数据,实现录谱功能。
4)录制的谱子可以自动播放。
5)支持 9600~115200Bd 的波特率接收。
扩展指标:
1)用开关调整波特率和电子琴的拍次。
2)通过开关切换电子琴的音调,实现 C调以外的大调演奏。
3) 将演奏乐曲增加强弱效果。
4)外加功率放大电路,对声音进行处理,通过喇叭外放。
3. 实验过程及要求(限 300 字)
1) 查找资料学习串口通信协议、乐理知识;
2) 复习软核 FPGA 的开发流程,以及 vivado 的使用,了解蜂鸣器和 led 外设的特征以及性质,为后续编写模块做准备。
3) 正确编写 uart 接收和发送模块,经过仿真测试验证后搭载到实验板上进行简单的通信测试,达到能正确收发数据。
4) 使用软核进行(3)的操作,达到能正确收发数据。
5)合理撰写译码模块,收到的数据进行译码,达到频率发生以及 led模块的要求。
6)合理构建pwm 波发生模块以及led模块。
7)连接整个系统,进行播放、演奏测试,观察出现的问题,找出原因并解决。
8)撰写设计总结报告,并通过分组演讲,学习交流实验过程中的问题和解决方案。
4.相关知识及背景(限 150 字)
这是一个合理运用数字电路技术、可编程器件来实现设备通信与联络的典型案例,需要运用 RTL 语言编程、uart 串口收发、pwm 波发生、数据显示、参数设定、反馈控制等相关知识与技术方法。并涉及串口通信原理、硬件及软件反馈、软核的构建以及使用等工程概念与方法。
5. 实验环境条件
实验需要硬件材料清单:
FPGA 开发板:1 套面包板:1块七段数码管:2个无源蜂鸣器:1个发光二极管:若干个USB/串口转接板:1个
软件工具:Xilinx 的vivado软件、串口调试工具实验仪器设备:带键盘的计算机、示波器、函数信号发生器(频率计)
6. 教学目标与目的(限 150 字)
1)引导学生了解串口通信协议及实现方法。通过本项目实现串口收发,在仿真和下载调测中找出问题并解决。
2)培养学生通过选择合适的存储方式解决播放与数据接收之间的流量冲突。
3)培养学生搭建测试环境,通过测试结果分析,对项目做出修正。
4)通过一个相对完整的工程实例的实现,培养学生严谨细致、勇于克服困难和开拓创新的科技素质。
7. 教学设计与实施进程
教学设计:
本实验是用一个电子琴的设计项目让学生掌握 FPGA实现串口通信设计。基于技术指标要求,学生要经历学习研究、方案论证、系统设计、实现调测、设计总结等过程。在实验教学中从以下几方面加强对学生的引导:
1)串口通信协议、乐理知识。
2)软核 FPGA 的开发流程。
3)蜂鸣器和 led外设的特性与控制方法。
4)仿真测试验证后搭载到实验板上进行简单的通信测试,达到能正确收发数据。
5)合理构建 pwm波发生模块以及led 模块。
6)链接整个系统,进行播放,演奏测试,观察出现的问题,并找出问题原因进行解决。

实施进程如图 2所示:
图2 实验实施进程
在实验中,要注意学生 verilog 语言编程的规范性;如各个模块之间分块要明确,应当对每个模块的关键性操作进行注释;对变量命名尽量合理以及注释明确;对通信过程中出现的变量进行合理处理,不浪费系统资源;在调试中,要注意利用仿真模拟和串口调试工具查看通信过程是否正确,能否正确发送和接收数据,同时学习串口的连接,以及外设的搭载;在测试分析中,要分析系统的误差来源并加以改进,找到能够使得系统稳定收发数据的最佳算法。
在实验完成后,尽量组织学生以演讲、答辩、评讲的形式进行交流,了解出现的不同问题及解决方案,增加设计经验,拓宽知识面。
8. 实验原理及方案
1)系统结构
基于串口通信的电子琴的系统结构如图 3 所示。

图 3 系统结构图
2)总体设计方案
该系统设计整体思路如下:
首先上位机发送一个串口数据(按键的 ASCII码)给系统,系统通过 uart接收模块进行接收,处理数据后分别执行以下操作:
$\textcircled{1}$ 将接收到的数据通过 uart 重新发送给上位机,进行接收反馈。
$\textcircled{2}$ 将接收到的数据转换为二进制送给 led接口,控制led灯的闪烁。
$\textcircled{3}$ 以接收到的数据做为地址,取出预先存储在 RAM 中的频率数据,根据频率生成pwm波,控制蜂鸣器演奏相应的音符。
上述操作均可设计成独立模块,最后根据系统拼接,完成总体设计。
3)主要模块设计方案
uart串口通信部分是本实验的重点,有两种实现方案,一是可以使用 vivado中自带的实现串口通信 ip 核,主要有 uart16550 以及 uartlite 可供选择。采用该方案时不需要设计 uart 通信电路,但需要用到软核设计;二是根据 uart 通信的传输原理,进行编程设计通信电路。因为本实验教学目标是串口通信电路设计,故选用方案二。在设计过程中,需要判断起始位的到来,然后将起始位之后的数据位和校验位进行接收,最后在停止位结束接收过程,校验之后存储下数据,这样完成了一次uart接收过程。uart发送过程相同。
pwm波发生模块,主要用于控制蜂鸣器发出不同的音符声音。在编写代码时,该模块预先将按键发送给 uart 的数据对应的 pwm 波频率存在 RAM 里,用发送的数据为地址,读取预存在内部的频率,并产生对应的 pwm 波送给蜂鸣器。具体见图 4 所示。

图4 pwm波形发生模块
led 显示模块,将 uart 接收模块接收到的数据经过译码处理转换成合适的 led接口数据,来控制 led的显示。
9.实验报告要求
实验报告需要反映以下工作:
1)实验需求分析:透彻分析实验要求和技术指标。
2)实现方案论证:根据技术要求,选定设计方案,并比较方案优缺点。
3)模块电路设计:根据系统要求,划分单元模块电路,并细化设计方法。
5)电路测试方法:根据指标要求拟定仿真和实物测试方案。
6)实验数据记录:详细记录测量结果和演奏效果。
7)数据处理分析:根据测量结果计算音符频率误差,根据演奏效果,分析数据传输正确与否。
8)实验结果总结:总结并提出改进意见。
10.考核要求与方法(限 300 字)
1)仿真验收:项目的主体电路是FPGA设计实现,要求学生设计过程中进行仿真,
指导教师验收仿真结果是否符合测试指标要求。记录完成时间。(2课内学时+6课外学时后)
2)实物验收 1:基本功能是否符合实验要求,记录完成时间。(7课内学时+8课外学时后)
3)实物验收 2:选做功能是否符合扩展指标要求,记录完成时间。(7 课内学时$^ { + 8 }$ 课外学时后)
4)实物验收 3:学生的创新设计验收,根据具体情况分析记录。(7 课内学时+8课外学时后)
5)提问环节:对设计、调测等实验内容进行个别提问,根据回答情况记录。(实物验收同时)
6)实验数据:测试数据和测量误差。(实物验收同时)
7)实验讨论:学生分组上讲台演讲,包括实验方案、创新点、遇到的问题及解决方法、实验收获等。(7课内学时 $^ { + 8 }$ 课外学时后)
8)实验报告:实验报告撰写的规范性与完整性。(课后)
11.项目特色或创新(可空缺,限 150 字)
本实验项目的特色在于:通过一个生动有趣的电子琴的设计,让学生掌握枯燥的串口通信原理及 FPGA实现方法。
附录一:
项目实物照片

附录二:实验报告照片(部分)
南京都雲大學
电工电子实验报告
基于串口通信的电子琴
四、实验电路图与设计过程


实验过程中遇到的问题:
实验心得:


南京都電大學
电工电子实验报告
四、实验电路图与设计过程


五、实验数据分析和实验结果
实验过程中遇到的问题:
实验心得:
南京都雲大學
电工电子实验报告
电子设计与创新基础B基于串口通信的电子琴
③将演乐曲增加强弱效果。

四、实验电路图与设计过程
五、实验数据分析和实验结果
实验过程中遇到的问题
解决方案:

形送给蜂鸣器。口的0/1信息。
实验心得:


附录三:教学场景照片
附录四:
课程大纲
电子设计与创新基础 B
Electronic Design and Innovation B课程编号: 00X060042 学 分: 4电子与光学工程开课学院: 学院微电子学院 课内学时: 64课程类别: 任选课 课程性质: 选修
一、课程的性质和目的
课程性质:《电子设计与创新基础B》以理论联系实际、实践验证理论为主要教学目标,提供集中性实践教学场地与平台,采取基于MOOC的主动性学习、模块化知识点强化理论教学、课内实验 $^ +$ 课外口袋型自主性实验、集中性研讨与答疑、课外团队项目等形式,激发选课同学对电子设计与创新活动的兴趣。
目的:通过该课程,使学生巩固和加深数字电路理论课程的理解;掌握模拟、数字电路器件和电气制图等实验技术方面的知识;掌握数字单元电路装配和测试方法;初步掌握电子电路设计自动化(EDA)软件的使用方法;掌握实验数据的处理和撰写实验报告的方法;培养严谨细致、勇于克服困难和开拓创新等方面的科技素质;培养学生在电路方面的工程和技术观点,自觉应用理论知识分析和解决问题的能力,严谨细致的作风和不断创新的能力。
二、课程教学内容及基本要求
教学内容及要求(理论课合计 24 学时):
- 逻辑代数基础2学时
掌握逻辑函数的描述方式(真值表、表达式、电路图、卡诺图)及其相互转换方法;
掌握逻辑函数(4 变量及以下)最简与或式的卡诺图化简法;
掌握逻辑代数的基本概念、基本公式、基本规则;
- 逻辑门电路(2学时)
掌握MOS场效应管的开关特性和有关参数;
掌握CMOS反相器的功能和主要外部电气特性;
了解CMOS OD门、三态门的工作原理;
- 组合逻辑电路 4 学时
掌握SSI组合电路的分析方法与双轨输入条件下的设计方法;
掌握用MSI组合电路数据选择器、数据比较器实现组合逻辑设计的方法;
-
触发器2学时掌握基本SR触发器的结构、工作原理;掌握触发器的逻辑功能及其应用;掌握描述触发器逻辑功能的各类方法;
-
时序逻辑电路 6 学时
掌握任意进制同步计数器分析和设计方法(复 0 法和预置0 法);
掌握序列码发生器(已知码型)的设计方法;
掌握有限状态机建模及根据状态机模型设计电路;
掌握时序电路的基本概念;
了解一般时序电路的分析方法;
掌握寄存器和移存器电路结构的特点;
了解典型MSI移存器 74194的功能;
了解典型MSI二进制、十进制计数器的功能;
-
$\mathrm { D } / \mathrm { A }$ 和 $\mathrm { A } / \mathrm { D }$ 转换(4学时)掌握 D/A 和 $\mathrm { A } / \mathrm { D }$ 转换电路的主要技术指标;掌握 D/A 和 $\mathrm { A } / \mathrm { D }$ 转换的一般原理和过程;掌握典型 $\mathrm { D } / \mathrm { A }$ 和 $\mathrm { A } / \mathrm { D }$ 转换电路的工作原理及其应用;
-
数字系统设计基础4学时
掌握寄存器传输语言描述数字系统的方法;
掌握使用 ASM 图设计数字系统的方法;
(二)课程的重点、难点及解决办法
课程的重点、难点:
1.可编程器件的使用是本课程的重点和难点。
2.小型数字系统设计和实验是本课程的重点和难点。
解决办法:
1.课程一开始就要求学生课外自学 Verilog语言,为后面的实验做好准备。
2.学习本课程时,强调实验课与理论课的关系,强调技能和动手能力培养的重要性,使学生能够自觉地根据教学要求来学习。每一次实验都要求学生独立完成,尽可能自己解决实验中的各种问题。教师可以结合本次实验搭建一些错误电路,请同学分析错误的原因并找出其错误点。
3.理论学习结合慕课,课外主动增加学时,将课内内容理解消化。
三、实验实践环节及基本要求
1.实验实践教学环节在本课程中的作用及要求。
通过实验教学环节,使学生能够熟练掌握常用电子仪器的使用方法;深化对理论课教学内容的理解;具有电子电路基本设计和调测试能力,为今后进行科学研究奠定良好的基础。
2.实验项目(具体要求见实验教学大纲)(40 学时)
实验一:中小规模门电路(4学时)
实验二:可编程器件开发应用+verilog语言(4 学时)
实验三:组合电路--动态显示(4学时)
实验四:触发器 $^ { + }$ 计数---数字钟(4学时)
实验五:序列信号发生和检测(4学时)
实验六:可编程波形发生器(4学时)
实验七:交通灯管理器的设计(8学时)
实验八:数模结合综合性实验(8学时)
四、本课程与其它课程的联系与分工
本课程的先修课程是电装实习、电路分析基础、模拟电子技术,同时是电子电路课程设计、单片机课程设计、毕业设计等实践性课程的前期课程。
五、对学生能力培养的要求
通过课程学习,使学生在精通理论的基础上,具有电工电子基本实验和综合设计的能力,电工电子方面分析问题和解决问题的能力,自我获取新知识的学习能力和创新意识。为后续课程的学习以及解决工程实践中所遇到的数字系统问题打下坚实的基础,为国家建设培养创新型人才。
六、课程学时分配
总学时64,其中讲课 24学时,实验40学时。课程主要内容和学时分配见课程学时分配表。
课程学时分配表
| 教学环节课时数课程内容 | 讲课 | 上机 | 实验 | 课外 | 小计 |
| 逻辑代数基础 | 2 | ||||
| 逻辑门电路 | 2 | ||||
| 组合逻辑电路 | 4 | ||||
| 触发器 | 2 | ||||
| 时序逻辑电路 | 6 | ||||
| D/A和A/D转换 | 4 | ||||
| 数字系统设计基础 | 4 | ||||
| 实验一:中小规模门电路 | 4 | 4 | |||
| 实验二:可编程器件开发应用+Verilog 语言 | 4 | 4 | |||
| 实验三:组合电路--动态显示 | 4 | 4 | |||
| 实验四:触发器+计数---数字钟 | 4 | 4 | |||
| 实验五:序列信号发生和检测 | 4 | 4 | |||
| 实验六:可编程波形发生器 | 4 | 4 | |||
| 实验七:交通灯管理器的设计 | 8 | 8 | |||
| 实验八:数模结合综合性实验(题目不限) | 8 | 8 | |||
| 合计 | 24 | 40 | 64 |
七、建议教材和教学参考书目
1.教材
[1]黄丽亚等 《数字电路与系统设计》,北京:人民邮电出版社,2015[2]自编教材 《电子设计与创新基础 B 实验指导书》
2.主要参考书
汤勇明等 《数字电路与逻辑设计》,北京:清华大学出版社,2017
八 、课程考核
考核类型为考试,根据学校有关规定,学生必须完成实验数量的三分之二才能取得考试资格。按优秀、良好、中等、及格、不及格五等评定总评成绩。总评成绩由平时成绩和考试成绩综合构成,平时成绩依据预习报告、操作能力和实验报告综合评定。考试内容包括设计、实现、问答等部分。
执笔人:薛梅 审核人: 朱震华 教学院长: 郭宇峰编写完成时间:2015年3 月