🌱 Một số chuẩn hồng ngoại - IR Remote Control Protocols

🌱 Một số chuẩn hồng ngoại - IR Remote Control Protocols

    Bài viết này tập trung vào ứng dụng điều khiển từ xa sử dụng LED hồng ngoại, sử dụng trong các điều khiển Tivi, điều hòa.

    ➤ Nguyên lý chung của chuẩn hồng ngoại

    Trên thực tế thì có rất nhiều chuẩn hồng ngoại được sử dụng: ITT Protocol, JVC Protocol, NEC Protocol, Nokia NRC17 Protocol, Sharp ProtocolSony SIRC Protocol, Philips RC-5 ProtocolPhilips RC-6 Protocol, Philips RC-MM Protocol, Philips RECS-80 Protocol, RCA ProtocolX-Sat / Mitsubishi Protocol, ... Hoặc các chuẩn mà bạn có thể tự xây dựng.

    Bài viết chỉ đề cập đến một số chuẩn phổ biến (các hãng nổi tiếng) và có sẵn các remote trên thị trường để thực hành.

    Nguyên lý hoạt động chung của các loại remote dựa trên một LED phát hồng ngoại ở bên truyền và LED thu hồng ngoại ở bên nhận, sử dụng khả năng "biến điệu/điều chế" (modulation) của tín hiệu hồng ngoại.

    Để hiểu cách truyền thông không dây này, bạn cần hiểu biết về cách truyền data của truyền thông có dây trước!

    Về truyền không dây, dựa trên khả năng "biến điệu", LED truyền thay vì chỉ truyền tín hiệu 0 / 1, sẽ truyền đi một trùm xung PWM với tần số được thống nhất giữa bên truyền và bên nhận, bên nhận sẽ lọc tín hiệu đó và lấy ra được data.

IR Signal
Tín hiệu sóng hồng ngoại

    Tần số của trùm xung PWM được gọi là tần số mang (Carrier Frequency), thường có giá trị trong rải từ 30kHz đến 60kHz. Các giá trị thường gặp là 38kHz và 40kHz. Mức logic 1 và 0 của data sẽ được chuyển hóa thành trùm xung như thế nào sẽ phụ thuộc vào từng Protocol quy định.

    Bộ truyền - Transmitter

    Bộ truyền thường là thiết bị điều khiển cầm tay chạy bằng pin và tiêu thụ ít năng lượng nhưng vẫn phải đảm bảo tín hiệu IR đủ mjanh để có thể đạt được khoảng cách điều khiển nhất định.

    Trước đây thì có một số chip được thiết kế riêng cho bộ phát IR, hiện nay người ta thường sử dụng một số vi điều khiển công suất thấp (low power MCU) vì khả năng linh hoạt khi sử dụng. Khi remote không được ấn, chúng ở chế độ low power sleep mode, một phím được nhấn sẽ wake up vi điều khiển.

    Phía bộ truyền sử dụng LED phát hồng ngoại thường dùng một transistor để khuếch đại dòng điện (100mA đến 1A), bộ transistor cần có hệ số khuếch đại hFE và tốc độ chuyển mạch phù hợp với tần số xung PWM.

    Giá trị của điện trở thì chọn phù hợp theo định luật Ohm để điệp áp rơi trên LED là khoảng 1.1V.

    Bộ nhận - Receiver

    Có nhiều loại bộ nhận khác nhau trên thị trường, việc chọn LED nhận phụ thuộc chính vào tần số của carrier frequency phù hợp.

IR Receiver

    <Sơ đồ trên sẽ được giải thích ở bài viết sau>

IR Receiver LED

    Mục đích của LED nhận là lọc sóng mang, và trả về tín hiệu số cho vi điều khiển. Loại này thường được tích hợp trong một linh kiện như hình trên (TSOP48xx của Vishay). Tín hiệu được nhận về sẽ lọc trùm xung PWM, khi nhận được tín hiệu với tần số tương ứng (Burst - trùm xung), chân SIGNAL sẽ trả về mức LOW, còn khi không nhận được tín hiệu (Space - khoảng trống), chân SIGNAL trả về mức HIGH. Từ đó vi điều khiển có thể giải mã được tín hiệu hồng ngoại.

    ➥ Các protocols sẽ được giới thiệu dưới đây sẽ quy định về cách tổ chức các bit HIGH/LOW, và frame truyền, được thống nhất giữa Transmitter và Receiver. Mình sẽ sử dụng 2 thuật ngữ Burst - lúc LED truyền đi trùm xung, và Space - lúc LED không truyền gì cả, để cho đỡ dài dòng.

    ➤ NEC Protocol

    NEC protocol quy định frame truyền như dưới đây:

