Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 89 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
89
Dung lượng
2,76 MB
Nội dung
Ha Noi university of industry FEE2-K2 BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA : ĐIỆN TỬ NGHIÊNCỨU,MÔPHỎNGHOẠTĐỘNGCỦATIMER,INTERRUPT,ADC,UARTS,SSI,I2C,CANTRÊNVIĐIỀUKHIỂNARMCORTEX-M3LM3S8962CỦAHÃNGTEXASINTSTRUMENTS Giáo viên hướng dẫn: Phạm Văn Chiến Sinh viên thực hiện: Nguyễn Văn Tấn Trương Đình Hà Lớp: ĐH CNKT ĐT2- K2 Hà Nội – 06/201 _________________________________________________________________________ Faculty of Electronics Engineering Ha Noi university of industry FEE2-K2 Mục lục Chương V. Giao diện liên vi mạch (I2C) 42 Chương VII : Bộ chuyển đổi tương tự - số (ADC) 69 7.4 Bản đồ thanh ghi 77 Chương VIII: UARTs 79 8.1 Sơ đồ khối 80 8.2 Mô tả chức năng 80 8.2.2 Tốc độ baud 81 _______________________________________________________________________ Faculty of Electronics Engineering 1 Ha Noi university of industry FEE2-K2 Lời mở đầu Ngày nay, các dòngviđiềukhiển ngày càng có vị trí quan trọng trong các lĩnh vực điện tử, không khó để nhận ra rằng hầu hết trong các lĩnh vực đời sống có sự tham gia củaviđiều khiển. Có nhiều ho viđiềukhiển để chúng ta nghiêncứu, tìm hiểu và ứng dụng như: 8051, PIC, PSoc, AVR… Trong nhiều năm trước, các dòngviđiềukhiển 8051 được sinh viên sử dụng nhiều với tính năng đơn giản, dễ sử dụng; AVR được sử dụng nhiều trong các cuộc thi Robocon nhờ tốc độ xử lý khá cao, ổn định; PIC với ưu thế tốc độ cao, chi phí thấp hơn cũng được nghiêncứu, sử dụng nhiều, đặc biệt là trong các cuộc thi lập trình tay nghề khu vực và thế giới… Nhưng trong một vài năm trở lại đây, có một dòngviđiềukhiển mới, càng ngày càng nắm vị trí quan trọng trong các lĩnh vực đòi hỏi tốc độ xử lý cao như điện tử viễn thông, giám sát, an ninh… Đó là họ viđiềukhiển ARM. Với rất nhiều thế hệ đã ra đời, với nhiều tính năng, công dụng khác nhau. Tình hình nghiên cứu ở nước ngoài: Chíp ARM được nghiên cứu phát triển và ứng dụng rất rộng rãi trong đo lường và điều khiển. Đặc biệt chíp ARM được nghiên cứu ứng dụng để sản xuất các thiết bị cầm tay như điện thoại, máy ảnh và các thiết bị đòi hỏi tốc độ xử lý cao như tivi, các thiết bị xử lý tín hiệu số… Các hãng sản xuất chíp đã đưa vào rất nhiều các ngoại vi để phục vụ mục đích giao tiếp, đo lường và điềukhiểncủa ngưởi phát triển các ứng dụng. Tình hình nghiên cứu ở trong nước: Chíp ARM đã được các cá nhân và một cố công ty nghiêncứa và ứng dụng, Nhưng chưa được trường nào đưa vào để giảng dạy cho sinh viên. Bởi vì nó có kiến trúc phức tạp, nhiều chuẩn giao tiếp và tài nguyên hiện đại mà chưa được nghiên cứu rộng rãi để ứng dụng. Với nhiều tính năng vượt trội củaARM và xu thế lựa chọn dòngviđiềukhiển mới ở Việt Nam nên trong đề tài nghiên cứu khoa học này, dưới sự giúp đỡ của Thầy Phạm Văn Chiến, chúng tôi thực hiện đề tài nghiên cứu về chip ARM Cortex M3 LM3S8962củahãngTexas Instruments. _______________________________________________________________________ Faculty of Electronics Engineering 2 Ha Noi university of industry FEE2-K2 Trong giới hạn thời gian cho phép, đồng thời có hạn chế về nguồn tài liệu và hỗ trợ nghiêncứu, đề tài nghiên cứu của tôi còn nhiều thiếu sót, còn nhiều lỗi kỹ thuật trong báo cáo, nên rất mong được sự đóng góp ý kiến của Hội đồng bảo vệ và các thầy cô để đề tài nghiên cứu của chúng tôi được hoàn thiện hơn. Cuối cùng chúng tôi xin chân thành cảm ơn thầy Vũ Trung Kiên, thầy Phạm Văn Chiến, thầy Nguyễn Văn Tùng, các thầy cô trong khoa Điện Tử và anh Nguyễn Xuân Kiên- đại diện TI Việt Nam đã giúp chúng tôi hoàn thành đề tài nghiên cứu này! Nhóm sinh viên thực hiện Nguyễn Văn Tấn Trương Đình Hà _______________________________________________________________________ Faculty of Electronics Engineering 3 Ha Noi university of industry FEE2-K2 Chương I: Tổng quan kiến trúc ARM Cortex M3 Các dòngviđiềukhiển Stellaris – ARM ® ™ Cortex-M3 đầu tiên - mang lại những ứng dụng viđiềukhiển nhúng hiệu suất cao 32-bit. Những bộ phận tiên phong cung cấp cho khách hàng 32-bit hoạtđộng tại một chi phí tương đương với các viđiềukhiển kế thừa 8 bit và 16bit Các Stellaris cung cấp hiệu suất hiệu quả và hội nhập sâu rộng, thiết bị định vị thuận lợi với chi phí hợp lý, các ứng dụng đòi hỏi phải kiểm soát quá trình đáng kể và khả năng kết nối. Dòng Stellaris LM3S8000 kết hợp công nghệ Bosch Controller Area Network với cả 10/100 Ethernet Media Access Control (MAC) và lớp vật lý (PHY). Các viđiềukhiểnLM3S8962 là mục tiêu cho các ứng dụng công nghiệp, bao gồm cả giám sát từ xa, máy bán điện tử, thiết bị kiểm tra và đo lường, thiết bị mạng và thiết bị chuyển mạch, nhà máy tự động hóa, HVAC và kiểm soát các tòa nhà, thiết bị chơi game, điềukhiển chuyển động, thiết bị y tế, cứu hỏa và an ninh. Đối với các ứng dụng yêu cầu tiết kiệm năng lượng, LM3S8962 đề cao một mô-đun pin hiệu quả đi theo, đưa năng lượng tiêu hao củaLM3S8962 đến một trạng thái năng lượng thấp trong thời gian dài không hoạt động. Với một chuỗi power-up/power-down, một đồng hồ thời gian thực lien tục (RTC), một cặp thanh ghi phù hợp, một giao diện APB với bus hệ thống, và bộ nhớ không bay hơi dành riêng, các mô-đun Hibernation, các viđiềukhiểnLM3S8962 hoàn hảo cho các ứng dụng pin. Ngoài ra, các viđiềukhiểnLM3S8962 cung cấp những lợi thế củaARM phổ biến rộng rãi với các công cụ phát triển, System-on-Chip (SoC) các ứng dụng cơ sở hạ tầng IP, và một cộng đồng lớn người dùng. Ngoài ra, viđiềukhiểnARM sử dụng Thumb ® tương thích Thumb-2 hướng dẫn thiết lập để giảm bộ nhớ yêu cầu và, do đó chi phí giảm theo. Cuối cùng, các viđiềukhiểnLM3S8962 là mã tương thích cho tất cả các thành viên của gia đình Stellaris rộng, cung cấp sự linh hoạt để phù hợp chính xác nhu cầu của khách hàng. 1.1 Tính năng sản phẩm Các viđiềukhiểnLM3S8962 bao gồm các tính năng sau: ■ 32-bit RISC _______________________________________________________________________ Faculty of Electronics Engineering 4 Ha Noi university of industry FEE2-K2 - 32-bit ARM Cortex ® ™-M3 v7M kiến trúc tối ưu hóa với chân linh kiện nhỏ cho ứng dụng nhúng. - Hệ thống hẹn giờ (SysTick), cung cấp đơn giản, 24-bit tự động nạp lại, tạo sự kiện ngắt khi bộ đếm xuống mức zero, truy cập với một cơ chế điềukhiển linh hoạt, được thiết kế cho hệ điều hành thời gian thực. - Thumb ® tương thích Thumb-2-nhằm đạt được hiệu suất cao của tập lệnh ARM-32bit với mật độ ma chương trình tối ưu của tập lệnh Thumb 16bit. - Hoạtđộng 50-MH - Chia phần cứng và khuếch đại chu trình đơn. - Tích hợp Bộ điềukhiển vector ngắt lồng nhau (NVIC) cung cấp tính quyết định xử lý ngắt - 36 ngắt với tám cấp độ ưu tiên - Khối bảo vệ bộ nhớ (MPU), cung cấp một chế độ đặc quyền cho cấu trúc hệ điều hành được bảo vệ - Truy cập dữ liệu độc lập, cho phép dữ liệu được đóng gói vào bộ nhớ hiệu quả - Thao tác bit (dải bit), cung cấp sử dụng bộ nhớ tối đa và kiểm soát các thiết bị ngoại vi hợp lý. ■ ARM Cortex ® ™-M3 Processor Core - Lõi thu gọn. - Thumb-2, cung cấp các tính năng cao dự kiến của một lõi ARM trong kích thước bộ nhớ thường được kết hợp với 8 - và 16-bit thiết bị; thường trong khoảng một vài kilobyte bộ nhớ cho các ứng dụng lớp viđiều khiển. - Nhanh chóng thực hiện thông qua các ứng dụng kiến trúc Harvard bằng các bus đặc trưng riêng biệt cho điềukhiển và dữ liệu. - Xử lý gián đoạn vượt trội, bằng cách thực hiện các thao tác thanh ghi cần thiết để xử lý một gián đoạn trong phần cứng. - Tính quyết định, xử lý ngắt nhanh chóng: trong 12 chu kỳ, hoặc chỉ có 6 chu kỳ với kỹ thuật tail-chaining - Đơn vị bảo vệ bộ nhớ (MPU) cung cấp một chế độ ưu tiên để thực hiện các ứng dụng phức tạp. _______________________________________________________________________ Faculty of Electronics Engineering 5 Ha Noi university of industry FEE2-K2 - Dịch chuyển từ các gia đình bộ xử lý ARM7 ™ cho hiệu năng tốt hơn và hiệu quả về năng lượng. - Đầy đủ tính năng giải pháp gỡ rối • JTAG Debug Serial Port (SWJ-DP) • Flash Patch và Breakpoint (FPB) đơn vị để thực hiện các điểm ngắt • DataWatchpoint và Trigger (DWT) đơn vị thực hiện watchpoints, nguồn trigger và hệ thống hồ sơ. • Instrumentation Trace Macrocell (ITM) để hỗ trợ gỡ rối các kiểu printf • Trace Port Interface Unit (TPIU) để chuyển tiếp đến Trace Port Analyzer - Tối ưu hóa cho việc sử dụng flash đơn chu kỳ - Ba chế độ ngủ với điện năng thấp - Hướng dẫn đơn chu kỳ và phân chia phần cứng - Hoạtđộng nguyên tử - ARM Thumb2 16-/32-bit tập lệnh hỗn hợp - 1.25 DMIPS/MHz ■ JTAG - IEEE 1.149,1-1990 tương thích điềukhiển Test Access Port (TAP) - Bốn-bit thanh ghi điềukhiển (IR) để lưu trữ chỉ thị JTAG - Tiêu chuẩn chỉ thị IEEE: BYPASS, IDCODE, SAMPLE/PRELOAD, EXTEST và INTEST - ARM thêm chỉ thị: APACC, DPACC và ABOR - Tích hợp ARM Serial Wire Debug (SWD) ■ Hibernation - Hệ thống điềukhiển công suất sử dụng bộ điều chỉnh bên ngoài riêng biệt - Pin chuyên dụng để báo một tín hiệu bên ngoài - Phát hiện pin thấp, báo hiệu và tạo ngắt - Đồng hồ thời gian thực (RTC) 32-bit - Hai thanh ghi RTC 32-bit phù hợp cho thức dậy và tạo ngắt - Xung nhịp nguồn từ một bộ dao động bên ngoài 32,768-kHz hoặc một thạch anh 4,194304-MHz - RTC vi chỉnh để điều chỉnh tốt với tỷ lệ xung nhịp _______________________________________________________________________ Faculty of Electronics Engineering 6 Ha Noi university of industry FEE2-K2 - 64 từ nhớ 32-bit không bay hơi - Có thể lập trình ngắt cho RTC phù hợp, đánh thức bên ngoài, và các sự kiện pin thấp ■ Bộ nhớ trong - 256 KB flash - 64 kB SRAM ■ GPIOs - 5-42 GPIOs, tùy thuộc vào cấu hình - 5-V, tùy vào cấu hình đầu vào - Có thể lập trình điềukhiển cho ngắt GPIO • Tạo ngắt • Gây ra ngắt theo sườn: lên, xuống hoặc cả hai • Ngắt theo mức : cao hoặc thấp - Đọc và ghi hoạtđộng các bit thông qua các dòng địa chỉ - Có thể bắt đầu một chuỗi mẫu ADC - Các Pin cấu hình như các đầu vào kỹ thuật số là các Schmitt-Trigger - Có thể lập trình điềukhiển để cấu hình các chân GPIO • Điện trở kéo lên nguồn, hoặc kéo xuống mass. • 2-mA, 4-mA, và 8-mA để giao tiếp kỹ thuật số; có thể được cấu hình lên đến 18-mA cho các ứng dụng cầndòng lớn. • Cho phép đầu vào kỹ thuật số ■ General-Purpose Timers - 4 bộ General-Purpose Timer Modules (GPTM), mỗi bộ cung cấp hai bộ timer/counter 16-bit. Mỗi GPTM có thể được cấu hình để hoạtđộng độc lập: • Là một bộ đếm thời gian 32-bit • Là một đồng hồ thời gian thực 32-bit (RTC) để nắm bắt sự kiện • Dùng cho điều chế rộng xung (PWM) • Để kích hoạt chuyển đổi tương tự - số - Chế độ Timer 32-bit • Có thể lập trình one-shot thời gian • Có thể lập trình theo chu kỳ thời gian _______________________________________________________________________ Faculty of Electronics Engineering 7 Ha Noi university of industry FEE2-K2 • Real-Time Clock sử dụng một xung nhịp 32,768-KHz bên ngoài như đầu vào • Người dùng có thể dừng trong quá trình gỡ rối • Kích hoạt ADC - Chế độ Timer 16-bit • Chức năng như độ định thời với một bộ chia 8-bit (cho chế độ one-shot và chế độ theo chu kỳ) • Có thể lập trình one-shot thời gian • Có thể lập trình theo chu kỳ thời gian • Người dùng có thể dừng trong quá trình gỡ rối • Kích hoạt ADC - Chế độ Input Capture 16-bit • Capture đầu vào theo sườn • Capture đầu vào theo thơi gian - Chế độ PWM 16bit • Chế độ PWM đơn giản với đầu ra có thể lập trình phần mềm của tín hiệu PWM ■ Watchdog Timer - Bộ đếm xuống 32-bit với một thanh ghi tải có thể lập trình. - Xung watchdog riêng biệt - Có thể lập trình tạo ngắt - Khóa thanh ghi bảo vệ từ phần mềm sai - Thiết lập lại bằng logic với một phép / vô hiệu hóa - Người dùng có thể dừng trong quá trình gỡ rối ■ ADC - Bốn kênh đầu vào analog - Cảm biến nhiệt độ bên trong on-chip - Tốc độ lấy mẫu 500.000 mẫu / giây - Dễ dàng cấu hình chuyển đổi tương tự - số - Linh hoạt trong kích hoạt các điềukhiển • Bộ điềukhiển (phần mềm) • Timers _______________________________________________________________________ Faculty of Electronics Engineering 8 Ha Noi university of industry FEE2-K2 • So sánh tương tự • PWM • GPIO - Phần cứng trung bình lên đến 64 mẫu để cải thiện độ chính xác - Chuyển đổi sử dụng một tham chiếu 3-V nội - Nguồn và mass cho các mạch tương tự là tách biệt với nguồn và mass của mạch kỹ thuật số. ■ UART - Hai chuẩn lập trình đầy đủ 16C550-loại UARTs với hỗ trợ IrDA - 16x8 truyền (TX) và nhận (RX) FIFOs riêng biệt để giảm tải ngắt CPU - Có thể lập trình cho phép tốc độ lên tới 3,125 Mbps - Các mức độ FIFO 1 / 8, 1 / 4, 1 / 2, 3 / 4, và 7 / 8 - Tiêu chuẩn giao tiếp không đồng bộ với các bit bắt đầu, dừng lại, và tính chẵn lẻ - Phát hiện và sửa lỗi đường truyền - Lập trình đầy đủ các đặc tính giao diện nối tiếp • 5, 6, 7, hoặc 8 bit dữ liệu • Tạo và kiểm tra bit chẵn, lẻ hoặc không • Tạo 1 hoặc 2 bit dừng - Cung cấp bộ mã hóa / giải mã IrDA serial -IR (SIR) • Lập trình sử dụng IrDA Serial Infrared (SIR) hoặc đầu vào / đầu ra UART • Hỗ trợ chức năng mã hóa / giải mã IrDA SIR cho tốc độ dữ liệu lên đến 115,2 Kbps bán song công • Hỗ trợ mức năng lượng 3 / 16 bình thường và mức năng lượng thấp (1,41-2,23 μs) thời lượng bit • Có thể lập trình lấy xung clock là bộ chia 1-256 cho chế độ năng lượng thấp ■ Giao diện nối tiếp đồng bộ (SSI) - Hoạtđộng master hoặc slave - Có thể lập trình xung nhịp tốc độ bit và chia xung nhịp - Truyền và nhận FIFOs riêng biệt, 16 bit rộng, 8 vị trí sâu _______________________________________________________________________ Faculty of Electronics Engineering 9 [...]... Thứ hai, cơ cấu ngắt của ARM7 và ARM9 không hỗ trợ vi c ngắt lồng Cần có sự hỗ trợ của phần mềm Một trong những tiêu chí quan trọng của lõi Cortex là khắc phục những hạn chế này và cung cấp một cấu trúc ngắt chuẩn cực kỳ nhanh chóng và xác định 3.2 Bộ điềukhiển vector ngắt lồng nhau NVIC là một đơn vị tiêu chuẩn bên trong lõi Cortex Điều này có nghĩa là tất cả các viđiềukhiển dựa trên lõi Cortex sẽ... bít RTCMIS trên thanh ghi GPTMMIS và tạo điềukhiển ngắt Cờ báo xuất hiện và được xóa bởi vi t lên bít RTCCINT trên thanh ghi GPTMICR 2.2.4 Chế độ hoạtđộng timer 16-bít GPTM là nơi để toàn bộ chế độ 16-bít vi t giá trị 0x4 lên thanh ghi GPTM Configuration (GPTMCFG) Mỗi lựa chọn mô tả GPTM chế độ 16-bít của hoạtđộng TimerA và TimerB đồng nhất chế độ, như vậy mô tả sủ dụng đơn lẻ hoặc cả hai 2.2.4.1... trúc ngắt, bất kể nhà sản xuất chip nào Vì vậy, mã ứng dụng và hệ điều hành có thể dễ đang luân chuyển từ viđiềukhiển này sang viđiềukhiển khác và các lập trình vi n khác không cần phải tìm hiều một tập thanh ghi hoàn toàn mới NVIC cũng được thiết kế để có một độ trễ đáp úng ngắt rất thấp Đây là một điểm chính của bản than bộ NVIC và của tập lệnh Thumb-2 nó cho phép thực thi các lệnh nhiều chu kỳ... viđiều khiển, trong kỹ thuật được sử dụng là như nhau nhưng vi c thực hiện lại khác biệt giữa các nhà sản xuất chip Cơ cấu ngắt của ARM7 và ARM9 gặp phải hai vấn đề Trước hết nó không phải là xác định,thời gian để thực hiện vi c chấm dứt hay hủy bỏ một lệnh đang được thực hiện khi sảy ra ngắt là không xác định Điều này không là vấn đề trở ngại cho nhiều ứng dụng, nhưng nó là vấn đề lớn cho điều khiển. .. đi vào NVIC có thể cấu hình khi viđiềukhiển được thiết kế NVIC có một ngắt không che mặt nạ và hơn 240 đường tín hiệu ngắt bên ngoài, có thể được kết nối với ngoại vi Ngoài ra còn thêm 15 nguồn ngắt bên trong lõi Cortex, được sử dụng để xử lý các ngắt nội ngoại lệ trong lõi Cortex 3.2.1 Phương pháp nhập và thoát khỏi một ngoại lệ của NVIC Khi một ngắt được sinh ra bởi một thiết bị ngoại vi, NVIC sẽ... dựng dựa trên các hoạtđộng như là một kết quả của bộ đếm và tín hiệu so sánh PWM đầu ra • Tạo ra hai tín hiệu PWM độc lập - Bộ tạo Dead-band • Tạo ra hai tín hiệu PWM với lập trình trễ băng tần chết phù hợp để điềukhiển nửa cầu H • Có thể được bỏ qua, để lại các tín hiệu PWM đầu vào không sửa đổi - Kiểm soát đầu ra linh hoạt với cho phép đầu ra PWM của mỗi tín hiệu PWM • Cho phép đầu ra PWM của mỗi... descrambler - Nhiều chế độ hoạt động • Song công và bán song công 100 Mbps • Song công và bán song công 10 Mbps • Chế độ tiết kiệm điện và giảm công suất xuống - Cấu hình cao • Lập trình địa chỉ MAC • Lựa chọn hoạt động LED • Hỗ trợ chế độ pha tạp • Điềukhiển loại bỏ lỗi CRC •Người dùng cấu hình ngắt - Thao tác truyền thông vật lý • Tự động MDI / MDI-X qua chỉnh sửa • Tự độngđiều chỉnh phân cực và tiếp... và hoạt độngcủa Interrupts 3.1 Xử lý ngắt Một trong những cải tiến quan trọng của Cortex so với các CPU ARM trước đó là cấu trúc ngắt và xử lý ngắt ngoại lệ Với ARM7 và ARM9 thường có 2 đường ngắt: ngắt nhanh và ngắt đa dụng hai đường tín hiệu phục vụ tất cả các nguồn ngắt _ 29 Faculty of Electronics Engineering Ha Noi university of industry FEE2-K2 bên trong một vi. .. thuật số logic và mạch tương tự - Tùy chọn mức năng lượng thấp trên bộ điều khiển: chế độ Sleep và DeepSleep - Tùy chọn mức năng lượng thấp cho các thiết bị ngoại vi: điềukhiển bằng phần mềm tắt máy của các thiết bị ngoại vi cá nhân - Phát hiện nguồn cung cấp 3.3V bị gián đoạn và báo cáo ngắt hoặc reset ■ Các nguồn reset linh hoạt - Power-on reset (POR) - Xác nhận reset pin - Brown-out (BOR) phát... 0x0000.0001 Tất cả các giá trị sau này được vi t tới thanh ghi GPTM TimerA Match(GPTMTAMATCHR) bởi bộ điềukhiển Xung clock đầu vào đều đòi hỏi đầu vào CCP với mức 32768KHz trong chế độ RTC Tín hiệu clock khi đó được chia xuống tốc độ 1KHz để hợp với độ dài đầu vào của bến đếm 32-bít Khi phần mềm vi t lên bít TAEN trên thanh ghi GPTMCTL, biến đếm bắt đầu hoạt động đếm tiến bắt đầu từ giá trị đặt trước . NỘI KHOA : ĐIỆN TỬ NGHIÊN CỨU, MÔ PHỎNG HOẠT ĐỘNG CỦA TIMER, INTERRUPT, ADC, UARTS, SSI, I2C, CAN TRÊN VI ĐIỀU KHIỂN ARM CORTEX-M3 LM3S8962 CỦA HÃNG TEXAS INTSTRUMENTS Giáo vi n hướng dẫn: Phạm. bay hơi dành riêng, các mô- đun Hibernation, các vi điều khiển LM3S8962 hoàn hảo cho các ứng dụng pin. Ngoài ra, các vi điều khiển LM3S8962 cung cấp những lợi thế của ARM phổ biến rộng rãi với. vượt trội của ARM và xu thế lựa chọn dòng vi điều khiển mới ở Vi t Nam nên trong đề tài nghiên cứu khoa học này, dưới sự giúp đỡ của Thầy Phạm Văn Chiến, chúng tôi thực hiện đề tài nghiên cứu