原创 关于多媒体桌面音响碟机门处理的改进

2010-1-16 22:08 1253 7 7 分类: 采购与分销

鉴于对于DVD在待机状态的控制能力的限制,以及其干扰的实际存在,我们现在对其门处理作出修改:

1,门由MCU完全控制,门状态也由MCU完全监控
2,同车载不同,组合音响的门检测仅仅依赖开关来实现,没有检测二极管的处理过程
3,系统通电或者从STAND BY(时钟状态)中启动,首先要做出碟机关门的操作,确保开始工作时,门是关闭的。
4,如果系统进入DVD状态,开关门的操作过程,MCU要通知DVD芯片,进行屏幕显示和状态匹配
5,在非DVD状态,用户用按键和遥控开门,MCU进行操作,不影响当前工作状态
6,在非DVD状态,用户用按键、遥控或者推门关门,MCU执行状态切换到DVD的操作
    在MCU直接控制门的操作中,要注意,开门和关门到位,从检测到开关变化,至停止动作之间,需要有一个多次检测开关和延时,保证机构稳定锁定,同时这个时间也不能太长,否则会因为堵转,导致烧毁电路。
7,由于门完全由MCU控制,门的动作控制是独立的,系统工作状态切换等操作,不受门状态影响。

    组合音响碟机门状态和处理总结:

系统启动时,需要自动进行一次关门操作。

 

   用户按键和遥控开门操作 用户按键和遥控关门操作  用户推动关闭已经开启的门 
 系统开启引导期间 X X X
 碟机工作 停止旋转,开门 关门 关门,检查和引导新的碟片 
 USB工作 开门,显示 关门,进入碟机工作状态 关门,进入碟机工作状态 
 CARD工作 开门,显示 关门,进入碟机工作状态 关门,进入碟机工作状态 
 AM/FM工作 开门,panel显示门动作 关门,进入碟机工作状态  关门,进入碟机工作状态 
 AUX工作 开门,panel显示门动作 关门,进入碟机工作状态 关门,进入碟机工作状态
 时钟待机状态 开门,进入碟机工作状态 X X

门的程序处理方法:

1,系统在按键处理程序中处理用户请求和启动门动作。
2,在循环程序中,保持一定间隔时间来监控和调整门的动作。
3,我们设计一个字节变量来记录门的状态,同时设置一个定时保护

--------------------------------------------------------------
变量设置:
当前门状态:无符号字节
    常数:
    门处于关闭状态
    门处于等待碟片刹车状态    (保护定时3秒)
    门处于等待开启到达状态    (保护定时4秒)
    门处于等待开启到达延时状态 (保护定时300mS)
    门处于等待关闭到达状态    (保护定时4秒)
    门处于等待关闭到达延时状态 (保护定时300mS)
    门处于开启状态
门超时保护定时:无符号字节
    门处于等待碟片刹车时间常数 = 3S
    门处于等待开启到达时间常数 = 4S
    门处于等待开启到达延时常数 = 300mS
    门处于等待关闭到达时间常数 = 4S
    门处于等待关闭到达延时常数 = 300mS

--------------------------------------------------------------
DoorMonitorPro:
{
如果 当前门状态 = 门处于关闭状态,退出
如果 当前门状态 = 门处于等待碟片刹车状态,转等待碟片刹车处理
如果 当前门状态 = 门处于等待开启到达状态,转等待开启到达处理
如果 当前门状态 = 门处于等待开启到达延时状态,转门处于等待开启到达延时处理
如果 当前门状态 = 门处于等待关闭到达状态,转门处于等待关闭到达处理
如果 当前门状态 = 门处于等待关闭到达延时状态,转门处于等待关闭到达延时处理
如果 当前门状态 = 门处于开启状态,转门处于开启处理
}

