Giáo trình Vi xử lý Phần 1 - Phạm Quang Trí: Tổng quan về VXL

Giáo trình Vi xử lý phần 1 Phạm Quang Trí: Tổng quan kiến thức cơ bản về vi xử lý, cấu trúc, hoạt động cùng ứng dụng thực tế. Tài liệu hữu ích cho sinh viên.

Người đăng

Ẩn danh

Thể loại

Giáo trình

2006

122
2
0

Phí lưu trữ

35 Point

Mục lục chi tiết

1. CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ BỘ VI XỬ LÝ

1.1. I. SỰ PHÁT TRIỂN CỦA CÁC BỘ VI XỬ LÝ:

1.1.1. 1. Thế hệ 1 (1971 - 1973):

1.1.2. 2. Thế hệ 2 (1974 - 1977):

1.1.3. 3. Thế hệ 3 (1978 - 1982):

1.1.4. 4. Thế hệ 4 (1983 - nay):

1.2. II. SƠ ĐỒ KHỐI CỦA MỘT HỆ VI XỬ LÝ:

1.3. V. CÁC THIẾT BỊ NGOẠI VI (CÁC THIẾT BỊ XUẤT NHẬP):

1.4. VI. HỆ THỐNG BUS:

1.5. VI XỬ LÝ – VI ĐIỀU KHIỂN:

1.6. VIII. MINH HỌA KIẾN TRÚC CỦA MỘT HỆ VI ĐIỀU KHIỂN:

1.7. LỰA CHỌN BỘ VI ĐIỀU KHIỂN KHI THIẾT KẾ:

2. CHƯƠNG 2: PHẦN CỨNG CHIP VI ĐIỀU KHIỂN 8051

2.1. I. Giới thiệu chung:

2.2. II. CÁC CHÂN CỦA CHIP 8051:

2.2.1. 1. Sơ đồ khối và chức năng các khối của chip 8051:

Tóm tắt

I. Hướng Dẫn Cơ Bản Giáo Trình Vi Xử Lý Phần 1 Toàn Diện

Để thực sự làm chủ công nghệ và tự động hóa, việc nắm vững kiến thức cơ bản về vi xử lý là điều kiện tiên quyết. Bài viết này đóng vai trò như một giáo trình Vi xử lý Phần 1, cung cấp cái nhìn tổng quan và toàn diện về lĩnh vực này. Từ những khái niệm nền tảng đến sự phát triển vượt bậc của các chip bán dẫn, mỗi khía cạnh đều được trình bày một cách có hệ thống, giúp người đọc dễ dàng tiếp cận và xây dựng nền tảng vững chắc. Mục tiêu chính là làm rõ vi xử lý là gì, CPU đóng vai trò như thế nào, và cách các thành phần trong bộ vi xử lý tương tác để tạo nên một hệ thống hoạt động hiệu quả. Đây không chỉ là tài liệu tham khảo mà còn là lộ trình học tập, dẫn dắt người học đi từ những khái niệm trừu tượng đến những ứng dụng cụ thể trong hệ thống nhúng. Thông qua phần mềm mô phỏng vi xử lý, người học có thể hình dung rõ hơn nguyên lý hoạt động vi xử lý, các thanh ghi lưu trữ dữ liệu ra sao, hay cấu tạo vi xử lý phức tạp như thế nào. Nắm chắc kiến trúc máy tính và các yếu tố cấu thành một bộ vi xử lý sẽ mở ra cánh cửa đến thế giới điện tử sốkỹ thuật máy tính hiện đại. Sự phát triển của vi xử lý đã trải qua nhiều thế hệ, từ những bộ vi xử lý 4-bit đơn giản đến các kiến trúc 32-bit và 64-bit mạnh mẽ ngày nay, mỗi bước tiến đều mang lại hiệu năng và khả năng xử lý vượt trội. Điều này cho thấy tầm quan trọng của việc cập nhật kiến thức liên tục và hiểu sâu sắc về các yếu tố đã định hình nên công nghệ hiện tại.

1.1. Lịch Sử Phát Triển Của Bộ Vi Xử Lý Các Thế Hệ Đột Phá

Lịch sử vi xử lý là một hành trình đầy ấn tượng, bắt đầu từ những năm đầu thập niên 1970. Thế hệ 1 (1971 - 1973) chứng kiến sự ra đời của các chip bán dẫn 4-bit, với bus dữ liệu 4 bit và bus địa chỉ 12 bit, sử dụng công nghệ PMOS. Tốc độ thực hiện lệnh còn khiêm tốn, khoảng 10-60 µs/lệnh. Các đại diện tiêu biểu bao gồm Intel 4040. Thế hệ 2 (1974 - 1977) đánh dấu bước tiến với bus dữ liệu 8 bit và bus địa chỉ 16 bit, công nghệ NMOS hoặc CMOS, tốc độ nhanh hơn đáng kể (1-8 µs/lệnh). Intel 8080/8085 và Zilog Z80 là những cái tên nổi bật. Thế hệ 3 (1978 - 1982) tiếp tục phát triển lên 16 bit bus dữ liệu, 20-24 bit bus địa chỉ, sử dụng công nghệ HMOS, với tốc độ 0,1-1 µs/lệnh. Intel 8086/80286 và Motorola 68000 là ví dụ điển hình. Từ thế hệ 4 (1983 - nay), vi xử lý đã đạt đến 32-64 bit bus dữ liệu và 32 bit bus địa chỉ, công nghệ HCMOS, cùng tốc độ thực hiện lệnh siêu nhanh (0,01-0,1 µs). Các dòng Intel Pentium và Motorola 680x0 là minh chứng cho sức mạnh xử lý hiện đại. Sự tiến hóa này đã định hình nên khả năng của các hệ thống nhúng và máy tính cá nhân ngày nay.

1.2. Phân Biệt Vi Xử Lý và Vi Điều Khiển Hiểu Rõ Điểm Khác Biệt

