Lưu đồ chính của chương trình

Một phần của tài liệu (LUẬN văn THẠC sĩ) 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 56 - 59)

Đoạn chương trình để chuyển board điều khiển về trạng thái là nhận dữ liệu (RX) được mô tả như sau:

if(!RB4)

{

while(!RB4); RFIE = 1;

lcd_print("\fBoard status:");

lcd_print("\nRX ");

SetChannel(CHANNEL_11);

PHYSetLongRAMAddr(RFCON3,0b0010100); // fix power

PHYSetShortRAMAddr(WRITE_RXFLUSH,0x01); ReceivingMode = TRUE; while(1) { PHYSetShortRAMAddr(WRITE_RXFLUSH, 0x01); LATB6 ^= 1;

Delay1KTCYx(200); }

}

Để chuyển trạng thái của board mạch về trạng thái truyền (TX) ta sử dụng đoạn mã như sau:

if(!RB3)

{

while(!RB3);

lcd_print("\fBoard status:");

lcd_print("\nTX"); SetChannel(CHANNEL_11); PHYSetLongRAMAddr(RFCON3,0b0010100); PHYSetLongRAMAddr(0x22F,0x0F); PHYSetLongRAMAddr(0x000,sizeof(PredefPacket)); PHYSetLongRAMAddr(0x001,sizeof(PredefPacket)); while(1) { if(!RB3) { while(!RB3); for(i=2;i<(sizeof(PredefPacket)+2);i++) {

PHYSetLongRAMAddr(i, PredefPacket[i-

2]); } PHYSetShortRAMAddr(WRITE_TXNCON,0b00000001); } LATB7 ^= 1; Delay1KTCYx(200); } }

Trong các đoạn mã trên, hàm SetChannel() được sử dụng để lựa chọn kênh truyền. Ở đây, ta lựa chọn truyền trên kênh truyền số 11 với tần số hoạt động là 2,405MHz.

Các hàm PHYSetLongRAMAddr() PHYSetShortRAMAddr() là các hàm cho phép ghi dữ liệu vào các vùng bộ nhớ có địa chỉ ngắn và vùng bộ nhớ có địa chỉ dài tương ứng. Các hàm này đều được phát triển bởi MicroChip và dành cho việc điều khiển chip MRF24J40. Các hàm này đều được định nghĩa và mô tả trong file

RadioDefine.c và RadioDefine.h.

4.4. Kết quả

Để thử nghiệm việc truyền thông giữa hai board mạch cũng như việc giao tiếp giữa board mạch nhận với máy tính, tác giả đã tiến hành thử nghiệm quá trình truyền nhận như sau:

- Board truyền dữ liệu (board TX) sẽ được gán sẵn một chuỗi dữ liệu ngẫu nhiên. Board TX sẽ có nhiệm vụ truyền chuỗi dữ liệu đó đến board RX. Chuỗi dữ liệu này là tập hợp các giá trị dữ liệu ngẫu nhiên 8 bit và được gán như sau: X =

{73, 2, 6, 10, 234, 198, 34, 98, 73, 110, 29, 52, 81, 193, 31, 45, 91, 34, 114, 42, 214, 145, 103, 10, 81, 191, 123, 241, 120, 145}

- Board nhận dữ liệu RX sẽ được ghép nối với máy tính. Sau khi nhận được dữ liệu thì sẽ truyền dữ liệu này qua máy tính để chương trình trên máy tính có thể ghi lại và vẽ ra đồ thị giá trị của dữ liệu biểu diễn theo thời gian.

- Chương trình trên máy tính sau khi thu nhận được dữ liệu và vẽ thành đồ thị thì chúng ta sẽ so sánh chuỗi dữ liệu do chương trình thu nhận được với chuỗi dữ liệu gửi. Nếu giá trị hai chuỗi dữ liệu này giống nhau thì ta có thể kết luận hệ thống đã truyền đầy đủ và truyền đúng các dữ liệu cần thiết.

Hình 4.11 thể hiện hệ thống đang ở trạng thái khởi động và chờ chuyển vào trạng truyền hoặc trạng thái nhận, tùy thuộc vào lựa chọn của người dùng. Sau khi được kích hoạt trạng thái nhận (RX), board mạch sẽ chuyển qua hoạt động ở chế độ nhận tín hiệu như ở Hình 4.12. Trạng thái của board cũng sẽ được hiển thị trên màn hình LCD để người dùng có thể nhận biết trạng thái hiện tại.

Một phần của tài liệu (LUẬN văn THẠC sĩ) 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 56 - 59)

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

(64 trang)