1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐỒ ÁN NGHIÊN CỨU CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN CÔNG SUẤT TRONG HỆ THỐNG UMTS

79 96 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 79
Dung lượng 7,91 MB

Nội dung

Lời cảm ơn LỜI CẢM ƠN Lời khóa luận em xin chân thành gửi lời cảm ơn sâu sắc đến thầy giáo hướng dẫn Th.s Nguyễn Duy Nhật Viễn Thầy người giao đề tài hướng dẫn em suốt q trình em hồn thành đồ án Nhân dịp em xin gửi lời cảm ơn đến tất thầy cô giáo khoa Điện tử viễn thông, người giúp đỡ chúng em suốt năm học vừa qua để chúng em có kết ngày hôm Em xin chân thành cảm ơn! Đà Nẵng, ngày 23 tháng 05 năm 2011 Trang i Lời cam đoan LỜI CAM ĐOAN Trong trình làm đồ án, em tìm hiểu tài liệu từ nhiều nguồn khác để hoàn thành đồ án Tất tham khảo em ghi vào phần tài liệu tham khảo cuối đồ án Em xin cam đoan đồ án không chép đồ án có từ trước Đà Nẵng, ngày 23 tháng 05 năm 2011 Sinh viên thực Ngô Anh Vũ Trang ii Mục lục MỤC LỤC Lời cảm ơn….……………………………………………………………………… i Lời cam đoan …… ……………………………………………………………… ii Từ viết tắt ………………………………………………………………………… vi Lời giới thiệu …………………………………………………………………… x A B C D E G I .1 L M O P Q R S T U V W Chương Tổng Quan Về Hệ Thống UMTS 1.3 Công nghệ WCDMA 2.5 Kết luận 27 Chương 28 Các Thuật Tốn Điều Khiển Cơng Suất Trong UMTS .28 3.1 Giới thiệu chương 28 3.4.1 Pathloss 31 3.7.3 Sơ đồ khối 37 3.7.4 Thuật toán 38 3.9.2 Gos 40 Trang iii Mục lục 3.9.4 Các công thức tính tốn .41 3.10 Kết luận 43 Chương 43 Tính Tốn Và Mô Phỏng Kết Quả 43 4.1 Giới thiệu chương 43 TÀI LIỆU THAM KHẢO 52 PHỤ LỤC .53 Trang iii Mục lục CÁC TỪ VIẾT TẮT 3G Third Generation Cellular Hệ thống thông tin di động hệ thứ ba 3GPP Third Generation Patnership Project Dự án hợp tác hệ A AC Admission Cotrol Điều khiển cho phép AICH Acquistion Indication Channel Kênh thị bắt B BER Bit Error Rate Tỷ số bit lỗi BCH Broadcast Channel Kênh quảng bá BS Base Station Trạm gốc BSC Base Station Controller Bộ điều khiển trạm gốc BTS Base Transceiver Station Trạm thu phát gốc C CDMA Code Division Multiple Access Đa truy cập phân chia theo mã CN Core Network Mạng lõi D DCH Delicated Channel Kênh riêng DL Down Link Hướng xuống DS-CDMA Direct Sequence Code Division DSSPC Đa truy nhập phân chia theo mã Multiple Access chuổi trực tiếp dynamic step-size power control Điều khiển công suất theo bước động DPCCH Delicated Physical Control Channel Kênh điều khiển vật lý Trang iv Mục lục DPDCH Delicated Physical Data Channel Kênh số liệu vật lý riêng E ETSI European Telecommunications Standard Institute Học viện viễn thông Châu Âu F FACH Forward Access Channel Kênh truy nhập đường xuống FDD Fequency Division DuplexGhép song công phân chia theo tần số FDMA Frequency Division Đa truy cập phân chia theo Multiple Access tần số G GGSN Gateway GPRS Support Node GPRS General Packet Radio Service Node dịch vụ GPRS Dịch vụ chuyển mạch gói vơ tuyến GoS Grade of Service Cấp độ phục vụ GSM Global System of Mobile Hệ thống thông tin di động Communication toàn cầu H HC Handover Control Điều khiển chuyển giao HLR Home Location Register Thanh ghi định vị thường trú I IMT-2000 ITU International Mobile Tiêu chuẩn viễn thông di Telecommunication động toàn cầu 2000 International Telecomunication Liên minh viễn thông quốc tế Union Trang v Từ viết tắt L LC Load Control Điều khiển tải M ME Mobile Equipment Thiết bị nhận dạng thuê bao MSC Mobile Services Switching Center Trung tâm chuyển mạch dịch vụ di dộng O OFDM Orthogonal Frequency Division Đa phân chia theo tần Multiple số trực giao P PC Power Control Điều khiển công suất PLMN Public Land Mobile Network Mạng di động mặt đất công Physical Random Access Channel Kênh truy nhập ngẫu nhiên cộng PRACH vật lý Q QoS Quality of Service Chất lượng dịch vụ R RACH Random Access Channel Kênh truy nhập ngẫu nhiên RAN Random Access Network Mạng truy nhập vô tuyến RNC Radio Network Controler Bộ điều khiển mạng vô tuyến RRC Radio Resource Control Điều khiển tài ngun vơ tuyến RRM Radio Resouce Management Quản lí tài nguyên vô tuyến tuyến Trang vi Từ viết tắt S SGSN Serving GPRS Support Node Node hỗ trợ chuyển mạch gói SIR Signal to Interference Ratio Tỷ số tín hiệu nhiễu SF Spreading Fator Hệ số trải phổ SHO Soft Hand Over Chuyển giao mềm T TDD Time Division Duplex Ghép song công phân chia theo thời gian TDMA Time Division Multiple Access Đa truy cập phân chia theo thời gian TPC Transmit Power Command Lệnh công suất phát U UE User Equipment Thiết bị người sử dụng UMTS Universal Mobile Hệ thống viễn thông di Telecommunication System động toàn cầu USIM UMTS Subscriber Indentity Module nhận dạng thuê bao Module UMTS UTRAN UMTS Terrestrial Radio Access Mạng truy nhập vô tuyến mặt đất UMTS V VLR Vistor Location Register Thanh ghi định vị tạm trú W WCDMA Wideband Code Division Multiple Access Đa truy cập phân chia theo mã băng rộng Trang vii Từ viết tắt LỜI GIỚI THIỆU Cùng với phát triển nghành công nghệ điện tử, tin học Công nghệ thông tin di động năm qua phát triển mạnh mẽ, cung cấp loại hình dịch vụ đa dạng đáp ứng nhu cầu ngày cao người sử dụng Kể từ đời vào cuối năm 1940 thông tin di động phát triển qua nhiều hệ tiến bước dài đường công nghệ Để đáp ứng nhu cầu ngày tăng số lượng lẫn chất lượng dịch vụ đặc biệt dịch vụ truyền số liệu đa phương tiện công nghệ băng rộng đời Với khả tích hợp nhiều dịch vụ, công nghệ băng rộng dần chiếm lĩnh thị trường viễn thơng Có nhiều chuẩn thơng tin di động hệ ba đề xuất, chuẩn WCDMA ITU chấp nhận triển khai số khu vực Hệ thống sử dụng công nghệ CDMA mục tiêu hướng tới hệ thống thơng tin di động tồn giới, điều cho phép thực tiêu chuẩn hóa giao diện vô tuyến công nghệ truyền thông không dây tồn cầu Điều khiển cơng suất hệ thống thông tin di động khâu quan trọng hệ thống sử dụng công nghệ CDMA, hạn chế ảnh hưởng hiệu ứng gần xa đến chất lượng dịch vụ thoại, dung lượng hệ thống khả chống lại fading vốn đặc trưng môi trường di động Điều khiển công suất cho hệ thống vô tuyến tế bào nghiên cứu tương đối chi tiết số cơng trình Với tầm quan trọng nên em định chọn đề tài: “Điều khiển công suất hệ thống thông tin di động hệ ba UMTS” để tìm hiểu Đồ án gồm chương với nội dung chương sau : Chương 1: “Hệ thống thông tin di động hệ ba UMTS” giới thiệu tổng quan vấn đề công nghệ WCDMA, cấu trúc mạng truy nhập vô tuyến Trang viii Từ viết tắt UMTS, sơ lược dịch vụ ứng dụng hệ thống hệ thống thông tin di động hệ thứ ba Chương 2: “Các kỹ thuật điều khiển công suất hệ thống thông tin di động hệ ba UMTS” trình bày ý nghĩa phân loại kỹ thuật điều khiển cơng suất Từ sâu vào phân tích kỹ thuật điều khiển công suất hệ thống thông tin di động hệ ba UMTS Chương 3: Nghiên cứu thuật toán điều khiển công suất cho hệ thống UMTS là: điều khiển công suất bước động DSSPC điều khiển công suất thích nghi ASPC Chương 4: “Kết tính tốn mơ phỏng” dựa quỹ đường truyền để tính tốn thơng số hai phương pháp điều khiển cơng suất Đồ án đưa phương thức tính tốn cụ thể để điều khiển cơng suất đường lên đồng thời kết thể thông qua chương trình mơ sử dụng ngơn ngữ lập trình C# Trong thời gian làm đề tài, em cố gắng nhiều song kiến thức thời gian hạn chế nên đồ án khơng tránh khỏi thiếu sót Em mong nhận phê bình, ý kiến đóng góp thầy bạn để đồ án hồn thiện Em xin chân thành cảm ơn giúp đở tận tình thầy Nguyễn Duy Nhật Viễn thầy bạn bè khoa để em hoàn thành đề tài Đà Nẵng, ngày 23 tháng 05 năm 2011 Trang ix Kết luận hướng phát triển đề tài PHỤ LỤC Trang 53 Kết luận hướng phát triển đề tài Trang 54 Kết luận hướng phát triển đề tài Chương trình nguồn form2 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; using System.Data.OleDb; using System.Runtime.InteropServices; using System.Diagnostics; namespace power_control_UMTS { public partial class Form2 : DevExpress.XtraBars.Ribbon.RibbonForm { public Form2() { InitializeComponent(); } public delegate void Getdata(double dt0,double dt1,double dt2,double dt3,double dt4,double dt5); public double R, Powbs, Ims_bs, Ibs_bs, It,Ith, SIRbd,SIRtarget,Powms,TS; public double siroptmax, siroptmin, sirmax, sirmin, betamax, betamin; public double testP3gpp, testPdsspc, testPaspc, testSIR3gpp, testSIRdsspc, testSIRaspc; public double sizemin, sizemax, ACF, AF,DF; public double[] TPC=new double[150000]; public double powdsspc, powaspc,sirdsspc,siraspc,I12,I144,I384; public int channel, l, select, testfr2, dau; public int[] N = new int[101]; public string[] erl = new string[101]; public double[] nhieu = new double[100]; public double tam,t3gpp,tdsspc,taspc,Achuan; public double[] tInh1=new double[100000]; public double[] tInh2=new double[100000]; public double[] tInh3=new double[100000]; private void Form2_Load(object sender, EventArgs e) { comboBoxEx1.Items.Add("12.2 kbps cho thoại"); comboBoxEx1.Items.Add("144 kbps cho real time data"); comboBoxEx1.Items.Add("384 kbps cho non real time data"); groupControl1.Hide(); groupControl2.Hide(); groupControl3.Hide(); groupControl4.Hide(); textEdit19.Text = "3.84"; } private void barStaticItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { Form1 present = new Form1(); present.Show(); } Trang 55 Kết luận hướng phát triển đề tài private void comboBoxEx1_SelectedIndexChanged(object sender, EventArgs e) { Random Pms = new Random(); Random tnhieuran = new Random(); Random ttu = new Random(); Random tmau = new Random(); select= comboBoxEx1.SelectedIndex; if (select == 0) { Achuan = 0.025; R = 12.2; //MS textEdit1.Text = "21"; textEdit2.Text = "0"; textEdit3.Text = "3"; textEdit21.Text = "5"; //BS textEdit12.Text = "-174"; textEdit11.Text = "5"; textEdit10.Text = "3"; textEdit9.Text = "18"; textEdit8.Text = "2"; textEdit4.Text = "4"; textEdit6.Text = "7.3"; textEdit7.Text = "3"; textEdit23.Text = "0.67"; textEdit24.Text = "0.65"; textEdit25.Text = "8"; textEdit5.Text = Convert.ToString(Pms.Next(1, int.Parse(textEdit1.Text) - 19)); } else { if (select == 1) { Achuan = 0.05; R = 144; textEdit1.Text = "24"; textEdit2.Text = "2"; textEdit3.Text = "0"; textEdit21.Text = "1.5"; //BS textEdit12.Text = "-174"; textEdit11.Text = "5"; textEdit10.Text = "3"; textEdit9.Text = "18"; textEdit8.Text = "2"; textEdit4.Text = "4"; textEdit6.Text = "4.2"; textEdit7.Text = "2"; textEdit23.Text = "1"; textEdit24.Text = "0.65"; textEdit25.Text = "15"; textEdit5.Text = Convert.ToString(Pms.Next(2, int.Parse(textEdit1.Text) - 20)); } else { Trang 56 Kết luận hướng phát triển đề tài Achuan = 0.075; select = 2; R = 384; textEdit1.Text = "24"; textEdit2.Text = "2"; textEdit3.Text = "0"; textEdit21.Text = "1"; //BS textEdit12.Text = "-174"; textEdit11.Text = "5"; textEdit10.Text = "3"; textEdit9.Text = "18"; textEdit8.Text = "2"; textEdit4.Text = "4"; textEdit6.Text = "7.3"; textEdit7.Text = "0"; textEdit23.Text = "1"; textEdit24.Text = "0.65"; textEdit25.Text = "0"; textEdit5.Text = Convert.ToString(Pms.Next(3, int.Parse(textEdit1.Text) - 19)); } } simpleButton2.Enabled = false; simpleButton3.Enabled = false; simpleButton4.Enabled = false; for (int k = 0; k < l; k++) { tInh1[k] = Ith + tnhieuran.Next(-10, 10) * Math.Sin(ttu.Next(0, 255)); tInh2[k] = Ith + tnhieuran.Next(-7, 7) * Math.Sin(ttu.Next(0, 255)); tInh3[k] = Ith + tnhieuran.Next(-5, 5) * Math.Sin(ttu.Next(0, 255)); } } private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { groupControl1.Show(); groupControl2.Show(); groupControl3.Show(); groupControl4.Show(); } private void simpleButton1_Click(object sender, EventArgs e) { if (select == && int.Parse(textEdit26.Text) > 80) MessageBox.Show("Số User Maximum 80 Vui lòng nhập lại!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); else if (select == && int.Parse(textEdit26.Text) > 11) MessageBox.Show("Số User Maximum 11 Vui lòng nhập lại giá trị!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); else if (select == && int.Parse(textEdit26.Text) > 6) MessageBox.Show("Số User Maximum Vui lòng nhập lại giá trị!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); else { Trang 57 Kết luận hướng phát triển đề tài //EIRRPmax textEdit13.Text = Convert.ToString(int.Parse(textEdit1.Text) + int.Parse(textEdit2.Text) - int.Parse(textEdit3.Text)); //Công suất nhiễu BS textEdit14.Text = Convert.ToString(Math.Round(int.Parse(textEdit11.Text) + int.Parse(textEdit12.Text) + 10 * Math.Log10(3840000), 2)); //Độ lợi xử lý PG textEdit22.Text = Convert.ToString(Math.Round(10 * Math.Log10(3840 / R), 2)); //Độ nhạy máy thu textEdit15.Text = Convert.ToString(float.Parse(textEdit14.Text) + float.Parse(textEdit10.Text) - float.Parse(textEdit22.Text) + float.Parse(textEdit21.Text)); //maximum pathloss textEdit16.Text = Convert.ToString(Math.Round(float.Parse(textEdit13.Text) + float.Parse(textEdit9.Text) - float.Parse(textEdit8.Text) - float.Parse(textEdit4.Text) float.Parse(textEdit15.Text), 2)); //suy hao cho phép textEdit17.Text = Convert.ToString(float.Parse(textEdit16.Text) + float.Parse(textEdit7.Text) - float.Parse(textEdit6.Text) - float.Parse(textEdit25.Text)); // Công suất thu BS double phu = Math.Round(float.Parse(textEdit17.Text), 0); Random lp = new Random(); float suyhao12, suyhao144, suyhao384, suyhao; suyhao12 = lp.Next(100, Convert.ToInt32(phu)); suyhao144 = lp.Next(100, Convert.ToInt32(phu) - 20); suyhao384 = lp.Next(90, 100); if (select == 0) suyhao = suyhao12; else if (select == 1) suyhao = suyhao144; else suyhao = suyhao384; Powbs = Math.Round(float.Parse(textEdit5.Text) + float.Parse(textEdit2.Text) - float.Parse(textEdit3.Text) - suyhao + float.Parse(textEdit9.Text) float.Parse(textEdit8.Text), 2); tam = float.Parse(textEdit2.Text) - float.Parse(textEdit3.Text) - suyhao + float.Parse(textEdit9.Text) - float.Parse(textEdit8.Text); //lưu lượng N user string A; A = (Achuan * float.Parse(textEdit26.Text)).ToString(); // phan truy cap data access try { int i = 1; OleDbConnection = new OleDbConnection(); con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source =./erlangB.mdb"; con.Open(); OleDbCommand comm = new OleDbCommand(); comm.Connection = con; comm.CommandText = "SELECT * FROM gos22;"; OleDbDataReader read = comm.ExecuteReader(); while (read.Read()) { N[i] = read.GetInt32(0); erl[i] = read.GetString(1); i = i + 1; } Trang 58 Kết luận hướng phát triển đề tài con.Close(); con.Dispose(); read.Close(); read.Dispose(); } catch (Exception ex) { MessageBox.Show(ex.Message); } int j; float t, k; for (j = 1; j = k) { channel = N[j]; textEdit20.Text = channel.ToString(); break; } } // nhiễu MS BTS Ims_bs = Powbs + 10 * Math.Log10(channel - 1) + 10 * Math.Log10(float.Parse(textEdit23.Text)) - 10 * Math.Log10(3840000); // nhiễu giao thoa trạm di động thuộc BTS khác Ibs_bs = Ims_bs + 10 * Math.Log10(1 / float.Parse(textEdit24.Text) - 1); // nhiễu tổng MS It = 10 * Math.Log10(Math.Pow(10, 0.1 * Ims_bs) + Math.Pow(10, 0.1 * Ibs_bs)); // tổng hợp thêm nhiễu nhiệt Ith = Math.Round(10 * Math.Log10(Math.Pow(10, 0.1 * It) + Math.Pow(10, 0.1 * -169)), 2); // Tính SIR ban đầu SIRbd = Math.Round(float.Parse(textEdit22.Text) + Powbs - Ith - 10 * Math.Log10(3840000) - 30, 3); // Tính SIR target SIRtarget = float.Parse(textEdit21.Text) - float.Parse(textEdit22.Text); textEdit20.Text = SIRtarget.ToString(); Powms = float.Parse(textEdit5.Text); // progressBar1.Minimum = 0; //và cho phép nấc chạy đến giá trị tối đa 2000 sử dụng thuộc tính Maximum //khởi tạo giá trị ban đầu cho progress bar sử thuộc tính Value progressBar1.Value = 0; //khoảng tăng nấc ProgressBar Random nhieuran = new Random(); Random tu = new Random(); Random mau = new Random(); double Inh; l = int.Parse(textEdit18.Text); progressBar1.Maximum = l; progressBar1.Step = 1; Trang 59 Kết luận hướng phát triển đề tài sirmax = SIRtarget +2 ; sirmin = SIRtarget - 2; siroptmax = SIRtarget + Math.Abs(SIRtarget/100); siroptmin = SIRtarget - Math.Abs(SIRtarget / 100); betamax = 2; betamin = 0.5; powaspc = Powbs; powdsspc = Powbs; sirdsspc = SIRbd; siraspc = SIRbd; I12 = Ith; I144 = Ith; I384 = Ith; ACF = 10; DF = 1; TPC[0] = 1; sizemin = 0.5; sizemax = 2; //lấy lại tham số cho tính time testP3gpp = Powbs; testPdsspc = Powbs; testPaspc = Powbs; testSIR3gpp = SIRbd; testSIRdsspc = SIRbd; testSIRaspc = SIRbd; for (int s = 0; s < l; s++) { progressBar1.PerformStep(); // tính theo 3gpp1 if (SIRbd < SIRtarget) { Powbs = Powbs + 1; } else { Powbs = Powbs - 1; } // tính theo dsspc if (sirdsspc > sirmax) powdsspc = powdsspc - betamax; else { if (siroptmax < sirdsspc && sirdsspc sirmax) { tpeta = betamax; ttpc = -1; } else { if (siroptmax < testSIRdsspc && testSIRdsspc

