Định dạng khung tin MAC

Một phần của tài liệu Nghiên cứu, thiết kế và chế tạo hệ thống truyền nhận dữ liệu vô tuyến theo chuẩn giao tiếp ZIGBEE (Trang 30)

• Đầu khung MHR (MAC header): gồm các trường thông tin về điều khiển khung tin, số chuỗi, và trường địa chỉ.

• Tải trọng khung (MAC payload): chứa các thông tin chi tiết về kiểu khung. Khung tin của bản tin xác nhận Ack không có phần này.

• Cuối khung MFR (MAC footer) chứa chuỗi kiểm tra khung FCS (frame check sequence). Bảng 2.4. Định dạng khung MAC Octets:2 1 0/2 0/2/8 0/2 0/2/8 Biến thiên 2 Điều khiển khung Chuỗi số ID mạng PAN đích Địa chỉ đích ID PAN nguồn Địa chỉ nguồn Tải trọng khung Chuỗi kiểm tra khung (FCS) Trường địa chỉ

Phần đầu khung MHR Tải

trọng Cuối khung MFR 2.4. Tầng mạng 2.4.1. Dịch vụ mạng

Tầng vật lý trong mô hình của giao thức ZigBee được xây dựng trên nền của tầng điều khiển dữ liệu, nhờ những đặc điểm của tầng MAC mà tầng vật lý có thểkéo dài việc đưa tin, có thể mở rộng được qui mô mạng dễ dàng, một mạng có thể hoạt động cùng các mạng khác hoặc riêng biệt. Tầng vật lý phải đảm nhận các chức năng như là:

 Thiết lập một mạng mới.

 Tham gia làm thành viên của một mạng đang hoạt động hoặc là tách ra khỏi mạng khi đang là thành viên của một mạng nào đó.

 Cấu hình thiết bị mới như hệ thống yêu cầu, gán địa chỉcho thiết bị mới tham gia vào mạng.

 Đồng bộ hóa các thiết bị trong mạng để có thể truyền tin mà không bị tranh chấp, nó thực hiện đồng bộ hóa này bằng gói tin thông báo beacon.

 Định tuyến, giúp gói tin có thể đến được đúng đích mong muốn. Có thể nói rằng thuật toán của ZigBee là thuật toán định tuyến phân cấp sử dụng bảng định tuyến phân cấp tối ưu, được áp dụng từng trường hợp thích hợp.

2.4.2. Dịch vụ bảo mật

Khi khung tin tầng MAC cần được bảo mật, thì ZigBee sử dụng dịch vụ bảo mật của tầng MAC để bảo vệ các khung lệnh MAC, các thông tin báo hiệu beacon, và các khung tin xác nhận Ack. Đối với các bản tin chỉ phải chuyển qua một bước nhảy đơn, tức là truyền trực tiếp từ nốt mạng này đến nốt mạng lân cận của nó, thì ZigBee chỉ cần sử dụng khung tin bảo mật MAC để mã hóa bảo vệ thông tin. Nhưng đối với các bản tin phải chuyển gián tiếp qua nhiều nốt mạng mới tới được đích thì nó cần phải nhờ vào tầng mạng để làm công việc bảo mật này. Tầng điều khiển dữ liệu MAC sử dụng thuật toán AES (chuẩn mã hóa cao cấp). Nói chung thì tầng MAC là một quá trình mã hóa, nhưng công việc thiết lập các khóa key, chỉ ra mức độ bảo mật, và điều khiển quá trình mã hóa thì lại thuộc về các tầng trên. Khi tầng MAC phát hoặc nhận một khung tin nào đó được bảo mật, đầu tiên nó sẽ kiểm tra địa chỉ đích hoặc nguồn của khung tin đó, tìm ra cái khóa kết hợp với địa chỉ đích hoặc địa chỉ nguồn, sau đó sử dụng cái khóa này để xử lý khung tin theo qui trình bảo mật mà cái khóa đó qui định. Mỗi khóa key được kết hợp với một qui trình bảo mật đơn lẻ. Ở đầu mỗi khung tin của MAC luôn có 1 bit để chỉ rõ khung tin này có được bảo mật hay không.

