Thiết kế nút mạng cảm biến

Một phần của tài liệu hệ thống cảnh bảo cháy tự động sử dụng công nghệ mạng cảm biến không dây (wirelees sensor network) (Trang 27 - 56)

3.1.1.1. Module WSN Xbee ZB ZigBee

Trên thị trường hiện nay cĩ khá nhiều loại module WSN, thơng dụng nhất là các module sử dụng chuẩn truyền thơng ZigBee sau:

• Atmel: ATmega128RFA1

• Digi International: XBee ZB ZigBee, XBee Znet

• Ember: EM250 • Freescale: MC13213 • GreenPeak: GP520-GP530-GP540 • RadioPulse: MG2410 and MG2450/55 • ST Microelectronics: STM32W • Texas Instruments: CC1xxx và CC2xxx

31

Hình 3.1. Module XBee ZB ZigBee của hãng Digi International®.

32

Bảng 3.1. Các thơng số kỹ thuật cơ bản của module Xbee ZB ZigBee.

Loại module Xbee ZB ZigBee Xbee – PRO ZB ZigBee Tốc độ dữ liệu đường truyền vơ tuyến 250Kbps

Phạm vi phủ sĩng trong nhà (Indoor) 40m 90m Phạm vi phủ sĩng ngồi trời (Outdoor) 120m 1500m Cơng suất phát sĩng 1.25mW-2mW 63mW

ðộ nhạy thu -96dBm -102dBm

Nguồn cung cấp 2.1 – 3.6 VDC 2.7 – 3.6 VDC

Dịng điện tiêu thụ ở chế độ phát 45mA 220mA Dịng điện tiêu thụ ở chế độ thu 40mA 62mA Dịng điện tiêu thụ ở chế độ ngủ < 1µA ở 25oC < 4µA ở 25oC Khả năng điều chỉnh năng lượng tiêu thụ Cĩ

Cổng vào/ra 3.3V ADC, ADC, I/O

Phương pháp cấu hình và truyền dữ liệu Tập lệnh AT hoặc đĩng gĩi khung truyền API

Tần số hoạt động 2.4Ghz ISM

Phương pháp trải phổ DSSS

Tốc độ dữ liệu truyền thơng nối tiếp 1200bps – 1Mbps

ðộ phân giải ADC 10 bit

Kiểu Ăngten Chip, Wire,

RPSMA

Wire, RPSMA ðiều kiện hoạt động -40oC – 85oC, độ ẩm tối đa 95%

Bộ nhớ 128kB Flash và 5kB RAM

Phương pháp bảo mật AES 128 bit

Phương pháp truyền tin tin cậy Truyền lại/Bản tin báo nhận ACK Phương pháp địa chỉ hĩa thiết bị ðịa chỉ MAC 64 bit, 16 kênh truyền, PAN

ID

Chứng nhận tiêu chuẩn kỹ thuật FFC,IC,ETSI, C-TICK,TELEC

Mỗi sản phẩm đều cĩ ưu điểm và nhược điểm riêng, qua một thời gian tìm hiểu tính năng cũng như khả năng phát triển ứng dụng của một số loại module, em đã chọn module Xbee ZB ZigBee – một sản phẩm thương mại sử dụng chuẩn truyền

thơng ZigBee, hoạt động ở tần số 2.4Ghz của hãng Digi International®, cĩ khả

năng giao tiếp với thiết bị chuẩn ZigBee của các hãng khác. Bảng dưới đây sẽ liệt kê một số thơng số kỹ thuật cơ bản của module Xbee ZB ZigBee:

Với những thơng số kỹ thuật như trên, module Xbee ZB ZigBee rất phù hợp với những ứng dụng địi hỏi năng lượng tiêu thụ thấp, cĩ thể sử dụng pin hoặc

33

Hình 3.2. Sơ đồ chân của module XBee ZB ZigBee.

Hình 3.3. Quá trình trao đổi thơng tin của module XBee.

acquy làm nguồn cung cấp, cĩ khả năng chống nhiễu với các thiết bị khác hoạt động trên cùng dải tần số, cấu hình mạng đơn giản và hoạt động tin cậy. Dưới đây là sơ đồ chân và chức năng từng chân của module XBee ZB ZigBee.

