(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI(Luận văn thạc sĩ) Kỹ thuật xác định vị trí bằng cường độ sóng vô tuyến RSSI
LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu tơi Các số liệu, kết nêu luận văn trung thực chƣa đƣợc cơng bố cơng trình khác Tp.Hồ Chí Minh, ngày 05 tháng 03 năm 2015 Nguyễn Đăng Thuấn HVTH : Nguyễn Đăng Thuấn Trang ii LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH LỜI CẢM ƠN Tôi xin chân thành gửi lời cảm ơn đến TS Lƣơng Vinh Quốc Danh giảng viên Khoa Cơng Nghệ trƣờng ĐHCT tận tình hƣớng dẫn thực luận văn Tôi xin chân thành gửi lời cảm ơn đến tồn thể q thầy cô Khoa Công Nghệ trƣờng Đại Học Cẩn Thơ , Q Thầy, Cơ trƣờng Đại học Sƣ Phạm Kỹ Thuật TP Hồ Chí Minh giảng dạy, hƣớng dẫn tạo điều kiện, môi trƣờng học tập tốt cho Cảm ơn anh chị, vợ bạn bè đồng nghiệp động viên giúp đỡ suốt thời gian học Xin kính chúc sức khỏe chân thành cảm ơn Học viên Nguyễn Đăng Thuấn HVTH : Nguyễn Đăng Thuấn Trang iii LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH TÓM TẮT Trong đề tài này, tác giả xây dựng mơ hình xác định vị trí sử dụng sóng vơ tuyến (sóng RF) tần số 169MHz Hệ thống có khả xác định tọa độ 2D cho đối tƣợng (ngƣời, vật, v.v…) đƣợc đặt cố định di chuyển môi trƣờng cụ thể đƣợc xác định trƣớc, dựa vào mức cƣờng độ tín hiệu (RSSI) sóng RF thu từ thiết bị có khả phát sóng RF đƣợc đối tƣợng mang theo Thơng qua thuật tốn xác định vị trí, giá trị RSSI đƣợc sử dụng để tính tốn tìm vị trí tƣơng đối đối tƣợng mục tiêu so với trạm tham khảo, kết đƣợc hiển thị thông qua phần mềm mô máy tính Để thực đề tài này, tác giả sử dụng module RF CC1120 169MHz giao tiếp với vi xử lý MSP430G2553, xây dựng thành hệ thống mạng để truyền-nhận giá trị RSSI Hệ thống đƣợc xây dựng bao gồm trạm tham khảo, trạm mục tiêu (là đối tƣợng cần định vị), trạm đƣợc sử dụng kết nối với máy tính để xử lý hiển thị kết lên hình ABSTRACT In this work, we will build a simple model to locate a position using 169MHz Radio Frequency (RF) This system has ability to identify an object’s 2D coordinate in outdoor and indoor enviroment The object can be a human or thing that is placed at fixed position or moving inside Received Signal Strength Indicator (RSSI) will be collected from a module that is carried on by the object By using a suitable positioning algorithm, the object 2D coordinate will be calculated by RSSI values and displayed on computer screen To implement the project, we built a network includes CC1120 RF 169 MHz modules communicated with MCU MSP430G2553 through SPI standard to transmit-receive RSSI values The sensor network contains modules placed at fixed postion and role as Reference Nodes, another one played as Blind Node that need to identify position, last module will be use to connect with computer for processing data and displaying Keyword: RSSI, Distance, ROCRSI+ algorithm Title: Localization Technique Using RSSI HVTH : Nguyễn Đăng Thuấn Trang iv LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH MỤC LỤC Chƣơng TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU 1.3 MỤC ĐÍCH CỦA ĐỀ TÀI 1.4 NHIỆM VỤ VÀ GIỚI HẠN CỦA ĐỀ TÀI 1.4.1 Nhiệm vụ đề tài 1.4.2 Giới hạn đề tài 1.5 PHƢƠNG PHÁP NGHIÊN CỨU Chƣơng CƠ SỞ L THUYẾT 2.1 CÁC PHƢƠNG PHÁP XÁC ĐỊNH VỊ TRÍ NÚT MẠNG 2.1.1 Phƣơng pháp AOA 2.1.2 Phƣơng pháp thời gian tới (TOA) khác thời gian tới (TDOA) 2.1.3 Phƣơng pháp nhận cƣờng độ tín hiệu RSSI 2.1.4 Mối quan hệ cƣờng độ tín hiệu khoảng cách 2.1.5 Thuật toán xác định vị trí dựa vào khoảng cách 2.2 ĐỊNH HƢỚNG THỰC HIỆN 11 Chƣơng XÂY DỰNG PHẦN CỨNG HỆ THỐNG XÁC ĐỊNH VỊ TRÍ BẰNG SĨNG VƠ TUYẾN 13 3.1 MƠ HÌNH NÚT MẠNG KHƠNG DÂY 13 3.2 MODULE THU PHÁT RF CC1120 14 3.2.1 Giới thiệu chip CC1120 14 3.2.2 Kit phát triển CC1120 Evalutation Module Kit 169Mhz 17 3.3 THIẾT KẾ BOARD GIAO TIẾP 19 3.3.1 Giới thiệu MCU MSP430G2553 19 3.3.2 Giới thiệu chuẩn giao tiếp MSP430G2553 22 3.3.2.1 UART 22 3.3.2.2 SPI 23 3.3.3 Board giao tiếp sử dụng MSP430G2553 ……………………………………….25 3.3.3.1 Sơ đồ nguyên lý tổng quát 25 3.3.3.2 Hình ảnh thiết kế board giao tiếp sử dụng MSP430G2553 29 HVTH : Nguyễn Đăng Thuấn Trang v LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH Chƣơng THUẬT TỐN XÁC ĐỊNH VỊ TRÍ SỬ DỤNG RSSI 31 4.1 KHẢO SÁT GIÁ TRỊ RSSI TỪ MODULE CC1120 31 4.1.1 Cách đọc giá trị RSSI từ module CC1120 31 4.1.2 Phƣơng pháp khảo sát giá trị RSSI 31 4.1.3 Kết khảo sát 32 4.1.4 Giới thiệu lọc Kalman 35 4.2 TÍNH TỐN KHOẢNG CÁCH DỰA VÀO THAM SỐ RSSI 37 4.2.1 Biểu thức quan hệ khoảng cách RSSI 37 4.2.2 Xác định tham số đặc trƣng 38 4.3 GIẢI THUẬT XÁC ĐỊNH VỊ TRÍ ROCRSSI 40 4.4 GIẢI THUẬT XÁC ĐỊNH VỊ TRÍ ROCRSSI+ 43 4.5 CHƢƠNG TRÌNH HIỂN THỊ VỊ TRÍ TRÊN MÁY TÍNH 44 4.6 LƢU ĐỒ GIẢI THUẬT PHẦN MỀM HỆ THỐNG …………………………….46 Chƣơng KẾT QUẢ THỰC NGHIỆM 50 5.1 TRƢỜNG HỢP I- KHU VỰC TRỐNG TRẢI CĨ ÍT VẬT CẢN 50 5.1.1 Điều kiện khảo sát 50 5.1.2 Phƣơng pháp khảo sát 50 5.1.3 Kết khảo sát 51 5.1.4 Kết tính tốn khoảng cách dựa tham số RSSI 52 5.1.5 Kết xác định tọa độ điểm mục tiêu 54 5.2 TRƢỜNG HỢP II- KHU VỰC HÀNH LANG TỒ NHÀ, CĨ NHIỀU VẬT CẢN 58 5.2.1 Điều kiện khảo sát 58 5.2.2 Phƣơng pháp khảo sát………………………………………………………… 59 5.2.3 Kết khảo sát……………………………………………………………… 60 5.2.4 Kết tính tốn khoảng cách dựa tham số RSSI 61 5.2.5 Kết xác định tọa độ điểm mục tiêu 62 Chƣơng KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ĐỀ TÀI 67 6.1 KẾT LUẬN 67 6.2 HƢỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 67 TÀI LIỆU THAM KHẢO 69 PHỤ LỤC 71 HVTH : Nguyễn Đăng Thuấn Trang vi LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH MỘT SỐ K TỰ VIẾT TẮT - 2D Two Dimensional space - 3D Three Dimensional space - AOA Angle of arrival - GPS Global positioning system - ISM The Industrial Scientific Medical band - LOS Line-of-Sight - MCU Microcontroller Unit - NLOS Non Line-of-Sight - RF Radio frequency - RN Referencss Node - ROCRSSI Ring-Overlapping based on Comparison of Received Signal Strength Indicator - RSS Received signal strength - RSSI Received Signal Strength Indicator - RX Reciever - TDOA Time difference of arrival - TI Texas Instruments - TOA Time of arrival - TX Transmitter HVTH : Nguyễn Đăng Thuấn Trang vii LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH DANH MỤC HÌNH Hình 2.1: Ngun tắc góc tới [5] Hình 2.2: Phƣơng pháp AOA [5] Hình 2.3: Phƣơng pháp sử dụng nguyên tắc TOA multilateration cho vị trí 2D [5] Hình 2.4: Mơ hình truyền sóng khơng gian Hình 2.5: Phƣơng pháp Trilateration [ ] Hình 2.6: Giải thuật MinMax [8] Hình 2.7: Giải thuật ROCRSSI [9] 10 Hình 3.1: Mơ hình nút mạng 13 Hình 3.2: Minh họa phần cứng module thu phát RF 14 Hình 3.3: Ảnh thực tế sơ đồ chân chip CC1120 [10] 15 Hình 3.4 : Sơ đồ khối bên chip C1120[10] ………………………… …….16 Hình 3.5: Sơ đồ ngun lí CC1120 Evalutation Module Kit [10] 17 Hình 3.6: Sơ đồ mạch in 3D CC1120 Evalutation Module Kit 17 Hình 3.7: Ảnh thực tế CC1120 Evalutation Module Kit 169Mhz [11] 18 Hình 3.8: Giao diện phần mềm SmartRF Studio [10] 18 Hình 3.9: Sơ đồ chân họ MSP430x22x2 loại chân TSSOP[12] 21 Hình 3.10: Sơ đồ chân họ MSP430x22x2 loại chân dán QFP[12] 21 Hình 3.11: Sơ đồ khối chức vi xử lý MSP430G2553[12] 22 Hình 3.12: Cấu trúc khung truyền UART[12] 23 Hình 3.13: Sơ đồ kết nối giao tiếp SPI [12] 24 Hình 3.14: Quá trình truyền liệu giao tiếp SPI[12] 25 Hình 3.15: Sơ đồ nguyên lý tổng quát[11] 25 Hình 3.16: Sơ đồ nguyên lí mạch chuyển đổi điện áp[12] 26 Hình 3.17 : Sơ đồ ngun lí khối điều khiển…………………………………… 27 Hình 3.18: Sơ đồ nguyên lý khối nạp data[12] 27 Hình 3.19: Sơ đồ kết nối với module CC1120[12] 28 Hình 3.20: Sơ đồ mạch PCB Board giao tiếp sử dụnSg MSP430G2553[12] 29 Hình 3.21: Ảnh minh họa 3D Board giao tiếp sử dụng MSP430G2553[12] 29 HVTH : Nguyễn Đăng Thuấn Trang viii LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH Hình 3.22: Ảnh thực tế board giao tiếp + module CC1120 [12] 30 Hình 4.1: Ảnh thực tế môi trƣờng khảo sát 32 Hình 4.2: Giá trị RSSI theo khoảng cách mơi trƣờng outdoor 33 Hình 4.3: Giá trị RSSI theo khoảng cách môi trƣờng indoor 33 Hình 4.4: Sơ đồ mơ tả hoạt động mạch lọc Kalman [15] 36 Hình 4.5: Giá trị RSSI sử dụng lọc Kalman môi trƣờng Indoor 37 Hình 4.6: Giá trị hệ số A 38 Hình 4.7: Giá trị hệ số n mơi trƣờng Outdoor 40 Hình 4.8: Ví dụ ROCRSSI [9] 41 Hình 4.9: Mơ tả cách xác định vị trí nguồn phát S 41 Hình 4.10: Vùng giao có chứa trạm X 42 Hình 4.11: Kết tính toán sử dụng phƣơng pháp ROCRSSI 43 Hình 4.12: Kết tính tốn phƣơng pháp ROCRSSI+ 44 Hình 4.13: Phần mềm sử dụng 44 Hình 4.14: Đồ hoạ 2D tầng Khoa Công Nghệ 45 Hình 4.15: Đồ hoạ 2D sân Khoa Nơng Nghiệp 45 Hình 4.16: Lƣu đồ giải thuật truyền ….……………………………………………46 Hình 4.17: Lƣu đồ giải thuật nhận …….………………………………………… 47 Hình 4.18: Lƣu đồ giải thuật truyền lên máy tính …………………………………48 Hình 5.1: Khu vực khảo sát I – Sân Khoa Nông Nghiệp (ĐHCT) 50 Hình 5.2: Sơ đồ khảo sát sân Khoa Nông NGhiệp (ĐHCT) 51 Hình 5.3: Kết khảo sát RSSI vị trí 52 Hình 5.4: Kết tính tốn khoảng cách vị trí 53 Hình 5.5: Tọa độ ƣớc lƣợng điểm mục tiêu vị trí 54 Hình 5.6: Tọa độ ƣớc lƣợng điểm mục tiêu vị trí 55 Hình 5.7: Tọa độ ƣớc lƣợng điểm mục tiêu vị trí 55 Hình 5.8: Tọa độ ƣớc lƣợng điểm mục tiêu vị trí 56 Hình 5.9: Tọa độ ƣớc lƣợng điểm mục tiêu vị trí 56 Hình 5.10: Sơ đồ hƣớng di chuyển 57 Hình 5.11: Vị trí mục tiêu di chuyển đƣợc hiển thị phần mềm 57 HVTH : Nguyễn Đăng Thuấn Trang ix LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH Hình 5.12: Khu vực khảo sát II - Tầng khoa Công Nghệ (ĐHCT) 58 Hình 5.13: Sơ đồ khảo sát khu vực tầng khoa Cơng Nghệ (ĐHCT) 59 Hình 5.14: Kết khảo sát RSSI vị trí 60 Hình 5.15: Tọa độ ƣớc lƣợng điểm mục tiêu vị trí 63 Hình 5.16: Tọa độ ƣớc lƣợng điểm mục tiêu vị trí 63 Hình 5.17: Tọa độ ƣớc lƣợng điểm mục tiêu vị trí 64 Hình 5.18: Tọa độ ƣớc lƣợng điểm mục tiêu vị trí 64 Hình 5.19: Tọa độ ƣớc lƣợng điểm mục tiêu vị trí 65 Hình 5.20: Sơ đồ hƣớng di chuyển 65 Hình 5.21: Vị trí mục tiêu di chuyển đƣợc hiển thị phần mềm 66 HVTH : Nguyễn Đăng Thuấn Trang x LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH DANH MỤC BẢNG Bảng 2.1: So sánh phƣơng pháp xác định vị trí nút mạng 11 Bảng 3.1: Đặc điểm CC1120 16 Bảng 3.2: Thông số kĩ thuật module CC1120 19 Bảng 4.1: Giá trị RSSI môi trƣờng Outdoor 34 Bảng 5.1: Giá trị RSSI điểm khảo sát 51 Bảng 5.2: Kết tính tốn khoảng cách vị trí (đơn vị: mét) 52 Bảng 5.3: Kết ƣớc lƣợng vị trí điểm cố định …………………………54 Bảng 5.4: Giá trị RSSI điểm khảo sát62 60 Bảng 5.5:Kết tính tốn khoảng cách vị trí…………………………… 61 Bảng 5.6 : Giá trị RSSI-offset cho vị trí……………………………………… 62 HVTH : Nguyễn Đăng Thuấn Trang xi LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH // 5) Set VCO cap-array to (FS_VCO2 = 0x00) writeByte = 0x00; cc112xSpiWriteReg(CC112X_FS_VCO2, &writeByte, 1); // 6) Continue with mid VCDAC (original VCDAC_START): writeByte = original_fs_cal2; cc112xSpiWriteReg(CC112X_FS_CAL2, &writeByte, 1); // 7) Calibrate and wait for calibration to be done (radio back in IDLE state) trxSpiCmdStrobe(CC112X_SCAL); { cc112xSpiReadReg(CC112X_MARCSTATE, &marcstate, 1); } while (marcstate != 0x41); // 8) Read FS_VCO2, FS_VCO4 and FS_CHP register obtained with mid VCDAC_START value cc112xSpiReadReg(CC112X_FS_VCO2, &calResults_for_vcdac_start_mid[FS_VCO2_INDEX], 1); cc112xSpiReadReg(CC112X_FS_VCO4, &calResults_for_vcdac_start_mid[FS_VCO4_INDEX], 1); cc112xSpiReadReg(CC112X_FS_CHP, &calResults_for_vcdac_start_mid[FS_CHP_INDEX], 1); // 9) Write back highest FS_VCO2 and corresponding FS_VCO and FS_CHP result if (calResults_for_vcdac_start_high[FS_VCO2_INDEX] > calResults_for_vcdac_start_mid[FS_VCO2_INDEX]) { writeByte = calResults_for_vcdac_start_high[FS_VCO2_INDEX]; cc112xSpiWriteReg(CC112X_FS_VCO2, &writeByte, 1); writeByte = calResults_for_vcdac_start_high[FS_VCO4_INDEX]; cc112xSpiWriteReg(CC112X_FS_VCO4, &writeByte, 1); writeByte = calResults_for_vcdac_start_high[FS_CHP_INDEX]; cc112xSpiWriteReg(CC112X_FS_CHP, &writeByte, 1); } HVTH : Nguyễn Đăng Thuấn Trang 75 LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH else { writeByte = calResults_for_vcdac_start_mid[FS_VCO2_INDEX]; cc112xSpiWriteReg(CC112X_FS_VCO2, &writeByte, 1); writeByte = calResults_for_vcdac_start_mid[FS_VCO4_INDEX]; cc112xSpiWriteReg(CC112X_FS_VCO4, &writeByte, 1); writeByte = calResults_for_vcdac_start_mid[FS_CHP_INDEX]; cc112xSpiWriteReg(CC112X_FS_CHP, &writeByte, 1); } } // -static int8 getRSSI(void) { cc112xSpiReadReg(CC112X_RSSI0, &rssiValid, 1); if(rssiValid & 0x01) { cc112xSpiReadReg(CC112X_RSSI1, &rssi2compl, 1); rssiConverted = ((int8)rssi2compl - rssiOffset); } return rssiConverted; } // -static void runRX () { if(packetSemaphore == ISR_ACTION_REQUIRED) // Wait for packet received interrupt { cc112xSpiReadReg(CC112X_NUM_RXBYTES, &rxBytes, 1); // Read number of bytes in rx fifo if(rxBytes != 0) // Check that we have bytes in fifo are there any bytes ? { cc112xSpiReadReg(CC112X_MARCSTATE, &marcStatus, 1); // Read marcstate to check for RX FIFO error if((marcStatus & 0x1F) == RX_FIFO_ERROR) { HVTH : Nguyễn Đăng Thuấn Trang 76 LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH trxSpiCmdStrobe(CC112X_SFRX); // Flush RX Fifo, Mask out marcstate bits and check if we have a RX FIFO error } else { cc112xSpiReadRxFifo(rxBuffer, rxBytes); if(rxBuffer[rxBytes-1] & 0x80) // Read out data Read n bytes from rx fifo // if CRC OK, If CRC is disabled the CRC_OK field will read { // -Do something here - // -} } } packetSemaphore = ISR_IDLE; // Reset packet semaphore trxSpiCmdStrobe(CC112X_SRX); // set radio in RX } } // static void runTX ( uint8 data0) { // Creat packet -txBuffer[0] = PKTLEN; txBuffer[1] = 1; // Length byte 30 // Address txBuffer[2] = data0; for(uint8 i =3; i< (PKTLEN+1); i++) { txBuffer[i] = data0; // data } // -cc112xSpiWriteTxFifo(txBuffer,sizeof(txBuffer)); // write packet to tx fifo trxSpiCmdStrobe(CC112X_STX); // strobe TX to send packet while(!(P2IN & BIT6)); // packet has been sent HVTH : Nguyễn Đăng Thuấn Trang 77 LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH delay_cycles(50000); // packet has been sent txok=1; packetSemaphore = ISR_IDLE; // clear semaphore flag // -trxSpiCmdStrobe(CC112X_SRES); registerConfig(); // write radio registers manualCalibration(); // Calibrate radio according to errata } // -MODULE XXXXX -// void main(void) { halInitMCU(); halLedInit(); //init LEDs halButtonInit(); //init button halButtonInterruptEnable(); // UART -// P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD UCA0CTL1 |= UCSSEL_2; // SMCLK UCA0BR0 = 104; // 1MHz 9600 UCA0BR1 = 0; // 1MHz 9600 UCA0MCTL = UCBRS0; // Modulation UCBRSx = UCA0CTL1 &= ~UCSWRST; IE2 &=~ UCA0TXIE; bis_SR_register(GIE); // **Initialize USCI state machine** // Enable USCI_A0 RX interrupt // Enter LPM0, interrupts enabled // -SPI Initialize -exp430RfSpiInit(); // init spi registerConfig(); // write radio registers // Interrupt Configuaration P2SEL &= ~0x40; // P2SEL bit (GDO0) set to one as default Set to zero (I/O) trxIsrConnect(GPIO_0, FALLING_EDGE, &radioRxTxISR); trxEnableInt(GPIO_0); // enable interrupt from GPIO_0 P2IE &=~ BIT6; HVTH : Nguyễn Đăng Thuấn Trang 78 LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH manualCalibration(); // Calibrate radio according to errata //trxSpiCmdStrobe(CC112X_SRX); // set radio in RX while (1) { // Do something here ledtrang(1); runTX(d0X); if(txok) { ledxanh(1); txok=0; delay_cycles(2000000); } } } // Interrupt - #pragma vector=PORT1_VECTOR interrupt void port1_ISR(void) { if (P1IFG&BUTTON) { for (i=0;i XD XX=XD; end % Loai bo toa am YY if YY < YC YY=YC; HVTH : Nguyễn Đăng Thuấn Trang 86 LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH elseif YY > YB YY=YB; end if(mod(((round(XX*10)/10)*10),10)