Trong lĩnh vực điện tử sốkỹ thuật máy tính, sự khác biệt giữa vi xử lý (Microprocessor) và vi điều khiển (Microcontroller) là rất quan trọng. Vi xử lý được định nghĩa là một CPU (Central Processing Unit) đơn lẻ trên một chip bán dẫn, yêu cầu các thành phần ngoại vi như RAM, ROM, cổng I/O (Input/Output) phải được kết nối từ bên ngoài để tạo thành một hệ thống hoàn chỉnh. Vi xử lý thường được sử dụng trong các ứng dụng lớn, yêu cầu tính toán phức tạp như máy tính cá nhân. Ngược lại, vi điều khiển là một hệ thống tích hợp tất cả các thành phần thiết yếu (gồm CPU, RAM, ROM, cổng I/O, bộ định thời, mạch điều khiển ngắt) trên cùng một chip bán dẫn. Điều này làm cho vi điều khiển trở thành giải pháp lý tưởng cho các hệ thống nhúng nhỏ gọn, có mục đích cụ thể và tính toán đơn giản, như các thiết bị gia dụng, điều khiển công nghiệp. Về cấu trúc phần cứng, vi điều khiển mang lại sự nhỏ gọn và giảm thiểu chi phí. Tập lệnh của vi xử lý thường phong phú hơn, hỗ trợ nhiều kiểu định địa chỉ và độ dài từ dữ liệu lớn hơn (Byte, Word, Double word), trong khi vi điều khiển có tập lệnh tối ưu cho các thao tác cấp bit và byte, hướng tới hiệu quả cho các ứng dụng chuyên biệt. Việc lựa chọn giữa vi xử lývi điều khiển phụ thuộc vào yêu cầu cụ thể của ứng dụng về hiệu suất, kích thước, chi phí và mức độ tích hợp.

II. Giải Mã Vi Xử Lý Là Gì Tầm Quan Trọng Kiến Thức Nền Tảng

Việc giải mã khái niệm "vi xử lý là gì" không chỉ là định nghĩa thuật ngữ mà còn là việc hiểu sâu sắc về vai trò trung tâm của nó trong mọi hệ thống kỹ thuật hiện đại. Bộ vi xử lý chính là bộ não của mọi thiết bị điện tử số, từ chiếc điện thoại thông minh đến các cỗ máy công nghiệp phức tạp. Giáo trình Vi xử lý Phần 1 này nhấn mạnh tầm quan trọng của việc xây dựng một nền tảng kiến thức vững chắc, bởi lẽ mọi sự phát triển tiếp theo trong lĩnh vực kỹ thuật máy tính đều dựa trên những hiểu biết cơ bản này. Nắm vững nguyên lý hoạt động vi xử lý, cấu tạo vi xử lý, và cách các thành phần như CPU, ALU, thanh ghi tương tác sẽ giúp người học không chỉ sử dụng mà còn có thể thiết kế và tối ưu hóa các hệ thống nhúng. Sự thiếu hụt kiến thức nền tảng có thể dẫn đến những thách thức lớn khi tiếp cận các vấn đề phức tạp hơn trong lập trình vi xử lý hay thiết kế kiến trúc máy tính. Một bộ vi xử lý cơ bản bao gồm các khối chức năng chính được kết nối bởi bus hệ thống, cho phép trao đổi dữ liệu và điều khiển. Hiểu rõ từng khối này, từ bộ nhớ RAM đến cổng I/O, sẽ giúp ta hình dung được bức tranh toàn cảnh về cách một hệ thống xử lý thông tin. Ví dụ, việc tìm hiểu về hệ nhị phânhệ thập lục phân không chỉ là kiến thức toán học cơ bản mà còn là công cụ thiết yếu để lập trình vi xử lý và hiểu cách chip bán dẫn hoạt động ở cấp độ thấp nhất. Do đó, phần này không chỉ cung cấp thông tin mà còn là lời nhắc nhở về giá trị không thể thay thế của kiến thức nền tảng trong hành trình chinh phục công nghệ.

2.1. Định Nghĩa Và Vai Trò Của Bộ Vi Xử Lý Trong Điện Tử Số

Bộ vi xử lý (Microprocessor) là một chip bán dẫn tích hợp rất cao, chứa hàng triệu bóng bán dẫn nhỏ gọn, được thiết kế để thực hiện các phép toán số học, logic và điều khiển theo một tập lệnh vi xử lý nhất định. Theo tài liệu gốc, một hệ vi xử lý có "khả năng được lập trình để thao tác trên các dữ liệu mà không cần sự can thiệp của con người" và "khả năng lưu trữ và phục hồi dữ liệu." Vai trò của bộ vi xử lý trong điện tử số là điều khiển và xử lý thông tin, đóng vai trò như bộ não trung tâm của mọi hệ thống điện tử. Nó thực hiện các tác vụ từ đơn giản đến phức tạp, như nhận dữ liệu từ cổng I/O, xử lý dữ liệu với ALU, lưu trữ tạm thời trong thanh ghi, và điều khiển các thiết bị ngoại vi. Sự hiện diện của CPU trong mỗi bộ vi xử lý là yếu tố quyết định hiệu năng của toàn bộ hệ thống. Với khả năng thực hiện hàng tỷ phép tính mỗi giây, vi xử lý đã mở ra kỷ nguyên của máy tính cá nhân, điện thoại thông minh, và vô số các hệ thống nhúng khác, định hình lại cách con người tương tác với công nghệ. Nó là trái tim của kỹ thuật máy tính, cho phép các ứng dụng phức tạp hoạt động trơn tru.

2.2. Tại Sao Kiến Thức Cơ Bản Về Vi Xử Lý Quan Trọng Cho Kỹ Sư

Đối với bất kỳ kỹ sư điện tử số hay kỹ thuật máy tính nào, kiến thức cơ bản về vi xử lý không chỉ là một môn học mà là nền tảng cốt lõi. Hiểu rõ cấu tạo vi xử lý, nguyên lý hoạt động vi xử lý, và kiến trúc máy tính giúp kỹ sư đọc hiểu, thiết kế, và gỡ lỗi các hệ thống phức tạp. Một kỹ sư cần biết vi xử lý là gì để có thể lựa chọn đúng loại chip bán dẫn phù hợp cho từng ứng dụng, tối ưu hóa hiệu suất và chi phí. Kiến thức về bus hệ thống, bộ nhớ RAM, bộ nhớ ROM, và cổng I/O là cần thiết để giao tiếp hiệu quả giữa CPU và các thiết bị ngoại vi. Hơn nữa, việc nắm vững tập lệnh vi xử lýngôn ngữ assembly cho phép kỹ sư viết mã chương trình cấp thấp, khai thác tối đa tài nguyên phần cứng và đạt được hiệu quả cao nhất trong lập trình vi xử lý. Trong các hệ thống nhúng, nơi tài nguyên hạn chế và yêu cầu về thời gian thực cao, khả năng này càng trở nên vô giá. Không chỉ dừng lại ở việc hiểu cách một bộ vi xử lý hoạt động, kiến thức này còn là chìa khóa để phân tích các vấn đề, đưa ra giải pháp sáng tạo, và tiên phong trong việc phát triển các công nghệ mới.

