LUẬN VĂN: Thiết kế chế tạo và thử nghiệm bộ điều khiển LinDrive
lượt xem 17
download
Báo cáo sẽ bao gồm 03 phần: Phần I: Trình bày những tìm hiểu xung quanh đối tượng động cơ thực tế sử dụng. Lý do của việc này là: Khi mua động cơ từ hãng cung cấp LinMot, bộ truyền động động cơ tuyến tính đã bao gồm compact một hệ thống động cơ+drive+phần mềm. Do vậy, các tài liệu hãng cung cấp chủ yếu trên quan điểm dành cho người sử dụng, lập trình ứng dụng (application). Các thông số về điện của động cơ là hết sức khiêm tốn, gây khó khăn nhất định cho công...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: LUẬN VĂN: Thiết kế chế tạo và thử nghiệm bộ điều khiển LinDrive
- LUẬN VĂN Thiết kế chế tạo và thử nghiệm bộ điều khiển LinDrive -1-
- GIỚI THIỆU Báo cáo sẽ bao gồm 03 phần: Phần I: Trình bày những tìm hiểu xung quanh đối tượng động cơ thực tế sử dụng. Lý do của việc này là: Khi mua động cơ từ hãng cung cấp LinMot, bộ truyền động động cơ tuyến tính đã bao gồm compact một hệ thống động cơ+drive+phần mềm. Do vậy, các tài liệu hãng cung cấp chủ yếu trên quan điểm dành cho người sử dụng, lập trình ứng dụng (application). Các thông số về điện của động cơ là hết sức khiêm tốn, gây khó khăn nhất định cho công việc tiến hành thiết kế chế tạo và thử nghiệm bộ điều khiển LinDrive. Phần II: trình bày những thao tác thực hiện thực nghiệm đối với mạch thiết kế theo phiên bản lần 1. Tuy nhiên, thực nghiệm cho thấy thiết kế này là không phù hợp với điều kiện nghiên cứu ban đầu. Thiết kế này sẽ phù hợp hơn trong điều kiện các nghiên cứu trước đó đã cho kết quả ổn định, cần tinh giảm linh kiện, hạ giá thành phù hợp cho thương phẩm. Phần III trình bày các cải tiến trong mạch thiết kế lần 2, trong đó bổ xung các mạch bảo vệ điện tử công suất, mạch CPLD để thay đổi linh hoạt phương thức kết hợp giao hoán các kênh điều khiển, các kết quả đo thực tế. -2-
- PHẦN I: THÔNG SỐ ĐỘNG CƠ VÀ CẢM BIẾN ĐI KÈM Các thông số được kèm theo catalog sản phẩm có như sau: Thông số Giá trị Đơn vị Lực tác động 39 (8,77) (Ibf/A) Dòng điện cực đại 15 A Điện trở pha 25/80°C 3.1/3.7 Ω Điện cảm pha 3.1 mH Loại sensor vị trí Sine/cosine Tốc độ cực đại 1.7 m/s Đường kính stator 48 mm Chiều dài stator 290 Mm Chiều dài slider 630 mm Các thông số trên đây rất khiêm tốn. Đặc biệt gần như không có thông tin về cảm biến vị trí gắn liền với động cơ. Thông tin cảm biến có được là: Cảm biến dạng cách ly hiệu ứng Hall Là dạng có chu kỳ lặp lại sin/cos Được cấp điện áp vào là 5V. Có hai kênh điện áp ra, không có tín hiệu zero -3-
- Để có thể tìm hiểu cảm biến, nhóm nghiên cứu đã nối động cơ vào bộ điều khiển của chính hãng, lập trình để slider chuyển động theo quỹ đạo lặp lại với một tốc độ không đổi. Sử dụng chức năng quan sát bằng đồ thị (dữ liệu thu thập qua cổng COM RS232), thu được kết quả sau: Hình 1.1: Thí nghiệm cảm biến vị trí Trong đó Đường 1: Tín hiệu Sine Đường 2: Tín hiệu Cosine Đường 3: Góc chuyển mạch Đường 4: Vị trí tính toán -4-
- Sine Cosine 4.5V Sine_s = 2.5V Cosine_s=0.5V 2.5V Hướng trái 60mm (60/540mm length) Phương pháp thử nghiệm: - Cấp nguồn 5V cho mạch sensor của động cơ - Dịch chuyển động cơ về cực hạn trái (điểm lấy mốc, khuyên sắt) - Dịch chuyển từ từ rotor sang trái (hướng người nhìn), đo max, min, bước của hai tín hiệu sensor 0.5V 0.3V Cực hạn trái (cơ khí) Hình 1.2: Tương quan tín hiệu cảm biến và vị trí thực Từ các thí nghiệm, có kết luận về cảm biến vị trí như sau: Điện áp nguồn nuôi 5V, điện áp ra là tín hiệu sine theo vị trí, có giá trị min = 0.5V, max=4.5V. Điểm zero của tín hiệu sine là điện áp 2.5V Tín hiệu sine và cosine đúng lệch pha nhau π/2. Chu kỳ của tín hiệu sine/cosine phản ánh bước cực nam châm trên thanh slider. Mỗi cặp cực nam châm có chiều dài 60mm, tổng hành trình là 540mm (09 cặp). Từ thông số cảm biến có được, mạch phần cứng để nhận tín hiệu vị trí được tính toán như sau: -5-
- Hình 1.3: Trị số linh kiện cho mạch nhận tín hiệu cảm biến Tầng khuếch đại đầu bao gồm hai khuếch đại thuật toán U701A và U701B tạo thành mạch khuếch đại vi sai, hệ số khuếch đại là 1:1, mục đích tạo trở kháng cao đầu vào. Tầng thứ hai là tầng khuếch đại với hệ số khuếch đại là 5:3. Trong đó giá trị cực đại điện áp vào chọn là 5V, giá trị điện áp ra cực đại là 3V. Chọn R705 và R706 là điện trở 10k, vậy R hồi tiếp cần có là 6k. Tuy nhiên, điện trở 6k là loại linh kiện hiếm nên chọn giải pháp mắc song song hai điện trở 12k. Tụ C705 đóng vai trò chính trong mạch lọc thông thấp. Điện trở R713 và diode zener D704 đóng vai trò mạch bảo vệ điện áp vào kênh ADC của DSP. //ADCINA2, Sensor Sine RawData = (AdcRegs.ADCRESULT4>>4)&0x0FFF; // Remove 4 LSB unused bits Tmp = (float)(RawData*3.0)/4095.0; // Scale to 0-3V, integer calculating Tmp = Tmp*5/3; // Scale to 0-5V, float calculating Tmp = Tmp - 2.5; // Zero point is 2.5V if (Tmp>2.0) Tmp=2.0; // high limit -6-
- if (TmpfSinValue=Tmp; //ADCINB2, Sensor Cosine RawData = (AdcRegs.ADCRESULT5>>4)&0x0FFF; // Remove 4 LSB unused bits Tmp = (float)(RawData*3.0)/4095.0; // Scale to 0-3V, integer calculating Tmp = Tmp*5/3; // Scale to 0-5V, float calculating Tmp = Tmp - 2.5; // Zero point is 2.5V if (Tmp>2.0) Tmp=2.0; // high limit if (TmpfCosValue=Tmp; Hình 1.4: Đoạn chương trình tính toán với cảm biến vị trí PHẦN II: THỰC HIỆN MẠCH LINDRIVE, V1.2 1. Vấn đề tụ boostrap: Điểm nổi bật của mạch điều khiển động cơ tuyến tính này là mạch công suất sử dụng hai cầu H (H-bridge) với phương án điều khiển van bằng kiểu mạch boostrap. -7-
- Hình 2.1: Mạch điều khiển van Boostrap Căn cứ vào tài liệu “AN-978: HV Floating MOS-Gate driver ICs”, trang 6, tính toán tụ boostrap như sau Tụ bootstrap trong mạch trên là tụ C532, tác dụng tạo ra một điện áp chênh so với VBUS để có thể mở van phía áp cao hơn Q531. Tụ được nạp trong thời gian van Q531 off, với giả thiết lúc đó van Q532 on, kéo thế chân Vs của IC U504 xuống GND (cho phép chênh thế 5V Vs-GND). Dòng nạp chảy từ Vcc(15V) qua diode D531 và trở R531 (Diode xung). Các yếu tố sau ảnh hưởng đến giá trị điện dung tụ bootstrap: Điện áp ngưỡng mở cửa Gate của van IQBS Dòng tiêu thụ tĩnh quiescent current khi không có xung PWM Dòng của mạch nâng áp Dòng rò tiếp giáp gate-source Dòng rò tụ bootstrap Riêng dòng rò tụ bootstrap chỉ đáng để ý khi dùng tụ hóa. Trong trường hợp không cần thiết, không nên dùng tụ hóa. Loại tụ không-hóa (gốm…) có thể bỏ qua Công thức tính như sau: -8-
- I I 2 2Qg qbs ( max) Qls Cbs ( leak ) f f C Vcc V f VLS VMin Q g = Điện tích nạp high-side FET, IRF37100 là 130nC f = tần số điều chế, dự kiến f=10kHz ICbs(leak)= Dòng rò tụ. Bỏ qua vì dùng tụ dán Iqbs(max) = Dòng tĩnh cực đại của IC driver, IR2101 là 55uA V cc = Điện áp nguồn nạp tụ, thiết kế 15V V f = Điện áp rơi trên diode nạp. Trong trường hợp mạch trên khó xác định vì bao gồm cả điện áp rơi trên trở R531. Tạm lấy Vf là 1V V LS = Điện áp giữa chân 6 của driver IC với GND. Trong trường hợp mạch trên là điện áp rơi trên FET IR3710: RDS x IDSmax = 23mΩ x 57A ≈ 1.3 V VMin = Hiệu điện thế tối thiểu giữa VB và VS, IR2101 là 9V Q ls= Điện tích để dịch mức (thường 5nC với loại dùng VBUS 600V, 20nC với loại 1200V). Lấy 5nC Kết luận: 55 106 2 2 130 10 9 3 5 10 9 10 10 C 146 nF 15 1 1.3 9 Dùng tụ nhỏ hơn: Không mở được van Dùng tụ lớn hơn nhiều: Hỏng diode xung Chọn tụ: 224 hoặc 474 hoặc 105 2. Vấn đề kỹ thuật nạp trình lên flash on-chip của TMS320F2812: TMS320F2812 có 03 vùng nhớ để chứa chương trình do người dùng viết và nạp vào là: Vùng nhớ SRAM-H0 (8k x 16): Nạp chương trình chạy tạm thời, bị xóa khi ngắt nguồn cung cấp -9-
- Vùng nhớ Flash (128k x 16): Không bị hủy chương trình khi ngắt nguồn Vùng nhớ ngoài XINTF: Giống như ROM ngoài với vi điều khiển 8 bit truyền thống. Việc DSP chọn vùng nhớ nào để lấy chương trình khởi động phụ thuộc vào một số chân chọn của chip. Trên thiết kế, các chân này đã được nối với các jumper chuyển để người dùng có thể chuyển chế độ boot. Khi nạp chương trình vào Flash, người dùng phải chuyển jumper sang vị trí chạy như sau để DSP có thể khởi động khi cấp nguồn Để nạp chương trình xuống DSP vào vùng Nhớ Flash hoặc SRAM-H0, phải thông qua giao diện JTAG. Có 02 phương thức để thực hiện việc này: Dùng bộ “XDS510 USB JTAG Emulator” và các phần mềm SDConfig, SDFlash. Bộ “XDS510 USB JTAG Emulator” có một jack cắm vào cổng USB của máy tính, một jack 7x2 chân cắm vào card (xem trên trang http://www.spectrumdigital.com) Trên card đã tích hợp sẵn chip JTAG để người dùng có thể nạp chương trình, debug thông qua giao diện LPT (máy in) trên PC bằng phần mềm Code Composer Studio (CCS) do Texas cung cấp. Tuy nhiên để CCS (của Texas) có thể giao tiếp với card ezDsp (của hãng Spectrum Digital) cần có driver riêng, được download từ trang web http://www.spectrumdigital.com. - 10 -
- Chú ý: phải download đúng version giữa CCS và driver. Ví dụ, CCS có version là 3.1 thì driver lấy tại http://support.spectrumdigital.com/ccs31. Sau khi download, người dùng cần cài đúng vào vị trí cài đã cài CCS. Ngoài ra, cần download plugins tại https://www- a.ti.com/downloads/sds_support/C2000-3.1-SA-to-UA-TI- FLASH2X.htm Sau khi cài đặt plugins, có thể kiểm tra trực tiếp sự tồn tại của thư mục mới Flash28xx như dưới đây: Thiết lập môi trường cho Code Composer: CCS là phần mềm giao diện phát triển cho nhiều loại chip của Texas. Vì vậy, trước khi chạy phải thiết lập loại chip cần thiết. Bước thực hiện: Chạy Code Composer Setup (từ Start Menu hoặc Desktop) - 11 -
- Từ tab “Factory Boards”, chọn mục “F2812 eZdsp” sau đó nhấn nút “
- *.cmd. Một project có thể có một hoặc nhiều file *.cmd định nghĩa tên các vùng nhớ và địa chỉ cho các struct. Chương trình viết để chạy từ SRAM và chạy từ Flash về cơ bản không có khác biệt (ngoại trừ file *.cmd). Tuy nhiên, nếu hàm trong chương trình dùng tác động lên chính bộ nhớ Flash (ví dụ: khởi tạo các thanh ghi cho bộ nhớ Flash), bắt buộc phải chạy từ SRAM. Khi ấy, cần viết đoạn chương trình để copy code đoạn chương trình từ Flash sang SRAM để chạy (chi tiết xin tham khảo tài liệu SPRC097 của Texas). Các bước thực hiện nạp chương trình lên bộ nhớ Flash: Bước 1: Thêm file “f2812.cmd” vào chương trình Mở chương project chương trình, loại bỏ tất cả các file *.cmd (nếu có) khỏi project bằng cách trỏ chuột chọn sau đó nhấn phím DEL trên bàn phím. Dùng chức năng Project/Add Files to Project... để thêm file F2812.cmd vào project. File này được cung cấp theo các ví dụ về điều khiển động cơ (download từ trang của Texas). Bước 2: Kết nối với board DSP Dùng chức năng Debug/Connect hoặc nhấn Alt-C để Code Composer nối với card thông qua cổng LPT (chuyển thành JTAG nhờ chip JTAG). Nếu kết nối thành công, giao diện như sau - 13 -
- Các biểu tượng Run và Animate sẽ được active (màu xanh). Khi đó, board eZdsp đã sẵn sàng nhận chương trình. Bước 3: Nạp chương trình Biên dịch chương trình để có được file đuôi *.out Dùng chức năng Tool/F28xx On-chip Flash Programer hoặc nhấn nút tương ứng trên Toolbar để xuất hiện cửa sổ nạp trình Các thông số của cửa sổ này nên giữ nguyên như mặc định, trong đó chú ý: - 14 -
- Tốc độ thạch anh OSCCLK là: 30MHz Thông số PLLCR là: 10 Chế độ nạp là : “Erase, Program, Verify” Nhấn nút “Flash Programer Setting...” để xuất hiện cửa sổ sau Để nạp được chương trình xuống Flash, Code Composer không nạp được trực tiếp mà phải thông qua một chương trình khác nạp trước xuống SRAM. Chương trình này tiếp nhận file *.out người dùng muốn nạp xuống Flash và ghi chúng xuống Flash. Vì vậy, quá trình này yêu cầu thao tác xóa/ghi/kiểm tra Flash. Texas Instrument gọi đó là Algorithm. Người nạp phải xác định file này cho chương trình thông qua cửa sổ “Flash Programmer Settings” trên đây. Nhấn vào nút “Browse...” để trỏ đến file algorithm (cũng là một file *.out). Trong trường hợp kiểm tra không thấy thư mục: CCS Dir\ plugins\Flash28xx\Algorithms\2812\ nghĩa là Plugins cho eZdsp chưa được cài đặt hoặc cài đặt không đúng. Nhấn OK để quay lại cửa sổ “On-chip Flash Programer”, nhấn nút “Execute Operation” và đợi đến khi quá trình nạp kết thúc. Chú ý: Trong quá trình nạp nếu mất điện sẽ khó có khả năng truy cập lại bộ nhớ Flash, do vùng Password bị ghi mọt giá trị bất kỳ. - 15 -
- 3. Các tồn tại của thiết kế LinDrive, v1.2: Sau khi lập chương trình thử nghiệm điều chế đơn giản, nạp xuống flash on-chip để đo đạc thử nghiệm, nhóm nghiên cứu phát hiện thấy rằng thiết kế có rất nhiều khiếm khuyết. Cụ thể như sau: Sử dụng IR2101 làm IC driver cho van công suất theo kiểu mạch boostrap là không hợp lý. Các van mở không được khóa chéo, hậu quả dẫn đến thông mạch VBUS-GND mỗi khi điều chế sai, kích thích nhiễu, sự cố nguồn.. Nên sử dụng thêm một IC CPLD, ví dụ như GAL16V08. Các tụ cùng loại CF611, C532 sai kích cỡ linh kiện trên mạch in Các IC PC817, phần mạch digital input, chân 3-4 bị chéo (nhầm từ bản vẽ nguyên lý) Các driver không dùng nguồn cách ly mà sử dụng kỹ thuật boostrap. Khi thử nghiệm không an toàn, điện áp cao có thể xâm nhập vào IC driver khi van bị đánh thủng dẫn đến điện áp cao xâm nhập phần mạch logic, phá hỏng hàng loạt linh kiện. Thực tế đã phá hỏng 03 card ezDsp. Kênh sin/cos encoder không cần thiết có diode phía đầu khuếch đại thuật toán vì ngưỡng điện áp tối thiểu đã là 0.5V (tối đa 4.5V) Việc đưa tín hiệu PWM ra theo dạng đảo, thông qua IC 74HCT14 (mục đích đảm bảo mức zero khi bị trạng thái “treo”) là không hợp lý. Nguyên nhân: tuy chân PWM của DSP có thể định nghĩa mức tích cực là high hoặc low. Tuy nhiên, phần deadtime chỉ được tính là một số dương, nghĩa là cho phép kênh sau (ví dụ PWM2) mở sau kênh trước (VD PWM1). Nếu nghịch đảo, xung kênh trước và sau trở thành chồng nên nhau (ngắn mạch DC bus). - 16 -
- Hình 2.2: Overlap xung điều khiển Phần nguồn sử dụng mạch ngoài không được hợp lý. Khi cấp nguồn, phần DSP cấp riêng, phần Driver cấp riêng dẫn đến không biết trước nguồn nào được cấp trước, nguồn nào sau dẫn đến có thể có trạng thái không xác lập không mong muốn, có thể dẫn đến sự cố. Phần cấp nguồn cho cảm biến dòng điện pha chưa có chân GND (Lỗi thiết kế). Chính vì những khiếm khuyết cơ bản trên của mạch nên nhóm quyết định thiết kế lại, bổ xung thêm các chức năng hợp lý và sửa chữa các khuyết tật của mạch LinDrive v1.2 - 17 -
- PHẦN III: PHẦN THỬ NGHIỆM MẠCH LINDRIVE V2.1 Các thay đổi trên thiết kế mới: Thiết kế lại phần nguồn cấp. Chuyển phương án mạch drive cho các van công suất từ phương án kiểu boostrap sang phương án dùng IC drive có bảo vệ quá dòng. Bổ xung vào mạch điều chế phần tử logic lập trình được CPLD làm nhiệm vụ khóa chéo kênh điều chế (interlock), hoán đổi kênh điều chế linh hoạt. Bổ xung các sai sót thiết kế cũng như sai sót thực hiện layout mạch. 1. Thiết kế lại phần nguồn: Bao gồm: Nguồn cấp cho board mạch DSP, các IC logic họ TTL Nguồn cách ly cho từng van riêng biệt Phần nguồn cấp cho các IC họ CMOS và tạo áp chuẩn cho ADC giữ nguyên phương án cũ. Hình 3.1: Mạch phía sơ cấp các cuộn biến áp Mạch nguồn thiết kế theo phương án push-pull half-bridge (kéo/đẩy) Tính toán tần số: - 18 -
- 1 1 f 71.5kHz 1.4 ( RT 150) CT 1.4 (10 150) 109 4 Thực tế kiểm tra: Hình 3.2: Điện áp sơ cấp biến áp push-pull Phần mạch tạo nguồn vi sai +/-15V cho các IC loại Op-Amp và nguồn 5V cho các IC TTL, đồng thời cấp cho mạch DSP như sau: Hình 3.3: Nguồn cho Op-Amp và TTL - 19 -
- Thực hiện mạch trong thực tế: Hình 3.4: Hình ảnh phần mạch nguồn Khi thực hiện thử nghiệm phiên bản LinDrive1.2 thấy rằng: Việc cách ly tín hiệu điều khiển đến van (xung PWM) là không đủ. Khi có sai sót thí nghiệm, van bị đánh thủng và ở trạng thái ba cực G-S-D thông nhau. Điện áp cao từ mạch lực, theo đường nguồn cấp cho IC drive đưa vào phá hủy các phần khác trong mạch. Phiên bản LinDrive2.1 thiết kế phần nguồn cách ly cho từng van riêng biệt và cũng sử dụng duy nhất một IC tạo xung push-pull phía sơ cấp. Phần tử công suất chịu dòng lớn sử dụng 02 van MOSFET loại IRF640. - 20 -
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Thiết kế hệ thống dẫn động băng tải
62 p | 550 | 146
-
Luận văn Thiết kế hệ thống xử lý nước thải nhà máy chế biến thủy sản đông lạnh với năng suất 8 tấn sản phẩm/ngày
53 p | 583 | 134
-
Luận văn- Thiết kế hệ thống dẫn động băng tải
62 p | 630 | 132
-
Luận văn: Thiết kế và chế tạo mạch nghịch lưu một pha
77 p | 377 | 129
-
Luận văn: Thiết kế cung cấp điện cho khu nghỉ dưỡng tổng hợp Sông Giá
75 p | 260 | 73
-
Luận văn: Thiết kế bộ điều chế và giải điều chế 16QAM và ứng dụng vào hệ thống CO-OFDM
69 p | 211 | 62
-
Luận văn Thiết kế bộ đo và khống chế nhiệt độ hiển thị bằng led 7 đoạn
24 p | 217 | 60
-
Luận văn : Thiết kế máy biến áp thử nghiệm
105 p | 199 | 52
-
Luận văn: Thiết kế cung cấp điện cho Nhà máy Đóng tàu Hoàng Gia – Phân xưởng Chế Tạo Nắp Hầm Hàng
121 p | 132 | 30
-
Luận văn: Thiết kế xây dựng mô hình đóng mở cửa tự động tại các tòa nhà
65 p | 152 | 22
-
Báo cáo tổng kết đề tài NCKH cấp Bộ: Nghiên cứu, thiết kế, chế tạo các module phục vụ đo lường giám sát trong trạm khí tượng tự động
134 p | 96 | 15
-
Luận văn: Luận văn Hoàn thiện kế toán chi phí tại Công ty Cổ Phần Tư Vấn Thiết Kế Giao Thông Vận Tải Phía Nam
141 p | 97 | 12
-
Luận văn Thạc sĩ Kỹ thuật điện tử: Nghiên cứu ứng dụng vi điều khiển AVR để thiết kế chế tạo bộ inverter trong hệ thống năng lượng mặt trời dùng làm nguồn dự phòng
80 p | 49 | 12
-
Luận văn Thạc sĩ Quản lý xây dựng: Nghiên cứu giải pháp hoàn thiện năng lực tư vấn thiết kế tại công ty tư vấn thiết kế 36.69-Tổng công ty 36 - Công ty cổ phần
100 p | 40 | 11
-
Luận văn Thạc sĩ: Thiết kế, chế tạo bộ khuếch đại tạp âm thấp với cơ chế bảo vệ dùng cho radar sóng centimet
63 p | 60 | 7
-
Luận văn Thạc sĩ Kỹ thuật nhiệt: Nghiên cứu thiết kế chế tạo động cơ Stirling chạy bằng năng lượng mặt trời có công suất nhỏ
94 p | 13 | 4
-
Luận văn Thạc sĩ Kỹ thuật cơ điện tử: Thiết kế chế tạo cảm biến đo lực bước đi
89 p | 11 | 4
-
Tóm tắt luận án Tiến sĩ: Nghiên cứu thiết kế chế tạo vi cảm biến vận tốc góc âm thoa và cảm biến gia tốc kiểu tụ
24 p | 85 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn