RF Data Communications With PIC

38
Sun Technologies WwW.suno.vn Chia sẽ = Phát triển RF Data Communications with PIC Lập trình và ứng dụng với PIC --- 1 --- Tác giả: CSKiller

Transcript of RF Data Communications With PIC

Page 1: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

RF Data Communications with PICLập trình và ứng dụng với PIC

--- 1 ---Tác giả: CSKiller

Page 2: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

MỤC LỤC

I. Giới thiệu về mã Manchester ...................................................................................... 4 I.1. Giới thiệu .......................................................................................................................................... 4 I.2. Ứng dụng: ......................................................................................................................................... 4 II. Mạch thu phát RF ...................................................................................................... 4

II.1. Mạch phát RF .................................................................................................................................. 4 II.2. Mạch thu RF ................................................................................................................................... 4 II.3. Truyền dữ liệu không dây ............................................................................................................... 4 II.4. Một số mạch thu phát RF ................................................................................................................ 5 III. Mã hóa Manchester .................................................................................................. 6 IV. Giải mã Manchester ................................................................................................. 8 V. Lập trình mã hóa Manchester ...................................................................................... 9

V.1. Giải thuật ........................................................................................................................................ 9 V.1.1. Mã hóa theo thứ tự bit .............................................................................................................. 9 V.1.2. Mã hóa vị trí bit chẵn lẻ ......................................................................................................... 10

V.2. Tối ưu giải thuật ............................................................................................................................ 10 V.2.1. Mã hóa theo thứ tự bit ............................................................................................................ 10 V.2.2. Mã hóa vị trí bit chẵn lẻ ......................................................................................................... 11

V.3. Lập trình ....................................................................................................................................... 12 V.3.1. Mã hóa theo thứ tự bit ............................................................................................................ 12 V.3.2. Mã hóa vị trí bit chẵn lẻ ......................................................................................................... 13 V.3.3. Thiết lập Transmitter: ............................................................................................................ 14

VI. Lập trình giải mã Manchester ................................................................................... 16 VI.1. Giải thuật ..................................................................................................................................... 16 VI.2. Tối ưu giải thuật .......................................................................................................................... 16

VI.2.1. Đặc điểm mã Manchester ..................................................................................................... 16 VI.2.2. Vi phạm mã Manchester ....................................................................................................... 17 VI.2.3. Giải thuật giải mã theo 1 cạnh .............................................................................................. 17 VI.2.4. Tối ưu và hiện thực ............................................................................................................... 19

VI.3. Lập trình ...................................................................................................................................... 19 VI.3.1. Các điều kiện khởi đầu ........................................................................................................ 19 VI.3.2. Thiết lập Receiver ................................................................................................................ 20 VI.3.3. Giải mã theo thứ tự bit .......................................................................................................... 22 VI.3.4. Giải mã theo vị trí bit chẵn lẻ ............................................................................................... 23

VII. Truyền nhận dữ liệu .............................................................................................. 24 VII.1. Khung truyền ............................................................................................................................. 24 VII.2. Truyền dữ liệu ............................................................................................................................ 24

VII.2.1. Initialization ........................................................................................................................ 24 VII.2.2. Preamble Byte ..................................................................................................................... 25 VII.2.3. Header ................................................................................................................................. 25 VII.2.4. Body .................................................................................................................................... 26

--- 2 ---Tác giả: CSKiller

Page 3: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

VII.2.5. CRCByte ............................................................................................................................. 26 VII.2.6. Stop Byte ............................................................................................................................. 26

VII.3. Tốc độ truyền nhận .................................................................................................................... 27 VII.4. Nhận dữ liệu ............................................................................................................................... 27

VII.4.1. Cơ chế ngắt ......................................................................................................................... 27 VII.4.2. Cơ chế polling ..................................................................................................................... 28

VIII. Ứng dụng trên PIC .............................................................................................. 29 VIII.1. Transmitter ................................................................................................................................ 29 VIII.2. Receiver .................................................................................................................................... 32

