电子设计大赛结束了半个月了,也就是我们的培训过去半个多月了。回头想想还是记忆犹新。这一个多月是那么短暂,却又是那么的充实,空前的充实,比奋战高考是还要紧张。归根结底是我们学到了很多知识,特别是实际的动手能力。这是我们平时学不到的,或者说是能学到但条件是很有限的。
我先从几方面谈谈我的收获。
(1) 和老师之间:
和老师难得有这么亲近的机会,指导我们的几个老师只是平时见过,有的教过我们课,只是授课与听课的关系。而这次大赛是我们师生之间有个更深的一层含义—朋友,合作者。每个老师都是给我们掏心窝子的交流,督促我们学习,真的是想让我们学到点东西。老师一再强调要我们和他们交流,有时甚至是老师主动找我们学生交流的。最后做项目的几个晚上大部分老师是陪我们一起通宵的。实际上即便是我们充实的学了一个月,以我们的能力完成电子设计大赛的题可以说是不可能的。所以老师一再强调要和他们交流。最后完成项目还是靠老师的帮助,关键是我们必须参与进去,过程一定要有。完成项目的过程中会遇到种种问题,和老师一起解决问题的过程,是最有价值的。
(2)和同学之间
我是计算机班的,最后参赛的共有18人,其中15人是医电班的,三人是我班的。参赛的都是相对比较优秀的同学。有的以前甚至没见过。现在在一起上课,讨论问题,吃饭。象一个大家庭。有问题先和别的同学讨论,解决不了再去找老师。大家共同分享解决问题的方法经验。自己相处来的好方法和同学一起分享一下,一来别人会说我聪明,二来别人想出来好方法也会和我分享的,这样就形成了良性循环的过程。这次大赛是和理工大学的本科生一起上课的。我们是大二-大三,他们是大三-大四,水平也相对比我们高,我有问题还是经常请教他们的。还好他们都挺热心的。我和一个叫张书平的挺熟的,他很聪明,学东西上手很快,和他一起学习也刺激的我反应变快了。
(3)和组员之间
电子设计大赛我是和我班的曲世静刘友平一组的。和他们相对熟一点。现在想想感觉挺亲的。三个人合作一个项目首先要团结,其次才是分工。我们三人就是一个团队,一个整体。一个项目需要一个团队来完成。也就是人们常说的teamwork.。这是我们第一次团队合作的经历,以前只是概念层的teamwork,有了这次经历,就可以说是实践层的teamwork了。再次强调一个团队就是一个整体,首先要团结一致,再是合理分工。团结不只是心理上团结更重要的是向一个方向共同努力。合理分工真谛是同一时间每个人并行的工作。有时却不得不串行工作。既是下一步工作是在上一部工作必须完成的基础上才能开始着手的,因为完成一个项目往往有时间限制的。所以每一步都必须抓紧时间来完成,否则会耽误下一步的工作的。通宵也是常理之中的。这是其他组员在适当的情况下先休息,说不定下一个晚上你就要熬夜甚至通宵了。
这次培训我是数电组的。我们主要学的是可编程逻辑器件FPGA(field programmable gate array)的应用。FPGA是一种集成度很高的PLD(编程逻辑器)。在一块FPGA芯片上可以实现各种数字电FPGA的功能往往不局限与数字电路上,它的强大功能主要用于设计数字电子系统,来优化算法。当然能实现常见的组合辑电路,时序逻辑电路。所有工作是在QUARTUS 软件开发平台上完成的。实现过程可以通过软件编程或者图形输入法完成软件系统,然后进行编译,仿真正确后下载到FPGA芯片上,该芯片就能实现所要的逻辑功能。
刚接触FPGA是李丕丁博士给我们介绍VHDL(V- hard description language)硬件描述语言开始的。几乎所有的电子系统都可以用VHDL编出来。当天晚上李老师给我们留的作业是编出一个象五分频,占空比2:3的分频计数器出来。因为是刚接触一天做起来还是有难度的。自己先试着编了一下,结果没能实现,就和本科的同学交流讨论了一下,取了点经验,自己也就做出来了。第二天李老师给我们画了四个D触发器,连接起来是一个移位寄存器,让我们用VHDL来实现,一开始真的是一头雾气水,不知道如何下手。其他同学也是这样的反映。见到这种情况,老师们商量了一下,再把基础的给我们讲一下是必要的。所以我们就用VHDL从与,或,非门等基础的开始一一练习,再到编码器,译码器,选择器计数器。一直练习到这些基本的逻辑都能自己独立编出来。这样才对自己有了信心,更进一步了解了VHDL。平时练习的很多还给自己出题目做,例如完成一个并入串出的移位寄存器等等。
因为FPGA的输入输出,以及处理的全是数字量,既是逻辑高低电平0,1。所以单独一块FPGA芯片是不能完成项目的。要完成的项目都会有模拟量的,比如再示波器上看到的某个波形就是一般都是模拟量。这就用到A D,DA转换,必须也要把这个掌握起来,第一周的后三天就和单片机组的一起听莫老师讲的相关的内容。是张老师给我们讲的有关下载的知识,下载的应用让我们见识到了它的功能。下载就是把从软件编好的程序下载到FPGA芯片上,下载线一端接到电脑的并行IO口上,另一端接到FPGA芯片上。操做软件就能实现下载。
卜老师给我们讲了quartus的图形输入法,这种方法很好用,就是在软件平台上搭建数字电路。Quartus 自带的元件库是相当丰富的,常用的,不常用的,有尽有。从元件库中调出需用的元件,然后连接,这种方法比在面板上方便多了。电路连接好后,编译调试,仿真成功后下载到FPGA上就能实现所要的功能。
印象最深的的是DDS原理的应用。DDS是直接数字频率合成技术,通过这种技术能得到任意频率的各种波型。基本原理是频率初始字输入到一累加器,累加器做循环累加,累加器的高N位作为读取ROM的地址。ROM的M个存储单元中存放波型的采样点。读取采样值然后输出。通过改变频率初始字的改变,就能实现输出频率的改变。我们练习国05年电子设计大赛的A题-正弦信号发生器,要求产生100Hz-100MHz的正弦信号频率步进为100Hz。这道题就是DDS的原理。
电子设计大赛我组是单单数,是六组唯一没有模电学生的。拿到题目后针对我组的情况我们选择了信号发生器这道题目,要去产生方波,正弦波,三角波,频率范围为10hz-10mhz,低频段10hz-khz,高频段1khz-10mhz,步进为1khz,波形发生系统正好我们练习过,和05年正弦信号发生器类似,但也有不同,要求产生3种波形,又要分高低频段,这些在软件上实现难度不大,用选择器高低频段,内涵在于用累加器的选择作为地址信号的选择,波形控制是把3种波形的采样点存到3个rom中,用选择信号来选择波形,难点在于控制字的输入,累加器要接收23位数据。方案1采取23根数据位,与单片机的io口连接,但单片机资源有限,所以不能采取此方案。方案2采取分高低中3位接收数据在fpga内部配置3个8位锁存器,每个锁存器的时钟信号通过单片机做为握手信号来提供,3个8为锁存器的输出再接到一个锁存器上,锁存器的24为输出就能得到需要的频率控制字。
在fpg内部握手信号为hold,波形控制信号为s2(1,0),高低频段控制信号为s1,这几个信号分别由单片机提供。在调试过程中遇到了种种困难,其中第一个为数据不能读入,最后找出来是hold信号没有起作用,又来又发现高频段波形能出来,但低频段不能出来,这个问题让人头痛,高频段都出来了,低频段不可能出不来,因为原理是一样的,这种情况最可能的原因还是频率控制字的错误,经反复检验,发现问题出在单片机额po口的分时复用上,po口除了发送数据还要进行键盘扫描,fpga把po对键盘扫描的信号也接收了过来,肯定会出错的。因为fpga反应很快,采取措施是修改汇编程序,延长po口对键盘的扫描到1妙,最后得到正确结果,下一步工作是输出的波形信号接到da上,因为输出最大频率要10mhz,考虑采用高速adv7120,数据输入为r(7…0)b(7…0),g(7…0),这块芯片主要用于视频转换,能满足高速要求,但是控制信号太多,再焊到pcb板上很容易出错,最后放弃使用adv7120,采样我们熟悉的da0832,fpga的8为波形信号作为da的输入wr信号由fpga提供,其他信号由单片机提供。Fpga每输出8为波形信号一次,wr信号就接收延时1ms的低电平,就能完成一次转换,输出一位的模拟信号pcb焊接好后,进行统调,可喜的是方波指标全能达到,三角波正弦波的频率能完全符合要求,但波形明显失真,原因出在pcb上电路连接不理想,但当时已经没有时间在修改了,有间的话肯定能做好。
现在已经结束了,收获的结果并不重要,收获的整个过程才是有价值的,我们从这个过程锻炼了很多能力,有的极其深远的意义。这个过程使我对我的将来有了一个新的认识一个新的定位,也为我指明了方向。因为我对这方面感兴趣,我有兴趣继续研究,有斗志跻身于电子这个行业。