Đồ án tốt nghiệp: Điều khiển động cơ 1 chiều dùng STM32F4 - Đinh Hữu Mạnh

Đồ án nghiên cứu tốt nghiệp điện tự động công nghiệp điều khiển động cơ 1 chiều sử dụng vi xử lý stm32f4, áp dụng công nghệ tiên tiến, tối ưu giải pháp kỹ thuật cho bài toán kỹ

Trường đại học

Trường Đại Học Kỹ Thuật

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp
57
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Hướng dẫn đồ án điều khiển động cơ 1 chiều bằng STM32F4

Trong bối cảnh tự động hóa công nghiệp phát triển, việc điều khiển chính xác các cơ cấu chấp hành như động cơ điện đóng vai trò then chốt. Đồ án tốt nghiệp về điều khiển động cơ 1 chiều sử dụng vi xử lý stm32f4 là một đề tài mang tính ứng dụng cao, kết hợp kiến thức về hệ thống nhúng, điện tử công suất và lý thuyết điều khiển tự động. Vi xử lý STM32F4, với lõi ARM Cortex-M4 mạnh mẽ, cung cấp hiệu suất vượt trội và tích hợp nhiều ngoại vi chuyên dụng, là lựa chọn lý tưởng cho các bài toán điều khiển phức tạp. Tài liệu nghiên cứu gốc của sinh viên Đinh Hữu Mạnh dưới sự hướng dẫn của TS. Ngô Quang Vĩ đã chứng minh tính khả thi và hiệu quả của việc ứng dụng dòng vi điều khiển này. Nghiên cứu tập trung vào việc xây dựng một hệ thống hoàn chỉnh từ thiết kế phần cứng đến phát triển phần mềm, sử dụng các công cụ hiện đại như STM32CubeMXKeil C for ARM. Mục tiêu chính của đồ án là thiết kế một bộ điều khiển có khả năng điều chỉnh và ổn định tốc độ động cơ DC một cách chính xác dựa trên tín hiệu phản hồi encoder, thông qua việc áp dụng thuật toán PID kinh điển. Bài viết này sẽ phân tích chi tiết các khía cạnh kỹ thuật, từ lựa chọn linh kiện, thiết kế sơ đồ nguyên lý, cho đến triển khai thuật toán và đánh giá kết quả, cung cấp một tài liệu tham khảo giá trị cho các sinh viên ngành Điện - Tự động hóa công nghiệp.

1.1. Tổng quan về vi điều khiển ARM Cortex M4 và dòng STM32

Vi điều khiển STM32 là một họ vi điều khiển 32-bit do STMicroelectronics sản xuất, dựa trên kiến trúc lõi ARM Cortex. Dòng STM32F4 thuộc nhánh hiệu suất cao (Performance line), sử dụng lõi vi điều khiển ARM Cortex-M4 với tần số hoạt động lên đến 180MHz. Đặc điểm nổi bật của lõi này là tích hợp bộ xử lý dấu phẩy động (FPU), giúp tăng tốc đáng kể các phép toán số thực, rất hữu ích trong các thuật toán PID và xử lý tín hiệu. STM32F4 được trang bị bộ nhớ Flash dung lượng lớn (lên đến 2MB) và SRAM (lên đến 256KB), đáp ứng tốt các chương trình phức tạp. Ngoài ra, nó còn tích hợp hàng loạt ngoại vi cao cấp như các bộ Timer đa năng hỗ trợ tạo băm xung PWM, bộ chuyển đổi ADC 12-bit, các giao thức truyền thông như giao tiếp UART, SPI, I2C và đặc biệt là bộ DMA (Direct Memory Access) giúp giảm tải cho CPU. Những đặc tính này làm cho STM32F4 trở thành nền tảng vững chắc cho các ứng dụng yêu cầu hiệu suất và độ chính xác cao.

1.2. Lý do chọn STM32F4 cho đề tài điều khiển motor DC

Việc lựa chọn STM32F4 cho luận văn tốt nghiệp điều khiển động cơ không phải là ngẫu nhiên. Thứ nhất, hiệu suất xử lý cao của lõi Cortex-M4 cho phép thực thi các vòng lặp điều khiển PID với tần số cao, đảm bảo hệ thống đáp ứng nhanh và chính xác trước các thay đổi về tải. Thứ hai, các bộ Timer của STM32F4 có chế độ Encoder Mode chuyên dụng, cho phép đọc tín hiệu từ phản hồi encoder trực tiếp bằng phần cứng mà không cần sự can thiệp liên tục của CPU. Điều này giúp giải phóng tài nguyên vi xử lý cho các tác vụ khác. Thứ ba, khả năng tạo tín hiệu băm xung PWM với độ phân giải cao giúp điều khiển điện áp cấp cho động cơ một cách mượt mà và chính xác. Cuối cùng, hệ sinh thái phát triển mạnh mẽ với các công cụ như STM32CubeMXthư viện HAL giúp đơn giản hóa quá trình lập trình nhúng STM32, cho phép người phát triển tập trung vào thuật toán điều khiển thay vì cấu hình phần cứng phức tạp. Những ưu điểm này làm cho STM32F4 vượt trội hơn so với các dòng vi điều khiển 8-bit hoặc 16-bit truyền thống trong các ứng dụng điều khiển chuyển động.

II. Phân tích thách thức khi điều khiển tốc độ động cơ DC

