Vi mạch được thiết kế để điều khiển các thiết bị điện tử. Lập trình vi điều khiển

Hệ thống vi xử lý(MPS) là một sản phẩm hoàn chỉnh về mặt chức năng bao gồm một hoặc nhiều thiết bị, chủ yếu dựa trên vi xử lý: vi xử lý hoặc vi điều khiển.

Bộ vi xử lý(MP) là một thiết bị được điều khiển bằng phần mềm ("bộ xử lý") thực hiện các phép toán số học, logic, xử lý và điều khiển thông tin kỹ thuật số trên một mạch tích hợp lớn (LSI) hoặc một bộ vi mạch chuyên dụng.

Vi điều khiển(MK) là một vi mạch được thiết kế để điều khiển các thiết bị điện tử. kết hợp các chức năng của bộ vi xử lý và các thiết bị ngoại vi khác nhau trên một chip, chứa RAM hoặc ROM. Về cơ bản, nó là một máy tính chip đơn có khả năng thực hiện các tác vụ đơn giản.

thiết bị vi xử lý(MPU), là một sản phẩm hoàn chỉnh về mặt chức năng và cấu trúc, bao gồm một số vi mạch, trong đó bao gồm một bộ vi xử lý; nó được thiết kế để thực hiện một số chức năng nhất định: nhận, xử lý, truyền, chuyển đổi thông tin và quản lý.

Theo đặc điểm chức năng của chúng, bộ vi xử lý được chia thành MP đa năng và MP chuyên dụng. Sau này được chia thành bộ vi điều khiển và bộ xử lý tín hiệu kỹ thuật số (DSP). MCU có sẵn ở 8, 16 và 32-bit, và DSP là điểm cố định (16 và 24-bit) và dấu phẩy động (32-bit). Một đặc điểm đặc trưng trong cấu trúc của vi điều khiển là việc bố trí bộ nhớ trong và một tập hợp lớn các thiết bị ngoại vi trên cùng một chip với bộ xử lý trung tâm.

Ngành kiến ​​trúc bộ xử lý là một tổ hợp phần cứng và phần mềm của nó được cung cấp cho người dùng. Khái niệm chung này bao gồm một tập hợp các thanh ghi có thể truy cập phần mềm và các thiết bị điều hành (hoạt động), một hệ thống các lệnh cơ bản và các phương pháp định địa chỉ, số lượng và cấu trúc của bộ nhớ được định địa chỉ, các loại và phương pháp xử lý ngắt.

CISC- kiến ​​trúc được thực hiện trong nhiều loại bộ vi xử lý thực thi một tập hợp lớn các lệnh đa định dạng bằng cách sử dụng nhiều phương pháp định địa chỉ. RISC- Kiến trúc được phân biệt bởi việc sử dụng một tập hợp các lệnh giới hạn trong một định dạng cố định. VLIW- kiến ​​trúc này xuất hiện vào những năm 1990. Tính đặc thù của nó là sử dụng các lệnh rất dài (lên đến 128 bit hoặc hơn), các trường riêng lẻ chứa các mã đảm bảo thực hiện các hoạt động khác nhau.

Kiến trúc Princeton(Von Neumann), được đặc trưng bởi việc sử dụng RAM dùng chung để lưu trữ các chương trình, dữ liệu và để tổ chức ngăn xếp. Để truy cập bộ nhớ này, một bus hệ thống chung được sử dụng, qua đó cả lệnh và dữ liệu đều được gửi đến bộ xử lý. Sự hiện diện của bộ nhớ dùng chung cho phép bạn nhanh chóng phân phối lại dung lượng của nó để lưu trữ các mảng hướng dẫn, dữ liệu và triển khai ngăn xếp riêng biệt, tùy thuộc vào các nhiệm vụ cần giải quyết. Harvard- tách biệt vật lý của bộ nhớ lệnh (chương trình) và bộ nhớ dữ liệu. Phiên bản ban đầu của nó cũng sử dụng một ngăn xếp riêng biệt. Mỗi bộ nhớ được kết nối với bộ xử lý bằng một bus riêng biệt, cho phép đồng thời đọc và ghi dữ liệu trong khi thực hiện lệnh hiện tại, tìm nạp và giải mã lệnh tiếp theo. hiệu suất tốt hơn so với sử dụng kiến ​​trúc Princeton.

Thiết kế chương trình. một chương trình được thiết kế để đáp ứng các yêu cầu của câu lệnh vấn đề. Sau khi nhiệm vụ tổng thể được đặt ra, giai đoạn thiết kế chương trình được thực hiện, theo truyền thống được kết hợp với việc vẽ sơ đồ khối chương trình, tuy nhiên, ở giai đoạn phát triển chương trình, rất hữu ích nếu áp dụng các phương pháp thiết kế sau:

Lập trình mô-đunđược gọi là một phương pháp trong đó các chương trình dài được tách thành các chương trình ngắn hơn (mô-đun).

Lập trình từ trên xuốngđược gọi là một phương pháp trong đó nhiệm vụ đã phát triển được chia thành nhiều nhiệm vụ tổng quát, sau đó được chi tiết hóa thêm. Quá trình này tiếp tục từ trên xuống dưới cho đến khi các nhiệm vụ con kết quả được thực hiện theo cách mà chúng có thể được thực hiện một cách đơn giản trên máy tính. Lập trình có cấu trúcđược gọi là một phương thức trong đó các chương trình được viết theo các quy tắc được phát triển đặc biệt (chúng chỉ sử dụng một số loại toán tử chương trình nhất định) và mỗi khối chương trình chỉ có một đầu vào và một đầu ra.

Tổ chức bộ nhớ vi điều khiển
Cổng I / O
Bộ đếm thời gian
Ngắt
Bộ chuyển đổi tương tự sang kỹ thuật số
Giao diện truyền thông
  • Bộ thu phát đồng bộ-không đồng bộ đa năng USART

Video khóa học lập trình vi điều khiển STM32

Bộ vi xử lýđược gọi là thiết bị điều khiển bằng phần mềm thực hiện quá trình xử lý và điều khiển thông tin số. Bộ vi xử lý được thực hiện dưới dạng mạch tích hợp lớn (LSI) hoặc cực lớn (VLSI). Bộ vi xử lý đóng vai trò của một bộ xử lý trong các hệ thống kỹ thuật số cho nhiều mục đích khác nhau.

Tính năng chính của bộ vi xử lý là khả năng lập trình logic hoạt động.

Bộ vi điều khiển (MCU)- một vi mạch được thiết kế để điều khiển các thiết bị điện tử. Một bộ vi điều khiển điển hình kết hợp các chức năng của bộ xử lý và các thiết bị ngoại vi, đồng thời có thể chứa RAM và ROM. Về cơ bản, nó là một máy tính chip đơn có khả năng thực hiện các tác vụ đơn giản. Việc sử dụng một vi mạch duy nhất thay vì cả bộ, như trong trường hợp các bộ xử lý thông thường được sử dụng trong máy tính cá nhân, làm giảm đáng kể kích thước, mức tiêu thụ điện năng và chi phí của các thiết bị dựa trên vi điều khiển.

Hệ thống vi xử lý (MPS) là một sản phẩm hoàn chỉnh về mặt chức năng bao gồm một hoặc nhiều thiết bị, chủ yếu dựa trên bộ vi xử lý: bộ vi xử lý và / hoặc bộ vi điều khiển.

Thiết bị vi xử lý (MPU) là một sản phẩm hoàn chỉnh về mặt chức năng và cấu trúc bao gồm một số vi mạch, trong đó bao gồm một bộ vi xử lý; nó được thiết kế để thực hiện một số chức năng nhất định: nhận, xử lý, truyền, chuyển đổi thông tin và quản lý.

