嵌入式电路设计教程范文

时间:2023-10-13 17:36:10

导语:如何才能写好一篇嵌入式电路设计教程,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

嵌入式电路设计教程

篇1

关键词:口袋实验室;数字逻辑;组合逻辑电路;嵌入式系统

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)28-0268-03

口袋实验室,又称无墙实验室,就是让学生人手一个迷你“口袋实验箱”,上课带来、下课带走,课程结束时归还。学生有了一个小的实验平台,就可以结合课程内容,随时随地进行课程实验;同时,激荡在学生头脑中的创新想法可以即时得到验证,激发他们主动学习的兴趣。

口袋实验室这种形式使实验设备突破了实验室的限制、实验课时的限制,能够把最新的技术补充到学生的课余学习中,让学生随时随地都能进行实验,从而最大程度地实现了实验室的开放。

目前口袋实验室理念在国内多所高校已得到广泛的认可和贯彻,如清华大学、北京大学、哈尔滨工业大学、复旦大学、同济大学、上海交通大学、东南大学、华中科技大学等都建起了数量、规模各异的口袋实验室。

本组合逻辑电路设计就是基于Xilinx(赛灵思公司)Basys3口袋实验室的。在性能更好的NEXYS4或ZYBO实验板上也可实现。

1 口袋实验室之核心硬件Basys3

Basys3 实验板(见图1)是一款采用Xilinx最新7系列的数字电路入门级开发平台,该平台主芯片为Xilinx Artix系列中的最小型号 XC7A35T。它包含5200个slice资源,相当于33,280个逻辑单元。每个slice包含4个6输入查找表(LUT),8个触发器 。容量为1800kb的块状RAM 以及5个时钟管理单元,每个单元带有一个锁相环。Basys3同时也是一款入门级的FPGA实验板,专门针对Vivado Design Suite而设计,具有Xilinx Artix-7 FPGA架构。Basys3包含了所有Basys系列板卡的标准功能:完备的硬件规格,大 量的板载IO设备,所有需要FPGA支持的电路,以及免费的开发工具,上手即用。

采用Basys3 可以实施更贴近嵌入式方向专业要求的数字逻辑实验项目,形成符合嵌入式方向专业要求的数字逻辑实验课程。可解决现有《数字逻辑》实验课程的教学要求与嵌入式方向专业要求相比有些偏低的问题。同时可以解决现有面向嵌入式方向的基础实验课程实验平台各异,实验内容不够贯通的问题。

2 口袋实验室之核心软件Vivado

赛灵思在全球业界第一个发货和量产28nm 7系列器件后,2012年又推出了“Vivado”这一全新的FPGA设计套件,很可能在将来取代已经面世18年之久的赛灵思ISE设计套件。Vivado的推出,不仅仅是让设计的界面更加漂亮(如图2所示),更重要的是它带给行业的那种体现在设计手段和设计方法上的的创新。众所周知,对于电子设计工程师来说,一方面要求FPGA能实现所有的数字系统功能,包括:数字逻辑、嵌入式系统和数字信号处理等等;另一方面又要求基于FPGA的设计就像他们使用“C”语言给CPU、MCU编程那样的简单。Vivado将这两个看起来相互矛盾的梦想变成了现实。

在Vivado 2014.3环境下如同前期的ISE环境,可以非常方便地运用Verilog HDL语言的编程开发流程,包括源程序的输入、编译、模拟仿真及程序下载。

通过学习Verilog硬件描述语言,以及利用Verilog HDL进行数字电路设计和FPGA开发的方法。可让学生初步掌握代表当今数字逻辑设计前沿的FPGA开发的设计流程。除基本组合逻辑电路实验外,还可以追加时序逻辑电路的设计实验、。

3 口袋实验室之组合逻辑电路设计实验

本实验所用口袋实验室为Basys3电路板,板上的LED灯是共阴极的连接方式,当输入高电平‘1’时,LED亮;当拨动开关靠近数字标称端输出为低电平‘0’。

3.1 简单门电路的实现

在数字电路中,二输入与门电路、或门电路、非门电路、与非门电路、或非门电路和异或门电路的逻辑表达式如下所示,真值表如表1。

下面分别给出这些门电路的行为描述方式(Behavioral)和逻辑寄存器传输描述方式(Register Transfer Level,RTL)。可以看出,行为描述方式和逻辑表达式十分接近,而寄存器传输描述方式则是以真值表为依据进行编写的。 具体操作步骤如下:

(1) 利用向导,建立一个新项目,工程名为expe1,顶层文件名也指定为gate。