Việc điều khiển motor DC không đơn thuần là cấp nguồn để nó quay. Thách thức lớn nhất nằm ở việc duy trì một tốc độ không đổi và chính xác khi có sự thay đổi về tải hoặc các yếu tố môi trường. Động cơ DC là một hệ thống phi tuyến, đặc tính của nó bị ảnh hưởng bởi điện trở phần ứng, từ thông, và các yếu tố cơ khí. Để giải quyết bài toán này, cần có một hệ thống điều khiển vòng kín. Hệ thống này bao gồm ba thành phần chính: bộ điều khiển, cơ cấu chấp hành (mạch công suất và động cơ), và khâu phản hồi. Khâu phản hồi, thường sử dụng cảm biến Hall hoặc phản hồi encoder, có nhiệm vụ đo tốc độ động cơ thực tế và gửi tín hiệu về bộ điều khiển. Bộ điều khiển sau đó sẽ so sánh tốc độ thực tế với tốc độ mong muốn (setpoint) để tính toán sai số. Dựa trên sai số này, bộ điều khiển sẽ điều chỉnh tín hiệu đầu ra để thay đổi điện áp cấp cho động cơ, nhằm đưa tốc độ thực tế về bằng tốc độ đặt. Việc lựa chọn phương pháp điều khiển phù hợp và thiết kế một bộ điều khiển hiệu quả là yếu tố quyết định sự thành công của một báo cáo đồ án STM32. Theo phân tích trong tài liệu gốc, phương pháp thay đổi điện áp phần ứng là tối ưu nhất vì cho phép điều chỉnh tốc độ trong dải rộng mà vẫn giữ được độ cứng đặc tính cơ.

2.1. So sánh các phương pháp điều khiển tốc độ động cơ DC

Có ba phương pháp cơ bản để điều khiển tốc độ động cơ DC kích từ độc lập: thay đổi điện trở phụ trong mạch phần ứng, thay đổi từ thông kích từ, và thay đổi điện áp cấp cho phần ứng. Phương pháp thay đổi điện trở phụ tuy đơn giản nhưng gây tổn hao năng lượng lớn trên điện trở và làm giảm độ cứng của đặc tính cơ, khiến tốc độ không ổn định khi tải thay đổi. Phương pháp thay đổi từ thông cho phép điều khiển tốc độ cao hơn tốc độ định mức nhưng lại làm giảm mô-men của động cơ và giới hạn dải điều chỉnh. Phương pháp thay đổi điện áp phần ứng là ưu việt nhất. Bằng cách điều chỉnh điện áp, ta có thể thay đổi tốc độ từ 0 đến định mức một cách trơn tru, đồng thời giữ nguyên độ cứng đặc tính cơ. Điều này đảm bảo ổn định tốc độ tốt hơn. Trong các hệ thống hiện đại, việc thay đổi điện áp được thực hiện hiệu quả bằng phương pháp băm xung PWM (Pulse Width Modulation), trong đó vi điều khiển tạo ra một chuỗi xung vuông và điều chỉnh độ rộng của xung để thay đổi giá trị điện áp trung bình cấp cho động cơ.

2.2. Vấn đề cốt lõi Phản hồi encoder và ổn định tốc độ

Để điều khiển vòng kín, việc đo lường chính xác tốc độ hiện tại của động cơ là bắt buộc. Encoder quang là thiết bị được sử dụng phổ biến cho mục đích này. Nó tạo ra các xung tín hiệu (kênh A và B) khi trục động cơ quay. Bằng cách đếm số xung này trong một khoảng thời gian nhất định, vi điều khiển có thể tính toán được tốc độ. Thách thức ở đây là xử lý tín hiệu encoder một cách hiệu quả mà không làm quá tải CPU. Như đã đề cập, STM32F4 giải quyết vấn đề này bằng chế độ Timer Encoder. Một thách thức khác là ổn định tốc độ. Khi có tải tác động, tốc độ động cơ có xu hướng giảm. Bộ điều khiển phải phát hiện sự sụt giảm này thông qua phản hồi encoder và nhanh chóng tăng điện áp cấp để bù lại, giữ cho tốc độ không đổi. Độ nhanh và chính xác của quá trình bù này phụ thuộc hoàn toàn vào chất lượng của thuật toán PID được triển khai trong chương trình.

III. Phương pháp thiết kế phần cứng cho đồ án tốt nghiệp STM32

Một hệ thống điều khiển ổn định bắt nguồn từ một thiết kế phần cứng đáng tin cậy. Trong đồ án tốt nghiệp điện tự động công nghiệp, phần cứng được chia thành các khối chức năng rõ ràng: khối xử lý trung tâm, khối công suất, khối nguồn và khối phản hồi. Khối xử lý trung tâm là board STM32F4, đóng vai trò là bộ não của hệ thống, thực thi thuật toán điều khiển và tạo tín hiệu PWM. Khối công suất, hay còn gọi là mạch động lực, có nhiệm vụ khuếch đại tín hiệu điều khiển từ vi điều khiển để cấp dòng đủ lớn cho động cơ. Khối này thường sử dụng mạch cầu H, cho phép điều khiển cả tốc độ và chiều quay. Khối nguồn cung cấp các mức điện áp ổn định cho toàn bộ hệ thống, bao gồm 5V cho vi điều khiển và 12V/24V cho động cơ. Khối phản hồi bao gồm encoder được gắn trên trục động cơ để đo tốc độ động cơ và gửi tín hiệu về cho vi điều khiển. Việc thiết kế sơ đồ nguyên lý chi tiết và lựa chọn linh kiện phù hợp với yêu cầu về công suất và độ bền là bước quan trọng đầu tiên. Sau khi hoàn thiện sơ đồ, có thể thực hiện mô phỏng Proteus để kiểm tra tính đúng đắn của mạch trước khi thi công thực tế. Điều này giúp giảm thiểu sai sót và tiết kiệm thời gian.