Những ưu điểm chính của hệ thống vi xử lý so với các hệ thống kỹ thuật số dựa trên "logic cứng".

  • Đa chức năng: nhiều chức năng hơn có thể được thực hiện trên một cơ sở phần tử.
  • Tính linh hoạt: khả năng hiệu chỉnh và sửa đổi chương trình vi xử lý để thực hiện các chế độ hoạt động khác nhau của hệ thống.
  • Tính nhỏ gọn: kích thước thu nhỏ của vi mạch và việc giảm số lượng của chúng so với việc thực hiện trên "logic cứng" cho phép giảm kích thước của thiết bị.
  • Cải thiện khả năng chống nhiễu: Ít dây dẫn kết nối hơn làm tăng độ tin cậy của thiết bị.
  • Hiệu suất: khả năng sử dụng tần số hoạt động cao hơn và các thuật toán xử lý thông tin phức tạp hơn.
  • Bảo vệ thông tin: khả năng bảo vệ chương trình vi xử lý khỏi bị đọc cho phép bạn bảo vệ bản quyền của các nhà phát triển.

Mặc dù bộ vi xử lý là một phương tiện phổ biến để xử lý thông tin kỹ thuật số, một số lĩnh vực ứng dụng yêu cầu thực hiện các tùy chọn cụ thể nhất định cho cấu trúc và kiến ​​trúc của chúng. Do đó, theo đặc tính chức năng, người ta phân biệt hai lớp: bộ vi xử lý đa năng và bộ vi xử lý chuyên dụng. Trong số các bộ vi xử lý chuyên dụng, phổ biến nhất là các bộ vi điều khiển được thiết kế để thực hiện các chức năng điều khiển cho các đối tượng khác nhau và bộ xử lý tín hiệu số (DSP - Digital Signal Processor), tập trung vào việc thực hiện các thủ tục cung cấp chuyển đổi cần thiết các tín hiệu tương tự được trình bày ở dạng kỹ thuật số.

Danh sách không đầy đủ các thiết bị ngoại vi có thể có trong vi điều khiển bao gồm:

  • các giao diện I / O khác nhau như UART, I²C, SPI, CAN, USB, ETHERNET;
  • bộ chuyển đổi tương tự sang kỹ thuật số và kỹ thuật số sang tương tự;
  • bộ so sánh;
  • bộ điều biến độ rộng xung;
  • bộ đếm thời gian;
  • máy phát đồng hồ;
  • bộ điều khiển màn hình và bàn phím;
  • mảng bộ nhớ flash tích hợp.

Ý tưởng đặt một bộ vi xử lý và các thiết bị ngoại vi trên một con chip duy nhất thuộc về hai kỹ sư M. Kochren và G. Boone, nhân viên của Texas Instruments. Bộ vi điều khiển đầu tiên là TMS1000 4-bit của Texas Instruments, chứa RAM (32 byte), ROM (1 KB), xung nhịp và hỗ trợ I / O. Được phát hành vào năm 1972, nó có một tính năng mới cho những thời điểm đó - việc bổ sung các hướng dẫn mới.

Năm 1976 (5 năm sau khi tạo ra bộ vi xử lý đầu tiên) bộ vi điều khiển đầu tiên của Intel, tên là 8048, ra đời. Ngoài bộ xử lý trung tâm, con chip này còn chứa 1 kilobyte bộ nhớ chương trình, 64 byte bộ nhớ dữ liệu, hai tám- bộ định thời bit, bộ tạo xung nhịp và 27 cổng vào-ra. Các bộ vi điều khiển thuộc họ 8048 đã được sử dụng trong bảng điều khiển trò chơi Magnavox Odyssey, trong bàn phím của các PC IBM đầu tiên và trong một số thiết bị khác.

Ngày nay, trong số các nhà sản xuất vi điều khiển lớn phải kể đến Atmel, Microchip, ST Microelectronics, Texas Instruments, Freescale Semiconductor, NXP,….

Vi điều khiển - một vi mạch được thiết kế để điều khiển các thiết bị điện tử. Một bộ vi điều khiển điển hình kết hợp các chức năng của bộ xử lý và các thiết bị ngoại vi trên một chip duy nhất, chứa RAM và / hoặc ROM. Về cơ bản, nó là một máy tính chip đơn có khả năng thực hiện các tác vụ tương đối đơn giản.

Sự ra đời của vi máy tính một chip gắn liền với sự khởi đầu của kỷ nguyên ứng dụng hàng loạt tự động hóa máy tính trong lĩnh vực điều khiển. Rõ ràng, tình huống này đã xác định thuật ngữ "người điều khiển".

Do sản xuất trong nước suy giảm và nhập khẩu thiết bị tăng lên, bao gồm cả máy tính, thuật ngữ "vi điều khiển" (MC) đã thay thế thuật ngữ "máy tính vi mạch một chip" được sử dụng trước đây.

Bằng sáng chế đầu tiên cho máy vi tính một chip được cấp vào năm 1971 cho các kỹ sư M. Kochren và G. Boone, nhân viên của American Texas Instruments. Chính họ đã đề xuất không chỉ đặt bộ xử lý mà còn cả bộ nhớ với các thiết bị đầu vào - đầu ra trên một tinh thể.

Năm 1976, công ty Intel của Mỹ đã phát hành bộ vi điều khiển i8048. Năm 1978, Motorola phát hành bộ vi điều khiển MC6801 đầu tiên của mình, tương thích với bộ vi xử lý MC6800 đã phát hành trước đó. 4 năm sau, vào năm 1980, Intel đã phát hành bộ vi điều khiển sau: i8051. Một bộ thiết bị ngoại vi thành công, sự lựa chọn linh hoạt của bộ nhớ chương trình bên ngoài hoặc bên trong và giá cả hợp lý đã đảm bảo cho bộ vi điều khiển này thành công trên thị trường. Theo quan điểm của công nghệ, bộ vi điều khiển i8051 là một sản phẩm rất phức tạp vào thời đó - 128 nghìn bóng bán dẫn được sử dụng trong tinh thể, nhiều gấp 4 lần số bóng bán dẫn trong bộ vi xử lý 16-bit i8086.

Ngày nay, có hơn 200 sửa đổi của bộ vi điều khiển tương thích với i8051, do hai chục công ty sản xuất và một số lượng lớn các loại vi điều khiển khác. Phổ biến trong số các nhà phát triển là vi điều khiển PIC 8-bit từ Microchip Technology và AVR từ Atmel, 16-bit MSP430 từ TI, cũng như vi điều khiển 32-bit, kiến ​​trúc ARM, được phát triển bởi ARM Limited và bán giấy phép cho các công ty khác để sản xuất . Bất chấp sự phổ biến của các bộ vi điều khiển nói trên ở Nga, theo Gartner Grup từ năm 2009, xếp hạng thế giới về doanh số bán hàng có vẻ khác: Renesas Electronics chiếm vị trí đầu tiên với tỷ lệ lớn trên Freescale thứ hai, thứ ba.

Hệ thống vi xử lý là một hệ thống máy tính, thiết bị đo lường hoặc điều khiển, thiết bị xử lý thông tin chính trong đó là MP. Hệ thống vi xử lý được xây dựng từ một tập hợp các mạch tích hợp lớn dựa trên bộ vi xử lý (LSI).