--- 3 ---Tác giả: CSKiller

Page 4: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

I. Giới thiệu về mã Manchester I.1.Giới thiệuo Mã hóa Manchester là một phương pháp mã hóa các bit dữ liệu sử dụng trong

việc truyền các tín hiệu dạng số. Đây là phương pháp mã hóa các bit dữ liệu 1,0 thành các chuổi tín hiệu có mức tín hiệu thay đổi liên tục dù dãy bit dữ liệu là 1 hoặc 0 liên tiếp. Do đó, ưu điểm của mã hóa Manchester là dễ dàng tạo sự tự đồng bộ giữa bên phát và bên nhận.I.2.Ứng dụng:o Đây là phương pháp sử dụng rộng rãi trong lĩnh vực truyền thông vô tuyến, hữu

tuyến, Ethernet,…o Trong lĩnh vực truyền thông điều khiển sử dụng vi điều khiển, mã Manchester dễ

hiện thực để lập trình cùng với khả năng phát hiện lỗi khi phát hiện có vi phạm mã.

II. Mạch thu phát RF II.1. Mạch phát RFo Thường dùng là loại module phát OOK(On/Off keyring) và ASK(Điều biên) để

chuyển các tín hiệu dạng số 1 và 0 thành trạng thái có hoặc không có tín hiệu ở phần mạch thu.

Tín hiệu On/Offo Ăngten phát giúp làm tăng khả năng phát xa các tín hiệu ra môi trường. Được

thiết kế hợp lý tương ứng với tần số hoạt đang hoạt động.II.2. Mạch thu RFo Sử dụng để thu lại các tín hiệu từ mạch phát, biến các trạng thái phát hay không

phát thành dạng số 1 hoặc 0.o Nguyên tắc khi mạch thu rảnh không nhận dữ liệu từ mạch phát thì mạch vẫn có

thể thu các tín hiệu nhiễu môi trường làm cho output của nó có những tín hiệu 1,0 không xác định. Hoặc trong quá trình phát có 1 chuỗi dài bit 1 hoặc 0 liên tục.o Để loại bỏ các nhiễu môi trường phía mạch phát cần phát 1 chuỗi tín hiệu liên tục

trong khoảng thời gian(tùy vào mạch thu, thường 25ms) trước khi chính thức phát dữ liệu, điều này sẽ đảm bảo mạch thu thu đúng dữ liệu từ phía mạch phát. Đây là bước cần thiết để chỉnh lại độ lợi(Gain) cho bộ thu trước khi hoạt động.o Độ nhạy của mạch thu cũng phụ thuộc rất nhiều vào Ăngten.o Chú ý: việc sử dụng chức năng interrupt hay sử dụng polling để giải mã băng vi

điều khiển phụ thuộc vào hiệu quả thiết kế giải thuật mã hóa, giải mã.II.3. Truyền dữ liệu không dâyo Xác định khoảng cách cần truyền để tính toán công suất của mạch thu phát.o Kiểm tra tốc độ tối đa(data baud rate) mà mạch thu phát có thể đáp ứng đảm bảo

timing của các bit được truyền nhận đúng.

--- 4 ---Tác giả: CSKiller

Page 5: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

o Chọn giải thuật mã hóa và giải mã hợp lý để tránh các tác động từ nhiễu và đảm bảo việc thu phát dữ liệu đạt hiệu quả sử dụng băng thông tối đa.II.4. Một số mạch thu phát RFo Mạch phát RF FS1000A

o Mạch phát RF PCDTXA-1

o Mạch thu RF PCR1A

--- 5 ---Tác giả: CSKiller

Page 6: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

o Mạch thu RF RX8

III. Mã hóa Manchester o Phương pháp mã hóa Manchester theo nguyên tắc sau:

Mỗi bit sẽ có một khoảng thời gian truyền cố định. Dữ liệu được xác định vào thời khoảng giữa của bit. Mức 1 biểu diễn Low-to-High, mức 0 biểu diễn High-to-Low(hoặc ngược lại tùy theo quy ước đảo mã Manchester).