3.1. Sơ đồ nguyên lý khối nguồn và mạch cầu H L298N

Trong đồ án này, khối công suất sử dụng IC driver động cơ L298N. Đây là một IC tích hợp sẵn hai mạch cầu H, có khả năng chịu dòng tối đa 2A trên mỗi cầu và điện áp lên tới 40VDC. Mạch cầu H cho phép đảo chiều dòng điện qua động cơ, từ đó thực hiện việc đảo chiều quay. Tốc độ động cơ được điều khiển bằng cách cấp tín hiệu băm xung PWM vào chân Enable của L298N. Tài liệu nghiên cứu chỉ ra rằng L298N không có diode bảo vệ nội, do đó cần lắp thêm các diode nhanh (Fast Recovery Diode) bên ngoài để dập các dòng điện cảm ứng sinh ra khi động cơ hoạt động, bảo vệ IC khỏi hư hỏng. Do L298N tỏa nhiệt nhiều khi hoạt động, việc gắn thêm tản nhiệt là bắt buộc để đảm bảo hoạt động ổn định. Khối nguồn được thiết kế riêng biệt để cung cấp 5V cho STM32 và 12V cho L298N, tránh nhiễu từ mạch công suất ảnh hưởng đến khối điều khiển.

3.2. Kỹ thuật đọc phản hồi encoder để đo tốc độ động cơ

Khối phản hồi tốc độ sử dụng encoder quang tương đối (Incremental Encoder) có độ phân giải 200 xung/vòng. Encoder này có hai kênh A và B lệch pha nhau 90 độ. Tín hiệu từ hai kênh này được đưa trực tiếp vào các chân Timer của STM32F4, được cấu hình ở chế độ Encoder Mode. Ở chế độ này, bộ đếm của Timer sẽ tự động tăng hoặc giảm giá trị dựa trên thứ tự xuất hiện của xung trên kênh A và B, cho phép xác định cả số xung và chiều quay. Để tính toán tốc độ, chương trình sẽ đọc giá trị của bộ đếm Timer trong một khoảng thời gian cố định (ví dụ 100ms). Tốc độ (vòng/phút) được tính bằng công thức: Tốc độ = (Số xung đếm được / Độ phân giải encoder) * (60 / Khoảng thời gian đo). Kỹ thuật này đảm bảo việc đo tốc độ động cơ diễn ra chính xác và hiệu quả, cung cấp dữ liệu đầu vào tin cậy cho bộ điều khiển PID.

IV. Bí quyết lập trình nhúng STM32 điều khiển động cơ DC

Phần mềm là linh hồn của hệ thống, quyết định khả năng đáp ứng và độ chính xác của bộ điều khiển. Quá trình lập trình nhúng STM32 cho đồ án điều khiển động cơ 1 chiều thường bắt đầu với công cụ STM32CubeMX. Đây là một công cụ đồ họa giúp cấu hình các chân và các khối ngoại vi của vi điều khiển một cách trực quan, sau đó tự động sinh ra mã nguồn khởi tạo (initialization code). Việc này giúp tiết kiệm rất nhiều thời gian và giảm thiểu lỗi cấu hình. Lập trình viên sẽ sử dụng thư viện HAL (Hardware Abstraction Layer) do ST cung cấp để viết logic cho ứng dụng. Thư viện này cung cấp các hàm API cấp cao, dễ sử dụng để tương tác với các ngoại vi như Timer, GPIO, UART. Cấu trúc chương trình chính bao gồm một vòng lặp vô tận (while loop). Bên trong vòng lặp này, chương trình sẽ liên tục đọc giá trị tốc độ từ encoder, tính toán sai số, thực thi thuật toán PID để cập nhật giá trị PWM mới, và sau đó xuất giá trị PWM này ra Timer để điều khiển driver động cơ L298N. Việc hiển thị thông số lên hiển thị LCD cũng được thực hiện trong vòng lặp này. Môi trường lập trình phổ biến là Keil C for ARM.

4.1. Xây dựng lưu đồ thuật toán PID để ổn định tốc độ

Trái tim của phần mềm điều khiển là thuật toán PID. Lưu đồ thuật toán bắt đầu bằng việc đọc giá trị encoder và tính toán tốc độ thực tế (CurrentSpeed). Sau đó, tính toán sai số (Error = SetpointSpeed - CurrentSpeed). Dựa trên sai số này, ba thành phần của PID được tính toán: thành phần tỉ lệ (P = Kp * Error), thành phần tích phân (I = I_prev + Ki * Error * Dt), và thành phần vi phân (D = Kd * (Error - Error_prev) / Dt). Tín hiệu điều khiển đầu ra (Output) là tổng của ba thành phần này: Output = P + I + D. Giá trị Output này sau đó được giới hạn trong dải PWM cho phép (ví dụ 0-1000) và được cập nhật vào thanh ghi CCRx của Timer. Thành phần P giúp hệ thống đáp ứng nhanh, thành phần I giúp triệt tiêu sai số xác lập, và thành phần D giúp giảm vọt lố và cải thiện độ ổn định. Việc lựa chọn các hệ số Kp, Ki, Kd phù hợp (tuning) là bước quan trọng nhất để đạt được chất lượng điều khiển tốt nhất.