Các tính năng đặc trưng của hệ thống thông tin và điều khiển dựa trên vi xử lý nhằm mục đích tự động hóa các quy trình công nghệ: sự hiện diện của một nhóm hạn chế các nhiệm vụ được xây dựng rõ ràng, hoạt động trong thời gian thực, sự hiện diện của một hệ thống thiết bị bên ngoài được phát triển, yêu cầu độ tin cậy cao, tính toán thời gian hoạt động liên tục dài, điều kiện vận hành khó khăn; cung cấp chế độ vận hành tự động hoặc chế độ có sự tham gia của người vận hành như một thành phần của hệ thống.

Việc sử dụng trong một bộ vi điều khiển hiện đại của một thiết bị tính toán đủ mạnh với khả năng rộng rãi, được xây dựng trên một vi mạch duy nhất thay vì toàn bộ, làm giảm đáng kể kích thước, mức tiêu thụ điện năng và chi phí của các thiết bị được xây dựng trên cơ sở đó. Được sử dụng để điều khiển các thiết bị khác nhau và các đơn vị riêng lẻ của chúng:

Trong tin học: bo mạch chủ, bộ điều khiển cho ổ đĩa cứng và mềm, đĩa CD và DVD;

Trong lĩnh vực điện tử và các thiết bị gia dụng khác nhau có sử dụng hệ thống điều khiển điện tử - máy giặt, lò vi sóng, máy rửa bát, điện thoại và các thiết bị hiện đại;

Trong ô tô: máy tính trên xe, hệ thống quản lý động cơ, v.v.;

Trong công nghiệp: các thiết bị tự động hóa công nghiệp - từ rơ le lập trình và hệ thống nhúng đến PLC, hệ thống điều khiển máy công cụ.

Hiện nay, có một danh pháp khổng lồ (hơn 10.000) bộ vi điều khiển khác nhau, khác nhau về phạm vi ứng dụng, thông số, các nút ngoại vi được tích hợp trong tinh thể. Hơn một chục nhà sản xuất đang tham gia vào việc phát hành vi điều khiển.

  • GIỚI THIỆU
    • 1.1 Phân loại và cấu trúc của vi điều khiển
    • 1.2 Cấu trúc của lõi xử lý của vi điều khiển
    • 2. Phần đặc biệt
    • 2.1 Kiến trúc bộ xử lý CISC và RISC
    • 2.2 Kiến trúc RISC.
    • 2.3 Vi điều khiển với kiến ​​trúc RISC
    • Sự kết luận
    • Danh sách tài liệu đã sử dụng
GIỚI THIỆU Vi điều khiển (MCU) là một vi mạch được thiết kế để điều khiển các thiết bị điện tử. Một bộ vi điều khiển điển hình kết hợp các chức năng của bộ xử lý và các thiết bị ngoại vi, đồng thời có thể chứa RAM và ROM. Về cơ bản, nó là một máy tính chip đơn có khả năng thực hiện các tác vụ đơn giản. Việc sử dụng một vi mạch duy nhất thay vì cả bộ, như trong trường hợp của các bộ vi xử lý thông thường được sử dụng trong máy tính cá nhân, làm giảm đáng kể kích thước, mức tiêu thụ điện năng và chi phí của các thiết bị dựa trên vi điều khiển. Bộ vi điều khiển là cơ sở để xây dựng các hệ thống nhúng, chúng có thể được tìm thấy trong nhiều thiết bị hiện đại, chẳng hạn như điện thoại, máy giặt, v.v. Thuật ngữ "vi điều khiển" (MC) đã thay thế thuật ngữ "máy tính vi mạch đơn" được sử dụng trước đây. Bằng sáng chế đầu tiên cho máy vi tính một chip được cấp vào năm 1971 cho các kỹ sư M. Kochren và G. Boone, nhân viên của Texas Instruments. Chính họ đã đề xuất đặt không chỉ một bộ vi xử lý mà còn cả bộ nhớ, các thiết bị đầu vào - đầu ra trên một tinh thể. Sự ra đời của vi máy tính một chip gắn liền với sự khởi đầu của kỷ nguyên máy tính tự động hóa trong lĩnh vực điều khiển. Rõ ràng, tình huống này đã định nghĩa thuật ngữ "vi điều khiển" (điều khiển). Năm 1979, Viện Nghiên cứu TT đã phát triển một máy tính 16-bit chip đơn K1801BE1, kiến ​​trúc của nó được gọi là "Điện tử NC". Năm 1980, Intel phát hành vi điều khiển i8048. Cuối cùng năm đó, Intel đã phát hành bộ vi điều khiển sau: i8051. Một bộ thiết bị ngoại vi thành công, sự lựa chọn linh hoạt của bộ nhớ chương trình bên ngoài hoặc bên trong và giá cả hợp lý đã đảm bảo cho bộ vi điều khiển này thành công trên thị trường. Theo quan điểm của công nghệ, bộ vi điều khiển i8051 là một sản phẩm rất phức tạp vào thời của nó - 128 nghìn bóng bán dẫn được sử dụng trong tinh thể, nhiều hơn 4 lần so với số bóng bán dẫn trong bộ vi xử lý 16-bit i8086. Ngày nay có hơn 200 sửa đổi của bộ vi điều khiển tương thích với i8051. do hai chục công ty sản xuất và một số lượng lớn các loại vi điều khiển khác. Phổ biến trong số các nhà phát triển là bộ vi điều khiển PIC 8-bit của Microchip Technology và AVR của Atmel, 16-bit MSP430 của TI, cũng như ARM, có kiến ​​trúc được phát triển bởi ARM và cấp phép cho các công ty khác để sản xuất, bộ xử lý - vi điều khiển. Khi thiết kế vi điều khiển, một mặt bạn phải cân bằng giữa kích thước và chi phí, mặt khác là tính linh hoạt và hiệu suất. Đối với các ứng dụng khác nhau, tỷ lệ tối ưu của các thông số này và các thông số khác có thể khác nhau rất nhiều. Do đó, có một số lượng lớn các loại vi điều khiển khác nhau về kiến ​​trúc của mô-đun bộ xử lý, kích thước và loại bộ nhớ tích hợp, bộ thiết bị ngoại vi, loại gói, v.v.

1. Phần chung