IR NEC protocol message frame
NEC Protocol Message Frame

  • Một Frame bao gồm 8 bit address + 8 bit command, có thể mở rộng thành 16 bit address
  • Address và Command được truyền đi 2 lần, với lần truyền thứ 2 sẽ đảo ngược các bit để đảm bảo độ tin cậy
  • Carrier Frequency = 38kHz
  • Điều chế khoảng cách xung - Pulse distance modulation
    • Bit 1 = 2.25ms = 560µs Burst + 1690µs Space
    • Bit 0 = 1.12ms = 560µs Burst + 560µs Space

IR NEC protocol modulation
IR NEC Protocol Modulation

    Mỗi lệnh chỉ được truyền một lần, ngay cả khi phím trên điều khiển từ xa vẫn được nhấn. Mỗi 110ms, một mã lặp lại được truyền đi miễn là phím vẫn được giữ nguyên. Mã lặp lại này chỉ đơn giản là một xung 9ms Burst theo sau là 2,25ms Space + 560µs Burst (Như hình dưới).

Truyền chuỗi xung NEC
Truyền chuỗi xung NEC Protocol
    ⏩ NEC protocol được sử dụng quá phổ biến, nên 8-bits địa chỉ là không đủ, vì vậy hiện nay họ đã mở rộng lên thành 16-bits địa chỉ, bỏ qua byte địa chỉ nghịch đảo.

IR extend message frame
Extended NEC Protocol

    Một thông tin nữa thì NEC giờ sẽ là protocol của Renesas.

    ➤ Sharp Protocol

    Sharp protocol quy định frame truyền như dưới đây:

IR Sharp Protocol Message Frame
IR Sharp Protocol Message Frame

  • Một Frame bao gồm 5 bit address + 8 bit command
  • Carrier Frequency = 38kHz
  • Điều chế khoảng cách xung - Pulse distance modulation
    • Bit 1 = 2ms = 320µs Burst + 1680µs Space
    • Bit 0 = 1ms = 320µs Burst + 680µs Space

IR Sharp Modulation
IR Sharp protocol modulation

    Một chuỗi lệnh hoàn chỉnh theo Sharp protocol sẽ bao gồm 2 messages. Lần truyền thứ hai sẽ theo sau lần truyền đầu tiên với độ trễ 40ms và về cơ bản chứa cùng thông tin. Điểm khác biệt duy nhất là tất cả các bit, ngoài trừ trường địa chỉ, đều đảo ngược, giúp cho bản tin đáng tin cậy hơn.

IR Sharp Sequence
Truyền chuỗi xung Sharp remote protocol

    ➤ Sony SIRC Protocol

    Sony SIRC Protocol có 3 phiên bản: 12-bits, 15-bits và 20-bits, điểm chung là đều có 7 bit command.

  • 12-bit version = 7 command bits + 5 address bits
  • 15-bit version = 7 command bits + 8 address bits
  • 20-bit version = 7 command bits + 5 address bits + 8 extended bits.

IR Sony SIRC protocol 12bits
12-bits Sony SIRC Protocol message frame

  • Carrier Frequency = 40kHz
  • Điều chế khoảng cách xung - Pulse distance modulation
    • Bit 1 = 1.8ms = 1.2ms Burst + 600µs Space
    • Bit 0 = 1.2ms = 600µs Burst + 600µs Space

    Command được lặp lại mỗi 45ms cho đến khi phím trên điều khiển được nhả ra. Phần nhận của các máy Sony thường đợi khoảng 10ms sau mỗi frame truyền để đảm bảo không có xung nào tiếp theo.

    Ví dụ về một số lệnh của điều khiển Sony,

Điều khiển Sony
Sony Remote Control

    ➤ Philips RC-5 Protocol

    Chuẩn RC-5 và hiện tại là RC-6 được hãng Philips sử dụng cho toàn bộ thiết bị sử dụng hồng ngoại trong hệ thống giải trí của họ.

    RC-5 protocol quy định frame truyền như dưới đây:

IR Philips RC-5 Protocol Message Frame
Philips RC-5 protocol message frame

  • Một Frame bao gồm 5 bit address + 6 bit command (7 bit command với chuẩn RC5X)
  • Carrier Frequency = 36kHz
  • Điều chế tín hiệu theo mã Manchester - Bi-Phase Coding
    • Tổng thời gian một bit là 1.778ms (64 chu kỳ sóng mang)
Philips RC-5 Modulation
Philips RC-5 tuân theo Manchester Coding

    🗊 Về Manchester coding hay Bi-phase coding thì đó là một phương pháp mã hóa dữ liệu, trong đó mỗi bit sẽ là tổng hợp của một tín hiệu mức cao + một tín hiệu mức thấp, với cùng khoảng thời gian.