4.2. Cấu hình Timer cho PWM và chế độ đọc Encoder

Trong STM32, các bộ Timer là công cụ cực kỳ linh hoạt. Để điều khiển motor DC, cần sử dụng ít nhất hai bộ Timer. Timer thứ nhất (ví dụ TIM3) được cấu hình ở chế độ PWM Generation. Kênh của Timer này được kết nối với chân Enable của driver động cơ L298N. Tần số PWM thường được chọn khoảng 10-20kHz để tránh tiếng ồn và đảm bảo động cơ hoạt động mượt mà. Giá trị trong thanh ghi ARR quyết định chu kỳ (độ phân giải) của PWM, còn giá trị trong thanh ghi CCR quyết định độ rộng xung (duty cycle). Timer thứ hai (ví dụ TIM2) được cấu hình ở chế độ Encoder Mode. Các chân ngõ vào TI1 và TI2 của Timer này được nối với kênh A và B của encoder. Khi cấu hình ở chế độ này, phần cứng của Timer sẽ tự động xử lý các tín hiệu encoder để tăng/giảm bộ đếm, giúp việc đo tốc độ động cơ trở nên đơn giản và không tốn tài nguyên CPU.

V. Đánh giá kết quả thực nghiệm luận văn điều khiển động cơ

Kết quả của một luận văn tốt nghiệp điều khiển động cơ được đánh giá dựa trên sự tương thích giữa mô hình lý thuyết và sản phẩm thực tế. Đồ án này đã xây dựng thành công một mô hình phần cứng hoàn chỉnh, hoạt động ổn định. Mạch điều khiển sử dụng board STM32F4, kết nối với driver động cơ L298N, động cơ DC có gắn encoder, và một màn hình hiển thị LCD để giám sát và cài đặt thông số. Kết quả thực nghiệm cho thấy hệ thống có khả năng bám theo tốc độ đặt một cách chính xác. Khi thay đổi tốc độ đặt từ giao diện LCD, động cơ phản ứng nhanh chóng và đạt đến tốc độ mới trong thời gian ngắn. Quan trọng hơn, khi có tải đột ngột tác động lên trục động cơ, bộ điều khiển PID đã thể hiện rõ vai trò của mình. Tốc độ chỉ sụt giảm nhẹ trong một khoảnh khắc rất ngắn rồi nhanh chóng được hiệu chỉnh về giá trị đặt. Điều này chứng tỏ khả năng ổn định tốc độ của hệ thống là rất tốt. Các thông số như tốc độ đặt, tốc độ thực tế và các hệ số PID đều được hiển thị trực quan, giúp cho việc theo dõi và hiệu chỉnh (tuning) thuật toán trở nên dễ dàng. Những kết quả này khẳng định giải pháp điều khiển động cơ 1 chiều sử dụng vi xử lý stm32f4 là hoàn toàn khả thi và hiệu quả.

5.1. Mô phỏng Proteus và hình ảnh mạch điều khiển thực tế

Trước khi tiến hành lắp ráp mạch thật, bước mô phỏng Proteus đóng vai trò quan trọng trong việc kiểm tra sơ đồ nguyên lý. Mặc dù Proteus có thể không mô phỏng chính xác hoàn toàn hoạt động của STM32F4, nó vẫn hữu ích để kiểm tra logic kết nối của các khối như mạch nguồn, mạch driver L298N và giao tiếp LCD. Sau khi xác nhận thiết kế qua mô phỏng, mạch thực tế được thi công. Hình ảnh sản phẩm hoàn thiện cho thấy sự gọn gàng trong việc đi dây và bố trí linh kiện, bao gồm board STM32F4, module L298N có tản nhiệt, động cơ, và màn hình LCD 16x2. Sản phẩm thực tế hoạt động đúng như thiết kế, là minh chứng rõ ràng cho quá trình nghiên cứu và triển khai nghiêm túc.

5.2. Phân tích đáp ứng hệ thống với bộ điều khiển PID

Chất lượng của hệ thống được đánh giá qua đáp ứng của nó đối với các tín hiệu đầu vào. Khi cấp một giá trị tốc độ đặt dạng bậc thang (step input), đáp ứng của hệ thống cho thấy thời gian xác lập (settling time) ngắn và độ vọt lố (overshoot) thấp sau khi đã hiệu chỉnh các hệ số PID. Thí nghiệm quan trọng nhất là kiểm tra khả năng giữ ổn định tốc độ khi có nhiễu tải. Bằng cách dùng tay hãm nhẹ trục động cơ, một nhiễu tải được tạo ra. Hệ thống đã phản ứng gần như tức thời: giá trị PWM được tự động tăng lên để bù lại mô-men cản, giữ cho tốc độ quay chỉ dao động rất nhỏ quanh giá trị đặt. Điều này cho thấy thuật toán PID được cài đặt và hiệu chỉnh tốt, đảm bảo được mục tiêu cốt lõi của đề tài là ổn định tốc độ.

VI. Hướng phát triển cho luận văn tốt nghiệp điều khiển động cơ