III. Khám Phá Cấu Tạo Vi Xử Lý Nguyên Lý Hoạt Động CPU Đơn Giản

Để hiểu sâu sắc về cách các thiết bị điện tử số hoạt động, việc khám phá cấu tạo vi xử lýnguyên lý hoạt động CPU là không thể thiếu. Mỗi bộ vi xử lý là một kỳ quan kỹ thuật, tích hợp các thành phần cốt lõi để thực hiện hàng tỷ phép tính mỗi giây. CPU (Central Processing Unit) là trung tâm điều khiển và xử lý dữ liệu, bao gồm các khối chức năng quan trọng như ALU (Arithmetic and Logic Unit), Đơn vị Điều khiển (Control Unit), và các thanh ghi (Registers). Theo tài liệu gốc, "CPU đóng vai trò chủ đạo trong hệ vi xử lý, nó quản lý tất cả các hoạt động của hệ và thực hiện tất cả các thao tác trên dữ liệu." ALU chịu trách nhiệm thực hiện các phép toán số học và logic, là trái tim của mọi tính toán. Đơn vị Điều khiển giải mã các lệnh và tạo ra các tín hiệu điều khiển để phối hợp hoạt động của các khối khác. Các thanh ghi cung cấp không gian lưu trữ tạm thời cho dữ liệu và địa chỉ, đóng vai trò cực kỳ quan trọng trong việc tăng tốc độ truy cập thông tin. Sự tương tác nhịp nhàng giữa các khối này tạo nên chu trình lệnh cơ bản, bao gồm tìm nạp lệnh (fetch), giải mã lệnh (decode), và thực thi lệnh (execute). Giáo trình Vi xử lý Phần 1 này sẽ đi sâu vào từng bước của chu trình lệnh, giúp người đọc hình dung cách một lệnh đơn giản được CPU xử lý từ khi bắt đầu đến khi hoàn thành. Hiểu rõ kiến trúc máy tính bên trong CPU là bước đầu tiên để làm chủ lập trình vi xử lý và phát triển các ứng dụng hệ thống nhúng hiệu quả.

3.1. Các Thành Phần Chính Của CPU ALU Thanh Ghi Và Đơn Vị Điều Khiển

CPU là trái tim của mọi bộ vi xử lý, bao gồm nhiều thành phần quan trọng phối hợp hoạt động. ALU (Arithmetic and Logic Unit) là đơn vị thực hiện tất cả các phép toán số học (cộng, trừ, nhân, chia) và các phép toán logic (AND, OR, NOT, XOR). Khối này nhận dữ liệu từ các thanh ghi và trả về kết quả cũng vào các thanh ghi hoặc bộ nhớ. Các thanh ghi là các ô nhớ tốc độ cao bên trong CPU, dùng để lưu trữ dữ liệu tạm thời, địa chỉ lệnh kế tiếp (Program Counter – PC), và lệnh hiện hành (Instruction Register – IR). Chúng đóng vai trò thiết yếu trong việc tối ưu hóa tốc độ truy cập dữ liệu, giảm thiểu thời gian chờ đợi. Đơn vị Điều khiển (Control Unit) có nhiệm vụ giải mã các tập lệnh vi xử lý từ IR và tạo ra các tín hiệu điều khiển phù hợp để phối hợp hoạt động của ALU, các thanh ghi, và các thành phần khác của hệ thống. Ngoài ra, CPU còn có Program Counter (PC) để lưu trữ địa chỉ của lệnh kế tiếp và Instruction Register (IR) để giữ lệnh đang được xử lý. Sự kết hợp của các thành phần này tạo nên khả năng xử lý mạnh mẽ của bộ vi xử lý, là nền tảng cho mọi kiến trúc máy tính hiện đại.

3.2. Chu Trình Lệnh Vi Xử Lý Tìm Nạp Giải Mã Và Thực Thi

Chu trình lệnh là quá trình cơ bản mà CPU thực hiện để xử lý một lệnh từ chương trình. Quá trình này được chia thành ba giai đoạn chính: tìm nạp, giải mã và thực thi. Giai đoạn tìm nạp lệnh (Fetch): CPU sử dụng giá trị trong Program Counter (PC) để xác định địa chỉ của lệnh cần lấy từ bộ nhớ ROM. Địa chỉ này được đưa lên bus địa chỉ, và tín hiệu điều khiển đọc (Read) được kích hoạt. Mã lệnh được chuyển qua bus dữ liệu và lưu vào Instruction Register (IR) trong CPU. Sau đó, giá trị của PC được tăng lên để trỏ đến lệnh kế tiếp. Giai đoạn giải mã lệnh (Decode): Mã lệnh từ IR được đưa vào Đơn vị Giải mã lệnh và Điều khiển. Đơn vị này phân tích mã lệnh (opcode) để xác định loại thao tác cần thực hiện và tạo ra một chuỗi các tín hiệu điều khiển tương ứng. Giai đoạn thực thi lệnh (Execute): Dựa trên các tín hiệu điều khiển, ALU sẽ thực hiện các thao tác số học hoặc logic đã được xác định. Các thao tác này có thể bao gồm đọc/ghi dữ liệu từ/vào thanh ghi hoặc bộ nhớ RAM, thực hiện các phép tính, hay điều khiển cổng I/O. Toàn bộ chu trình lệnh này diễn ra liên tục, tạo nên dòng chảy xử lý thông tin của bộ vi xử lý, là cơ sở cho mọi hoạt động của hệ thống nhúng và các ứng dụng lập trình vi xử lý.

IV. Bí Quyết Nắm Vững Bộ Nhớ RAM ROM và Bus Hệ Thống Của Vi Xử Lý

