电动机车马达控制系统硬体架构Word格式.doc
- 文档编号:8454118
- 上传时间:2023-05-11
- 格式:DOC
- 页数:25
- 大小:7.64MB
电动机车马达控制系统硬体架构Word格式.doc
《电动机车马达控制系统硬体架构Word格式.doc》由会员分享,可在线阅读,更多相关《电动机车马达控制系统硬体架构Word格式.doc(25页珍藏版)》请在冰点文库上搜索。
一、核心採用TMS320F243(20MIPS)DSP晶片
二、搭配一顆FPGA(MAX7000系列),目前規劃有一個Timer,一個Digital
的I/O,及HallSensor之數位濾波電路,以及記憶體和I/O解碼電路。
此
部分電路有隨修隨改的彈性。
三、DSPUART與PC間之Tranceiver電路。
四、Can-Bus之Tranceiver電路。
五、設計搭配64k的DataRam及ProgramRam,當CPU處於Micro-
Processor模式時,程式於ProgramRam上執行,可以Trace程式碼。
六、CPU內部有8k之FlashMemory,當CPU處於Micro-Computer模式時,
則執行燒錄於FlashMemory之程式。
七、F243及FPGA之腳位皆有外拉,使版子有擴充與修改之彈性。
八、CPU本身有AD,PWM,Capture,DigitalI/O,QEP,SCI(UART),SPI,
CanModule等週邊能力。
九、RealTimeTimer(DS1305)。
2.1.1記憶體電路
由F243的Datasheet得知該顆晶片有8K的Flashmemory,但僅有內建數百個word的DARAM。
由於FlashMemory並不能除錯,因僅在這個EVM板上,我們額外設計了64K的ProgramRam和DataRam,使得程式得以在外部之SRAM上執行。
電路圖如下所示:
Fig2.1.1記憶體電路圖
在記憶體系統中,我們所使用之記憶體為128K*8之SRAM,由於F243乃16bit之單晶片,因此我們需要兩顆SRAM。
在電路中,我們將PS訊號拉至A16,藉此區分程式和資料記憶體。
因為F243在存取程式記憶體時,PS會呈現低電位,如此一來,我們便能將程式記憶體定址在此SRAM的前64kword,將資料記憶體定址在後面的64kword。
Ramoe和Ramwe分別是控制記憶體的讀和寫之腳位,這兩個訊號則是在FPGA中產生。
ramoe<
=not((not(ds)ornot(ps))andrwandnot(strb));
ramwe<
=not((not(ds)ornot(ps))andnot(we));
1這是Ramoe和Ramwe這二個訊號在FPGA中的Funtion。
1其中ds、ps、strb、we的訊號是f243之控制訊號。
2.1.2Buffer之控制電路
Fig2.1.2Buffer控制電路圖
我們在資料匯流排中加了Buffer(74ALS245)的元件,以增加Fanout,這個元件只要控制其何時需要Enable,同時控制其方向。
一般而言,我們在讀寫週期來時,才讓此BufferEnable,同時決定其方向(視系統做讀取或寫入而定)。
這兩個訊號也是在FPGA中產生,其LogicFunction如下:
bufferen<
=not(not(ds)ornot(ps)ornot(io));
bufferdir<
=not((not(ds)ornot(ps)ornot(io))andrwandnot(strb));
1其中ds,ps,io,rw,strb是F243之控制訊號。
2.1.3RS232電路
這部分電路是RS232規格之位準轉換電路,主要是在TTL與PC-RS232介面做一電壓位準轉換。
由於此為標準電路,因此原理便不多做說明。
細節請參閱MAX232CHIP之DataSheet。
電路圖如下所示
Fig2.1.3RS232電路圖
2.1.4PoweronReset電路
這部分是按鈕重置電路,同時利用RC電路可以達到PoweronReset的作用,Poweronreset對CPU在mocro-computer的模式下而言是非常重要的。
Fig2.1.4Reset電路圖
2.1.5電源保護電路
這部分是電源保護電路,圖中電感是吸收突波電流,電容可以吸收突波電壓,而二極體則可以防止電源反接,因為二極體會將電壓限制在0.5V左右。
Fig2.1.5電源保護電路圖
2.1.6特殊腳位Pull-high電路
下頁圖中都是特殊腳位,MP/MC是選擇F243之工作模式,我們可以利用J10的jump去調整。
BIO/IOPC1腳當是BIO模式時,CPU可利用此外部訊號做條件
式跳躍。
Ready腳位則是可以做wait-state的延長。
NMI則是外部non-maskable之中斷。
PDINT是一個外部中斷訊號,主要做Power-drive電路保護,如過電流,或過溫等。
這些訊號在電路上是先Pull-high,因此使用者可以依自己需要再加電路上去。
Fig2.1.6特殊腳位電路圖
2.1.7JTAG電路
這部分電路是F243晶片的JTAG電路,這是TI公司所提供之標準電路,用以Trace程式碼之執行,電路圖如下所示:
Fig2.1.7JTAG電路圖
2.1.8CanBusTranceiver電路
這部分是Canbus的Tranceiver電路,此亦為一標準電路。
F243之CanBus為2.0B的版本。
此部分電路為處理器內部CanModule和外部CanBus間之傳送電路。
Fig2.1.8CanBusTranceiver電路圖
2.2FPGA設計說明
在F243BasedEVM版這部分的電路中,FPGA是很重要的一部份電路,這一部份之主要處理的訊號如下:
1輸入訊號:
io,ds,ps,rw,strb,we:
從F243所送出之匯流排的控制訊號
Address_bus(7downto0):
位址匯流排訊號A0~A7。
data_bus(15downto0):
資料匯流排訊號D0~D15。
Ha,Hb,Hc:
馬達Hall-Sensor之輸入訊號
1
輸出訊號:
digitalout(7downto0):
DigitalOutputPort。
ramoe,ramwe:
記憶體讀寫控制訊號。
Haout,Hbout,Hcout:
馬達Hall-Sensor經數位濾波之輸出訊號。
Bufferen,Bufferdir:
Buffer(74ALS245)之控制訊號。
ñ
MAXTD0,MAXTDI,MAXTCK,MAXTMS:
燒錄接腳。
1FPGA外觀圖
Fig2.2.0FPGA之外觀圖
整個FPGA的內部電路可以區分為以下五個部分:
一、記憶體與Buffer控制電路。
二、IO解碼電路。
三、Timer計數及其控制電路。
四、數位Pulse濾波電路。
五、LED控制暫存器。
2.2.1記憶體與Buffer控制電路
1記憶體的讀取:
當對程式或資料記憶體做讀取的動作,且位址匯流排訊號穩
定時,便enable讀取記憶體之功能。
VHDL之程式如下:
ramoe<
1記憶體寫入:
當對程式或資料記憶體做寫入的動作,且位址匯流排訊號穩定
時,便enable寫入記憶體之功能。
ramwe<
1Buffer致能:
當有對I/O,DataMemory,或ProgramMemory進行讀寫動作
bufferen<
時,便致能Buffer。
1Buffer之方向:
當有對I/O,DataMemory,或ProgramMemory進行讀取動作
時,其方向乃Device=>
CPU,當有對I/O,DataMemory,或ProgramMemory
進行寫入動作時,其方向乃CPU=>
Device。
VHDL程式如下:
bufferdir<
2.2.2解碼電路
I/OSpaceinFPGA:
由於只有拉A0~A7至FPGA內,因此在FPGA內最多只有256個I/Ospace,在真實應用中,也不太可能需要此多的I/Ospace,所以在此FPGA中,我們僅規劃了8個不同的I/O位址,也就是產生8條致能訊號線,去致能不同的Device。
我們整理如下:
I/Oaddress:
0x0=>
ReadtheValueofTimer。
0x1=>
WritetoDigitalOutBuffer。
0x2=>
WritetoTimerControlRegister。
0x3=>
ReadtheOverStatusoftimer。
ñ
其餘的I/Oaddress尚未使用。
解碼方式
首先將Baseaddress設定至00h,然後當baseaddress正確且進行I/O的動作同時位址匯流排訊號穩定時,致能接下來的3to8之解碼動作。
comp<
='
0'
when((address_bus(7downto3)="
00000"
)
and(strb='
)and(io='
))
else
'
1'
;
上面的程式明顯可以看出,是對A0~A2做3to8之解碼,當comp是高電位時,則不產生任何致能訊號。
寫入Register
在電路中,寫入Register有Leveltriger和Edgetriger兩種。
在這個FPGA中是採用EdgeTriger的方式,去寫入Register,我們以Digitaloutbuffer為例(Digitaloutbuffer主要是用來控制LED燈的閃爍),來看如何以VHDL的語言描述此一動作:
cs1<
=cs
(1);
process(cs1,data_bus)
begin
if(cs1'
eventandcs1='
)then
digitaloutbuffer<
=data_bus(7downto0);
else
digitaloutbuffer<
=digitaloutbuffer;
endif;
endprocess;
digitalout<
2.2.3Timer計數電路及控制電路
由於F243內部僅有兩個Timer,在電動車控制系統設計過程中,發現缺少一個Timer,故在FPGA中再規劃了一個Timer,同時搭配一個控制暫存器,以控制這個Timer的動作。
暫存器設定及VHDL語言如下
00:
Timercontinuecounting。
10:
HoldthecurrentvalueofTimer。
01and11:
ClearthevalueofTimer。
process(clk,hold,clear,t3cnt)
begin
if(clk'
eventandclk='
)then
if(hold='
andclear='
)then
t3cnt<
=t3cnt+'
elsif(hold='
=t3cnt;
else
=(others=>
'
);
endif;
endif;
endprocess;
2.2.4數位Pulse濾波電路
由於HallSensor回授回來之訊號常常受到干擾,尤其當通過馬達之電流變,大時,而HallSensor乃是重要的迴授訊號,一旦訊號干擾太嚴重,將導致馬達驅動不順暢,為了解決這樣的問題,我們先將Hall-Sensor通過一個數位濾波器,然後才由DSP讀入。
示意圖如下所示
HallSignal
ToDsp
DFF
JKFF
Fig2.2.4數位濾波電路圖
上圖是數位Pulse濾波器之電路,串聯級數增加,則濾波的效果越好,在這個系統中,我們以1MHz的Clock取樣10次,所以可以濾掉寬度小於10us之雜訊。
LED控制暫存器
我們在FPGA中規劃一個暫存器,主要目的用以控制LED之閃爍來幫助我們做程式的Debug。
2.3使用F234及FPGA的優點
由於半導體技術的突飛猛進,DSP處裡器本身整合了許多週邊,而FPGA的盛行,使得電路設計更彈性與便利,在設計F243-BasedEVM這部分的電路時,我們便藉著F243Powerful的週邊及運算能力和FPGA設計的快速與便利,將開發的時程縮短,同時也縮小版子的面積。
2.4馬達驅動及訊號處理電路版
1這一塊類比版主要可以分為幾個部分:
一、IR2110之電路(MOSFET之前級驅動IC)。
二、馬達過溫保護及過電流之限流保護電路。
三、電瓶、馬達電流、油門輸入訊號濾波及放大電路。
四、Relay、蜂鳴器、LED等控制電路。
五、HallSensor訊號輸入。
六、PWM訊號轉成DC電壓電路(控制電量及時速表)。
七、腳架,Turbo,煞車等訊號輸入。
2.4.1IR2110驅動IC電路
Fig2.4.1IR2110驅動IC電路圖
上圖之電容(100u/25V)和快速二極體(MUR120)主要作用乃是利是使VB和VS維持15V的壓差。
不過要使電容充電的條件是UHS必須是低電位,亦即在下臂導通之情況。
只要電容壓差下降時,就有機會被重新充電,IR2110之輸出則會隨著輸入的ON-OFF而跟著ON-OFF。
SD則接往電流限流電路,以期能達到硬體限流的目的。
詳細細節則可參考IR2110之資料。
2.4.2DC側馬達電流訊號放大及濾波電路
Fig2.4.2DC側馬達電流訊號放大及濾波電路圖
在電動機車控制系統中,我們量測DC側馬達總電流的方式是透過PowerModule上Shunt元件來量測的,Shunt元件本身是一個可以通過大電流的小電阻,其規格為1m歐母。
由於量測電流的元件為Shunt,因此大電流時所量測到的訊號仍然很小,也因此雜訊相對於訊號而言相當的明顯,所以必須適度的濾掉雜訊,在此我們濾掉雜訊的方式是在硬體上通過一個濾波器,同時在在DSP的程式裡亦實現一個FIR濾波器,將雜訊予以去除。
2.4.3硬體限流電路
上圖是硬體限流電路,先將馬達電流訊號的36倍(signalA)放大2.8倍,經半波整流後,接往利用LM393比較器所形成之Smith觸發電路,來達到硬體限流的目的。
目前這個電路之限流值為120A,一旦超過此安培數,則立刻把IR2110給關掉,當電流小於118A則會使IR2110恢復原來的模式。
下圖中的SD接腳乃是接往IR2110的SD腳位。
當SD訊號變成High時,會將IR2110的輸出腳位全部變成Low,來達到關掉MOSFET的目的。
在電路圖中,SD接腳乃是接往IR2110的SD腳位。
在電路圖中,我們只要更改電阻值,便可以改變硬體限流值及窗形區間的大小。
硬體限流用以防止系統完全當掉時,硬體電路對PowerModule所做的最後保護。
Fig2.4.3硬體限流電路
2.4.4軟體限流電路
這是一個軟體限流的保護電路,限流值視當時有無過溫而定,如果過溫限流值較小,沒過溫則限流值便可以設大一點。
如上圖,當TS_M1和TS_M2短路則代表馬達沒有過溫,TH_SW1和TH_SW2短路則代表PowerModule沒有過溫。
此時的限流值經推算可得為105A。
而在有過溫的情況下,即TS或TH斷路,經推算則可得其限流值約為45A。
一旦電路量測到的電壓超過額定直(亦即電流值超過限流值),IOPB7的接腳會設定成為High,F243只要去讀這根腳位,便可判斷是否有過電流的情況。
一般而言,軟體限流是發生於電動機車上坡時,因為此時的電流往往很大,為了保護PowerModule,採取軟體限流是必然的作法。
電路如下所示
Fig2.4.4軟體限流電路圖
2.4.5油門輸入電路
此乃一電壓隨耦電路,利用其輸入阻抗大,輸出阻抗小,來忠實的反應油門訊號,做為油門訊號與F243輸入腳位間之緩衝電路。
這一部份的電路如下頁電路圖所示
Fig2.4.5油門輸入電路圖
2.4.6HALLSensor電路
Fig2.4.6HALLSensor電路圖
由於HALL元件本身是開集極輸出,因此接了一顆4.7k歐姆的電阻來PULL-High,且其後接上Low-PassFilter以濾掉高頻之雜訊。
2.4.7Relay控制電路
這部分的電路主要是控制一顆Relay,這一顆Relay主要決定馬達是否要通過電流。
例如Reset時,Relay是斷路的,因此馬達無法過電,待初始化完成後
再將Relay導通,使馬達可以過電。
因此,馬達是否要吃電,可以程式去控制,以達到保護之功能,電路圖如下所示。
Fig2.4.7Relay控制電路圖
2.4.8電瓶電壓迴授電路
這一部份的電路主要是將電瓶電壓迴授回來,由電路圖可以知道,這部分電路乃是將原本範圍為12V的電壓轉成範圍5V的電壓,同時加以濾波,防止雜訊干擾。
這個電路一共有4個Channel,分別量取四顆電瓶之電壓。
Fig2.4.8電瓶電壓迴授電路圖
2.4.9TurboRelay控制電路
Fig2.4.9TurboRelay控制電路圖
這一部份是TurboRelay的控制電路,主要的目的是要控制系統是處於TurboMode或者不是TurboMode,如果是TurboMode則須要提高限流值,使電動機車可以更高速,這個模式可以用於極高速行駛或者上坡時使用。
這部分電路乃與軟體限流電路相關,亦即軟體限流大小會受到TurboRelay開關影響。
2.4.10Buzzer控制電路
Fig2.4.10Buzzer控制電路圖
這一部份的電路主要是做Buzzer電路之控制,主要用途是可以讓人知道是否有異常狀況發生,也就是當CPU偵測到異常狀況時,可以藉由Buzzer的響起,讓人知道可能有異常狀況。
2.4.11PWM訊號轉成DC電壓電路
Fig2.4.11PWM訊號轉成DC電壓電路圖
在實際的應用中,我們必須有油表及時速表等資訊,油表及時速表是藉著DC電壓來控制其大小,在這個電路中,我們將PWM訊號轉成DC電壓,由DutyRatio的大小便可以調整DC電壓的大小。
2.4.12輸入訊號電路
Fig2.4.12輸入訊號電路圖
在電動機車控制系統中,常常有一些重要的訊號輸入,如Turbo訊號輸入,煞車訊號輸入,腳架訊號輸入等,這些訊號都是電動機車系統所必須知道的重要訊號,根據這些訊號,系統必須做一些重要的處理。
例如煞車時,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电动 机车 马达 控制系统 硬体 架构