Mặc dù đồ án đã đạt được các mục tiêu đề ra, vẫn có nhiều hướng để cải tiến và phát triển thêm, nâng cao tính năng và hiệu suất của hệ thống. Đây là những gợi ý quý báu cho các luận văn tốt nghiệp điều khiển động cơ trong tương lai. Về phần cứng, có thể nâng cấp mạch công suất để điều khiển các động cơ có công suất lớn hơn. Về phần mềm, có thể nghiên cứu và áp dụng các thuật toán điều khiển thông minh hơn, có khả năng tự động hiệu chỉnh thông số để thích ứng với sự thay đổi của hệ thống. Ngoài ra, việc phát triển giao diện người dùng (GUI) trên máy tính để giám sát và điều khiển hệ thống từ xa cũng là một hướng đi hấp dẫn, mang lại tính trực quan và tiện lợi. Việc mở rộng hệ thống để điều khiển đồng thời nhiều động cơ hoặc tích hợp vào một hệ thống lớn hơn như robot, máy CNC mini cũng là những ý tưởng đầy tiềm năng. Những cải tiến này không chỉ làm tăng giá trị học thuật của đề tài mà còn mở ra nhiều khả năng ứng dụng thực tiễn trong công nghiệp. Việc nghiên cứu sâu hơn về điều khiển động cơ 1 chiều sử dụng vi xử lý stm32f4 sẽ tiếp tục là một lĩnh vực quan trọng trong ngành tự động hóa.

6.1. Nâng cấp driver động cơ BTS7960 và giao tiếp UART

Để điều khiển các động cơ công suất lớn hơn, driver động cơ L298N có thể không đủ đáp ứng. Một lựa chọn nâng cấp phổ biến là module driver động cơ BTS7960. Module này có khả năng chịu dòng liên tục lên đến 43A, cao hơn rất nhiều so với L298N, đồng thời có hiệu suất cao hơn và tỏa nhiệt ít hơn. Thêm vào đó, việc tích hợp giao tiếp UART sẽ cho phép hệ thống gửi dữ liệu (tốc độ, dòng điện, trạng thái) lên máy tính để vẽ đồ thị và phân tích, hoặc nhận lệnh điều khiển từ một phần mềm GUI. Điều này rất hữu ích trong quá trình nghiên cứu và gỡ lỗi hệ thống.

6.2. Tối ưu thuật toán và điều khiển vị trí động cơ DC

Bên cạnh điều khiển tốc độ động cơ DC, một bài toán quan trọng khác là điều khiển vị trí động cơ DC. Bài toán này yêu cầu động cơ quay đến một góc chính xác và giữ vững tại vị trí đó. Về cơ bản, vẫn có thể sử dụng thuật toán PID, nhưng tín hiệu đầu vào và sai số lúc này sẽ là vị trí góc thay vì tốc độ. Có thể xây dựng một bộ điều khiển PID lồng nhau (cascade control), trong đó vòng lặp bên ngoài điều khiển vị trí và tạo ra giá trị tốc độ đặt cho vòng lặp bên trong. Ngoài ra, có thể nghiên cứu các thuật toán điều khiển tiên tiến hơn như điều khiển mờ (Fuzzy Logic) hoặc mạng nơ-ron để cải thiện khả năng đáp ứng và độ chính xác của hệ thống, đặc biệt với các hệ thống có đặc tính phức tạp và thay đổi theo thời gian.

13/07/2025
Đồ án tốt nghiệp điện tự động công nghiệp điều khiển động cơ 1 chiều sử dụng vi xử lý stm32f4

Trích đoạn nội dung tài liệu

Chương 1 Giới thiệu dòng vi điều khiển STM32 1. Khái niệm về Vi xử lý và Vi điều khiển 1. Vi xử lý Bộ vi xử lý (microprocessor) là một máy tính nhỏ hoặc CPU (đơn vị xử lý trung tâm) được sử dụng để tính toán, thực hiện phép toán logic, kiểm soát hệ thống và lưu trữ dữ liệu vv. Vi xử lý sẽ xử lý các dữ liệu đầu vào / đầu ra (input/output) thiết bị ngoại vi và đưa ra kết quả trở lại để chúng hoạt động.

