Project I: truyền nhận dữ liệu giữa 2 vi điều khiển ATMEGA8 sử dụng module thu phát RF

Thảo luận trong 'PROJECT NCKH' bắt đầu bởi Roc Tò Mò, 7 Tháng tám 2014.

Chia sẻ trang này

Lượt xem: 2,384

  1. Roc Tò Mò

    By:Roc Tò Mòin: 7 Tháng tám 2014
    Moderator Roc Staff Member

    Tham gia ngày:
    3 Tháng tám 2014
    Bài viết:
    34
    Đã được thích:
    11
    Hôm nay, tôi xin hướng dẫn các bạn thực hiện project (mà tôi thấy hiện nay nhiều người quan tâm) là: truyền/nhận dữ liệu sử dụng module RF 433M (315M) giữa 2 vi điều khiển (Atmega8- là 1 dòng của loại VĐK AVR)
    I.MODULE RF 433M (315M)
    ·Module RF được sử dụng trong Project này là module “Thô” (có nghĩa là không cài bộ mã hóa/giải mã bên trong), vì vậy các bạn có thể sáng tạo, phát triển các thuật toán truyền/nhận dữ liệu một cách tùy ý trên module.
    Dưới đây là hình ảnh của module phát và modul thu RF:
    [​IMG]
    ·Vấn đề quan trọng nhất trong truyền/nhận dữ liệu qua RF đó là chống nhiễu. Nhiễu ở đây là nhiễu từ môi trường xung quanh module phát và thu như: sóng điện từ, điện tích, nguồn nhiễu … Do đó dữ liệu bên thu nhận về sẽ không còn nguyên vẹn và có thể bị sai.
    èBiện pháp khắc phục: MÃ HÓA/GIẢI MÃ dữ liệu cần truyền.

    II. MÃ HÓA/GIẢI MÃ DỮ LIỆU - MÃ HÓA ĐƯỜNG TRUYỀN MANCHESTER

    Như đã phân tích ở trên, mã hóa dữ liệu ở module phát và giãi mã dữ liệu nhận được ở module thu nhằm đảm bảo tính ổn định và chính xác của dữ liệu. Có rất nhiều cách mã hóa/giải mã dữ liệu nhưng trong Project này tôi sử dụng phương pháp mã hóa đường truyền Manchester.
    Mã hóa đường truyền Manchester sẽ mã hóa:
    -Tín hiệu 1 à 10
    -Tín hiệu 0 à 01
    Ví Dụ:
    Chuỗi tín hiệu 10011101 sẽ được mã hóa thành: 1001011010100110

    Với phương pháp này, thời gian tồn tại của chuỗi tín hiệu 0 hoặc 1 trên đường truyền sẽ được chia nhỏ nhằm giúp module thu nhận được đúng dữ liệu được truyền (nếu thời gian tồn tại của xung 0 (1) trên đường truyền quá dài thì khi đến module thu sẽ không phải là 0 (1) nữa do phải chịu tác động nhiễu từ môi trường lớn).

    III.THỰC HIỆN PROJECT

    1.THIẾT KẾ PHẦN CỨNG
    Để hoàn thành Project các bạn cần:
    -Vi điều khiển Atmega 8.
    -Module thu/phát RF 433M (315M).
    -LCD1602 (dùng để hiển thị dữ liệu nhận được ở module thu).
    -Sử dụng các nút bấm để điều chỉnh tốc độ truyền và dữ liệu phát đi.
    -Led tín hiệu.
    (Sơ đồ nguyên lý của mạch thu và phát các bạn có thể down về ở cuối bài)

    2.THIẾT KẾ PHẦN MỀM
    Trong Project này, lập trình phần mềm được chia làm 2 phần là:
    -Mã hóa dữ liệu trước khi truyền đi ( theo Manchester).
    -Giải mã dữ liệu sau khi nhận về.

    ·MÃ HÓA (Module phát):
    Dữ liệu được đóng vào 1 “khung truyền” gồm:
    -3 byte 0xff (để làm sạch khung truyền).
    -1 bit start.
    -Dữ liệu cần truyền.
    -1 bit stop.
    [​IMG]
    ·GIẢI MÃ (Module thu):
    Khi nhận được dữ liệu, bên thu sẽ tiến hành giải mã:
    -Kiểm tra 3 byte 0xff.
    -Kiểm tra bit start (để xác định đúng khung truyền).
    -Đọc dữ liệu.
    -Kiểm tra bit stop (để xác định đã hết khung truyền).
    Dữ liệu sau khi giải mã sẽ được hiển thị lên LCD1602.

    [​IMG]

    Sưu tầm:
     
    Lu ROm thích bài này.