Khi phát một khung tin, mà khung tin này yêu cầu cần được bảo toàn nguyên vẹn. Khi đó phần đầu khung và phần tải trọng khung MAC sẽ tính toán cân nhắc để tạo ra một trường mã hóa tin nguyên vẹn (MIC- Message Integrity) phù hợp, MIC gồm khoảng 4,8 hoặc 16 octets. MIC sẽ được gán thêm vào bên phải phần tải trọng của MAC.

Hình 2.8. Khung tin mã hóa tầng MAC.

Khi khung tin phát đi đòi hỏi phải có độ tin cậy cao, thì biện pháp được sử dụng để mã hóa thông tin là số chuỗi và số khung sẽ được gán thêm vào bên trái phần tải trọng khung tin MAC. Trong khi nhận gói tin, nếu phát hiện thấy MIC thì lập tức nó sẽ kiểm tra xem khung tin nào bị mã hóa đểgiải mã. Cứ mỗi khi có một bản tin gửi đi thì thiết bị phát sẽ tăng số đếm khung lên và thiết bị nhận sẽ theo dõi căn cứ vào số này.

Nhờ vậy nếu như có một bản tin nào có số đếm khung tin đã bị nhận dạng một lần thì thiết bị nhận sẽ bật cờ báo lỗi bảo mật. Bộ mã hóa của tầng MAC dựa trên ba trạng thái của hệ thống.

 Để bảo đảm tính nguyên vẹn: Mã hóa sử dụng AES với bộ đếm CTR

 Để bảo đảm tính tin cậy: Mã hóa sử dụng AES với chuỗi khối mã CBCMAC  Để đảm bảo tính tin cậy cũng như nguyên vẹn của bản tin thì kết hợp cả hai

trạng thái CTR và CBC-MAC trên thành trạng thái CCM.

Tầng mạng cũng sử dụng chuẩn mã hóa AES. Tuy nhiên khác với tầng điều khiển dữ liệu MAC, bộ mã hóa của tầng mạng làm việc dựa trên trạng thái CCM của hệ thống. Trạng thái này thực chất là sự cải biên từ CCM của tầng MAC, nó thêm vào chuẩn mã hóa này các chức năng là chỉ mã hóa tính tin cậy và chỉ mã hóa tính nguyên vẹn. Sử dụng CCM giúp làm đơn giản hóa quá trình mã hóa dữ liệu của tầng mạng, các chuỗi mã hóa này có thể dùng lại khóa key của chuỗi mã hóa khác. Như vậy thì khóa key này không hoàn toàn còn là ranh giới của các chuỗi mã hóa nữa. Khi tầng mạng phát hoặc nhận một gói tin được mã hóa theo qui ước bởi nhà cung cấp dịch vụ, nó sẽ kiểm tra địa chỉ nguồn hoặc đích của khung tin để tìm ra khóa key liên quan tới địa chỉ đó, sau đó sẽ áp dụng bộ mã hóa này giải mã hoặc mã hóa cho khung tin.

Tương tự như quá trình mã hóa tầng MAC, việc điều khiển quá trình mã hóa này được thực hiện bởi các tầng cao hơn, các số đếm khung và MIC cũng được thêm vào để mã hóa khung tin.

Hình 2.9. Khung tin mã hóa tầng mạng.

2.5. Tầng ứng dụng

Lớp ứng dụng của ZigBee/IEEE802.15.4 thực chất gồm các ba tầng như Hình 2.1, các tầng này tương ứng với các tầng phiên, trình diễn và ứng dụng trong mô hình OSI 7 tầng.

Trong ZigBee/IEEE 802.15.4 thì chức năng của tầng Application Framework là:  Dò tìm ra xem có nốt hoặc thiết bị nào khác đang hoạt động trong vùng phủ

sóng của thiết bị đang hoạt động hay không.