Dòng vi xử lý 4 bit đầu tiên được Intel sản xuất vào tháng 11/1971 với tên gọi là 4004. 6f87e 1b11a 932da b860 f81 b6 f9bdc3 2eca c777 6e0cf7 b60da 52f6cf66 b5ff294 1e747 e e1b11a9 32da b860 f81 b6f9bdc32 ecac7776 e0cf7b60da5 2f6 cf66b5ff2941e 747e 6f8 7 932dab860 f81b6f9 bdc32e cac7776e 0cf7b6 0da5 2f6 cf66b5ff2 941e 747e6 f87e 1b1 1a 860f8 1b6 f9bdc32eca c77 76e0 cf7 b60 da52 f6cf66 b5ff29 41e74 7e6f87e1 b11a9 32da b f81b6f9 bdc32e cac7 776e0 cf7b6 0da52 f6 cf6 6b5ff2 941e7 47e6 f87e 1b11a 932da b86 0 6f9bdc3 2eca c77 76e0 cf7 b60 da52 f6cf66 b5ff294 1e74 7e6f87e1 b11a9 32dab860 f81 b dc32e cac7776 e0cf7b60da5 2f6 cf66b5ff2941e 747e 6f87 e1b1 1a932 dab8 60f81b6 f9 b 32eca c7776 e0cf7 b60da 52f6cf66b5ff2941 e747e 6f8 7e1b11a932 dab8 60f81b6 f9 bdc Hình 1. Sơ đồ khối hệ thống Vi xử lý c7776 e0cf7b60da 52f6 cf66b5ff2941 e747e 6f8 7e1b11a932 dab8 60f81b6 f9 bdc32e ca e0cf7b60 da52 f6 cf6 6b5ff2 941e7 47e6 f87e 1b11a 932da b860 f81 b6 f9bdc3 2eca c777 6 Các loại cấu trúc: fc3a3 f93a 08582 6d66a 60f835 d2406 ea15 f7e7 b88cbf5e9cb78 cc9e16 d1072 e24 c3ee4 7d0800 c6a8 0136 f54 da448 1c2 b397 7f6 f33 e0be 8a4b3 d678 cc5b77 828 cc3 7ae38 f66a4 9c84a7 1dc1cb825a 4f1 d7c732fb9a4 e5765 f83 10c1984 f96 1e06 cf3 fc71f185b5ad74 b fac7b7b2 0dfcfdcdf1 cf4 2b2 fc6 b5a c1e9 c4a51ae fef5b7 de7f4b3 cc9e5d780d33d5 94 9e3f2 1bf4656 147e4 1c5 63d1 76a97 9e946 6be8 9c63 c0e 2907 0df0e654 8e28 c32 c6 f8f7 7ea8e433 c9 f051 8c9 06b9a 684d9d02 5cb598 854db148 3a8024 9bc348 7e1be 4646 2d7a b f21d145b5b08 b8e1 f8 c76 f42 b4ce 759fb93 c48 e7f8a41e7 8571e 64a2 f48b0e5 c8d4 bb8 df3 fa34df8 f2c9de ba5dcb1e e30bc7d67cb1d4163 72d9 47cdab0 1c5 76b2 b2efb3 c49a2 08d258 539 bc6 96d5a 3b1a4 c49 7180 bae30 dc4 4793a3 dc5d19 4ad09 3cb5c3f9 9f2 02398 30ff2d29 b07 f39 d69e d7d2 e358bfca d25b40c5434 0e68a b4ee2 b76e0 b2a8 65300 be6e 0 95f4 fcb5fd1f4 934 f29e7 ee6d7cfa 31ddc0 5b49 f94 3c1 e22 f3b5 c0e4a d46 2e7c96fc5b 3f9 f11 c9f0 8a6db91a1 7118e 3de6 3e7a02 f9 c1d19137 7d0a7a 34d40ff5b8 453 f6f4e0e 59e15a9 f853 8397 40b3 e9ac33e6fc51 7d8 b739 3a5076 c67 d16e 7cc03df1 b1f0b9 fc0 46 3a67e368 0a4d3d50 cf8d5 f476 8201 e328 cbbba50 c741 ebd4f6 b2e1 0316e d218 e1d2 918 0d4204 90efb3ab05fb73 c76 f04 f402 4609 30bbbd8c70 8725 e74dc8 cf9a 5b23 c6 ce52 6d 5a2ffad28c03f5ddc8 b5b1 9f6 5a9a4 f8ff22e 5e28b515a6 e2baff25 e0185 e7457 d94 b3 6e74e1a5 eb8e 6a6629 e94dc3 b8533 4599 8a334 c325 5d17 f25 1a9f0fc09d15d4 76fc381 14dd4 024 c2f27f32d2 1896e 863 d2798 93b4 5fb87d4d3 b709a d32bf1 f855 3822 14eb1 0a 4a2b893 e6f264e6 3adfe30c144aa d9ad6 d154a 23f6b2 be48 d55b74c3677 f31a2 6752 77 Hình 1. Kiến trúc phần cứng của STM32 2 + Các vi xử lý đầu tiên sử dụng cấu trúc Von-Neumann.

Trong cấu trúc Von Neumann bộ nhớ dữ liệu và bộ nhớ chương trình được đặt trong một bộ nhớ. Để xử lý một lệnh từ bộ nhớ hoặc yêu cầu từ I / O, nó nhận được lệnh thông qua bus từ bộ nhớ hoặc I / O, và đặt vào thanh ghi, xử lý nó trong các thanh ghi. Bộ xử lý có thể lưu kết quả trong bộ nhớ thông qua các bus. Nhưng kiến trúc này có một số nhược điểm như chậm và quá trình truyền dữ liệu không đồng thời xảy ra cùng một lúc bởi vì chia sẻ cùng một bus chung.

+ Sau này cấu trúc Harvard (Atmega328, Atmega168,. Arduino đang dùng) được phát triển. Trong cấu trúc Harvard bộ nhớ dữ liệu và bộ nhớ chương trình và các bus được tách biệt với nhau. Ngoài ra còn có hai loại CPU micro programming và hardwired programming.

Microprogramming còn chậm khi so sánh với hardwired programming. + Kiến trúc tập lệnh Complex Instruction Set Computer: complex instruction set computer (CISC) là tập lệnh phức tạp nên sẽ tốn nhiều thời gian để thực hiện; tập lệnh phức tạp có thể bao gồm quá trình xử lý opcode và các toán hạng …vv tốc độ thực hiện lệnh sẽ chậm. Cấu trúc X86 là một ví dụ. 6f87e 1b11a 932da b860 f81 b6 f9bdc3 2eca c777 6e0cf7 b60da 52f6cf66 b5ff294 1e747 e + Reduced Instruction Set Computer: Reduced Instruction Set Computer e1b11a9 32da b860 f81 b6f9bdc32 ecac7776 e0cf7b60da5 2f6 cf66b5ff2941e 747e 6f8 7 932dab860 f81b6f9 bdc32e cac7776e 0cf7b6 0da5 2f6 cf66b5ff2 941e 747e6 f87e 1b1 1a (RISC) là tập lệnh thu gọn và tốc độ thực hiện nhanh.

