intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Vi xử lý - Học viện Công nghệ Bưu chính Viễn thông

Chia sẻ: Dinh Tuan | Ngày: | Loại File: PDF | Số trang:255

128
lượt xem
17
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Vi xử lý" cung cấp cho người đọc các kiến thức: Kiến trúc của hệ vi xử lý, nguyên tắc làm việc của bộ vi xử lý họ 80X86 Intel, lập trình Assembly cho hệ vi xử lý Intel, thiết kế hệ vi xử lý chuyên dụng,... Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Vi xử lý - Học viện Công nghệ Bưu chính Viễn thông

  1. LỜI NÓI ĐẦU Các bộ vi xử lý ra đời đem lại bước ngoặt trong khoa học kỹ thuật, các thiết bị trở nên thông minh hơn nhờ sự điều khiển theo chương trình. Vi xử lý đang dần có mặt trong hầu hết các máy móc thiết bị dân dụng cũng như công nghiệp. Vì vậy việc học tập nghiên cứu ứng dụng vi xử lý trong trường học là một nhu cầu hết sức cần thiết. Để phục vụ cho nhu cầu giảng dạy môn học Kỹ thuật vi xử lý cho các lớp đại học từ xa chuyên nghành điện tử viễn thông, bài giảng vi xử lý được biên soạn với mục đích cung cấp cho sinh viên các kiến thức cơ sở cần thiết sử dụng cho việc nghiên cứu ứng dụng các hệ thống vi xử lý trong kỹ thuật và đời sống. Bài giảng bao gồm 8 chương với các nội dung chính như sau: N Chương 1 cung cấp các khái niệm cơ bản về vi xử lý và hệ thống của nó. Chương 2 mô tả cấu trúc, các khối chức năng trong các bộ vi xử lý họ Intel 80x86, mà chủ yếu là CPU 80286. Ngoài ra trong chương này còn giới thiệu về các tính năng của các bộ vi xử lý .V thế hệ sau 80286 như 80386, 80486, Pentium. Chương 3 mô tả về cấu trúc lệnh, các chế độ định vị địa chỉ và tập lệnh chi tiết của vi xử lý 80286. Cho phép sinh viên rút ra được các kiến thức chung nhất về các lệnh vi xử lý và cách tiếp cận trong việc lập trình bằng các lệnh hợp ngữ. Ngoài ra chương này còn đề cập tới các vấn U đề về lập trình hợp ngữ trên máy vi tính bao gồm: cấu trúc câu lệnh, cách khai báo dữ liệu, khung chương trình hợp ngữ, các cấu trúc lập trình cơ bản, và các ví dụ cơ bản rèn luyện kỹ năng lập trình bằng các lệnh gợi nhớ của vi xử lý. ED Chương 4 cung cấp các kiến thức về việc thiết kế các hệ thống vi xử lý chuyên dụng bao gồm cả việc thiết kế hệ thống phần cứng và phần mềm vi xử lý. Chương 5 mô tả về cấu trúc hoạt động của các vi mạch hỗ trợ vào ra song song 8255 và vào ra nối tiếp 8251. Chương 6 mô tả về vi điều khiển 8051 bao gồm về cấu trúc các khối mạch phần cứng, về T. tập lệnh và lập trình cho vi điều khiển 8051. Chương 7 mô tả việc thiết kế hệ thống đo độ rộng xung và truyền dữ liệu nối tiếp bằng 8051. Với các ví dụ này sinh viên có thể tiếp cận về việc thiết kế các ứng dụng nhỏ dùng vi điều TI khiển. Chương 8 là các giới thiệu về bộ vi điều khiển 32 bit của Motorola MC68332. Đây là bộ vi điều khiển có các tính năng rất mạnh được ứng dụng nhiều trong các thiết bị điều khiển hiện nay. .P Mong rằng tập bài giảng này đáp ứng được nhu cầu giảng dạy môn học kỹ thuật vi xử lý tại học viện, và kích thích được sự hứng thú của học sinh – sinh viên trong việc nghiên cứu ứng dụng vi xử lý trong kỹ thuật và đời sống hàng ngày. Rất mong nhận được nhiều ý kiến đóng góp N để bài giảng ngày càng được hoàn thiện hơn. Tác giả PE O
  2. MỤC LỤC Trang Chương 1 : Kiến trúc của hệ vi xử lý (2 tiết) 1 1.1 Tổ chức chung của hệ vi xử lý 1 1.1.1. Công nghệ LSI và sự ra đời của bộ vi xử lý. 1 1.1.2. Phần cứng và phần mềm của hệ thống vi xử lý. 2 N 1.1.3. Tổng quan về phần cứng hệ thống vi xử lý. 3 1.1.4. Tổng quan về phần mềm và sự phát triển của ngôn ngữ phần mềm. 4 1.2 Tổ chức bộ nhớ của hệ vi xử lý 4 .V 1.2.1 Cấu trúc và nguyên tắc làm việc của bộ nhớ ROM , EPROM . 5 1.2.2 Cấu trúc và nguyên tắc làm việc của bộ nhớ SRAM , DRAM . 7 1.2.3 Tổ chức bộ nhớ 7 U 1.3 Vào ra trong hệ thống vi xử lý. 10 1.3.1 Cấu trúc và nguyên tắc làm việc của cổng vào / ra. 10 1.3.2 Mạch ba trạng thái và mạch cài 10 ED 1.3.3 Các cổng vào / ra đơn giản. 11 Chương 2 : Nguyên tắc làm việc của bộ vi xử lý họ 80X86 Intel (6 tiết) 14 2.1 Cấu trúc của bộ vi xử lý 80286 Intel 14 T. 2.1.1 Sơ đồ khối của bộ vi xử lý 80286 Intel 15 2.1.2 Khối tạo địa chỉ (AU) 15 2.1.3 Khối ghép kênh (BU) 15 TI 2.1.4 Khối lệnh (IU) 15 2.1.5 Khối thực hiện lệnh (EU) 15 2.2 Các thanh ghi của bộ vi xử lý 80286 Intel . 15 2.2.1 Chức năng và nhiệm vụ của các thanh ghi đa năng . 16 .P 2.2.2 Các thanh ghi quản lý đoạn 17 2.2.3 Thanh ghi cờ trạng thái 18 2.2.4 Các thanh ghi đặc biệt 20 N 2.3 Nguyên tắc làm việc của bộ vi xử lý 80286 Intel . 21 2.3.1 Định nghĩa chu kỳ lệnh và chu kỳ máy 21 2.3.2 Quản lý bộ nhớ thực và bộ nhớ ảo 25 PE 2.3.3 Trạng thái bộ vi xử lý khi khởi động 35 2.3.4 Chế độ ngắt và các đầu ngắt của bộ vi xử lý 36 2.4 Các bộ vi xử lý cấp cao của Intel 40 O Chương 3 : Lập trình Assembly cho hệ vi xử lý Intel (6 tiết) 43 3.1 Cấu trúc của hợp ngữ. 43 3.1.1 Bộ ký tự từ khóa của hợp ngữ 44 3.1.2 Các lệnh chỉ dẫn trong hợp ngữ 44 3.1.3 Khung của file chương trình nguồn Assembly 48 3.2 Tập lệnh của bộ vi xử lý 80X86 Intel 50 3.2.1 Nhóm lệnh chuyển dữ liệu 54
  3. 3.2.2 Nhóm lệnh xử lý dữ liệu. 56 3.2.3 Nhóm lệnh chuyển điều khiển 61 3.3 Lập trình hợp ngữ cho hệ vi xử lý Intel 62 3.3.1 Lập trình chuyển mảng dữ liệu 63 3.3.2 Lập trình chuyển đổi mã (nhị phân , hexa , thập phân , ascii) 64 3.3.3 Lập trình điều khiển thiết bị ngoại vi 67 Chương 4 : Thiết kế hệ vi xử lý chuyên dụng (6 tiết) 72 N 4.1 Trình tự thiết kế hệ vi xử lý chuyên dụng 72 4.2 Tổ chức phần cứng cho hệ vi xử lý chuyên dụng . 74 4.2.1 Lựa chọn bộ vi xử lý 74 .V 4.2.2 Tổ chức không gian nhớ thực và định vị ROM , RAM 74 4.2.3 Thiết kế các ngoại vi theo yêu cầu 78 4.3 Xây dựng phần mềm cho hệ vi xử lý 82 U 4.3.1 Xây dựng thuật toán và lưu đồ thuật toán cho hệ vi xử lý 82 4.3.2 Viết chương trình nguồn bằng Assembly cho hệ vi xử lý 87 4.4 Dịch và nạp chương trình vào ROM cho hệ vi xử lý 87 ED Chương 5 : Các chip IC hỗ trợ cho hệ vi xử lý (4 tiết) 92 5.1 Chip vào / ra lập trình 8255 92 5.1.1 Cấu trúc của chip 8255 92 T. 5.1.2 Các chế độ làm việc của chip 8255 93 5.1.3 Kết nối 8255 với hệ thống vi xử lý 98 5.1.4 Lập trình khởi tạo chế độ làm việc cho chip 8255 99 TI 5.2 Chip truyền tin nối tiếp USART 8251 101 5.2.1 Chế độ truyền tin đồng bộ và cận đồng bộ 101 5.2.2 Cấu trúc của chip USART 8251 104 5.2.3 Các chế độ làm việc của chip USART 8251 106 .P 5.2.4 Ghép chip USART 8251 với hệ vi xử lý 107 5.2.5 Lập trình khởi tạo chế độ làm việc cho chip USART 8251 110 N Chương 6 : Vi điều khiển 8 bit 8051 (8 tiết) 120 6.1 Cấu trúc và chức năng của vi điều khiển 8051. 120 PE 6.1.1. Giới thiệu về các bộ vi điều khiển. 120 6.1.2. Cấu trúc tổng quát của các bộ vi điều khiển. 120 6.1.3. Mô tả phần cứng các bộ vi điều khiển họ MSC-51 121 6.2 Giao tiếp với bộ nhớ ngoài cho vi điều khiển 8051. 130 6.2.1. Truy xuất bộ nhớ chương trình bên ngoài. 131 O 6.2.2. Truy xuất bộ nhớ dữ liệu bên ngoài. 131 6.2.3. Bộ nhớ ngoài sử dụng chung cho chương trình và dữ liệu 134 6.3 Hoạt động timer của 8051 134 6.3.1. Giới thiệu. 134 6.3.2. Các chế độ timer và cờ báo tràn. 136 6.3.3. Nguồn xung nhịp. 137 6.3.4. Cho chạy, dừng và điều khiển các timer. 138 6.3.5. Khởi động và truy xuất các thanh ghi timer. 139
  4. 6.4 Bộ điều khiển truyền tin nối tiếp UART của 8051. 140 6.4.1 Giới thiệu. 140 6.4.2 Thanh ghi điều khiển cổng nối tiếp. 140 6.4.3 Các chế độ hoạt động 141 6.4.4 Khởi động và truy xuất các thanh ghi cổng nối tiếp 143 6.4.5 Truyền thông tin trong hệ thống đa xử lý. 145 6.4.6 Tốc độ cổng nối tiếp. 145 6.5 Ngắt của vi điều khiển 8051. 147 6.5.1. Giới thiệu. 147 N 6.5.2. Tổ chức ngắt của 8051. 148 6.5.3. Các vector xử lý ngắt. 149 6.5.4. Thiết kế chương trình dùng các ngắt. 151 .V 6.5.5. Các ngắt của 8051 152 6.6 Tập lệnh và hướng dẫn lập trình trên 8051. 153 6.6.1 Các chế độ địa chỉ. 153 U 6.6.2 Tập lệnh của 8051. 157 6.6.3 Chương trình hợp ngữ 8051. 159 6.7 Bộ nhớ ROM của vi điều khiển 8051. 168 ED Chưong 7 : Thiết kế hệ thống chuyên dụng trên on – chip 80C51 (4 tiết) 173 7.1 Thiết kế hệ đo thông số tín hiệu xung 173 7.1.1 Nguyên tắc đo độ rộng xung 173 T. 7.1.2 Sơ đồ phần cứng của hệ đo 174 7.1.3 Xây dựng chương trình điều khiển 175 7.2 Thiết kế hệ truyền tín hiệu nối tiếp 181 TI 7.2.1 Sơ đồ kết nối phần cứng hệ thống vi điều khiển truyền dữ liệu nối tiếp. 181 7.2.2 Xây dựng chương trình điều khiển. 181 Chương 8 : Vi điều khiển 32 bit MC68332 (9 tiết) 189 .P 8.1 Cấu trúc và chức năng thành phần của on – chip 32 bit MC68332 189 8.2. Mô đun tích hợp hệ thống SIM. 191 N 8.2.1. Khối định cấu hình và bảo vệ hệ thống. 195 8.2.2. Khối tạo clock cho hệ thống. 195 8.2.3. Khối giao tiếp BUS bên ngoài. 195 PE 8.2.4. Khối tạo tín hiệu chọn mạch. 196 8.2.5. Các ngõ vào ra đa dụng. 197 8.2.6. Reset 198 8.2.7. Ngắt 199 8.2.8. Khối kiểm tra phần cứng 200 O 8.3 Bộ vi xử lý 200 8.3.1. Các mô hình lập trình. 201 8.3.2. Thanh ghi trạng thái chương trình 202 8.3.3. Chế độ gỡ rối. 203 8.4 Khối xử lý thời gian TPU 203 8.4.1. Các khối chức năng trong TPU. 204 8.4.2. Các chức năng thới gian của TPU. 206 8.5 Mô đun nối tiếp theo hàng đợi QSM 210
  5. 8.6 TRURAM 212 8.6.1. Khối thanh ghi của TPU RAM. 213 8.6.2. Hoạt động của TPURAM 214 8.7 Lập trình hợp ngữ cho vi điều khiển MC68332 214 8.7.1 Các chế độ địa chỉ trong chương trình hợp ngữ MC68332. 214 8.7.2 Tập lệnh của MC68332 215 8.7.3 Khuôn dạng chương trình nguồn. 225 8.7.4 Lập trình khởi động SIM. 227 8.7.5 Lập trình định cấu hình cho RAM nội. 229 N 8.7.6 Lập trình cho QSM. 229 8.7.7 Lập trình cho TPU. 232 .V HƯỚNG DẪN VÀ ĐÁP SỐ BÀI TẬP 237 CÁC CHỮ VIẾT TẮT 246 U TÀI LIỆU THAM KHẢO 251 ED T. TI .P N PE O
  6. Chương 1: Kiến trúc của hệ thống vi xử lý CHƯƠNG 1: KIẾN TRÚC CỦA HỆ THỐNG VI XỬ LÝ Giới thiệu: Trước hết trong chương này sinh viên cần nắm được các khái niệm về bộ vi xử lý như : mục đích sự ra đời của bộ vi xử lý, các khối chức năng cơ bản của bộ vi xử lý, nguyên tắc xử lý các công việc và bài toán của bộ vi xử lý, lệnh của bộ vi xử lý, chương trình mà các bộ vi xử lý thực hiện, chức năng của phần cứng và phần mềm trong hệ thống vi xử lý, các khối chức năng phần cứng trong hệ thống vi xử lý và chức năng của chúng, các tín hiệu kết nối các khối chức năng phần cứng, phần mềm phát triển của ngôn ngữ phần mềm hệ thống vi xử lý, lệnh mã máy, N lệnh gợi nhớ, nguyên tắc hình thành ngôn ngữ cấp cao, các chương trình hợp ngữ, các chương trỉnh ngôn ngữ cấp cao và việc thực hiện các chương trình này trong hệ thống vi xử lý. .V Tiếp theo chương này cung cấp các kiến thức về bộ nhớ bán dẫn. Sinh viên cần nắm được nguyên tắc hoạt động của bộ nhớ bán dẫn, sự khác nhau giữa các bộ nhớ ROM và các bộ nhớ RAM, giữa các loại bộ nhớ ROM và giữa các loại bộ nhớ RAM, và quan trọng nhất là các tổ chức các bộ nhớ trong hệ thống vi xử lý, phương pháp giải mã địa chỉ bộ nhớ trong các hệ thống vi xử U lý. Phần cuối cùng sinh viên cần nắm được các kiến thức về vào ra, cấu trúc của các vi mạch ED số đệm, cài và nguyên tắc làm việc của chúng trong các hệ thống vi xử lý, trạng thái trở kháng cao và ý nghĩa của chúng trong kết nối hệ thống vi xử lý. Và cũng giống như bộ nhớ cần nắm rõ nguyên tắc giải mã địa chỉ vào ra trong các hệ thống vi xử lý. T. 1.1. TỔ CHỨC CHUNG CỦA HỆ THỐNG VI XỬ LÝ 1.1.1. Công nghệ LSI và sự ra đời của các bộ vi xử lý Trong kỹ thuật số, chúng ta đã được làm quen với công nghệ chế tạo bán dẫn cho phép đặt TI nhiều cổng logic trong một vi mạch (hay một mạch tích hợp IC – Integrated Circuits) với diện tích khoảng vài mm2. Nếu số cổng nhỏ hơn 15 đơn vị cổng, chúng được gọi là mạch tích hợp mật độ nhỏ SSI (Small Scale Integration). Từ 15 tới 100 đơn vị cổng được gọi là mạch tích hợp mật độ .P vừa MSI, trên 100 cổng là mạch tích hợp mật độ cao LSI và hàng triệu đơn vị cổng được gọi là mạch tích hợp mật độ rất cao VLSI. Với công nghệ chế tạo bán dẫn trên, hàng ngàn loại IC số khác nhau ra đời với các chức năng N khác nhau, nhưng chúng đều có các tính chất chung như: - Đều được kết nối từ các cổng logic cơ bản. PE - Dữ liệu số đưa tới các ngõ vào sẽ được biến đổi theo một hàm số nhất định thành dữ liệu trên các ngõ ra. Với cấu hình nối cứng các cổng logic cơ bản để tạo thành một IC số với một chức năng cụ thể như trên, làm việc sử dụng các IC số có các nhược điểm như: cùng một chức năng nhưng sử O dụng nhiều lần trong mạch, sẽ phải sử dụng nhiều IC số. Khi muốn thực hiện các công việc khác nhau, cần thực hiện các mạch số khác nhau. Ví dụ, một công việc yêu cầu hai phép cộng nhị phân sẽ phải sử dụng hai IC cộng khác nhau. Nếu có nhiều hơn một phép tính so với mạch đã thực hiện sẽ cần phải làm một mạch khác. Với sự ra đời của công nghệ LSI, cho phép tích hợp rất nhiều cổng logic trong một vi mạch nhỏ, người ta nghĩ đến chuyện thiết kế một IC số có thể thực hiện mọi chức năng số mà không cần phải thay đổi mạch điện. Nguyên tắc thực hiện của loại IC số này có thể biểu diễn trong sơ đồ khối hình 1.1. 1
  7. Chương 1: Kiến trúc của hệ thống vi xử lý Sơ đồ bao gồm khối các hàm số cơ bản và các bộ đệm được kết nối với nhau thông qua các mạch kiểm soát (không kết nối cố định, mà chỉ kết nối khi có các tín hiệu cho phép). Dữ liệu có thể di chuyển từ bộ đệm này tới bộ đệm khác và từ các bộ đệm tới xử lý tại các hàm cơ bản khi có các tín hiệu cho phép thích hợp. Một chức năng số phức tạp (một bài toán hay một công việc nào đó), thay vì phải thực hiện bằng một mạch số nối cứng, có thể thực hiện từng bước bằng cách tuần tự thực hiện các hàm số cơ bản trong IC này. Với cấu hình này, sơ đồ có thể thực hiện mọi chức năng số phức tạp mà không cần thay đổi mạch kết nối các IC số. Đây là cấu hình cơ bản nhất của một bộ vi xử lý. N Chọn hàm xử lý dữ Các hàm số cơ bản .V liệu … U Chọn bộ đệm cung cấp dữ Bộ đệm Bộ đệm Bộ đệm Bộ đệm liệu ED Hình 1.1: Sơ đồ khối cấu tạo cơ bản của vi xử lý. T. Như vậy vi xử lý là một IC số có tất cả các hàm số cơ bản, để thực hiện một chức năng số phức tạp nó sẽ tuần tự thực hiện các chức năng số cơ bản theo một trình tự thích hợp. Để thực TI hiện một chức năng số cơ bản, cần phải cung cấp cho vi xử lý các tín hiệu chọn dữ liệu trong các bộ đệm và tín hiệu chọn hàm số xử lý dữ liệu đó. Công việc này được gọi là cung cấp một lệnh .P cho vi xử lý. Để thực hiện một bài toán hay một công việc nào đó, cần phải thực hiện tuần tự các hàm số cơ bản theo một trình tự nhất định, có nghĩa là phải cung cấp cho vi xử lý một tập hợp các lệnh sắp xếp theo một giải thuật hợp lý gọi là một chương trình. N 1.1.2. Phần cứng và phần mềm của hệ thống vi xử lý Với cấu tạo bao gồm các hàm số cơ bản và các bộ đệm như đã mô tả ở trên, các bộ vi xử PE lý không thể hoạt động một mình, mà chúng cần được kết nối ghép với các mạch phụ cận như: mạch cung cấp xung nhịp, bộ nhớ lưu trữ chương trình, các giao tiếp để liên lạc với người sử dụng hay thiết bị điều khiển. Nguyên tắc cấu tạo và cách thức kết nối giữa vi xử lý và các mạch phụ cận cần thiết của nó được gọi là công nghệ phần cứng của hệ thống vi xử lý (Hardware). O Các thiết bị xuất Các chương trình Hệ thống mạch nhập và chấp hành phần mềm điện tử số điều khiển Hình 1.2: Sơ đồ khối mô tả hoạt động của hệ thống vi xử lý. Để hệ thống mạch phần cứng đã được kết nối đúng có thể thực hiện một bài toán, một công việc, cần cung cấp cho vi xử lý một chương trình thích hợp. Công việc tạo ra các chương 2
  8. Chương 1: Kiến trúc của hệ thống vi xử lý trình cung cấp cho các hệ thống vi xử lý hoạt động được gọi chung là công nghệ phần mềm (Software). Có thể mô tả cơ chế của một hệ thống vi xử lý trên hình 1.2. 1.1.3. Tổng quát về phần cứng hệ thống vi xử lý Phần cứng một hệ thống vi xử lý bao gồm 3 khối mạch chính trên hình 1.3 bao gồm: - Bộ vi xử lý, hay còn được gọi là đơn vị xử lý trung tâm CPU (Central Processing Unit) có nhiệm vụ thực hiện tất cả các lệnh mà chương trình yêu cầu. Nó đóng vai trò là chủ trong hệ thống, quyết định sự hoạt động của các linh kiện khác trong mạch. - Khối bộ nhớ lưu trữ các chương trình cung cấp cho vi xử lý thực hiện, ngoài ra nó còn sử dụng lưu trữ các biến trung gian cũng như cuối cùng trong các quá trình tính toán. N - Các bộ vào ra kiểm soát việc truyền dữ liệu giữa CPU và các thiết bị ngoại vi như bàn phím, màn hình,…. Các thiết bị ngoại vi có thể là các thiết bị cho phép hệ thống vi xử lý và người .V sử dụng có thể liên lạc với nhau, hoặc các thiết bị thực hiện một công việc nào đó theo sự điều khiển của vi xử lý. Trong hệ thống vi xử lý, CPU đóng vài trò là thành phần điều khiển kiểm soát mọi hoạt U động của các vi mạch phụ trợ (bộ nhớ và vào ra) khác. Vì vậy, các mạch phụ trợ sẽ được kết nối với CPU bằng một hệ thống đường dẫn điện gọi là BUS. BUS được chia thành 3 loại: BUS dữ liệu, BUS địa chỉ và BUS điều khiển. ED BUS dữ liệu có nhiệm vụ truyền dữ liệu giữa CPU và các bộ nhớ hoặc vào ra để các thành phần trong hệ thống có thể hiểu được nhau. Ví dụ như: các lệnh được CPU lấy từ bộ nhớ qua BUS dữ liệu, hoạt động của các thiết bị ngoại vi được CPU điều khiển và kiểm soát bằng BUS dữ liệu. Các CPU truyền thống sử dụng một BUS dữ liệu duy nhất để truyền dữ liệu với tất cả mọi nơi T. trong hệ thống, vì vậy để điều khiển được từng thành phần một cách độc lập, tại một thời điểm thông thường CPU chỉ truyền dữ liệu với một vị trí duy nhất, vị trí này được xác định bằng trạng TI thái của BUS địa chỉ. Hệ thống phải được kết nối sao cho ứng với một địa chỉ mà CPU tạo ra, chỉ có một vị trí duy nhất được xác định tới, công việc này được gọi là giải mã địa chỉ trong hệ thống vi xử lý. Ngoài ra bộ nhớ hoặc vào ra, (xác định bằng BUS địa chỉ) có thể có nhiều chế độ hoạt .P động khác nhau với CPU, các chế độ này được thông báo qua lại với CPU thông qua BUS điều khiển. Ví dụ, khi đọc dữ liệu từ bộ nhớ CPU thông báo bằng tín hiệu MEMRD (memory read) tích cực, còn khi ghi dữ liệu tới bộ nhớ nó thông báo bằng tín hiệu MEMWR. N Chương PE Bộ trình nhớ O CPU Thiết I/O bị ngoại vi Hình 1.3: Sơ đồ khối hệ thống vi xử lý 3
  9. Chương 1: Kiến trúc của hệ thống vi xử lý 1.1.4. Tổng quát về phần mềm và sự phát triển của các ngôn ngữ phần mềm Như đã biết, hệ thống vi xử lý là một hệ thống mạch điện tử số hoạt động theo chương trình. Vì là hệ thống mạch điện tử số, nên các chương trình cung cấp cho vi xử lý hoạt động phải ở dưới dạng 0, 1 gọi là chương trình mã máy. Nhưng do ngôn ngữ máy chỉ đơn giản là tổ hợp của các bit 0 và 1 nên rất khó nhớ, khó kiểm tra đối với người sử dụng. Để khắc phục nhược điểm này, người ta đặt cho mỗi lệnh mã máy thực hiện một chức năng số cơ bản một tên dễ nhớ hơn gọi là mã gợi nhớ. Khi lập trình người ta sử dụng các lệnh gợi nhớ này, tạo thành chương trình hợp ngữ (assembly), để vi xử lý thực hiện được chương trình cần phải dịch nó ra chương trình mã máy. Quá trình dịch một chương trình hợp ngữ thành một chương trình mã máy, được gọi là quá trình hợp dịch (assembler). Hợp dịch có thể thực hiện bằng cách tra bảng tập lệnh, khi có máy vi N tính và các công cụ soạn thảo lưu trữ, người ta thực hiện các chương trình hợp dịch để quá trình hợp dịch nhanh chóng và chính xác hơn. .V Do chỉ đơn giản là tên của một lệnh cơ bản của vi xử lý, nên các mã gợi nhớ vẫn chưa thực sự dễ dàng khi lập trình, các chương trình hợp ngữ thường không có cấu trúc và rất khó kiểm tra phát hiện lỗi cũng như lưu trữ sử dụng lâu dài. Cũng theo cách trên, người ta viết ra các U chương trình con hợp ngữ thực hiện một chức năng thông dụng rồi đặt thành một lệnh ngôn ngữ cấp cao. Có rất nhiều ngôn ngữ cấp cao khác nhau ra đời như Pascal, C, basic …. Để thực hiện ED các chương trình ngôn ngữ cấp cao, cũng cần phải dịch chúng về dạng mã máy. Quá trình này được gọi là thông dịch hoặc biên dịch. Thông dịch là quá trình dịch từng lệnh ngôn ngữ cấp cao ra một chuỗi lệnh mã máy để vi xử lý thực hiện, sau đó mới tiếp tục với lệnh cấp cao kế tiếp. Còn biên dịch là dịch đồng thời chương trình ngôn ngữ cấp cao ra chương trình mã máy, sau đó mới cung cấp cho vi xử lý thực hiện chương trình mã máy đó. T. Chương trình hợp Chương trình mã Chương trình ngôn ngữ máy Hệ thống mạch TI ngữ cấp cao (các lệnh gợi nhớ) (tập hợp các bit 0 điện tử số và 1) .P Hình 1.4: Sự phát triển của ngôn ngữ phần mềm. 1.2. TỔ CHỨC BỘ NHỚ CỦA HỆ THỐNG VI XỬ LÝ N Trong hệ thống mạch điện tử phần cứng của hệ thống vi xử lý mô tả trên hình 1.3, bộ nhớ là các IC nhớ được gọi là bộ nhớ bán dẫn hay bộ nhớ chính của hệ thống vi xử lý. Ngoài bộ nhớ PE bán dẫn, hệ thống vi xử lý còn có các thiết bị khác sử dụng để lưu trữ dữ liệu và chương trình, đó là các thiết bị nhớ ngoài như: ổ đĩa cứng, ổ đĩa mềm, ổ đĩa quang học …. Chúng đóng vai trò là các thiết bị ngoại vi của hệ thống. Phần này chỉ mô tả về cấu tạo và nguyên tắc hoạt động của các loại bộ nhớ bán dẫn. Bộ nhớ bán dẫn được chia thành hai loại chính: bộ nhớ chỉ đọc ROM (Read Only O Memory) và bộ nhớ có thể đọc ghi được hay còn gọi là bộ nhớ truy cập ngẫu nhiên RAM (Random Access Memory). Tuy nhiên các tên gọi trên chỉ mang tính chất tương đối, bộ nhớ ROM cần phải được ghi dữ liệu trước khi đọc, mỗi loại ROM khác nhau sẽ có cách ghi dữ liệu khác nhau. Bộ nhớ truy cập ngẫu nhiên, khác với bộ nhớ truy cập tuần tự là có thể truy cập bất kỳ dữ liệu nào một cách tức thời, mà không phải truy cập tuần tự. Các bộ nhớ ROM và RAM đều có thể truy cập tuần tự. 4
  10. Chương 1: Kiến trúc của hệ thống vi xử lý Trong các hệ thống vi xử lý, bộ nhớ ROM được sử dụng để ghi các chương trình và dữ liệu cố định như: chương trình khởi động hệ thống, chương trình ROM BIOS của máy tính, các chương trình điều khiển hoạt động của các hệ thống vi xử lý không có bộ nhớ ngoài …. Các loại bộ nhớ ROM bao gồm: Mask ROM là ROM được ghi dữ liệu ngay từ khi sản xuất không thể thay đổi được. PROM là loại ROM lập trình được một lần bởi người sử dụng. EPROM là bộ nhớ ROM có thể lập trình bằng điện và xoá bằng tia cực tím, EEPROM là ROM lập trình và xoá nhiều lần bằng điện. Bộ nhớ RAM được sử dụng làm nơi lưu trữ các biến số của chương trình, nó cũng có thể sử dụng làm nơi chứa các chương trình nạp vào từ các thiết bị nhớ ngoài để CPU thực hiện. Bộ nhớ RAM được chia thành hai loại chính là: RAM tĩnh SRAM và RAM động DRAM. SRAM lưu N trữ dữ liệu theo nguyên tắc của các Flip – Flop, nên nó sẽ lưu trữ dữ liệu ghi vào nó cho đến khi có một dữ liệu khác được ghi đè lên, hoặc cho đến khi mất nguồn cung cấp. DRAM lưu trữ dữ .V liệu bằng các tụ nhỏ nên các mức 1 sau một thời gian sẽ bị tiêu hao qua các mạch phụ cận, vì vậy DRAM yêu cầu chu kỳ làm tươi. U 1.2.1. Cấu trúc và nguyên tắc làm việc của bộ nhớ ROM Hình 1.5 mô tả nguyên tắc cấu tạo của bộ nhớ PROM. Trong hình vẽ ma trận nhớ bao ED gồm 4 hàng và 8 cột. Tại một thời điểm tương ứng với trạng thái hai ngõ vào A1A0 sẽ có 1 trong 4 hàng mang trạng thái 0. Trạng thái của 8 cột sẽ tuỳ thuộc việc nối hay không nối hàng và cột tương ứng bằng diode. Tương ứng với điểm nối trạng thái của cột sẽ bằng 0, không nối là 1. Ứng với trạng thái của ngõ vào A2 bộ multiplex sẽ chọn 4 cột T3 – T0 hoặc P3 – P0 cung cấp ra các đường D3 – D0. Như vậy bộ nhớ sẽ bao gồm 8 ô nhớ, mỗi ô nhớ chứa 4 bit dữ liệu. Ứng với một T. trạng thái của A2A1A0 sẽ có một ô nhớ được chọn. +Vcc TI .P A0 A1 Giải mã địa N chỉ PE A2 T3 P3 T2 P2 T1 P1 T0 P0 Multiplex D3 D2 D1 D0 O Hình 1.5: Nguyên tắc cấu tạo của bộ nhớ ROM. Mỗi loại bộ nhớ ROM sẽ có cách kết nối các điểm của ma trận nhớ khác nhau như trên hình 1.6. Mask ROM có các điểm của ma trận nhớ được kết nối ngay khi sản xuất. Bộ nhớ PROM kết nối các điểm ma trận nhớ bằng các diode và các cầu chì mảnh, khi lập trình cần cung cấp dòng điện đủ lớn để làm đứt các cầu chì tại các điểm muốn lưu trữ các bit 1. Đối với các bộ nhớ EPROM và EEPROM các điểm ma trận nhớ được kết nối bằng các transistor MOS, khi lập trình cần cung cấp điện trường của điện áp cao để các hạt hiếm đủ năng lượng chuyển qua bán dẫn cực cổng, kênh dẫn mất khả năng dẫn điện, điểm ma trận giữ bit 1. Nếu muốn xoá các bit 1 đã ghi có 5
  11. Chương 1: Kiến trúc của hệ thống vi xử lý thể dùng điện trường điện áp cao (EEPROM) hoặc năng lượng cung cấp bằng tia cực tím (EPROM) để các điện tử tự do trở về kênh dẫn. B B B VD W W W 1 B B B N W W W 0 .V GN U Diode MOS ROM MOS ROM Hình 1.7: Nối các điểm ma trận nhớ của các loại ROM. ED Ngoài các tín hiệu địa chỉ và điều khiển các bộ nhớ ROM còn có các tín hiệu điều khiển, hình 1.8 mô tả các tín hiệu của EPROM 2764 trong đó: A12 – A0 : Các đường địa chỉ. D7 – D0 : Các đường dữ liệu. T. CE (Chip Enable): Tín hiệu chọn mạch, tín hiệu này không tích cực BUS dữ liệu sẽ ở trạng thái trở kháng cao. OE (Output Enale): Tín hiệu cho phép xuất cho phép bộ đệm dữ liệu ngõ ra để cung cấp dữ liệu từ TI bên trong ra ngoài các đường D7 – D0. VPP : Ngõ vào điện áp cao cung cấp nguồn lập trình cho EPROM. PGM: Ngõ vào cung cấp xung lập trình cho EPROM. .P U1 10 11 9 A0 D0 12 N 8 A1 D1 13 7 A2 D2 15 6 A3 D3 16 A4 D4 PE 5 17 4 A5 D5 18 3 A6 D6 19 25 A7 D7 24 A8 21 A9 23 A10 O 2 A11 A12 22 27 OE 20 PGM CE 1 VPP 2764 Hình 1.8: Các tín hiệu EPROM 2764. 6
  12. Chương 1: Kiến trúc của hệ thống vi xử lý 1.2.2. Cấu trúc và nguyên tắc làm việc của bộ nhớ RAM WL VD RL RL Q Q M3 M4 BL BL M1 M2 N .V Hình 1.9: Cấu tạo một bit nhớ SRAM. U Hình 1.9 mô tả cấu tạo của một bit nhớ SRAM, trong sơ đồ khi cấp nguồn một trong hai transistor M1 hoặc M2 dẫn, giả sử M2 dẫn Q = 0 nên M1 không dẫn, lúc này các đường BL và ED BL\ sẽ được cung cấp tới mạch khuếch đại đọc để cung cấp dữ liệu mức 0 khi được chọn. Để ghi một dữ liệu, chọn bit nhớ bằng cách cung cấp mức 1 tới WL làm các transistor M3 và M4 dẫn, cung cấp mức 1 tới đường BL (BL\ = 0) làm M2 tắt, M1 dẫn, bit nhớ sẽ lưu trữ dữ liệu 1. Ngoài tín hiệu chọn mạch CE cho phép xuất dữ liệu OE như bộ nhớ EPROM, các bộ nhớ SRAM còn có thêm tín hiệu cho phép ghi WE, chỉ ghi tín hiệu này tích cực dữ liệu mới được lưu T. trữ vào bộ nhớ. Cấu tạo một bit nhớ DRAM một transistor mô tả trên hình 1.10. Để ghi dữ liệu tới bit nhớ TI này cần cung cấp mức 1 tới WWL và cung cấp dữ liệu ghi tới BL1, transistor BL1 sẽ dẫn, điện áp sẽ được nạp cho tụ Cs. Khi đọc cấp mức 1 tới RWL làm M3 dẫn, khi Cs giữ mức 1 M2 dẫn ngõ ra BL2 tương ứng với mức 0 và mạch khuếch đại đọc sẽ cấp ra ngoài mức 1. .P BL 1 BL2 WWL N RWL WWL PE M3 RWL M1 X X V DD 2 V T M2 V DD O CS BL 1 BL 2 V DD 2 V T DV Hình 1.10: Cấu tạo bit nhớ DRAM. 1.2.3. Tổ chức bộ nhớ Như đã mô tả ở trên, bộ nhớ lưu trữ các dữ liệu theo các địa chỉ duy nhất, trên hình 1.11 7
  13. Chương 1: Kiến trúc của hệ thống vi xử lý tướng ứng với trạng thái 1 đường Si = 0 một ô nhớ sẽ được chọn. Để giảm bớt số tín hiệu chọn phải cung cấp có thể dùng bộ giải mã địa chỉ, nếu cần N tín hiệu cho việc chọn N ô nhớ chỉ cần cung cấp K đường địa chỉ (K = logN). M bits M bits S0 S0 Word 0 Word 0 S1 Word 1 A0 Word 1 S2 Tế bào Tế bào Word 2 A1 Word 2 N Nhớ nhớ .V A K-1 S N-2 Word N-2 Word N-2 S N-1 Word N-1 Word N-1 U K = log2N Vào - Ra ( M bits) ED Hình 1.11: Tổ chức lưu trữ các bit trong bộ nhớ. Vào - Ra ( M bits) T. Với cấu trúc trên với dung lượng nhớ lớn, ma trận nhớ sẽ mất đối xứng (nhiều hàng, ít cột), để ma trận nhớ đối xứng có thể sử dụng thêm bộ giải mã cột như hình 1.12. Tương ứng với một trạng thái của các địa chỉ cột sẽ chọn được một nhóm cột duy nhất cung cấp dữ liệu ra bên TI ngoài. 2L 2 K Bit line .P Storage cell AK Row Decoder AK1 1 Word line N AL2 1 PE M.2K Sense amplifiers / Drivers O A0 Column decoder Selects A K2 1 word Input-Output (M bits) Hình 1.12: Tổ chức các khối chức năng trong bộ nhớ. Khi CPU muốn truy cập (đọc ghi) dữ liệu từ bộ nhớ, trước hết nó phải cung cấp địa chỉ để xác định tới vị trí cần truy cập, sau đó cần cung cấp tín hiệu chọn mạch (CE) cho phép bộ nhớ 8
  14. Chương 1: Kiến trúc của hệ thống vi xử lý hoạt động, tiếp theo trong chế độ đọc CPU cần cung cấp tín hiệu OE và nhận dữ liệu từ BUS dữ liệu, trong chế độ ghi CPU cần cấp dữ liệu tới BUS dữ liệu và tín hiệu cho phép ghi WE. Các đại lượng đặc trưng cho bộ nhớ là dung lượng và thời gian truy xuất bộ nhớ. Thời gian truy xuất bộ nhớ là khoản thời gian từ lúc bộ nhớ nhận được địa chỉ và các tín hiệu điều khiển cho đến khi đưa được dữ liệu ra tuyến dữ liệu trong chế độ đọc và lưu xong dữ liệu vào các bit nhớ trong chế độ ghi. Bộ nhớ có thời gian truy xuất càng nhỏ thì hoạt động càng nhanh. Dung lượng bộ nhớ tuỳ thuộc vào số đường dữ liệu và số đường địa chỉ của nó. Bộ nhớ có A đường địa chỉ, D đường dữ liệu sẽ có dung lượng 2A x D bit. Bộ nhớ có dung lượng càng lớn thì càng chứa được nhiều thông tin. N A 17 : A0 .V D7 : 256 KB D0 #4 RD WR A 19 I1 O3 CS A 18 I0 U A 17 A 17 : : A0 A0 D7 D7 : : 256 KB #3 8088 Minimum Mode D0 MEMR MEMW O2 ED D0 RD WR CS A 17 : A0 D7 : D0 256 KB #2 T. RD WR O1 CS A 17 : TI A0 D7 : 256 KB D0 #1 RD WR O0 CS .P Hình 1.13: Giải mã kết nối 4 bộ nhớ trong hệ thống vi xử lý. Bộ nhớ sử dụng trong hệ thống vi xử lý thường tổ chức theo đơn vị truy xuất là byte, các N IC nhớ được kết nối sao cho truyền dữ liệu với CPU theo bội số của byte. Trong thực tế, bộ nhớ bán dẫn được sản xuất theo dạng các linh kiện có dung lượng hạn chế (từ vài KB cho đến cỡ vài PE chục MB). Trong hệ thống vi xử lý thường có ít nhất hai loại bộ nhớ (ROM và RAM), mặt khác trong trường hợp dung lượng các IC bộ nhớ không đủ đáp ứng dung lượng bộ nhớ của hệ thống khi thiết kế, nhà thiết kế phải ghép nhiều IC nhớ lại. Các IC nhớ sẽ sử dụng chung các BUS dữ liệu và địa chỉ, vì vậy tại một thời điểm truy xuất hệ thống phải được kết nối sao cho chỉ có một O IC nhớ được chọn, công việc này được gọi là giải mã địa chỉ bộ nhớ. Việc giải mã địa chỉ có thể thực hiện theo nhiều cách khác nhau, hình 1.13 sử dụng bộ giải mã 2 ra 4 để kết nối 4 IC nhớ 256 KB thành dung lượng nhớ 1 MB. Theo sơ đồ kết nối, mỗi IC nhớ trong mạch sẽ có một vùng địa chỉ riêng biệt vùng địa chỉ cho từng IC nhớ trong hình 1.13 như sau: 256KB đầu tiên : 000000H 3FFFFH 256KB thứ hai : 400000H 7FFFFH 256KB thứ ba : 800000H BFFFFH và 256KB thứ tư : C00000H FFFFFH. 9
  15. Chương 1: Kiến trúc của hệ thống vi xử lý Công việc xác định vùng địa chỉ cho từng IC nhớ trong một hệ thống vi xử lý được gọi là lập bản đồ bộ nhớ. 1.3. VÀO RA TRONG HỆ THỐNG VI XỬ LÝ 1.3.1. Cấu trúc và nguyên tắc làm việc của cổng vào ra Trong hệ thống vi xử lý, thông thường sử dụng nhiều thiết bị ngoại vi khác nhau, các thiết bị ngoại vi này sử dụng để giao tiếp với người sử dụng, hoặc là các thiết bị chấp hành sự điều khiển của hệ thống vi xử lý trong một ứng dụng nào đó. Để điều khiển các thiết bị ngoại vi hoạt N động, CPU cần truyền dữ liệu với chúng. CPU sử dụng chung một BUS dữ liệu để truyền dữ liệu với tất cả các bộ nhớ và thiết bị ngoại vi. Các cổng vào ra đóng vai trò là các cổng ngăn cách giữa .V các thiết bị ngoại vi và BUS dữ liệu, các cổng này chỉ mở khi được CPU cung cấp đúng địa chỉ của nó, và các cổng còn lại có địa chỉ khác sẽ không được mở. CPU luôn sử dụng các lệnh truyền đồng thời nhiều bit trên tất cả các đường dữ liệu với U bên ngoài. Tuy nhiên các cổng vào ra sau khi nhận dữ liệu từ CPU có thể truyền đồng thời tất cả các bit hoặc có thể truyền từng bit tới thiết bị. Các cổng vào ra truyền đồng thời tất cả các bit được ED gọi là các cổng vào ra song song, các cổng truyền từng bit là cổng vào ra nối tiếp. Các cổng vào ra nối tiếp sẽ có lợi điểm là số lượng dây dẫn truyền dữ liệu sẽ ít hơn loại song song, và tránh được nhiễu giữa các đường truyền song song khi dữ liệu được truyền với tốc độ cao. Ngoài ra có những loại thiết bị truyền nhận dữ liệu dưới dạng số 0, 1. Nhưng cũng có các thiết bị truyền nhận dữ liệu dưới dạng tín hiệu thay đổi liên tục theo thời gian, khi đó cần phải sử T. dụng các ADC cho chiều nhận dữ liệu và DAC cho chiều truyền dữ liệu. Các vào ra cũng có thể truyền dữ liệu một cách thụ động, hoặc có các tín hiệu bắt tay với thiết bị để chắc chắn là thiết bị đã được kết nối với vào ra và dữ liệu được thiết bị truyền nhận với TI vào ra. .P 1.3.2. Mạch ba trạng thái và mạch cài Mạch ba trạng thái là cấu trúc số cơ bản nhất thường được sử dụng trong tất cả các loại cổng vào ra của hệ thống vi xử lý. Cấu tạo của cổng ba trạng thái được mô tả trên hình 1.14. N D Q PE G OC Cổng đệm 3 trạng thái Cổng cài Hình 1.14: Các cổng vào ra số cơ bản O Với các cổng ba trạng thái, dữ liệu sẽ được truyền qua nó khi tín hiệu cho phép OC ở trạng thái tích cực, vì vậy tín hiệu cho phép này thường được cấp từ bộ giải mã địa chỉ, như trên hình 1.15 cổng đệm 3 trạng thái sẽ mở khi địa chỉ cung cấo từ CPU là FFFFH = 1111 1111 1111 1111B. Khi tín hiệu cho phép không tích cực, ngõ ra của cổng đệm sẽ ở trạng thái trở kháng cao, ngõ vào sẽ không ảnh hưởng tới ngõ ra, như vậy BUS dữ liệu sẽ được ngăn cách với thiết bị ngoại vi mà nó điều khiển, lúc này CPU có thể sử BUS dữ liệu để liên lạc với một thiết bị khác, tương ứng với một địa chỉ khác. Khác với cổng đệm, cổng cài sẽ giữ nguyên trạng thái logic ở ngõ ra của nó khi tín hiệu 10
  16. Chương 1: Kiến trúc của hệ thống vi xử lý cho phép hết tích cực (nó không chuyển qua trạng thái trở kháng cao). Các cổng cài sẽ thích hợp với các thiết bị ra cần giữ nguyên logic điều khiển sau tác động của lệnh, ví dụ bóng đèn LED nối với cổng đệm sẽ tắt khi CPU thực hiện xong lệnh truyền dữ liệu, vì CPU ngưng cấp địa chỉ làm ngõ ra cổng đệm chuyển qua trạng thái trở kháng cao. Nếu sử dụng làm cổng vào, ngõ ra cổng cài cần được nối tiếp với một cổng đệm trước khi nối tới BUS dữ liệu. 1.3.3. Các cổng vào ra đơn giản Các cổng vào ra đơn giản là các mạch tích hợp của các cổng đệm cài cơ bản, các mạch vào ra một chiều cơ bản thông dụng nhất là các IC 74244 và 74373 với cấu tạo như hình 1.15. N IC 74244 được tích hợp tám cổng đệm cơ bản, nó sẽ truyền đồng thời 8 bit số từ các ngõ vào D tới các ngõ ra Q khi OC tích cực mức 0. Với mạch cài một chiều 74373 dữ liệu vào các ngõ D sẽ được giữ ở các ngõ ra Q của các Flip – Flop, khi OC tích cực mức thấp dữ liệu sẽ cung cấp tới các .V ngõ ra Q. Như vậy khi sử dụng làm ngõ vào, CPU cần cung cấp địa chỉ để tích cực OC, còn khi sử dụng làm cổng ra có thể tác động tích cực tới chân G, còn OC có thể luôn cung cấp mức 0. IC74374 khác 74373 ở chỗ tín hiệu cho phép G sẽ tác động cạnh lên (thay vì tác động mức cao). U Một số thiết bị vào ra cần truyền dữ liệu theo cả hai chiều với CPU, IC đệm cài hai chiều 74245 thường được sử dụng cho các ứng dụng này. Với IC 74245 mỗi đường dữ liệu sẽ bao gồm hình 1.16. 74LS244 ED hai cổng đệm nối ngược chiều, tín hiệu DIR sẽ quyết định chiều truyền dữ liệu như mô tả trên 74LS373 D0 Q0 D0 T. D Q Q0 ... ... ... G ... TI D7 Q7 .P OC G OC Hình 1.15: Các cổng vào ra một chiều cơ bản. N Tóm tắt nội dung học tập: Trong chương này cần nhớ các khái niệm: PE • Vi xử lý là một vi mạch số có thể thực hiện được tất cả các chức năng của các vi mạch số khác bằng cách thực hiện tuần tự các chức năng số cơ bản. • Một lệnh của bộ vi xử lý là chuỗi các bit 0, 1 cung cấp để vi xử lý thực hiện được một chức năng số cơ bản của nó. O • Một chương trình vi xử lý là một chuỗi các lệnh được sắp xếp theo giải thuật của bài toán hay công việc cần thực hiện. • Để có hệ thống vi xử lý hoạt động được cần có kết nối phần cứng đúng và chương trình phần mềm hoạt động đúng. • Phần cứng hệ thống v xử lý bao gồm: CPU, bộ nhớ và vào ra. CPU thực hiện các chương trình để điều khiển hoạt động của toàn bộ hệ thống. Bộ nhớ là nơi lưu trữ các chương trình, là nơi khai báo các hằng và biến trong chương trình. Vào ra để giao tiếp với các thiết bị bên ngoài. • Các khối trong hệ thống vi xử lý được kết nối với nhau bằng một loạt các đường dây dẫn điện, mỗi đường này được gọi là một tín hiệu của hệ thống, các tín hiệu được chia thành 03 nhóm 11
  17. Chương 1: Kiến trúc của hệ thống vi xử lý chính gọi là ba BUS: BUS địa chỉ, BUS dữ liệu và BUS điều khiển. BUS dữ liệu để truyền dữ liệu giữa các khối. CPU sử dụng một BUS dữ liệu để truyền dữ liệu với mọi nơi nên nó cần BUS địa chỉ để xác định vị trí nào sẽ truyền dữ liệu với nó. BUS điều khiển sẽ xác định các chế độ làm việc khác nhau của hệ thống. • Bộ nhớ bán dẫn có ba chế độ làm việc chính là đọc, ghi và không chọn. Khi không chọn các BUS địa chỉ và dữ liệu của bộ nhớ ở trạng thái trở kháng cao. Khi muốn đọc bộ nhớ cần tác động tín hiệu chọn bộ nhớ, cung cấp địa chỉ xác định ô nhớ sẽ đọc trong bộ nhớ, cung cấp tín hiệu yêu cầu đọc và bộ nhớ sẽ cung cấp dữ liệu ra BUS dữ liệu. Khi muốn ghi bộ nhớ cũng cần cung cấp tín hiệu chọn bộ nhớ, cung cấp địa chỉ ô nhớ sẽ ghi, cung cấp dữ liệu cần ghi và cung cấp tín hiệu yêu cầu ghi. N • Các bộ nhớ RAM có thể đọc ghi bằng các logic điều khiển thông thường của vi xử lý, bộ nhớ ROM chỉ có thể đọc bằng các logic điều khiển thông thường, muốn ghi dữ liệu vào nó cần có .V các chế độ điều khiển đặc biệt. • Giải mã địa chỉ bộ nhớ là thực hiện mạch điện sao cho ứng với một địa chỉ mà CPU cung cấp chỉ có một vi mạch nhớ duy nhất được cung cấp tín hiệu chọn mạch, các vi mạch nhớ còn lại U sẽ không được chọn và có các BUS ở trạng thái trở kháng cao và chúng sẽ không kết nối về điện với hệ thống. • Các bộ đệm và cài sẽ truyền dữ liệu ở ngõ vào tới ngõ ra khi có tín hiệu chọn mạch. Khi không • ED được chọn các bộ đệm sẽ có ngõ ra trở kháng cao, còn các bộ cài sẽ giữ lại trạng thái ra trước đó. Các bộ đệm cài được sử dụng làm các cổng vào ra để cho phép thiết bị truyền dữ liệu với CPU chỉ khi CPU cấp đúng địa chỉ để chọn nó, trong khi các cổng không đúng địa chỉ sẽ không T. được chọn và chúng không kết nối về mặt điện với CPU. • Tương tự như giải mã bộ nhớ, giải mã vào ra sẽ là một mạch sao cho ứng với một địa chỉ mà CPU cung cấp chỉ có một cổng vào ra duy nhất được chọn. TI BÀI TẬP: .P Bài 1: Cho biết địa chỉ bắt đầu của một vùng nhớ Ram là 00000H và dung lượng của vùng nhớ này là 641KB. Hãy xác định địa chỉ vật lý cuối cùng của vùng nhớ này. Bài 2: Thiết kế vùng nhớ RAM 1MB x 8bit từ các bộ nhớ RAM 256K x 4 bit, vẽ bản đồ bộ nhớ N và cho biết vùng địa chỉ mà các bộ nhớ được chọn. Bài 3: Thực hiện mạch giải mã địa chỉ cho các bản đồ bộ nhớ sau: PE EPROM (256KB) EPROM (256KB) EPROM (256KB) SRAM (512KB) SRAM (256KB) EPROM (256KB) SRAM (512KB) O SRAM (256KB) EPROM (256KB) EPROM (256KB) SRAM (128KB) SRAM (128KB) SRAM (256KB) SRAM (128KB) SRAM (256KB) SRAM (256KB) SRAM (256KB) SRAM (128KB) SRAM (128KB) EPROM (512KB) EPROM (512KB) EPROM (512KB) 12
  18. Chương 1: Kiến trúc của hệ thống vi xử lý Cho biết vùng địa chỉ của từng bộ nhớ trong các bản đồ (các bộ nhớ đều có 8 bit dữ liệu). Bài 4: Thực hiện cổng ra điều khiển tám LED đơn có địa chỉ là F000H. Bài 5: Thực hiện cổng vào nhận dữ liệu từ 8 phím nhấn có địa chỉ là F000H. Bài 6: Thực hiện mạch giải mã địa chỉ vào ra trong hệ thống có 2 cổng ra và hai cổng vào sử dụng các bộ đệm cài 8 bit. N .V U ED T. TI .P N PE O 13
  19. Chương 2: Nguyên tắc làm việc của bộ vi xử lý họ Intel 80x86 CHƯƠNG 2: NGUYÊN TẮC LÀM VIỆC CỦA BỘ VI XỬ LÝ HỌ INTEL 80X86 Giới thiệu: Nội dung chương này trước hết giới thiệu về cấu trúc của bộ vi xử lý 80286 và chức năng các khối mạch của nó như: khối giao tiếp BUS (BU) tác động mọi tín hiệu để giao tiếp với thế giới bên ngoài., khối giải mã lệnh (IU) thực hiện chức năng tạo ra các tín hiệu điều khiển các khối mạch trong CPU hoạt động để thực hiện lệnh, khối EU thực hiện các lệnh, khối AU tạo ra địa chỉ để giao tiếp với bộ nhớ và vào ra. Để có thể thực hiện được các chương trình hợp ngữ viết cho vi xử lý họ Intel (chương 3), sinh N viên cần nhớ các thanh ghi của 80286, và các chức năng mà chúng đảm nhận bao gồm: các thanh ghi đa năng, các thanh ghi đoạn, thanh ghi cờ trạng thái và các thanh ghi đặc biệt. Đặc biệt chú ý .V tới sự tác động của các cờ trạng thái trong thanh ghi cờ. Để hiểu được nguyên lý hoạt động của hệ thống vi xử lý cần đặc biệt quan tâm tới các chu kỳ máy của CPU. Trong bốn chu kỳ máy: đọc, ghi bộ nhớ và đọc ghi vào ra cần chú ý tới thời điểm U tác động của các tín hiệu trong hệ thống, và chức năng của chúng sử dụng làm gì trong hệ thống. Ngoài ra cũng cần chú ý tới trạng thái của các cả các thanh ghi của 80286 sau khi khởi động ED và cơ chế ngắt của CPU. Cơ chế ngắt được sử dụng rất phổ biến trong các hệ thống vi xử lý trong các ứng dụng thực tế, đặc biết là đối với các hệ thống điều khiển hoạt đông của máy móc thiết bị. Các cơ chế quản lý bộ nhớ ảo rất quan trọng khi lập trình hệ thống chạy trong các môi trường đa nhiệm, tuy nhiên đối với các chức năng ứng dụng nhỏ sẽ chưa cần chú ý tới các cơ chế này. Phần cuối cùng của chương giới thiệu về các bộ vi xử lý thế hệ tiếp theo của 80286 với các T. chức năng tiên tiến như: bộ nhớ đệm, cơ chế pipeline, cơ chế siêu phân luồng … 2.1. CẤU TRÚC CỦA BỘ VI XỬ LÝ 80286 INTEL TI ADDRESS UNIT (AU) .P ADDRESS LATCH AND DRIVER PHYSICAL PROCESSOR OFFSET ADDRESS PREFETCH EXTENTION N ADDER ADDER INTERFACE SEGMENT BASE BUS CONTROL PE SEGMENT SEGMENT DATA LIMIT SIZE CHECK TRANSCEIVERS 6 BYTE PREFETCH BUS O QUEUE UNIT (BU) ALU INSTRUCTION REGISTER UNIT (IU) LIMIT CONTROL 3 DECODER INSTRUCTION CHECK INSTRUCTION DECODER QUEUE EXECUTION UNIT (EU) Hình 2.1: Sơ đồ khối bộ vi xử lý 80286 14
  20. Chương 2: Nguyên tắc làm việc của bộ vi xử lý họ Intel 80x86 2.1.1. Sơ đồ khối của vi xử lý 80286 Intel Bộ vi xử lý 80286 được cấu tạo từ 4 khối chức năng có thể làm việc song song: - Khối giao tiếp BUS : BU (Bus Unit). - Khối giải mã lệnh : IU (Instruction Unit) - Khối thực hiện lệnh : EU (Execution Unit) - Khối tạo địa chỉ : AU (Address Unit) 2.1.2. Khối tạo địa chỉ (AU) AU đảm bảo việc quản lý, bảo vệ bộ nhớ, tuỳ theo chế độ địa chỉ các chương trình sẽ sử dụng N các loại địa chỉ logic khác nhau, AU có nhiệm vụ chuyển các địa chỉ logic quản lý trong chương trình phần mềm thành địa chỉ vật lý cung cấp tới BU để giao tiếp với bên ngoài. Địa chỉ vật lý là địa chỉ cung cấp trực tiếp cho bộ nhớ và vào ra, còn địa chỉ logic là các giá trị được chương trình .V quản lý sử dụng để tạo ra địa chỉ vật lý, đó chính là các địa chỉ đoạn (segment) và địa chỉ độ dời (offset). U 2.1.3. Khối giao tiếp BUS (BU) BU cung cấp các tín hiệu địa chỉ, dữ liệu và điều khiển để truy cập các bộ nhớ và vào ra. Khối ED này cũng cho phép giao tiếp với bộ đồng xử lý hoặc các bộ vi xử lý khác. Chức năng quan trong nhất của BU là tự động kích hoạt quá trình lấy lệnh từ bộ nhớ bằng bộ tiền truy cập lệnh (Prefetch). BU còn có chức năng cho phép quá trình lấy lệnh từ bộ nhớ thực hiện song song với các quá trình khác nhớ hàng đợi lệnh 6 byte (Prefetch queue). Các địa chỉ mà AU tạo ra cung cấp tới các bộ cài (Address Latch) và sẽ được định thời cung T. cấp ra bên ngoài tại các thời điểm thích hợp. Dữ liệu truyền với CPU sẽ được chuyển qua các cổng đệm hai chiều (Data Transceivers). TI 2.1.4. Khối giải mã lệnh (IU) Lệnh được BU lấy vào hàng đợi, trong khi IU lấy lệnh đã lấy trước đó giải mã và chuyển tới .P hàng đợi lệnh đã giải mã (Decoded Istruction queue) để EU thực hiện. Với chức năng giải mã lệnh, các lệnh ngoài bộ nhớ có thể mã hoá ngắn nhất có thể, IU sẽ tạo ra các tín hiệu điều khiển cần thiết từ các mã lệnh này. Bằng cách sử dụng hộ giải mã lệnh, dung N lượng nhớ của hệ thống sẽ yều cầu ít hơn, thời gian lấy lệnh sẽ được giảm ngắn. 2.1.5. Khối thực hiện lệnh (EU) PE EU thực hiện các lệnh xử lý dữ liệu mà IU đã giải mã, nó giao tiếp dữ liệu với bên ngoài thông qua BU. Các khối chức năng của EU bao gồm: Bộ điều khiển (Control) thực hiện việc điều khiển việc thực hiện các lệnh trong EU. ALU là khối thực hiện các phép toán số học logic, cấu trúc của ALU O thông thường có hai ngõ vào nhận hai toán hạng và một ngõ ra cung cấp kết quả. Các thanh ghi sử dụng làm nơi lưu trữ dữ liệu sử dụng trong các phép tính và các giá trị địa chỉ cho phép EU lấy các toán hạng từ bên ngoài. 2.2. CÁC THANH GHI CỦA BỘ VI XỬ LÝ 80286 Các thanh ghi là một bộ phận rất quan trọng trong một CPU. Chúng là một số ít các ô nhớ có tốc độ truy xuất rất nhanh, cách đánh địa chỉ đơn giản để CPU có thể truy xuất dữ liệu một 15
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2