本文主要介紹利用SPMC75F2413A單片機(jī)來開發(fā)直流變頻洗衣機(jī)的原理和方法,。
1 引言
洗衣機(jī)是一種在家庭中不可缺少的家用電器,,發(fā)展非???,全自動式洗衣機(jī)因使用方便得到大家的青睞,,全自動即進(jìn)水,、洗滌,、漂洗,、甩干等一系列過程自動完成,,控制器通常設(shè)有幾種洗滌程序,,對不同的衣物可供用戶選擇。變頻控制依其高性能,、節(jié)能等優(yōu)點(diǎn)在洗衣機(jī)的控制中得到廣泛應(yīng)用,,下面介紹采用凌陽科技公司的SPMC75F2413A和SPCE061A單片機(jī)來設(shè)計的直流變頻洗衣機(jī)的控制系統(tǒng)。
2 芯片特性簡介
SPMC75F2413A是凌陽科技公司開發(fā)的用于變頻驅(qū)動的嵌入式16位微控制器,,適用于變頻電動機(jī)驅(qū)動,、電源、家電和車內(nèi)風(fēng)扇控制系統(tǒng)等領(lǐng)域,。
特性包括:
◆ 凌陽16位u’nSP處理器(ISA 1.2)
◆ 工作電壓:4.5V~5.5V
◆ 最高運(yùn)行速度:24MHz
◆ 工作溫度: -40 ℃~85 ℃
◆ 芯片內(nèi)存儲器:
32KW (32K×16) Flash
2KW (2K×16) SRAM
◆ 基于時鐘發(fā)生模塊的鎖相環(huán)電路
◆ 看門狗定時器
◆ 10位模/數(shù)轉(zhuǎn)換器
8通道輸入
10us (100kHz)轉(zhuǎn)換時間
◆ 串行通訊接口
通用異步串行通訊接口(UART)
標(biāo)準(zhǔn)外圍接口(SPI)
◆ 64(QFP80)/53(QFP64,、SDIP64)個通用輸入輸出管腳
◆ 電源管理
2種低功耗模式:Wait/Standby
每個外設(shè)都可以獨(dú)立的供電
◆ 兩個比較匹配定時器
◆ 5個16位通用定時器
2個用于驅(qū)動電機(jī)的脈寬調(diào)制輸出(互補(bǔ)的3相6路脈寬調(diào)制輸出)
2個用于速度捕獲
1個用于速度反饋環(huán)
◆ 中心(center)或邊沿(edge)脈寬調(diào)制輸出
◆ 通過外部錯誤保護(hù)管腳進(jìn)行脈寬調(diào)制輸出保護(hù)
◆ 可編程的死區(qū)控制(Dead time control)
◆ 脈寬調(diào)制服務(wù)和錯誤中斷發(fā)生
◆ 具備驅(qū)動交流感應(yīng)電機(jī)和直流無刷電機(jī)的能力
◆ 內(nèi)嵌在線仿真功能(ICE)
3 系統(tǒng)總體方案介紹
整個系統(tǒng)主要由兩部分組成:由SPMC75F2413A控制的DMC控制板和由SPCE061A控制的PANEL板,兩者之間的連接系統(tǒng)方塊圖如圖3-1所示,。
圖3-1 變頻洗衣機(jī)系統(tǒng)組成框圖
PANEL控制器采用16 位SPCE061A控制器,,主要完成的功能有:按鍵掃瞄、狀態(tài)顯示與通訊,。洗衣機(jī)的控制通過按鍵輸入來選擇操作模式,,并可設(shè)定選擇水量、預(yù)約時間,,詳細(xì)設(shè)定洗衣,、洗凈及脫水的參數(shù),;電源按鍵鈕為起始與驅(qū)動控制電路板的連接,起動或暫停鍵為運(yùn)轉(zhuǎn)洗衣機(jī)或暫停,。運(yùn)轉(zhuǎn)過程中的剩余時間透過7 段顯示器來顯示,。
DMC 控制器采用16 位SPMC75F2413A 單芯片控制器,主要完成的功能有:偵測馬達(dá)轉(zhuǎn)子的位置訊號,,以120 度方波驅(qū)動PWM 方式驅(qū)動直流無刷馬達(dá),。
4 系統(tǒng)硬件設(shè)計
系統(tǒng)控制包括DMC控制板和PANEL控制板兩部分,下面主要介紹DMC控制板硬件設(shè)計,。
4.1 電源電路
圖4-1為EMI 電源濾波器與單相全橋整流器電路,,AC 電源輸入接頭為CON1,電壓為220VAC,,電源輸入端通過突波吸收器ZNR3以避免過大的電壓突波損壞器件,,C8 與C12 串聯(lián)后連接至接地點(diǎn),通常也可以連接至機(jī)殼,。透過全橋整流器DB1整流,、C13 濾波后可得到輸出直流電壓。
圖4-1 EMI 電源濾波器
圖4-2為DC/DC電源供應(yīng)電路,,電源供應(yīng)器的輸出側(cè)電源為P+18V 與+12V,。P+18V 電源輸出后分別透過IC21與IC22 產(chǎn)生P+15V 與P+5V,以供給IPM 功率模塊的工作電壓,。而+12V 經(jīng)線性穩(wěn)壓器IC20產(chǎn)生+5V 電源供給SPMC75F2413A 等數(shù)字電路的工作電壓,。
圖4-2 DC/DC電源供應(yīng)電路
4.2 MCU控制電路
圖4-3為MCU控制電路,此部分的電路主要是以u’nSP SPMC75F2413A 微控制器為主,,CON5連接在線調(diào)試,、仿真器ICE。
圖4-3 MCU控制電路
4.3 IPM馬達(dá)驅(qū)動電路
圖4-4為IPM馬達(dá)驅(qū)動電路,,因?yàn)轵?qū)動的馬達(dá)為三相變頻,,因此一般來說微控制器需具備能夠輸出6 個PWM 訊號的能力,SPMC75F2413A 在芯片硬件上可由MCP 與PDC 定時器模塊完成此功能,。IPM 模塊內(nèi)集成了驅(qū)動回路與過電流檢測電路,,MCU 的PWM 輸出訊號通過光耦送到IPM 模塊,但在實(shí)際應(yīng)用上需考慮到對MCU 的保護(hù)以及與快速地對IPM 模塊產(chǎn)生高阻抗訊號,,光耦的正常驅(qū)動,,因此在電路中加入了IC12 的緩沖電路;過電流回饋訊號經(jīng)光耦合器后連接到FTINx 的輸入腳,,以求能夠?qū)PM 模塊快速地保護(hù),。D5、D6、D7,、C37,、C40 與C43 產(chǎn)生組成自舉電路提供IPM上臂開關(guān)的驅(qū)動信號。
圖4-4 IPM馬達(dá)驅(qū)動電路
4.4 水位檢測電路
圖4-5為洗衣機(jī)的水位檢測電路,,CON4連接水位傳感器,,水壓大小產(chǎn)生LC 震蕩,壓力越小則頻率越大,,反之亦然,。當(dāng)接近零水位時,輸出頻率約在27.8KHz,。此頻率通過F/V 轉(zhuǎn)換電路,,轉(zhuǎn)換為模擬電壓輸入至芯片內(nèi)ADC 模塊來計算水位高低。
F/V 轉(zhuǎn)換電路由IC7所產(chǎn)生,,電路組件R33 與C36 形成輸入端高通濾波器以濾除直流電壓,輸出電壓大小由R30,、C33 與輸入頻率決定,,電壓計算式為: Vo = R30 x C33 x Vcc x Fin;其中Vcc 為+5V,、Fin 為輸入頻率,。
圖4-5 水位檢測電路
5 系統(tǒng)軟件設(shè)計
變頻洗衣機(jī)控制器主要以雙MCU 設(shè)計,兩控制器通過串行通訊交換訊息與系統(tǒng)控制,,設(shè)定SPCE061A 面板控制器為主機(jī),,SPMC75F2413A 馬達(dá)驅(qū)動控制器為從機(jī)。主機(jī)負(fù)責(zé)整個傳輸?shù)倪^程,;從機(jī)端負(fù)責(zé)接收主機(jī)端傳送的命令并執(zhí)行,,且需響應(yīng)相對應(yīng)的ACK 訊號給主機(jī),相對地,。當(dāng)使用者在面板控制器上下達(dá)對應(yīng)的運(yùn)轉(zhuǎn)命令后,,從機(jī)負(fù)責(zé)執(zhí)行,當(dāng)有異常狀況發(fā)生時,,從機(jī)實(shí)時回報或直接能夠由主機(jī)檢知,,利用顯示電路通知使用者。
因此本系統(tǒng)的軟件開發(fā)包括針對馬達(dá)驅(qū)動,、通訊格式與通訊狀態(tài)機(jī)切換,、洗衣機(jī)狀態(tài)機(jī)切換、按鍵掃瞄與狀態(tài)顯示等程序?yàn)橹?;以下將針對DMC 控制器與PANEL 控制器重要的程序給予說明,。
5.1 直流無刷馬達(dá)驅(qū)動程序
在DMC 控制器主要負(fù)責(zé)直流變頻馬達(dá)驅(qū)動,可區(qū)分為兩大部分:內(nèi)回路的電壓控制與外回路的速度控制。內(nèi)回路電壓控制系針對偵測到的馬達(dá)轉(zhuǎn)子位置(由霍爾組件讀取得到),,由于馬達(dá)轉(zhuǎn)子為永久磁石結(jié)構(gòu),,因此由微控制器所輸出的電壓訊號需對應(yīng)于所讀取到的霍爾組件訊號,在實(shí)際的設(shè)計例中是以定時器Timer3 產(chǎn)生4000Hz 的固定周期的中斷時間,,在每次中斷程序中會對霍爾組件輸入接口作讀取的動作,,并輸出相應(yīng)的電壓H/L與PWM 訊號,此程序以有限狀態(tài)機(jī)實(shí)現(xiàn),,共區(qū)分3 個狀態(tài)為PHSIDLE,、PHSHOLD 與PHSRUN,在PHSIDLE 主要工作在禁能DMC 驅(qū)動器并對調(diào)控參數(shù)進(jìn)行初始化,,PHSHOLD 狀態(tài)在保證產(chǎn)生自舉電壓,,而PHSRUN 則是真正產(chǎn)生120 度方波訊號,詳細(xì)程序流程可參考如圖5-1 所示,。
圖5-1 狀態(tài)切換流程
5.2 馬達(dá)轉(zhuǎn)速計算與控制程序
洗衣機(jī)的直流無刷馬達(dá)為同步馬達(dá),,亦即馬達(dá)的機(jī)械轉(zhuǎn)速與磁場旋轉(zhuǎn)頻率為同步的。因此可根據(jù)馬達(dá)的霍爾位置訊號計算脈波寬度的時間即可計算出馬達(dá)的實(shí)際轉(zhuǎn)速,,達(dá)到閉回路的速度控制,。利用SPMC75F2413A的PDC0中斷做相位檢測,TPM2定時器中斷計時來完成位置檢測和速度計算,。圖5-2為PDC0和TPM2中斷流程,。
圖5.2 PDC0和TPM2中斷流程
其中PDC0_PDCINT_ISR()負(fù)責(zé)檢測霍爾組件的脈波寬度,TMR2_TPRINT_ISR()負(fù)責(zé)當(dāng)馬達(dá)轉(zhuǎn)速變化時更新實(shí)際轉(zhuǎn)速值并作控制,。
5.3 串行通訊程序
DMC控制器和PANEL 控制器通過UART交換訊息,,采用CRC校驗(yàn)方式,所有的通訊動作的起始,、中止與異常檢出皆由PANEL 控制器所主導(dǎo),。
DMC 控制器以環(huán)形隊列(circular queue)存儲數(shù)據(jù),串行字符是以中斷接收并儲存在的緩沖區(qū)中,。DMC 控制器檢查所收到的串行字符命令,,若所收到的字符組正確無誤,則對相應(yīng)的命令回應(yīng)給PANEL 控制器,,若是接收為有效的命令,,則執(zhí)行Decode_RxStream()程序以譯碼出控制命令與數(shù)據(jù),并對PANEL 控制器發(fā)出ACK訊號,;反之,,若接收為無效的命令,則對PANEL 控制器發(fā)出NACK 的訊息,,以利PANEL 控制器作訊息的控制與再傳送的動作,。程序流程圖如圖5-3 所示,。
圖5-3 串行通訊程序流程
5.4 PANEL控制器韌體說明
當(dāng)按下『電源』按鍵時,PANEL 控制器將會開始通訊動作,,嘗試與DMC 控制器握手特定的訊息內(nèi)容,,當(dāng)從回傳的字符組被PANEL 控制器認(rèn)可后,才可接受使用者對洗衣機(jī)的操作,;否則,,將判定為通訊異常情況發(fā)生。當(dāng)使用者已經(jīng)選擇將洗衣模式與參數(shù)內(nèi)容后,,按下『啟動/暫?!话存I會使馬達(dá)開始運(yùn)轉(zhuǎn)。系統(tǒng)預(yù)設(shè)有4 種運(yùn)轉(zhuǎn)程序,,對應(yīng)的洗衣參數(shù)見表5-1:
表5-1 洗衣程序內(nèi)容
上表在P1 程序可單獨(dú)調(diào)整個別參數(shù),,但P0、P2 與P3 程序則無法更改系統(tǒng)默認(rèn)值,。舉例說明,,當(dāng)使用者只需要對作衣物脫水的動作,只需要將洗衣時間,、洗衣次數(shù)對應(yīng)的7 段顯示器調(diào)整至不顯示,,再調(diào)整所需的脫水時間,按下啟動按鍵,,即進(jìn)入脫水模式。
『預(yù)約時間』的設(shè)定則由3 小時至9 小時,,每次調(diào)整間隔1 小時,。上述功能在軟件設(shè)計上是以定時器中斷執(zhí)行,時間的設(shè)定利用Timer B 定時器(IRQ2 中斷),,設(shè)定為8000Hz 頻率中斷,,在此程序中分為2 個time slice,分別為Tick1Func 與Tick2Func,,程序如圖5-4 所示,,因此Tick1Func 與Tick2Func 程序的執(zhí)行頻率為4000Hz。
圖5-4 IRQ2 中斷流程
在Tick1Func程序中,,除了對按鍵輸入作掃瞄的動作,,另外依據(jù)按下的按鍵內(nèi)容更改SystemT 與SystemF 結(jié)構(gòu)的內(nèi)容,其中SystemT 主要儲存設(shè)定洗衣參數(shù)內(nèi)容并更新SA7Wash 的結(jié)構(gòu)(用于狀態(tài)機(jī)切換),, ystemF 為紀(jì)錄運(yùn)轉(zhuǎn)的狀態(tài)標(biāo)志,。當(dāng)洗衣參數(shù)被更改后,將會改變預(yù)估洗衣完成時間,,并于7 段顯示器中顯示,。Tick2Func 程序負(fù)責(zé)掃瞄電路上的顯示電路,采用高速的循序顯示,以節(jié)省IO 接口的資源,,此程序并包含依據(jù)水量的預(yù)估來提示使用者所需加入的洗劑量,。
6 結(jié)語
該系統(tǒng)采用凌陽科技公司的SPMC75F2413A和SPCE061A單片機(jī)來完成直流變頻洗衣機(jī)的控系統(tǒng)制,SPMC75F2413A為專用于變頻馬達(dá)控制的IC,,其強(qiáng)大的PWM輸出功能使得程序開發(fā)非常方便,。SPCE061A除了具有普通單片機(jī)的功能以外,還具有語音識別,、語音錄放等功能,,可以將洗衣機(jī)的一些使用狀態(tài)、常識播報出來,。