Mã hóa theo Manchester

--- 6 ---Tác giả: CSKiller

Page 7: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

o Có thể biểu diễn dưới dạng bảng XOR

o Hiện thực bằng cổng XOR

Mã hóa Manchester là kết quả XOR gữa dữ liệu và xung clocko Mã hóa bit:

Các quy ước mã hóao Khả năng tự đồng bộ:

--- 7 ---Tác giả: CSKiller

Page 8: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Các setup point đồng bộo Ví dụ mã hóa chuỗi 00110111011 được kết quả 1010011010010101100101 như

sau:

Kết quả dạng xung clock

IV.Giải mã Manchester o Thực hiện ngược lại việc mã hóa các bit dữ liệu. o Khi có chuyển mức High-to-Low gữa chu kì bit thì đó là dữ liệu bit 0 và chuyển

mức Low-to-High giữa chu kì bit thì đó là dữ liệu bit 1(tùy quy ước mã hóa giải mã).o Sử dụng phép XOR để thực hiện việc giải mã

Thực hiện phép XOR để giải mã Manchestero Giải pháp analog

--- 8 ---Tác giả: CSKiller

Page 9: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Giải mã hiện thực bằng mạch analogo Ví dụ giải mã 1 tín hiệu Manchester 1010011010010101100101 được kết quả

00110111011 như sau:

Kết quả dạng xung clock

V. Lập trình mã hóa Manchester V.1.Giải thuậtV.1.1. Mã hóa theo thứ tự bit Thực hiện mã hóa 8 bits theo đúng thứ tự từ LSB MSB. Kết quả sau mã hóa 4 bits thấp thanh 1 Byte và 4 bits cao thành 1 Byte. Áp dụng quy tắc mã hóa cho từng bit:

0 10 1 01

Ví dụ:

--- 9 ---Tác giả: CSKiller

Page 10: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Kết quả:

V.1.2. Mã hóa vị trí bit chẵn lẻ Áp dụng quy tắc mã hóa Manchester cho 1 byte dữ liệu kết quả sẽ thu được 2 Byte(1 Word) dữ liệu mã hóa. Để mã hóa 1 bit dữ liệu theo mã Manchester, đơn giản là việc nhân đôi thành 2 bit và thực hiện phép XOR với 2 bit 10(xem như là clock). Ví dụ Byte 00110101, nhân đôi các Bit ta được 0000111100110011, sau đó XOR với chuỗi 1010101010101010(clock) kết quả sẽ được chuỗi mã hóa 0101101001100110.

0000111100110011 XOR 1010101010101010 = 1010010101011001

Ví dụ:

Kết quả:

V.2.Tối ưu giải thuậtV.2.1. Mã hóa theo thứ tự bit Thực hiện nhân đôi vị trí các bits của 4 bits thấp(hoặc cao), sau đó thực hiện phép XOR với chuỗi 0xAA thu được 1 Byte mã hóa Manchester. Ví dụ mã hóa 4 bits thấp:

Byte dữ liệu ban đầu.

--- 10 ---Tác giả: CSKiller

Page 11: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Mã hóa cho 4 bits thấp.

Chuyển vị trí các bits.

Nhân đôi mỗi bit.

Thực hiện XOR với 0xAA để được kết quả. Tương tự cho 4 bits cao, bằng cách sử dụng phép dịch phải 4 bits:

Byte dữ liệu ban đầu.

Dịch phải 4 bits rồi thực hiện giống 4 bits thấp.V.2.2. Mã hóa vị trí bit chẵn lẻ Việc nhân đôi số Bit của 1 Byte dữ liệu theo cách này sẽ thực hiện khó khăn. Do đó, thay vì nhân đôi các Bit theo đúng thứ tự 07 thì thực hiện việc tách, chuyển vi trí sang 2 Byte(Byte cao chứa Bit lẻ, Byte thấp chứa Bit lẻ) sau đó nhân đôi các Bit bằng phép dịch Bit.