1.1 Phân loại và cấu trúc của vi điều khiển Hiện nay, một số loại MK được sản xuất. Tất cả các thiết bị này có thể được chia thành ba lớp chính: MCU 8 bit cho các ứng dụng nhúng; MCU 16 và 32 bit; Bộ xử lý tín hiệu kỹ thuật số (DSP) Đại diện phổ biến nhất của họ MC là các thiết bị 8 bit, được sử dụng rộng rãi trong công nghiệp, gia dụng và thiết bị máy tính. Họ đã phát triển từ những thiết bị đơn giản nhất với thiết bị ngoại vi tương đối kém phát triển đến những bộ điều khiển đa chức năng hiện đại cung cấp việc triển khai các thuật toán điều khiển phức tạp trong thời gian thực. Lý do cho khả năng tồn tại của MCU 8-bit là việc sử dụng chúng để điều khiển các đối tượng thực, nơi chúng chủ yếu sử dụng các thuật toán với ưu thế là các phép toán logic, tốc độ xử lý thực tế không phụ thuộc vào dung lượng bit của bộ xử lý. Sự phát triển của Sự phổ biến của MCU 8-bit được thúc đẩy bởi sự mở rộng liên tục của các sản phẩm được sản xuất bởi các công ty nổi tiếng như Motorola, Microchip, Intel, Zilog, Atmel và nhiều hãng khác. Theo quy luật, MCU 8-bit hiện đại có một số tính năng đặc biệt. Hãy liệt kê những thứ chính: tổ chức mô-đun, trong đó, trên cơ sở một lõi bộ xử lý (bộ xử lý trung tâm), một số (dòng) MC được thiết kế, khác nhau về kích thước và loại bộ nhớ chương trình, kích thước bộ nhớ dữ liệu, một bộ của các mô-đun ngoại vi, tần số đồng bộ hóa; sử dụng kiến ​​trúc MC khép kín, đặc trưng bởi sự vắng mặt của các đường trục địa chỉ và dữ liệu trên các chân của vỏ MK. Do đó, MC là một hệ thống xử lý dữ liệu hoàn chỉnh, việc mở rộng khả năng sử dụng các đường dữ liệu và địa chỉ song song không được mong đợi; việc sử dụng các mô-đun ngoại vi chức năng tiêu chuẩn (bộ định thời, bộ xử lý sự kiện, bộ điều khiển giao diện nối tiếp, analog-to-digital bộ chuyển đổi, v.v.) sự khác biệt trong thuật toán hoạt động trong MCU của các nhà sản xuất khác nhau; mở rộng số lượng chế độ hoạt động của mô-đun ngoại vi được thiết lập trong quá trình khởi tạo thanh ghi các chức năng đặc biệt của MCU. , tất cả các MCU của một họ chứa một lõi xử lý giống nhau cho tất cả các MCU thuộc họ này và một khối chức năng có thể thay đổi, giúp phân biệt MK của các mô hình khác nhau. Lõi vi xử lý bao gồm: một bộ xử lý trung tâm; trung kế bộ điều khiển nội bộ (VKM) bao gồm các bus địa chỉ, dữ liệu và điều khiển; Mạch đồng bộ MC; mạch điều khiển cho các chế độ hoạt động của MK, bao gồm hỗ trợ các chế độ tiêu thụ điện năng thấp, khởi động ban đầu (đặt lại), v.v. Khối chức năng biến đổi bao gồm các mô-đun bộ nhớ có nhiều loại và kích cỡ khác nhau, cổng I / O, mô-đun tạo xung nhịp (D), bộ định thời. Trong các MCU tương đối đơn giản, mô-đun xử lý ngắt là một phần của lõi bộ xử lý. Trong các MCU phức tạp hơn, nó là một mô-đun riêng biệt với các khả năng nâng cao. Cấu trúc của một khối chức năng thay đổi có thể bao gồm các mô-đun bổ sung như bộ so sánh điện áp, bộ chuyển đổi tương tự-kỹ thuật số (ADC) và các mô-đun khác. Mỗi mô-đun được thiết kế để hoạt động như một phần của MC, có tính đến giao thức VKM. Cách tiếp cận này làm cho nó có thể tạo MC của các cấu trúc khác nhau trong cùng một họ. 1.2 Cấu trúc của lõi xử lý của vi điều khiển Các đặc điểm chính xác định hiệu suất của lõi bộ xử lý MK là: một tập hợp các thanh ghi để lưu trữ dữ liệu trung gian; một hệ thống lệnh của bộ xử lý; cách giải quyết các toán hạng trong không gian bộ nhớ; tổ chức các quá trình tìm nạp và thực thi lệnh. Theo quan điểm của hệ thống hướng dẫn và các phương pháp giải quyết toán hạng, lõi bộ xử lý của MCU 8 bit hiện đại thực hiện một trong hai nguyên tắc xây dựng bộ xử lý: bộ xử lý có kiến ​​trúc CISC, thực hiện cái gọi là Máy tính tập lệnh phức tạp; bộ xử lý có kiến ​​trúc RISC, thực hiện Bộ xử lýISC thực hiện một tập hợp lệnh lớn với khả năng định địa chỉ nâng cao, tạo cơ hội cho nhà phát triển chọn lệnh thích hợp nhất để thực hiện thao tác cần thiết. Khi được áp dụng cho MCU 8 bit, bộ xử lý CISC có thể có các định dạng lệnh một byte, hai byte và ba byte (hiếm khi là bốn byte). Thời gian thực hiện lệnh có thể từ 1 đến 12 chu kỳ. Các MCU có kiến ​​trúc CISC bao gồm MCU của Intel với lõi MCS-51, được hỗ trợ bởi một số nhà sản xuất ngày nay, các họ MCU HC05, HC08 và HC11 của Motorola và một số nhà sản xuất khác. Trong các bộ xử lý có kiến ​​trúc RISC, bộ hướng dẫn thực thi được giảm xuống mức tối thiểu. Để thực hiện các hoạt động phức tạp hơn, bạn phải kết hợp các lệnh. Trong trường hợp này, tất cả các lệnh có định dạng có độ dài cố định (ví dụ: 12, 14 hoặc 16 bit), lệnh được tìm nạp từ bộ nhớ và thực hiện trong một chu kỳ (đồng hồ) đồng bộ hóa. Tập lệnh bộ xử lý RISC giả định rằng tất cả các thanh ghi bộ xử lý có thể được sử dụng như nhau. Điều này cung cấp thêm tính linh hoạt cho nhiều loại hoạt động. MCU dựa trên RISC bao gồm MCU AVR của Atmel, MCU PIC16 và PIC17 của Microchip và các loại khác. Thoạt nhìn, MCU có bộ xử lý RISC sẽ có hiệu suất tốt hơn MCU CISC ở cùng tốc độ xung nhịp bus nội bộ. Đồng thời, trong thực tế, vấn đề hiệu suất phức tạp hơn và mơ hồ hơn. Từ quan điểm tổ chức các quá trình tìm nạp và thực thi một lệnh trong MCU 8-bit hiện đại, một trong hai kiến ​​trúc MPS đã được đề cập được sử dụng : von Neumann (Princeton) hoặc Harvard. Ưu điểm chính của kiến ​​trúc Fon là Neumann là sự đơn giản hóa thiết bị MPS, vì chỉ có một bộ nhớ dùng chung được truy cập. Ngoài ra, việc sử dụng một vùng bộ nhớ duy nhất có thể nhanh chóng phân bổ lại tài nguyên giữa các vùng chương trình và dữ liệu, điều này làm tăng đáng kể tính linh hoạt của MPS theo quan điểm của một nhà phát triển phần mềm. Đặt ngăn xếp vào bộ nhớ dùng chung giúp truy cập nội dung của nó dễ dàng hơn. Không phải ngẫu nhiên mà kiến ​​trúc von Neumann trở thành kiến ​​trúc chính của các máy tính đa năng, kể cả máy tính cá nhân. Kiến trúc Harvard hầu như không được sử dụng cho đến cuối những năm 70, khi các nhà sản xuất MC nhận ra rằng nó mang lại những lợi thế nhất định cho các nhà phát triển hệ thống điều khiển tự động. bằng kinh nghiệm sử dụng MPS để điều khiển các đối tượng khác nhau, để thực hiện hầu hết các thuật toán điều khiển, những ưu điểm của kiến ​​trúc von Neumann như tính linh hoạt và tính phổ biến không có tầm quan trọng lớn. Phân tích các chương trình điều khiển thực tế cho thấy rằng dung lượng bộ nhớ dữ liệu MC cần thiết được sử dụng để lưu trữ các kết quả trung gian, theo quy luật, có độ lớn nhỏ hơn số lượng bộ nhớ chương trình cần thiết. Trong những điều kiện này, việc sử dụng một không gian địa chỉ duy nhất dẫn đến sự gia tăng định dạng lệnh do tăng số lượng bit để định địa chỉ các toán hạng. Việc sử dụng một bộ nhớ dữ liệu nhỏ riêng biệt đã giúp giảm độ dài của các lệnh và tăng tốc độ tìm kiếm thông tin trong bộ nhớ dữ liệu. Ngoài ra, kiến ​​trúc Harvard cung cấp tốc độ thực thi chương trình tiềm năng cao hơn so với Von Neumann do khả năng thực hiện song song các hoạt động. Việc tìm nạp lệnh tiếp theo có thể xảy ra đồng thời với việc thực thi lệnh trước đó và không cần phải dừng bộ xử lý trong khi tìm nạp lệnh. Phương pháp triển khai các hoạt động này cho phép thực hiện các lệnh khác nhau trong cùng một số chu kỳ đồng hồ, giúp dễ dàng xác định thời gian chu kỳ và các phần quan trọng của chương trình. Hầu hết các nhà sản xuất MCU 8-bit hiện đại đều sử dụng kiến ​​trúc Harvard. Đồng thời, kiến ​​trúc Harvard không đủ linh hoạt để thực hiện một số thủ tục phần mềm. Do đó, việc so sánh các MCU được thực hiện trên các kiến ​​trúc khác nhau nên được thực hiện liên quan đến một ứng dụng cụ thể. Hiện tại, các đại diện nổi bật nhất của vi điều khiển SISC và RISC, có kiến ​​trúc von Neumann và Harvard, tương ứng là vi điều khiển i8051 và AVR, Atmel các bộ vi điều khiển, về một số đặc điểm đã vượt qua các bộ vi điều khiển PIC rất nổi tiếng. Vì vậy, chúng tôi sẽ xem xét tổ chức và cơ cấu của các đại diện trên. 2. Phần đặc biệt 2.1 Kiến trúc bộ xử lý CISC và RISC Hai kiến ​​trúc tập lệnh chính được ngành máy tính sử dụng trong thời đại điện toán ngày nay là kiến ​​trúc CISC và RISC. Người sáng lập ra kiến ​​trúc CISC, Máy tính tập hợp hướng dẫn hoàn chỉnh (CISC), có thể được coi là IBM với kiến ​​trúc cơ bản IBM / 360, cốt lõi của nó đã được sử dụng từ năm 1964 và tồn tại cho đến ngày nay, chẳng hạn như máy tính lớn, như IBM ES / 9000. Dẫn đầu về bộ vi xử lý tập lệnh đầy đủ là Intel với bộ vi xử lý X86 và Pentium. Đây thực tế là tiêu chuẩn cho thị trường vi xử lý. Sự đơn giản trong kiến ​​trúc của bộ xử lý RISC đảm bảo tính nhỏ gọn của nó, thực tế không có vấn đề gì với việc làm mát tinh thể, vốn không có trong các bộ vi xử lý của Intel, vốn kiên trì tuân thủ lộ trình phát triển của kiến ​​trúc CISC. Chiến lược kiến ​​trúc CISC được hình thành do khả năng công nghệ chuyển "trọng tâm" của việc xử lý dữ liệu từ cấp phần mềm của hệ thống sang cấp phần cứng, vì cách thức chính để tăng hiệu quả cho một máy tính CISC đã được nhìn thấy, trước hết tất cả, trong việc đơn giản hóa trình biên dịch và giảm thiểu mô-đun thực thi. Ngày nay, bộ xử lý CISC hầu như chỉ chiếm lĩnh lĩnh vực máy tính cá nhân trên thị trường máy tính, nhưng bộ xử lý RISC không bằng trong lĩnh vực máy chủ và máy trạm hiệu năng cao. Các đặc điểm chính của kiến ​​trúc RISC với các đặc điểm tương tự của kiến ​​trúc CISC được hiển thị như sau (Bảng 1): Bảng 1. Các đặc điểm chính của kiến ​​trúc

