Dựa trên những vấn đề đã đặt ra chúng ta có thể sử dụng phương pháp sau để hoàn thành tốt luận văn: Sử dụng một số tool đã có dành cho phần cảm biến nhiệt độ trong kit RF2500 để cập nhậ
Trang 1KHOA CÔNG NGHỆ
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
PHÁT TRIỂN ỨNG DỤNG TRÊN
KIT eZ430-RF2500
Cán bộ hướng dẫn Sinh viên thực hiện:
ThS.GV.Trần Nhựt Khải Hoàn Trương Văn Dượt 1063782 Nguyễn Hoàng Thi 1063827
Lớp: DI0671A1
Cần Thơ, 2010
Trang 2CHƯƠNG I: GIỚI THIỆU TỔNG QUAN 1
I ĐẶT VẤN ĐỀ 3
II YÊU CẦU CỦA ĐỀ TÀI 4
III HƯỚNG GIẢI QUYẾT 5
IV NỘI DUNG LUẬN VĂN 5
V KẾT LUẬN 5
CHƯƠNG II: CƠ SỞ LÝ THUYẾT 6
I ĐẶC ĐIỂM CƠ BẢN CỦA MSP430F2274 6
II ĐẶC ĐIỂM KIT eZ430-RF2500 11
II.1 Đặc điểm CC2500 trên kit eZ430-RF2500 12
II.2 Tín hiệu RSSI 13
III TỔNG QUAN VỀ MẠNG SIMPLICITI 14
III.1 Các thành phần của mạng 14
III.1.1 Mã hóa (Encryption) 15
III.1.2 Nhảy tần (Frequency Aglility) 15
III.1.3 Quản lí mạng (Network Management) 15
III.1.4 Access Point 15
III.1.5 Range Extender 15
III.1.6 Năng lượng dùng trong mạng (Battery-only Network) 16
III.2 Cấu trúc phân lớp của mạng 16
III.2.1 PHY hoặc Data Link (MAC/LLC) Layer 16
III.2.2 Tầng mạng (Network layer) 16
III.2.3 Tầng ứng dụng (Application layer) 16
III.4 Cấu trúc khung dữ liệu 18
III.4.1 Khung PHY/MAC 18
III.4.2 Khung NWK 18
III.4.3 Khung ứng dụng 18
IV BỘ CHUYỂN ĐỔI ADC10 TRONG MSP430F2274 19
IV.1 Tổng quan các khối trong ADC10 20
IV.2 Các bước trong quá trình chuyển đổi ADC10 21
IV.3 Quá trình chuyển đổi ADC10 với ngõ vào nhiệt độ 23
V CÁC CHUẨN GIAO TIẾP SỬ DỤNG TRONG HỆ THỐNG 29
V.1 Chuẩn SPI 29
V.2 UART Module và truyền thông với PC 31
CHƯƠNG III: THIẾT KẾ HỆ THỐNG 34
I MÔ HÌNH TỔNG QUÁT 34
II NGUYÊN TẮC HOẠT ĐỘNG CÁC THÀNH PHẦN TRONG HỆ THỐNG 35
Trang 3II.1 Vai trò của AP 35
II.2 Vai trò của ED 36
II.3 Một số ưu khuyết điểm của cấu hình mạng sử dụng trong hệ thống 36
III HOẠT ĐỘNG CỦA GIAO DIỆN HIỂN THỊ 37
IV PHẦN MỀM HỖ TRỢ IAR 39
V SƠ ĐỒ MẠCH THỰC TẾ 40
CHƯƠNG IV: THIẾT KẾ PHẦN MỀM 43
I Ý TƯỞNG VIẾT PHẦN MỀM 43
II LƯU ĐỒ GIẢI THUẬT CỦA CHƯƠNG TRÌNH 45
II.1 Lưu đồ cho AP (Access Point ) 45
II.1.1 Nhánh sJoinSem 48
II.1.2 Nhánh sPeerFrameSem 48
II.1.3 Nhánh sSelfMeasureSem 49
II.2 Lưu đồ cho ED (End Device) 50
III KHỞI TẠO CHO CC2500 51
III.1 Thiết lập tốc độ dữ liệu 51
III.2 Điều chế 52
III.3 Giải thuật cho việc kiểm tra FEC 53
III.4 Khoảng cách kênh truyền 54
III.5 Thiết lập tần số sóng mang 54
III.6 Thiết lập định dạng gói tin 55
III.7 Chiều dài gói tin 55
III.8 Kiểm tra địa chỉ của gói tin 56
KẾT LUẬN VÀ KIẾN NGHỊ 57
I KẾT QUẢ 57
II KẾT LUẬN 58
III HƯỚNG NGHIÊN CỨU TIẾP THEO CỦA ĐỀ TÀI 58
Phụ lục
Tài liệu tham khảo
Trang 4CHƯƠNG I: GIỚI THIỆU TỔNG QUAN
Chương 1 sẽ trình bày các vấn đề sau:
- Đặt vấn đề
- Yêu cầu và mục tiêu của đề tài
- Hướng giải quyết
- Trình bày luận văn
- Kết luận
I ĐẶT VẤN ĐỀ
MSP430 là một trong những họ vi điều khiển 16-bits kiến trúc RISC như AVR, PIC Ngoài các tính năng vượt trội của những họ điều khiển trên, MSP430 còn
có những tính năng nỗi trội khác như:
- Tiêu thụ năng lượng cực thấp
Trang 5Kit eZ430-RF2500 là một sản phẩm ứng dụng của MSP430, được tích hợp thêm
bộ phận truyền nhận dữ liệu không dây hoạt động ở vùng tần số 2.4GHz và bộ phận cảm biến nhiệt được thể hiện ở hình 1.2
Hình 1.2 Tổng quan về kit eZ430-RF2500 2Đối với sinh viên, Kit eZ430-RF2500 là sản phẩm tương đối mới, chưa có nhiều tài liệu nghiên cứu và triển khai ứng dụng Dưới đây là một số kết quả nghiên cứu của các tác giả sử dụng MSP430 sau:
Tìm hiểu vi điều khiển MSP430F2274 [18]
Dùng MSP430 tính toán đáp ứng xung hữu hạn trong DSP [5]
Ứng dụng thiết kế bộ lọc số FIR [6]
Sử dụng MSP430 để giải mã tính hiệu remote [7]
Điều khiển thiết bị qua mạng [8]
Thiết kế máy đo đa năng [9]
Trong luận văn này, chúng em sẽ tìm hiểu và phát triển ứng dụng trên kit RF2500 Các kết quả của luận văn sẽ góp vào nguồn tài liệu tham khảo để sinh viên các khoá sau tiếp tục nghiên cứu và triển khai ứng dụng trên kit này
Trong luận văn này, chúng em ứng dụng kit eZ430-RF2500 của TI sử dụng bộ cảm biến nhiệt độ và truyền nhận không dây được tích hợp sẵn trên kit để thiết kế
hệ thống thu thập nhiệt độ môi trường gởi về PC và điều khiển thiết bị tại nơi thu thập nhiệt độ
Hệ thống thiết kế bao gồm: một AP (Access Point) là trung tâm thu nhận dữ liệu được gởi về từ các ED (End Device) và giao tiếp với PC truyền dữ liệu lên giao
2
Slau227A pdf – trang 4
Trang 6diện, ED ngoài việc thu thập nhiệt độ gởi AP còn thực hiện điều khiển động cơ hoạt động
Dựa trên những vấn đề đã đặt ra chúng ta có thể sử dụng phương pháp sau để hoàn thành tốt luận văn:
Sử dụng một số tool đã có dành cho phần cảm biến nhiệt độ trong kit RF2500 để cập nhật nhiệt độ môi trường xung quanh sau đó gửi dữ liệu về cho trung tâm hiển thị lên PC thông qua giao diện nguồn mở, đồng thời điều khiển động cơ hoạt động dựa trên sự thay đổi nhiệt độ
Dùng IAR Embedded Workbench IDE là phần mềm hỗ trợ đầy đủ các công
cụ lập trình cho dòng sản phẩm MSP430 để thực hiện việc viết chương trình, biên dịch, gỡ lỗi và nạp, IAR có vài đặc tính của phần mềm như sau:
+ Trình biên dịch cấp cao được tối ưu hóa MSP430 IAR C/C++
+ Hỗ trợ trình biên dịch MSP430 IAR Assembler
+ Công cụ gỡ lỗi mạnh IAR C-SPY® debugger
IV NỘI DUNG LUẬN VĂN
Nội dung của đề tài được phân bố thành 4 chương, các chương cụ thể trình bày các nội dung sau:
Chương I nêu lên những vấn đề mà Luận văn thực hiện
Chương II Tóm tắt lý thuyết có liên quan trong quá trình thực hiện đề tài Chương III Mô tả hệ thống được thiết kế và hoạt động của các thành phần trong hệ thống
Chương IV trình bày chương trình cần thiết cho hệ thống hoạt động
Cuối cùng là kết quả mà Luận văn đạt được trong quá trình thực hiện và hướng phát triển tiếp của đề tài
Hệ thống được thiết kế đem ra ứng dụng trong thực tế Kết quả cho thấy hệ thống
đã thiết kế truyền nhận tốt ở khoảng cách 40m và 50m trong môi trường truyền thẳng, nếu môi trường truyền có nhiều chướng ngại thì khoảng cách truyền nhận giữa ED đến AP sẽ là 10m
Trang 7CHƯƠNG II: CƠ SỞ LÝ THUYẾT
Chương 2 trình bày chi tiết các lý thuyết có liên quan đến luận văn như sau:
- Đặc điểm cơ bản của MSP430F2274: khái quát được cấu trúc bên trong của MSP430F2274
- Đặc điểm của kit eZ430-RF2500
- Tổng quan về mạng được sử dụng trong hệ thống được thiết kế
- Tìm hiểu về ADC10 tích hợp bên trong MSP430F2274
- Các chuẩn giao tiếp được sử dụng
Sau đây là sơ đồ khối bên trong của MSP430F2274 được thể hiện qua Hình 2.1
Trang 8- Nguồn tiêu thụ cực thấp
Chế độ hoạt động: 270 A tại 1MHz và 2.2V
Chế độ ngủ :0.7 A
Chế độ không hoạt động:0.1 A
- Thời gian thức dậy từ chế độ ngủ là ít hơn 1s
- Cấu trúc RISC 16 bit , mỗi chu kỳ lệnh hoạt động mất 62.5ns
- Có hai thanh ghi cho Timer_A, Timer_B 16 bit
- Hỗ trợ các giao diện giao tiếp nối tiếp như: UART, SPI, I2C, IrDA
- Bộ chuyển đổi ADC 10-bit với tốc độ chuyển đổi lên tới 200ksps
- Bộ nhớ bao gồm 32KB + 256B Flash Memory, 1KB RAM
Chế độ hoạt động
MSP430 có một chế độ ở trạng thái hoạt động và 5 chế độ hoạt động ở trạng thái nguồn thấp Một sự kiện ngắt sẽ đánh thức một trong 5 chế độ hoạt động ở dạng nguồn thấp này
Sau đây là 6 chế độ vận hành được thiết lập bởi phần mềm
Active mode (AM)
Tất cả các xung là hoạt động
Chế độ nguồn thấp 0 (LMP0)
CPU là không cho phép
ACLK và SMCLK là duy trì hoạt động MCLK là không cho phép Chế độ nguồn thấp 1 (LMP1)
CPU là không cho phép, ACLK và SMCLK duy trì hoạt động MCLK là không cho phép
DCO’s là không cho phép phát nếu DCO không dùng trong chế độ hoạt động
Chế độ nguồn thấp 2 (LMP2)
CPU là không cho phép
MCLK và SMCLK là không cho phép
DCO’s là cho phép duy trì
ACLK là duy trì hoạt động
Chế độ nguồn thấp 3 (LMP3)
CPU là không cho phép
MCLK và SMCLK là không cho phép
DCO’s là không cho phép
ACLK là duy trì hoạt động
Trang 9Chế độ nguồn thấp 4 (LMP4)
CPU là không cho phép
ACLK là không cho phép
MCLK và SMCLK là không cho phép
DCO’s là không cho phép
Không cho thạch anh dao động
CPU
CPU có kiến trúc RISC (Reduced Intruction Set Computer) là một kiến trúc vi
xử lý theo hướng đơn giản hóa tập lệnh Các lệnh được xây dựng để có thể thực hiện với chỉ 1 chu kỳ máy Mặt khác bus dữ liệu và bus địa chỉ (có độ rộng 16 bít) tách rời nhau điều này giúp cho quá trình đọc dữ liệu và mã lệnh có thể diễn
ra đồng thời do đó nâng cao hiệu suất làm việc của vi xử lý
CPU gồm 16 thanh ghi 16 bit R0 đến R3 có các chức năng đặc biệt như: thanh
ghi đếm chương trình, thanh ghi con trỏ, thanh ghi trạng thái, thanh ghi hằng
Các thanh ghi còn lại được sử dụng với mục đích chung
Hệ thống xung clock
Hệ thống xung clock là hỗ trợ bởi nguồn xung cơ bản bao gồm dao động thạch anh 32768Hz, một nguồn thấp bên trong, dao động tần số thấp, nguồn dao động điều khiển số bên trong DCO Hệ thống xung cơ bản được thiết kế nhằm hai mục đích: giảm giá thành của hệ thống và nguồn tiêu thụ thấp Dao động nội DCO cung cấp thời gian để nguồn hoạt động và thiết lập là ít hơn 1s Những nguồn xung cơ bản cung cấp những tín hiệu xung như sau:
ACLK là nguồn dao động thạch anh 32768Hz
Nguồn xung chính MCLK, là hệ thống xung được dùng trong CPU
SMCLK là hệ thống xung được dùng cho những module ngoại vi
Ngõ vào/ra số
MSP430F2274 hỗ trợ 4 port P1, P2, P3, P4 và mỗi port 8 bit được lập trình độc lập tuy nhiên có một số bit của port đã dùng cho chức năng giao tiếp trên kit eZ430-RF2500
Trang 10một Timer đa chức năng Đếm thời gian, so sánh, PWM Timer_A cũng có khả năng ngắt khi counter đếm tràn hoặc mỗi thanh ghi đếm tràn Các đặc tính chính của Timer_A bao gồm:
Là một Timer/counter 16 bit không đồng bộ với 4 chế độ hoạt động
Có thể lựa chọn và cấu hình nguồn xung
Hai tới 3 thanh ghi có thể cấu hình capture/compare
Cấu hình đầu ra với chế độ PWM
Chốt ngõ vào và ngõ ra không đồng bộ
Hình 2.2 cho ta thấy được sơ đồ tổng quan của Timer_A
Hình 2.2 Sơ đồ khối của Timer_A 4
Khối thứ nhất: là khối chọn nguồn xung cho Timer_A có 4 nguồn xung cơ bản đó là TACLK, ACLK, MCLK, INCLK các nguồn này có thể được chia nhỏ xuống bởi bộ chia 1, 2, 4, 8
Khối thứ 2: là khối chọn chế độ hoạt động của Timer_A, Timer_A có 4 chế độ hoạt động như bảng 2.1 bên dưới
Trang 11Bảng 2.1 Chế độ hoạt động của Timer_A 5
Khối thứ 3: là nơi chứa giá trị tham chiếu của Timer_A trong quá trình hoạt động
Khối thứ 4: là khối chứa thanh ghi đếm chương trình của Timer_A là TAR
Hoạt động của Timer_A:
Chọn nguồn xung cho quá trình chuyển đổi là ACLK thông qua bit TASELLx, ACLK là nguồn dao động thạch anh 32768Hz có độ chính xác cao
Ghi giá trị định thời vào thanh ghi TACCR0
Chọn chế độ hoạt động cho Timer_A
Kích hoạt cho Timer hoạt động theo các cách sau:
Timer đếm khi MCx > 0 và nguồn xung là hoạt động
Timer có thể khởi động lại khi giá trị trong thanh ghi TACCR0 là khác 0 Hình 2.3 dưới đây thể hiện Timer hoạt động ở Up mode
Hình 2.3 Timer_ A hoạt động ở chế độ Up mode 6 Timer thực hiện việc đếm lặp lại cho tới giá trị được so sánh trong thanh ghi TACCR0 Số timer đếm trong một chu kỳ là TACCR0 + 1 Khi giá trị của timer
là bằng với TACCR0 thì timer khởi động lại và đếm từ 0 Nếu chế độ Up mode
01 Up Timer thực hiện việc đếm lặp lại từ 0 tới giá trị
trong thanh ghi TACCR0
10 Continuous Timer lặp lại đếm từ 0 tới 0FFFh
11 Up/Down Timer lặp lại việc đếm từ 0 lên tới giá trị của
TACCR0 và quay về giá trị 0
Trang 12là được chọn khi timer có giá trị lớn hơn TACCR0 thì timer ngay lập tức khởi động lại và đếm từ 0
Hình 2.2 là hình ảnh tổng quan về kit eZ430-RF2500
Hình 2.4 Board eZ430-RF2500 USB 7eZ430-RF2500 là một thẻ giao tiếp USB và truyền nhận dữ liệu không dây eZ430-RF2500 được phát triển dựa trên MSP 430F2274 kết hợp với chíp CC2500 truyền nhận tín hiệu ở vùng tần số 2.4 GHz, tích hợp sẵn cảm biến nhiệt độ Do đặc điểm dòng MSP430 có những ưu thế về năng lượng nên đáp ứng được những nhu cầu trong thiết bị di động MSP430 dùng nguồn 3.6V nên trong thiết kế này có thể sử dụng pin Lithiun 3.7 V
Bộ eZ430-RF2500T là một sản phẩm có thể làm việc với đầu cắm USB như một hệ thống độc lập với cảm biến bên ngoài Hoặc sử dụng thiết kế mở rộng với những module ngoại vi Với giao diện gỡ lỗi USB cho phép sản phẩm có thể truyền và nhận dữ liệu từ xa từ máy tính cá nhân sử dụng truyền nhận nối tiếp UART
Trang 13 Hai eZ430-RF2500T target board
Một eZ430-RF USB debugging interface
Một AAA battery pack with expansion board (batteries includeed)
Mô hình kết nối giữa eZ430-RF2500T target board và Battery Board
Hình 2.5 eZ430-RF25000 Target Board 8
II.1 Đặc điểm CC2500 trên kit eZ430-RF2500
CC2500 là vi điều khiển thực hiện các công việc như: điều chế, giải điều chế, kiểm tra lỗi, lặp bit, … để phục vụ cho việc thu phát không dây
Hình 2.6 Sơ đồ khối bên trong CC2500 9
- Đặc điểm của truyền nhận RF
Độ nhạy cao (-140dBm tại 2.4kBaud, tỉ lệ lỗi gói là 1%)
Trang 14 Hỗ trợ linh hoạt cho định hướng gói tin của hệ thống: phát hiện từ đồng
bộ, cho phép kiểm tra địa chỉ, linh hoạt trong việc xác định chiều dài gói tin, có thể tự động kiểm tra CRC…
Giao diện SPI rất hiệu quả: tất cả thanh ghi có thể lập trình với một
Có bộ đệm dữ liệu 64 bytes cho RX FIFO và TX FIFO
Là chỉ số cường độ trường nói lên sức mạnh của tín hiệu nhận Trong chế độ RX, giá trị RSSI có thể được đọc liên tục trong thanh ghi trạng thái RSSI (có địa chỉ
là 0x34) cho đến khi từ đồng bộ được phát hiện và giải điều chế Giá trị RSSI luôn luôn ổn định cho đến khi trạng thái kế tiếp của chế độ RX là hoạt động Tốc
độ cập nhật RSSI phụ thuộc vào băng thông lọc ở nơi nhận và 2 bit AGCCCTRL0.FILTER_LENGTH của thanh ghi AGCCTRL0
Nếu PKTCTRL1.APPEND_STATUS là cho phép thì giá trị của RSSI tự động được thêm vào byte đầu tiên sau dữ liệu Khi tín hiệu RSSI được đọc tại thanh ghi trạng thái RSSI nó được định dạng là 2’s complement Sau đây là tiến trình chuyển đổi tín hiệu RSSI được đọc sang mức công suất tuyệt đối:
Trang 15+ Đọc thanh ghi trạng thái RSSI
+ Chuyển đổi giá trị đọc từ hệ thập lục phân (hệ 16) sang hệ thập phân (hệ 10)
là RSSI_dec
+ Nếu RSSI_dec>= 128 thì RSSI_dBm=
+ Ngược lại nếu RSSI_dec<= 128 thì RSSI_dBm=
Ta có bảng sau đây cung cấp một số giá trị đặc trưng cho RSSI_offset Bảng sau cho ta thấy được RSSI_offset tương ứng với các tốc độ dữ liệu khác nhau
Bảng 2.2 Giá trị đặc trưng của RSSI_offset 10
III TỔNG QUAN VỀ MẠNG SIMPLICITI
SimpliciTi là một giao thức mạng khá đơn giản, được sử dụng phần lớn trong các mạng RF nhỏ SimpliciTi được thiết kế nhằm mục đích thực hiện giao tiếp dễ dàng với vi điều khiển có yêu cầu về nguồn tài nguyên nhỏ Mạng thường sử dụng rất ít năng lượng nên ta có thể dùng pin nên thời gian sử dụng là pin rất dài
Mặc dù vậy những giao thức mạng SimplciTi hỗ trợ cho ngoại vi (End Device) các cấu hình mạng như: mạng ngang hàng (peer-to-peer), các tùy chọn cho việc lưu trữ và chuyển tiếp tin nhắn, và sử dụng RE (Range Extenders) để mở rộng
phạm vi của mạng lưới SimpliciTi được sử dụng trong một loạt các ứng dụng sử dụng nguồn năng lượng thấp như: báo động và an ninh (phát hiện khói, cảm biến ánh sáng, cảm biến khí cacbon monoxide ), tự động đọc mực chất lỏng (gas, nước), nhà tự động,
III.1 Các thành phần của mạng
Sau đây là hình ảnh mô tả tổng quan các thành phần cơ bản trong mạng SimPliTi
hỗ trợ cho việc truyền tin RF đơn giản
Trang 16Hình 2.7 Các thành phần của mạng SimpliciTi 11
Ý nghĩa của các khối trong hình vẽ như sau:
III.1.1 Mã hóa (Encryption)
Ta có thể chọn lựa việc mã hóa bằng phần cứng hoặc sử dụng phần mềm nếu bộ thu phát của chúng ta có hỗ trợ Nhưng đối với CC2100/CC2500 không
có hỗ trợ phần cứng cho việc mã hóa nên ta phải mã hóa bằng phần mềm Khi chúng ta cho phép chương trình mã hóa được thực hiện thì tất cả các trường của
dữ liệu đều được mã hóa ngoại trừ trường địa chỉ
III.1.2 Nhảy tần (Frequency Aglility)
SimpliciTi cho phép thực hiện việc di chuyển tấn số truyền nhận đến một tấn số khác nếu tấn số hiện tại có nhiễu hoặc không tương thích
Ngoại vi có thể nhận được gói tin và chúng có thể phát hiện là không liên lạc được nếu chúng đang hoạt động trên tần số không phù hợp bởi vì không có bất
cứ hồi âm nào sau khoảng thời gian gởi và gởi lại một khung
III.1.3 Quản lí mạng (Network Management)
Đây là tên miền của AP có các chức năng như lưu trữ và chuyển tiếp, cho thiết bị ngưng hoạt động, mã hóa mật mã, và quản lí nhảy tần số
III.1.4 Access Point
Có thể nhận dữ liệu được gởi từ ngoại vi, chuyển tiếp dữ liệu và nhiệm vụ chính là quản lí mạng
III.1.5 Range Extender
Nhiệm vụ chính của Range Extender là chuyển tiếp khung dữ liệu
11
Larry Friedman – SimplisiTi Specification pdf – Trang 5
Trang 17III.1.6 Năng lượng dùng trong mạng (Battery-only Network)
AP được cấp trực tiếp từ PC, còn các End Device được cung cấp từ pin
III.2 Cấu trúc phân lớp của mạng
Mạng SimpliciTi có cấu trúc phân lớp cơ bản gồm: Application, Network, Data Link/PHY
Hình 2.8 Cấu trúc phân lớp mạng SimpliciTi 12
III.2.1 PHY hoặc Data Link (MAC/LLC) Layer
Chức năng chính của lớp này là đóng khung dữ liệu trước khi truyền
III.2.2 Tầng mạng (Network layer).Thiết lập các thông số trước khi truyền
như:
Tấn số cơ bản và khoảng cách tần số
Số tần số hỗ trợ
Phương pháp điều chế, tốc độ dữ liệu
Địa chỉ của ngoại vi
Tốc độ lặp lại trên Tx của ngoại vi
III.2.3 Tầng ứng dụng (Application layer)
Dành cho người dùng phát triển ứng dụng
được thể hiện qua mạng SimpliciTi
Trang 18AP (Access Point) đóng vai trò như nơi chuyển tiếp dữ liệu được gởi từ ED1 (End Device 1) chuyển dữ liệu đã nhận được cho ED2 thông qua AP
Hình 2.10 Lưu và chuyển tiếp dữ liệu qua AP 14ED1 chuyển dữ liệu trực tiếp qua ED2 thông qua việc kết nối mô hình mạng ngang hàng (peer-to-peer)
Hình 2.11 Hướng mạng ngang hàng 15
RE (Range Extender) là nơi lưu trữ và chyển tiếp dữ liệu của ED1 chuyển sang
ED2 thông qua mạng ngang hàng (peer-to-peer)
Hình 2.12 Lưu và chuyển tiếp dữ liệu thông qua RE 16
Mô hình mạng thực hiện việc truyền dữ liệu từ ED1 đến ED2 thông qua hai bộ phận lưu và chuyển tiếp đó là RE và AP
Trang 19Hình 2.13 Lưu và chuyển tiếp dữ liệu thông qua RE, AP 17
III.4 Cấu trúc khung dữ liệu
Cấu trúc khung có 3 thành phần cơ bản như sau:
Phần được xử lí bởi lớp PHY/MAC
Phấn hỗ trợ cho việc quản lí mạng được cài đặt trong lớp nwk
(network)
Phần trình bày cho những dữ liệu ứng dụng được hỗ trợ lớp ứng
dụng (application layer )
III.4.1 Khung PHY/MAC
Được xử lí bởi phần cứng Nó chứa những thông tin về bit mở đầu (preamble)
và bit đồng bộ (sync)
III.4.2 Khung NWK
Được xử lí bởi firmware trong NWK layer Những trường trong phần này dùng cho mục đích điều khiển mạng có những thông số cụ thể như: thể loại khung, trạng thái mã hóa, số thứ tự
Hình 2.10 và hình 2.11 cho ta thấy được cấu trúc khung dữ liệu trong mạng SimpliciTi
17
Larry Friedman – SimplisiTi Specification pdf – Trang 9
Trang 20Hình 2.14 Cấu trúc khung trong mạng SimpliciTi (with security enabled)18
Hình 2.15 Cấu trúc khung trong mạng SimpliciTi (without security enabled)19
IV BỘ CHUYỂN ĐỔI ADC10 TRONG MSP430F2274
Trong MSP430F2274 có tích hợp bộ cảm biến nhiệt độ ADC10 với 10 bit cho quá trình chuyển đổi và tốc độ chuyển đổi có thể lên tới 200ksps, hình 2.12 cho ta thấy tổng quát về các thành phần trong bộ phận ADC10
Trang 21Hình 2.16 Sơ đồ tổng quan về ADC10 20
IV.1 Tổng quan các khối trong ADC10
Khối thứ 1: trong sơ đồ khối trên là ngõ vào của tín hiệu tương tự trong quá trình chuyển đổi có giá trị từ 0000 đến 1111 tương ứng với 16 kênh ngõ vào tương tự
Khối thứ 2: là khối chọn điện thế trong quá trình chuyển đổi
Trang 22 Khối thứ 3: là tín hiệu ngõ vào tương tự của bộ cảm biến nhiệt độ được tích hợp bên trong ADC10 của MSP430F2274
Khối thứ 4: là khối ngõ vào nguồn xung cung cấp cho quá trình chuyển đổi ADC10 có 4 nguồn xung cơ bản gồm: ACLK, MCLK, SMCLK, ADC10OSC ( là nguồn xung dao động nội 5MHz) và các nguồn xung này
có thể được chia nhỏ xuống bởi bộ chia ADC10DIVx từ 1 đến 8 tùy theo nhu cầu của người sử dụng
Khối thứ 5: là khối thực hiện quá trình lấy mẫu và chuyển đổi tín hiệu tương tự ngõ vào và sau đó lưu kết quả của quá trình chuyển đổi vào thanh ghi ADC10MEM
Khối thứ 6: là nơi lưu trữ kết quả của quá trình chuyển đổi
Khối thứ 7: cho phép lưu trữ kết quả của quá trình chuyển đổi tới bất cứ đâu trong bộ nhớ CPU Khi DTC là cho phép, mỗi lần ADC10 hoàn thành quá trình chuyển đổi và gởi dữ liệu tới ADC10MEM, thì việc truyền dữ liệu được kích hoạt
IV.2 Các bước trong quá trình chuyển đổi ADC10
Để thực hiện quá trình chuyển đổi ADC10 thành công thì chúng ta thực hiện các bước sau:
- Chọn tín hiệu ngõ vào cần chuyển đổi từ 16 kênh tương ứng
- Chọn nguồn xung cung cấp cho quá trình chuyển đổi: Nguồn ADC10CLK có thể dùng như xung chuyển đổi hoặc được sử dụng
để lấy mẫu tín hiệu vào Việc chọn nguồn xung ADC10 được thông qua bit ADC10SSELx và chúng ta có thể chia nguồn xung này xuống thông qua bit ADC10DIVx Nguồn ADC10 có thể là SMCK, MCLK, ACLK hoặc là dao động nội ADC10OSC
- Chúng ta phải đảm bảo nguồn xung được chọn phải duy trì hoạt động cho tới khi kết thúc của quá trình chuyển đổi Nếu nguồn xung không hoạt động trong quá trình chuyển đổi thì quá trình chuyển đổi không được hoàn thành, thì sẽ không có bất cứ kết quả nào là có giá trị
- Chọn nguồn điện thế tham chiếu: ADC10 chứa 2 nguồn điện thế có thể tham chiếu với việc chọn lựa 2 mức điện thế Nếu ta cài đặt REFON = 1 cho phép ta tham chiếu nguồn bên trong Khi REF_5V, nguồn tham chiếu bên trong là 2.5V và khi REF_5V = 0 thì nguồn
Trang 23tham chiếu sẽ là 1.5V Và đặc biệt khi REFOUT = 0 thì nguồn tham chiếu bên ngoài trên chân Vref+
- Sau khi chuyển đổi hoàn thành kết quả được lưu ở thanh ghi ADC10MEM ở 2 dạng đó là: số nhị phân và dạng 2’s complement Công thức chuyển đổi cho kết quả ADC khi dùng định dạng nhị phân
Giản đồ thời gian cho quá trình lấy mẫu và chuyển đổi: Sự chuyển đổi ADC10 được khởi tạo bởi cạnh lên của tín hiệu ngõ vào lấy mẫu SHI Nguồn SHI được chọn thông qua bit SHSx và gồm có các chọn lựa khác:
ADC10SC bit
Timer_A Output Unit 1
Timer_A Output Unit 0
Timer_A Output Unit 2
Bit SHTx dùng để thiết lập chu kỳ lấy mẫu tsample 4, 8, 16, hoặc 64 chu kỳ của ADC10CLK Tổng thời gian lấy mẫu là bao gồm tsample cộng với tsync Khi tín hiệu SAMPCON là chuyển đổi từ cao xuống thấp báo hiệu cho ta biết quá trình chuyển đổi được bắt đầu, quá trình chuyển đổi cần tới 13 chu kỳ của ADC10CLK mới hoàn thành xong Trong đó 12 chu kỳ dùng để thực hiện chuyển đổi và 1 chu kỳ cuối dùng để sao chép kết quả chuyển đổi tới nơi lưu trữ ADC10MEM
Hình 2.17 Thời gian của quá trình chuyển đổi và lấy mẫu 21
21
Slau144e.pdf – Chương 20, trang 20-7
Trang 24 ADC10 có 4 chế độ vận hành cho quá trình chuyển đổi được thiết lập bởi
2 bit CONSEQx của thanh ghi ADC10CTL1 như sau:
Bảng 2.3 Tổng kết về chế độ chuyển đổi 22
IV.3 Quá trình chuyển đổi ADC10 với ngõ vào nhiệt độ
Muốn sử dụng bộ cảm biến nhiệt độ trong quá trình chuyển đổi ta thực hiện các bước sau:
- Bước 1: Chọn ngõ vào chuyển đổi là A10 có giá trị là 1010 dựa trên thanh ghi ADC10CTL1 với 4 bit INCH_10 = 1010
- Bước 2: Chọn điện thế tham chiếu là 2.5V thông qua bit thứ 6 của thanh ghi ADC10CTL0 cho SREF_1 = 1
- Bước 3:Chọn nguồn xung cung cấp cho quá trình chuyển đổi, MSP430F2274 có 4 nguồn xung cơ bản ACLK, MCLK, SMCLK, ADC10OSC hoạt động độc lập
- Trong quá trình chuyển đổi trên ta chọn nguồn xung ADC10OSC là nguồn dao động nội bên trong MSP430F2274 nên độ chính xác cao hơn các nguồn còn lại
- Bước 4: Cho phép lấy mẫu và bắt đầu chuyển đổi được thiết lập thông qua thanh ghi ADC10CTL0 với bit ENC và ADC10SC
- Bước 5: Thu kết quả của quá trình chuyển thông qua thanh ghi ADC10MEM với định dạng nhị phân
Hình 2.14 bên dưới thể hiện mối quan hệ giữa nhiệt độ và điện thế trong quá trình chuyển đổi
channels
A sequence of channel is converted once
channel
A single channel is converted repeatedly
of-channels
A sequence of channels is converted repeatedly
Trang 25Hình 2.18 Hàm liên hệ giữa nhiệt độ và điện thế 23Sau đây là hình ảnh thanh ghi trong quá trình thiết lập cho hoạt động ở ngõ vào cảm biến
Bảng 2.4 Các thanh ghi trong ADC10 24
Trang 26 Thanh ghi ADC10CTL0
SREFx Bit 15-13 Chọn nguồn tham chiếu
Trang 27ADC10SC Bit 0 Bắt đầu chuyển đổi
0 Không bắt đầu chuyển đổi và giữ
1 Bắt đầu chuyển đổi và giữ
Thanh ghi ADC10CTL1
Trang 28INCHx Bit 15-12 Chọn ngõ vào chuyển đổi
Trang 29Kết quả chuyển đổi Bit 15-0 10 bit chuyển đổi là được nằm bên phải, trong định dạng nhị phân Bit 9 là bit MSB Bit 15-10 luôn luôn là 0
Hình 2.15 Là lưu đồ chuyển đổi của ADC10 được thiết lập thông qua bit CONSEQx của thanh ghi ADC10CTL1
Hình 2.19 Chế độ chuyển đổi đơn 25
25
Slau144e.pdf – Chương 20, trang 20-10
Trang 30V CÁC CHUẨN GIAO TIẾP SỬ DỤNG TRONG HỆ
THỐNG
Trước hết ta xem tổng quan sự giao tiếp giữa MSP430F2274 với CC2500 sử dụng chuẩn SPI
Hình 2.20 Sơ đồ giao tiếp SPI giữa MSP430F2274 và CC2500 26
- Là chuẩn truyền thông đồng bộ nối tiếp được phát triển bởi Motorola
hoạt động ở chế độ song công (full duplex) Chuẩn này thực hiện việc
giao tiếp giữa MSP430F2274 và CC2500
- SPI là sự liên kết dữ liệu đồng bộ trong khối USART Sử dụng 4 dây (đôi khi 3 dây) nó cho phép vi điều khiển truyền thông với bất
cứ với ngoại vi nào mà nó hỗ trợ Một bus chỉ cho phép một master nhưng có thể có nhiều slave Master là một vi xử lí ở đó nó khởi tạo giao thức trong khi slave tương ứng như là câu lệnh hoặc yêu cầu cho việc truyền thông tin Bảng sau cho phép ta thấy được sơ đồ của tín hiệu dùng SPI:
26
Thomas Watteyne – eZWSN – Exploring Wireless Sensor Networking Lab Version Trang 11
Trang 31Bảng 2.4 Tín hiệu SPI 27
- Tín hiệu xung clock nối tiếp là nguồn xung cung cấp cho sự vận hành đồng bộ giữa master và slave SIMO và SOMI chức năng là đường truyền và nhận dữ liệu tương ứng với vai trò của chúng trong việc giao tiếp
Thiết lập SPI:
- Trước khi chúng ta dùng giao thức SPI để truyền thông với ngoại vi khác chúng ta phải thiết lập chuẩn USART của MSP430 Dựa vào datasheet của MSP430F2274 ta có một số chân phục vụ cho truyền thông SPI như sau:
Bảng 2.5 Port dùng cho chuẩn SPI trong MSP430F2274 28
27
Gustavo Litovsky – MSP430 Tutorial for eZ430-RF2500 and More pdf, trang 14
28
Gustavo Litovsky – MSP430 Tutorial for eZ430-RF2500 and More pdf, trang 16
input
Chip
(Multiplexed) P3.0/UCB0STE/
UCA0CLK/
A5
Chân I/O số dùng chung USCI_B0 slave cho phép truyền USCI_A0 xung vào/ra
ADC10, ngõ vào tương tự A5 P3.1/
UCB0SIMO/
UCB0SDA
Chân I/O số dùng chung USCI_B0 slave vào/master ra trong chế độ SPI
SDA I2C dữ liệu trong chế độ I2C
Trang 32 Tất cả các chân là có nhiều chức năng và có thể là I/O Trong vi điều khiển này có cả USCI_A0 và USCI_B0 có khả năng sử dụng cho giao thức SPI Nhưng trong kit eZ430-RF2500 ta chỉ có thể sử dụng USCI_B0 cho chuẩn SPI giao tiếp với CC2500 vì USCI_A0 đã sử dụng chuẩn UART để giao tiếp với máy tính thông qua cổng USB P3.0 được sử dụng như một chân chung để điều khiển CSn (dùng để chọn slave truyền thông) P3.1, P3.2 được sử dụng như SIMO và SOMI đã được định sẵn P3.3 là nơi cung cấp xung cho phép sự đồng bộ giữa master và slave trong quá trình truyền thông
V.2 UART Module và truyền thông với PC
Quá trình giao tiếp của kit eZ430 – RF2500 với máy tính được thực hiện thông
qua UART (Universal asynchronous receiver/transmitter) được thể hiện qua
SCL I2C xung trong chế độ I2C P3.3/
UCB0CLK/
UCA0STE
Chân I/O số dùng chung USCI_B0 xung vào/ra USCI_A0 slave cho phép truyền P3.4/
Trang 33Khối sử dụng UART
Hình 2.21 UART kết nối với máy tính 29
Là chuẩn truyền thông không đồng bộ, điều khiển giao tiếp của MSP430F2274 truyền thông nối tiếp với máy tính
Quá trình thiết lập để vi điều khiển hoạt động dùng truyền nhận UART: Trước khi truyền thông tin giữa PC và kit thông qua giao thức truyền thông nối tiếp bất đồng bộ UART ta thực hiện một số thiết lặp cho vi điều khiển MSP430F2274 như sau:
Ta thực hiện việc gán giá trị cho port P3.4 và P3.5 lên mức logic 1 để cho phép MSP430F2274 thực hiện được việc truyền nhận dữ liệu với PC qua giao thức UART
Thực hiện công thức sau: UCA0BR0 + UAC0BR1 x 256 = 833
Ta thực hiện việc tra bảng 1 ở phần phụ lục sẽ cho ta được tốc độ baud và tỷ lệ lỗi tương ứng
Cấu trúc khung dữ liệu: hình 2.18 bên dưới cho ta thấy được cấu trúc khung dữ liệu sử dụng trong UART truyền thông với PC
29
Slau227E pdf – Trang 6
Trang 34Hình 2.22 Cấu trúc khung dữ liệu truyền thông với PC 30
30
MSP430 Microcontrollers Essentials – Chương 14, trang 14-24
Trang 35CHƯƠNG III: THIẾT KẾ HỆ THỐNG
Chương 3 trình bày các vấn đề cụ thể sau:
- Mô hình tổng quát nhất mà hệ thống được thiết kế để hoạt động
- Nguyên tắc hoạt động của các thành phần trong hệ thống được thiết
kế
- Tổng quan về giao diện hiển thị lúc hệ thống hoạt động
- Phần mềm hỗ trợ IAR được sử dụng để viết chương trình, biên dịch
Hình 3.1 Mô hình tổng quát của hệ thống
Mô hình mạng hình sao của hệ thống được thiết kế để thu thập nhiệt độ từ các
EDx (End Devicex) nằm ở xung quanh AP (Access Point) và sau đó ED gửi dữ
liệu về cho AP để hiện thị lên giao diện, kết quả đã thu nhận được từ các ED
Access Point
End
Device 1
End Device 2
End Device 3
End Device 5 End Device 4
Trang 36Mỗi ED có các chức năng riêng biệt nhưng chúng cũng có chức năng chung nhất
đó là thực hiện cảm biến nhiệt tại chỗ và gửi dữ liệu cảm biến được về cho AP
PHẦN TRONG HỆ THỐNG
- Hệ thống cơ bản gồm 2 phần chính: Một module đóng vai trò là AP
(Access Point) và một module khác đóng vai trò là ED (End Device)
Hoạt động với nhau dựa trên nguyên tắc cơ bản: các thiết bị ED luôn luôn gởi dữ liệu liên kết tới AP mong muốn tham gia vào mạng, trong khi thì AP luôn luôn lắng nghe và thiết lập kết nối với ED nào có yêu cầu tham gia vào mạng Khi đã hoàn tất việc kết nối thì AP trong mạng luôn luôn sẵn sàng nhận dữ liệu từ những ngoại vi mỗi giây một lần End Devide có chứa các bộ cảm biến sau khi thực hiện thu thập nhiệt độ, điện thế sẽ gởi dữ liệu về cho AP sử dụng chế độ công suất thấp LPM3, dữ liệu gởi về bao gồm nhiệt độ và điện thế mà ED đã tính toán được Khi
AP nhận được dữ liệu gởi về từ bất cứ ED nào trong mạng thì nó gởi dữ liệu đó qua ứng dụng UART đến cổng COM của máy tính và dữ liệu được hiển thị trong giao diện ứng dụng người dùng GUI Trong kết nối mạng này thì một AP có thể hỗ trợ lên tới 8 thiết bị ED
- Vì cấu trúc mạng sử dụng trong đề tài này là cấu trúc mạng hình Sao, nên các End Device trong cùng một mạng có vai trò ngang nhau Sau đây
là vai trò cụ thể của AP và ED
- Sau đây là nguyên tắc hoạt động chi tiết cho từng thành phần trong hệ thống đã được thiết kế
II.1 Vai trò của AP
- Sử dụng bộ cảm biến bên trong ADC10 bắt đầu thực hiện việc cảm biến đo lường nhiệt độ môi trường xung quanh mỗi giây một lần rồi sau đó gởi dữ liệu lên máy tính PC Ngoài ra AP còn liên tục lắng nghe trên mạng để phát hiện có ngoại vi mới tham gia vào mạng lưới
và nhận gói tin được gởi về từ ED mới chắc chắn rằng là tham gia vào mạng Access Point sử dụng 2 led cho việc báo hiệu, một đèn led
đỏ cháy/tắt báo hiệu cho việc AP truyền dữ liệu đã cảm biến được cho PC, còn đèn led xanh cháy /tắt báo hiệu cho việc AP nhận được gói tin yêu cầu tham gia vào mạng của ngoại vi mới
Trang 37II.2 Vai trò của ED
- Ngay lúc mới khởi động, ED bắt đầu tìm kiếm AP để thực hiện việc kết nối Trong khi tìm kiếm thì cả hai led đỏ và xanh đều tắt/cháy Khi phát hiện ra một AP, ED cố gắng liên kết mạng được thể hiện thông qua việc nháy của led đỏ Nếu nó không thể liên kết được với
AP thì led đỏ vẫn tiếp tục nháy Một sự kết nối với AP thì tất cả các led đều tắt, và ED được đưa đến chế độ LMP3 nháy led trong lúc hoạt động
- ED1 thực hiện các vai trò như đã thể hiện ở trên, ngoài ra chúng còn thực hiện chức năng khá quan trọng trong hệ thống là điều khiển động cơ bước hoạt động ở nhiều chế độ khác nhau tùy theo nhiệt độ
mà chúng cảm biến được Và sau đây là mô hình mà ED1 thực hiện trong hệ thống
Hình 3.2 Hoạt động của ED1
- ED2 chúng được điều khiển bởi người dùng thông qua switch để thực hiện việc gửi dữ liệu về AP khi người dùng yêu cầu
- ED3 điều khiển động cơ bước thông qua bàn phím của máy tình với
sự hỗ trợ của giao diện putty
- ED4 đến ED8 có cùng chức năng là cảm biến nhiệt độ tại chỗ và gửi về cho AP trong mỗi giây
II.3 Một số ưu khuyết điểm của cấu hình mạng sử dụng trong
hệ thống
- Trong đề tài này chúng em thực hiện việc thiết lập giao tiếp giữa các Module theo kiểu mạng hình sao có một Module đóng vai trò là AP (HUB) là nơi thu nhận dữ liệu và gửi lên PC còn các Module còn lại đóng vai trò là ED (NODE) là thiết bị gởi dữ liệu về cho AP
- Ưu và khuyết điểm của mạng hình sao: so với một số mạng khác như: mạng hình cây, mạng peer-to-peer, mạng hình bus thì mạng hình sao có một số ưu và khuyết điểm như sau:
Ưu điểm của mạng hình sao:
Access
Point
End Device
Mạch điều khiển
Động
cơ bước
Trang 38
• Hoạt động theo nguyên lý các nút là ngang hàng nhau nên nếu có
một thiết bị nào đó ở một nút thông tin bị hỏng thì mạng vẫn hoạt động bình thường
• Cấu trúc mạng đơn giản và các thuật toán điều khiển ổn định
• Mạng có thể mở rộng hoặc thu hẹp tuỳ theo yêu cầu của người sử dụng
Nhược điểm của mạng hình sao:
• Khả năng mở rộng mạng hoàn toàn phụ thuộc vào khả năng của
trung tâm Khi trung tâm có sự cố thì toàn mạng ngừng hoạt động
• Mạng yêu cầu nối độc lập riêng rẽ từng thiết bị ở các nút thông tin đến trung tâm Khoảng cách từ máy đến trung tâm rất hạn chế (100 m) Nhìn chung, mạng dạng hình sao cho phép nối các máy tính vào một bộ tập trung (HUB) bằng cáp xoắn, giải pháp này cho phép nối trực tiếp máy tính với HUB không cần thông qua trục BUS, tránh được các yếu tố gây ngưng trệ mạng Gần đây, cùng với sự phát triển switching hub, mô
hình này ngày càng trở nên phổ biến và chiếm đa số các mạng mới lắp
III HOẠT ĐỘNG CỦA GIAO DIỆN HIỂN THỊ
Hình 3.3 là hình ảnh tổng quan của giao diện hiển thị kết quả được sử dụng trong
hệ thống
Trang 39Hình 3.3 Giao diện hiển thị Chương trình của giao diện hiển thị được viết trên nền C++ chúng em đã phát triển dựa trên nền chương trình nguồn mở này và dùng để hiển thị kết quả của hệ thống
Như chúng ta đã thấy hình 3.3 trên thể hiện kết quả cập nhật được từ các End Device được đặt tại những vị trí khác nhau Thông tin thể hiện ở các ED, AP bao gồm: nhiệt độ cảm biến được tại chỗ (nhiệt độ chúng ta có thể chọn lựa chế độ đó
là độ C hoặc độ F (Fahrenheit) qua việc thiết lập tab trên giao diện, điện thế, số
thứ tự của ED trong hệ thống và thời gian Để phân biệt được AP với ED trên cùng giao diện thì chúng có màu sắc khác nhau Tất cả các dữ liệu nhận được từ các ED được truyền lên PC thông qua ứng dụng UART (chi tiết ở phần III chương 2)
Hình ảnh mũi tên trên giao diện từ ED nối với AP nói lên khoảng cách từ ED đến
AP trong không gian mà AP đo được dựa trên chỉ số cường độ trường RSSI
(Received Signal Strength Indication) nhận được Chi tiết về từng tab cũng như
Trang 40chức năng của chúng được thể hiện qua hình ảnh sẽ trình bày rất cụ thể trong phần phụ lục
là những bước thực hiện khi viết chương trình:
Bước 1:Tạo một cửa sổ làm việc