--- 11 ---Tác giả: CSKiller

Page 12: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Tách các Bit chẵn và lẽ.

Xây dựng Byte cao-thấp và thực hiện việc dịch bit.

OR các Bit để được 1 Word.

Cuối cùng thực hiện XOR với 0xAAAA.V.3.Lập trìnhV.3.1. Mã hóa theo thứ tự bit

V.3.1.1. Thực hiện từng Byte: Mã hóa 4 bits thấp:

--- 12 ---Tác giả: CSKiller

Page 13: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Mã hóa 4 bits cao:

V.3.1.2. Thực hiện trên chuỗi:

V.3.2. Mã hóa vị trí bit chẵn lẻV.3.2.1. Thực hiện từng Byte

Mã hóa 4 Bit lẻ

Mã hóa 4 Bit chẵn

V.3.2.2. Thự hiện trên 2 Byte Mã hóa cho 1 Byte

--- 13 ---Tác giả: CSKiller

Page 14: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

V.3.3. Thiết lập Transmitter:V.3.3.1. Tính toán timing Sử dụng ngắt timer làm chức năng truyền bit dữ liệu. Thời gian định thời hay tốc độ truyền được tính bằng cách thiết lập giá trị trong bộ đếm của timer.

Có thể thay đổi tốc độ truyền nhận RF bằng cách tính toán lại các giá trị timing:

--- 14 ---Tác giả: CSKiller

Page 15: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

V.3.3.2. Phát dữ liệu Khởi động interrupt của timer

Xử lý trong ngắt timer

Thực hiện phát từng bit dữ liệu trong bộ đệm cho đến hết

--- 15 ---Tác giả: CSKiller

Page 16: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

VI. Lập trình giải mã Manchester VI.1.Giải thuật

Về nguyên tắc việc giải mã cứ mỗi 2 bits theo quy tắc 011 và 100, tương đương với việc thực hiện phép XOR giữa cặp Bit 10 hay 01 với 2 Bit 10(xem như clock).

Áp dụng cho 2 Byte dữ liệu Manchester bằng phép XOR với 2 Byte clock 0xAAAA sẽ thu được 1 Byte dữ liệu. Ví dụ chuỗi 2 Byte dữ liệu Manchester là 0101101001100110, thực hiện phép XOR với 2 Byte 1010101010101010 sẽ thu được kết quả 2 Byte là 1111000011001100, cuối cùng được kết quả 1 Byte dữ liệu là 11001010.

Chuỗi Manchester ban đầu.

Xung clock 0xAAAA.

Kết quả phép XOR với clock.

Dữ liệu thu được.VI.2. Tối ưu giải thuậtVI.2.1. Đặc điểm mã Manchester

Mã Manchester sử dụng băng thông gấp đôi tốc độ truyền dữ liệu, có nghĩa là xung clock có tần số gấp 2 lần tốc độ truyền data. Luôn có sự thay đổi trạng thái 10 hoặc 01 vào khoảng giữa của chu kì Bit dữ liệu Do đó mã Manchester có thể thực hiện việc tái đồng bộ xung clock sau mỗi Bit dữ liệu cũng như không tạo ta một chuỗi Bit không đổi trên đường truyền.

--- 16 ---Tác giả: CSKiller

Page 17: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

VI.2.2. Vi phạm mã Manchester Theo quy tắc mã hóa 101 và 010 có nghĩa là luôn có thay đổi mức tín hiệu trong khoảng thời gian không nhỏ hơn độ dài 1/2 Bit dữ liệu cũng như không lớn hơn 1 Bit dữ liệu. Nếu xét theo 1 cạnh 01 hoặc 01 thì việc xảy ra việc chuyển mức này không nhỏ hơn độ dài 1 Bit dữ liệu và không lớn hơn 2 lần độ dài bit dữ liệu. Nếu có sự vi phạm nguyên tắc trên có nghĩa là đường truyền đã bị nhiễu và việc giải mã Manchester sẽ cho kết quả sai. Chú ý: dựa vào đặc điểm này của mã Manchester để tạo Start Bit và Stop Bit cho 1 khung truyền. Và cũng dựa vào đặc điểm này để cho phép sử dụng interrupt một cách hiệu quả.