Theo tài liệu mơ tả kỹ thuật của hãng Digi International®, module XBee chỉ cĩ thể giao tiếp với vi điều khiển hoặc máy tính thơng qua giao thức UART, dữ liệu trao đổi cĩ thể ở dạng các kí tự điều khiển trong tập lệnh AT hoặc được đĩng gĩi thành khung tin API.

• Dữ liệu cần truyền đi sẽ được đưa vào chân DIN của module XBee. • Module XBee sẽ gửi dữ liệu cho vi điều khiển hoặc máy tính qua chân

DOUT.

• Khi dữ liệu trong bộ đệm phát của module XBee bị đầy, chân CTS sẽ được chuyển trạng thái từ mức thấp lên mức cao, báo hiệu vi điều khiển

34

Hình 3.4. Trạng thái của chân SLEEP_RQ và ON/SLEEP theo thời gian.

Hình 3.5. Cấu trúc của một câu lệnh sử dụng tập lệnh AT.

tạm ngừng quá trình gửi dữ liệu cho module XBee.

• Khi vi điều khiển muốn nhận dữ liệu từ module XBee, chân RTS sẽ được vi điều khiển chuyển trạng thái từ mức logic cao về mức logic thấp, báo hiệu cho module XBee bắt đầu gửi dữ liệu cho vi điều khiển.

• Khi module XBee ở trạng thái thức, chân ON/SLEEP sẽ ở mức logic cao. Ngược lại, khi module ở trạng thái ngủ, chân ON/SLEEP sẽ ở mức logic thấp. Như vậy, cĩ thể sử dụng chân ON/SLEEP để đánh thức hoặc đưa vi điều khiển về trạng thái ngủ cùng với module XBee nhằm giảm

năng lượng tiêu thụ.

• Chân SLEEP_RQ nối với cổng ngoại vi của vi điều khiển, dùng để điều khiển quá trình ngủ/thức của module XBee. Khi cĩ cháy xảy ra, vi điều khiển sẽ bị đánh thức trước, ngay sau đĩ, nĩ đánh thức module XBee và tiến hành quảng bá bản tin báo cháy ra tồn mạng.

ðể module XBee hoạt động ở chế độ trao đổi dữ liệu theo tập lệnh AT, cần thực hiện các thao tác sau:

• Khơng gửi kí tự nào cho module XBee trong thời gian 1 giây. • Gửi chuỗi kí tự “ +++ “ trong thời gian 1 giây.

• Khơng gửi kí tự nào trong thời gian 1 giây.

• Khi module XBee trả về kí tự “OK“, việc trao đổi dữ liệu theo tập lệnh AT cĩ thể bắt đầu. Cấu trúc một câu lệnh sử dụng tập lệnh AT như sau:

35

Hình 3.6. Cấu trúc dữ liệu của khung tin API.

- “AT”: tiền tố của tập lệnh AT.

- ASCII Command: mã ASCII của một lệnh trong tập lệnh AT. - Space: dấu khoảng trắng.

- Parameter: thơng số cấu hình cho module, giá trị ở dạng hexa. - Carriage Return: dấu Enter.

- Ví dụ: câu lệnh “ATID 234“ dùng để thiết lập giá trị PAN_ID =“234” cho module XBee.

• ðể thốt khỏi chế độ sử dụng tập lệnh AT, cần gửi cho module XBee lệnh “ATCN“.

Như vậy, việc trao đổi dữ liệu bằng cách sử dụng tập lệnh AT là khá phức tạp và tốn nhiều thời gian, khơng thể gửi dữ liệu đi dưới dạng quảng bá cho nhiều nút mạng. Với những ưu điểm của việc trao đổi dữ liệu theo khung tin API được chỉ ra sau đây, module XBee sẽ được cấu hình hoạt động ở chế độ đĩng gĩi dữ liệu theo khung tin API.

Với cách đĩng gĩi dữ liệu theo khung truyền API, chỉ cần cấu hình thơng số cho module XBee một lần duy nhất, và thơng tin trao đổi giữa vi điều khiển PIC với module XBee sẽ được truyền liên tục theo cấu trúc khung như sau:

Start Delimiter: byte báo hiệu bắt đầu khung truyền, cĩ giá trị cố định ở hệ hexa là 0x7E.

36

Bảng 3.2. Các loại khung tin API.

Loại khung API API ID

AT Command 0x08

AT Command - Queue Parameter Value 0x09 ZigBee Transmit Request 0x10 Explicit Addressing ZigBee Command Frame 0x11 Remote Command Request 0x17

Create Source Route 0x21

AT Command Response 0x88

Modem Status 0x8A

ZigBee Transmit Status 0x8B ZigBee Receive Packet (AO=0) 0x90 ZigBee Explicit Rx Indicator (AO=1) 0x91 ZigBee IO Data Sample Rx Indicator 0x92 XBee Sensor Read Indicator (AO=0) 0x94 Node Identification Indicator (AO=0) 0x95 Remote Command Response 0x97 Over-the-Air Firmware Update Status 0xA0 Route Record Indicator 0xA1 Many-to-One Route Request Indicator 0xA3

Length: gồm 02 byte, chỉ độ dài trường dữ liệu của khung tin API, được tính từ sau byte LSB đến trước byte Checksum.

Frame data: dữ liệu của khung tin API, được định nghĩa cho từng loại khung dữ liệu, trong đĩ cĩ địa chỉ của nút mạng, dữ liệu cần truyền đi hoặc nhận được, và một số byte điều khiển.

- API Identifier hay cmdID: byte điều khiển, báo hiệu loại khung tin API.

- Identifier – specific data hay cmdData: phần dữ liệu của từng loại khung tin API, thường chứa địa chỉ nút mạng, dữ liệu của người dùng. • Checksum: byte để kiểm tra lỗi khung tin, byte này được thiết bị nhận

khung tin xử lý để kiểm tra tính chính xác của khung tin nhận được. Giá trị của byte này được tính theo thuật tốn :

- Với Bi là giá trị ở hệ hexa của byte thứ i.

Ví dụ cho một khung tin API đơn giản: “ 0x7E 0x00 0x05 0x08 0x01 0x4E 0x4A 0xFF 5F “.

37

Hình 3.7. Cấu trúc dữ liệu khung API ZigBee Transmit Request.

Trong phạm vi của đề tài, các nút mạng chỉ cần truyền và nhận thơng tin từ các nút mạng khác. Do đĩ, cần sử dụng các loại khung truyền API sau:

ZigBee Transmit Request (0x10): được sử dụng để truyền bản tin báo cháy, đo nhiệt độ, tắt cảnh báo …

- Frame type: loại khung tin API. Tham khảo Bảng 3.2.

- Frame ID: số thứ tự của khung tin.

- 64-bit Destination Address: địa chỉ MAC 64 bit của nút mạng đích nhận gĩi tin.

- 16-bit Destination Network Address: địa chỉ logic 16 bit của nút mạng nhận gĩi tin.

38

Hình 3.8. Cấu trúc dữ liệu khung API AT Command Request.

- Broadcast Radius: Bán kính chuyển tiếp của gĩi tin broadcast trong mạng, được tính theo đơn vị nút mạng.

- Options: byte dự phịng, chưa sử dụng đến.

- RF data: dữ liệu cần truyền đi, ở trong phạm vi của đề tài là bản tin báo cháy; lệnh đo nhiệt độ, lệnh đo điện áp pin…

AT Command (0x08): được sử dụng khi cần thiết lập các thơng số cấu hình cho module XBee giao tiếp trực tiếp với vi điều khiển.

- AT Command: mã lệnh trong tập lệnh AT, sử dụng để cấu hình cho module XBee.

- Parameter Value: giá trị (nếu cĩ) của thơng số cần cấu hình. Ví dụ : tốc độ Baud, thời gian ngủ…

ZigBee Transmit Status (0x8B): được module XBee gửi cho vi điều khiển để báo kết quả của quá trình truyền tin, thành cơng hay thất bại. - Transmit Retry Count: thiết lập số lần module XBee gửi lại gĩi tin