(2) 新建一个Verilog HDL文件。

(3) 在Verilog HDL文件中输入程序:

a 行为描述方式源程序:

module gate(a,b,c1,c2,c3,c4,c5,c6);

input a,b;

output c1,c2,c3,c4,c5,c6;

assign c1=a&b;

assign c2=a|b;

assign c3=~a;

assign c4=~(a&b);

assign c5=~(a|b);

assign c6=a^b;

endmodule

b 寄存器传输描述方式源程序:

module gate(a,b,c1,c2,c3,c4,c5,c6);

input a,b;

output c1,c2,c3,c4,c5,c6;

reg c1,c2,c3,c4,c5,c6;

always@(a or b) begin

case({a,b})

2'b00:

begin

c1

end

2'b01:

begin

c1

end

2'b10:

begin

c1

end

2'b11:

begin

c1

end

default:

begin

c1

end

endcase

end

endmodule

(1) 进行语法检查和综合编译。

(2) 编写testbench,进行时序仿真。

(3) 分配管脚,生成*.bit文件(管脚分配可参照后续实验结果部分)。

(4) 下载。

3.2 三态门电路的实现

在数字电路中,三态门电路是在普通门电路的基础上附加控制电路构成的。三态门主要用于可编程逻辑器件管脚的双向口设置。三态门的逻辑电路图如图3所示,真值表如表2。

根据三态门的逻辑电路图和真值表,不难看出三态门电路的基本工作原理是:当控制端口的输入使能信号EN=’1’,那么直接将输入端口的数据送到输出端口上;当控制端口的输入使能信号EN=’0’,那么这时输出端口呈高阻状态。 具体操作步骤如下:

(1) 利用向导,建立一个新项目,工程名为expe2,顶层文件名也指定为tri_gate。

(2) 新建一个Verilog HDL文件。

(3) 在Verilog HDL文件中输入程序:

module tri_gate(din,en,dout);

input din,en;

output dout;

reg dout;

always@(din or en) begin

if(en==1) dout

else dout

end

endmodule

(4) 进行语法检查和综合编译。

(5) 进行时序仿真。

(6) 重新分配管脚,生成*.bit文件(管脚分配可参照实验结果部分)。

(7) 下载。

3.3 实验结果

1) 两输入与门电路的管脚分配表和实验结果对照表见表3、表4。

2) 二输入或门电路、非门电路、与非门电路、或非门电路和异或门电路的管脚分配表和实验结果对照表见表5、表6。

3) 三态门电路的管脚分配表和实验结果对照表见表7、表8。

4 结束语

本组合逻辑电路设计是基于Xilinx(赛灵思公司)Basys3口袋实验室实现的,主要内容为简单门电路和三态门电路。在此口袋实验室的电路板上还可以实现编码/译码器,比较器,全加器等组合逻辑功能。项目中使用的口袋实验室由于其优秀的软、硬件平台,在本科教学中有多方面的应用价值。

1)在Vivado 2014.3环境下,可推动Verilog HDL基本语法的学习,有利于学生掌握Verilog HDL编程设计的基础。 而Verilog HDL和VHDL并称为业界最流行的两种硬件描述语言,其重要性不言而喻。

2)在本科嵌入式方向的《数字逻辑》、《计算机组成原理》、《计算机系统结构》三门课程间有一条衔接与贯通的主线:即由计算机组成基础部件到单/多周期CPU和中断/IO处理CPU,再到基本流水线CPU。本实验平台可直接应用于这三门课程。不仅能节约学生熟悉实验平台的时间,而且同一实验平台有利于他们温故而知新。

3)让嵌入式方向的学生开始学习满足较高专业需求的实验内容。打通面向嵌入式方向的基础实验课程的教学内容,有利于学生较系统、深刻地掌握满足专业要求的软硬件知识,锻炼他们的系统设计能力。

参考文献:

[1] 白中英,谢松云等.数字逻辑[M].6版.北京:科学出版社,2013.

[2] RichardE.Haskell著,郑利浩译.FPGA数字逻辑设计教程―Verilog[M].北京:电子工业出版社,2013.

[3] 何宾.Xilinx FPGA设计权威指南:Vivado集成设计环境[M].北京:清华大学出版社,2014.

篇2

关键词:CPLD;直流无刷电机;死区发生器;IPM;VHDL

中图分类号:TP274+.53文献标识码:B

文章编号:1004-373X(2008)08-004-03

A Drive Circuit Design for BLDC Motor Based on CPLD