Chức năng của tầng Application Profiles là:

 Xác định vai trò của các thiết bị trong mạng. (thiết bị điều phối mạng, hay thiết bị đầu cuối, FFD hay RFD….)

 Thiết lập hoặc trả lời yêu cầu kết nối.

 Thành lập các mối quan hệ giữa các thiết bị mạng. (adsbygoogle = window.adsbygoogle || []).push({});

Chức năng của tầng Application là thực hiện các chức năng do nhà sản xuất qui định (giao diện…) để bổ sung thêm vào các chức năng do ZigBee qui định.

CHƯƠNG 3. MODULE THU PHÁT KHÔNG DÂY MRF24J40.

3.1. Module thu phát không dây chuẩn ZigBee - MRF24J40

3.1.1. Giới thiệu chung về module MRF24J40

a) Giới thiệu chung

MRF24J40 là một bộ truyền nhận dữ liệu không dây theo chuẩn IEEE802.15.4 hoạt động ở dải tần 2,4GHz [1]. Nó tích hợp hai chức năng là PHY và MAC trên cùng một chip đơn. Chip MRF24J40 được phát triển bởi công ty Microchip, vì vậy nó dễ dàng giao tiếp với nhiều dòng vi điều khiển PIC khác nhau thông qua giao diện 4 dây SPI, ngắt, wake và reset. Module MRF24J40 cho phép tạo ra các thiết bị WPAN hoạt động với tốc độ truyền dữ liệu không cao (250 – 625kbps) nhưng với chi phí thấp và tiêu thụ ít năng lượng. Sơ đồ khối tổng quát của module này được chỉ ra như trong Hình 3.1.

Hình 3.1. Sơ đồ khối tổng quát của MRF24J40 trong một node mạng.

Về mặt phần cứng, MRF24J40 hỗ trợ các chức năng: - Tự động dò năng lượng.

- Chế độ Carrier Sense. - Hỗ trợ 3 chế độ CCA.

- Hỗ trợ thuật toán CSMA-CA. - Tự động truyền lại gói tin. - Tự động bắt tay.

- Hỗ trợ các chế độ truyền độc lập, beacon và GTS FIFO buffer. - Có cơ chế bảo mật hỗ trợ mã hóa và giải mã ở lớp MAC và lớp trên. Sơ đồ chân của MRF24J40 được mô tả như ở trong Hình 3.2.

Hình 3.2. Sơ đồ chân của MRF24J40.

b) Mô tả phần cứng

Về mặt kiến trúc phần cứng, module MRF24J40 bao gồm các khối cơ bản như được chỉ ra ở trong Hình 3.3. Tần số hoạt động của module này là 2,4GHz và được tổng hợp từ xung nhịp 20MHz của một thạch anh ngoài.

Khối nhận bao gồm một bộ khuếch đại nhiễu thấp (Low Noise Amplifier – LNA), một bộ trộn tín hiệu chuyển đổi, các bộ lọc kênh đa pha, và một số bộ khuếch đại giới hạn băng gốc. Bộ phát là một kiến trúc chuyển đổi trực tiếp tín hiệu ra với công suất ra cực đại là 0dB và dải công suất điều khiển là 36dB. Một bộ chuyển mạch truyền/nhận sẽ cho phép kết hợp các mạch truyền và mạch nhận vào hai chân khác nhau là RFP và RFN. Các chân này sẽ nối với anten thông qua một mạch phối hợp trở kháng. Các bộ khuếch đại công suất hoặc các bộ khuếch đại nhiễu thấp có thể được nối với module này và được điều khiển thông qua các chân vào ra đa mục đích (GPIO).

Hình 3.3. Sơ đồ khối mô tả kiến trúc của MRF24J40.

Chức năng của một số chân quan trọng của MRF24J40 được mô tả như ở phần sau:  Chân khởi động lại (RESET\)

MRF24J40 có thể được reset ngoài bằng cách gửi một tín hiệu ở mức thấp đến chân 13 (RESET\). Chip MRF24J40 sẽ được tái khởi động sau khoảng thời gian 250µs kể từ khi chân RESET\ ở mức thấp.

