1. Trang chủ >
  2. Kỹ thuật >
  3. Điện - Điện tử - Viễn thông >

TỔNG QUAN VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.35 MB, 97 trang )


1.1.2. Vi xử lý và vi điều khiển

Khái niệm “vi xử lý” (microprocessor) và “vi điều khiển” (microcontroller).

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 những 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.v.v... 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 mà

thôi.

Để 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.v...

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ần cân nhắc. Bởi

vì hệ thống dù lớn hay nhỏ, nếu dùng vi xử lý thì cũng đòi hỏi các khối mạch điện giao

tiếp phức tạp như nhau. 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

5



này đòi hỏi người thiết kế phải hiểu biết tinh tường 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ì một số

nhược điểm trên 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). Thay vào đó, 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.

Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, các robot

có chức năng đơn giản, trong máy giặt, ôtô v.v...

Năm 1976 Intel giới thiệu bộ vi điều khiển (microcontroller) 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.

Trong tài liệu này, ranh giới giữa hai khái niệm “vi xử lý” và “vi điều khiển”

thực sự không cần phải phân biệt rõ ràng. Chúng ta sẽ dùng thuật ngữ “vi xử lý” khi đề

cập đến các khái niệm cơ bản của kỹ thuật vi xử lý nói chung và sẽ dùng thuật ngữ “vi

điều khiển” khi đi sâu nghiên cứu một họ chip cụ thể.



6



1.2. CẤU TRÚC CHUNG CỦA MỘT HỆ VI XỬ LÝ

Sơ đồ khối một máy tính cổ điển



Hình 1-2. Sơ đồ khối một máy tính cổ điển

- ALU (đơn vị logic số học): thực hiện các bài toán cho máy tính bao gồm: +, *, /,-,

phép toán logic, …

- Control (điều khiển): điều khiển, kiểm soát các đường dữ liệu giữa các thành

phần của máy tính.

- Memory (bộ nhớ): lưu trữ chương trình hay các kết quả trung gian.

- Input (nhập), Output (Xuất): xuất nhập dữ liệu (còn gọi là thiết bị ngoại vi).

Về cơ bản kiến trúc của một vi xử lý gồm những phần cứng sau:

Đơn vị xử lý trung tâm CPU (Central Processing Unit).

Các bộ nhớ (Memories).

Các cổng vào/ra (song song (Parallel I/O Ports), nối tiếp (Serial I/O Ports))

Các bộ đếm/bộ định thời (Timers).

Hệ thống BUS (địa chỉ, dữ liệu, điều khiển)

Ngoài ra với mỗi loại vi xử lý cụ thể còn có thể có thêm một số phần cứng khác

như bộ biến đổi tương tự - số ADC, bộ biến đổi số - tương tự DAC, các mạch điều chế

dạng sóng WG, điều chế độ rộng xung PWM…Bộ não của mỗi vi xử lý chính là CPU,

các phần cứng khác chỉ là các cơ quan chấp hành dưới quyền của CPU. Mỗi cơ quan

này đều có một cơ chế hoạt động nhất định mà CPU phải tuân theo khi giao tiếp với

chúng.



7



Hình 1-3. Sơ đồ khối hệ vi xử lý

Để có thể giao tiếp và điều khiển các cơ quan chấp hành (các ngoại vi), CPU sử

dụng 03 loại tín hiệu cơ bản là tín hiệu địa chỉ (Address), tín hiệu dữ liệu (Data) và tín

hiệu điều khiển (Control). Về mặt vật lý thì các tín hiệu này là các đường nhỏ dẫn điện

nối từ CPU đến các ngoại vi hoặc thậm chí là giữa các ngoại vi với nhau. Tập hợp các

đường tín hiệu có cùng chức năng gọi là các bus. Như vậy ta có các bus địa chỉ, bus dữ

liệu và bus điều khiển.

1.2.1. Khối xử lý trung tâm (CPU)

CPU có cấu tạo gồm có đơn vị xử lý số học và lôgic (ALU), các thanh ghi, các

khối lôgic và các mạch giao tiếp. Chức năng của CPU là tiến hành các thao tác tính

toán xử lý, đưa ra các tín hiệu địa chỉ, dữ liệu và điều khiển nhằm thực hiện một nhiệm

vụ nào đó do người lập trình đưa ra thông qua các lệnh (Instructions).



8



Hình 1-4. Khối xử lý trung tâm

1.2.2. Hệ thống bus

Là các đường tín hiệu song song 1 chiều nối từ CPU đến bộ nhớ, bao gồm:

- Bus địa chỉ

- Address bus

Độ rộng bus: là số các đường tín hiệu, có thể là 8, 18, 20, 24, 32 hay 64.

CPU gửi giá trị địa chỉ của ô nhớ cần truy nhập (đọc/ghi) trên các đường tín hiệu

này.

1 CPU với n đường địa chỉ sẽ có thể địa chỉ hoá được 2 n ô nhớ. Ví dụ, 1 CPU có

16 đường địa chỉ có thể địa chỉ hoá được 216 hay 65,536 (64K) ô nhớ.

a. Bus dữ liệu - Data bus

Là các đường tín hiệu song song 2 chiều, nhiều thiết bị khác nhau có thể được

nối với bus dữ liệu; nhưng tại một thời điểm, chỉ có 1 thiết bị duy nhất có thể được

phép đưa dữ liệu lên bus dữ liệu.

Độ rộng bus: 4, 8, 16, 32 hay 64 bits

Bất kỳ thiết bị nào được kết nối đến bus dữ liệu phải có đầu ra ở dạng 3 trạng

thái, sao cho nó có thể ở trạng thái treo (trở kháng cao) nếu không được sử dụng.

b. Bus điều khiển - Control bus