TAN Zhenfan,LIN Rongsen,WANG Hongbo,GUO Lidong

(College of Automation,Harbin Engineering University,Harbin,150001,China)

Abstract:This paper presents a drive circuit for BLDC motor based on CPLD.Its hardware and software design are described in detail,to realize motor protection by using software instead of logic gate.The phaseswitch coding,dead time generator and IPM interface circuit are implemented by using the EPM7064SLC4410 CPLD as the central controller.The software design is implemented by VHDL,instead of RC to realize clead time generator.The design has advantages of small size,convenient debugging and flexible dead time.

Keywords:CPLD;BLDC motor;dead time generator;IPM;VHDL

直流无刷电机广泛应用于计算机设备、数控机床、机器人、伺服系统、汽车、家电等领域。本文介绍的电机驱动电路就是某稳定平台的角度伺服控制回路的驱动部分。本文中设计的基于CPLD的电机驱动电路,充分利用CPLD的硬件可编程和实现逻辑运算方便的特点,用一片CPLD代替原有十几片逻辑门和一部分模拟电路。采用VHDL语言编程实现相关逻辑。利用CPLD在线可编程的特点,可以很方便的对系统进行调试。

1 无刷直流电机的驱动原理

直流无刷电动机是由电动机本体、转子位置传感器和电子开关电路组成一个闭环系统。与一般的有刷电机不同,他的定子为电枢绕组,转子采用永磁体。本文介绍的电动机采用了3相Y型联结的全控电路,其基本构成如┩1所示。

其电子开关电路为6个IGBT组成的三相逆变电路。直流无刷电机驱动电路的作用就是对来自电机转子位置传感器的位置信号、来自外部的PWM控制信号以及其他控制信号采样并进行译码,使A,B,C三相绕组能按要求的顺序导通,实现定子绕组的正确换相,从而使电机正常运行。在实际应用中还要对电机的过压、欠压、过流、过热保护等进行设计。并按要求进行光电隔离和基极驱动电路设计。

图1 直流无刷电动机的基本构成

2 系统总体方案设计

电动机驱动电路包括3个部分,即:

(1) CPLD核心控制电路;

(2) 驱动及隔离电路;

(3) IPM接口电路;其系统框图如图2所示。

3 硬件电路设计

3.1 CPLD控制电路

该部分是电动机驱动电路的核心部分见图3,其信号采集、换相译码、死区发生器设计以及故障处理均由该部分完成。采集的信号有:电机控制器的PWM信号;正反转控制信号;经过整形的电机的霍尔位置传感器的位置信号;来自IPM模块的电机的欠压、过压、过流、过热等故障检测信号。这些信号输入到CPLD后,通过CPLD的软件实现换相译码、编程死区和电机保护逻辑,最后输出控制信号UP,VP,WP,UN,VN,WN到IPM的三相逆变电路。控制电机的三相电枢正确换相,从而使电机正常运行。

图2 系统方案设计图

图3 电机的CPLD控制电路

霍尔传感器信号的整形电路如图4所示:

图4 霍尔传感器的整形电路

采用4路精密电压比较器LM339完成。对来自霍尔传感器的信号进行整形,并对输出到CPLD的信号加滤波电容滤波。

3.2 驱动隔离电路

驱动隔离电路包括光电隔离电路和基极驱动电路。

光电隔离电路的作用是实现CPLD控制电路与IPM模块之间的电气隔离。隔离信号有2部分:

(1) CPLD输出到IPM模块的UP等控制信号;

(2) IPM反馈给CPLD的电机故障诊断信号F1,F2,F3,F4;

UP等信号的电气隔离采用高速光电耦合芯片6N137,该芯片的最大延迟时间为75 ns。可实现3 000 V DC的高电压隔离,适合于电气控制场合。IPM反馈给CPLD信号的电气隔离由光电耦合芯片4N25完成,如图5所示。

图5 光电隔离电路

基极驱动电路采用9014三极管,并使三极管工作在开关状态。增加控制信号的驱动能力,并最终输出控制电压给IPM模块的三相逆变电路。如图6所示:

图6 基极驱动电路

3.3 IPM接口电路设计

IPM(智能功率模块)将多个IGBT集成到一起,广泛应用于无噪声逆变器、低噪声UPS和伺服控制器中。一般含有栅极驱动、短路保护、过压、过流保护等。本文采用三菱电机生产的PM75CSA120的IPM模块实现驱动电机所需的三相逆变电路。他内部集成6只IGBT,每2只对应电机的一相。其额定负载电流为75 A,额定控制电压为1 200 V。另外还集成过流、过热、欠压、短路等故障检测电路,其示意图如图7所示。

