利用SPMC75F2413A單片機(jī)來(lái)開(kāi)發(fā)直流變頻洗衣機(jī)的原理和方法
4.4 水位檢測(cè)電路
圖4-5為洗衣機(jī)的水位檢測(cè)電路,CON4連接水位傳感器,水壓大小產(chǎn)生LC 震蕩,壓力越小則頻率越大,反之亦然。當(dāng)接近零水位時(shí),輸出頻率約在27.8KHz。此頻率通過(guò)F/V 轉(zhuǎn)換電路,轉(zhuǎn)換為模擬電壓輸入至芯片內(nèi)ADC 模塊來(lái)計(jì)算水位高低。
F/V 轉(zhuǎn)換電路由IC7所產(chǎn)生,電路組件R33 與C36 形成輸入端高通濾波器以濾除直流電壓,輸出電壓大小由R30、C33 與輸入頻率決定,電壓計(jì)算式為: Vo = R30 x C33 x Vcc x Fin;其中Vcc 為+5V、Fin 為輸入頻率。
圖4-5 水位檢測(cè)電路
5系統(tǒng)軟件設(shè)計(jì)
變頻洗衣機(jī)控制器主要以雙MCU 設(shè)計(jì),兩控制器通過(guò)串行通訊交換訊息與系統(tǒng)控制,設(shè)定SPCE061A 面板控制器為主機(jī),SPMC75F2413A 馬達(dá)驅(qū)動(dòng)控制器為從機(jī)。主機(jī)負(fù)責(zé)整個(gè)傳輸?shù)倪^(guò)程;從機(jī)端負(fù)責(zé)接收主機(jī)端傳送的命令并執(zhí)行,且需響應(yīng)相對(duì)應(yīng)的ACK 訊號(hào)給主機(jī),相對(duì)地。當(dāng)使用者在面板控制器上下達(dá)對(duì)應(yīng)的運(yùn)轉(zhuǎn)命令后,從機(jī)負(fù)責(zé)執(zhí)行,當(dāng)有異常狀況發(fā)生時(shí),從機(jī)實(shí)時(shí)回報(bào)或直接能夠由主機(jī)檢知,利用顯示電路通知使用者。
因此本系統(tǒng)的軟件開(kāi)發(fā)包括針對(duì)馬達(dá)驅(qū)動(dòng)、通訊格式與通訊狀態(tài)機(jī)切換、洗衣機(jī)狀態(tài)機(jī)切換、按鍵掃瞄與狀態(tài)顯示等程序?yàn)橹?;以下將針?duì)DMC 控制器與PANEL 控制器重要的程序給予說(shuō)明。
5.1 直流無(wú)刷馬達(dá)驅(qū)動(dòng)程序
在DMC 控制器主要負(fù)責(zé)直流變頻馬達(dá)驅(qū)動(dòng),可區(qū)分為兩大部分:內(nèi)回路的電壓控制與外回路的速度控制。內(nèi)回路電壓控制系針對(duì)偵測(cè)到的馬達(dá)轉(zhuǎn)子位置(由霍爾組件讀取得到),由于馬達(dá)轉(zhuǎn)子為永久磁石結(jié)構(gòu),因此由微控制器所輸出的電壓訊號(hào)需對(duì)應(yīng)于所讀取到的霍爾組件訊號(hào),在實(shí)際的設(shè)計(jì)例中是以定時(shí)器Timer3 產(chǎn)生4000Hz 的固定周期的中斷時(shí)間,在每次中斷程序中會(huì)對(duì)霍爾組件輸入接口作讀取的動(dòng)作,并輸出相應(yīng)的電壓H/L與PWM 訊號(hào),此程序以有限狀態(tài)機(jī)實(shí)現(xiàn),共區(qū)分3 個(gè)狀態(tài)為PHSIDLE、PHSHOLD 與PHSRUN,在PHSIDLE 主要工作在禁能DMC 驅(qū)動(dòng)器并對(duì)調(diào)控參數(shù)進(jìn)行初始化,PHSHOLD 狀態(tài)在保證產(chǎn)生自舉電壓,而PHSRUN 則是真正產(chǎn)生120 度方波訊號(hào),詳細(xì)程序流程可參考如圖5-1 所示。
圖5-1 狀態(tài)切換流程
5.2 馬達(dá)轉(zhuǎn)速計(jì)算與控制程序
洗衣機(jī)的直流無(wú)刷馬達(dá)為同步馬達(dá),亦即馬達(dá)的機(jī)械轉(zhuǎn)速與磁場(chǎng)旋轉(zhuǎn)頻率為同步的。因此可根據(jù)馬達(dá)的霍爾位置訊號(hào)計(jì)算脈波寬度的時(shí)間即可計(jì)算出馬達(dá)的實(shí)際轉(zhuǎn)速,達(dá)到閉回路的速度控制。利用SPMC75F2413A的PDC0中斷做相位檢測(cè),TPM2定時(shí)器中斷計(jì)時(shí)來(lái)完成位置檢測(cè)和速度計(jì)算。圖5-2為PDC0和TPM2中斷流程。
圖5.2 PDC0和TPM2中斷流程
其中PDC0_PDCINT_ISR()負(fù)責(zé)檢測(cè)霍爾組件的脈波寬度,TMR2_TPRINT_ISR()負(fù)責(zé)當(dāng)馬達(dá)轉(zhuǎn)速變化時(shí)更新實(shí)際轉(zhuǎn)速值并作控制。
5.3串行通訊程序
DMC控制器和PANEL 控制器通過(guò)UART交換訊息,采用CRC校驗(yàn)方式,所有的通訊動(dòng)作的起始、中止與異常檢出皆由PANEL 控制器所主導(dǎo)。
DMC 控制器以環(huán)形隊(duì)列(circular queue)存儲(chǔ)數(shù)據(jù),串行字符是以中斷接收并儲(chǔ)存在的緩沖區(qū)中。DMC 控制器檢查所收到的串行字符命令,若所收到的字符組正確無(wú)誤,則對(duì)相應(yīng)的命令回應(yīng)給PANEL 控制器,若是接收為有效的命令,則執(zhí)行Decode_RxStream()程序以譯碼出控制命令與數(shù)據(jù),并對(duì)PANEL 控制器發(fā)出ACK訊號(hào);反之,若接收為無(wú)效的命令,則對(duì)PANEL 控制器發(fā)出NACK 的訊息,以利PANEL 控制器作訊息的控制與再傳送的動(dòng)作。程序流程圖如圖5-3 所示。
圖5-3 串行通訊程序流程
評(píng)論