Bao gồm 4 đến 10 đường tín hiệu song song.

CPU gửi tín hiệu ra bus điều khiển để cho phép các đầu ra của ô nhớ hay các

cổng I/O đã được địa chỉ hoá. Các tín hiệu điều khiển thường là: đọc/ ghi bộ nhớ

-memory read, memory write, đọc/ ghi cổng vào/ra - I/O read, I/O write.

Ví dụ: Để đọc 1 byte dữ liệu từ ô nhớ sẽ cần đến các hoạt động sau:

 CPU đưa ra địa chỉ của ô nhớ cần đọc lên bus địa chỉ.

 CPU đưa ra tín hiệu đọc bộ nhớ - Memory Read trên bus điều khiển.

Tín hiệu điều khiển này sẽ cho phép thiết bị nhớ đã được địa chỉ hoá đưa byte dữ

9



liệu lên bus dữ liệu. Byte dữ liệu từ ô nhớ sẽ được truyền tải qua bus dữ liệu đến CPU.

1.3. ĐỊNH DẠNG DỮ LIỆU VÀ BIỂU DIỄN THÔNG TIN TRONG HỆ VI XỬ

LÝ – VI ĐIỀU KHIỂN

1.3.1. Các hệ đếm

• Hệ thập phân - Decimal

• Hệ nhị phân - Binary

• Hệ16 - Hexadecimal

• Mã BCD (standard BCD, gray code): (Binary Coded Decimal)

Trong thực tế, đối với một số ứng dụng như đếm tần, đo điện áp, … ngõ ra ở

dạng số thập phân, ta dùng mã BCD. Mã BCD dùng 4 bit nhị phân để mã hoá cho một

số thập phân 0..9. Như vậy, các số hex A..F không tồn tại trong mã BCD.

Mã BCD gồm có 2 loại:

- Mã BCD không nén (unpacked): biểu diễn một số BCD bằng 8 bit nhị phân

- Mã BCD nén (packed): biểu diễn một số BCD bằng 4 bit nhị phân

Ví dụ: Số thập phân 529

Số BCD không nén 0000 0101b 0000 0010b 0000 1001b

Số BCD nén 0101b 0010b 1001b

• Mã hiển thị 7 đoạn (7-segment display code)



Hình 1cách mã



5.LED 7 thanh và

hóa



• Các mã hệ đếm thông dụng

Bảng 1-1. Giá trị tương ứng giữa các hệ số



10



Hệ 10 Hệ 2 Hệ 8 Hệ 16

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15



0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111



0

1

2

3

4

5

6

7

10

11

12

13

14

15

16

17



0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F



Binary-Coded Decimal

8421 BCD EXCESS-3

0000 0011 0011

0001 0011 0100

0010 0011 0101

0011 0011 0110

0100 0011 0111

0101 0011 1000

0110 0011 1001

0111 0011 1010

1000 0011 1011

1001 0011 1100

0001 0000 0100 0011

0001 0001 0100 0100

0001 0010 0100 0101

0001 0011 0100 0110

0001 0100 0100 0111

0001 0101 0100 1000



11



Gray Code

0000

0001

0011

0010

0110

0111

0101

0100

1100

1101

1111

1110

1010

1011

1001

1000



7-Segment

abcdefg Display

111111

0

011000

1

110110

2

111100

3

011001

4

101101

5

101111

6

111000

7

111111

8

111001

9

111110

A

001111

B

000110

C

011110

D

110111

E

100011

F



1.3.2. Mã ký tự - Alphanumeric CODE (ASCII, EBCDIC)

Bảng 1-2. Bảng mã ASCII



Bảng 1-3. Bảng mã ASCII có cả ký tự trong phần mở rộng



12



13



1.3.3. Các phép toán số học trên hệ đếm nhị phân

Bảng 1-4. Phép cộng nhị phân

Vào

A

0

0

0

0

1

1

1

1



B

0

0

1

1

0

0

1

1



Bảng 1-5. Phép trừ nhị phân



Ra

BIN

0

1

0

1

0

1

0

1



D

0

1

1

0

1

0

0

1



Vào



BOUT

0

0

0

1

0

1

1

1



A

0

0

0

0

1

1

1

1



B

0

0

1

1

0

0

1

1



Ra

BIN

0

1

0

1

0

1

0

1



D

0

1

1

0

1

0

0

1



BOUT

0

1

1

1

0

0

0

1



Phép trừ nhị phân, chính là phép cộng nhị phân với số bù 2 của số trừ, trường

hợp kết quả dương.

Câu hỏi ôn tập chương 1

Câu 1: Trình bày sự khác nhau giữa vi xử lý và vi điều khiển.

Câu 2: Chuyển từ hệ cơ số 10 các số: 34, 225, 143 sang hệ cơ số 2 và cơ số 16.

Câu 3 : Chuyển hệ cơ số 16 các số: FF, D8, C5 sang hệ cơ số 2 và cơ số 10.

Câu 4: Tìm mã bù 2 của: 1100, 0110, 0111.



14



CHƯƠNG 2

GIỚI THIỆU CHUNG VỀ VI ĐIỀU KHIỂN

2.1. ĐẶT VẤN ĐỀ

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ần cân nhắc. Bởi

vì hệ thống dù lớn hay nhỏ, nếu dùng vi xử lý thì cũng đòi hỏi các khối mạch điện giao

tiếp phức tạp như nhau. 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 tinh tường 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ì một số nhược điểm trên 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). Thay

vào đó, 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.

Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, các robot

có chức năng đơn giản, trong máy giặt, ôtô v.v...

Năm 1976 Intel giới thiệu bộ vi điều khiển (microcontroller) 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.

15



Xem Thêm
Tải bản đầy đủ (.doc) (97 trang)

×