Việc thực hiện rất 860f8 1b6 f9bdc32eca c77 76e0 cf7 b60 da52 f6cf66 b5ff29 41e74 7e6f87e1 b11a9 32da b f81b6f9 bdc32e cac7 776e0 cf7b6 0da52 f6 cf6 6b5ff2 941e7 47e6 f87e 1b11a 932da b86 0 6f9bdc3 2eca c77 76e0 cf7 b60 da52 f6cf66 b5ff294 1e74 7e6f87e1 b11a9 32dab860 f81 b đơn giản và không yêu cầu cấu trúc phức tạp. RISC được sử dụng rộng rãi dc32e cac7776 e0cf7b60da5 2f6 cf66b5ff2941e 747e 6f87 e1b1 1a932 dab8 60f81b6 f9 b 32eca c7776 e0cf7 b60da 52f6cf66b5ff2941 e747e 6f8 7e1b11a932 dab8 60f81b6 f9 bdc trong các ứng dụng hệ thống nhúng. SHARC và PowerPC sử dụng RISC. c7776 e0cf7b60da 52f6 cf66b5ff2941 e747e 6f8 7e1b11a932 dab8 60f81b6 f9 bdc32e ca e0cf7b60 da52 f6 cf6 6b5ff2 941e7 47e6 f87e 1b11a 932da b860 f81 b6 f9bdc3 2eca c777 6 fc3a3 f93a 08582 6d66a 60f835 d2406 ea15 f7e7 b88cbf5e9cb78 cc9e16 d1072 e24 c3ee4 Bộ vi xử lý thường được dùng trong các ứng dụng nhỏ.

Tùy theo các ứng 7d0800 c6a8 0136 f54 da448 1c2 b397 7f6 f33 e0be 8a4b3 d678 cc5b77 828 cc3 7ae38 f66a4 9c84a7 1dc1cb825a 4f1 d7c732fb9a4 e5765 f83 10c1984 f96 1e06 cf3 fc71f185b5ad74 b dụng và thiết bị ngoại vi bạn đang sử dụng mà có thể chọn bộ vi xử lý cần thiết fac7b7b2 0dfcfdcdf1 cf4 2b2 fc6 b5a c1e9 c4a51ae fef5b7 de7f4b3 cc9e5d780d33d5 94 9e3f2 1bf4656 147e4 1c5 63d1 76a97 9e946 6be8 9c63 c0e 2907 0df0e654 8e28 c32 c6 f8f7 để thực hiện. 7ea8e433 c9 f051 8c9 06b9a 684d9d02 5cb598 854db148 3a8024 9bc348 7e1be 4646 2d7a b f21d145b5b08 b8e1 f8 c76 f42 b4ce 759fb93 c48 e7f8a41e7 8571e 64a2 f48b0e5 c8d4 bb8 df3 fa34df8 f2c9de ba5dcb1e e30bc7d67cb1d4163 72d9 47cdab0 1c5 76b2 b2efb3 c49a2 1. Vi điều khiển(microcontroller) 08d258 539 bc6 96d5a 3b1a4 c49 7180 bae30 dc4 4793a3 dc5d19 4ad09 3cb5c3f9 9f2 02398 30ff2d29 b07 f39 d69e d7d2 e358bfca d25b40c5434 0e68a b4ee2 b76e0 b2a8 65300 be6e 0 Nó cũng là một máy tính nhỏ, trong đó CPU, bộ nhớ (RAM, ROM), I / O 95f4 fcb5fd1f4 934 f29e7 ee6d7cfa 31ddc0 5b49 f94 3c1 e22 f3b5 c0e4a d46 2e7c96fc5b 3f9 f11 c9f0 8a6db91a1 7118e 3de6 3e7a02 f9 c1d19137 7d0a7a 34d40ff5b8 453 f6f4e0e 59e15a9 f853 8397 40b3 e9ac33e6fc51 7d8 b739 3a5076 c67 d16e 7cc03df1 b1f0b9 fc0 46 thiết bị ngoại vi, timers, counters, được nhúng vào trong một mạch tích hợp (IC) 3a67e368 0a4d3d50 cf8d5 f476 8201 e328 cbbba50 c741 ebd4f6 b2e1 0316e d218 e1d2 918 0d4204 90efb3ab05fb73 c76 f04 f402 4609 30bbbd8c70 8725 e74dc8 cf9a 5b23 c6 ce52 6d nơi mà các bộ vi xử lý và tất cả các khối này được kết hợp vào trong một board 5a2ffad28c03f5ddc8 b5b1 9f6 5a9a4 f8ff22e 5e28b515a6 e2baff25 e0185 e7457 d94 b3 6e74e1a5 eb8e 6a6629 e94dc3 b8533 4599 8a334 c325 5d17 f25 1a9f0fc09d15d4 76fc381 thông qua hệ thống bus. Vi điều khiển có thể dễ dàng giao tiếp với thiết bị ngoại 14dd4 024 c2f27f32d2 1896e 863 d2798 93b4 5fb87d4d3 b709a d32bf1 f855 3822 14eb1 0a 4a2b893 e6f264e6 3adfe30c144aa d9ad6 d154a 23f6b2 be48 d55b74c3677 f31a2 6752 77 vi bên ngoài như cổng nối tiếp, ADC, DAC, Bluetooth, Wi-Fi, …vv quá trình giao tiếp nhanh hơn khi so sánh với các bộ vi xử lý.