Manchester Coding
Manchester Coding

    Philip RC-5 sử dụng mã Manchester tuân theo chuẩn IEEE 802.3.

    ➤ Philips RC-6 Protocol

    RC-6 là chuẩn hỗ trợ nâng cao hơn so với RC-5 của Philips, hỗ trợ các operation mode khác nhau tùy vào thiết bị sử dụng của Philips hoặc các OEM.

  • Số lượng bit command sẽ phụ thuộc vào operation mode
  • Carrier Frequency = 36kHz
  • Điều chế tín hiệu theo mã Manchester - Bi-Phase Coding

    ➤ Chuẩn RC-6 có một số điểm khác biệt so với RC-5:

  1. Leader Pulse - Xung đầu tiên = 6T (2.666ms) Burst + 2T (0.889ms) Space, thường được sử dụng để thiết lập bộ khuếch đại cho bộ nhận IR.
    IR RC-6 Leader Pulse
    Xung đầu tiên của chuẩn RC-6
  2. Normal bits - các bit data, khác với RC-5, RC-6 mã hóa các bit theo mã Manchester tuân theo chuẩn của G.E.Thomas, và tổng thời gian một bit là 888µs.
    IR RC-6 Normal bit
    Các bit dữ liệu của RC-6
  3. Trailer bits = 2T (0.889ms) + 2T (0.889ms), cũng được mã hóa theo mã Manchester tuân theo chuẩn của G.E.Thomas, và tổng thời gian một bit là 1778µs.
    IR Philips RC-6 Trailer Bit
    RC-6 Mode Trailer Bit

    ➤ Leader Pulse và Trailer Bits sẽ được sử dụng ở RC-6 Mode 0 được mô tả dưới đây!

    RC-6 Mode 0 là operation mode được xây dựng dành riêng cho các thiết bị điện tử của Philips. Chế độ này cho phép điều khiển tối đa 256 thiết bị độc lập, với tổng 256 command cho mỗi thiết bị.

IR Philips RC-6 Mode 0
Khung truyền của giao thức RC-6 Mode 0

  • Header Field
    • LS - Leader Symbol được truyền đầu tiên, với mục đích thiết lập bộ khuếch đại cho bộ nhận IR.
    • SB - Start bit, theo sau LS luôn có giá trị "1", dùng để hiệu chỉnh thời gian cho bộ nhận.
    • Mode bits mb2..mb0 xác định mode hoạt động, với trường hợp này cả 3 bits đều là "0".
    • TR - Trailer bit, được coi là bit chuyển đổi trạng thái, nó sẽ bị đảo ngược bất cứ khi nào một phím được nhả ra, cho phép bộ nhận phân biệt giữa một phím mới và một phím lặp lại.
  • Control Field
    • Trường này gồm 8 bits address, sử dụng để chọn một trong 256 devices.
  • Infomation Field
    • Trường này gồm 8 bits command, sử dụng để chọn một trong 256 commands.
  • Signal Free Time
    • Khoảng thời gian trống không có dữ liệu nào được truyền, được quy định là 6T (2.666ms).

    ➤ Other Protocols

    Nhìn chung là có rất nhiều chuẩn hồng ngoại khác nhau trên thị trường, và trong tương lai các hãng cũng sẽ phát triển nhiều chuẩn hơn nữa, nhưng nhìn chung thì cách học và hiểu về các chuẩn này không có gì mới, chúng chỉ khác nhau ở cách mã hóa, tần số sóng mang, khung truyền. Bạn có thể tìm đọc tài liệu của hãng tương ứng với loại remote mà mình sở hữu.

    Thông thường, đối với trùm xung PWM, các giao thức thường sử dụng xung chỉ khoảng 25-50% (thường là 1/3 hoặc 1/4) để tiết kiệm năng lượng thay vì xung 50%.

    Để nghiên cứu chính xác về dạng tín hiệu của các chuẩn hồng ngoại, bạn nên có một bộ Oscilloscope và các bộ remote tương ứng + một mắt thu hồng ngoại để nhìn thấy dạng sóng chính xác. Bài viết sau sẽ giới thiệu về cách sử dụng vi điều khiển để đọc và giải mã một số tín hiệu hồng ngoại!

>>>= Follow ngay =<<<

Để nhận được những bài học miễn phí mới nhất nhé 😊

Chúc các bạn học tập tốt 😊

                    

Nguyễn Văn Nghĩa

Mình là một người thích học hỏi và chia sẻ các kiến thức về Nhúng IOT.

Đăng nhận xét

Mới hơn Cũ hơn