前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇嵌入式电路设计教程范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
关键词:现代电子系统设计;教学改革;综合素质
一、引言
现代电子系统设计是我校电子科学与技术专业(以下简称为“电子”专业)的一门选修课程。通过该课程的学习与实践,目的是使学生对现代电子系统设计及原理有一个较为完整和系统的认识,并具有一定工艺分析、解决工艺问题和提高产品质量的能力,可以掌握嵌入式系统开发的主要过程,从专业的角度对嵌入式计算机系统进行分析设计,并且掌握ARM处理器的体系结构。从课程的教学目的可知,本课程要求培养学生在知识综合应用和动手实践方面的能力,不仅要求学生具有扎实的基础知识和对知识的综合应用思维,还需要学生具有很强的动手能力和应用能力。
近年来,随着电子技术的发展,电子系统的设计方法和手段也在不断更新和进步。电子系统设计方法在快速发展的电子技术应用中不断受到挑战。从传统手工设计方法到EDA设计方法,从分立元件系统到集成电路设计,从PCB集成系统到芯片集成系统(SoC),从纯硬件系统设计到硬件与软件结合的系统开发,新型电子系统层出不穷,其设计理念也发生着革命性的变化。这使得企业不仅需要毕业生在进入该领域时具备良好的专业能力和素质,更需要他们了解和形成现代电子系统设计的团队思维方式和综合设计方法。同时,学校要促进教学知识与时俱进,培养符合社会需要的实用型工程技术人才,提高学生的就业竞争力;也要对现代电子系统设计课程的教学方法和教学模式进行深刻的思考和改进。
二、存在的问题
现代电子系统设计课程的传统教学模式主要包括理论授课和实践实验两个部分。理论授课主要包括对现代电子系统设计的方法、思维、工具、应用基础的介绍与强化,常用处理器及其体系结构的应用、设计、改进知识和FPGA重构思维、Altium Designer电路原理图及PCB绘制软件的使用,在本课程的教学授课过程中需要贯穿系统设计方法和设计思想。实践实验则以上机实验为主,进行规定实验内容的验证、观察和简单电路的原理设计。电子系统课程所存在的问题主要在教学方法和人才培养方面。
1.教学方法问题
在几年的教学过程中,笔者通过思考和分析课程教学中的问题以及学生的反馈意见,总结了以下几点问题:
(1)基础知识不牢。教师在课堂授课、实践过程中不能很好地将各门课程综合应用,各门课程间缺乏沟通,学生无法将所学知识串连起来,进行综合应用。
(2)教学内容有所欠缺。学生对处理器知识的理解和实际软件编程思维不够深刻,习惯于有实验手册指导条件下的惯性实验模式,一旦教师让他们进行开放性实验来完成设计时,就无法形成系统性思维,各自为战,团队意识不强。
(3)考核方法陈旧。课程的考核方式主要采用大众式的“本门课程成绩=平时成绩+期末考试成绩”的计算方式,学生疲于应付考试,应试态度明显,不去思考本门课程所学内容与先修课程和本学期其他课程的关联,只去死记硬背些条条框框,对于思考题和实际现象无法进行有效分析,形成了固化思维。
2.人才培养问题
除此之外,电子专业在人才培养方面也存在一些问题,主要体现在学生学习主动性以及创新活动的参与度上:
(1)2013年前,电子专业在全国大学生电子设计大赛、辽宁省机器人设计大赛、飞思卡尔杯智能汽车大赛(现更名为“恩智浦”杯智能汽车大赛)、大学生创新创业训练计划等体现和锻炼综合素质的活动中的参与度非常低,仅有3人次参与,这些都侧面反映出学生对所学习的C语言程序设计、模拟电子、数字电子、单片机原理、EDA与VHDL语言等课程的综合应用能力较差,学习和参与的主动性和积极性不高,综合设计能力不强。
(2)根据对学生就业数据的统计调查发现,学生在毕业后两年内从事与本专业相关的研发、技术设计、理论研究工作的人数不到业人数的20%,其他学生多选择改行。在校学生对本专业的认可度也普遍偏低,选择考研的学生中有90%选择了外校。
三、课程改进的方法
为使学生能够更好地掌握现代电子系统设计课程内容,并真正提高系统设计思维和教学效果,我系针对上面出现的问题进行思考,对所发现的问题进行教学环节的切实改进。
1.加强实践训练和实际电路设计
实际的动手训练和电路设计,需要具体分析常用电路原理和具体电路常见故障问题,并加强对学生实际设备操作和实用能力的培养。采用理论教学和实践教学结合的项目驱动方式,由教师结合实际工作经验和教学需要,对学生下发开发板、相关元器件,改变传统仅使用多媒体课件观看图片和以教师理论说教方式完成对电子系统各组成元器件的认知,以硬件电路的设计与开发实践项目为引导,使学生全程接触实际电路和处理器,以实际项目为驱动进行电子系统设计流程、方法、步骤的掌握和训练。教师将STC单片机公司和德州仪器公司赠送的开发板下发给学生,学生2~3人一组进行实际项目的开发和学习,由浅入深,从STC89C52、MSP430单片机开始,逐步接触ARM处理器,完成电路系统的设计与开发,为后续FPGA处理器设计打下良好的应用思维基础。
2.以科技学术活动为激励
学校以全国大学生电子设计大赛、辽宁省机器人设计大赛、飞思卡尔杯智能汽车大赛(现更名为“恩智浦”杯智能汽车大赛)、大学生创新创业训练计划等科技学术活动为激励,通过相关大赛培养学生的应用能力,激发他们的学习积极性和自主性。通过这几年的积极引导,笔者发现,学生在以上竞赛和活动的参与率上得到了明显提升,共获得全国大学生电子设计大赛省级竞赛一等奖、二等奖各2项,参与3人次;获批大学生创新创业计划国家级立项2项,省级立项3项,参与14人次;获智能汽车大赛赛区一等奖1项,二等奖2项,参与2人次;获辽宁省机器人设计大赛二等奖1项,三等奖1项,参与12人次;参与校级及其他各类科技学术活动50余人次。这些大赛不但提高了学生的专业综合素质,还提高了学生的总结能力、文档设计能力、电路设计和软件编程能力。
3.教学团队形式优化学生学习内容
本专业教师联合为同一教学团队,在提高教学质量和学生动手能力的目标下,尽量为学生设计一个统一的综合性题目,增强学生的能力,同时,使各门课程的知识点相辅相成、互相印证,使学生更容易将所学知识进行综合和理解。
4.考核办法改进
考核办法从六个方面考核综合训练完成的成绩,即报告、设计能力、动手实践能力、功能完成情况、课堂研讨回答所提出问题的程度以及综合训练过程中的工作态度等。其中,报告占14%、设计和实践能力占10%、功能完成情况占8%、训练设计掌握程度占6%、课堂研讨回答出的问题占7%、综合训练过程中的工作态度(考勤)占5%。在期末考试的试题中,要增加创见性题目。同时,教师可以鼓励学生发表学术论文,以学术论文替代期末考试。
增加小组设计和小组讨论环节,教师团队设定十组中等难度的综合应用设计题目,将学生按2~3人一组进行实践项目分组,完成设计白皮书(包括系统需求描述、功能概述、拟采取的解决方法),完成系统电路设计,绘制电路图、PCB文件,完成硬件焊接、软件编程并进行答辩。组员各负其责,完成各自项目中的任务,教师和学生一起进行实际项目的需求分析、设计步骤安排、实验验证等环节。这样,可以使学生在学习之余提高团队合作能力和综合运用知识的能力。经实际操作此过程,学生反应强烈,讨论和学习动力增加,分组实践情况如图所示。
分组实践现场
四、结束语
本文在现代电子系统设计课程教学和本专业教学的基础上,对本课程的教、学、练等三个方面进行设计和改进,发挥和突出本专业应用特色,并且从几年来的实践效果看,新的改进方法增强了学生学习的主动性和教学过程中的灵活性,提高了学生综合能力素质和成果比例。
参考文献:
[1]宋晓梅.现代电子系统设计教程[M].北京:北京大学出版社,2011.
关键词:直接数字频率合成器;现场可编程门阵列;Verilog HDL;Quartus Ⅱ;IP核
中图分类号:TN77文献标识码:B
文章编号:1004373X(2008)2001503
Design and Simulation of DDS Based on Verilog HDL
LI Chunjian,JI Wangxi,LIU Dalun
(National Institute of Metrology,Beijing,100013,China)
Abstract:The method and steps of realization of DDS(Direct Digital Synthesizer)on Quartus II is described in detail.This paper analyzes the principle of DDS,builds up a system model,realizes DDS module based on Verilog HDL and simulates it.The IP nucleus of DDS which is built can be reframed.It is very easy to achieve frequency modulation,phase modulation and amplitude modulation with the DDS module.It has more comprehensive and nice practicality.
Keywords:direct digital synthesizer;FPGA;Verilog HDL;Quartus II;IP nucleus
直接数字频率合成技术(Direct Digital Synthesize,DDS)是继直接频率合成技术和锁相式频率合成技术之后的第三代频率合成技术[1]。它采用全数字技术,并从相位角度出发进行频率合成。随着微电子技术和数字集成电路的飞速发展,以及电子工程领域的实际需要,DDS日益显露出优于传统频率合成技术的一些性能,高分辨率、极短的频率切换时间、相位噪声低、便于集成等,逐步成为现代频率合成技术中的佼佼者。
目前,DDS的设计大多是应用HDL(Hardware Description Language)对其进行逻辑描述。整个设计可以很容易地实现参数改变和设计移植,给设计者带来很大的方便。Verilog HDL就是其中一种标准化的硬件描述语言,它不仅可以进行功能描述,还可以对仿真测试矢量进行设计。Altera公司开发的QuartusⅡ设计软件,提供了Verilog HDL的设计界面以及编译平台,并且该公司还集成了可供程序下载的FPGA器件CYCLONE Ⅱ系列芯片,这样大大缩短了DDS的设计周期。
1 DDS的设计原理
DDS的原理图如图1所示。DDS实现频率合成主要是通过查表的方式进行的[2]。
正弦查询表是一个只读存储器(ROM),以相位为地址,存有1个或多个按0o~360o相位划分幅值的正弦波幅度信息。相位累加器对频率控制字进行累加运算,若需要还可以加入相位控制字,得到的结果作为正弦波查询表的地址。正弦查询表的输出为数字化正弦幅度值,通过D/A转换器转化为近似正弦波的阶梯波,再通过低通滤波器滤除高频成分和噪声最终得到一个纯正度很高的正弦波。
1.1 建模
如图2所示正弦波y=sin(2πx),若以f量化的量化频率对其幅度值进行量化,一个周期可以得到M=f量化个幅度值。将这些幅度值按顺序存入到ROM。相位累加器在参考时钟的驱动下,每来1个脉冲,输出就会增加1个步长相位增量X,输出数据作为地址送入ROM中,读出对应的幅度值形成相应的波形。
1.2 参数设定
DDS输出信号频率:
fo=fc×X/2N
其中,X为频率累加器设定值;N为相位累加器位数;fc为参考时钟频率。
例如,假定基准时钟为200 MHz,累加器的位数为32,频率控制字X为:
0x08000000H,即为227,则:
fo=200×227/232=6.25 MHz
再设定频率控制字X为0x80000000H,即为231,则:
fo=200×231/232=100 MHz
可见,理论上通过设定DDS相位累加器位数N、频率控制字X和基准时钟fc的值,就可以得到任一频率的输出[3]。
频率分辨率为:fres=fc/2N,由参考时钟和累加器的位数决定,当参考时钟的频率越高,相位累加器的位数越高,所得到的频率分辨率就越高。
1.3 方案的选择
在利用FPGA制作DDS时,相位累加器是决定DDS性能的一个关键部分[3]。一方面可以利用进位链来实现快速、高效的电路结构,同时长的进位链会减少其他逻辑的布线资源,限制整个系统速度的提高;另一方面可以利用流水线技术提高工作频率,但系统频率转换速度会相对降低。在选择累加器实现方案时需要综合考虑。
正弦波查询表ROM也是制作的重点。在FPGA中ROM 表的尺寸随着地址位数或数据位数的增加呈指数递增,如何在满足性能的前提下节省资源开销。一方面通过相位累加器的输出截断方式,例如从32位的相位累加器结果中提取高16位作为ROM的查询地址,由此而产生的误差会对频谱纯度有影响,但是对波形的精度的影响是可以忽略的;另一方面可以根据信号周期对称性来压缩ROM的尺寸,这时系统硬件设计复杂度会有所增加。因此,需要选取合适的参数和ROM压缩技术,在满足系统性能的前提下使得系统尽量优化。
2 Verilog HDL实现DDS模块
2.1 相位累加器
module acc(aclr,clock,dataa,datab,result);
inputaclr,clock;//输入输出端口说明
input[31:0] dataa,datab;
output[31:0] result;
reg[31:0] result;
reg[31:0] A;
always@(posedge clock or posedge aclr)//功能实现
begin
if (aclr)
result=0;
else
begin
A=dataa+A;
result=A+datab;
end
end
endmodule
上述为相位累加器的Verilog HDL功能实现,其中数据宽度为32位。同时利用Quartus Ⅱ进行波形仿真见图3。对应的模块符号见图4。
2.2 ROM正弦查询表
根据DDS的原理,将正弦波形的量化数据存储于波形查询表ROM中,即可完成正弦波发生的功能[4]。Altera公司提供了LPM ROM(ROM兆函数),这里只需借助Matlab生成.mif文件,并加载到LPM ROM中即可得到所需的正弦查询表ROM。
在Matlab中,运行下面的语句可以得到储存正弦波数字幅度值的.mif文件。例如产生214×12 b的正弦波0~2π幅度值,语句如下:
>>x=0:1:16383;
>>y=round(1000*sin(2*pi*x/16383))+1000;
>>a=[x;y];
>>fid=fopen(′rom.mif′,′w′);
>>fprintf(fid,′%d:%d;\\n′,a);
>>fclose(fid);
由此而生成的rom.mif文件内容是正弦波0~2π数字幅度值,但是格式不符合.mif文件的格式,需要对其进行修改。.mif文件的格式如下:
WIDTH=12;
DEPTH=16384;
ADDRESS_RADIX=DEC;
DATA_RADIX=DEC;
CONTENT BEGIN
…7646:1208;…
END
这样通过例化LPM ROM得到了正弦波查询表ROM的模块,地址宽度为14位,输出数据为12位。模块符号见图5。
2.3 DDS顶层模块的实现
module dds(clear,clk200,freq,phase,A,sinout);
input clear,clk200;
input [31:0] freq,phase;
output [31:0] A;
output [11:0] sinout;
reg [31:0] A;
wire[13:0] address;//内部信号的定义
assign address=A[31:18];
acc u0(.clock(clk200),.aclr(clear),.dataa(freq),
.datab(phase),.result(A));//相位累加器模块的例化
sinromu1(.clock(clk200),.address(address),.q(sinout));
//正弦查询表模块例化
endmodule
上述代码为DDS模块的Verilog HDL顶层文件。对应的模块图见图6。
若需要利用NIOS Ⅱ对其进行控制,需要并将DDS模块加载到NIOS Ⅱ的系统中。例如,通过NIOS Ⅱ为DDS模块的频率控制字freq和相位控制字phase置数。此时DDS的代码应改为:
module dds(clear,clk200,idata,iwr,iclk,addr,A,sinout);
input clear,clk200,iclk,iwr,addr;
input [31:0] idata;
output [31:0] A;
output [11:0] sinout;
reg [31:0] freq,phase,A;
wire[13:0] address;
always@(posedge iclk)
begin
if(iwr)
case(addr)
1'b0:freq=idata;
1'b1:phase=idata;
endcase
end
assign address=A[31:18];
acc u0(.clock(clk200),.aclr(clear),.dataa(freq),
.datab(phase),.result(A));
sinromu1(.clock(clk200),.address(address),.q(sinout));
endmodule
模块的输入端口添加了写信号iwr、地址信号addr和与NIOS Ⅱ同步的时钟信号iclk,这样是为了将DDS模块连接到Avalon总线上,利用总线和NIOS Ⅱ进行通信。
加载到NIOS Ⅱ系统之前,需要将该模块进行仿真和调试。仿真结果如图7所示。
至此DDS的数字部分已经完成。
对于整个模块的驱动时钟,若时钟源器件的频率不符合实际需要,需要再设计一个倍(分)频器将其倍频或是分频。例如现有时钟源为50MHz,可以使用FPGA中的PLL(锁相环)实现4倍频得到200 MHz。
参考文献
[1]罗韩君,林亚风,吴伶锡.一种基于DDS技术的新型激光测距系统的设计[J].现代电子技术,2005,28(17 ):42-44.
[2]钟蔚杰,蒋垒,刘耀应.基于VHDL编程的DDS设计\.舰船电子对抗,2007,30(2):102-105.
[3]周俊峰,陈涛.基于FPGA的直接数字频率合成器的设计和实现\.电子技术应用,2002,28(8):34-36.
[4]李威.FPGA/DDS的谐波信号发生器的研究与设计\.南京:河海大学,2007.
[5]夏雨闻.Verilog数字系统设计教程\.北京:北京航空航天大学出版社,2003.
[6]\帕尔尼卡.Verilog HDL数字设计与综合\.夏雨闻,译.北京:电子工业出版社,2004.
[7]汤家华,王道德.基于FPGA设计的采用DDS 技术的任意波形发生器\.电子测量技术,2007,30(4):129-131.
[8]张春荣,张厥盛.DDS/PLL快速调频频率合成器研究[J].西部电子,1993(4):35-39.
[9]彭澄廉,周博,邱卫东,等.挑战SoC[M].北京:清华大学出版社,2004.
[10]周立功.SoPC嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005.
[11]\坂俊昭.锁相环(PLL)电路设计与应用\.何希才,译.北京:科学出版社,2006.