VI.2.3. Giải thuật giải mã theo 1 cạnh Dựa vào đặc điểm của mã Manchester thì việc giải mã có thể thực hiện bằng việc kiểm tra mỗi khi có sự chuyển mức 10 hay 01 của tín hiệu và xác định độ dài của từng bit tín hiệu đó. Để giảm thiểu việc thực hiện kiểm tra sự thay đổi mức liên lục 1 cách không cần thiết thì giải thuật giải mã Manchster có thể chỉ cần kiểm tra sự thay đổi của xung tín hiệu bởi 1 cạnh lên hoặc xuống. Về nguyên tắc chỉ có duy nhất 1 trong 3 trường hợp xảy ra với độ dài 1 cạnh lên của xung tín hiệu đã mã hóa Manchester như sau:

Độ dài 2 cạnh lên liên tiếp bằng độ dài 1 bit dữ liệu,xảy ra trong trường hợp dữ liệu là 1111.

Độ dài 2 cạnh lên liên tiếp bằng 1.5 lần độ dài 1 bit dữ liệu,xảy ra trong trường hợp dữ liệu là 1001.

Độ dài 2 cạnh lên liên tiếp bằng 2 lần độ dài 1 bit dữ liệu,xảy ra trong trường hợp dữ liệu là 1010.

Vị trí xảy ra cạnh lên hoặc xuống có thể vào giữa(Middle) hoặc cuối(End) thời khoảng của 1 Bit dữ liệu.

--- 17 ---Tác giả: CSKiller

Page 18: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Vị trí của xung tín hiệu cạnh lên. Dựa vào 2 nguyên tắc trên ta sẽ xây dựng được bảng các trạng thái và dữ liệu thu được như sau:

Input OutputĐộ dài 2 cạnh lên

Vị trí cạnh lên xảy ra

Giá trị decoded

Giá trị giải mã kế tiếp

Số Bit decode được

1 Bit Khoảng giữa 0 Chưa xác định 11 Bit Cuối 1 Chưa xác định 1

1.5 Bits Khoảng giữa 1 0 21.5 Bits Cuối 1 Chưa xác định 12 Bits Khoảng giữa 1 0 2

Bảng giải mã theo cạnh lên Với quy tắc xây dựng như trên sẽ có 3 trường hợp:

- Thời gian chấp nhận 1 Bit là 0.75Bit <= Thời gian cho 1 bit <1.25Bit- Thời gian chấp nhận 1.5 Bit là 1.25Bit <= Thời gian cho 1.5 bit <1.75Bit- Thời gian chấp nhận 2 Bit là 1.75Bit <= Thời gian cho 2 bit <2.25Bit

Chú ý: Các giá trị thời gian nằm ngoài 3 khoảng trên là vi phạm mã Manchester xem như là nhiễu hoặc lỗi đường truyền. Dựa vào đặc điểm này để tạo Start Bit và Stop Bit cho khung truyền. Cách xác định vị trí cạnh xung của tín hiệu, dựa vào độ dài 2 cạnh lên liên tiếp.

Độ dài 2 cạnh lên Vị trí cạnh lên xảy ra1 Bit Không đổi(E hoặc M)

1.5 Bits Thay đổi(EM hoặc ME)2 Bits Luôn giữa(M)

Ví dụ có 1 xung tín hiệu Manchester như sau:

Bằng giải thuật sử dụng cạnh lên như trên với trạng thái bắt đầu là cạnh lên tại Middle của Bit dữ liệu:

Lần lược các bước giải mã ta có:

--- 18 ---Tác giả: CSKiller

Page 19: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Dữ liệu cuối cùng thu được.VI.2.4. Tối ưu và hiện thực

