Pressionar "Play" no controle remoto DVD parece instantâneo, mas dispara cadeia precisa de eventos através de hardware, firmware, e sistemas mecânicos. Aqui está a jornada da ponta do seu dedo ao disco girando.
1. Captura Entrada: Os "Olhos"
- Controle Remoto (IR): Botão pressionado → MCU no controle codifica comando (protocolo NEC, RC5, RC6) → LED IR pulsa portadora 38 kHz.
- Painel Frontal (Switch Tátil): Botão físico fecha circuito → puxa GPIO MCU low (active-low) ou high.
- Receptor IR (TSOP38238 / Vishay): Desmodula 38 kHz → trem pulso digital limpo → pino INT MCU Principal.
2. Microcontrolador Principal (O "Cérebro")
- MCU Típico: Renesas (Hitachi) H8, SH-2; ST STM32; Panasonic MN101; Sony CXP; ASIC custom com 8051/ARM7 embutido.
- Firmware: 128–512 KB Mask ROM / Flash. Roda RTOS ou superloop.
- Handler Interrupção: Interrupção GPIO IR → decodifica protocolo → **Command ID** (ex: 0x45 = PLAY).
- Tabela Lookup: Command ID → Function Pointer / Evento State Machine (ex:
evt_play()).
3. Despacho Comando: O "Mensageiro"
MCU Principal não driveia motores diretamente. Comanda controladores subsistema via barramentos internos:
- Controlador Servo/Mec (DSP/MCU): Motor fuso (giro disco), Motor trenó (laser radial), Atuadores foco/tracking (bobinas voz). Comandos:
CMD_SPIN_UP, CMD_SEEK, CMD_FOCUS_ON.
- Decoder IC (MPEG-2 Vídeo + Áudio): STi55xx, Mediatek MT1389, Sigma Designs EM86xx. Comandos:
DEC_START, DEC_SET_STREAM.
- Video Encoder / HDMI TX: Analógico (CVBS/S-Video/Component) ou Digital (HDMI 1.4/2.0).
- Audio DAC / SPDIF TX: PCM → Analógico / Bitstream.
- Driver Painel Frontal / VFD/FL/LED: Atualiza display ("PLAY", tempo).
4. Sequência "Play": Balé Mecânico
- Spin-Up: Servo MCU → Driver BLDC fuso → 500–4000 RPM (CLV: Constant Linear Velocity — mais lento na borda externa).
- Servo Foco: Diodo laser (650 nm DVD / 780 nm CD) → Atuador lente objetiva (bobina voz) → **Busca Foco** (varredura senoidal) → **Lock Foco** (método astigmático / detecção astigmatismo) → Indicador lock para MCU Principal.
- Servo Tracking: Tracking radial (DPD / DPP / push-pull) trava na espiral sulco.
- Sinal RF (Padrão Olho): Soma sinal fotodiodo → Amp RF → Equalizador → Slicer → **Desmodulação EFM+** → Dados setor brutos (2064 bytes/setor).
- Correção Erro (CIRC / RS): C1/C2 (CD) / PI/PO (DVD) → Dados usuário corrigidos (2048 bytes/setor).
- Navegação: Micro-UDF / ISO-9660 → VMG (Video Manager) → VTS (Video Title Set) → PGC (Program Chain) → Primeira Cell → Endereço setor.
- Seek: Trenó move laser para raio alvo (grosso) → Tracking fine-lock.
- Início Decode: MCU Principal → Decoder IC: "Decode MPEG-2 @ Setor X, Audio Stream 0x80, SPU Stream 0x20".
- Saída: Decoder → Video Encoder → HDMI/Analog Out. Audio → DAC/SPDIF → Amp/Alto-falantes.
5. Feedback: Confirmação
- Visual: VFD/FL: "▶ PLAY 00:00:05", ícone disco girando.
- Auditivo: "Clunk" mecânico (movimento trenó), chiado fraco (fuso), clique relé (relé mute áudio liberado).
- LED Controle: Pisca ao receber comando (alguns modelos).
Evolução Moderna: Players Blu-ray / Streaming
- Integração SoC: Chip único (Broadcom, MediaTek, Realtek, Sigma) = ARM Cortex-A53/A72 ×4 + GPU + Video Decode (HEVC/VP9/AV1) + HDMI 2.1 + DDR3/4 Ctrl + NAND Ctrl + Wi-Fi/BT.
- OS: Linux (Android TV, WebOS, Tizen, Roku OS, Linux + Qt).
- Entrada: Bluetooth LE / Wi-Fi Remote (RF) → eventos HID → subsystem input Linux → App (MediaPlayer, Netflix, YouTube).
- Sem Seek Mecânico (Streaming): HTTP Range Request → CDN → Buffer → Decode. "Play" = requisição rede.
- Blu-ray Disc: Mesmo stack servo mecânico (laser azul-violeta 405 nm) + runtime BD-J (Java) para menus.
Analogia: O Restaurante
- Você (Cliente) → Pressiona "Play" (Pedido)
- Garçom (Receptor IR / Painel Frontal) → Repassa para Cozinha
- Chef Principal (MCU Principal) → Interpreta, coordena estações
- Estação Grill (Servo/Mec) → Cozinha disco físico (mecânico)
- Estação Montagem (Decoder) → Monta bits em vídeo/áudio
- Expedidor (Vídeo/Áudio Out) → Serve à Mesa (TV/Alto-falantes)
- Feedback: "Pedido Pronto!" (Display/LED)
O player DVD é um **sistema mecatrônico embedded real-time** — firmware orquestrando motores, lasers, óptica, e silício em sincronismo milissegundo. Botão "Play" esconde sinfonia de física e código.