出现故障时,IPM会将检测信号FO送到CPLD进行处理,采取相应的措施,提高系统的可靠性。

IPM工作需要单独的电源供电,与控制电路电源严格分开。其中上桥臂的3个IGBT各自需要1路电源,下桥臂的3个IGBT共用1个电源,这样就需要4路电源。其电源模块的电路如图8所示。

智能功率模块将功率电子器件和驱动电路集成到一起,并且内藏有故障检测电路,不仅体积小,而且可靠性高。

图7 IPM模块故障检测电路

图8 IPM模块电源电路

4 系统软件设计

4.1 软件构架设计

CPLD的软件采用VHDL语言编程实现。软件模块间的程序并行执行,没有程序流程图,只能用程序架构表示。CPLD的软件主要有电机的换相译码、死区发生器设计、故障处理和PWM与转向控制等功能,其软件构架如图9所示。

图9 CPLD软件架构图

4.2 换相译码程序设计

换相译码器的作用是根据当前位置信号和PWM控制信号以及转向控制信号Q,确定出UP,VP,WP,UN,VN,WN的相应值。需要实现的逻辑表达式为:

ИИUP={(CHQ)&BHQ)}&PWMИ

4.3 死区发生器设计

为防止三相逆变电路上下桥臂的IGBT产生“共态导通”的现象,导致短路。需要给IGBT的控制信号的上升沿设置死区,使其在一段延时之后才真正达到高电平。

死区发生器设计采用饱和计数器的方式,类似于电容的充放电过程,需产生如图10所示的时序。其规则为:

(1) 当UP_IN输入为0时,如果计数值T等于0,则计数值T保持不变,否则作减1计数;

(2) 当UP_IN输入为1时,如果计数值T等于max,则计数值T保持不变,否则做加1计数;

(3) 当输入为1且死区计数器数值T为MAX时,UP=1对应IGBT导通;

(4) 当死区计数器数值在0 ~ MAX之间时,UP=0,对应IGBT关闭;

图10 死区发生器时序图

下面为死区时间为N个时钟周期的VHDL程序,程序的运行结果如下。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_unsigned.ALL;

ENTITY dead_time IS

PORT(

clk,UP_IN: IN STD_LOGIC;

UP: OUT STD_LOGIC

);

END dead_time;

ARCHITECTURE fun OF dead_time IS

CONSTANT DEADTIME:INTEGER:=N;//设置死区

[JY]时间

signal count: integer range 0 to DEADTIME;

BEGIN

process(clk)

begin

if(clk′event and clk=′1′) then

if(UP_IN=′1′ and count/=deadtime) then

count

elsif(UP_IN=′0′ and count/=0) then

count

UP

end if;

if(UP_IN=′1′ and count=deadtime) then

UP

end if;

if(UP_IN=′0′ and count=0) then

UP

end if;

end if;

end process;

END FUN;

[BT3-*3]4.4 IPM故障处理

在系统中故障检测信号的处理是把信号引入到CPLD中,然后UP实现UPout=UPF1UN的逻辑后输出,既保证IPM出现故障时,UP无输出,又保证UP与UN的反逻辑。

5 结 语

介绍一种采用CPLD做核心控制器的无刷直流电动机的驱动电路的设计。实现电机驱动所需的换相逻辑、电机运行故障处理以及可以灵活设置死区时间的死区发生器。该电机驱动电路可以用于高精度的伺服控制系统中。

参 考 文 献

[1]阎石.数字电子技术基础[M].北京:高等教育出版社,1998.

[2]张琛.直流无刷电动机原理及应用[M].北京:机械工业出[LL]版社,1999.

[3]穆磊,姜德生,戴珩.基于VHDL的线阵CCD驱动电路的设计\[J\].现代电子技术,2007,30(22):138139.

[4]林明权,马维F.VHDL数字控制系统设计范例[M].北京:电子工业出版社,2003.

[5]佩德罗尼,乔庐峰,王志功.VHDL数字电路设计教程[M].北京:电子工业出版社,2005.

[6]廖日坤.CPLD/FPGA嵌入式应用开发技术白金手册[M].北京:中国电力出版社,2005.

[7]宋万杰,罗丰,吴顺君.CPLD技术及其应用[M].西安:西安电子科技大学出版社,1999.

[8]张熠,丁辉.基于CPLD的CCD驱动时序电路设计\[J\].现代电子技术,2007,30(24):169170,176.