Ngày nay để chọn được một dòng chip có thể đáp ứng được mọi yêu cầu của người dùng không còn quá khó khăn như trước, với sự cạnh tranh phát triển của các hãng sản xuất chip điện tử đã cho ra đời nhiều dòng chip với nhiều chức năng và ứng dụng đáp ứng được nhu cầu của người dùng, nổi bật nên đó là dòng chip Vi điều khiển ARM STM32F103RCT6. Chip STM32F103RCT6 thuộc series STM32F103xx là dòng vi điều khiển 32 bit sử dụng lõi ARM Cortex M3 của hãng ST hoạt động với tốc độ xung nhịp là 72 MHz, bộ nhớ Flash 512KB hoàn toàn đáp ứng được những yêu cầu cao của các hệ thống xử lý số hiện nay. Do đó có thể thay thế các dòng chip 8 bit hay 16 bit hiệu suất thấp mà giá thành chênh lệch lại không đáng kể.
Trường đại học cơng nghệ Đồng Nai Khóa luận tốt nghiệp K13: (2017 – 2021) LỜI MỞ ĐẦU Bộ vi xử lý ngày phát triển đa sử dụng hầu hết hệ thống điều khiển công nghiệp thiết bị điện tử dân dụng Chính vai trị, chức vi xử lý đem lại nhiều ưu điểm, nhiều tính đặc biệt cho hệ thống điều khiển Các nhà nghiên cứu không ngừng nghiên cứu hệ thống điều khiển sử dụng vi xử lý để thay nhằm nâng cao khả tự động thay cho người, thúc đẩy lĩnh vực vi xử lý ngày phát triển không ngừng, đáp ứng yêu cầu điều khiển Để đơn giản bớt phức tạp phần cứng dùng vị xử lý, nhà nghiên cứu tích hợp hệ vi xử lý, nhớ, thiết bị ngoại vị thành vi mạch gọi vị điều khiển Ngày để chọn dòng chip đáp ứng yêu cầu người dùng khơng cịn q khó khăn trước, với cạnh tranh phát triển hãng sản xuất chip điện tử cho đời nhiều dòng chip với nhiều chức ứng dụng đáp ứng nhu cầu người dùng, bật nên dịng chip Vi điều khiển ARM STM32F103RCT6 Chip STM32F103RCT6 thuộc series STM32F103xx dòng vi điều khiển 32 bit sử dụng lõi ARM Cortex M3 hãng ST hoạt động với tốc độ xung nhịp 72 MHz, nhớ Flash 512KB hoàn toàn đáp ứng yêu cầu cao hệ thống xử lý số Do thay dịng chip bit hay 16 bit hiệu suất thấp mà giá thành chênh lệch lại không đáng kể Với lý nhóm lựa chọn đề tài khóa luận tốt nghiệp “THIẾT KẾ KÍT THÍ NGHIỆM VI ĐIỀU KHIỂN ST” Nội dung bao gồm: Phần 1: Lý thuyết chip Vi điều khiển ARM STM32F103RCT6 Phần 2: Thiết kế phần cứng kít thí nghiệm vi điểu khiển ST Phần 3: Các tập thực hành ứng dụng Đồng nai, ngày 25 tháng 07 năm 2021 NHÓM SINH VIÊN THỰC HIỆN Đề tài: Thiết kế kít thí nghiệm vi điều khiển ST Page | Trường đại học công nghệ Đồng Nai Khóa luận tốt nghiệp K13: (2017 – 2021) CHƯƠNG LÝ DO CHỌN ĐỀ TÀI VÀ TẦM QUAN TRỌNG CỦA ĐỀ TÀI 1.1 Giới thiệu đề tài Khoa học kỹ thuật ngày phát triển, đặc biệt lĩnh vực điện tử – tự động hóa có nhiều thành tựu đáng kể vài thập niên vừa qua Để đáp ứng với thay đổi nhanh chóng khoa học – cơng nghệ, trường đại học cần phải đổi nội dung – phương pháp giảng dạy để không ngừng nâng cao chất lượng đào tạo Để nâng cao chất lượng đào tạo trang thiết bị thí nghiệm, thực hành đóng vai trò quan trọng Hiện thiết bị ngoại nhập hãng chuyên sản xuất thiết bị dạy học sản xuất thường có giá thành cao Từ thực tế đó, giải pháp nhiều trường đại học Việt nam quan tâm tự chế tạo mơ hình thiết bị nhằm đáp ứng cơng việc đào thí nghiệm thực hành 1.2 Lý chọn đề tài Trong lĩnh vực tự động hoá sản xuất thiết bị có khả lập trình PLC, Vi điều khiển, CPLD, FPGA … đóng vai trị vơ quan trọng Mục đích nhóm chế tạo thí nghiệm vi điều khiển có tính mềm dẻo linh hoạt q trình sử dụng Mơ hình thiết bị cho phép sinh viên tương tác trực tiếp để tiếp cận vấn đề hệ thống điều khiển sử dụng điều khiển có khả lập trình được, từ thiết kế phần cứng đến thiết kế phần mềm Thiết bị chế tạo nhằm minh hoạ tính vi mạch có khả lập trình hãng Atmel, microchip, atera, xixlin… loại cảm biến thiết bị giao tiếp ngoại vi khác phải đảm bảo tính vừa sức sinh viên trường 1.3 Nội dung nghiên cứu Nghiên cứu thiết kế thí nghiệm vi điều khiển với đặc điểm: Thiết bị chế tạo tuyệt đối an toàn cho người sử dụng Điện áp cao ngõ vào (220VAC) cách ly hoàn toàn Sinh viên giao tiếp với phần điện áp thấp ( 12VDC, 5VDC) nằm giới hạn cho phép an toàn điện Ưu điểm bật thiết bị cho phép người học thao tác trực tiếp cho phép ghép nối, khai báo vào/ra cách đơn giản, trực quan sinh động đảm bảo tính khoa học Ngồi ra, thiết bị kết nối đến modul mở rộng, tiêu biểu có modul LCD, modul led thanh, modul nhiệt độ, modul điều Đề tài: Thiết kế kít thí nghiệm vi điều khiển ST Page | Trường đại học cơng nghệ Đồng Nai Khóa luận tốt nghiệp K13: (2017 – 2021) khiển động bước, … Điều cho phép người học thiết kế ứng dụng riêng 1.4 Tầm quan trọng nghiên cứu Đề tài khóa luận thiết kế chế tạo hồn thành kít thí nghiệm vi điều khiển với việc sử dụng linh kiện vật tư thí nghiệm có sẵn thị trường Việt nam Giá thành mô hình mức vừa phải Bên cạnh đó, khối chức thiết bị thiết kế để giảm thiểu hư hỏng, điều giảm thiểu vật tư thực tập đảm bảo nội dung môn học 1.5 Giới hạn nghiên cứu Các hệ vi điều khiển ngày phát triển không ngừng nhằm đáp ứng yêu cầu điều khiển, xử lý liệu ngày lớn Các vi điều khiển bit phổ biến ứng dụng điều khiển công nghiệp sản phẩm dân dụng, vi điều khiển 16 bit với khả đáp ứng cao so với dòng vi điều khiển bit, nhiên với yêu cầu điều khiển, khối lượng liệu xử lý hình ảnh thiết bị điều khiển sinh học, thiết bị giải trí máy chụp ảnh kỹ thuật số, máy tính bảng, máy định vị dẫn đường, … vi điều khiển bit 16 bit không đáp ứng không đủ không gian nhớ để chứa liệu, không đủ nhanh để xử lý liệu, … để đáp ứng yêu cầu hệ vi điều khiển 32 bit đời, dòng vi điều khiển phổ biến ARM Nhóm nghiên cứu lý thuyết dịng vi điều khiển ARM Cortex-M3, biên soạn tài liệu lý thuyết, viết chương trình thực hành cho Kit vi điều khiển ARM Cortex-M3 STM32F103VE Qua nghiên cứu lý thuyết nhóm nắm bắt cấu trúc dòng vi điều khiển ARM 32 bit ngày phổ biến dùng làm chip CPU hệ thống điều khiển phức tạp thiết bị giải trí để xử lý liệu có kích thước lớn 1.6 Kết dự kiến Kết nghiên cứu tài liệu lý thuyết cô đọng giúp người nghiên cứu sau sinh viên có tài liệu để nhanh chóng tiếp cận làm chủ để ứng dụng cách nhanh chóng Tài liệu phục vụ cho giảng dạy mơn học vi điều khiển nâng cao Các thực hành biên soạn từ đơn giản đến phức tạp, trình bày giải thích rõ ràng lệnh hàm có liên quan thư viện, giúp cho sinh viên học nhanh, khơng nhiều thời gian mày mò nghiên cứu Các thực hành LCD cảm ứng touch dùng để hiển thị hình ảnh điều khiển cảm ứng chạm cho Sinh viên học gần gũi với nhiều ứng dụng thực tế Đề tài: Thiết kế kít thí nghiệm vi điều khiển ST Page | Trường đại học công nghệ Đồng Nai Khóa luận tốt nghiệp K13: (2017 – 2021) CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Tổng quan vi xử lý ARM Cortex M3, M4, M7, M9 Vi xử lý ARM Cortex M3, M4, M7 dòng vi xử lý sử dụng kiến trúc ARM cấu hình cho ứng dụng vi điều khiển với chi phí tiết kiệm mạnh mẽ Kiến trúc ARM kiến trúc dạng RISC cho vi xử lý, cấu hình cho mơi trường khác Arm Holdings phát triển kiến trúc cấp phép cho công ty khác Các công ty thiết kế sản phẩm riêng họ bao gồm SoC (System on Chip) module hệ thống SoM (System on Module) kết hợp với ngoại vi nhớ Ví dụ STMicrocontroller với dòng STM32 sử dụng Series Học Lập Trình STM32 2.1.1 ARM Cortex gì? Vi xử lý lõi ARM Cortex dựa cấu hình kiến trúc ARMv7 Cấu hình A: cho ứng dụng Application, yêu cầu cao chạy hệ điều hành mở phức tạp Linux, Android… Cấu hình R: cho ứng dụng thời gian thực Real Time Cấu hình M: cho ứng dụng vi điều khiển Microcontroller Bộ vi xử lý ARM Cortex-M3 vi xử lý ARM dựa kiến trúc ARMv7-M thiết kế đặc biệt để đạt hiệu suất cao ứng dụng nhúng cần tiết kiệm lượng chi phí, chẳng hạn vi điều khiển, hệ thống ô tơ, hệ thống kiểm sốt cơng nghiệp hệ thống mạng khơng dây Thêm vào việc lập trình đơn giản hóa đáng kể giúp kiến trúc ARM trở thành lựa chọn tốt cho ứng dụng đơn giản Đề tài: Thiết kế kít thí nghiệm vi điều khiển ST Page | Trường đại học cơng nghệ Đồng Nai Khóa luận tốt nghiệp K13: (2017 – 2021) 2.1.2 Cấu trúc vi xử lý ARM Cortex M3 Bộ vi xử lý ARM Cortex-M3 dựa kiến trúc ARMv7-M có cấu trúc thứ bậc Nó tích hợp lõi xử lý trung tâm, với thiết bị ngoại vi hệ thống tiên tiến để tạo khả kiểm soát ngắt, bảo vệ nhớ, gỡ lỗi theo vết hệ thống ARM Cortex M3 dựa cấu trúc Havard, đặc trưng tách biệt vùng nhớ liệu chương trình Vì đọc lúc lệnh liệu từ nhớ, vi xử lý ARM Cortex-M3 thực nhiều hoạt động song song, tăng tốc thực thi ứng dụng Hình 2.1 Cấu Trúc Vi Xử Lý ARM Cortex M3 2.1.3 Cấu trúc lõi ARM Cortex M3 Lõi ARM Cortex có cấu trúc đường ống gồm tầng: Instruction Fetch, Instruction Decode Instruction Execute Khi gặp lệnh nhánh, tầng decode chứa thị nạp lệnh suy đốn dẫn đến việc thực thi nhanh Bộ xử lý nạp lệnh dự định rẽ nhánh giai đoạn giải mã Sau đó, giai đoạn thực thi, việc rẽ nhánh giải vi xử lý phân tích xem đâu lệnh thực thi Nếu việc rẽ nhánh khơng chọn lệnh sẵn sàng Cịn việc rẽ nhánh chọn lệnh rẽ nhánh sẵn sàng lập tức, hạn chế thời gian rỗi chu kỳ Lõi Cortex-M3 chứa giải mã cho tập lệnh Thumb truyền thống Thumb-2 mới, phân chia logic ALU (arithmetic logic unit) tiên tiến hỗ trợ nhân chia phần cứng, điều khiển logic, giao tiếp với thành phần khác xử lý Bộ vi xử lý Cortex-M3 vi xử lý 32-bit, với độ rộng đường dẫn liệu 32 bit, dải ghi giao tiếp nhớ Có 13 ghi đa dụng, hai trỏ ngăn xếp, ghi liên kết, đếm chương trình số ghi đặc biệt có ghi trạng thái chương trình Đề tài: Thiết kế kít thí nghiệm vi điều khiển ST Page | Trường đại học công nghệ Đồng Nai Khóa luận tốt nghiệp K13: (2017 – 2021) Hình 2.2 Cấu trúc lõi ARM Cortex M3 2.1.4 STM32 với ARM Cortex M3, M4, M7, M9 ST đưa thị trường dòng vi điều khiển dựa ARM7 ARM9 dòng STM32H7, STM32F7… với tốc độ xử lý, hiệu cao giá thành rẻ (Low price, high performance), giá gần Euro với số lượng lớn, trở thành thách thức lớn dòng vi điều khiển 16 bit bit truyền thống AVR, PIC, 8051… STM32 phân thành hai dòng: dòng Performance có tần số hoạt động CPU lên tới 72Mhz dịng Access có tần số hoạt động lên tới 36Mhz Các biến thể STM32 hai nhóm tương thích hồn tồn cách bố trí chân (pin) phần mềm, đồng thời kích thước nhớ FLASH ROM lên tới 512K 64K SRAM Khi phát triền dòng chip STM32 ARM Cortex Mx, ST phát triển tất công cụ ứng dụng xung quanh dịng chip Có thể kể đến Hệ sinh thái STM32 Cube giúp lập trình viên dễ dàng phát triển ứng dụng từ đơn giản đến phức tạp mà không cần phụ thuộc vào Code 2.1.5 ARM Cortex ngày Thời điểm ARM mua lại Nvidia với giá 40 tỉ USB ngày 13/09/2020 Cụ thể, Nvidia trả cho SoftBank 21,5 tỷ USD cổ phiếu 12 tỷ USD tiền mặt Số lại trả tiền mặt cổ phiếu tùy hiệu kinh doanh Đề tài: Thiết kế kít thí nghiệm vi điều khiển ST Page | Trường đại học cơng nghệ Đồng Nai Khóa luận tốt nghiệp K13: (2017 – 2021) công ty tương lai Cùng với đó, ARM hoạt động phận riêng Nvidia Công ty đặt trụ sở Anh “tiếp tục vận hành mơ hình cấp phép mở, đồng thời trì tính trung lập với khách hàng toàn cầu” 2.2 Một vài đặc điểm bật STM32 2.2.1 Sự tinh vi Thoạt nhìn ngoại vi STM32 giống vi điều khiển khác, hai chuyển đổi ADC, timer, I2C, SPI, CAN, USB RTC Tuy nhiên ngoại vi có nhiều đặc điểm thú vị Ví dụ ADC 12-bit có tích hợp cảm biến nhiệt độ để tự động hiệu chỉnh nhiệt độ thay đổi hỗ trợ nhiều mode chuyển đổi Mỗi timer có khối capture compare, khối timer liên kết với khối timer khác để tạo mảng timer tinh vi Một timer cao cấp chuyên hỗ trợ điều khiển động cơ, với đầu PWM với dead time lập trình đường break input buộc tín hiệu PWM sang trạng thái an tồn cài sẵn Ngoại vi nối tiếp SPI có khối kiểm tổng CRC phần cứng cho 16 word hỗ trợ tích cực cho giao tiếp thẻ nhớ SD MMC STM32 có hỗ trợ thêm kênh DMA (Direct Memory Access) Mỗi kênh dùng để truyền liệu đến ghi ngoại vi từ ghi ngoại vi với kích thước từ (word) liệu truyền 8/16 32-bit Mỗi ngoại vi có điều khiển DMA (DMA controller) kèm dùng để gửi đòi hỏi liệu yêu cầu Một phân xử bus nội (bus arbiter) ma trận bus (bus matrix) tối thiểu hoá tranh chấp bus truy cập liệu thông qua CPU (CPU data access) kênh DMA Điều cho phép đơn vị DMA hoạt động linh hoạt, dễ dùng tự động điều khiển luồng liệu bên vi điều khiển STM32 vi điều khiển tiêu thụ lượng thấp đạt hiệu suất cao Nó hoạt động điện áp 2V, chạy tần số 72MHz dịng tiêu thụ có 36mA với tất khối bên vi điều khiển hoạt động Kết hợp với chế độ tiết kiệm lượng Cortex, STM32 tiêu thụ 2µA chế độ standby Một dao động nội RC 8MHz cho phép chip nhanh chóng khỏi chế độ tiết kiệm lượng dao động khởi động Khả nhanh vào thoát khỏi chế độ tiết kiệm lượng làm giảm nhiều tiêu thụ lượng tổng thể 2.2.2 Sự an toàn Ngày ứng dụng đại thường phải hoạt động môi trường khắt khe, địi hỏi tính an tồn cao, địi hỏi sức mạnh xử lý nhiều thiết bị Đề tài: Thiết kế kít thí nghiệm vi điều khiển ST Page | Trường đại học công nghệ Đồng Nai Khóa luận tốt nghiệp K13: (2017 – 2021) ngoại vi tinh vi Để đáp ứng yêu cầu khắt khe đó, STM32 cung cấp số tính phần cứng hỗ trợ ứng dụng cách tốt Chúng bao gồm phát điện áp thấp, hệ thống bảo vệ xung clock hai watchdogs Bộ watchdog cửa sổ Watchdog phải làm tươi khung thời gian xác định Nếu nhấn sớm, muộn, watchdog kích hoạt Bộ thứ hai watchdog độc lập, có dao động bên ngồi tách biệt với xung nhịp hệ thống Hệ thống bảo vệ xung nhịp phát lỗi dao động bên ngồi (thường thạch anh) tự động chuyển sang dùng dao động nội RC 8MHz 2.2.3 Tính bảo mật Một yêu cầu khắc khe khác thiết kế đại nhu cầu bảo mật mã chương trình để ngăn chặn chép trái phép phần mềm Bộ nhớ Flash STM32 khóa để chống truy cập đọc Flash thơng qua cổng debug Khi tính bảo vệ đọc kích hoạt, nhớ Flash bảo vệ chống ghi để ngăn chặn mã không tin cậy chèn vào bảng vector ngắt Hơn bảo vệ ghi cho phép phần cịn lại nhớ Flash STM32 có đồng hồ thời gian thực khu vực nhỏ liệu SRAM ni nhờ nguồn pin Khu vực có đầu vào chống giả mạo, kích hoạt kiện ngắt có thay đổi trạng thái đầu vào Ngoài kiện chống giả mạo tự động xóa liệu lưu trữ SRAM nuôi nguồn pin 2.2.4 Phát triển phần mềm Nếu bạn sử dụng vi điều khiển dựa lõi ARM, công cụ phát triển hỗ trợ tập lệnh Thumb-2 dịng Cortex Ngồi ST cung cấp thư viện điều khiển thiết bị ngoại vi, thư viện phát triển USB thư viện ANSI C mã nguồn tương thích với thư viện trước cơng bố cho vi điều khiển STR7 STR9 Có nhiều RTOS mã nguồn mở thương mại middleware (TCP/IP, hệ thống tập tin, v.v.) hỗ trợ cho họ Cortex Dòng Cortex-M3 kèm với hệ thống gỡ lỗi hoàn toàn gọi CoreSight Truy cập vào hệ thống CoreSight thông qua cổng truy cập Debug (Debug Access Port), cổng hỗ trợ kết nối chuẩn JTAG giao diện dây (serial wire-2 Pin), cung cấp trình điều khiển chạy gỡ lỗi, hệ thống CoreSight STM32 cung cấp data watchpoint công cụ theo dõi (instrumentation trace) Cơng cụ gửi thơng tin Đề tài: Thiết kế kít thí nghiệm vi điều khiển ST Page | Trường đại học công nghệ Đồng Nai Khóa luận tốt nghiệp K13: (2017 – 2021) ứng dụng lựa chọn đến công cụ gỡ lỗi Điều cung cấp thêm thơng tin gỡ lỗi sử dụng q trình thử nghiệm phần mềm 2.2.5 Dịng Performance Access STM32 Họ STM32 có hai nhánh riêng biệt: dòng Performance dòng Access Dòng Performance tập hợp đầy đủ thiết bị ngoại vi chạy với xung nhịp tối đa 72MHz Dịng Access có thiết bị ngoại vi chạy tối đa 32MHz Quan trọng cách bố trí chân (pins layout) kiểu đóng gói chip (package type) dòng Access dòng Performance Điều cho phép phiên khác STM32 hốn vị mà khơng cần phải sửa đổi sếp lại footprint (mơ hình chân chip cơng cụ layout bo mạch) PCB (Printed Circuit Board) Ngoài hai dòng Performance Access đầu tiên, ST đưa thị trường thêm hai dòng USB Access Connectivity hình bên Hình 2.3 Đặc điểm bốn nhánh họ STM32 Vi điều khiển STM32F103C8T6 STM32F103C8T6 vi điều khiển 32bit, thuộc họ F1 dịng chip STM32 hãng ST Hình 2.4 Dịng chip STM32 hãng ST Đề tài: Thiết kế kít thí nghiệm vi điều khiển ST Page | Trường đại học cơng nghệ Đồng Nai Khóa luận tốt nghiệp K13: (2017 – 2021) THÔNG SỐ CƠ BẢN: - Lõi ARM COTEX M3 - Tốc độ tối đa 72Mhz - Bộ nhớ: 64 kbytes nhớ Flash 20 kbytes SRAM - Clock, reset quản lý nguồn Điện áp hoạt động từ 2.0 → 3.6V Sử dụng thạch anh từ 4Mhz → 20Mhz Thạch anh nội dùng dao động RC mode 8Mhz 40Khz - Chế độ điện áp thấp: Có mode: ngủ, ngừng hoạt động hoạt động chế độ chờ Cấp nguồn chân Vbat pin để dùng RTC sử dụng liệu lưu trữ nguồn cấp - ADC 12 bit với kênh cho Khoảng giá trị chuyển đổi từ – 3.6 V Có chế độ lấy mẫu kênh nhiều kênh - DMA: kênh DMA Có hỗ trợ DMA cho ADC, UART, I2C, SPI - Timer: Timer 16 bit hỗ trợ mode Input Capture/ Output Compare/ PWM Timer 16 bit hỗ trợ để điều khiển động với mode bảo vệ ngắt Input, dead-time Watchdog Timer để bảo vệ kiểm tra lỗi Systick Timer 24 bit đếm xuống cho hàm Delay,… - Có hỗ trợ kênh giao tiếp: I2C USART SPI CAN USB 2.0 full-speed interface - Kiểm tra lỗi CRC 96-bit ID 2.3.1 Phần cứng bên STM32 STM32 vi điều khiển cao cấp không nhớ, tốc độ phong phú phần cứng, mà cịn có phần cứng hỗ trợ bên nâng cao Hầu hết biết Timer watchdog từ trải nghiệm trước với MCU bit phổ biến AVR PIC Tuy nhiên, nói đến STM32, ý tưởng mạch watchdog trau Đề tài: Thiết kế kít thí nghiệm vi điều khiển ST Page | 10 Trường đại học cơng nghệ Đồng Nai Khóa luận tốt nghiệp K13: (2017 – 2021) { PORTB&=~TempPort; delay_ms(200); PORTB|=TempPort; delay_ms(200); TempPort>>=1; } Temp1=0x08; Temp2=0x10; for(i=0;i>=1; Temp2