Hiểu rõ về bộ nhớ RAM, bộ nhớ ROM, và bus hệ thống là bí quyết cốt lõi để nắm vững Giáo trình Vi xử lý Phần 1: Kiến thức cơ bản. Các thành phần này không chỉ là những khối riêng lẻ mà là một mạng lưới tương tác phức tạp, đóng vai trò thiết yếu trong việc lưu trữ, truy xuất dữ liệu và điều phối hoạt động của toàn bộ bộ vi xử lý. Bộ nhớ bán dẫn là nơi lưu giữ chương trình và dữ liệu. ROM (Read Only Memory) chứa các chương trình điều khiển hoạt động chính của hệ thống, không bị mất khi mất nguồn, bao gồm các loại như MROM, PROM, EPROM (UV-EPROM, EEPROM, Flash ROM). RAM (Random Access Memory) là nơi lưu trữ dữ liệu tạm thời, các phần của chương trình và kết quả tính toán, nhưng sẽ mất dữ liệu khi mất nguồn. Các loại RAM phổ biến là DRAM và SRAM. Bus hệ thống là xương sống của kiến trúc máy tính, bao gồm bus địa chỉ (Address Bus), bus dữ liệu (Data Bus), và bus điều khiển (Control Bus). Bus địa chỉ xác định vị trí ô nhớ hoặc thiết bị ngoại vi mà CPU cần giao tiếp. Bus dữ liệu truyền tải thông tin dữ liệu giữa các thành phần. Bus điều khiển mang các tín hiệu điều khiển hoạt động của hệ thống, như tín hiệu đọc/ghi. Theo tài liệu, "Bus là tập hợp các đường dây mang thông tin có cùng chức năng." Việc hiểu rõ cách các bus này hoạt động, cùng với cách xác định dung lượng bộ nhớ, sẽ giúp người học có cái nhìn toàn diện về cơ chế giao tiếp và xử lý thông tin trong vi xử lý, đặc biệt hữu ích khi làm việc với hệ thống nhúng.

4.1. Tổ Chức Bộ Nhớ Bán Dẫn ROM RAM và Cách Xác Định Dung Lượng

Trong một hệ vi xử lý, bộ nhớ bán dẫn là thành phần không thể thiếu, được chia thành hai loại chính: ROMRAM. ROM (Read Only Memory) là bộ nhớ chỉ đọc, dùng để lưu trữ các chương trình điều khiển cố định (firmware) của bộ vi xử lý hoặc vi điều khiển. Thông tin trong ROM không bị mất khi ngắt nguồn điện. Các loại ROM phổ biến bao gồm MROM, PROM, EPROM (xóa bằng tia cực tím) và EEPROM/Flash ROM (xóa bằng điện). RAM (Random Access Memory) là bộ nhớ truy xuất ngẫu nhiên, cho phép ghi và đọc dữ liệu. RAM dùng để lưu trữ dữ liệu tạm thời, các biến và phần chương trình đang chạy. Dữ liệu trong RAM sẽ bị mất khi mất nguồn. Các loại RAM chính là DRAM (Dynamic RAM) và SRAM (Static RAM). Việc xác định dung lượng bộ nhớ thường dựa vào số lượng đường bus địa chỉ (N), với dung lượng = 2^N byte, hoặc từ mã số của chip bán dẫn. Ví dụ, một bộ nhớ 8 bit với 10 đường địa chỉ có dung lượng 2^10 = 1024 byte = 1 KB. Nắm vững cách tổ chức và tính toán dung lượng bộ nhớ là kiến thức cơ bản quan trọng cho lập trình vi xử lý và thiết kế kiến trúc máy tính.

4.2. Hệ Thống Bus Bus Địa Chỉ Bus Dữ Liệu và Bus Điều Khiển

Bus hệ thống là tập hợp các đường dây điện dùng để truyền thông tin giữa các thành phần khác nhau trong bộ vi xử lý hoặc hệ thống máy tính. Có ba loại bus chính: Bus địa chỉ (Address Bus), Bus dữ liệu (Data Bus), và Bus điều khiển (Control Bus). Bus địa chỉ là bus một chiều, từ CPU đến bộ nhớ RAM/ROM hoặc cổng I/O. Nó mang thông tin về địa chỉ của ô nhớ hoặc thiết bị mà CPU muốn truy cập. Độ rộng của bus địa chỉ (ví dụ 16 bit, 20 bit, 32 bit) quyết định dung lượng bộ nhớ mà CPU có thể quản lý. Bus dữ liệu là bus hai chiều, cho phép truyền dữ liệu giữa CPU và các thành phần khác. Độ rộng của bus dữ liệu (4 bit, 8 bit, 16 bit, 32 bit, 64 bit) xác định số lượng bit dữ liệu mà CPU có thể xử lý cùng một lúc. Bus điều khiển là bus một chiều hoặc hai chiều, mang các tín hiệu điều khiển hoạt động của hệ thống, như tín hiệu đọc (READ), ghi (WRITE), ngắt (Interrupt). "CPU sử dụng hệ thống bus này để thực hiện các thao tác đọc (READ) và ghi (WRITE) thông tin giữa CPU với bộ nhớ hoặc các thiết bị ngoại vi." Sự phối hợp của ba loại bus này tạo nên khả năng giao tiếp và vận hành của toàn bộ kiến trúc máy tính, từ đó ảnh hưởng trực tiếp đến hiệu suất của vi xử lý.

V. Phương Pháp Tối Ưu Lập Trình Vi Xử Lý Tập Lệnh Kiểu Định Địa Chỉ

