Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 102 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
102
Dung lượng
5,6 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN ĐĂNG THUẤN KỸ THUẬT XÁC ĐỊNH VỊ TRÍ BẰNG CƯỜNG ĐỘ SĨNG VƠ TUYẾN RSSI NGÀNH: KỸ THUẬT ĐIỆN TỬ - 60520203 S K C0 Tp Hồ Chí Minh, tháng 10/2015 Luan van BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SỸ NGUYỄN ĐĂNG THUẤN KỸ THUẬT XÁC ĐỊNH VỊ TRÍ BẰNG CƢỜNG ĐỘ SĨNG VƠ TUYẾN RSSI KỸ THUẬT ĐIỆN TỬ-60520203 Tp Hồ Chí Minh, tháng 10 năm 2015 Luan van LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH LÝ LỊCH KHOA HỌC I LÝ LỊCH SƠ LƢỢC: Họ tên: Nguyễn Đăng Thuấn Giới tính: Nam Ngày, tháng, năm sinh: 17/02/1970 Nơi sinh: Vĩnh Long Quê quán: Vĩnh Long Dân tộc: Kinh Địa liên lạc: 38/11/4 đƣờng Mậu Thân,P.An Hòa, Q Ninh kiều, TP.Cần Thơ Điện thoại quan: 07103821327 Di động: 0918573802 Fax: Email: nguyenthuan359@gmail.com II QUÁ TRÌNH ĐÀO TẠO: Hệ đào tạo: Mở rộng Thời gian đào tạo từ: 9/1988 đến 3/1993 Nơi học: Trƣờng ĐH SPKT III Q TRÌNH CƠNG TÁC CHUYÊN MÔN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC: Thời gian Từ 6/1996 đến 9/2007 Nơi công tác Công việc đảm nhiệm Trung tâm dạy nghề TP Cần Thơ Giáo viên dạy nghề điện-điện tử Trƣờng cao đẳng Nghề Cần Thơ Giảng viên dạy nghề điện tử Từ 10/2007 đến HVTH : Nguyễn Đăng Thuấn Trang i Luan van 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 Luan van 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 tơi thực luận văn Tơi xin chân thành gửi lời cảm ơn đến toàn thể q thầy 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 Luan van 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 Luan van 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 tố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 Luan van 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 Luan van 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 Luan van LUẬN VĂN THẠC SỸ GVHD: TS LƢƠNG VINH QUỐC DANH DANH MỤC HÌNH Hình 2.1: Nguyên 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ơ đồ nguyên 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ơ đồ ngun 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 Luan van 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 Luan van 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 Luan van 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 Luan van 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 Luan van 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 Luan van 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)