Ngày đăng: 09/05/2019, 14:08

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] TS Nguyễn Phạm Anh Dũng, “Giáo trình thông tin di động”, Nhà xuất bản Bưu Điện, 02- 2003 Sách, tạp chí
Tiêu đề: Giáo trình thông tin di động
Nhà XB: Nhà xuất bảnBưu Điện
[2] Heikki Kaaranen, Ari Ahtiainen, Lauri Laitinen, “UMTS Networks, Architecture, Mobility and Service”, Jonh Wiley &amp; Son, Ltd, 2001 Sách, tạp chí
Tiêu đề: UMTS Networks,Architecture, Mobility and Service
[3] Chris Braithwaite and Mike Scott, “UMTS Network Planning and Development”, Elsevier, 2004 Sách, tạp chí
Tiêu đề: UMTS Network Planning andDevelopment
[4] Harri Holma and Antti Toskala, “WCDMA FOR UMTS – HSPA EVOLUTION AND LTE, Fourth Edition”, Jonh Wiley &amp; Son, Ltd, 2007 Sách, tạp chí
Tiêu đề: WCDMA FOR UMTS – HSPAEVOLUTION AND LTE, Fourth Edition
[5] Rudolf Tanner and Jason Woodard, “WCDMA – Requirements and Practical Design”, Jonh Wiley &amp; Son, Ltd, 2004 Sách, tạp chí
Tiêu đề: WCDMA – Requirements and PracticalDesign
[7] Savo G. Glisic, “Adaptive WCDMA Theory and Practice”, Jonh Wiley &amp; Son, Ltd, 2003 Sách, tạp chí
Tiêu đề: Adaptive WCDMA Theory and Practice
[8] Jaana Laiho and Achim Wacker, “Radio Network Planning and Optimisation for UMTS Second Edition”, Jonh Wiley &amp; Son, Ltd, 2006 Sách, tạp chí
Tiêu đề: Radio Network Planning and Optimisationfor UMTS Second Edition
[9] Siamọk Naghian 1, Matti Rintamọki 2, Ramin Baghaie, Nokia Networks, P.O.Box 301, FIN-00045 Nokia Group, Finland, siamak.naghian@nokia.com,“DYNAMIC STEP-SIZE POWER CONTROL IN UMTS” Sách, tạp chí
Tiêu đề: DYNAMIC STEP-SIZE POWER CONTROL IN UMTS
[10] Gang Luo and Lian Zhao,Department of Electrical and Computer Engineering Ryerson University, Toronto, ON, Canada, M5B 2K3, “A Novel Dynamic Stepsize Power Control Algorithm for UMTS W-CDMA Systems”, 2006 Sách, tạp chí
Tiêu đề: A Novel Dynamic StepsizePower Control Algorithm for UMTS W-CDMA Systems
[11] Rachod Patachaianand, Kumbesan Sandrasegaran, Institute of Information and Communication Technologies and Faculty of Engineering University of Technology Sydney, “A New Adaptive Power Control Algorithm for UMTS” Sách, tạp chí
Tiêu đề: A New Adaptive Power Control Algorithm for UMTS

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w