VI.2.4.1. Giải mã theo thứ tự bit Việc giải mã trực tiếp 4 bits cao và 4 bits thấp vào 1 byte kết quả.

VI.2.4.2. Giải mã theo vị trí bit chẵn lẻ Ngược lại quá trình mã hóa 4 Bit chẵn và 4 Bit lẽ, việc giải mã sẽ thực hiện quá trình ngược lại. Sử dụng bộ đệm là chuỗi Byte 8 bit thay cho chuỗi Word 16 bit.

VI.3. Lập trìnhVI.3.1. Các điều kiện khởi đầu Khai báo bộ đệm dữ liệu

Điều kiện bắt đầu giải mã(sau khi xác định Start Bit)

--- 19 ---Tác giả: CSKiller

Page 20: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Trong quá trình giải mã biến đếm ManBuffCounter sử dụng 3 bits thấp để lưu vị trí bits được giải mã, và 5 bits cao để xác định vị trí Byte đang lưu trong bộ đệm MandataBuff. Như vậy, sau mỗi Byte giải mã được cần thự hiện bước xóa Byte tiếp theo trong bộ đệm về 0.VI.3.2. Thiết lập Receiver

VI.3.2.1. Tính toán timing Sử dụng timer để xác định thời khoảng các bit phục vụ cho quá trình giải mã dữ liệu. Các giá trị tính toán tương ứng với phần phát

Có thể thay đổi tốc độ truyền nhận RF bằng cách tính toán lại các giá trị timing:

VI.3.2.2. Nhận dữ liệu Sử dụng ngắt ngoài hoặc vòng lặp polling để thực hiện việc đo thời khoảng bit nhận được. Sử dụng ngắt ngoài cạnh lên để bắt đầu cho việc kiểm tra:

--- 20 ---Tác giả: CSKiller

Page 21: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Thiết lập ngắt ngoài và timer cho quá trình giải mã

Sử dụng ngắt ngoài cùng giá trị đo được của timer để giải mã

--- 21 ---Tác giả: CSKiller

Page 22: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Hoặc dùng polling thay cho ngắt ngoàiVI.3.3. Giải mã theo thứ tự bit Trường hợp độ dài 2 cạnh lên là 1 Bit:

Trường hợp độ dài 2 cạnh lên là 1.5 Bits:

Trường hợp độ dài 2 cạnh lên là 2 Bits:

Dữ liệu đã được giải mã trực tiếp vào bộ đệm. Kiểm tra CRC:

--- 22 ---Tác giả: CSKiller

Page 23: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

VI.3.4. Giải mã theo vị trí bit chẵn lẻ Trường hợp độ dài 2 cạnh lên là 1 Bit:

Trường hợp độ dài 2 cạnh lên là 1.5 Bits:

Trường hợp độ dài 2 cạnh lên là 2 Bits:

Giải mã dữ liệu

--- 23 ---Tác giả: CSKiller

Page 24: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Kiểm tra CRC:

VII.Truyền nhận dữ liệu VII.1. Khung truyềno Là một chuỗi Bit chứa các thông tin dữ liệu đã được mã hóa và phát dưới dạng

các tín hiệu 1, 0.o Các thành phần thu phát sử dụng chung 1 khung truyền để giao tiếp và truyền dữ

liệu, trong đó kích thước của dữ liệu có thể thay đổi.o Kích thước tối đa của một khung truyền phụ thuộc vào kích thước bộ đệm, tốc độ

xử lý của hệ thống thu phát. Đối với microcontroller thì kích thước nhỏ hơn 32 bytes là đảm bảo tối ưu.VII.2. Truyền dữ liệuVII.2.1. Initialization Là chuỗi bit 1, 0 phát liên tục trong 1 khoảng thời gian trước khi dữ liệu của khung truyền được phát đi. Việc sử dụng chuỗi bit khởi động này giúp đầu thu RF điều chỉnh lại trạng thái sẵn sang cho quá trình giao tiếp.

--- 24 ---Tác giả: CSKiller

