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