đến nút đích khi khơng thấy bản tin ACK từ nút đích. - Delivery Status: thơng báo kết quả của quá trình truyền tin. - Discovery Status: cách tìm đường đi đến nút đích.

39

Hình 3.9. Cấu trúc dữ liệu khung API ZigBee Transmit Status.

ZigBee Receive Packet (0x90): khi module XBee nhận được gĩi tin từ nút mạng khác gửi tới, nĩ gửi dữ liệu cho vi điều khiển theo khung tin cĩ cấu trúc như sau:

- 64-bit Source Address: địa chỉ MAC 64 bit của nút mạng nguồn gửi gĩi tin.

40

Hình 3.10. Cấu trúc dữ liệu khung API ZigBee Receive Packet.

- 16-bit Source Address: địa chỉ logic 16 bit của nút mạng nguồn gửi gĩi tin.

- Receive Options: byte điều khiển báo hiệu loại gĩi tin là unicast hay broadcast.

- Received data: trường dữ liệu mà nút nguồn gửi đi. Trong phạm vi của đề tài, trường dữ liệu này là bản tin báo cháy do 1 nút phát đi khi nĩ phát hiện ra cháy, hoặc là dữ liệu về nhiệt độ, mức điện áp pin…

41

Hình 3.11. Cấu trúc dữ liệu khung API Remote AT Command Request.

Remote AT Command Request (0x8A): đượcsử dụng để cấu hình hoặc đọc giá trị các thơng số của module XBee ở xa, bằng cách dùng một module XBee khác để gửi gĩi tin đến module cần cấu hình.

3.1.1.2. Vi điều khiển Microchip PIC18F26K20

PIC là tên viết tắt của “Peripheral Interface Controller“ – “bộ điều khiển thiết bị ngoại vi”, một họ vi điều khiển sử dụng kiến trúc Harvard của hãng Microchip. PIC 18F26K20 là loại vi điều khiển cĩ giá thành rẻ, dễ sử dụng, các thơng số phần cứng đáp ứng được yêu cầu của đề tài:

• Bộ nhớ chương trình : 64Kbyte, đủ cho nhu cầu tùy biến chương trình điều khiển.

42

Hình 3.12. Sơ đồ chân của vi điều khiển PIC 18F26K20.

• Cĩ sẵn bộ dao động 16Mhz bên trong chip. • 13 kênh chuyển ADC với độ phân giải 10bit. • 25 chân ngoại vi vào/ra.

• 02 bộ so sánh.

• Bộ tạo điện áp chuẩn .

• 01 khối truyền thơng USART. • 03 ngắt ngồi cĩ thể lập trình được. • ðiện áp hoạt động từ đến .

• 3 chế độ quản lý năng lượng tiêu thụ : Run, Idle, và Sleep.

• Sử dụng cơng nghệ nanoWatt XLP, dịng điện tiêu thụ ở chế độ ngủ

khoảng ở .

ðể thực hiện việc giao tiếp với module XBee và giám sát nhiệt độ của mơi trường cũng như điện áp pin, cần sử dụng các khối chức năng sau của vi điều khiển PIC: khối truyền thơng USART, khối tạo điện áp chuẩn, khối ADC, khối so sánh, ngắt ngoại vi INT0.

a. Khối truyền thơng USART

USART là một chuẩn truyền thơng nối tiếp cĩ đồng bộ hoặc khơng đồng bộ. Dữ liệu sẽ được truyền đi hoặc nhận về theo từng khung tin cĩ cấu trúc như sau:

43

Hình 3.14. Cấu tạo phần phát của khối truyền thơng USART.

Cấu tạo phần phát trong khối truyền thơng USART của vi điều khiển PIC:

• Bit BRG16: bit thiết lập độ phân giải của bộ tạo tốc độ Baud - BRG16 = 1: bộ tạo tốc độ Baud cĩ độ phân giải là 16 bit. - BRG16 = 0: bộ tạo tốc độ Baud cĩ độ phân giải là 8 bit.

• Bit TXEN: bit thiết lập cho phép hay khơng cho phép phát dữ liệu - TXEN = 1: cho phép phát dữ liệu.

