新闻中心

EEPW首页>嵌入式系统>设计应用> 利用SPMC75F2413A单片机来开发直流变频洗衣机的原理和方法

利用SPMC75F2413A单片机来开发直流变频洗衣机的原理和方法

作者: 时间:2011-03-27 来源:网络 收藏

本文引用地址: //m.amcfsurvey.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 串行通讯程序流程



评论


相关推荐

技术专区

关闭