嵌入式電路設(shè)計教程范文
時間:2023-10-13 17:36:10
導(dǎo)語:如何才能寫好一篇嵌入式電路設(shè)計教程,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
關(guān)鍵詞:口袋實驗室;數(shù)字邏輯;組合邏輯電路;嵌入式系統(tǒng)
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2016)28-0268-03
口袋實驗室,又稱無墻實驗室,就是讓學(xué)生人手一個迷你“口袋實驗箱”,上課帶來、下課帶走,課程結(jié)束時歸還。學(xué)生有了一個小的實驗平臺,就可以結(jié)合課程內(nèi)容,隨時隨地進行課程實驗;同時,激蕩在學(xué)生頭腦中的創(chuàng)新想法可以即時得到驗證,激發(fā)他們主動學(xué)習(xí)的興趣。
口袋實驗室這種形式使實驗設(shè)備突破了實驗室的限制、實驗課時的限制,能夠把最新的技術(shù)補充到學(xué)生的課余學(xué)習(xí)中,讓學(xué)生隨時隨地都能進行實驗,從而最大程度地實現(xiàn)了實驗室的開放。
目前口袋實驗室理念在國內(nèi)多所高校已得到廣泛的認(rèn)可和貫徹,如清華大學(xué)、北京大學(xué)、哈爾濱工業(yè)大學(xué)、復(fù)旦大學(xué)、同濟大學(xué)、上海交通大學(xué)、東南大學(xué)、華中科技大學(xué)等都建起了數(shù)量、規(guī)模各異的口袋實驗室。
本組合邏輯電路設(shè)計就是基于Xilinx(賽靈思公司)Basys3口袋實驗室的。在性能更好的NEXYS4或ZYBO實驗板上也可實現(xiàn)。
1 口袋實驗室之核心硬件Basys3
Basys3 實驗板(見圖1)是一款采用Xilinx最新7系列的數(shù)字電路入門級開發(fā)平臺,該平臺主芯片為Xilinx Artix系列中的最小型號 XC7A35T。它包含5200個slice資源,相當(dāng)于33,280個邏輯單元。每個slice包含4個6輸入查找表(LUT),8個觸發(fā)器 。容量為1800kb的塊狀RAM 以及5個時鐘管理單元,每個單元帶有一個鎖相環(huán)。Basys3同時也是一款入門級的FPGA實驗板,專門針對Vivado Design Suite而設(shè)計,具有Xilinx Artix-7 FPGA架構(gòu)。Basys3包含了所有Basys系列板卡的標(biāo)準(zhǔn)功能:完備的硬件規(guī)格,大 量的板載IO設(shè)備,所有需要FPGA支持的電路,以及免費的開發(fā)工具,上手即用。
采用Basys3 可以實施更貼近嵌入式方向?qū)I(yè)要求的數(shù)字邏輯實驗項目,形成符合嵌入式方向?qū)I(yè)要求的數(shù)字邏輯實驗課程??山鉀Q現(xiàn)有《數(shù)字邏輯》實驗課程的教學(xué)要求與嵌入式方向?qū)I(yè)要求相比有些偏低的問題。同時可以解決現(xiàn)有面向嵌入式方向的基礎(chǔ)實驗課程實驗平臺各異,實驗內(nèi)容不夠貫通的問題。
2 口袋實驗室之核心軟件Vivado
賽靈思在全球業(yè)界第一個發(fā)貨和量產(chǎn)28nm 7系列器件后,2012年又推出了“Vivado”這一全新的FPGA設(shè)計套件,很可能在將來取代已經(jīng)面世18年之久的賽靈思ISE設(shè)計套件。Vivado的推出,不僅僅是讓設(shè)計的界面更加漂亮(如圖2所示),更重要的是它帶給行業(yè)的那種體現(xiàn)在設(shè)計手段和設(shè)計方法上的的創(chuàng)新。眾所周知,對于電子設(shè)計工程師來說,一方面要求FPGA能實現(xiàn)所有的數(shù)字系統(tǒng)功能,包括:數(shù)字邏輯、嵌入式系統(tǒng)和數(shù)字信號處理等等;另一方面又要求基于FPGA的設(shè)計就像他們使用“C”語言給CPU、MCU編程那樣的簡單。Vivado將這兩個看起來相互矛盾的夢想變成了現(xiàn)實。
在Vivado 2014.3環(huán)境下如同前期的ISE環(huán)境,可以非常方便地運用Verilog HDL語言的編程開發(fā)流程,包括源程序的輸入、編譯、模擬仿真及程序下載。
通過學(xué)習(xí)Verilog硬件描述語言,以及利用Verilog HDL進行數(shù)字電路設(shè)計和FPGA開發(fā)的方法??勺寣W(xué)生初步掌握代表當(dāng)今數(shù)字邏輯設(shè)計前沿的FPGA開發(fā)的設(shè)計流程。除基本組合邏輯電路實驗外,還可以追加時序邏輯電路的設(shè)計實驗、。
3 口袋實驗室之組合邏輯電路設(shè)計實驗
本實驗所用口袋實驗室為Basys3電路板,板上的LED燈是共陰極的連接方式,當(dāng)輸入高電平‘1’時,LED亮;當(dāng)撥動開關(guān)靠近數(shù)字標(biāo)稱端輸出為低電平‘0’。
3.1 簡單門電路的實現(xiàn)
在數(shù)字電路中,二輸入與門電路、或門電路、非門電路、與非門電路、或非門電路和異或門電路的邏輯表達式如下所示,真值表如表1。
下面分別給出這些門電路的行為描述方式(Behavioral)和邏輯寄存器傳輸描述方式(Register Transfer Level,RTL)??梢钥闯?,行為描述方式和邏輯表達式十分接近,而寄存器傳輸描述方式則是以真值表為依據(jù)進行編寫的。 具體操作步驟如下:
(1) 利用向?qū)?,建立一個新項目,工程名為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文件(管腳分配可參照后續(xù)實驗結(jié)果部分)。
(4) 下載。
3.2 三態(tài)門電路的實現(xiàn)
在數(shù)字電路中,三態(tài)門電路是在普通門電路的基礎(chǔ)上附加控制電路構(gòu)成的。三態(tài)門主要用于可編程邏輯器件管腳的雙向口設(shè)置。三態(tài)門的邏輯電路圖如圖3所示,真值表如表2。
根據(jù)三態(tài)門的邏輯電路圖和真值表,不難看出三態(tài)門電路的基本工作原理是:當(dāng)控制端口的輸入使能信號EN=’1’,那么直接將輸入端口的數(shù)據(jù)送到輸出端口上;當(dāng)控制端口的輸入使能信號EN=’0’,那么這時輸出端口呈高阻狀態(tài)。 具體操作步驟如下:
(1) 利用向?qū)В⒁粋€新項目,工程名為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文件(管腳分配可參照實驗結(jié)果部分)。
(7) 下載。
3.3 實驗結(jié)果
1) 兩輸入與門電路的管腳分配表和實驗結(jié)果對照表見表3、表4。
2) 二輸入或門電路、非門電路、與非門電路、或非門電路和異或門電路的管腳分配表和實驗結(jié)果對照表見表5、表6。
3) 三態(tài)門電路的管腳分配表和實驗結(jié)果對照表見表7、表8。
4 結(jié)束語
本組合邏輯電路設(shè)計是基于Xilinx(賽靈思公司)Basys3口袋實驗室實現(xiàn)的,主要內(nèi)容為簡單門電路和三態(tài)門電路。在此口袋實驗室的電路板上還可以實現(xiàn)編碼/譯碼器,比較器,全加器等組合邏輯功能。項目中使用的口袋實驗室由于其優(yōu)秀的軟、硬件平臺,在本科教學(xué)中有多方面的應(yīng)用價值。
1)在Vivado 2014.3環(huán)境下,可推動Verilog HDL基本語法的學(xué)習(xí),有利于學(xué)生掌握Verilog HDL編程設(shè)計的基礎(chǔ)。 而Verilog HDL和VHDL并稱為業(yè)界最流行的兩種硬件描述語言,其重要性不言而喻。
2)在本科嵌入式方向的《數(shù)字邏輯》、《計算機組成原理》、《計算機系統(tǒng)結(jié)構(gòu)》三門課程間有一條銜接與貫通的主線:即由計算機組成基礎(chǔ)部件到單/多周期CPU和中斷/IO處理CPU,再到基本流水線CPU。本實驗平臺可直接應(yīng)用于這三門課程。不僅能節(jié)約學(xué)生熟悉實驗平臺的時間,而且同一實驗平臺有利于他們溫故而知新。
3)讓嵌入式方向的學(xué)生開始學(xué)習(xí)滿足較高專業(yè)需求的實驗內(nèi)容。打通面向嵌入式方向的基礎(chǔ)實驗課程的教學(xué)內(nèi)容,有利于學(xué)生較系統(tǒng)、深刻地掌握滿足專業(yè)要求的軟硬件知識,鍛煉他們的系統(tǒng)設(shè)計能力。
參考文獻:
[1] 白中英,謝松云等.數(shù)字邏輯[M].6版.北京:科學(xué)出版社,2013.
[2] RichardE.Haskell著,鄭利浩譯.FPGA數(shù)字邏輯設(shè)計教程―Verilog[M].北京:電子工業(yè)出版社,2013.
[3] 何賓.Xilinx FPGA設(shè)計權(quán)威指南:Vivado集成設(shè)計環(huán)境[M].北京:清華大學(xué)出版社,2014.
篇2
關(guān)鍵詞:CPLD;直流無刷電機;死區(qū)發(fā)生器;IPM;VHDL
中圖分類號:TP274+.53文獻標(biāo)識碼: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
直流無刷電機廣泛應(yīng)用于計算機設(shè)備、數(shù)控機床、機器人、伺服系統(tǒng)、汽車、家電等領(lǐng)域。本文介紹的電機驅(qū)動電路就是某穩(wěn)定平臺的角度伺服控制回路的驅(qū)動部分。本文中設(shè)計的基于CPLD的電機驅(qū)動電路,充分利用CPLD的硬件可編程和實現(xiàn)邏輯運算方便的特點,用一片CPLD代替原有十幾片邏輯門和一部分模擬電路。采用VHDL語言編程實現(xiàn)相關(guān)邏輯。利用CPLD在線可編程的特點,可以很方便的對系統(tǒng)進行調(diào)試。
1 無刷直流電機的驅(qū)動原理
直流無刷電動機是由電動機本體、轉(zhuǎn)子位置傳感器和電子開關(guān)電路組成一個閉環(huán)系統(tǒng)。與一般的有刷電機不同,他的定子為電樞繞組,轉(zhuǎn)子采用永磁體。本文介紹的電動機采用了3相Y型聯(lián)結(jié)的全控電路,其基本構(gòu)成如┩1所示。
其電子開關(guān)電路為6個IGBT組成的三相逆變電路。直流無刷電機驅(qū)動電路的作用就是對來自電機轉(zhuǎn)子位置傳感器的位置信號、來自外部的PWM控制信號以及其他控制信號采樣并進行譯碼,使A,B,C三相繞組能按要求的順序?qū)?,實現(xiàn)定子繞組的正確換相,從而使電機正常運行。在實際應(yīng)用中還要對電機的過壓、欠壓、過流、過熱保護等進行設(shè)計。并按要求進行光電隔離和基極驅(qū)動電路設(shè)計。
圖1 直流無刷電動機的基本構(gòu)成
2 系統(tǒng)總體方案設(shè)計
電動機驅(qū)動電路包括3個部分,即:
(1) CPLD核心控制電路;
(2) 驅(qū)動及隔離電路;
(3) IPM接口電路;其系統(tǒng)框圖如圖2所示。
3 硬件電路設(shè)計
3.1 CPLD控制電路
該部分是電動機驅(qū)動電路的核心部分見圖3,其信號采集、換相譯碼、死區(qū)發(fā)生器設(shè)計以及故障處理均由該部分完成。采集的信號有:電機控制器的PWM信號;正反轉(zhuǎn)控制信號;經(jīng)過整形的電機的霍爾位置傳感器的位置信號;來自IPM模塊的電機的欠壓、過壓、過流、過熱等故障檢測信號。這些信號輸入到CPLD后,通過CPLD的軟件實現(xiàn)換相譯碼、編程死區(qū)和電機保護邏輯,最后輸出控制信號UP,VP,WP,UN,VN,WN到IPM的三相逆變電路??刂齐姍C的三相電樞正確換相,從而使電機正常運行。
圖2 系統(tǒng)方案設(shè)計圖
圖3 電機的CPLD控制電路
霍爾傳感器信號的整形電路如圖4所示:
圖4 霍爾傳感器的整形電路
采用4路精密電壓比較器LM339完成。對來自霍爾傳感器的信號進行整形,并對輸出到CPLD的信號加濾波電容濾波。
3.2 驅(qū)動隔離電路
驅(qū)動隔離電路包括光電隔離電路和基極驅(qū)動電路。
光電隔離電路的作用是實現(xiàn)CPLD控制電路與IPM模塊之間的電氣隔離。隔離信號有2部分:
(1) CPLD輸出到IPM模塊的UP等控制信號;
(2) IPM反饋給CPLD的電機故障診斷信號F1,F(xiàn)2,F(xiàn)3,F(xiàn)4;
UP等信號的電氣隔離采用高速光電耦合芯片6N137,該芯片的最大延遲時間為75 ns??蓪崿F(xiàn)3 000 V DC的高電壓隔離,適合于電氣控制場合。IPM反饋給CPLD信號的電氣隔離由光電耦合芯片4N25完成,如圖5所示。
圖5 光電隔離電路
基極驅(qū)動電路采用9014三極管,并使三極管工作在開關(guān)狀態(tài)。增加控制信號的驅(qū)動能力,并最終輸出控制電壓給IPM模塊的三相逆變電路。如圖6所示:
圖6 基極驅(qū)動電路
3.3 IPM接口電路設(shè)計
IPM(智能功率模塊)將多個IGBT集成到一起,廣泛應(yīng)用于無噪聲逆變器、低噪聲UPS和伺服控制器中。一般含有柵極驅(qū)動、短路保護、過壓、過流保護等。本文采用三菱電機生產(chǎn)的PM75CSA120的IPM模塊實現(xiàn)驅(qū)動電機所需的三相逆變電路。他內(nèi)部集成6只IGBT,每2只對應(yīng)電機的一相。其額定負(fù)載電流為75 A,額定控制電壓為1 200 V。另外還集成過流、過熱、欠壓、短路等故障檢測電路,其示意圖如圖7所示。
出現(xiàn)故障時,IPM會將檢測信號FO送到CPLD進行處理,采取相應(yīng)的措施,提高系統(tǒng)的可靠性。
IPM工作需要單獨的電源供電,與控制電路電源嚴(yán)格分開。其中上橋臂的3個IGBT各自需要1路電源,下橋臂的3個IGBT共用1個電源,這樣就需要4路電源。其電源模塊的電路如圖8所示。
智能功率模塊將功率電子器件和驅(qū)動電路集成到一起,并且內(nèi)藏有故障檢測電路,不僅體積小,而且可靠性高。
圖7 IPM模塊故障檢測電路
圖8 IPM模塊電源電路
4 系統(tǒng)軟件設(shè)計
4.1 軟件構(gòu)架設(shè)計
CPLD的軟件采用VHDL語言編程實現(xiàn)。軟件模塊間的程序并行執(zhí)行,沒有程序流程圖,只能用程序架構(gòu)表示。CPLD的軟件主要有電機的換相譯碼、死區(qū)發(fā)生器設(shè)計、故障處理和PWM與轉(zhuǎn)向控制等功能,其軟件構(gòu)架如圖9所示。
圖9 CPLD軟件架構(gòu)圖
4.2 換相譯碼程序設(shè)計
換相譯碼器的作用是根據(jù)當(dāng)前位置信號和PWM控制信號以及轉(zhuǎn)向控制信號Q,確定出UP,VP,WP,UN,VN,WN的相應(yīng)值。需要實現(xiàn)的邏輯表達式為:
ИИUP={(CHQ)&BHQ)}&PWMИ
4.3 死區(qū)發(fā)生器設(shè)計
為防止三相逆變電路上下橋臂的IGBT產(chǎn)生“共態(tài)導(dǎo)通”的現(xiàn)象,導(dǎo)致短路。需要給IGBT的控制信號的上升沿設(shè)置死區(qū),使其在一段延時之后才真正達到高電平。
死區(qū)發(fā)生器設(shè)計采用飽和計數(shù)器的方式,類似于電容的充放電過程,需產(chǎn)生如圖10所示的時序。其規(guī)則為:
(1) 當(dāng)UP_IN輸入為0時,如果計數(shù)值T等于0,則計數(shù)值T保持不變,否則作減1計數(shù);
(2) 當(dāng)UP_IN輸入為1時,如果計數(shù)值T等于max,則計數(shù)值T保持不變,否則做加1計數(shù);
(3) 當(dāng)輸入為1且死區(qū)計數(shù)器數(shù)值T為MAX時,UP=1對應(yīng)IGBT導(dǎo)通;
(4) 當(dāng)死區(qū)計數(shù)器數(shù)值在0 ~ MAX之間時,UP=0,對應(yīng)IGBT關(guān)閉;
圖10 死區(qū)發(fā)生器時序圖
下面為死區(qū)時間為N個時鐘周期的VHDL程序,程序的運行結(jié)果如下。
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;//設(shè)置死區(qū)
[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故障處理
在系統(tǒng)中故障檢測信號的處理是把信號引入到CPLD中,然后UP實現(xiàn)UPout=UPF1UN的邏輯后輸出,既保證IPM出現(xiàn)故障時,UP無輸出,又保證UP與UN的反邏輯。
5 結(jié) 語
介紹一種采用CPLD做核心控制器的無刷直流電動機的驅(qū)動電路的設(shè)計。實現(xiàn)電機驅(qū)動所需的換相邏輯、電機運行故障處理以及可以靈活設(shè)置死區(qū)時間的死區(qū)發(fā)生器。該電機驅(qū)動電路可以用于高精度的伺服控制系統(tǒng)中。
參 考 文 獻
[1]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,1998.
[2]張琛.直流無刷電動機原理及應(yīng)用[M].北京:機械工業(yè)出[LL]版社,1999.
[3]穆磊,姜德生,戴珩.基于VHDL的線陣CCD驅(qū)動電路的設(shè)計\[J\].現(xiàn)代電子技術(shù),2007,30(22):138139.
[4]林明權(quán),馬維F.VHDL數(shù)字控制系統(tǒng)設(shè)計范例[M].北京:電子工業(yè)出版社,2003.
[5]佩德羅尼,喬廬峰,王志功.VHDL數(shù)字電路設(shè)計教程[M].北京:電子工業(yè)出版社,2005.
[6]廖日坤.CPLD/FPGA嵌入式應(yīng)用開發(fā)技術(shù)白金手冊[M].北京:中國電力出版社,2005.
[7]宋萬杰,羅豐,吳順君.CPLD技術(shù)及其應(yīng)用[M].西安:西安電子科技大學(xué)出版社,1999.
[8]張熠,丁輝.基于CPLD的CCD驅(qū)動時序電路設(shè)計\[J\].現(xiàn)代電子技術(shù),2007,30(24):169170,176.
熱門標(biāo)簽
相關(guān)文章
1嵌入式系統(tǒng)設(shè)計課程教學(xué)創(chuàng)新策略
2嵌入式系統(tǒng)課程三維一體教學(xué)方法總結(jié)
3網(wǎng)絡(luò)通信嵌入式TCP/IP協(xié)議單片機技術(shù)探索