Chương 4. Các bộ điều khiển dựa trên vi xử lý và vi điện tử

4.4 Các bộ vi xử lý và vi điều khiển

Không có một ranh giới rõ ràng giữa các bộ vi xử lý và các bộ vi điều khiển bởi vì các chíp này đều có thể truy cập đến bộ nhớ dữ liệu hoặc/và mã ngoài (dạng vi xử lý) và được trang bị các thành phần ngoại vi riêng biệt.

Một số vi điều khiển có một bộ tạo dao động RC bên trong và không cần có một bộ bên ngoài. Tuy nhiên, một bộ cộng hưởng thạch anh hay gốm ngoài hoặc mạng RC được nối thường xuyên với các phần tử tích cực, bên trong bộ phát xung nhịp. Tần số nhịp thay đổi từ 32 kHz (công suất thấp) tới 75 MHz. Một mạch phụ khác tạo tín hiệu xác lập lại cho một chu kỳ thích hợp sau khi nguồn được bật. Các mạch Watchdog tạo sự điều chỉnh chíp khi một chu kỳ khởi động lại tín hiệu không đến đúng thời gian do lỗi chương trình. Một số chế độ hoạt động tiết kiệm năng lượng được kích động bởi các lệnh chương trình.

Sự phức tạp và cấu trúc của hệ thống ngắt (tổng số nguồn và sự lựa chọn cấp độ ưu tiên của chúng), xác lập về độ nhạy cấp/góc của các nguồn ngoài và các sự kiện của các nguồn bên trong (như thiết bị ngoại vi), và sự bố trí các sự kiện ngắt đồng thời được coi là những tiêu chuẩn phân loại vi điều khiển quan trọng nhất.

Mặc dù các bộ vi điều khiển 16 và 32 bit được thực hiện trong các ứng dụng đặc biệt, yêu cầu cao (điều khiển các hệ servo), nhưng hầu hết ứng dụng đều dùng các chíp 8 bit. Một số bộ vi điều khiển có thể hoạt động bên trong với dữ liệu 16 bit hoặc thậm chí 32 bit chỉ trong phạm vi dấu phẩy tĩnh – các bộ vi điều khiển không được cung cấp bộ dấu phẩy động (FPU). Các họ vi điều khiển mới được xây dựng trên lõi RISC (Reduced Instruction Set – Tập lệnh rút gọn) vận chuyển một lệnh trên một vài chu kì nhịp hay thậm chí trên mỗi chu kì.

Có thể thấy sự khác nhau nữa trong các chế độ địa chỉ hóa, số lượng các thanh ghi có thể truy cập trực tiếp, và loại bộ nhớ mã (dải từ 1 đến 128 KB) điều quan trọng cho sự tầm nhìn của sự phát triển chương trình cơ sở. Bộ nhớ flash có thể nhanh và thậm chí là lập trình ngay trong hệ thống (ISP) bằng cách dùng 3 – 5 dây, trái lại các EPROM truyền thống tạo ra các chíp đắt hơn do việc đóng gói cửa sổ gốm. Một số bộ vi điều khiển có sẵn khả năng gỡ lỗi và khởi động nhằm tải mã từ một PC vào trong bộ nhớ flash dùng UART (Universal Asynchronous Receiver/Transmitter – Bộ truyền/nhận không đồng bộ đa năng) và đường nối tiếp RS-232C. OTP (One Time Programmable – có lập trình một lần) EPROM hay ROM có hiệu quả trong một số lượng lớn sản phẩm. EEPROM dữ liệu (từ 64 B đến 4 KB) dùng để lưu các hằng số hiệu chuẩn, các bảng tham số, lưu trữ trạng thái, và các mật mã có thể được viết bởi các chương trình cơ sở bên cạnh SRAM chuẩn (từ 32 B đến 4 KB).

Phạm vi của các thiết bị ngoại vi là rất rộng lớn. Mọi chip đều có các chân I/O (vào/ra) hai hướng kết hợp các cổng 8 bit, nhưng chúng thường có chức năng xen kẽ. Một vài chíp có thể đặt một mức đầu vào (TTL, MOS, hay trigger Schmitt) và tăng hoặc giảm các nguồn dòng. Các bộ điều khiển đầu ra thay đổi theo collector hở mạch, hoặc đầu ra 3 trạng thái và các dòng lớn nhất.

Ít nhất một bộ định thời/bộ đếm 8 bít (thường được cung cấp với bộ đếm gộp trước) sẽ đếm các sự kiện bên ngoài (các xung tùy chọn từ một cảm biến vị trí) hoặc từ các bộ định thời bên trong, để đo các khoảng thời gian, và tạo định kỳ một ngắt hay tốc độ baud thay đổi cho truyền thông nối tiếp. Các bộ đếm 16 bit và các thanh ghi thích hợp thông thường dựa trên các bộ bắt để lưu trữ thời gian của các đột biến đầu vào hoặc so sánh các bộ phận để tạo các đột biến đầu ra như là trạng thái điều khiển động cơ bước hay tín hiệu PWM (Pulse Width Modulation – Điều chế độ rộng xung). Một bộ đếm thời gian thực (RTC – real-time counter) đại diện cho một loại bộ đếm đặc biệt có thể chạy thậm chí trong chế độ sleep. Một hay hai giao diện nối tiếp đồng bộ tùy chọn và không đồng bộ (UART/USART) truyền thông với một máy tính chủ trong khi các giao diện nối tiếp khác như SPI, CAN, và I2C điều khiển các chíp chuyên dụng khác được dùng trong thiết bị hay hệ thống.

Hầu hết các họ vi điều khiển có những thành viên được xây dựng với một bộ chuyển đổi A/D và một bộ dồn kênh các đầu vào đơn cuối. Dải đầu vào thường là đơn cực và bằng với điện áp nguồn hay ít khi bằng điện áp trên chíp. Thời gian chuyển đổi được tính bằng nguyên lý xấp xỉ liên tiếp của ADC và số bit có hiệu dụng (ENOB-effective number of bits) thường không tới độ phân giải danh nghĩa 8, 10, hay 12 bit.

Có các mạch giao diện đặc biệt khác, như dãy cổng khả trình phạm vi (FPGA – Field Programmable Gate Array), có thể được định hình như một mạch số tùy ý.

Chương trình cơ sở của bộ vi điều khiển thường được lập trình trong một hợp ngữ hoặc trong ngôn ngữ C. Nhiều công cụ phần mềm, bao gồm cả các bộ mô phỏng chip, có sẵn miễn phí trên trang web của các nhà sản xuất chip hay các công ty hỗ trợ thứ 3. Một môi trường phát triển tích hợp chuyên nghiệp và phần cứng gỡ rối (bộ mô phỏng bằng mạch) là rất đắt (cỡ hàng nghìn đôla). Tuy nhiên, việc dùng linh hoạt một bộ mô phỏng ROM rẻ trong một hệ thống vi xử lý hay một vòng phát triển từng bước dùng một bộ chương trình ISP của bộ vi xử lý nhanh có thể phát triển khá tốt các ứng dụng phức tạp.

Rate this post