Để thực sự làm chủ lập trình vi xử lý và phát triển các ứng dụng hệ thống nhúng hiệu quả, việc nắm vững tập lệnh vi xử lý và các kiểu định địa chỉ là một phương pháp tối ưu không thể bỏ qua trong Giáo trình Vi xử lý Phần 1: Kiến thức cơ bản. Tập lệnh vi xử lý là bộ sưu tập các lệnh mà CPU có thể hiểu và thực hiện, là cầu nối giữa ngôn ngữ cấp cao của lập trình viên và ngôn ngữ máy mà chip bán dẫn hiểu. Mỗi lệnh được biểu diễn bằng một mã gợi nhớ (mnemonic) và có thể đi kèm với các toán hạng. Việc hiểu rõ từng lệnh giúp lập trình viên thao tác trực tiếp với thanh ghi, bộ nhớ RAM, bộ nhớ ROM, và cổng I/O, từ đó tối ưu hóa hiệu suất chương trình. Các kiểu định địa chỉ quy định cách CPU tìm nạp dữ liệu hoặc địa chỉ mà một lệnh sẽ sử dụng. Có nhiều kiểu khác nhau như định địa chỉ thanh ghi (truy xuất trực tiếp thanh ghi), định địa chỉ trực tiếp (truy xuất ô nhớ cụ thể), định địa chỉ gián tiếp (dùng thanh ghi để trỏ đến ô nhớ), định địa chỉ tức thời (sử dụng hằng số), định địa chỉ tương đối (cho các lệnh nhảy ngắn), định địa chỉ tuyệt đối (cho lệnh gọi hàm trong trang nhớ 2K), định địa chỉ dài (cho lệnh nhảy và gọi hàm toàn bộ 64K), và định địa chỉ chỉ số (dùng cho bảng tra cứu). Theo tài liệu, "tập lệnh của 8051" bao gồm các lệnh số học như ADD, cùng với các cách định địa chỉ đa dạng. Việc lựa chọn đúng kiểu định địa chỉ không chỉ giúp mã gọn gàng mà còn ảnh hưởng trực tiếp đến tốc độ thực thi. Thông qua ngôn ngữ assembly, lập trình viên có thể khai thác tối đa sức mạnh của bộ vi xử lý bằng cách viết mã gần với phần cứng nhất. Đây là kiến thức cơ bản nhưng vô cùng mạnh mẽ, cho phép tinh chỉnh từng bit trong các ứng dụng quan trọng.

5.1. Các Kiểu Định Địa Chỉ Phổ Biến Từ Thanh Ghi Đến Chỉ Số

