Vô số bảng phát triển mà chúng tôi sử dụng thường xuyên, từ chính Arduino cho đến nhiều bảng khác, đều sử dụng Đơn vị MCU hoặc vi điều khiển. Một số chip quan trọng để có thể lập trình các thiết bị này và các hướng dẫn do người lập trình tạo ra có thể được xử lý để thu được kết quả như mong đợi.
Tuy nhiên, Lĩnh vực vi điều khiển khá rộng., cũng như trường hợp của CPU hoặc bộ vi xử lý, vì không chỉ có nhiều nhà thiết kế hoặc nhà sản xuất cũng như kiểu dáng mà còn có nhiều dòng khác nhau mà bạn nên biết. Vì vậy, chúng tôi sẽ dành bài viết này cho chính vấn đề này, để bạn biết cái nào có thể khiến bạn quan tâm nhất cho các dự án của mình…
Vi điều khiển hay MCU là gì?
Un vi điều khiển hoặc MCU (Bộ vi điều khiển) Nó là một thiết bị nhỏ gọn tích hợp các chức năng của bộ xử lý trung tâm (CPU), bộ nhớ và các thiết bị ngoại vi trên một con chip. Thiết bị này là trung tâm của nhiều hệ thống điện tử và là thiết bị cơ bản trong lĩnh vực điện tử nhúng. Nói tóm lại, đây là một sự thay thế tuyệt vời cho các thiết bị điện tử có dây, do đó cho phép một con chip duy nhất thực hiện vô số chức năng một cách linh hoạt vì nó có thể lập trình được.
Bộ vi điều khiển được sử dụng trong nhiều ứng dụng nhờ tính linh hoạt và hiệu quả của nó. Một số ví dụ về việc sử dụng bộ vi điều khiển bao gồm hệ thống điều khiển trong ô tô, thiết bị gia dụng, hệ thống tự động hóa công nghiệp, hệ thống điều khiển quá trình, đồ chơi, hệ thống an ninh, bảng phát triển và nhiều thiết bị điện tử khác.
Các bộ phận của vi điều khiển
Bộ vi điều khiển là thiết bị tích hợp và tất cả các thành phần của chúng được triển khai trên chip hoặc mạch tích hợp. Giưa phần cơ bản nhất trong số các chip này là:
- CPU (bộ phận xử lý trung tâm): Bộ xử lý trung tâm là bộ não của bộ vi điều khiển và là bộ phận quan trọng nhất của nó. Đơn vị này có nhiệm vụ sử dụng dữ liệu và hướng dẫn của chương trình để diễn giải và xử lý phù hợp tại các đơn vị thực thi nhằm thu được kết quả như mong đợi. Tức là CPU thực hiện mọi hoạt động tính toán và đưa ra quyết định dựa trên logic chương trình. Tốc độ và hiệu quả của CPU quyết định phần lớn đến hiệu suất của bộ vi điều khiển. Ngoài ra, chúng cũng thường có các bộ phận cơ bản như hệ thống ngắt, cho phép bộ vi điều khiển phản hồi kịp thời các sự kiện nhất định. Khi một sự kiện cụ thể xảy ra, chẳng hạn như đầu vào tín hiệu hoặc bộ hẹn giờ đạt đến một giá trị cụ thể, bộ vi điều khiển có thể ngắt tác vụ hiện tại của nó để phản hồi sự kiện này.
- Bộ nhớ: Chúng thường có hai loại bộ nhớ như RAM và flash. RAM được dùng để lưu trữ dữ liệu tạm thời, chẳng hạn như các lệnh tạo nên chương trình và dữ liệu (biến, hằng,...) trong quá trình thực thi chương trình. Mặc dù bộ nhớ flash được dùng để lưu trữ chương trình sẽ được thực thi và không dễ bay hơi như RAM nên khi mất điện hoặc tắt thiết bị, chương trình sẽ vẫn còn.
- Thiết bị ngoại vi đầu vào/đầu ra (I/O): cho phép vi điều khiển tương tác với thế giới bên ngoài. Chúng có thể bao gồm các cổng I/O kỹ thuật số, bộ chuyển đổi tương tự sang số (ADC), bộ chuyển đổi kỹ thuật số sang tương tự (DAC), giao diện truyền thông như UART, SPI và I2C, bộ điều khiển đa dạng, bộ hẹn giờ, bộ đếm, GPIO và người khác.
Nó khác với bộ vi xử lý hoặc CPU như thế nào?
Bộ vi xử lý và bộ vi điều khiển là hai thành phần cơ bản trong lĩnh vực điện tử, nhưng chúng có sự khác biệt đáng kể về cấu tạo và công dụng, thậm chí có nhiều người nhầm lẫn giữa 2 loại này hoặc cho rằng chúng giống nhau.
Trong khi CPU chỉ tích hợp đơn vị chức năng để điều khiển và giải thích các lệnh, thanh ghi cũng như các lệnh thực thi như ALU, FPU, v.v. và có thể được kết hợp với các phần tử phụ trợ khác theo cách linh hoạt hơn, bộ vi điều khiển có phần khép kín hơn theo nghĩa tích hợp đó nhiều bộ phận mà CPU bỏ đi. Trên thực tế, trong khi CPU là bộ não của máy tính thì MCU có thể được coi là một máy tính hoàn chỉnh vì nó bao gồm tất cả các bộ phận cơ bản trên một con chip.
Tuy nhiên, đừng nhầm lẫn sự hội nhập sâu rộng hơn với các điều khoản về độ phức tạp và hiệu suất. Trong khi các bộ vi xử lý hiện tại cực kỳ phức tạp và có hiệu suất rất cao thì các bộ vi điều khiển hiện tại thường có CPU tích hợp với hiệu suất thấp hơn và đơn giản hơn nhiều. Trên thực tế, nhiều bộ vi điều khiển ngày nay có thể có hiệu suất tương tự như các bộ vi xử lý từ nhiều thập kỷ trước. Hơn nữa, như chúng ta sẽ thấy sau, chúng ta thậm chí còn có bộ vi điều khiển 8 bit hoặc 16 bit giống như CPU của những năm 70.
Sự khác biệt so với SoC?
Vì bộ vi điều khiển tích hợp nhiều phần tử trên cùng một con chip, Nó cũng thường bị nhầm lẫn với SoC (System on a Chip)Tuy nhiên, nó cũng không giống nhau. Cũng như CPU vs MCU, SoC cũng tích hợp CPU có hiệu suất cao hơn nhiều so với hầu hết các bộ vi điều khiển hiện nay. Hơn nữa, SoC là một hệ thống phức tạp và tiên tiến hơn rất nhiều. Mặt khác, SoC thường không tích hợp một số bộ phận được tích hợp vào bộ vi điều khiển, vì các ứng dụng mà nó dự định sử dụng không yêu cầu nó, chẳng hạn như RAM và bộ nhớ flash, bộ chuyển đổi ADC, v.v.
Một chút lịch sử
Các bộ vi xử lý đa mạch đời đầu, chẳng hạn như AL1 của Hệ thống bốn pha năm 1969 và MP944 của Garrett AiResearch năm 1970, được phát triển với nhiều chip MOS LSI. Bộ vi xử lý đơn chip đầu tiên là Intel 4004, được phát hành vào năm 1971. Những bộ xử lý này yêu cầu một số chip bên ngoài để triển khai một hệ thống chức năng, điều này rất đắt tiền. Tuy nhiên, gần như song song, những gì chúng ta biết ngày nay là vi điều khiển đã được phát triển. ANH TA được quy cho các kỹ sư CNTT, Gary Boone và Michael Cochran, việc tạo thành công bộ vi điều khiển đầu tiên vào năm 1971, TMS 1000, kết hợp bộ nhớ chỉ đọc, bộ nhớ đọc/ghi, bộ xử lý và đồng hồ trên một chip đơn. Trên thực tế, mặc dù đây là một câu chuyện khác nhưng nó đã tạo ra một cuộc chiến bằng sáng chế và các vụ kiện về quyền tác giả của bộ vi xử lý...
Trong những năm 1970, Các nhà sản xuất điện tử Nhật Bản bắt đầu sản xuất bộ vi điều khiển cho ô tô. Chúng dần dần trở nên phổ biến và để đáp lại sự tồn tại của chip đơn TMS 1000, Intel đã phát triển một hệ thống máy tính trên chip được tối ưu hóa cho các ứng dụng điều khiển, Intel 8048, kết hợp RAM và ROM trên cùng một chip cùng với CPU. Theo thời gian, những ký ức bất biến đã được cải thiện và từ chỗ được ghi lại tại nhà máy với chương trình cố định như các ROM đầu tiên cho đến khi PROM hoặc EEPROM ra đời năm 1993, cho phép xóa và lập trình lại nó. với chương trình khác một cách đơn giản và bao nhiêu lần tùy thích.
Dần dần, các công ty ra đời xoay quanh loại chip này, chẳng hạn như Atmel, Công nghệ Microchip và nhiều công nghệ khác. Các công ty khác trong lĩnh vực này cũng bắt đầu phân phối MCU của riêng mình như Intel, Analog Devices, Cypress, AMD, ARM, Hitachi, EPSON, Motorola, Zilog, Infineon, Lattice, National Semiconductor, NEC, Panasonic, Renesas, Rockell, Sony , STMicroelectronics , Tóm tắt, Toshiba, v.v.
Ngày nay, bộ vi điều khiển rẻ và dễ tiếp cận đối với những người có sở thích và vô số lĩnh vực công nghiệp khác nhau. Hơn nữa, người ta ước tính rằng chúng được bán gần 5 tỷ đơn vị 8-bit trên toàn thế giới, được sử dụng nhiều nhất hiện nay. Bạn có thể tìm thấy chúng trong các thiết bị gia dụng, xe cộ, máy tính, điện thoại, máy công nghiệp, v.v. Hơn nữa, họ đã cố gắng thu nhỏ đến mức tối đa, tạo ra một số máy tính nhỏ nhất trên thế giới, thậm chí nhỏ hơn nhiều so với một hạt muối...
Họ ISA và vi điều khiển
Bây giờ bạn đã biết thêm một chút về MCU hoặc vi điều khiển là gì, hãy xem một số gia đình quan trọng nhất của các vi điều khiển này. Và, giống như CPU, chúng có thể được phân chia theo ISA, tức là các tập lệnh, thanh ghi và kiểu dữ liệu được sử dụng và tính tương thích của các chương trình nhị phân có thể được thực thi sẽ phụ thuộc vào điều này, khiến chúng không tương thích. giữa các gia đình. Và những dòng này hoàn toàn độc lập với kiểu máy, nhãn hiệu hoặc các đơn vị có trong chip.
Entre las gia đình nổi tiếng nhất chúng tôi có những thứ sau:
- Những đứa trẻ: là thế hệ lõi mềm dành cho FPGA của Altera, hiện được Intel tiếp thu.
- Vây đen: là dòng bộ vi xử lý 16/32-bit được phát triển, sản xuất và tiếp thị bởi Analog Devices. Bộ xử lý cũng có chức năng xử lý tín hiệu số (DSP) tích hợp, được thực hiện bằng phép tích lũy nhân 16 bit (MAC).
- TigerSHARC: là viết tắt của Máy tính chip đơn kiến trúc Super Harvard, cũng của Analog Devices. Trong trường hợp này, chúng lý tưởng cho các ứng dụng yêu cầu hiệu năng tính toán cao với mức tiêu thụ điện năng thấp. Những bộ xử lý này cung cấp một kiến trúc bộ nhớ độc đáo cho phép truy cập hiệu quả vào dữ liệu và hướng dẫn mà không ảnh hưởng đến hiệu năng như các kiến trúc bus Von Neumann.
- Cortex-M- Bộ vi điều khiển Cortex-M của ARM là dòng vi điều khiển 32-bit phổ biến, rất tiết kiệm điện và mang lại hiệu năng tốt. Chúng đặc biệt phổ biến trong các ứng dụng công nghiệp và tiêu dùng và hiện đại diện cho phần lớn các chip hiện đại được nhiều công ty bán ra.
- AVR32: Đây là kiến trúc vi điều khiển RISC 32-bit do Atmel sản xuất và bạn có thể tìm thấy nó trên nhiều bảng phát triển, chẳng hạn như Arduino và các bản sao của nó.
- RISC-V: ISA mở này nhằm mục đích vượt qua ARM và dần dần nó bắt đầu có tầm quan trọng trong thế giới vi điều khiển, vì nó rất linh hoạt và cho phép sử dụng mà không phải trả tiền bản quyền.
- PIC- là dòng vi điều khiển 8 bit được phát triển bởi Microchip Technology, nổi tiếng với kiến trúc RISC tiên tiến và khá phổ biến trong ngành.
- Quyền lựcQUICC: dựa trên công nghệ Power Architecture của IBM và được Motorola (nay là Freescale) sử dụng, chúng hỗ trợ toàn bộ thiết bị mạng nhúng, các ứng dụng nhúng công nghiệp và nói chung.
- Biệt thự: Đây là các MCU của Fujitsu và tập trung vào các sản phẩm analog và kỹ thuật số, đồng thời được thiết kế để mang lại hiệu quả và hiệu suất cân bằng.
- 8051: Đây là bộ vi điều khiển 8 bit do Intel phát triển, mặc dù bây giờ bạn cũng sẽ thấy nó được sản xuất bởi các công ty khác. Nó là một trong những bộ vi điều khiển phổ biến nhất và được sử dụng trong rất nhiều ứng dụng. 8051 là bộ vi điều khiển CISC dựa trên kiến trúc Harvard.
- TriCore: là một bộ vi điều khiển được phát triển bởi Infineon Technologies. TriCore hợp nhất các thành phần của lõi bộ xử lý RISC, bộ vi điều khiển và DSP trên một chip đơn. Vào thời điểm đó nó là một cuộc cách mạng.
- MC-48 hoặc 8048: Đây là bộ vi điều khiển dòng Intel, có 64 byte RAM và truy cập vào 4096 byte bộ nhớ chương trình bên ngoài.
- Mico8- là họ vi điều khiển 8 bit được triển khai hoàn toàn bằng bộ nhớ và logic đa năng dành cho Lattice FPGA.
- Propeller: Kiến trúc đa lõi 32-bit được phát triển bởi Parallax Inc. Mỗi Propeller có 8 bộ xử lý 32-bit giống hệt nhau được kết nối với một hub chung.
- Tem cơ bản- là một bộ vi điều khiển với một trình thông dịch BASIC chuyên dụng nhỏ (PBASIC) được tích hợp trong ROM. Nó được sản xuất bởi Parallax, Inc và là một sản phẩm khá phổ biến dành cho các nhà sản xuất muốn thực hiện vô số dự án tại nhà trước khi Arduino được phát hành.
- siêu H: là kiến trúc tập lệnh điện toán RISC 32-bit do Hitachi phát triển và hiện do Renesas sản xuất, tập trung vào bộ vi điều khiển cho các hệ thống nhúng.
- tiva: là một bộ vi điều khiển được phát triển bởi Texas Instruments. Nó có tần số xung nhịp bộ xử lý tích hợp lên tới 80 MHz với đơn vị dấu phẩy động (FPU), với hiệu suất tuyệt vời.
- Microblaze: là một hệ thống xử lý tích hợp cao dành cho các ứng dụng điều khiển. MicroBlaze được triển khai hoàn toàn trong bộ nhớ và logic mục đích chung của FPGA Xilinx (nay là AMD), tức là lõi mềm.
- Picoblaze: tương tự như phiên bản trước, nhưng trong trường hợp này là 8-bit và đơn giản hơn, dành cho nhiều ứng dụng tích hợp hơn.
- XCore: Chúng là các MCU đa lõi XMOS, 32 bit được lập trình trong môi trường ngôn ngữ C và hoạt động xác định và có độ trễ thấp. Chúng rất đầy đủ và có thể được thực hiện dưới dạng ô xếp.
- Z8: là của Zilog và chúng là các thiết bị 8 bit cung cấp nhiều tùy chọn về hiệu suất và tài nguyên. Những bộ vi điều khiển này lý tưởng cho các ứng dụng có khối lượng lớn, nhạy cảm về chi phí, bao gồm các sản phẩm tiêu dùng, ô tô, an ninh và HVAC.
- Z180: Đây là một trong những cái phổ biến khác trong Zilog trước khi phát hành eZ mới đã cập nhật các phạm vi trước đó. Nó bao gồm bộ xử lý 8 bit, tương thích với nền tảng phần mềm lớn được viết cho Z80. Dòng Z180 bổ sung hiệu suất cao hơn và các tính năng ngoại vi tích hợp như bộ tạo xung nhịp, bộ đếm/bộ định thời 16 bit, bộ điều khiển ngắt, bộ tạo trạng thái chờ, cổng nối tiếp và bộ điều khiển DMA.
- STM: Dòng STMicroelectronics này có một số đơn vị MCU dựa trên kiến trúc riêng của công ty này, mặc dù trong các mẫu mới nhất, nó đã được chọn, giống như trong nhiều trường hợp khác, để tích hợp Dòng ARM Cortex-M 32-bit. Nó cung cấp các sản phẩm kết hợp hiệu suất rất cao, khả năng thời gian thực, xử lý tín hiệu số, vận hành và kết nối năng lượng thấp/điện áp thấp, trong khi vẫn duy trì sự tích hợp hoàn chỉnh và dễ dàng phát triển.
Còn nhiều nữa nhưng đây là những điều quan trọng nhất…