等待碟片刹车处理:
{
门超时保护定时到达?
    不是,是否已经接收到成功刹车标志
        {
        不是退出
        }
    是到达
        {
        执行马达开门操作
        当前门状态 = 门处于等待开启到达状态
        门超时保护定时 = 门处于等待开启到达时间常数
        }

等待开启到达处理:
{
检测门是否到达?(TRAY_OUT变低)
    {
    是
        当前门状态 = 门处于等待开启到达延时状态
        门超时保护定时 = 门处于等待开启到达延时常数
    }
    没有到达,是否门超时保护定时到达?
        是
            {
            开门操作夭折处理
            设置系统有新按键输入标志
            设置新按键 = OPEN/CLOSE
            }
        不是退出
}

门处于等待开启到达延时处理:
{
门超时保护定时是否到达?
    没有退出
    到达
        {
        停止马达运动
        当前门状态 = 门处于开启状态
        清除其他标志
        }
}

门处于等待关闭到达处理:
{
检测门是否到达?(TRAY_IN变低)
    {
    是
        当前门状态 = 门处于等待关闭到达延时状态
        门超时保护定时 = 门处于等待关闭到达延时常数
    }
    没有到达,是否门超时保护定时到达?
        是
            {
            关门操作夭折处理
            设置系统有新按键输入标志
            设置新按键 = OPEN/CLOSE
            }
        不是退出
}

门处于等待关闭到达延时处理:
{
门超时保护定时是否到达?
    没有退出
    到达
        {
        停止马达运动
        当前门状态 = 门处于关闭状态
        当前系统工作状态是否碟机状态?
            是
                {
                向DVD发开始引导判断碟片命令
                }
            不是退出
        }
}


}如果门处于开启状态,转推门监控子程序
门运动序列监控子程序:
{
是关门监控周期:
    是等待门到达周期
        是,门是否到达关闭?
            是,设置进入门运动延时周期,启动相应定时
        否
        {
          是否已经超时?(时间由第一次启动门动作的键处理程序付值)
              没有超时退出
              有超时做门运动夭折处理,启动反方向门运动操作
        }
    是否门运动延时周期
        是
        {
          时间是否到达?
               没有到达退出
               到达,停止门马达操作,设置相应标志,通知DVD系统开始工作。
        }
}

门处于开启处理:
{
门检测和抗抖动处理
门开启开关是否已经变化:
    不是退出
    是:
        {
        设置系统有新的按键输入标志
        设置新按键 = OPEN/CLOSE
        }
}

--------------------------------------------------------------
OPEN/CLOSE按键处理程序:
{
如果不是 当前门状态 = 门处于开启状态 和 当前门状态 = 门处于关闭状态,执行马达停止操作
如果 当前门状态 = 门处于关闭状态 或者 门处于等待关闭到达状态 或者 门处于等待关闭到达延时状态,转开门操作处理
如果 当前门状态 = 门处于开启状态 或者 门处于等待碟片刹车状态 或者 门处于等待开启到达状态 或者 门处于等待开启到达延时状态,转关门操作处理
}

开门操作处理:
{
如果系统处于碟片并且碟片播放状态
    是
        {
        门超时保护定时 = 门处于等待碟片刹车时间常数,启动定时
        当前门状态 = 门处于等待碟片刹车状态
        }
    不是
        {
        执行马达开门操作
       
当前门状态
= 门处于等待开启到达状态
       
门超时保护定时
= 门处于等待开启到达时间常数
        }

}

关门操作处理
{
执行马达关门操作
当前门状态
= 门处于等待关闭到达状态
门超时保护定时
= 门处于等待关闭到达时间常数
系统工作状态是否处于碟片状态?
    是的,退出
    不是
        {
        设置系统有新按键输入
        设置新按键 = DVD
        }

}

--------------------------------------------------------------
上电初始化门操作:
{
执行马达关门操作
当前门状态
= 门处于等待关闭到达状态
门超时保护定时
= 门处于等待关闭到达时间常数
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /1 下一条