Một trong những ưu điểm quan trọng của kiến ​​trúc RISC là tốc độ tính toán số học cao. Các bộ xử lý RISC là bộ xử lý đầu tiên đạt đến cấp độ của tiêu chuẩn IEEE 754 được sử dụng rộng rãi nhất, thiết lập định dạng 32 bit để biểu diễn các số điểm cố định và định dạng "chính xác đầy đủ" 64 bit cho các số dấu phẩy động. Tốc độ cao của việc thực hiện các phép toán số học kết hợp với độ chính xác tính toán cao cung cấp cho các bộ xử lý RISC một vị trí dẫn đầu vô điều kiện về hiệu suất so với các bộ xử lý CISC.

Một tính năng khác của bộ xử lý RISC là một bộ công cụ đảm bảo hoạt động không ngừng của các thiết bị số học: cơ chế dự đoán nhánh động, số lượng lớn các thanh ghi hoạt động và bộ nhớ đệm tích hợp đa cấp.

Việc tổ chức cấu trúc sổ đăng ký là ưu điểm chính và là vấn đề chính của RISC. Hầu như bất kỳ việc triển khai nào của kiến ​​trúc RISC đều sử dụng các hoạt động xử lý ba nơi, trong đó kết quả và hai toán hạng được tự định địa chỉ - R1: = R2, R3. Điều này cho phép bạn chọn các toán hạng từ các thanh ghi hoạt động có thể định địa chỉ mà không tốn nhiều thời gian và ghi kết quả của hoạt động vào thanh ghi. Ngoài ra, hoạt động ba lần cung cấp cho trình biên dịch tính linh hoạt hơn các hoạt động kép trong bộ nhớ thanh ghi điển hình của kiến ​​trúc CISC. Khi kết hợp với số học tốc độ cao, các hoạt động đăng ký vào thanh ghi RISC rất mạnh mẽ trong việc cải thiện hiệu suất của bộ xử lý.

Đồng thời, sự phụ thuộc vào các thanh ghi là gót chân Achilles của kiến ​​trúc RISC. Vấn đề là trong quá trình thực thi một tác vụ, hệ thống RISC buộc phải cập nhật liên tục nội dung của các thanh ghi bộ xử lý và trong một khoảng thời gian tối thiểu, để không gây ra thời gian chết lâu của đơn vị số học. Đối với hệ thống CISC, vấn đề này không tồn tại, vì việc sửa đổi các thanh ghi có thể xảy ra trong khi xử lý các lệnh từ bộ nhớ sang bộ nhớ.

Có hai cách tiếp cận để giải quyết vấn đề sửa đổi thanh ghi trong kiến ​​trúc RISC: phần cứng, được đề xuất trong các dự án RISC-1 và RISC-2, và phần mềm, được phát triển bởi các chuyên gia từ IBM và Đại học Stanford. Sự khác biệt cơ bản giữa chúng là giải pháp phần cứng dựa trên mong muốn giảm thời gian gọi thủ tục bằng cách cài đặt thêm phần cứng bộ xử lý, trong khi giải pháp phần mềm dựa trên khả năng của trình biên dịch và tiết kiệm hơn về phần cứng bộ xử lý.

