Cơ SỞ LÝ THUYẾT
Vi điều khiển AVR - Atmega8
Vi điều khiển AVR của Atmel (Hoa Kỳ) là một bước tiến từ vi điều khiển AT89, với kiến trúc RISC và tốc độ tối đa lên đến 16 triệu lệnh/giây, nhanh hơn so với CPU CISC của AT89 AVR tích hợp nhiều chức năng như ADC, PWM, LCD và hỗ trợ các giao thức giao tiếp phổ biến như UART/USART, I2C, 2-wires, giúp thiết kế phần cứng cho ứng dụng trở nên thuận tiện và nhỏ gọn Về ngôn ngữ lập trình, AVR hỗ trợ nhiều lựa chọn như assembly, C, Basic và Pascal, với nhiều phần mềm miễn phí từ Atmel và các nhà phát triển khác như avrasm, winasm, CodeVisionAVR, Win-GCC và BASCOM.
2.1.1 Đặc tính kỹ thuậtvà sơ đồchân của Atmega8
ATmega8 là vi điều khiển 8 bit dựa trên kiến trúc RISC Với khả năng thực hiện mỗi lệnh trong vòng một chu kỳ xung clock,
ATmega8 có thể đạt được tốc độ 1MIPS trên mỗi
ATmega8 có các đặc điểm sau: 16kB bộ nhớ
Vi điều khiển này sở hữu khả năng đọc trong khi ghi, với 512 byte bộ nhớ EEPROM và 1 kB bộ nhớ SRAM Nó có 32 thanh ghi chức năng chung và 32 đường vào ra chung, cùng với 3 bộ định thời/bộ đếm Hệ thống cũng hỗ trợ ngắt nội và ngắt ngoại, giao tiếp USART, cũng như giao tiếp nối tiếp 2 dây Đặc biệt, vi điều khiển này còn trang bị 8 kênh ADC 10 bit, mang lại hiệu suất cao trong các ứng dụng điều khiển và giám sát.
PC.O.SCL PC.’ sc A P2.2TCK PC.2WS PO.5TDÍ
PC.2IN~O PC.3 IV' PpVoClB PD.SOClA PD.7.-OC2 AREF
PA.0ÍADCỞ PA.WADC1 PA.2ACC2 PA.2ADCS PA.4.‘ADC4 PA2ACC5 PA.S.ADC6 PA.7/ADC7
PB.O PEJ PB2 PB.3 PB.4 PB.5 PB.S PB.7
Hình 2.1 - Sơ đồ chân của ATmega8
2.1.2 Cấu trúc nhân của AVR Atmega8
CPU của AVR đảm bảo hoạt động chính xác cho các chương trình thông qua khả năng truy cập bộ nhớ, thực hiện tính toán, điều khiển thiết bị ngoại vi và quản lý ngắt hiệu quả.
AVR sử dụng cấu trúc Harvard, tách biệt bộ nhớ cho chương trình và dữ liệu, giúp tối ưu hóa hiệu suất Các lệnh được thực hiện trong một chu kỳ xung clock, đảm bảo tốc độ xử lý nhanh Bộ nhớ chương trình được lưu trữ trong bộ nhớ Flash, mang lại khả năng lưu trữ bền vững cho các ứng dụng.
3’Wire In/Out 4-Wire In/Out
Hình 2.1 - Cấu trúc cơ bản của vi điều khiển AVR
ALƯ (Bộ xử lý số học và logic) thực hiện các phép toán trực tiếp trên các thanh ghi chức năng chung trong một chu kỳ xung clock Hoạt động của ALƯ được phân loại thành ba loại chính: đại số, logic và thao tác theo bit.
- Thanh ghi trạng thái: Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALƯ sau các phép tính số học và logic.
Thanh ghi trạng thái SREG bao gồm các cờ quan trọng như cờ Carry (c) và cờ Zero (z) Cờ Carry được thiết lập khi phép toán có nhớ, trong khi cờ Zero được kích hoạt khi kết quả của phép toán bằng 0.
N - Negative Flag (Neu kết quả của phép toán là âm)
V - Two’s complement overflow indicator (Cờ này được thiết lập khi tràn số bù 2)
H - Half Carry Flag: Được sử dụng trong một số toán hạng
T - Transfer bit used by BLD and BST instructions: Được sử dụng làm nơi chung gian trong các lệnh BLD,BST.
I - Global Interrupt Enable/Disable Flag: đây là bit cho phép toàn cục ngắt Neu bit này ở trạng thái logic 0 thì không có một ngắt nào được phục vụ.
Con trỏ ngăn xếp (SP) là một thanh ghi 16 bit, có thể được coi là hai thanh ghi chức năng đặc biệt 8 bit Địa chỉ của nó trong các thanh ghi chức năng đặc biệt là $3E, trong khi trong bộ nhớ RAM là $5E Chức năng chính của con trỏ ngăn xếp là chỉ tới vùng nhớ trong RAM nơi chứa ngăn xếp.
S3D (SẩSDỊ 5P7 SPS SP5 SP4 SP3 SP2 5P1 SPL
Khi chương trình phục vụ ngắt hoặc chương trình con được thực thi, con trỏ PC sẽ được lưu vào ngăn xếp, trong khi con trỏ ngăn xếp giảm hai vị trí Đối với lệnh push, con trỏ ngăn xếp giảm 1, trong khi lệnh POP sẽ làm tăng con trỏ ngăn xếp.
Khi thực hiện lệnh RET hoặc RETI, con trỏ ngăn xếp sẽ tăng 2, do đó, chương trình cần đặt giá trị khởi tạo cho ngăn xếp trước khi gọi một chương trình con hoặc cho phép phục vụ các ngắt Giá trị ngăn xếp tối thiểu phải lớn hơn hoặc bằng 60H (0x60), vì 5FH trỏ lại đến vùng các thanh ghi.
- Quản lý ngắt: Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng sẵn sàng cho đổi dữ liệu của mình.
Khi bộ truyền nhận ƯART nhận một byte dữ liệu, nó sẽ thông báo cho CPU thông qua cờ RXC Ngoài ra, khi bộ truyền đã hoàn tất việc truyền một byte, cờ TX sẽ được thiết lập.
Khi CPU nhận tín hiệu ngắt, nó sẽ tạm dừng công việc hiện tại, lưu trữ địa chỉ chương trình (PC) vào ngăn xếp và chuyển đến vector phục vụ ngắt để thực hiện chương trình đó cho đến khi gặp lệnh RETI Sau lệnh RETI, CPU sẽ lấy lại địa chỉ từ ngăn xếp và tiếp tục công việc trước đó Nếu có nhiều ngắt xảy ra cùng lúc, CPU sẽ lưu trữ các cờ ngắt và xử lý chúng theo mức ưu tiên Nếu trong quá trình thực hiện ngắt mà xuất hiện ngắt mới, nếu ngắt mới có mức ưu tiên cao hơn, nó sẽ được phục vụ; ngược lại, nếu có mức ưu tiên thấp hơn, nó sẽ bị bỏ qua.
Bộ nhớ ngăn xếp trong SRAM bắt đầu từ địa chỉ 0x60 trở lên Để truy cập vào SRAM, chúng ta sử dụng các con trỏ X, Y, Z, trong khi con trỏ SP được sử dụng cho truy cập theo kiểu ngăn xếp Con trỏ SP là một thanh ghi 16 bit, được truy cập như hai thanh ghi 8 bit với địa chỉ SPL: 0x3D/0x5D (IO/SRAM) và SPH: 0x3E/0x5E.
Khi chương trình phục vụ bị ngắt hoặc chương trình con được gọi, con trỏ PC sẽ được lưu vào ngăn xếp, trong khi con trỏ ngăn xếp giảm hai vị trí Khi thực hiện lệnh push, con trỏ ngăn xếp sẽ giảm một vị trí, còn khi thực hiện lệnh POP, con trỏ ngăn xếp sẽ tăng trở lại.
Khi thực hiện lệnh RET hoặc RETI, con trỏ ngăn xếp sẽ tăng thêm 2 Do đó, trước khi gọi một chương trình con hoặc cho phép phục vụ các ngắt, chương trình cần phải thiết lập giá trị khởi tạo cho ngăn xếp Giá trị ngăn xếp tối thiểu phải lớn hơn 60H (0x60), vì 5FH là vùng dành cho các thanh ghi.
AVR sở hữu hai không gian bộ nhớ chính, bao gồm bộ nhớ dữ liệu và bộ nhớ chương trình Bên cạnh đó, vi điều khiển ATmega8 còn được trang bị bộ nhớ EEPROM để lưu trữ dữ liệu.
- Bộ nhớ chương trình (Bộ nhớ Flash)
Lập trình giao diện VB.net
2.2.1 Truyền thông nối tiếp dùng ActiveX
ActiveX MsComm được bổ sung vào một Visual Basic Project thông qua menu Project —> Components:
Hình 2.18 - Bổ sung đối tượng MsComm vào VBP Đe tài nghiên cứu khoa hoc cấp Cơ sở Hoàng Minh Hanh
Biểu tượng của MsComm @ thuộc tính cơ bản mô tả như sau:
CommPort Sô thứ tự công truyền
Input Nhận ký tự từ bộ đệm
Output Xuất ký tự ra công nổi tiêp
Settings Xác dinh các tham sổ
Hình 2.19 - Các thuộc tính của đối tượng MSComm
- Settings: Xác định các tham số cho cổng nối tiếp Cú pháp:
MSComml.Settings = ParamString MSComml: tên đối tượng ParamString: là một chuỗi có dạng như sau: "BBBB,P,D,S" Trong đó:
• BBBB: tốc độ truyền dữ liệu (bps) trong đó các giá trị hợp lệ là:
Hoàng Minh Hạnh Đe tài nghiên cứu khoa học cấp Cơ sở
• P: kiểm tra chẵn lẻ, với các giá trị:
E Even (kiểm tra chẵn) s Space (luôn bằng 0)
• D: số bit dữ liệu (4, 5, 6, 7 hay 8), mặc định là 8 bit
Ví du: MSComml Settings = "9600,0,8,1" > xác định tốc độ truyền 9600bps, kiểm tra parity với 1 bit stop và 8 bit dữ liệu.
- CommPort: Xác định số thứ tự của cổng truyền thông Cú pháp:
MSComml.CommPort = PortNumber PortNumber là giá trị nằm trong khoảng từ 1 đến 99, mặc định là 1.
Ví du: MSComml.CommPort = 1 —> xác định sử dụng COM1
PortOpen cho phép người dùng đặt hoặc kiểm tra trạng thái của cổng nối tiếp, bao gồm việc mở hoặc đóng cổng Để mở cổng nối tiếp, cần phải sử dụng hai thuộc tính trước đó là Settings và CommPort.
Giá trị xác định là True sẽ thực hiện mở cổng và False để đóng cổng đồng thời xoá nội dung của các bộ đệm truyền, nhận.
Ví du: Mở cổng COM1 với tổc độ truyền 9600 bps
2.2.3 Các thuộc• tính nhận• •dữ liệu:
- Input: nhận một chuỗi ký tự và xoá khỏi bộ đệm Cú pháp:
Thuộc tính này kết họp với InputLen để xác định số ký tự đọc vào Nếu InputLen
= 0 thì sẽ đọc toàn bộ dữ liệu có trong bộ đệm. Đe tài nghiên cứu khoa hoc cấp Cơ sở Hoàng Minh Hanh
- InBufferCount: số ký tự có trong bộ đệm nhận Cú pháp:
Thuộc tính này cũng được dùng để xoá bộ đệm nhận bằng cách gán giá trị 0
- InBufferSize: đặt và xác định kích thước bộ đệm nhận (tính bằng byte) Cú pháp:
MSComml InBufferCount = NumByte Giá trị măc định là 1024 byte Kích thước bộ đệm này phải đủ lớn để tránh tình trạng mất dữ liệu.
Ví du: Đọc toàn bộ nội dung trong bộ đệm nhận nếu có dữ liệu
2.2.4 Các thuộc tính xuất dữ liệu:
Bao gồm các thuộc tính Output, OutBufferCount và OutBufferSize, chức năng của các thuộc tính này giống như các thuộc tính nhập.
CDTimeout là một tham số quan trọng, cho phép đặt khoảng thời gian tối đa (tính bằng ms) từ khi phát hiện sóng mang cho đến khi nhận được dữ liệu Nếu thời gian này vượt quá mà vẫn không có dữ liệu, thuộc tính CommEvent sẽ được gán giá trị CDTO (Carrier Detect Timeout Error) và sự kiện OnComm sẽ được kích hoạt.
- DSRTimeout: Xác định thời gian chờ tín hiệu DSR trước khi xảy ra sự kiện OnComm.
CTSTimeout là thuộc tính dùng để thiết lập khoảng thời gian tối đa (tính bằng mili giây) mà hệ thống sẽ chờ đợi tín hiệu CTS Nếu quá thời gian này mà không nhận được tín hiệu, thuộc tính CommEvent sẽ được đặt thành CTSTO và sự kiện OnComm sẽ được kích hoạt.
CTS Holding là tín hiệu quan trọng trong quá trình giao tiếp giữa thiết bị, cho phép xác định xem tín hiệu CTS đã được thiết lập hay chưa Tín hiệu này được sử dụng để xác nhận rằng DCE (Data Circuit-terminating Equipment) đã sẵn sàng nhận dữ liệu, với kết quả trả về là True hoặc False.
DSRHolding xác định trạng thái DSR, cho thấy sự tồn tại của DCE, và trả về giá trị Đe cho nghiên cứu khoa học cấp Cơ sở Hoàng Minh Hạnh với kết quả là True hoặc False.
- CDHoIding: Xác định trạng thái CD, trả về giá trị True hay False.
- DTREnable: Đặt hay xoá tín hiệu DTR để báo sự tồn tại của DTE Cú pháp:
- RTSEnable: Đặt hay xoá tín hiệu RTS để yêu cầu truyền dữ liệu đến DTE Cú pháp:
- NulIDiscard: Cho phép nhận các ký tự NULL (rỗng) hay không (= True: cấm)
- SThreshold: So byte trong bộ đệm truyền làm phát sinh sự kiện OnComm Nếu giá trị này bằng 0 thì sẽ không tạo sự kiện OnComm Cú pháp:
- Handshaking: Chọn giao thức bắt tay khi thực hiện truyền dữ liệu Cú pháp:
MSComml Handshaking = Protocol Các giao thức truyền bao gồm:
- CommEvent: Trả lại các lồi truyền thông hay sự kiện xảy ra tại công nối tiếp Các sự kiện:
Protocol Giá trị Mô tả
ComNone 0 Không băt tay (mặc định)
ComXon/Xoff 1 Bắt tay phần mềm (Xon/Xoff)
ComRTS 2 Bắt tay phần cứng (RTS/CTS)
ComRTSXon/Xoff 3 Bắt tay phần cứng và phàn mềm
Sự kiện Giá trị Mô tả
ComEvSend 1 Đã truyền ký tự
ComEvReceive 2 Khi có ký tự trong bộ đệm nhận
ComEvCTS 3 Có thay đổi trên CTS (Clear To Send)
ComEvDSR 4 Có thay đổi trên DSR (Data Set Ready)
ComEvCD 5 Có thay đổi trên CD (Carrier Detect)
ComEvEOF 7 Nhận ký tự kết thúc file Đe tài nghiên cứu khoa học cấp Cơ sở Hoàng Minh Hạnh
Lỗi Giá trị Mô tả
ComBreak 1001 Nhận tín hiệu Break
ComOver 1006 Phân cứng không đọc ký tự trước khi gởi ký tự kê
ComRxOver 1008 Tràn bộ đệm nhận
ComTxFull 1010 Tràn bộ đệm truyền
Sự kiện OnComm được kích hoạt khi giá trị của thuộc tính CommEvent thay đổi Để ngăn chặn sự kiện này trong quá trình nhận hoặc gửi dữ liệu, cần thiết lập các thuộc tính RThreshold và SThreshold bằng 0 Thông thường, cấu hình mặc định là SThreshold = 0 và RThreshold = 1.
Chuẩn truyền nhận nối tiếp RS232
Khi chuẩn RS-232 được giới thiệu, cổng nối tiếp (COM) đã được sử dụng để kết nối máy tính với thiết bị ngoại vi cũng như giữa các máy tính với nhau, tạo điều kiện thuận lợi cho việc giao tiếp và truyền dữ liệu.
Cổng nối tiếp RS-232, còn được biết đến với tên gọi cổng COM1, là một giao diện phổ biến và rộng rãi Cổng COM2 thường được dành cho các ứng dụng khác Tương tự như cổng máy in, cổng COM cung cấp sự tiện lợi trong việc giao tiếp với các thiết bị ngoại vi.
Truyền dữ liệu qua cổng COM diễn ra theo phương thức nối tiếp, trong đó các bit dữ liệu được gửi lần lượt trên một đường dẫn duy nhất Phương pháp này thích hợp cho các ứng dụng yêu cầu truyền tải ở khoảng cách lớn, vì khả năng nhiễu tín hiệu thấp hơn so với việc sử dụng cổng song song, như cổng máy in.
Cổng COM không phải là một hệ thống bus, mà là một phương thức kết nối điểm-điểm giữa hai máy để trao đổi thông tin, trong đó không có sự tham gia của thành viên thứ ba Đây là nội dung nghiên cứu khoa học cấp Cơ sở của Hoàng Minh Hạnh.
Máy tính thường được trang bị 1 hoặc 2 cổng nối tiếp RS232C, và nếu cần nhiều cổng hơn, người dùng có thể lắp đặt card mở rộng với thêm 1 đến 2 cổng COM Có hai loại cổng COM phổ biến là cổng 25 chân và cổng 9 chân Hiện nay, cổng COM 9 chân (DB9) theo chuẩn RS232C đang trở nên rất phổ biến.
Hình 2.20 - Chân ra cổng Com DB9.
Bảng 2.2 - Các Chân và chức năng của cổng Com DB9.
DB-9 Tên Ký hiệu Chức năng
1 Data Carrier Detect DCD Phát hiện tín hiệu mang dữ liệu
2 Receive Data RxD Nhận dữ liệu
3 Transmit Data TxD Truyền dữ liệu
DTR Đầu cuối dữ liệu sẵn sàng, được kích hoạt bởi bộ nhận khi muốn truyền dữ liệu
5 Singal Ground SG Mass của tín hiệu
6 Data Set Ready DSR Dữ liệu sẵn sàng, được kíchnhoạt bởi bộ truyền khi nó sẵn sàng nhận dữ liệu
7 Request to Send RTS Yêu cầu gửi, bộ truyền đặt đường này lên mức hoạt động khi sẵn sàng truyền dữ liệu.
Xóa để gửi, bộ nhận đặt đường này lên mức hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận dữ liệu.
9 Ring Indicate RI Báo chuông, cho biết là bộ nhận đang nhận tín hiệu rung chuông.
Sì Đề tài nghiên cứu khoa hoc cấp Cơ sở Hoàng Minh Hanh
* Những đặc điểm cần lưu ý trongchuẩn RS232C:
Chuẩn RS232C quy định mức logic 0 và logic 1 với giới hạn ±12V Hiện nay, chuẩn này đang được áp dụng với trở kháng tải cố định trong khoảng từ 3000Ω đến 7000Ω.
- Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ +3V đến+12V.
- Trở kháng tải phải lớn hon 3000Q nhưng phải nhỏ hon 7000Q.
- Tốc độ truyền/nhận dữ liệu cực đại là 100kbps (ngày nay có thể đạt được 200 kbps).
- Các lối vào phải có điện dung nhỏ hơn 2500pF
- Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp RS232C không thể vượt quá 15 m nếu không sử dụng Modem.
- Các giá trị tốc độ truyền dữ liệu chuẩn là: 50, 75, 110, 150, 300, 600, 1200,
* Ưu điểm khi kết nối với cổng nối tiếp:
Cổng nối tiếp có khả năng chống nhiễu tốt hơn so với cổng máy in của các thiết bị ngoại vi, cho phép người dùng tháo lắp thiết bị một cách an toàn ngay cả khi máy tính đang được cấp điện.
Các mạch điện đơn giản có thể nhận điện áp qua cổng nối tiếp, nhưng việc sử dụng cổng này thường tốn kém hơn do dữ liệu phải được chuyển đổi từ nối tiếp sang song song Đối với những bài toán ghép nối không phức tạp, chỉ cần vài đường dẫn vào/ra, ta có thể sử dụng trực tiếp các đường dẫn phụ trợ của giao diện Tổng cộng có hai đường dẫn lối ra và bốn đường dẫn lối vào, có thể được trao đổi dễ dàng bằng các lệnh đơn giản.
Việc trao đổi dữ liệu qua cổng nối tiếp thường diễn ra qua các đường dẫn TxD và RxD, trong khi các đường dẫn khác hỗ trợ thiết lập và điều khiển cuộc truyền dữ liệu Những đường dẫn này được gọi là đường dẫn bắt tay, vì chúng thực hiện phương pháp “ký nhận” giữa các thiết bị Điểm mạnh của đường dẫn bắt tay là cho phép đặt hoặc điều khiển trạng thái một cách trực tiếp.
Cổng nối tiếp có đặc trưng hoạt động song công, cho phép thu và phát dữ liệu đồng thời Một đặc điểm nổi bật khác là khả năng đệm dữ liệu, giúp một ký tự có thể được nhận và lưu trữ trong bộ đệm thu trong khi ký tự tiếp theo vẫn đang được nhận Nhờ vậy, nếu CPU đọc ký tự đầu tiên trước khi ký tự thứ hai được nhận đầy đủ, dữ liệu sẽ không bị mất.
HỆ THÔNG ZIGBEE
Định nghĩa
Zigbee là một chuẩn truyền thông không dây dựa trên IEEE 802.15.4, nổi bật với chi phí thấp, tiêu thụ năng lượng ít và độ tin cậy cao Đặc biệt, Zigbee cho phép kết nối lên đến 254 thiết bị trong một mạng, với tốc độ truyền dữ liệu đạt 250 Kbps So với Bluetooth, chỉ có khả năng kết nối 7 thiết bị với tốc độ 1 Mbps nhưng tiêu tốn nhiều năng lượng hơn, Zigbee là lựa chọn tối ưu cho các ứng dụng yêu cầu kết nối hiệu quả và tiết kiệm năng lượng.
Các loại Zigbee
3.2.1 Zigbee Coordinator Đây là node thực hiện việc giám sát hoạt động của mạng các Zigbee Trong một mạng Zigbee, chỉ có một Zigbee Coordinator, làm nhiệm vụ thiết lập mạng khi khởi động hệ thống, đồng thời quyết định cách thức kết nối giữa các node với nhau (Network Topology)
Node FFD (Full Function Device) là thiết bị hoàn chỉnh theo tiêu chuẩn IEEE 802.15.4, có khả năng hoạt động như một Zigbee Coordinator Khi kết nối với các node con (RFD - Reduced Function Device), FFD đóng vai trò là router trong mạng Ngoài ra, khi kết nối với một FFD khác từ mạng khác, nó hoạt động như một gateway.
Hình 3.2 - Zigbee Full Funtion Device
Một RFD chỉ có thể kết nối với một FFD hoặc Zigbee Coordinator duy nhất, không thể kết nối với RFD khác Nó hoạt động như một node con của FFD hoặc Zigbee Coordinator, do đó mọi hoạt động truyền nhận đều phải thông qua node cha.
Hình 3.3 - Zigbee Reduce Funtion Device
Zigbee Network
Khi khởi động, Zigbee Coordinator sẽ quét và tìm kiếm tất cả các thiết bị FFD và RFD có trong mạng để thiết lập cấu trúc mạng một cách hiệu quả.
Khi một node muốn tham gia vào mạng, nó gửi yêu cầu đến các node cha mà nó kết nối Các node cha phản hồi bằng cách cung cấp thông tin về chính mình, bao gồm các node mà nó đang kết nối Dựa trên thông tin này, node con sẽ chọn một node cha duy nhất và nhận một ID do node cha quy định.
Khi kết nối thành công, node con sẽ ghi các thông tin vào vùng nhớ cùa nó để hoạt động bình thường khi on/off
Một FFD luôn hoạt động ở chế độ bình thường, trong khi RFD có khả năng chuyển sang chế độ ngủ để tiết kiệm năng lượng Khi RFD ở chế độ ngủ, dữ liệu gửi đến nó sẽ được lưu trữ bởi node cha (FFD hoặc Zigbee Coordinator) Sau khi RFD thức dậy, nó sẽ gửi yêu cầu đến node cha để nhận dữ liệu nếu có.
Zigbee Coordinator đóng vai trò là node trung tâm trong mạng, kết nối với các FFD và RFD Nhiệm vụ chính của Zigbee Coordinator là routing, tuy nhiên, nó không hỗ trợ chức năng gateway cho mạng.
Pj Full Function Device Reduced Function Device
Zigbee Coordinator giữ vai trò là nút trung tâm trong cấu trúc Star Topology, cho phép các FFD kết nối với nhau nhưng không thể tạo thành mạng con Nghiên cứu này được thực hiện bởi Hoàng Minh Hanh trong khuôn khổ đề tài nghiên cứu khoa học cấp cơ sở.
A Full Function Device Reduced Function Device
Zigbee Coordinator và FFD co the tự hình thành các mạng con để hiện thực các chức năng routing hay gateway.
Hình 3.6 - Zigbee Cluster Tree Topology
Hoàng Minh Hạnh Đẻ tài nghiên cứu khoa học cấp Cơ sờ
3.3.4 Lưu đồ hoạt động của Zigbee Coordinator
Hình 3.7 - Lưu đồ hoạt động của Coordinator Đề tài nghiên cứu khoa học cấp Cơ sở _
3.3.5 Lưu đồ hoạt động của FFD và RFD
Hình 3.8 - Lưu đồ hoạt động của FFD và RFD
Hình 3.9 - Mô tả khung dữ liệu
• Preamble Bits: là một notation để đánh dấu start frame
• Sync Word: chứa địa chỉ của Receiver (duy nhất) và DATA FIELD’S length
40 Đề tài nghiên cứu khoa học cấp Cơ sờ Hoàng Minh Hạnh
• CRC: Checksum, dùng để kiểm tra tính đồng nhất của dữ liệu, được ghi bởi Transmitter và xóa bởi Receiver sau khi dùng
• Transmitter: o Truyền Preamble bits để đánh dấu start frame o Truyền Sync Word chứa địa chỉ của Receiver và Data field’s length o Truyền dữ liệu o Tính CRC rồi truyền
The receiver detects the start frame and compares its address with the value in the Sync word If the addresses match, it proceeds to receive the data, calculates the CRC, and compares it with the received CRC to verify data integrity Finally, the CRC is removed from the data.
XÂY DựNG HỆ THÓNG
Module truyền nhận thông tin (Zigbee nRF24L01)
Hình 4.1 - Sơ đồ nguyên lý của mạch kết nối Zigbee nRF24L01
Hình 4.2 - Sơ đồ mạch in của Zigbee nRF24L01 kết hợp cần phát thu wireless
4? Đe tài nghiên cứu khoa học cấp Cơ sở Hoàng Minh Hạnh
Hình 4.3 - Hình ảnh thực tế của bộ Zigbee nRF24L01
Module điều khiển
PD3 (INTI) PD4 i XCKƠOi GNĐ vcc
VCC (ÀDC4I8DAÍ PC4 27 AỒC4 /
PD6 (AINO) PO7 (AIN1) PBOỏCPíị (OCÌAi PB1 (SSnrábtB) PB2 (MOSI/OC2) PB3 (MISO) PB4