Báo cáo Nghiên cứu vi điều khiển ARM STM32 và viết các bài thực hành (Phần 1)
Bạn đang xem 20 trang mẫu của tài liệu "Báo cáo Nghiên cứu vi điều khiển ARM STM32 và viết các bài thực hành (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
bao_cao_nghien_cuu_vi_dieu_khien_arm_stm32_va_viet_cac_bai_t.pdf
Nội dung text: Báo cáo Nghiên cứu vi điều khiển ARM STM32 và viết các bài thực hành (Phần 1)
- 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 CÔNG TRÌNH NGHIÊN CỨU KHOA HỌC CẤP TRƯỜNG NGHIÊN CỨU VI ÐIỀU KHIỂN ARM STM32 VÀ VIẾT CÁC BÀI THỰC HÀNH S K C 0 0 3 9 5 9 MÃ SỐ: T2014 - 19 S KC 0 0 5 5 1 3 Tp. Hồ Chí Minh, 2014
- 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 BÁO CÁO TỔNG KẾT ĐỀ TÀI KH&CN CẤP TRƢỜNG NGHIÊN CỨU VI ĐIỀU KHIỂN ARM STM32 VÀ VIẾT CÁC BÀI THỰC HÀNH MÃ SỐ: T2014 - 19 Chủ nhiệm đề tài: GVC.THS. NGUYỄN ĐÌNH PHÖ TP. HCM, 11/2014
- TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BÁO CÁO TỔNG KẾT ĐỀ TÀI KH&CN CẤP TRƢỜNG NGHIÊN CỨU VI ĐIỀU KHIỂN ARM STM32 VÀ VIẾT CÁC BÀI THỰC HÀNH MÃ SỐ: T2014 - 19 Chủ nhiệm đề tài: GVC.THS. NGUYỄN ĐÌNH PHÖ TP. HCM, 11/2014 2
- DANH SÁCH NHỮNG THÀNH VIÊN THAM GIA NGHIÊN CỨU ĐỀ TÀI VÀ ĐƠN VỊ PHỐI HỢP CHÍNH A. Các thành viên tham gia gồm có 1. TRƢƠNG THỊ BÍCH NGÀ B. Các đơn vị phối hợp 1. Nhóm giảng viên dạy thực hành vi xử lý – vi điều khiển của trƣờng Đại Học Sƣ Phạm Kỹ thuật. 3
- Mở đầu . 13 Tình hình nghiên cứu trong và ngoài nƣớc. 14 Tính cấp thiết – mục tiêu. 16 Cách tiếp cận. 16 Phƣơng pháp nghiên cứu. 17 Đối tƣợng và phạm vi nghiên cứu . 17 Nội dung nghiên cứu . 17 Chƣơng 1: NGHIÊN CỨU CẤU TRÖC VI ĐIỀU KHIỂN ARM CORTEX-M3 I. GIỚI THIỆU 18 II. GIỚI THIỆU VI ĐIỀU KHIỂN ARM 18 1. Tóm tắt lịch sử 18 2. Các thế hệ kiến trúc 19 3. Tập lệnh 20 III. TỔNG QUAN VỀ DÕNG VI ĐIỀU KHIỂN ARM 21 1. Cấu trúc vi điều khiển ARM Cortex-M3 21 2. Các thanh ghi 21 3. Các chế độ hoạt động 23 IV. TẬP LỆNH CỦA VI ĐIỀU KHIỂN ARM 24 V. HỆ THỐNG BỘ NHỚ CỦA VI ĐIỀU KHIỂN ARM 24 1. Các bản đồ bộ nhớ 25 2. Các hoạt động bit band 26 3. Các ƣu điểm khi dùng bộ nhớ bit-band 27 4. Truy cập không cân xứng 28 VI. KIẾN TRÖC CỦA VI ĐIỀU KHIỂN ARM CORTEX-M3 29 1. Cấu trúc pipeline 29 2. Sơ đồ khối chi tiết 30 3. Giao diện bus của ARM CORTEX-M3 32 4. Các kết nối chuẩn đặc trƣng 32 VII. RESET VÀ XUNG ĐỒNG HỒ CỦA ARM CORTEX-M3 33 1. Reset 33 2. Xung đồng hồ hệ thống 34 4
- Chƣơng 2: NGHIÊN CỨU CÁC NGOẠI VI CỦA VI ĐIỀU KHIỂN ARM CORTEX-M3 I. GIỚI THIỆU 38 II. BỘ ĐIỀU KHIỂN DMA 38 1. Giới thiệu DMA 39 2. Cấu trúc DMA 39 3. Chức năng của DMA 40 III. BỘ CHUYỂN ĐỔI TƢƠNG TỰ SANG SỐ 44 IV. BỘ CHUYỂN ĐỔI SỐ SANG TƢƠNG TỰ 45 V. BỘ CHUYỂN THỜI GIAN THỰC 45 VI. BỘ CHUYỂN CÁC BỘ ĐỊNH THỜI 45 VII. TRUYỀN DỮ LIỆU UART, SPI, I2S 45 Chƣơng 3: KHẢO SÁT KIT VÀ HƢỚNG DẪN SỬ DỤNG PHẦN MỀM KEIL-C I. KHẢO SÁT KIT 46 1. Nguồn cung cấp 47 2. Các chế độ nạp chƣơng trình 47 3. Nguồn xung clock 48 4. Các chế độ reset 48 5. Ngõ vào tín hiệu tƣơng tự 48 6. Ngõ ra tín hiệu tƣơng tự 48 7. USB host 49 8. Thiết bị USB 49 9. Giao tiếp màn hình LCD 49 10. Giao tiếp bộ nhớ Eeprom 49 11. Giao tiếp mạng can 49 12. Giao tiếp RS232 và RS-485 50 13. Giao tiếp thẻ nhớ 50 14. Giao tiếp Ethenet 50 15. Bộ giải mã MP3 50 16. Bộ nhớ lƣu trữ dung lƣợng lớn 50 II. HƢỚNG DẪN SỬ DỤNG PHẦN MỀM KEIL-C 50 1. Giới thiệu 50 5
- 2. Cách tạo project 50 III. GIẢI THÍCH CHƢƠNG TRÌNH ĐIỀU KHIỂN LED ĐƠN 61 1. Giải thích các lệnh chƣơng trình chính 61 2. Giải thích các lệnh chƣơng trình con chi tiết trong thƣ viện 62 3. Các kiểu dữ liệu đã định nghĩa trong thƣ viện 64 IV. CÁC BÀI TẬP ĐIỀU KHIỂN LED ĐƠN 68 V. ĐIỀU KHIỂN LED ĐƠN VÀ NÖT NHẤN 69 Chƣơng 4: BIÊN SOẠN CÁC BÀI THỰC HÀNH I. GIỚI THIỆU 72 II. BIÊN SOẠN CÁC BÀI THỰC HÀNH MODULE LED ĐƠN NÖT NHẤN 72 III. BIÊN SOẠN CÁC BÀI THỰC HÀNH MODULE LCD 72 1. Giao tiếp ci điều khiển với LCD 72 2. Các bài hiển thị ký tự, vẽ hình 72 3. Các bài hiển thị hình ảnh trên LCD 77 IV. BIÊN SOẠN CÁC BÀI MODULE TOUCH VÀ LCD 84 V. BIÊN SOẠN CÁC BÀI MODULE ADC VÀ LCD 86 VI. BIÊN SOẠN CÁC BÀI MODULE RTC VÀ LCD 86 VII. BIÊN SOẠN CÁC BÀI MODULE THẺ NHỚ MP3 VÀ ÂM THANH 86 KẾT LUẬN 88 KIẾN NGHỊ VÀ HƢỚNG PHÁT TRIỂN 89 TÀI LIỆU THAM KHẢO 90 6
- Danh mục bảng biểu Hình 1: Các sản phẩm dùng vi điều khiển ARM. Hình 1-1: Các sản phẩm giải trí dùng vi điều khiển ARM. Hình 1-2: Cấu trúc vi điề khiển ARM dùng lõi Cortex-M3. Hình 1-3: Các cải tiến của kiến trúc vi xử lý ARM. Hình 1-4: Qúa trình cải tiến tập lệnh. Hình 1-5: Cấu trúc cơ bản của ARM Cortex-M3. Hình 1-6: Các thanh ghi của ARM Cortex-M3. Hình 1-7: Các thanh ghi đặc biệt của Cortex-M3. Hình 1-8: Các chế độ hoạt động và các cấp đặc quyền trong Cortex-M3. Hình 1-9: Cho phép chuyển chế độ hoạt động. Hình 1-10: Bản đồ bộ nhớ của Cortex – M3. Hình 1-11: Vùng nhớ bit-band. Hình 1-12: So sánh 2 cách truy cập không dùng bit band và có. Hình 1-13: Sai khi ngắt xảy ra. Hình 1-14: Xử lý đúng cho dù có ngắt xảy ra. Hình 1-15: Truy cập 32 bit không cân xứng. Hình 1-16: Truy cập 16 bit không cân xứng. Hình 1-17: Đường ống lệnh 3 tầng của Cortex_M3. Hình 1-18. Dùng bộ đệm trong đơn vị đón lệnh để cải tiến xử lý lệnh 32 bit. Hình 1-19. Sơ đồ khối hệ thống vi xử lý Cortex-M3. Hình 1-20. Sơ đồ khối chi tiết hệ thống vi xử lý Cortex-M3. Hình 1-21. Mạch reset Hình 1-22. Sơ đồ khối mạch dao động. Hình 2-1. Sơ đồ khối bộ điều khiển DMA. Hình 2-2. Bảng đồ yêu cầu DMA1 Hình 2-3. Bảng đồ yêu cầu DMA2 Hình 3-1. Kit ARM Cortex – M3 STM32F 103VET. Hình 3-2. Các vị trí của các thành phần giao tiếp với ARM. Hình 3-3. Các thư mục chứ các file thư viện. Hình 3-4. Thư mục cha và thư mục con. Hình 3-5. Giao diện phần mềm Keil. Hình 3-6. Tiến hành tạo project mới. Hình 3-7. Đặt tên, chọn đường dẫn lưu project mới. 7
- Hình 3-8. Chọn đúng thông số cho chip. Hình 3-9. Màn hình chưa có gì. Hình 3-10. Nội dung chương trình. Hình 3-11. Chọn biểu tượng gán. Hình 3-12. Giao diện thay đổi tên và đường dẫn. Hình 3-13. Sau khi thay đổi tên. Hình 3-14. Kết quả sau khi add 1 file cho group CMSIS. Hình 3-15. Kết quả sau khi add các file cho group CMSIS. Hình 3-16. Kết quả sau khi add cho group LIBRARY. Hình 3-18. Kết quả sau khi add cho group SOURCE. Hình 3-19. Giao diện màn hình mới sau khi gán cho các group. Hình 3-20. Vị trí “Target Option”. Hình 3-21. Tick ô xây dựng file hex. Hình 3-22. Sau khi thiết lập thư mục obj. Hình 3-23. Sau khi thiết lập thư mục lst. Hình 3-24. Thiết lập đường dẫn cho các file để biên dịch. Hình 3-25. Chọn bộ nạp loại “ULINK2”. Hình 3-26. Chọn chế độ reset để nạp xong thì chạy và chọn loại bộ nhớ cho phù hợp chip. Hình 3-27. Kết quả sau khi biên dịch. Hình 3-28. Biểu tượng để nạp. Hình 2-29. Sơ đồ mạch các nút nhấn. Hình 2-30. Khai báo các nhóm và khai báo đường dẫn. Hình 4-1. Kích thước màn hình GLCD. Hình 4-2. Sơ đồ mạch vi điều khiển ARM giao tiếp GLCD. Hình 4-3. Các nhóm lưu thư mục và đường dẫn bài 301. Hình 4-4. Các nhóm lưu thư mục và đường dẫn bài 302. Hình 4-5. Giao diện phần mềm chuyển đổi ảnh. Hình 4-6. Giao diện sau khi mở ảnh. Hình 4-7. File hex của ảnh sau khi chuyển đổi. Hình 4-8. Các thông số kích thước của ảnh sau khi chuyển đổi. Hình 4-9. Các nhóm lưu thư mục và đường dẫn bài 321. Hình 4-10. Các nhóm lưu thư mục và đường dẫn bài 322. Hình 4-11. Các nhóm lưu thư mục và đường dẫn bài 323. Bảng 1-1 Các thanh ghi đặc biệt và chức năng. Bảng 2-1: các bit cho phép ngắt của DMA: Bảng 2-2: Tóm tắt các yêu cầu của DMA1 cho mỗi kênh 8
- Bảng 2-3: Tóm tắt các yêu cầu của DMA2 cho mỗi kênh Bảng 3-1: Thiết lập các chế độ Bảng 3-2: Các chuẩn giao tiếp USB AB Bảng 3-3: Giao tiếp thẻ nhớ Bảng 3-4: Các jack giao tiếp Bảng 3-5: Giải thích chương trình Bảng 3-6: Các chương trình con trong thư viện Bảng 3-7: Các kiểu dữ liệu đã định nghĩa 9
- TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM THÀNH PHỐ HỒ CHÍ MINH Độc lập - Tự do - Hạnh phúc KHOA ĐIỆN – ĐIỆN TỬ Tp. HCM, ngày 1 tháng 11 năm 2014 THÔNG TIN KẾT QUẢ NGHIÊN CỨU 1. Thông tin chung: - Tên đề tài: NGHIÊN CỨU VI ĐIỀU KHIỂN ARM STM32 VÀ VIẾT CÁC BÀI THỰC HÀNH - Mã số: T2014 – 19 - Chủ nhiệm: GVC.THS. NGUYỄN ĐÌNH PHÖ - Cơ quan chủ trì: Đại học Sƣ phạm Kỹ thuật Thành phố Hồ Chí Minh - Thời gian thực hiện: THÁNG 2/2014 ĐẾN THÁNG 11/2014 2. Mục tiêu: Nghiên cứu thiết kế kít vi điều khiển ARM để phục vụ giảng dạy cho môn học vi xử lý nâng cao lý thuyết và thực hành. Ngoài việc phục vụ cho giảng dạy thì vi điều khiển ARM là vi điều khiển 32 bit có khả năng đáp ứng các yêu cầu điều khiển phức tạp đƣợc sử dụng trong nhiều thiết bị nhƣ xe hơi, thiết bị dẫn đƣờng trên xe hơi, máy chụp hình kỹ thuật số, máy photocopy, các thiết bị điện thoại di động thông minh, 3. Tính mới và sáng tạo: Đây là đề tài nghiên cứu và sử dụng đƣợc dòng vi điều khiển 32 bit nhằm làm chủ công nghệ để có thể thiết kế các ứng dụng phù hợp. Trƣờng chúng ta có giảng dạy vi điều khiển trong nhiều năm qua, từ dòng vi điều khiển 8 bit, rồi 16 bit có khả năng phục vụ để điều khiển cho các yêu cầu điều khiển với lƣợng dữ liệu không lớn, không có hình ảnh. Với các thiết bị điều khiển cũng nhƣ các thiết bị giải trí ngày nay thì luôn trang bị màn hình hiển thị đƣợc hình ảnh và màn cảm ứng điều khiển. Với màn hình có thể hiển thị đƣợc hình ảnh thì khối dữ liệu lớn và tốc độ xử lý phải nhanh, khi đó vi điều khiển 8 bit hay 16 bit sẽ không đủ khả năng để điều khiển, chỉ có dòng vi điều khiển 32 bit mới có khả năng đáp ứng đƣợc. 4. Kết quả nghiên cứu: Là kiến thức hiểu biết cấu trúc dòng vi điều khiển ARM Cortex-M3, biên soạn đƣợc các tài liệu để phục vụ cho giảng dạy cũng nhƣ cho nghiên cứu. Các bài thực hành điều khiển dùng vi điều khiển ARM Cortex-M3 STM32F103VE. 5. Sản phẩm: 10
- Các tài liệu về vi điều khiển ARM Cortex-M3, các bài thực hành giúp sinh viên có thể học tập và nghiên cứu. 6. Hiệu quả, phƣơng thức chuyển giao kết quả nghiên cứu và khả năng áp dụng: Ngoài việc phục vụ giảng dạy cho sinh viên trong trƣờng thì nhóm nghiên cứu có thể thiết kế bộ kit dùng vi điều khiển ARM với nhiều tính năng có thể chuyển giao cho các trƣờng có nhu cầu. Trƣởng Đơn vị Chủ nhiệm đề tài (ký, họ và tên, đóng dấu) (ký, họ và tên) GVC.THS. NGUYỄN ĐÌNH PHÖ 11
- TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM THÀNH PHỐ HỒ CHÍ MINH Độc lập - Tự do - Hạnh phúc KHOA ĐIỆN – ĐIỆN TỬ Tp. HCM, ngày 1 tháng 11 năm 2013 RESULTS INFORMATION 1. General Information: Project title: RESEARCH ARM STM32 MICROCONTROLLER AND EDITE PRACTICE LESSONS - Item Number: T2014 - 19 - Chairman: GVC.THS. PHU NGUYEN DINH - Responsible agencies: University of Technical Education Ho Chi Minh City - Implementation period: January 2/2014 TO MONTH 11/2014 2. Objectives Research ARM Microcontroller Kit for teaching courses for Advanced Microprocessor theory and practice. In addition to serving for teaching, the microcontroller ARM's 32-bit microcontrollers capable of meeting the requirements of complex controls are used in many devices like cars, navigation devices in cars, digital imaging machines, copiers, appliances smart mobile phones. Novelty and creativity: This is a research topic and use a 32-bit microcontroller to master the technology to be able to design appropriate applications. In our university, we teach microcontroller over the years, from line 8-bit microcontrollers, 16-bit microcontrollers capable and serves to control for the control requirements with small amounts of data, no pictures. Today, control devices as well as entertainment devices are always equipped display images and touch screen controls. With a screen that can display images, the large data volume and processing speed to fast, then 8-bit microcontrollers and 16-bit will not be able to control, only 32-bit microcontroller line new capabilities to meet. 3. The study results: After the research, I will know the knowledge structures of microcontroller ARM Cortex- M3, edited the document to serve for teaching and research. The exercise controller using microcontroller ARM Cortex-M3 STM32F103VE. 4. Products: The documents of on microcontrollers ARM Cortex-M3, these exercises can help students learn and study. 5. Efficient method of transferring research results and the ability to apply: In addition to serving teaching for students in school, researchers can design kit using ARM microcontroller with more features can be transferred to other schools if they need. GVC.THS. NGUYỄN ĐÌNH PHÖ 12
- MỞ ĐẦU Thị trƣờng vi điều khiển là rất lớn, ƣớc tính với hơn 20 tỷ thiết bị mỗi năm đƣợc xuất xƣởng trong năm 2010. Các yêu cầu cho vi điều khiển hiệu suất cao hơn đã đƣợc thúc đẩy bởi nhu cầu thay đổi trên toàn cầu của ngành công nghiệp. Vi điều khiển đƣợc yêu cầu phải xử lý nhiều công việc hơn mà không làm tăng tần số hay công suất của sản phẩm. Ngoài ra, vi điều khiển ngày càng tăng các kết nối nhƣ các kết nối Universal Serial Bus (USB), Ethernet, hoặc các bộ thu phát thanh không dây, và do đó, việc xử lý cần thiết để hỗ trợ các kênh truyền thông và thiết bị ngoại vi đang phát triển. Tƣơng tự nhƣ vậy, độ phức tạp ứng dụng đang tăng lên, do giao diện ngƣời dùng phức tạp hơn, yêu cầu đa phƣơng tiện, tốc độ hệ thống, và hội tụ nhiều chức năng. Bộ vi xử lý ARM Cortex -M3, là thế hệ đầu tiên của thế hệ bộ vi xử lý Cortex của ARM (Acorn RISC Machine) phát hành vào năm 2006, đƣợc thiết kế chủ yếu để nhắm vào thị trƣờng vi xử lý 32-bit. Bộ vi xử lý Cortex-M3 cung cấp hiệu suất tuyệt vời với số cổng ít và đi kèm với nhiều tính năng mới trƣớc đây chỉ có ở vi xử lý cao cấp. Cortex-M3 giải quyết các yêu cầu đối với phiên bản 32-bit trên thị trƣờng bộ xử lý nhúng theo nhiều cách sau: Hiệu quả hoạt động lớn hơn: cho phép nhiều việc phải làm mà không làm tăng các yêu cầu về tần số hoặc công suất điện. Tiêu thụ điện thấp: cho phép tuổi thọ pin lâu hơn, đặc biệt quan trọng trong các sản phẩm di động bao gồm cả các ứng dụng mạng không dây. Tăng cƣờng xác định: đảm bảo rằng các công việc quan trọng và các ngắt đƣợc phục vụ nhanh nhất có thể và chỉ trong một vài chu kỳ xung clock. Cải thiện mật độ mã: đảm bảo mã phù hợp. Dễ sử dụng: cung cấp khả năng lập trình và gỡ lỗi dễ dàng hơn. Chi phí thấp hơn các giải pháp: giảm chi phí hệ thống 32-bit dựa trên gần với những ngƣời của 8-bit cũ và các thiết bị 16-bit và cho phép cấp thấp, vi điều khiển 32-bit sẽ có giá ít hơn 1 USD. 13
- Khả năng lựa chọn rộng của các công cụ phát triển: từ chi phí thấp hoặc trình biên dịch miễn phí với các bộ phát triển đầy đủ tính năng từ nhiều nhà cung cấp công cụ phát triển. Với sự phát triển của dòng vi điều khiển 32 bit ngày càng trở nên phổ biến đòi hỏi ngƣời dùng phải nhanh chóng tiếp cận và tìm hiểu, làm chủ kỹ thuật để có thể triển khai vào các ứng dụng của mình là điều tất yếu, đúng xu hƣớng phát triển tƣơng lai. TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC Vi điều khiển ARM đƣợc sử dụng khá nhiều trong các sản phẩm, với hiệu suất cao và mật độ mã cao và kích thƣớc nhỏ, bộ xử lý ARM Cortex-M3 là lý tƣởng cho một loạt các ứng dụng. Vi điều khiển chi phí thấp: ARM Cortex-M3 là lý tƣởng thích hợp cho vi điều khiển chi phí thấp, thƣờng đƣợc dùng trong các sản phẩm tiêu dùng, từ đồ chơi cho đến các thiết bị điện. Đây là một thị trƣờng cạnh tranh cao do các sản phẩm dùng các vi điều khiển 8-bit và 16-bit đã nổi tiếng nhiều trên thị trƣờng. Với công suất thấp, hiệu suất cao, và các lợi thế tính dễ sử dụng cho phép các nhà phát triển nhúng để di chuyển đến các hệ thống 32-bit và phát triển sản phẩm với kiến trúc ARM. Ô tô: Một ứng dụng lý tƣởng của ARM Cortex-M3 là trong ngành công nghiệp ô tô. Bộ vi xử lý Cortex-M3 có hiệu suất cao và độ trễ thấp khi đáp ứng ngắt, cho phép nó sử dụng trong các hệ thống thời gian thực. Bộ vi xử lý ARM Cortex-M3 hỗ trợ lên đến 240 ngắt ngoài, với bộ điều khiển ngắt tích hợp bên trong hỗ trợ ngắt lồng nhau và khối đơn vị bảo vệ bộ nhớ tùy chọn, làm cho nó trở nên lý tƣởng cho các ứng dụng ô tô tích hợp cao. Truyền thông dữ liệu: vi điều khiển có công suất thấp và hiệu quả cao, kết hợp với tập lệnh Thumb-2 cho các lệnh xử lý bit, làm cho ARM Cortex-M3 trở nên lý tƣởng cho nhiều ứng dụng truyền thông, chẳng hạn nhƣ truyền dữ liệu Bluetooth và ZigBee. Điều khiển công nghiệp: Trong các ứng dụng điều khiển công nghiệp, đơn giản, đáp ứng nhanh, và độ tin cậy là yếu tố quan trọng. Một lần nữa, tính năng ngắt của bộ vi xử lý ARM Cortex-M3 với độ trễ đáp ứng ngắt thấp, và tăng cƣờng các tính năng xử lý lỗi làm cho vi điều khiển ARM trở thành một ứng cử viên mạnh mẽ trong lĩnh vực điều khiển công nghiệp. 14
- Các sản phẩm tiêu dùng: trong nhiều sản phẩm tiêu dùng, một bộ vi xử lý hiệu suất cao đƣợc sử dụng. Bộ vi xử lý ARM Cortex-M3, là một bộ vi xử lý nhỏ, hiệu quả cao và tiêu thụ ít năng lƣợng và hỗ trợ một MPU cho phép phần mềm phức tạp để thực hiện trong khi cung cấp khả năng bảo vệ bộ nhớ. Hình ảnh các sản phẩm ứng dụng của vi điều khiển ARM: 15
- Hình 1: Các sản phẩm dùng vi điều khiển ARM. TÍNH CẤP THIẾT – MỤC TIÊU Với tính hình phát triển và ứng dụng các vi điều khiển ARM đòi hỏi chúng ta là các giảng viên đang giảng dạy phải nhanh chóng nghiên cứu để có thể sử dụng đƣợc và truyền đạt các kiến thức cho sinh viên chuyên ngành điện – điện tử tiếp cận ngay khi còn đang học để đáp ứng các yêu cầu của nhà sử dụng khi ra trƣờng. Mục tiêu chính của đề tài nghiên cứu là tìm hiểu lịch sử phát triển của dòng vi điều khiển ARM, cấu trúc của vi điều khiển ARM cơ bản, biên soạn các tài liệu cơ bản để có thể trở thành một giáo trình hoàn chỉnh để phục vụ giảng dạy, cho sinh viên học tập, tự học, nghiên cứu kit dùng vi điều khiển ARM và tiến hành biên soạn các bài thực hành từ cơ bản đến nâng cao nhằm giúp cho ngƣời học tiếp cận thực tế một cách nhanh chóng. CÁCH TIẾP CẬN Khảo sát các kit vi điều khiển dùng ARM đang có sẵn trên thị trƣờng: có rất nhiều kit vi điều khiển làm khó khăn cho ngƣời mới bắt đầu không biết chọn loại nào, tuy nhiên khi tiếp cận tài liệu thì chỉ có một nhà nghiên cứu ARM duy nhất, còn các chip ARM của nhiều nhà sản xuất khác nhau là do mỗi hãng mua lõi ARM về và tự mình thiết kế thêm các ngoại vi và sản phẩm mang tên của nhà sản xuất nhƣng kèm theo thông tin là dùng lõi ARM nào. Cùng một lõi nhƣng các cấu trúc ngoại vi khác nhau nên khi sử dụng ARM của hãng nào thì ta phải tìm tài liệu đúng của hãng đó. Hiện nay ở Việt nam có rất nhiều nhà cung cấp kit vi điều khiển ARM và có rất nhiều tài liệu về ARM. 16
- PHƯƠNG PHÁP NGHIÊN CỨU Phƣơng pháp nghiên cứu chủ yếu là đọc tài liệu, tìm hiểu về ARM, tài liệu chủ yếu là tiếng anh. Tiến hành tìm hiểu cách sử dụng KIT vi điều khiển ARM. Viết các chƣơng trình điều khiển cho KIT. Biên soạn các chƣơng trình cho kit ARM ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU Nhóm tiến hành nghiên cứu tài liệu về dòng vi điều khiển ARM Cortex-M3 và thực hiện các chƣơng trình cho kit dùng vi điều khiển ARM Cortex-M3 STM32F103VE. Các nghiên cứu cũng nhƣ sản phẩm dùng cho nghiên cứu và kết quả sau nghiên chứ chỉ dùng cho vi điều khiển ARM Cortex-M3 STM32F103VE. NỘI DUNG NGHIÊN CỨU Nội dung nghiên cứu đƣợc chia làm 4 chƣơng: Chƣơng 1: Nghiên cứu cấu trúc vi điều khiển ARM Cortex-M3. Chƣơng 2: Nghiên cứu các ngoại vi của vi điều khiển ARM Cortex-M3. Chƣơng 3: Khảo sát kit và hƣớng dẫn sử dụng phần mềm lập trình Keil cho vi điều khiển ARM Cortex-M3. Chƣơng 4: Biên soạn các bài thực hành. 17
- CHƯƠNG 1 NGHIÊN CỨU CẤU TRÚC VI ĐIỀU KHIỂN ARM CORTEX-M3 I. GIỚI THIỆU Cấu trúc vi điều khiển ARM bao gồm nhiều phần, chƣơng này chủ yếu nghiên cứu lý thuyết về vi điều khiển ARM Cortex-M3 bao gồm các nội dung: Giới thiệu vi điều khiển ARM. Giới thiệu tổng quát về dòng vi điều khiển ARM Cortex-M3 Tập lệnh của vi điều khiển ARM Cortex-M3 Hệ thống bộ nhớ của vi điều khiển ARM Cortex-M3 Kiến trúc của vi điều khiển ARM Cortex-M3 Reset và xung đồng hồ II. GIỚI THIỆU VI ĐIỀU KHIỂN ARM 1. TÓM TẮT LỊCH SỬ ARM đƣợc thành lập vào năm 1990 bởi Advanced RISC Machines Ltd, một công ty liên doanh của Apple Computer, Acorn Computer Group, và VLSI Công nghệ. Năm 1991, ARM giới thiệu họ vi xử lý ARM6 và VLSI đã đƣợc cấp phép đầu tiên. Sau đó, các công ty khác, bao gồm Texas Instruments, NEC, Sharp, và ST Microelectronics, đƣợc cấp phép thiết kế vi xử lý ARM, mở rộng các ứng dụng của bộ vi xử lý ARM vào điện thoại di động, đĩa cứng máy tính, hỗ trợ các thiết bị số cá nhân (PDA), hệ thống giải trí gia đình, và nhiều sản phẩm tiêu dùng khác. Hình 1-1: Các sản phẩm giải trí dùng vi điều khiển ARM. Bộ vi xử lý Cortex-M3 là đơn vị xử lý trung tâm (CPU) của một chip vi điều khiển. Ngoài ra, còn có số lƣợng các thành phần khác đƣợc yêu cầu cho vi điều khiển hoàn toàn dựa vào vi xử lý Cortex-M3. Sau khi cấp phép cho nhà sản xuất chip vi xử lý Cortex-M3, họ có thể đặt các bộ vi xử lý Cortex-M3 trong các thiết kế bán dẫn của họ, thêm bộ nhớ, thiết bị ngoại vi, đầu vào/ra (I/O), và các tính năng khác. Chip dựa vào vi xử lý Cortex-M3 từ các nhà sản xuất khác nhau sẽ có kích cỡ khác nhau về bộ nhớ, khác nhau về chủng loại, khác nhau về thiết bị ngoại vi, và khác nhau về các tính năng. Ngày nay, các đối tác của ARM đã sản xuất vƣợt hơn 2 tỷ bộ vi xử lý ARM mỗi năm. Không giống nhƣ nhiều công ty bán dẫn, ARM không sản xuất bộ vi xử lý hoặc bán các 18
- chip trực tiếp. Thay vào đó, ARM cấp phép thiết kế bộ vi xử lý cho các đối tác kinh doanh, bao gồm một phần lớn các công ty bán dẫn hàng đầu thế giới. Dựa trên ARM chi phí thấp và các thiết kế bộ xử lý năng lƣợng hiệu quả, các đối tác tạo ra bộ vi xử lý các vi điều khiển của riêng họ, và các giải pháp hệ thống trên chip. Mô hình kinh doanh này thƣờng đƣợc gọi là sở hữu trí tuệ (IP) cấp giấy phép. Ngoài việc thiết kế bộ vi xử lý, ARM cũng cấp giấy phép cho các hệ thống cấp IP và các IP mềm khác nhau. Để hỗ trợ các sản phẩm này, ARM đã phát triển một cơ sở vững mạnh của các công cụ phát triển, phần cứng, và các sản phẩm phần mềm để cho phép các đối tác để phát triển sản phẩm của mình. Hình 1-2: Cấu trúc vi điề khiển ARM dùng lõi Cortex-M3. 2. CÁC THẾ HỆ KIẾN TRÖC Trong những năm qua, ARM đã tiếp tục phát triển bộ vi xử lý mới và các khối hệ thống bao gồm bộ vi xử lý ARM7TDMI phổ biến và gần đây hơn, là bộ vi xử lý ARM1176TZ (F)-S, đƣợc sử dụng trong các ứng dụng cao cấp nhƣ điện thoại thông minh. Sự phát triển các tính năng và cải tiến đối với bộ vi xử lý theo thời gian đã dẫn đến các phiên bản kế tiếp của kiến trúc ARM. Lƣu ý rằng số phiên bản kiến trúc độc lập với tên bộ xử lý. Ví dụ, bộ vi xử lý ARM7TDMI dựa trên kiến trúc ARMv4T (T là cho Thumb®). Kiến trúc ARMv5E đã đƣợc giới thiệu với các họ vi xử lý ARM9E, bao gồm cả vi xử lý ARM926E-S và ARM946E-S. Kiến trúc này tăng cƣờng các lệnh xử lý số tín hiệu (Digital Signal Processing (DSP)) cho các ứng dụng đa phƣơng tiện. Với sự xuất hiện của họ vi xử lý ARM11, kiến trúc đã đƣợc mở rộng đến ARMv6. Các tính năng mới trong kiến trúc này bao gồm các tính năng về bộ nhớ hệ thống và các lệnh đa dữ liệu cho 1 lệnh (Single Instruction – Multiple Data (SIMD)). Bộ vi xử lý dựa trên kiến trúc ARMv6 bao gồm ARM1136J (F)-S, ARM1156T2 (F)-S, và ARM1176JZ (F)-S. Sau đó sự ra đời của họ ARM11 đã quyết định rằng rất nhiều các công nghệ mới, nhƣ tối ƣu hóa tập lệnh Thumb-2. Trong vài năm qua, ARM mở rộng danh mục sản phẩm của mình bằng cách đa dạng hóa phát triển CPU, kết quả là phiên bản kiến trúc 7 hoặc v7. Trong phiên bản này, thiết kế kiến trúc đƣợc chia thành ba cấu hình: 19
- Cấu hình A đƣợc thiết kế cho hiệu suất cao cho các nền tảng ứng dụng mở. Cấu hình R đƣợc thiết kế cho các hệ thống nhúng cao cấp trong đó hiệu suất thời gian thực là cần thiết. Cấu hình M đƣợc thiết kế cho các hệ thống vi điều khiển nhúng. Các họ vi xử lý Cortex khác bao gồm Cortex-A8 (vi xử lý ứng dụng), dựa trên cấu hình ARMv7-A, và Cortex-R4 (vi xử lý thời gian thực), dựa trên cấu hình ARMv7-R, xem hình 1-3. Hình 1-3: Các cải tiến của kiến trúc vi xử lý ARM. 3. TẬP LỆNH Tăng cƣờng và mở rộng của tập lệnh đƣợc sử dụng bởi các vi xử lý ARM là một trong những động lực chính của sự tiến hóa của kiến trúc, xem hình 1-4. Hình 1-4: Qúa trình cải tiến tập lệnh. Trong lịch sử (kể từ ARM7TDMI), hai tập lệnh khác nhau đƣợc xây dựng trên bộ vi xử lý ARM: các lệnh của ARM là 32 bit và lệnh Thumb là 16 bit. Trong quá trình thực hiện chƣơng trình, bộ vi xử lý có thể tự động chuyển giữa trạng thái ARM và trạng thái Thumb để sử dụng lệnh tƣơng ứng. 20
- S K L 0 0 2 1 5 4



