Chương 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN 1. Khái quát về vi điều khiển Khái niệm vi xử lý và vi điều khiển Về cơ bản hai khái niệm này không khác nhau nhiều, “vi xử lý” là thuật ngữ chung dùng đề cập đến kỹ thuật ứng dụng các công nghệ vi điện tử, công nghệ tích hợp và khả năng xử lý theo chƣơng trình vào các lĩnh vực khác nhau. Vào giai đoạn đầu trong quá trình phát triển của công nghệ vi xử lý, các chip (hay các vi xử lý) đƣợc chế tạo chỉ tích hợp những phần cứng thiết yếu nhƣ CPU cùng các mạch giao tiếp giữa CPU và các phần cứng khác. Trong giai đoạn này, các phần cứng khác (kể cả bộ nhớ) thƣờng không đƣợc tích hợp trên chip mà phải ghép nối thêm bên ngoài.
Các phần cứng này đƣợc gọi là các ngoại vi (Peripherals). Về sau, nhờ sự phát triển vƣợt bậc của công nghệ tích hợp, các ngoại vi cũng đƣợc tích hợp vào bên trong IC và ngƣời ta gọi các vi xử lý đã đƣợc tích hợp thêm các ngoại vi là các “vi điều khiển”. Vi xử lý có các khối chức năng cần thiết để lấy dữ liệu, xử lý dữ liệu và xuất dữ liệu ra ngoài sau khi đã xử lý. Và chức năng chính của vi xử lý chính là xử lý dữ liệu, chẳng hạn nhƣ cộng, trừ, nhân, chia, so sánh.
Vi xử lý không có khả năng giao tiếp trực tiếp với các thiết bị ngoại vi, nó chỉ có khả năng nhận và xử lý dữ liệu. Để vi xử lý hoạt động cần có chƣơng trình kèm theo, các chƣơng trình này điều khiển các mạch logic và từ đó vi xử lý xử lý các dữ liệu cần thiết theo yêu cầu. Chƣơng trình là tập hợp các lệnh để xử lý dữ liệu thực hiện từng lệnh đƣợc lƣu trữ trong bộ nhớ, công việc thực hành lệnh bao gồm: nhận lệnh từ bộ nhớ, giải mã lệnh và thực hiện lệnh sau khi đã giải mã. Để thực hiện các công việc với các thiết bị cuối cùng, chẳng hạn điều khiển động cơ, hiển thị kí tự trên màn hình.
đòi hỏi phải kết hợp vi xử lý với các mạch điện giao tiếp với bên ngoài đƣợc gọi là các thiết bị I/O (nhập/xuất) hay còn gọi là các thiết bị ngoại vi. Bản thân các vi xử lý khi đứng một mình không có nhiều hiệu quả sử dụng, nhƣng khi là một phần của một máy tính, thì hiệu quả ứng dụng của vi xử lý là rất lớn. Vi xử lý kết hợp với các thiết bị khác đƣợc sử trong các hệ thống lớn, phức tạp đòi hỏi phải xử lý một lƣợng lớn các phép tính phức tạp, có tốc độ nhanh. Chẳng hạn nhƣ các hệ thống sản xuất tự động trong công nghiệp, các tổng đài điện thoại, hoặc ở các robot có khả năng hoạt động phức tạp v.
ĐƢỜNG KHÁNH SƠN Trang 6 GIÁO TRÌNH VI ĐIỀU KHIỂN DRAFT Bộ vi xử lý có khả năng vƣợt bậc so với các hệ thống khác về khả năng tính toán, xử lý, và thay đổi chƣơng trình linh hoạt theo mục đích ngƣời dùng, đặc biệt hiệu quả đối với các bài toán và hệ thống lớn. Tuy nhiên đối với các ứng dụng nhỏ, tầm tính toán không đòi hỏi khả năng tính toán lớn thì việc ứng dụng vi xử lý cũng đòi hỏi các khối mạch điện giao tiếp phức tạp. Các khối này bao gồm bộ nhớ để chứa dữ liệu và chƣơng trình thực hiện, các mạch điện giao tiếp ngoại vi để xuất nhập và điều khiển trở lại, các khối này cùng liên kết với vi xử lý thì mới thực hiện đƣợc công việc. Để kết nối các khối này đòi hỏi ngƣời thiết kế phải hiểu biết rõ về các thành phần vi xử lý, bộ nhớ, các thiết bị ngoại vi.
Hệ thống đƣợc tạo ra khá phức tạp, chiếm nhiều không gian, mạch in phức tạp và vấn đề chính là trình độ ngƣời thiết kế. Kết quả là giá thành sản phẩm cuối cùng rất cao, không phù hợp để áp dụng cho các hệ thống nhỏ. Vì vậy nên các nhà chế tạo tích hợp một ít bộ nhớ và một số mạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất đƣợc gọi là Microcontroller (Vi điều khiển). Vi điều khiển có khả năng tƣơng tự nhƣ khả năng của vi xử lý, nhƣng cấu trúc phần cứng dành cho ngƣời dùng đơn giản hơn nhiều.
Vi điều khiển ra đời mang lại sự tiện lợi đối với ngƣời dùng, họ không cần nắm vững một khối lƣợng kiến thức quá lớn nhƣ ngƣời dùng vi xử lý, kết cấu mạch điện dành cho ngƣời dùng cũng trở nên đơn giản hơn nhiều và có khả năng giao tiếp trực tiếp với các thiết bị bên ngoài. Vi điều khiển tuy đƣợc xây dựng với phần cứng dành cho ngƣời sử dụng đơn giản hơn, nhƣng thay vào lợi điểm này là khả năng xử lý bị giới hạn (tốc độ xử lý chậm hơn và khả năng tính toán ít hơn, dung lƣợng chƣơng trình bị giới hạn). Tuy nhiên vi điều khiển có giá thành rẻ hơn nhiều so với vi xử lý, việc sử dụng đơn giản, do đó nó đƣợc ứng dụng rộng rãi vào nhiều ứng dụng có chức năng đơn giản, không đòi hỏi tính toán phức tạp. Năm 1976 Intel giới thiệu bộ vi điều khiển 8748, một chip tƣơng tự nhƣ các bộ vi xử lý và là chip đầu tiên trong họ MCS-48.
Độ phức tạp, kích thƣớc và khả năng của vi điều khiển tăng thêm một bậc quan trọng vào năm 1980 khi intel tung ra chip 8051, bộ vi điều khiển đầu tiên của họ MCS-51 và là chuẩn công nghệ cho nhiều họ vi điều khiển đƣợc sản xuất sau này. Sau đó rất nhiều họ vi điều khiển của nhiều nhà chế tạo khác nhau lần lƣợt đƣợc đƣa ra thị trƣờng với tính năng đƣợc cải tiến ngày càng mạnh. ĐƢỜNG KHÁNH SƠN Trang 7 GIÁO TRÌNH VI ĐIỀU KHIỂN DRAFT 1. Phân loại vi điều khiển và ứng dụng 1.
Phân loại Độ dài thanh ghi Dựa vào độ dài của các thanh ghi và các lệnh của vi điều khiển mà ngƣời ta chia ra các loại vi điều khiển 8 bit, 16 bit, hay 32 bit. Các loại vi điều khiển 16 bit do có độ dài lệnh lớn hơn nên các tập lệnh cũng nhiều hơn, phong phú hơn. Tuy nhiên bất cứ chƣơng trình nào viết bằng vi điều khiển 16 bit chúng ta đều có thể viết trên vi điều khiển 8 bit với chƣơng trình thích hợp. Kiến trúc CISC (Complex Instruction Set Computer) và RISC (Reduced Instruction Set Computer) Vi điều khiển CISC là vi điều khiển có tập lệnh phức tạp.
Các vi điều khiển này có một số lƣợng lớn các lệnh nên giúp cho ngƣời lập trình có thể linh hoạt và dễ dàng hơn khi viết chƣơng trình. Vi điều khiển RISC là vi điều khiển có tập lệnh đơn giản. Chúng có một số lƣợng nhỏ các lệnh đơn giản. Do đó, chúng đòi hỏi phần cứng ít hơn, giá thành thấp hơn, và nhanh hơn so với CISC.
Tuy nhiên nó đòi hỏi ngƣời lập trình phải viết các chƣơng trình phức tạp hơn, nhiều lệnh hơn. Kiến trúc Harvard và kiến trúc Vonneumann Kiến trúc Harvard sử dụng bộ nhớ riêng biệt cho chƣơng trình và dữ liệu. Bus địa chỉ và bus dữ liệu độc lập với nhau nên quá trình truyền nhận dữ liệu đơn giản hơn. Kiến trúc Vonneumann sử dụng chung bộ nhớ cho chƣơng trình và dữ liệu.
Điều này làm cho vi điều khiển gọn nhẹ hơn, giá thành rẻ hơn. Một số loại vi điều khiển có trên thị trường: - Vi điều khiển MCS-51 Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiên vào năm 1980 là các IC thiết kế cho các ứng dụng hƣớng điều khiển. Các IC này chính là một hệ thống vi xử lý hoàn chỉnh bao gồm các các thành phần của hệ vi xử lý: CPU, bộ nhớ, các mạch giao tiếp, điều khiển ngắt. MCS-51 là họ vi điều khiển sử dụng cơ chế CISC, có độ dài và thời gian thực thi của các lệnh khác nhau.
Tập lệnh cung cấp cho MCS-51 có các lệnh dùng cho điều khiển xuất/nhập tác động đến từng bit. MCS-51 bao gồm nhiều vi điều khiển khác nhau, bộ vi điều khiển đầu tiên là 8051 có 4KB ROM, 128 byte RAM và 8031, không có ROM nội, phải sử dụng bộ nhớ ngoài. Sau này, các nhà sản xuất khác nhƣ Siemens, Fujitsu, ĐƢỜNG KHÁNH SƠN Trang 8 GIÁO TRÌNH VI ĐIỀU KHIỂN DRAFT …cũng đƣợc cấp phép làm nhà cung cấp thứ hai. MCS-51 bao gồm nhiều phiên bản khác nhau, mỗi phiên bản sau tăng thêm một số thanh ghi điều khiển hoạt động của MCS-51.
AT89C51 là vi điều khiển do Atmel sản xuất, chế tạo theo công nghệ CMOS. - Vi điều khiển AVR AVR là một kiến trúc Harvard sửa đổi 8-bit RISC đơn chip vi điều khiển đã đƣợc phát triển bởi Atmel vào năm 1996. Các AVR là một trong những họ vi điều khiển đầu tiên sử dụng on-chip bộ nhớ flash để lƣu trữ chƣơng trình, trái với One-Time Programmable ROM, EPROM hoặc EEPROM đƣợc sử dụng bởi vi điều khiển khác vào lúc đó. AVR là một kiến trúc máy Modified Harvard với chƣơng trình và dữ liệu đƣợc lƣu trữ trong các hệ thống bộ nhớ vật lý riêng biệt xuất hiện trong không gian địa chỉ khác nhau, nhƣng có khả năng đọc ghi dữ liệu từ bộ nhớ bằng cách sử dụng lệnh đặc biệt.
- Vi điều khiển PIC PIC là một họ vi điều khiển RISC đƣợc sản xuất bởi công ty Microchip Technology. Dòng PIC đầu tiên là PIC1650 đƣợc phát triển bởi Microelectronics Division thuộc General Instrument. PIC bắt nguồn là chữ viết tắt của "Programmable Intelligent Computer" (Máy tính khả trình thông minh) là một sản phẩm của hãng General Instruments đặt cho dòng sản phẩm đầu tiên của họ là PIC1650. Lúc này, PIC1650 đƣợc dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16 bit CP1600, vì vậy, ngƣời ta cũng gọi PIC với cái tên "Peripheral Interface Controller" (Bộ điều khiển giao tiếp ngoại vi).
CP1600 là một CPU tốt, nhƣng lại kém về các hoạt động xuất nhập, và vì vậy PIC 8-bit đƣợc phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600. PIC sử dụng microcode đơn giản đặt trong ROM, và mặc dù, cụm từ RISC chƣa đƣợc sử dụng thời bây giờ, nhƣng PIC thực sự là một vi điều khiển với kiến trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động). Năm 1985 General Instruments bán bộ phận vi điện tử của họ, và chủ sở hữu mới hủy bỏ hầu hết các dự án - lúc đó đã quá lỗi thời. Tuy nhiên PIC đƣợc bổ sung EEPROM để tạo thành 1 bộ điều khiển vào ra khả trình.