Chân ngắt ngoài (INT)

Vi điều khiển có thể gửi một tín hiệu ngắt ngoài đến MRF24J40 thông qua chân 13 của chip này (chân INT). Mức phân cực ngắt của tín hiệu gửi đến có thể được lập trình thông qua bit INTEDGE ở thanh ghi SLPCON0 (0x211<1>). Trước khi tín hiệu ngắt được gửi đến thì các cờ ngắt trong MRF24J40 phải được kích hoạt và xóa.

Chân đánh thức (WAKE)

Vi điều khiển có thể gửi một tín hiệu đánh thức (WAKE) đến MRF24J40 để chuyển chip này từ trạng thái ngủ sang trạng thái sẵn sàng hoạt động. Tín hiệu đánh thức từ vi điều khiển sẽ được đưa vào chip này thông qua chân WAKE (chân số 15). Chức năng này được sử dụng khi kích hoạt chế độ SLEEP của MRF24J40.

Các chân vào ra đa mục đích (GPIO)

Các chân GPIO có thể được cấu hình để phục vụ việc vào ra dữ liệu nhằm thực hiện các quá trình điều khiển hoặc quan sát trạng thái hệ thống. Việc lựa chọn chức năng vào/ra của các chân GPIO được thực hiện thông qua việc cấu hình thanh ghi TRISGPIO ở địa chỉ 0x34. Các dữ liệu vào ra trên những chân này được đọc hoặc ghi thông qua thanh ghi GPIO ở địa chỉ 0x33.

MRF24J40 giao tiếp với vi điều khiển chính thông qua giao diện nối tiếp 4-dây SPI và hoạt động như một thiết bị tớ. MRF24J40 hỗ trợ giao tiếp SPI ở chế độ 0-0 nên nó yêu cầu tín hiệu SCK ở trạng thái thấp khi không hoạt động. Tín hiệu CS\ cũng phải được giữ ở mức thấp khi thực hiện quá trình truyền thông với vi điều khiển chủ. Giản đồ thời gian của hoạt động ghi được chỉ ra như ở trên Hình 3.4. Dữ liệu được nhận thông qua chân SDI khi có khởi phát một cạnh lên của SCK. Hình 3.5 mô tả hoạt động đọc dữ liệu, trong đó dữ liệu được gửi bởi MRF24J40 thông qua chân SDO khi có khởi phát một cạnh xuống của SCK.

Hình 3.4. Hoạt động ghi dữ liệu qua SPI.

Hình 3.5. Hoạt động đọc dữ liệu qua SPI.

3.1.2. Tổ chức bộ nhớ của MRF24J40

Bộ nhớ của MRF24J40 là một vùng nhớ RAM tĩnh và có thể truy cập thông qua cổng giao tiếp SPI. Về mặt chức năng, bộ nhớ của MRF24J40 được chia thành 2 vùng là: các thanh ghi điều khiển và vùng đệm dữ liệu (FIFO) (Hình 3.6). Các thanh ghi điều khiển sẽ thực thi các chức năng điều khiển, báo trạng thái và định địa chỉ thiết bị khi MRF24J40 hoạt động. Các FIFO sẽ hoạt động như các bộ đệm tạm thời nhằm phục vụ việc truyền nhận dữ liệu cũng như lưu trữ các khóa bảo mật. Bộ nhớ của MRF24J40 được truy cập thông qua hai phương pháp chính: định địa chỉ ngắn (Short Address Memory) và định địa chỉ dài (Long Address Memory).

Hình 3.6. Không gian bộ nhớ của MRF24J40. (adsbygoogle = window.adsbygoogle || []).push({});

a) Vùng địa chỉ ngắn