2.2 Kiến trúc RISC. Vào những năm 70 của thế kỷ XX, các nhà khoa học đã đưa ra ý tưởng mang tính cách mạng cho thời kỳ đó là tạo ra một bộ vi xử lý chỉ "hiểu" được số lượng lệnh tối thiểu nhất có thể. nghiên cứu thực tế về tần suất sử dụng lệnh của các lập trình viên được thực hiện vào những năm 70 ở Mỹ và Anh. Kết quả ngay lập tức của họ là "Quy tắc 80/20" nổi tiếng: 80% mã của một ứng dụng điển hình chỉ sử dụng 20% ​​lệnh máy đơn giản nhất trong toàn bộ tập hợp. Bộ xử lý RISC "thực" đầu tiên với 31 lệnh được tạo ra theo lãnh đạo của David Patterson thuộc Đại học Berkeley, tiếp theo là bộ xử lý với bộ 39 lệnh. Chúng bao gồm 20-50 nghìn bóng bán dẫn. Thành quả lao động của Patterson đã được tận dụng bởi Sun Microsystems, công ty đã phát triển kiến ​​trúc SPARC gồm 75 nhóm vào cuối những năm 1970. Năm 1981, dự án MIPS được khởi động tại Đại học Stanford để phát hành một bộ xử lý RISC với 39 nhóm. Kết quả là Mips Computer Corporation được thành lập vào giữa những năm 80 và bộ vi xử lý tiếp theo được thiết kế với 74 nhóm. Theo công ty độc lập IDC, vào năm 1992, kiến ​​trúc SPARC chiếm 56% thị trường, tiếp theo là MIPS - 15 % và PA-RISC - 12 .2% Cùng thời gian đó, Intel đã phát triển dòng 80386, bộ xử lý CISC "thực sự" cuối cùng trong họ IA-32. Lần cuối cùng, việc cải thiện hiệu suất chỉ đạt được bằng cách tăng độ phức tạp của kiến ​​trúc bộ xử lý: nó chuyển từ 16 bit sang 32 bit, các thành phần phần cứng bổ sung hỗ trợ bộ nhớ ảo và một số lệnh mới đã được thêm vào. 80 đến 150 lệnh) Hầu hết các lệnh được thực thi trong 1 chu kỳ Số lượng lớn các thanh ghi đa năng Sự hiện diện của các đường ống đa tầng cứng nhắc Tất cả các lệnh đều có định dạng đơn giản và một số phương pháp giải quyết Sự hiện diện của bộ nhớ đệm chia sẻ lớn Sử dụng tối ưu hóa trình biên dịch phân tích nguồn Bộ xử lý RISC thế hệ thứ 3 của bộ vi xử lý RISC là Sun Microsystems (kiến trúc SPARC - Ultra SPARC), IBM (bộ xử lý đa năng Power, chip đơn PowerPC - PowerPC 620), Thiết bị kỹ thuật số (Alpha - Alpha 21164), Mips Technologies (c họ Rxx00 - R 10000), cũng như Hewlett-Packard (kiến trúc PA-RISC - PA-8000). Tất cả các bộ xử lý RISC thuộc thế hệ thứ ba: là 64-bit và superscalar (chạy ít nhất 4 lệnh mỗi chu kỳ); có tích hợp sẵn các đơn vị số học dấu phẩy động có trục; có bộ nhớ đệm đa cấp. Hầu hết các bộ xử lý RISC đều lưu vào bộ nhớ đệm các lệnh được giải mã trước; được sản xuất bằng công nghệ CMOS với 4 lớp kim loại hóa. Dữ liệu được xử lý bằng cách sử dụng thuật toán dự đoán nhánh động và phương pháp ánh xạ lại thanh ghi, cho phép thực hiện các lệnh không theo thứ tự. Cải thiện hiệu suất của bộ vi xử lý RISC đạt được bằng cách tăng tần số xung nhịp và sự phức tạp của mạch tinh thể. Các đại diện của hướng đầu tiên là các bộ xử lý Alpha từ DEC, các bộ xử lý từ Hewlett-Packard vẫn là phức tạp nhất. Việc giảm tập hợp các lệnh máy trong kiến ​​trúc RISC làm cho nó có thể đặt một số lượng lớn các thanh ghi mục đích chung trên chip của lõi điện toán. Sự gia tăng số lượng thanh ghi đa năng giúp giảm thiểu truy cập làm chậm RAM, chỉ để lại các thao tác đọc dữ liệu từ RAM vào thanh ghi và ghi dữ liệu từ thanh ghi vào RAM để làm việc với RAM, tất cả các hướng dẫn máy khác đều sử dụng chung -các thanh ghi đa năng như các toán hạng. Kiến trúc RISC là sự hiện diện của các thuộc tính sau: Một số lượng lớn các thanh ghi có mục đích chung. Một định dạng chung cho tất cả các hoạt động vi mô. Thời gian thực hiện bằng nhau của tất cả các lệnh máy. Hầu hết tất cả các hoạt động truyền dữ liệu đều được thực hiện dọc theo tuyến đường thanh ghi. Thời gian thực hiện bằng nhau của tất cả các lệnh máy cho phép xử lý luồng lệnh. Nguyên tắc băng tải, tức là. đồng bộ hóa phần cứng được thực hiện có tính đến việc truyền tuần tự quyền điều khiển từ đơn vị phần cứng này sang đơn vị phần cứng khác. Các khối phần cứng trong kiến ​​trúc RISC: Khối tải lệnh bao gồm các thành phần sau: khối tìm nạp lệnh từ bộ nhớ lệnh, thanh ghi lệnh, trong đó một lệnh được đặt sau khi nó đã được tìm nạp và chặn các lệnh giải mã. Giai đoạn này được gọi là giai đoạn tìm nạp lệnh. Các thanh ghi mục đích chung, cùng với các đơn vị điều khiển thanh ghi, tạo thành giai đoạn thứ hai của đường ống, có nhiệm vụ đọc các toán hạng của các lệnh. Toán hạng có thể được lưu trữ trong chính lệnh hoặc trong một trong các thanh ghi chung. Giai đoạn này được gọi là giai đoạn tìm nạp toán hạng. Đơn vị logic số học và nếu được triển khai trong kiến ​​trúc này, bộ tích lũy, cùng với logic điều khiển, dựa trên nội dung của thanh ghi lệnh, sẽ xác định loại hoạt động vi mô. đã thực hiện. Ngoài thanh ghi lệnh, nguồn dữ liệu có thể là một bộ đếm lệnh khi thực hiện các hoạt động vi mô của một bước nhảy có điều kiện hoặc không có điều kiện. Giai đoạn này được gọi là giai đoạn thực thi của đường ống Một tập hợp bao gồm các thanh ghi có mục đích chung, logic ghi và đôi khi từ RAM tạo thành một giai đoạn lưu trữ dữ liệu. Ở giai đoạn này, kết quả của việc thực thi các lệnh được ghi vào các thanh ghi có mục đích chung hoặc bộ nhớ chính. Đồng thời, vào thời điểm kiến ​​trúc RISC được phát triển, kiến ​​trúc Intel x86, dựa trên nguyên tắc kiến ​​trúc CISC, đã trở thành tiêu chuẩn bộ vi xử lý công nghiệp facto. Sự hiện diện của một số lượng lớn các chương trình được viết cho kiến ​​trúc Intel x86 khiến cho việc chuyển đổi hàng loạt máy tính sang kiến ​​trúc RISC là không thể. Vì lý do này, vi điều khiển là lĩnh vực sử dụng chính của kiến ​​trúc RISC, do thực tế là chúng không gắn liền với phần mềm hiện có. Ngoài ra, một số nhà sản xuất máy tính, đứng đầu là IBM, cũng bắt đầu sản xuất máy tính được xây dựng trên kiến ​​trúc RISC, tuy nhiên sự không tương thích phần mềm giữa Intel x86 và kiến ​​trúc RISC đã hạn chế đáng kể việc phân phối sau này, đồng thời cũng là ưu điểm của RISC kiến trúc quan trọng đến mức các kỹ sư đã tìm ra cách để chuyển sang máy tính RISC mà không phải từ bỏ phần mềm hiện có. Các lõi của hầu hết các bộ vi xử lý hiện đại hỗ trợ kiến ​​trúc x86 của Intel đều dựa trên kiến ​​trúc RISC với sự hỗ trợ cho đường ống đa phương. Bộ vi xử lý nhận một lệnh ở định dạng Intel x86 làm đầu vào, chúng tôi thay thế nó bằng một số (tối đa 4) lệnh RISC. Do đó, các lõi của hầu hết các bộ vi xử lý hiện đại, bắt đầu với Intel 486DX, dựa trên kiến ​​trúc RISC với sự hỗ trợ giao diện Intel x86 bên ngoài. Ngoài ra, phần lớn các bộ vi điều khiển cũng như một số bộ vi xử lý được sản xuất theo kiến ​​trúc RISC. Một bộ xử lý RISC hiện đại sử dụng ít nhất 32 thanh ghi, thường là hơn 100 thanh ghi, trong khi ở các máy tính kỹ thuật số cổ điển thường có 8-16 thanh ghi. của mục đích chung. Do đó, bộ vi xử lý ít có khả năng sử dụng bộ nhớ đối phó hơn 20% -30%, điều này cũng làm tăng tốc độ xử lý dữ liệu. Ngoài ra, sự hiện diện của một số lượng lớn các thanh ghi giúp trình biên dịch phân bổ các thanh ghi cho các biến dễ dàng hơn. Cấu trúc liên kết của một bộ xử lý mạch tích hợp đơn đã được đơn giản hóa, thời gian phát triển của nó được rút ngắn, nó trở nên rẻ hơn Sau khi bộ xử lý RISC ra đời, các bộ xử lý truyền thống được chỉ định là CISC - nghĩa là với một tập lệnh hoàn chỉnh (Complete Instruction Set Computer). Ngày nay, các bộ xử lý RISC đã phổ biến rộng rãi. Các bộ xử lý RISC hiện đại có đặc điểm sau: tập hợp các lệnh được đơn giản hóa; các lệnh có độ dài cố định và định dạng cố định được sử dụng, các phương pháp định địa chỉ đơn giản, giúp đơn giản hóa logic của các lệnh giải mã; hầu hết các lệnh được thực thi trong một chu kỳ của bộ xử lý; logic thực thi lệnh để cải thiện hiệu suất tập trung vào phần cứng, không phải thực thi vi chương trình, không có macro nào làm phức tạp cấu trúc của bộ xử lý và làm giảm tốc độ hoạt động của nó; tương tác với RAM chỉ giới hạn ở các hoạt động truyền dữ liệu; để xử lý, theo quy tắc, các lệnh ba địa chỉ được sử dụng, ngoài việc đơn giản hóa việc giải mã, còn có thể lưu một số lượng lớn hơn các biến trong sổ đăng ký mà không cần tải lại sau đó; một hệ thống lệnh đã được tạo, cho phép bạn xử lý một số chúng cùng một lúc; sự hiện diện của một số lượng lớn các thanh ghi; bộ nhớ tốc độ cao được sử dụng Trong bộ xử lý RISC, việc xử lý một lệnh máy được chia thành nhiều giai đoạn, mỗi giai đoạn Giai đoạn thứ ba được phục vụ bởi phần cứng riêng biệt và việc truyền dữ liệu từ giai đoạn này sang giai đoạn tiếp theo được tổ chức. Hiệu suất được tăng lên do thực tế là một số lệnh được thực thi đồng thời ở các giai đoạn khác nhau của đường ống. Việc thực thi một lệnh điển hình có thể được chia thành các giai đoạn sau: tìm nạp lệnh IF - tại địa chỉ chỉ định bộ đếm lệnh, lệnh được truy xuất từ ​​bộ nhớ; 2) giải mã lệnh ID - tìm hiểu ý nghĩa của nó, tìm nạp các toán hạng từ các thanh ghi; 3) thực hiện hoạt động EX, nếu cần truy cập bộ nhớ - tính toán địa chỉ vật lý; 4) truy cập bộ nhớ ME; 5) lưu trữ kết quả WB Trong bộ xử lý RISC, tập hợp các lệnh thực thi được giảm xuống mức tối thiểu. Để thực hiện các hoạt động phức tạp hơn, bạn phải kết hợp các lệnh. Trong trường hợp này, tất cả các lệnh có định dạng có độ dài cố định (ví dụ: 12, 14 hoặc 16 bit), lệnh được tìm nạp từ bộ nhớ và thực hiện trong một chu kỳ (đồng hồ) đồng bộ hóa. Tập lệnh bộ xử lý RISC giả định rằng tất cả các thanh ghi bộ xử lý có thể được sử dụng như nhau. Điều này cung cấp thêm tính linh hoạt cho nhiều loại hoạt động. MCU dựa trên RISC bao gồm MCU AVR của Atmel, MCU PIC16 và PIC17 của Microchip và các loại khác. Thoạt nhìn, MCU có bộ xử lý RISC sẽ có hiệu suất tốt hơn MCU CISC ở cùng tốc độ xung nhịp bus nội bộ. Tuy nhiên, trong thực tế, vấn đề về hiệu suất phức tạp hơn và mơ hồ hơn Hình 2 Cấu trúc của MCU với kiến ​​trúc RISC Kiến trúc Harvard hầu như không được sử dụng cho đến cuối những năm 70, cho đến khi các nhà sản xuất MCU nhận ra rằng nó mang lại những lợi thế nhất định cho các nhà phát triển hệ thống điều khiển tự động. điều đó, dựa trên kinh nghiệm sử dụng MPS để điều khiển các đối tượng khác nhau, để thực hiện hầu hết các thuật toán điều khiển, những ưu điểm như vậy của kiến ​​trúc von Neumann như tính linh hoạt và tính phổ biến không có tầm quan trọng lớn. Phân tích các chương trình điều khiển thực cho thấy rằng dung lượng bộ nhớ dữ liệu MC cần thiết được sử dụng để lưu trữ các kết quả trung gian, theo quy luật, là một thứ tự độ lớn nhỏ hơn dung lượng bộ nhớ chương trình cần thiết. Trong những điều kiện này, việc sử dụng một không gian địa chỉ duy nhất dẫn đến sự gia tăng định dạng lệnh do sự gia tăng số lượng bit để định địa chỉ các toán hạng. Việc sử dụng một bộ nhớ dữ liệu nhỏ riêng biệt đã giúp giảm độ dài của các lệnh và tăng tốc độ tìm kiếm thông tin trong bộ nhớ dữ liệu. Ngoài ra, kiến ​​trúc Harvard cung cấp tốc độ thực thi chương trình tiềm năng cao hơn so với Von Neumann do khả năng thực hiện song song các hoạt động. Việc tìm nạp lệnh tiếp theo có thể xảy ra đồng thời với việc thực thi lệnh trước đó và không cần phải dừng bộ xử lý trong khi tìm nạp lệnh. Phương pháp triển khai các hoạt động này cho phép thực hiện các lệnh khác nhau trong cùng một số chu kỳ đồng hồ, giúp dễ dàng xác định thời gian chu kỳ và các phần quan trọng của chương trình. Hầu hết các nhà sản xuất MCU 8-bit hiện đại đều sử dụng kiến ​​trúc Harvard. Đồng thời, kiến ​​trúc Harvard không đủ linh hoạt để thực hiện một số thủ tục phần mềm. Do đó, việc so sánh các MC được thực hiện trên các kiến ​​trúc khác nhau nên được thực hiện liên quan đến một ứng dụng cụ thể. 2.3 Vi điều khiển với kiến ​​trúc RISC PIC16C71 thuộc dòng vi điều khiển CMOS. Nó khác ở chỗ nó có EPROM 1K x 14 bit bên trong cho các chương trình, dữ liệu 8 bit và bộ chuyển đổi A / D tích hợp 64 byte. Chúng có chi phí thấp và hiệu suất cao. Người dùng quen thuộc với dòng PIC16C5X có thể xem danh sách chi tiết về sự khác biệt giữa bộ điều khiển mới và bộ điều khiển được sản xuất trước đó. Tất cả các lệnh bao gồm một từ (rộng 14 bit) và được thực hiện trong một chu kỳ ( 200 ns ở 20 MHz), ngoại trừ các bước nhảy lệnh được thực thi trong hai chu kỳ (400 ns). PIC16C71 có ngắt bốn nguồn và ngăn xếp phần cứng tám cấp. Thiết bị ngoại vi bao gồm bộ đếm / bộ đếm thời gian 8 bit với 8 -bộ định vị có thể lập trình-bit (thực chất là một bộ định thời 16-bit), 13 đường I / O hai chiều và một bộ ADC tám-bit. Khả năng chịu tải cao (dòng chìm tối đa 25mA, dòng chìm tối đa 20mA) Các đường I / O đơn giản hóa các trình điều khiển bên ngoài và do đó giảm chi phí hệ thống tổng thể ADC có bốn kênh, mạch mẫu và mạch giữ, độ phân giải 8bit với ít hơn một chữ số quan trọng nhất. Thời gian chuyển đổi trung bình 30 μs bao gồm cả thời gian lấy mẫu. Sê-ri PIC16C71 phù hợp với nhiều ứng dụng từ điều khiển tốc độ cao của ô tô và động cơ điện đến bộ thu phát từ xa hiệu quả về chi phí, dụng cụ chỉ thị và bộ xử lý truyền thông. Sự hiện diện của ROM cho phép điều chỉnh các thông số trong các chương trình ứng dụng (mã máy phát, tốc độ động cơ, tần số máy thu, v.v.). Kích thước nhỏ của vỏ, cả lắp thông thường và lắp trên bề mặt, làm cho loạt vi điều khiển này phù hợp với các ứng dụng di động. , tốc độ, tính dễ sử dụng và tính linh hoạt của I / O làm cho PIC16C71 trở nên hấp dẫn ngay cả ở những khu vực chưa sử dụng vi điều khiển trước đây. Ví dụ, bộ định thời, thay thế logic cứng trong hệ thống lớn, bộ đồng xử lý. Vi điều khiển có: chỉ 35 lệnh đơn giản; tất cả các lệnh được thực hiện trong một chu kỳ (200ns), ngoại trừ lệnh chuyển tiếp - 2 chu kỳ; tần số hoạt động 0 Hz ... 20 MHz (chu kỳ lệnh tối thiểu 200 ns) lệnh 14 bit; dữ liệu 8 bit; thanh ghi sử dụng chung 36 x 8; 15 thanh ghi SFR phần cứng đặc biệt; ngăn xếp phần cứng tám cấp; định địa chỉ trực tiếp, gián tiếp và tương đối của dữ liệu và lệnh; bốn nguồn ngắt: đầu vào bên ngoài INT RTCC bộ định thời tràn ngắt khi kết thúc ngắt chuyển đổi tương tự-số khi tín hiệu thay đổi trên các đường cổng B. Các thiết bị ngoại vi, I / O của vi điều khiển có: 13 đường I / O có thể cấu hình riêng biệt; Dòng điện Sink / Sink để điều khiển các đèn LED. dòng chìm tối đa - 25 mA. dòng chảy tối đa - 20 mA 8-bit bộ định thời / bộ đếm RTCC với bộ định mức có thể lập trình 8 bit; mô-đun ADC: 4 đầu vào tương tự đa hợp được kết nối với một bộ chuyển đổi kỹ thuật số tương tự thời gian chuyển đổi mạch lưu trữ / 20 μs cho mỗi bộ chuyển đổi kênh - 8 bit, với một độ chính xác của + - 1 đầu vào LSB cho tham chiếu điện áp bên ngoài Vref (Vref<= Vdd)диапазон входных аналоговых сигналов от Vss до Vrefавтоматический сброс при включении;таймер включения при сбросе;таймер запуска генератора;Watchdog таймер WDT с собственным встроенным генератором, обеспечивающимповышенную надежность;EPROM бит секретности для защиты кода;экономичный режим SLEEP;выбираемые пользователем биты для установки режима возбуждения встроенного генератора:RC генератор RCобычный кварцевый резонатор XTвысокочастотный кварцевый резонатор HSэкономичный низкочастотный кристалл LPвстроенное устройство самопрограммирования EPROM памяти программ,используются только две ножки.Обозначения ножек и их функциональное назначение:RA4/RTCC - Вход через триггерШмидта. Ножка порта ввода/вывода соткрытым стоком или вход частоты длтаймера/счетчика RTCC.RA0/AIN0 - Двунаправленная линия ввода/вывода.Аналоговый вход канала 0.Как цифровой вход имеет уровни ТТЛ.RA1/AIN1 - Двунаправленная линия ввода/вывода.Аналоговый вход канала 1.Как цифровой вход имеет уровни ТТЛ.RA2/AIN2 - Двунаправленная линия ввода/вывода.Аналоговый вход канала 2.Как цифровой вход имеет уровни ТТЛ.RA3/AIN3/Vref - Двунаправленная линия ввода/вывода.RB0/INT - Двунаправленная линия портавывода или внешний вход прерывания.RB1 - RB5 - Двунаправленные линии ввода/вывода.RB6 - Двунаправленные линии ввода/вывода.RB7 - Двунаправленные линии ввода/вывода./MCLR/Vpp - Низкий уровень на этомвходе генерирует сигнал сбросадля контроллера. Активный низкий.Вход через триггер Шмидта.OSC1 - Для подключения кварца, RC или вход внешней тактовой частоты.OSC2 - Генератор, выход тактовойCLKOUT - частоты в режиме RC генератора, в остальных случаях - для подкл. кварцаVdd -Напряжение питания.Vss -Общий (земля).Sự kết luận Công việc của khóa học này kiểm tra các bộ vi điều khiển với kiến ​​trúc RISC và CISC. Kiến trúc RISC đã được xem xét sâu hơn và chính xác hơn. Phân loại, cấu trúc của vi điều khiển, cấu trúc của lõi xử lý của vi điều khiển, các tính năng chính của kiến ​​trúc RISC được ghi nhận. Ngày nay có hơn 200 sửa đổi của vi điều khiển tương thích với i8051, do hai chục công ty sản xuất, và một số lượng lớn các loại vi điều khiển khác. Phổ biến trong số các nhà phát triển là bộ vi điều khiển PIC 8-bit của Microchip Technology và AVR của Atmel, 16-bit MSP430 của TI, cũng như ARM, có kiến ​​trúc được phát triển bởi ARM và cấp phép cho các công ty khác để sản xuất, bộ xử lý - vi điều khiển. Khi thiết kế vi điều khiển, một mặt bạn phải cân bằng giữa kích thước và chi phí, mặt khác là tính linh hoạt và hiệu suất. Đối với các ứng dụng khác nhau, tỷ lệ tối ưu của các thông số này và các thông số khác có thể khác nhau rất nhiều. Do đó, có một số lượng lớn các loại vi điều khiển khác nhau về kiến ​​trúc của mô-đun bộ xử lý, kích thước và loại bộ nhớ tích hợp, bộ thiết bị ngoại vi, loại gói, v.v. Danh sách tài liệu đã sử dụng

1. "?????? ????????????????? ???????", ?????? ?.?. ??????? ? ?.?. ????????????.

2. "??????????? ?????????????? ??????". ?????? "????? ? ?????" 1990 ?. ????? ?.?. ???????.

3. "??????????-?????????????? ?????? ? ???????". ?????? "????? ? ?????" 1991 ?. ?????? ?.?. ?????.