Các kiểu định địa chỉ là cách mà CPU xác định vị trí của dữ liệu mà một tập lệnh vi xử lý cần thao tác. Định địa chỉ thanh ghi là kiểu nhanh nhất, truy cập trực tiếp dữ liệu trong các thanh ghi nội bộ của CPU (ví dụ: R0-R7, A, B). Định địa chỉ trực tiếp cho phép truy cập các ô nhớ hoặc SFR (Special Function Register) bằng địa chỉ cụ thể (ví dụ: Port 0, Port 1). Định địa chỉ gián tiếp sử dụng nội dung của một thanh ghi (thường là R0 hoặc R1) làm địa chỉ của ô nhớ cần truy cập, giúp linh hoạt hơn khi làm việc với mảng dữ liệu. Định địa chỉ tức thời được dùng để nạp một hằng số vào một thanh ghi hoặc ô nhớ (ví dụ: MOV A, #5AH). Đối với các lệnh nhảy hoặc gọi hàm, có các kiểu định địa chỉ tương đối (SJMP), tuyệt đối (AJMP, ACALL) và dài (LJMP, LCALL), khác nhau về tầm nhảy và số bit địa chỉ. Cuối cùng, định địa chỉ chỉ số (ví dụ: JMP @A+DPTR) kết hợp giá trị của thanh ghi A với Data Pointer (DPTR) hoặc Program Counter (PC) để tạo địa chỉ hiệu dụng, thường dùng cho các bảng tra cứu. Hiểu rõ từng kiểu định địa chỉ là chìa khóa để viết mã ngôn ngữ assembly hiệu quả và khai thác tối đa kiến trúc máy tính của vi xử lý.

5.2. Giới Thiệu Ngôn Ngữ Assembly Cơ Sở Để Lập Trình Vi Xử Lý Cấp Thấp

Ngôn ngữ assembly là ngôn ngữ lập trình cấp thấp, được xem là một bước tiến từ ngôn ngữ máy nhị phân, sử dụng các mã gợi nhớ (mnemonics) dễ đọc hơn để biểu diễn các tập lệnh vi xử lý. Ví dụ, thay vì dãy bit 00111110 00010010 cho lệnh nạp giá trị, ngôn ngữ assembly sử dụng MOV A, #12H. Đây là công cụ không thể thiếu để lập trình vi xử lý ở cấp độ gần nhất với phần cứng, cho phép kiểm soát từng bit, từng thanh ghi, và tối ưu hóa hiệu suất mà các ngôn ngữ cấp cao khó đạt được. Mặc dù phức tạp hơn, việc học ngôn ngữ assembly trong Giáo trình Vi xử lý Phần 1 mang lại lợi ích to lớn trong việc hiểu sâu sắc nguyên lý hoạt động vi xử lý, cấu tạo vi xử lý, và kiến trúc máy tính. Nó cũng giúp gỡ lỗi hiệu quả hơn trong hệ thống nhúng và phát triển các trình điều khiển thiết bị (device drivers). Đối với vi điều khiển 8051, việc lập trình assembly là kiến thức cơ bản để thao tác trực tiếp với các SFR (Special Function Registers), điều khiển cổng I/O, bộ định thời, và các chức năng ngắt. Nắm vững ngôn ngữ assembly là nền tảng để chuyển tiếp sang lập trình vi xử lý bằng ngôn ngữ C, vẫn giữ được khả năng tối ưu hóa phần cứng.

VI. Ứng Dụng Thực Tiễn Vi Xử Lý và Tầm Nhìn Cho Hệ Thống Nhúng Hiện Đại

Sau khi đã nắm vững kiến thức cơ bản từ Giáo trình Vi xử lý Phần 1, việc khám phá các ứng dụng thực tiễn của vi xử lý và tầm nhìn cho hệ thống nhúng hiện đại sẽ mở ra một thế giới đầy tiềm năng. Bộ vi xử lývi điều khiển là xương sống của vô số thiết bị mà chúng ta sử dụng hàng ngày, từ các thiết bị gia dụng thông minh, điện thoại, máy tính, đến các hệ thống điều khiển công nghiệp phức tạp. Chúng là trung tâm của điện tử số và đóng vai trò quan trọng trong việc tự động hóa và điều khiển. Các hệ thống nhúng (Embedded Systems) là một lĩnh vực ứng dụng rộng lớn, nơi vi xử lý hoặc vi điều khiển được thiết kế để thực hiện một chức năng cụ thể trong một hệ thống lớn hơn. Ví dụ, trong ô tô, vi xử lý điều khiển động cơ, hệ thống phanh ABS, túi khí và hệ thống giải trí. Trong y tế, chúng điều khiển các thiết bị chẩn đoán và máy móc hỗ trợ sự sống. Tầm nhìn cho hệ thống nhúng trong tương lai là sự kết nối và thông minh hóa ngày càng cao, với sự phát triển của IoT (Internet of Things). Các thiết bị này sẽ yêu cầu các bộ vi xử lý không chỉ mạnh mẽ mà còn tiết kiệm năng lượng, có khả năng xử lý dữ liệu từ nhiều cổng I/O khác nhau và giao tiếp thông qua bus hệ thống. Điều này đòi hỏi sự hiểu biết sâu rộng về kiến trúc máy tính, khả năng lập trình vi xử lý hiệu quả và tối ưu hóa tập lệnh vi xử lý cho từng ứng dụng cụ thể. Với sự tiến bộ của chip bán dẫn và các phần mềm mô phỏng vi xử lý, khả năng sáng tạo và phát triển trong lĩnh vực này là không giới hạn.

6.1. Các Loại Kiến Trúc Vi Xử Lý Harvard và Von Neumann CISC và RISC

Trong kiến trúc máy tính của vi xử lý, có hai mô hình tổ chức bộ nhớ chính là kiến trúc Harvardkiến trúc Von Neumann. Kiến trúc Von Neumann sử dụng một không gian bộ nhớ chung cho cả chương trình và dữ liệu, cùng một bus hệ thống để truy cập cả hai. Điều này đơn giản hóa thiết kế nhưng có thể tạo ra 'nút cổ chai' (bottleneck) do CPU phải luân phiên truy cập lệnh và dữ liệu. Ngược lại, kiến trúc Harvard sử dụng các không gian bộ nhớ riêng biệt và các bus riêng cho chương trình và dữ liệu, cho phép CPU truy cập đồng thời cả hai, dẫn đến hiệu suất cao hơn, đặc biệt trong các vi điều khiểnhệ thống nhúng. Ngoài ra, hai triết lý thiết kế tập lệnh vi xử lý phổ biến là CISC (Complex Instruction Set Computer) và RISC (Reduced Instruction Set Computer). CISC có một tập lệnh lớn, phức tạp, với nhiều lệnh có thể thực hiện các thao tác đa bước chỉ trong một lệnh, giúp lập trình vi xử lý dễ dàng hơn nhưng có thể làm cho quá trình giải mã lệnh phức tạp và tốn thời gian hơn. RISC sử dụng một tập lệnh nhỏ, đơn giản, các lệnh thực hiện trong một chu kỳ máy, làm tăng tốc độ thực thi nhưng đòi hỏi nhiều lệnh hơn để hoàn thành một tác vụ phức tạp. Hầu hết các vi xử lý hiện đại đều kết hợp các ưu điểm của cả hai kiến trúc.

6.2. Xu Hướng Tương Lai Của Công Nghệ Vi Xử Lý Và Hệ Thống Nhúng

Tương lai của công nghệ vi xử lýhệ thống nhúng hứa hẹn những bước đột phá mạnh mẽ. Các chip bán dẫn sẽ tiếp tục được thu nhỏ, tích hợp nhiều CPU và bộ xử lý chuyên dụng hơn trên cùng một chip, mang lại hiệu năng tính toán khổng lồ với mức tiêu thụ năng lượng tối thiểu. Sự phát triển của trí tuệ nhân tạo (AI) và học máy (Machine Learning) sẽ thúc đẩy nhu cầu về các bộ vi xử lý có khả năng xử lý song song và tăng tốc phần cứng cho các thuật toán này. Hệ thống nhúng sẽ trở nên thông minh hơn, kết nối rộng rãi hơn thông qua IoT, và có khả năng tự chủ cao hơn trong các lĩnh vực như xe tự lái, nhà thông minh, và y tế di động. Nhu cầu về lập trình vi xử lý hiệu quả, hiểu sâu về kiến trúc máy tính và khả năng tối ưu hóa bus hệ thống, bộ nhớ RAM/ROM sẽ ngày càng tăng. Các phần mềm mô phỏng vi xử lý cũng sẽ đóng vai trò quan trọng trong việc thiết kế và kiểm thử các hệ thống phức tạp này. Đồng thời, việc đảm bảo an ninh mạng cho các hệ thống nhúng sẽ là một thách thức lớn. Giáo trình Vi xử lý Phần 1: Kiến thức cơ bản là điểm khởi đầu vững chắc để đón đầu những xu hướng này, trang bị cho thế hệ kỹ sư tương lai những công cụ và tư duy cần thiết để kiến tạo nên các giải pháp công nghệ tiên tiến.

29/09/2025

Trích đoạn nội dung tài liệu

Chương 1: Giới thiệu chung về bộ vi xử lý. Trường ðH Công nghiệp Tp. Program Memory: Bộ nhớ chương trình. EEPROM: Bộ nhớ EEPROM.

I/O Ports: Các port xuất/nhập. Instruction Decoder: Bộ giải mã lệnh. ALU: ðơn vị logic và số học. Accumulator: Thanh ghi tích lũy.

Control Logic: ðiều khiển logic. Program Counter: Bộ ñếm chương trình. Instructions/Addresses: Các lệnh / ñịa chỉ. LỰA CHỌN BỘ VI ðIỀU KHIỂN KHI THIẾT KẾ: Có bốn họ vi ñiều khiển thông dụng trên thị trường hiện nay là: 68xxx của Motorola, 80xxx của Intel, Z8xx của Zilog và PIC16xxx của Microchip Technology.

Mỗi loại vi ñiều khiển trên ñều có một tập lệnh và thanh ghi riêng nên chúng không tương thích lẫn nhau. Vậy khi ta tiến hành thiết kế một hệ thống sử dụng vi ñiều khiển thì ta cần dựa trên những tiêu chuẩn nào? Có ba tiêu chẩn chính: • Tiêu chuẩn thứ nhất là: ðáp ứng yêu cầu tính toán một cách hiệu quả và kinh tế. Do vậy, trước tiên ta cần phải xem xét bộ vi ñiều khiển 8 bit, 16 bit hay 32 bit là thích hợp nhất. Một số tham số kỹ thuật cần ñược cân nhắc khi chọn lựa là: o Tốc ñộ: tốc ñộ lớn nhất mà vi ñiều khiển hỗ trợ là bao nhiêu.

o Kiểu IC: là kiểu 40 chân DIP, QFP hay là kiểu ñóng vỏ khác (DIP: vỏ dạng hai hàng chân, QFP: vỏ vuông dẹt). Kiểu ñóng vỏ rất quan trọng khi có yêu cầu về không gian, kiểu lắp ráp và tạo mẫu thử cho sản phẩm cuối cùng. o Công suất tiêu thụ: là một tiêu chuẩn cần ñặc biệt lưu ý nếu sản phẩm dùng pin hoặc ñiện áp lưới. o Dung lượng bộ nhớ ROM và RAM tích hợp sẵn trên chip.

o Số chân vào/ra và bộ ñịnh thời trên chip. o Khả năng dễ dàng nâng cao hiệu suất hoặc giãm công suất tiêu thụ. o Giá thành trên một ñơn vị khi mua số lượng lớn. Vì ñây là vấn ñề có ảnh hưởng ñến giá thành cuối cùng của sản phẩm.

• Tiêu chuẩn thứ hai là: Có sẵn các công cụ phát triển phần mềm, chẳng hạn như các chương trình mô phỏng, trình biên dịch, trình hợp dịch và gỡ rối. • Tiêu chuẩn thứ ba là: Khả năng ñáp ứng về số lượng ở hiện tại cũng như ở tương lai. ðối với một số nhà thiết kế thì tiêu chuẩn này thậm chí còn quan trọng hơn cả hai tiêu chuẩn trên. Giaùo trình Vi xöû lyù.

7 Bieân soaïn: Phaïm Quang Trí KHOA CÔNG NGHỆ ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP GIÁO TRÌNH VI XỬ LÝ Chương 2: Phần cứng chip vi ñiều khiển 8051. Trường ðH Công nghiệp Tp. CHƯƠNG 2 PHẦN CỨNG CHIP VI ðIỀU KHIỂN 8051 I. Giới thiệu chung: MCS-51 là họ vi ñiều khiển của hãng Intel.

Vi mạch tổng quát của họ MCS-51 là chip 8051. Chip 8051 có một số ñặc trưng cơ bản sau: - Bộ nhớ chương trình bên trong: 4 KB (ROM). - Bộ nhớ dữ liệu bên trong: 128 byte (RAM). - Bộ nhớ chương trình bên ngoài: 64 KB (ROM).

- Bộ nhớ dữ liệu bên ngoài: 64 KB (RAM). - 4 port xuất nhập (I/O port) 8 bit. - 2 bộ ñịnh thời 16 bit. - Mạch giao tiếp nối tiếp.

- Bộ xử lý bit (thao tác trên các bit riêng lẻ). - 210 vị trí nhớ ñược ñịnh ñịa chỉ, mỗi vị trí 1 bit. - Nhân / Chia trong 4 µs. Ngoài ra, trong họ MCS-51 còn có một số chip vi ñiều khiển khác có cấu trúc tương ñương như: Chip ROM trong RAM trong Bộ ñịnh thời 8031 0 KB 128 byte 2 8032 0 KB 256 byte 3 8051 4 KB PROM 128 byte 2 8052 8 KB PROM 256 byte 3 8751 4 KB UV-EPROM 128 byte 2 8752 8 KB UV-EPROM 256 byte 3 8951 4 KB FLASH ROM 128 byte 2 8952 8 KB FLASH ROM 256 byte 3 2.

Các phiên bản của chip vi ñiều khiển 8051: 2.1 Bộ vi ñiều khiển 8031: 8031 là một phiên bản khác của họ 8051. Chip này thường ñược coi là 8051 không có ROM trên chip. ðể có thể dùng ñược chip này cần phải bổ sung thêm ROM ngoài chứa chương trình cần thiết cho 8031. 8051 có chương trình ñược chứa ở ROM trên chip bị giới hạn ñến 4KB, còn ROM ngoài của 8031 thì có thể lên ñến 64KB.

Tuy nhiên, ñể có thể truy cập hết bộ nhớ ROM ngoài thì cần dùng thêm hai cổng (Port 0 và Port 2) , do vậy chỉ còn lại có hai cổng (Port 1 và Port 3) ñể sử dụng. Nhằm khắc phục vấn ñề này, chúng ta có thể bổ sung thêm cổng vào/ra cho 8031.2 Bộ vi ñiều khiển 8052: 8052 là một phiên bản của họ 8051. 8052 có tất cả các thông số kỹ thuật của 8051, ngoài ra còn có thêm 128 byte RAM, 4KB ROM và một bộ ñịnh thời nữa. Như vậy, 8052 có tổng cộng 256 byte RAM, 8KB ROM và ba bộ ñịnh thời.

Giáo trình Vi xử lý. 8 Biên soạn: Phạm Quang Trí Chương 2: Phần cứng chip vi ñiều khiển 8051. Trường ðH Công nghiệp Tp. ðặc tính kỹ thuật 8031 8051 8052 ROM trên chip (KB) 0 4 8 RAM trên chip (byte) 128 128 256 Bộ ñịnh thời 2 2 3 Chân vào/ra 32 32 32 Cổng nối tiếp 1 1 1 Nguồn ngắt 5 5 6 Như bảng thông số trên ta thấy 8051 là một trường hợp riêng của 8052.

Mọi chương trình viết cho 8051 ñều có thể chạy ñược trên 8052 nhưng ñiều ngược lại có thể là không ñúng.3 Bộ vi ñiều khiển 8751: Chip 8751 chỉ có 4KB bộ nhớ UV-EPROM trên chip. ðể sử dụng chip này cần phải có thiết bị lập trình PROM và thiết bị xoá UV-EPROM. Do ROM trên chip của 8751 là UV-EPROM, nên cần phải mất khoảng 20 phút ñể xoá 8751 trước khi ñược lập trình. Vì ñây là quá trình mất nhiều thời gian nên nhiều nhà sản xuất ñã cho ra phiên bản Flash ROM và UV-RAM.4 Bộ vi ñiều khiển AT8951 của Atmel Corporation: AT8951 là phiên bản 8051 có ROM trên chip là bộ nhớ Flash.

Phiên bản này rất thích hợp cho các ứng dụng nhanh vì bộ nhớ Flash có thể ñược xóa trong vài giây. Dĩ nhiên là ñể dùng AT8951 cần phải có thiết bị lập trình PROM hỗ trợ bộ nhớ Flash nhưng không cần ñến thiết bị xóa ROM vì bộ nhớ Flash ñược xóa bằng thiết bị lập trình PROM. ðể tiện sử dụng, hiện nay hãng Atmel ñang nghiên cứu một phiên bản của AT8951 có thể ñược lập trình qua cổng COM của máy tính PC và như vậy sẽ không cần ñến thiết bị lập trình PROM. Ký hiệu ROM RAM I/O Timer Ngắt Vcc Số chân IC AT89C51 4KB 128 32 2 5 5V 40 AT89LV51 4KB 128 32 2 5 3V 40 AT89C1051 1KB 64 15 1 3 3V 20 AT89C2051 2KB 128 15 2 5 3V 20 AT89C52 8KB 256 32 3 6 5V 40 AT89LV52 8KB 256 32 3 6 3V 40 2.5 Bộ vi ñiều khiển DS5000 của Dallas Semiconductor: Một phiên bản phổ biến khác nữa của 8051 là DS5000 của hãng Dallas Semiconductor.

Bộ nhớ ROM trên chip của DS5000 là NV-RAM. DS5000 có khả năng nạp chương trình vào ROM trên chip trong khi nó vẫn ở trong hệ thống mà không cần phải lấy ra. Cách thực hiện là dùng qua cổng COM Giáo trình Vi xử lý. 9 Biên soạn: Phạm Quang Trí Chương 2: Phần cứng chip vi ñiều khiển 8051.

Trường ðH Công nghiệp Tp. của máy tính PC. ðây là một ñiểm mạnh rất ñược ưa chuộng. Ngoài ra, NV-RAM còn có ưu việt là cho phép thay ñổi nội dung RAM theo từng byte mà không cần phải xóa hết trước khi lập trình như bộ nhớ EPROM.

Ký hiệu ROM RAM I/O Timer Ngắt Vcc Số chân IC DS5000-8 8KB 128 32 2 6 5V 40 DS5000-32 32KB 128 32 2 6 5V 40 DS5000T-8 8KB 128 32 2 6 5V 40 DS5000T-32 32KB 128 32 2 6 5V 40 ðiểm ñặc biệt là các chip có chữ “T” theo sau ký hiệu “5000” có nghĩa là chip ñó có thiết kế thêm một ñồng hồ thời gian thực (RTC: Real Time Clock) bên trong. Lưu ý ñồng hồ thời gian thực RTC hoàn toàn khác với bộ ñịnh thời Timer. RTC tạo và lưu giữ thời gian của ngày (giờ/phút/giây) và ngày tháng (ngày/tháng/năm) trên thực tế ngay cả khi không có nguồn cung cấp.6 Bộ vi ñiều khiển P89V51xx của Philips Corporation: ðây là một phiên bản cải tiến sử dụng CPU là bộ vi ñiều khiển 80C51 với nhiều tính năng vượt trội: dung lượng ROM/RAM trên chip rất lớn, 3 Timer 16 bit + 1 Watch-dog Timer, 2 thanh ghi DPTR, 8 nguồn ngắt, PWM (Pulse Width Modulator), SPI (Serial Peripheral Interface) và ñặc biệt là bộ nhớ chương trình trên chip có tính năng ISP (In-System Programming) và IAP (In-Application Programming),… II. CÁC CHÂN CỦA CHIP 8051: 1.

Sơ ñồ khối và chức năng các khối của chip 8051: Giáo trình Vi xử lý. 10 Biên soạn: Phạm Quang Trí Chương 2: Phần cứng chip vi ñiều khiển 8051. Trường ðH Công nghiệp Tp. - CPU (Central Processing Unit): ðơn vị xử lý trung tâm → tính toán và ñiều khiển quá trình hoạt ñộng của hệ thống.

- OSC (Oscillator): Mạch dao ñộng → tạo tín hiệu xung clock cung cấp cho các khối trong chip hoạt ñộng. - Interrupt control: ðiều khiển ngắt → nhận tín hiệu ngắt từ bên ngoài (INT0\, INT1\), từ bộ ñịnh thời (Timer 0, Timer 1) và từ cổng nối tiếp (Serial port), lần lượt ñưa các tín hiệu ngắt này ñến CPU ñể xử lý. - Other registers: Các thanh ghi khác → lưu trữ dữ liệu của các port xuất/nhập, trạng thái làm việc của các khối trong chip trong suốt quá trình hoạt ñộng của hệ thống. - RAM (Random Access Memory): Bộ nhớ dữ liệu trong chip → lưu trữ các dữ liệu.

- ROM (Read Only Memory): Bộ nhớ chương trình trong chip → lưu trữ chương trình hoạt ñộng của chip. - I/O ports (In/Out ports): Các port xuất/nhập → ñiều khiển việc xuất nhập dữ liệu dưới dạng song song giữa trong và ngoài chip thông qua các port P0, P1, P2, P3. - Serial port: Port nối tiếp → ñiều khiển việc xuất nhập dữ liệu dưới dạng nối tiếp giữa trong và ngoài chip thông qua các chân TxD, RxD. - Timer 0, Timer 1: Bộ ñịnh thời 0, 1 → dùng ñể ñịnh thời gian hoặc ñếm sự kiện (ñếm xung) thông qua các chân T0, T1.

- Bus control: ðiều khiển bus → ñiều khiển hoạt ñộng của hệ thống bus và việc di chuyển thông tin trên hệ thống bus. - Bus system: Hệ thống bus → liên kết các khối trong chip lại với nhau. Sơ ñồ chân và chức năng các chân của chip 8051: Giáo trình Vi xử lý. 11 Biên soạn: Phạm Quang Trí Chương 2: Phần cứng chip vi ñiều khiển 8051.

Trường ðH Công nghiệp Tp.7) có số chân từ 32 – 39. - Port 0 có hai chức năng: • Port xuất nhập dữ liệu (P0.7) → không sử dụng bộ nhớ ngoài.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