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

Print

 


[​IMG]
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]

 

Bạn có đam mê ngành thiết kế vi mạch và bạn muốn có mức lương 1000 usd cùng lúc bạn

đang muốn tìm một Trung tâm để học vậy hãy đến với ngành vi mạch tại SEMICON

  HotLine: 0972 800 931 Ms Duyên

 

[​IMG]
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]