Vùng không gian địa chỉ ngắn chứa các thanh ghi với 6-bit địa chỉ nằm trong dải 0x00 đến 0x3F. Thao tác đọc dữ liệu sẽ được thực hiện như mô tả trong Hình 3.7, và việc ghi dữ liệu vào vùng nhớ có địa chỉ ngắn sẽ được thực hiện như ở Hình 3.8. Quá trình truyền 8-bit dữ liệu thông qua cổng SPI với bit “0” sẽ chỉ ra rằng đây là một quá trình truyền với địa chỉ ngắn. Tiếp theo sau đó sẽ là 6-bit địa chỉ với bit trọng số cao (MSb) nằm đầu. Bit thứ 8 sẽ chỉ ra đây là một quá trình đọc (nếu có giá trị “0”) hay là quá trình ghi (nếu có giá trị “1”).

Hình 3.8. Ghi dữ liệu với địa chỉ ngắn.

b) Vùng địa chỉ dài

Vùng không gian bộ nhớ được định địa chỉ dài bao gồm các thanh ghi và các FIFO được định địa chỉ từ 0x000 đến 0x38F (10bit). Các hoạt động đọc và ghi dữ liệu vào vùng không gian bộ nhớ này được thực hiện như trong mô tả ở Hình 3.9 và Hình 3.10. Một hoạt động truyền SPI với khung truyền 12 bit và bắt đầu bởi giá trị “1” sẽ chỉ ra đây là một quá trình đọc ghi dữ liệu vào vùng địa chỉ dài. Tiếp theo sau đó sẽ là 10-bit dữ liệu và bit kết thúc (bit thứ 12) sẽ chỉ ra đây là một hoạt động đọc (nếu có giá trị “0”) hay là hoạt động ghi (nếu bit này có giá trị “1”).

Hình 3.9. Quá trình đọc dữ liệu ở vùng địa chỉ dài.

Hình 3.10. Quá trình ghi dữ liệu ở vùng địa chỉ dài.

3.2. Một số hàm chức năng hoạt động của MRF24J40

Để điều khiển và giám sát hoạt động của MRF24J40 thì trong không gian nhớ của nó có các thanh ghi đặc biệt được qui định sẵn để nhằm thực hiện những hoạt động đó. Các thanh ghi này có những chức năng khác nhau mà địa chỉ cũng như tên gọi của từng thanh ghi được mô tả như trong Bảng 3.1 và Bảng 3.2. Dựa trên chức năng của các thanh ghi điều khiển thì phần này sẽ tìm hiểu một số chức năng hoạt động quan trọng của MRF24J40. Các chức năng cụ thể của từng thanh ghi có thể được tìm thấy ở [1].

Bảng 3.1. Sơ đồ địa chỉ các thanh ghi điều khiển có địa chỉ ngắn

Bảng 3.2. Sơ đồ địa chỉ các thanh ghi điều khiển có địa chỉ dài.

3.2.1. Tái khởi động

MRF24J40 có 04 kiểu khởi động:

MRF24J40 có một mạch điện tự reset các giá trị của các thanh ghi khi được cấp nguồn. Loại tái khởi động này yêu cầu một khoảng thời gian 2ms sau khi hệ thống được cấp nguồn để các mạch RF có thể được khởi động và ổn định.

 Khởi động hệ thống thông qua chân RESET\:

Các vi điều khiển chủ có thể tái khởi động hoạt động của MRF24J40 thông qua việc gửi một tín hiệu ở mức thấp đến chân RESET\ của module này. Tín hiệu thấp này phải được duy trì trong khoảng thời gian xấp xỉ 250µs để hệ thống có thể hiểu và reset lại hoạt động.

 Khởi động bằng phần mềm:

Các vi điều khiển có thể khởi động lại MRF24J40 bằng phần mềm thông qua việc gửi một gói dữ liệu đến các thanh ghi tương ứng.

Việc khởi động lại hệ thống quản lý năng lượng được thực hiện bằng cách gửi một bit bằng “1” đến thanh ghi quản lý nguồn RSTPWR (0x2A<2>) (Bảng 3.3). Trong trường hợp này, dữ liệu trong các thanh ghi vẫn giữ nguyên giá trị.

Một phần của tài liệu Nghiên cứu, thiết kế và chế tạo hệ thống truyền nhận dữ liệu vô tuyến theo chuẩn giao tiếp ZIGBEE (Trang 30)