Hầu hết các vi điều khiển sử 3 dụng cấu trúc RISC. Ngoài ra còn có một số vi điều khiển sử dụng cấu trúc CISC như 8051, motorolla, vv… Hình 1. Kiến trúc phần cứng Vi điều khiển 1. Đặc điểm nổi bật của STM32 Những đặc điểm nổi trội của dòng ARM Cortex đã thu hút các nhà sản xuất IC, hơn 240 dòng vi điều khiển dựa vào nhân Cortex đã được giới thiệu.

Không nằm ngoài xu hướng đó, hãng sản xuất chip ST Microelectronic đã nhanh chóng đưa ra dòng STM32F4. STM32F4 là vi điều khiển dựa trên nền tảng lõi ARM Cortex-M3 thế hệ mới do hãng ARM thiết kế. Lõi ARM Cortex-M3 là sự cải tiến từ lõi ARM7 truyền thống từng mang lại thành công vang dội cho công ty ARM. 6f87e 1b11a 932da b860 f81 b6 f9bdc3 2eca c777 6e0cf7 b60da 52f6cf66 b5ff294 1e747 e e1b11a9 32da b860 f81 b6f9bdc32 ecac7776 e0cf7b60da5 2f6 cf66b5ff2941e 747e 6f8 7 STM đã đưa ra thị trường 4 dòng vi điều khiển dựa trên ARM7 và ARM9, 932dab860 f81b6f9 bdc32e cac7776e 0cf7b6 0da5 2f6 cf66b5ff2 941e 747e6 f87e 1b1 1a 860f8 1b6 f9bdc32eca c77 76e0 cf7 b60 da52 f6cf66 b5ff29 41e74 7e6f87e1 b11a9 32da b f81b6f9 bdc32e cac7 776e0 cf7b6 0da52 f6 cf6 6b5ff2 941e7 47e6 f87e 1b11a 932da b86 0 nhưng STM32 là một bước tiến quan trọng trên đường cong chi phí và hiệu suất 6f9bdc3 2eca c77 76e0 cf7 b60 da52 f6cf66 b5ff294 1e74 7e6f87e1 b11a9 32dab860 f81 b dc32e cac7776 e0cf7b60da5 2f6 cf66b5ff2941e 747e 6f87 e1b1 1a932 dab8 60f81b6 f9 b (price/performance), giá chỉ gần 1 Euro với số lượng lớn, STM32 là sự thách 32eca c7776 e0cf7 b60da 52f6cf66b5ff2941 e747e 6f8 7e1b11a932 dab8 60f81b6 f9 bdc c7776 e0cf7b60da 52f6 cf66b5ff2941 e747e 6f8 7e1b11a932 dab8 60f81b6 f9 bdc32e ca e0cf7b60 da52 f6 cf6 6b5ff2 941e7 47e6 f87e 1b11a 932da b860 f81 b6 f9bdc3 2eca c777 6 thức thật sự với các vi điều khiển 8 và 16-bit truyền thống.

STM32 đầu tiên gồm fc3a3 f93a 08582 6d66a 60f835 d2406 ea15 f7e7 b88cbf5e9cb78 cc9e16 d1072 e24 c3ee4 7d0800 c6a8 0136 f54 da448 1c2 b397 7f6 f33 e0be 8a4b3 d678 cc5b77 828 cc3 7ae38 f66a4 14 biến thể khác nhau, được phân thành hai dòng: dòng Performance có tần số 9c84a7 1dc1cb825a 4f1 d7c732fb9a4 e5765 f83 10c1984 f96 1e06 cf3 fc71f185b5ad74 b fac7b7b2 0dfcfdcdf1 cf4 2b2 fc6 b5a c1e9 c4a51ae fef5b7 de7f4b3 cc9e5d780d33d5 94 hoạt động của CPU lên tới 72Mhz và dòng Access có tần số hoạt động lên tới 9e3f2 1bf4656 147e4 1c5 63d1 76a97 9e946 6be8 9c63 c0e 2907 0df0e654 8e28 c32 c6 f8f7 7ea8e433 c9 f051 8c9 06b9a 684d9d02 5cb598 854db148 3a8024 9bc348 7e1be 4646 2d7a b f21d145b5b08 b8e1 f8 c76 f42 b4ce 759fb93 c48 e7f8a41e7 8571e 64a2 f48b0e5 c8d4 bb8 36Mhz. Các biến thể STM32 trong hai nhóm này tương thích hoàn toàn về cách df3 fa34df8 f2c9de ba5dcb1e e30bc7d67cb1d4163 72d9 47cdab0 1c5 76b2 b2efb3 c49a2 08d258 539 bc6 96d5a 3b1a4 c49 7180 bae30 dc4 4793a3 dc5d19 4ad09 3cb5c3f9 9f2 02398 bố trí chân (pin) và phần mềm, đồng thời kích thước bộ nhớ FLASH ROM có 30ff2d29 b07 f39 d69e d7d2 e358bfca d25b40c5434 0e68a b4ee2 b76e0 b2a8 65300 be6e 0 95f4 fcb5fd1f4 934 f29e7 ee6d7cfa 31ddc0 5b49 f94 3c1 e22 f3b5 c0e4a d46 2e7c96fc5b 3f9 f11 c9f0 8a6db91a1 7118e 3de6 3e7a02 f9 c1d19137 7d0a7a 34d40ff5b8 453 f6f4e0e thể lên tới 512K và 64K SRAM.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