Page 25: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Thời gian phát chuỗi bit khởi động này tùy thuộc vào đặc điểm của đầu thu, thường là vào khoảng 25ms.

Tạo chuỗi Initialization trước khi phát dữ liệu

Code sinh chuỗi xung InitializationVII.2.2. Preamble Byte Là Byte báo hiệu cho phía thu biết bắt đầu quá trình gởi dữ liệu. Đặc điểm của Byte này là tạo 1 vi phạm mã Manchester với chiều dài 2 cạnh lên liên tiếp là 3.5 Bits.

Preamble Byte 11110001VII.2.3. Header Đây là phần chứa thông tin của gói dữ liệu, bao gồm 1 hoặc vài Byte. Các thông tin này thường bao gồm:

Địa chỉ mạch thu. Địa chỉ mạch phát. Số tuần tự(dùng cho quá trình bắt tay). Mã lệnh. Chiều dài chuỗi dữ liệu đi kèm. Mã ứng dụng(sử dụng nếu có nhiều ứng dụng cùng dung chung 1 môi trường thu phát).

--- 25 ---Tác giả: CSKiller

Page 26: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Hiện thực HeaderVII.2.4. Body Chứa thông tin dữ liệu của ứng dụng. Số lượng Byte dữ liệu có thể thay đổi trong 1 khung truyền và giới hạn trong kích thước tối đa khi khai báo sử dụng.

VII.2.5. CRCByte Sử dụng cho quá trình kiểm tra lỗi cho phía thu khi có lỗi hoặc nhiễu xảy ra trong quá trình truyền. Sử dụng các giải thuật XOR tất cả các Byte dữ liệu để giảm thời gian xử lý.

Hiện thực giải thuật CRCVII.2.6. Stop Byte Là Byte báo hiệu sự kết thúc của quá trình truyền dữ liệu. Byte này tạo sự vi phạm mã Manchester với độ dài 2 cạnh lên liên tiếp là khoảng 2.5 Bits. Sau khi nhận được Stop thì phía thu sẽ chuyển sang quá trình kiểm tra xử lý chuỗi dữ liệu vừa nhận được.

Stop Byte 01000010

--- 26 ---Tác giả: CSKiller

Page 27: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

VII.3. Tốc độ truyền nhậno Phụ thuộc vào đặc điểm của mạch thu phát và tốc độ xử lý của quá trình mã hóa,

giải mã.

o Các đầu thu OOK/ASK thông thường có tốc độ truyền trong khoảng nhỏ hơn 20 kbps. Nghĩa là nếu dùng Manchester thì tốc độ truyền nhận tối đa là 10 kbps dữ liệu.VII.4. Nhận dữ liệuVII.4.1. Cơ chế ngắt Phía thu khi sử dụng vi điều khiển có thể sử dụng chân ngắt ngoài, ngắt analog comparator,… để phát hiện cạnh lên của tín hiệu thu để thực hiện quá trình giải mã. Để sử dụng được ngắt hiệu quả thì giải thuật mã hóa và giải mã phải cho phép phát hiện được trạng thái đúng hoặc nhiễu một cách rõ ràng. Nếu không thì việc ngắt sẽ tạo ra chuỗi công việc kiểm tra và xử lý kém hiệu quả do phải ngắt một cách liên tục. Ưu điểm khi sử dụng cơ chế ngắt xử lý giải mã là cho phép vi điều khiển thực hiện các chức năng khác 1 cách bình thường mà không phải kiểm tra liên tục tín hiệu nhận. Vì quá trình giải mã chỉ sử dụng 1 cạnh lên cùng với timing được đánh dấu từ lần ngắt trước. Tránh sử dụng các hàm hoặc giải thuật xử lý ở các tác vụ khác mà gây cấm ngắt tới phần nhận giải mã.

--- 27 ---Tác giả: CSKiller

Page 28: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