- TXEN = 0: khơng cho phép phát dữ liệu.

• Bit TX9D: bit dữ liệu thứ 9 hoặc cĩ thể thiết lập là parity bit. • Bit TX9: bit thiết lập số bit dữ liệu trong một phiên truyền

44

Hình 3.15. Cấu tạo phần thu của khối truyển thơng USART.

- TX9 = 1: truyền 9 bit dữ liệu. - TX9 = 0: truyển 8 bit dữ liệu.

• Thanh ghi TXREG: thanh ghi dữ liệu của bộ phát, chứa dữ liệu cần gửi đi.

• Bit TRMT: bit báo hiệu trạng thái thanh ghi dịch của phần phát - TRMT = 1: thanh ghi dịch của phần phát đang rỗng.

- TRMT = 0: thanh ghi dịch của phần phát đã đầy. • Bit TXIF: cờ báo ngắt của phần phát

- TXIF = 1: thanh ghi TXREG đã đầy. - TXIF = 0: thanh ghi TXREG đang rỗng.

• Bit TXIE: bit thiết lập sử dụng ngắt truyền USART - TXIE = 1: Cho phép sử dụng ngắt truyền USART.

- TXIE = 0: Khơng cho phép sử dụng ngắt truyền USART.

Cấu tạo phần thu trong khối USART của vi điều khiển PIC:

45 - CREN = 1: cho phép nhận dữ liệu.

- CREN = 0: khơng nhận dữ liệu.

• Bit OERR: bit báo bộ nhận bị tràn dữ liệu - OERR = 1: bộ nhận dữ liệu bị tràn dữ liệu.

- OERR = 0: bộ nhận dữ liệu hoạt động bình thường. • Bit RCIDL: bit báo trạng thái của bộ nhận dữ liệu USART

- RCIDL = : bộ nhận đang rỗi.

- RCIDL = 0: phát hiện được bit Start của khung dữ liệu. • Bit FERR: bit báo lỗi khung dữ liệu

- FERR = 1: khung dữ liệu nhận được bị lỗi. - FERR = 0: khung dữ liệu nhận được là đúng. • RX9: bit thiết lập số bit dữ liệu trong mỗi phiên truyền

- RX9 = 1: nhận 9 bit dữ liệu. - RX9 = 0: nhận 8 bit dữ liệu.

• RCREG: thanh ghi chứa dữ liệu nhận được. • RX9D: bit dữ liệu thứ 9

• RCIF: cờ báo ngắt nhận USART

- RCIF = 1: thanh ghi RCREG đầy, cĩ thể đọc dữ liệu ra. - RCIF = 0: thanh ghi RCREG đang rỗng.

• RCIE: bit thiết lập sử dụng ngắt nhận USART - RCIE = 1: Cho phép sử dụng ngắt nhận USART.

46

Bảng 3.3. Cơng thức tính tốc độ Baud của khối USART.

Bit cấu hình SYNC BRG16 BRGH Chế độ hoạt động của USART/BRG Cơng thức tính tốc độ Baud

0 0 0 Khơng đồng bộ/8 bit FOSC/[64(n+1)] 0 0 1 Khơng đồng bộ/8 bit

0 1 0 Khơng đồng bộ/16 bit FOSC/[16(n+1)] 0 1 1 Khơng đồng bộ/16 bit

1 0 x ðồng bộ/8 bit 1 1 x ðồng bộ/16 bit

FOSC/[4(n+1)]

chú thích : x = khơng quan tâm, n= giá trị của cặp thanh ghi PBRGH, SPBRG.

Bảng 3.4. Tốc độ Baud và FOSC.

Cơng thức tính tốc độ Baud dữ liệu từ tần số clock của CPU như sau:

47

Bảng 3.5. Tốc độ Baud và FOSC(tiếp). Hình 3.16. Khối tạo điện áp chuẩn FVR.

Một phần của tài liệu hệ thống cảnh bảo cháy tự động sử dụng công nghệ mạng cảm biến không dây (wirelees sensor network) (Trang 27 - 56)

Tải bản đầy đủ (PDF)

(69 trang)