新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 利用SPMC75F2413A單片機來開發直流變頻洗衣機的原理和方法

        利用SPMC75F2413A單片機來開發直流變頻洗衣機的原理和方法

        作者: 時間:2011-03-27 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/172922.htm

        4.4 水位檢測電路
        圖4-5為洗衣機的水位檢測電路,CON4連接水位傳感器,水壓大小產生LC 震蕩,壓力越小則頻率越大,反之亦然。當接近零水位時,輸出頻率約在27.8KHz。此頻率通過F/V 轉換電路,轉換為模擬電壓輸入至芯片內ADC 模塊來計算水位高低。
        F/V 轉換電路由IC7所產生,電路組件R33 與C36 形成輸入端高通濾波器以濾除直流電壓,輸出電壓大小由R30、C33 與輸入頻率決定,電壓計算式為: Vo = R30 x C33 x Vcc x Fin;其中Vcc 為+5V、Fin 為輸入頻率。


        圖4-5 水位檢測電路

        5系統軟件設計
        變頻洗衣機控制器主要以雙MCU 設計,兩控制器通過串行通訊交換訊息與系統控制,設定SPCE061A 面板控制器為主機,SPMC75F2413A 馬達驅動控制器為從機。主機負責整個傳輸的過程;從機端負責接收主機端傳送的命令并執行,且需響應相對應的ACK 訊號給主機,相對地。當使用者在面板控制器上下達對應的運轉命令后,從機負責執行,當有異常狀況發生時,從機實時回報或直接能夠由主機檢知,利用顯示電路通知使用者。
        因此本系統的軟件開發包括針對馬達驅動、通訊格式與通訊狀態機切換、洗衣機狀態機切換、按鍵掃瞄與狀態顯示等程序為主;以下將針對DMC 控制器與PANEL 控制器重要的程序給予說明。
        5.1 直流無刷馬達驅動程序
        在DMC 控制器主要負責直流變頻馬達驅動,可區分為兩大部分:內回路的電壓控制與外回路的速度控制。內回路電壓控制系針對偵測到的馬達轉子位置(由霍爾組件讀取得到),由于馬達轉子為永久磁石結構,因此由微控制器所輸出的電壓訊號需對應于所讀取到的霍爾組件訊號,在實際的設計例中是以定時器Timer3 產生4000Hz 的固定周期的中斷時間,在每次中斷程序中會對霍爾組件輸入接口作讀取的動作,并輸出相應的電壓H/L與PWM 訊號,此程序以有限狀態機實現,共區分3 個狀態為PHSIDLE、PHSHOLD 與PHSRUN,在PHSIDLE 主要工作在禁能DMC 驅動器并對調控參數進行初始化,PHSHOLD 狀態在保證產生自舉電壓,而PHSRUN 則是真正產生120 度方波訊號,詳細程序流程可參考如圖5-1 所示。


        圖5-1 狀態切換流程

        5.2 馬達轉速計算與控制程序
        洗衣機的直流無刷馬達為同步馬達,亦即馬達的機械轉速與磁場旋轉頻率為同步的。因此可根據馬達的霍爾位置訊號計算脈波寬度的時間即可計算出馬達的實際轉速,達到閉回路的速度控制。利用SPMC75F2413A的PDC0中斷做相位檢測,TPM2定時器中斷計時來完成位置檢測和速度計算。圖5-2為PDC0和TPM2中斷流程。


        圖5.2 PDC0和TPM2中斷流程

        其中PDC0_PDCINT_ISR()負責檢測霍爾組件的脈波寬度,TMR2_TPRINT_ISR()負責當馬達轉速變化時更新實際轉速值并作控制。
        5.3串行通訊程序
        DMC控制器和PANEL 控制器通過UART交換訊息,采用CRC校驗方式,所有的通訊動作的起始、中止與異常檢出皆由PANEL 控制器所主導。
        DMC 控制器以環形隊列(circular queue)存儲數據,串行字符是以中斷接收并儲存在的緩沖區中。DMC 控制器檢查所收到的串行字符命令,若所收到的字符組正確無誤,則對相應的命令回應給PANEL 控制器,若是接收為有效的命令,則執行Decode_RxStream()程序以譯碼出控制命令與數據,并對PANEL 控制器發出ACK訊號;反之,若接收為無效的命令,則對PANEL 控制器發出NACK 的訊息,以利PANEL 控制器作訊息的控制與再傳送的動作。程序流程圖如圖5-3 所示。


        圖5-3 串行通訊程序流程



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东宁县| 临城县| 阳信县| 冀州市| 勐海县| 长兴县| 湘乡市| 米脂县| 额济纳旗| 泰顺县| 辰溪县| 峨眉山市| 马关县| 洛隆县| 忻城县| 绥阳县| 措美县| 峡江县| 于都县| 崇礼县| 贵德县| 韶关市| 同江市| 大理市| 庆安县| 西和县| 兴宁市| 漠河县| 内江市| 武安市| 滕州市| 鲁甸县| 股票| 株洲县| 葵青区| 天镇县| 苏尼特左旗| 韶山市| 皋兰县| 克拉玛依市| 山阴县|