VII.4.2. Cơ chế polling Đây là phương pháp kiểm tra liên tục tín hiệu thu và kiểm tra tính hợp lệ về timing của nó. Polling cho phép hiện thực dễ dàng nhưng tiêu tốn quá trình xử lý cũng như khó thực hiện các tác vụ khác liên tục trong quá trình thực hiện giải mã dữ liệu.

--- 28 ---Tác giả: CSKiller

Page 29: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

VIII. Ứng dụng trên PIC VIII.1. Transmittero Dùng dao động trong 8MHz.o Không sử dụng chức năng Master Clear trên chân GP3 để có thể dùng như 1

input nếu cần(Disable Master Clear).o Sử dụng Timer 1 làm chức năng transmit dữ liệu.o Gói thông tin gởi bao gồm dữ liệu của 3 bits nút nhấn(sử dụng 1 Byte), có thể bỏ

qua phần thông tin header(ID mạch nhận, số tuần tự bắt tay, mã ứng dụng…) nếu chỉ dùng 1 mạch phát và nhận.o Chọn tốc độ mã hóa, giải mã khoảng 4 kbps.o Thời giải khởi động đầu thu khoảng 25ms.

--- 29 ---Tác giả: CSKiller

Page 30: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

--- 30 ---Tác giả: CSKiller

Page 31: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Khai báo và cấu hình sử dụng thư viện RF.o Chương trình main() sẽ kiểm tra 3 input A0,A1 và A4 nếu co bất cứ phím nào

nhấn nó sẽ thực hiện việc truyền 3 bits dữ liệu đó(trong 1 Byte) cho phía thu.o Trong phần dữ liệu phát chứa thông tin tới mã ID mạch nhận là 1, mã lệnh

RF_CMD_BROADCAST, mạch phát ở đây có mã ID là 2, số tuần tự là 3, dữ liệu là chuỗi buff, mã ứng dụng là RF_APP_DATA, chiều dài của dữ liệu là 1.

--- 31 ---Tác giả: CSKiller

Page 32: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Chương trình MAIN

Kết quả compiledVIII.2. Receivero Dùng dao động trong 8MHz.o Không sử dụng chức năng Master Clear trên chân GP3 để có thể dùng như 1

input nếu cần(Disable Master Clear).

--- 32 ---Tác giả: CSKiller

Page 33: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

o Sử dụng ngắt ngoài (external interrupt on RA2) để thực hiện việc giải mã.o Thực hiện việc nhận, kiểm tra CRC của dữ liệu nhận được và xuất ra các output.o Thực hiện việc giải mã ở cùng tốc độ 4 kbsp tương ứng với đầu phát.o Dữ liệu nhận về bao gồm thông tin về mã ID của mạch phát, thong tin mã ID

mạch nhận, số tuần tự bắt tay, mã lệnh, ứng dụng, chiều dài của phần dữ liệu trong phần Header, tuy nhiên có thể bỏ qua nếu chỉ sử dụng 1 mạch thu và phát.

--- 33 ---Tác giả: CSKiller

Page 34: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Khai báo và cấu hình sử dụng thư viện RF.o Sử dụng interrupt để thực hiện việc giải mã, chương trình main sẽ thực hiện lặp

while chờ dữ liệu. Khi nhân được dữ liệu mặc định hàm RfDataComming sẽ được thực thi và xuất kết quả 3 bits nhận được ra IO.

--- 34 ---Tác giả: CSKiller

Page 35: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Chương trình main dùng interrupto Có thể sử dụng polling trong main thay cho interrupt để nhận và giải mã dữ liệu.

--- 35 ---Tác giả: CSKiller

Page 36: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Chương trình main dùng polling

--- 36 ---Tác giả: CSKiller

Page 37: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Kết quả compiled

--- 37 ---Tác giả: CSKiller

Page 38: RF Data Communications With PIC

Sun Technologies WwW.suno.vn Chia sẽ = Phát triển

Tài liệu tham khảo :

1. Manchester Data Encoding for Radio Communications.2. Back to the future Manchester encoding.3. Using the XGATE for Manchester.

--- 38 ---Tác giả: CSKiller