Giáo trình Kỹ thuật vi xử lý tập 2: Chương VI - Vào/Ra Điều Khiển Bằng Chương Trình

Chuyên khảo kỹ thuật phân tích Kỹ thuật vi xử lý tập 2, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo., phục vụ nghiên cứu và ứng dụng thực tiễn

Người đăng

Ẩn danh
211
2
0

Phí lưu trữ

55 Point

Tóm tắt

I. Tổng quan kỹ thuật vi xử lý Các phương pháp vào ra

Trong các hệ thống ứng dụng, kỹ thuật vi xử lý đóng vai trò trung tâm điều khiển, đòi hỏi sự trao đổi thông tin liên tục giữa bộ vi xử lý và các thiết bị ngoại vi. Quá trình này, được gọi là quá trình vào/ra (I/O), là nền tảng cho mọi hoạt động của hệ thống, từ việc nhận dữ liệu từ cảm biến đến việc xuất lệnh điều khiển cơ cấu chấp hành. Hiệu quả của hệ thống phụ thuộc rất lớn vào phương pháp điều khiển trao đổi thông tin được lựa chọn. Có ba nhóm phương pháp chính để thực hiện quá trình vào/ra. Nhóm thứ nhất là vào/ra điều khiển bằng chương trình, nơi mọi hoạt động trao đổi số liệu đều do chương trình thực hiện trực tiếp thông qua các lệnh vào/ra. Nhóm thứ hai là vào/ra điều khiển bằng ngắt, một cơ chế hiệu quả hơn, trong đó thiết bị ngoại vi chủ động thông báo cho bộ vi xử lý khi nó sẵn sàng trao đổi dữ liệu. Bộ vi xử lý sẽ tạm dừng công việc hiện tại để thực thi chương trình phục vụ ngắt, sau đó quay lại chương trình chính. Nhóm thứ ba, vào/ra điều khiển bằng phần cứng hay còn gọi là thâm nhập bộ nhớ trực tiếp (DMA - Direct Memory Access), là phương pháp cho phép trao đổi dữ liệu tốc độ cao trực tiếp giữa bộ nhớ và thiết bị ngoại vi mà không cần sự can thiệp của bộ vi xử lý. Mỗi phương pháp có ưu và nhược điểm riêng, phù hợp với các ứng dụng khác nhau, từ các hệ thống đơn giản, chi phí thấp đến các hệ thống yêu cầu hiệu suất và tốc độ xử lý cao. Việc lựa chọn phương pháp tối ưu là một bài toán quan trọng trong thiết kế hệ thống vi xử lý.

1.1. Khái niệm về quá trình trao đổi số liệu trong hệ vi xử lý

Quá trình trao đổi số liệu, hay còn gọi là quá trình vào/ra (I/O), là hoạt động cốt lõi cho phép bộ vi xử lý tương tác với thế giới bên ngoài. Nó bao gồm việc truyền dữ liệu giữa các mạch ngoài với bộ vi xử lý và giữa bộ vi xử lý với bộ nhớ. Các cửa vào và cửa ra thực chất là các thanh ghi ngoài, có chức năng như các điểm trung chuyển dữ liệu. Một số bộ vi xử lý, như 8085A, sử dụng tín hiệu điều khiển IO/M để phân biệt không gian địa chỉ. Khi IO/M = 0, hệ thống truy cập bộ nhớ; khi IO/M = 1, hệ thống truy cập thiết bị vào/ra. Hướng trao đổi dữ liệu được xác định bởi các tín hiệu điều khiển đọc (RD) và ghi (WR).

1.2. Phân loại 3 nhóm điều khiển vào ra chính chương trình ngắt DMA

Có ba phương pháp điều khiển trao đổi thông tin chính. Thứ nhất, vào/ra điều khiển bằng chương trình, trong đó CPU toàn quyền kiểm soát việc trao đổi thông qua các lệnh IN và OUT. Phương pháp này đơn giản nhưng chiếm dụng thời gian của CPU. Thứ hai, vào/ra điều khiển bằng ngắt, nơi thiết bị ngoại vi gửi yêu cầu ngắt đến CPU khi sẵn sàng. CPU sẽ tạm dừng chương trình chính để thực thi một chương trình con phục vụ ngắt, giúp tăng hiệu quả hệ thống. Thứ ba, thâm nhập bộ nhớ trực tiếp (DMA), là phương pháp cao cấp nhất. Phần cứng điều khiển DMA sẽ quản lý việc truyền dữ liệu trực tiếp giữa thiết bị I/O và bộ nhớ mà không cần qua các thanh ghi của CPU, lý tưởng cho các ứng dụng đòi hỏi tốc độ truyền dữ liệu cực cao.

II. Thách thức trong kỹ thuật vi xử lý Giao tiếp I O

Việc thiết kế giao tiếp vào/ra trong kỹ thuật vi xử lý đối mặt với nhiều thách thức, đặc biệt là trong việc quản lý và phân biệt không gian địa chỉ cũng như lựa chọn thiết bị. Một trong những quyết định cơ bản là lựa chọn giữa vào/ra tách biệt (Isolated I/O) và vào/ra theo địa chỉ bộ nhớ (Memory-mapped I/O). Với vào/ra tách biệt, các thiết bị I/O có một không gian địa chỉ riêng, được truy cập bằng các lệnh chuyên dụng như IN và OUT. Phương pháp này giúp tách bạch rõ ràng giữa bộ nhớ và ngoại vi. Ngược lại, vào/ra theo địa chỉ bộ nhớ gán cho các cổng I/O những địa chỉ trong không gian bộ nhớ của hệ thống. Điều này cho phép sử dụng toàn bộ tập lệnh truy cập bộ nhớ (MOV, LDA, STA,...) để thao tác với thiết bị ngoại vi, mang lại sự linh hoạt cao hơn. Tuy nhiên, thách thức lớn nhất nằm ở khâu giải mã địa chỉ. Khi hệ thống có nhiều thiết bị I/O, cần một cơ chế logic để đảm bảo rằng tại một thời điểm, chỉ có một thiết bị duy nhất được chọn để giao tiếp trên bus. Lỗi trong thiết kế giải mã có thể dẫn đến xung đột bus (bus contention), khi hai hay nhiều thiết bị cùng lúc cố gắng đưa dữ liệu lên bus, gây ra chập mạch và làm hỏng phần cứng. Do đó, việc thiết kế mạch giải mã địa chỉ chính xác và hiệu quả là yếu tố sống còn để đảm bảo sự ổn định và tin cậy của toàn bộ hệ thống vi xử lý.

2.1. Phân biệt vào ra tách biệt và vào ra theo địa chỉ bộ nhớ

Vào/ra tách biệt sử dụng các lệnh IN và OUT, đòi hỏi 3 chu kỳ máy để thực hiện. Tín hiệu IO/M của 8085A sẽ ở mức cao (IO/M=1) để chỉ định đây là thao tác với I/O. Phương pháp này có không gian địa chỉ giới hạn (ví dụ 256 cổng vào và 256 cổng ra cho 8085A). Trong khi đó, vào/ra theo địa chỉ bộ nhớ coi các cổng I/O như các ô nhớ. Tín hiệu IO/M sẽ ở mức thấp (IO/M=0). Điều này cho phép dùng các lệnh mạnh mẽ như MOV r, M hay SHLD để trao đổi dữ liệu, mang lại sự linh hoạt trong lập trình nhưng làm giảm không gian địa chỉ dành cho bộ nhớ RAM/ROM thực.

2.2. Các khó khăn trong việc giải mã địa chỉ cho thiết bị ngoại vi

Khi một hệ vi xử lý chỉ có một vài thiết bị I/O, việc giải mã địa chỉ có thể không cần thiết. Tuy nhiên, với số lượng lớn thiết bị, việc giải mã trở nên bắt buộc. Một phương pháp đơn giản là chọn tuyến tính (linear selection), sử dụng trực tiếp các đường địa chỉ để chọn thiết bị. Phương pháp này tiết kiệm mạch logic nhưng tiềm ẩn rủi ro: một lỗi lập trình nhỏ (nhầm địa chỉ cổng) có thể khiến hai cửa vào cùng được chọn, gây xung đột bus và hư hỏng phần cứng. Hơn nữa, phương pháp này giới hạn số lượng thiết bị có thể kết nối. Để khắc phục, các bộ giải mã IC như 74LS138 hay 8205 được sử dụng để tạo ra các tín hiệu chọn thiết bị (chip select) duy nhất cho mỗi cổng, đảm bảo hoạt động an toàn và cho phép mở rộng hệ thống.

III. Hướng dẫn kỹ thuật vi xử lý Vào ra bằng chương trình

Phương pháp vào/ra điều khiển bằng chương trình là nền tảng của kỹ thuật vi xử lý, trong đó mọi hoạt động trao đổi dữ liệu đều được quản lý trực tiếp bởi phần mềm. Để thực hiện phương pháp này, việc thiết kế mạch logic để tạo ra các xung chọn thiết bị là tối quan trọng. Có hai cách tiếp cận chính: chọn tuyến tính và sử dụng bộ giải mã địa chỉ. Phương pháp chọn tuyến tính không yêu cầu mạch logic phức tạp, thường dùng cho các hệ thống nhỏ có dưới 8 cửa vào và 8 cửa ra. Tuy nhiên, nó có nhược điểm lớn là dễ gây xung đột phần cứng nếu chương trình có lỗi địa chỉ. Để an toàn và có khả năng mở rộng, việc sử dụng các bộ giải mã địa chỉ như 74LS139, 74LS138 là giải pháp được ưu tiên. Các IC này nhận đầu vào là các bit địa chỉ và các tín hiệu điều khiển (IO/M, RD, WR) để tạo ra các xung chọn thiết bị duy nhất, loại bỏ nguy cơ xung đột bus. Trong quá trình trao đổi dữ liệu, có hai hình thức: không điều kiện và có điều kiện. Trao đổi không điều kiện diễn ra khi bộ vi xử lý gửi hoặc nhận dữ liệu mà không cần kiểm tra trạng thái của thiết bị ngoại vi. Ngược lại, trao đổi có điều kiện đòi hỏi bộ vi xử lý phải kiểm tra một cờ trạng thái (status flag) để xác định xem thiết bị đã sẵn sàng hay chưa. Kỹ thuật này, gọi là handshaking, đảm bảo tính toàn vẹn dữ liệu. Khi có nhiều thiết bị, bộ vi xử lý có thể sử dụng phương pháp hỏi vòng (polling) để tuần tự kiểm tra cờ trạng thái của từng thiết bị.

3.1. Phương pháp chọn tuyến tính và các bất lợi cần lưu ý

Phương pháp chọn tuyến tính sử dụng mỗi bit địa chỉ để điều khiển một cửa vào/ra. Ví dụ, bit A4 có thể được dùng để chọn cửa 16. Mạch logic sẽ tổ hợp tín hiệu này với IO/M và RD (cho lệnh đọc) hoặc WR (cho lệnh ghi) để tạo xung chọn. Bất lợi chính là lỗi chương trình có thể gây nguy hại phần cứng. Giả sử dây địa chỉ A2 và A3 dùng cho cửa 4 và 8. Nếu một lệnh IN 12 (địa chỉ 12 = 8+4) bị thực thi do lỗi, cả hai cửa 4 và 8 sẽ cùng được chọn, dẫn đến chập mạch trên bus dữ liệu. Do đó, khi áp dụng phương pháp này, lập trình viên phải đảm bảo không bao giờ chọn hai cửa đồng thời.

3.2. Sử dụng bộ giải mã địa chỉ IC để quản lý nhiều thiết bị I O

Để quản lý nhiều thiết bị vào/ra một cách an toàn, các bộ giải mã địa chỉ như 74LS138 (giải mã 3 sang 8) hoặc 74LS154 (giải mã 4 sang 16) được sử dụng. Các bit địa chỉ thấp (ví dụ A0-A2) được nối vào đầu vào của bộ giải mã. Các tín hiệu điều khiển như RD, WR, IO/M được nối vào các chân cho phép (enable) của IC. Nhờ vậy, bộ giải mã chỉ hoạt động khi có một lệnh I/O hợp lệ, và nó sẽ tạo ra một xung chọn duy nhất ở một trong các đầu ra, kích hoạt đúng thiết bị ngoại vi được chỉ định. Việc sử dụng các bộ giải mã này giúp hệ thống trở nên module hóa, dễ mở rộng và an toàn hơn.

3.3. Điều khiển trao đổi dữ liệu có điều kiện Handshaking Polling

Trao đổi dữ liệu có điều kiện, hay handshaking, là một phương pháp đồng bộ hóa giữa bộ vi xử lý và thiết bị ngoại vi. Thiết bị sẽ thiết lập một cờ (flag) để báo hiệu rằng nó đã sẵn sàng (ví dụ, có dữ liệu mới để đọc, hoặc bộ đệm đã trống để ghi). Bộ vi xử lý sẽ liên tục kiểm tra cờ này. Khi có nhiều thiết bị, chương trình sẽ thực hiện hỏi vòng (polling): tuần tự đọc byte trạng thái của từng thiết bị để xem thiết bị nào cần phục vụ. Phương pháp này làm tăng thời gian chờ (I/O overhead) nhưng đảm bảo dữ liệu không bị mất hoặc ghi đè.

IV. Giải pháp kỹ thuật vi xử lý Sử dụng IC giao tiếp LSI

Để tối ưu hóa thiết kế và giảm số lượng linh kiện trong các hệ thống vi xử lý, các vi mạch tích hợp cỡ lớn (LSI) có khả năng lập trình được sử dụng rộng rãi. Các IC này tích hợp nhiều chức năng như cổng vào/ra, bộ đệm, chốt, và logic điều khiển vào cùng một chip, cho phép cấu hình linh hoạt bằng phần mềm. Hai vi mạch tiêu biểu trong họ vi xử lý 8085AIntel 81558255A. Vi mạch 8155 là một thiết bị đa năng, bao gồm 256 byte RAM tĩnh, ba cổng I/O (hai cổng 8 bit và một cổng 6 bit) và một bộ định thời 14 bit. Các cổng I/O của 8155 có thể được cấu hình là đầu vào hoặc đầu ra thông qua việc ghi vào thanh ghi lệnh/trạng thái (C/S). Hơn nữa, cổng C có thể hoạt động như các đường tín hiệu handshaking cho cổng A và B, hỗ trợ trao đổi dữ liệu có điều kiện một cách hiệu quả. Trong khi đó, 8255A (Programmable Peripheral Interface - PPI) là một vi mạch chuyên dụng cho giao tiếp ngoại vi, cung cấp ba cổng I/O 8 bit (A, B, C). Điểm mạnh của 8255A là khả năng hoạt động ở nhiều chế độ khác nhau. Chế độ 0 (vào/ra cơ bản) cho phép cấu hình mỗi cổng là vào hoặc ra. Chế độ 1 (vào/ra chốt) hỗ trợ giao tiếp handshaking. Chế độ 2 cung cấp một bus hai chiều 8 bit, rất hữu ích cho các ứng dụng phức tạp. Việc sử dụng các IC LSI này giúp đơn giản hóa phần cứng, tăng tính linh hoạt và giảm chi phí cho hệ thống vi xử lý.

4.1. Chức năng và cách cấu hình vi mạch đa năng Intel 8155

Intel 8155 là một vi mạch hỗ trợ mạnh mẽ cho 8085A. Nó tích hợp sẵn một bộ chốt địa chỉ để tách kênh bus địa chỉ/dữ liệu. Để cấu hình 8155, chương trình cần ghi một byte lệnh vào thanh ghi C/S (Command/Status). Các bit trong byte lệnh này sẽ định nghĩa hướng của cổng A và B (vào/ra), chế độ hoạt động của cổng C (vào, ra, hoặc tín hiệu điều khiển handshaking), và điều khiển bộ định thời. Ví dụ, để cấu hình cổng A là vào, cổng B là ra và sử dụng chế độ handshaking ALT4, chương trình sẽ gửi giá trị 0AH đến địa chỉ thanh ghi C/S. Sau khi cấu hình, các lệnh INOUT được dùng để đọc/ghi dữ liệu qua các cổng tương ứng.

4.2. Lập trình mạch nối ghép ngoại vi PPI 8255A với các chế độ

Vi mạch 8255A được điều khiển thông qua một từ điều khiển (control word) ghi vào thanh ghi điều khiển. Từ điều khiển này xác định chế độ hoạt động cho các cổng. Chế độ 0 là chế độ I/O cơ bản, phù hợp cho các giao tiếp đơn giản. Chế độ 1 (Strobed I/O) sử dụng các chân của cổng C làm tín hiệu điều khiển (STB, IBF, OBF, ACK) để thực hiện giao tiếp handshaking với thiết bị ngoại vi. Chế độ 2 (Bidirectional Bus) biến cổng A thành một bus dữ liệu hai chiều, được điều khiển bởi 5 bit của cổng C. 8255A còn có một tính năng mạnh mẽ là khả năng lập/xóa từng bit của cổng C (Bit Set/Reset), rất tiện lợi cho các ứng dụng điều khiển riêng lẻ.

V. Kỹ thuật vi xử lý nâng cao Điều khiển bằng ngắt DMA

Để khắc phục hạn chế về hiệu suất của phương pháp hỏi vòng (polling), kỹ thuật vi xử lý hiện đại ứng dụng cơ chế ngắt (interrupt). Thay vì để bộ vi xử lý liên tục kiểm tra trạng thái thiết bị, cơ chế ngắt cho phép thiết bị ngoại vi chủ động gửi một tín hiệu yêu cầu phục vụ đến bộ vi xử lý khi nó cần trao đổi dữ liệu. Khi nhận được yêu cầu ngắt, bộ vi xử lý sẽ hoàn thành lệnh đang thực thi, lưu lại trạng thái hiện tại (chủ yếu là địa chỉ của lệnh kế tiếp trong thanh ghi PC) vào ngăn xếp, sau đó nhảy đến một chương trình con đặc biệt gọi là chương trình phục vụ ngắt (ISR). Sau khi thực thi xong ISR, nó sẽ khôi phục lại trạng thái và tiếp tục chương trình chính. Bộ vi xử lý 8085A có một cấu trúc ngắt ưu tiên với 5 đầu vào: TRAP, RST7.5, RST6.5, RST5.5 và INTR, trong đó TRAP có ưu tiên cao nhất và không thể bị che. Một kỹ thuật khác để tối đa hóa tốc độ truyền dữ liệu là Thâm nhập bộ nhớ trực tiếp (DMA). Trong chế độ DMA, một bộ điều khiển DMA chuyên dụng sẽ giành quyền điều khiển bus hệ thống từ bộ vi xử lý và thực hiện việc truyền dữ liệu trực tiếp giữa bộ nhớ và thiết bị I/O. Bộ vi xử lý chỉ cần khởi tạo bộ điều khiển DMA với thông tin về địa chỉ nguồn, địa chỉ đích và số byte cần truyền, sau đó có thể thực hiện các công việc khác. DMA là giải pháp không thể thiếu trong các ứng dụng đòi hỏi thông lượng dữ liệu lớn như đồ họa, mạng, hay lưu trữ đĩa.

5.1. Cấu trúc ngắt ưu tiên của bộ vi xử lý 8085A và ứng dụng

8085A có 5 đầu vào ngắt: TRAP, RST7.5, RST6.5, RST5.5, và INTR. TRAP là ngắt không che được (NMI), thường dùng cho các sự kiện khẩn cấp như mất nguồn. Các ngắt còn lại là ngắt che được, có thể được cho phép hoặc vô hiệu hóa bằng lệnh EI (Enable Interrupt) và DI (Disable Interrupt). Mỗi ngắt (trừ INTR) được liên kết với một địa chỉ vector cụ thể trong bộ nhớ, nơi chương trình phục vụ ngắt bắt đầu. 8085A có cơ chế ưu tiên cứng: TRAP > RST7.5 > RST6.5 > RST5.5 > INTR. Điều này đảm bảo rằng khi nhiều yêu cầu ngắt xảy ra đồng thời, yêu cầu có mức ưu tiên cao hơn sẽ được phục vụ trước.

5.2. Nguyên lý hoạt động của thâm nhập bộ nhớ trực tiếp DMA

Thâm nhập bộ nhớ trực tiếp (DMA) là kỹ thuật truyền dữ liệu tốc độ cao. Quá trình hoạt động gồm các bước: 1. Bộ vi xử lý lập trình cho bộ điều khiển DMA (DMAC) với địa chỉ bắt đầu của bộ nhớ, tổng số từ cần truyền và hướng truyền. 2. Thiết bị I/O gửi yêu cầu truyền dữ liệu đến DMAC. 3. DMAC gửi yêu cầu giữ bus (HOLD) đến bộ vi xử lý. 4. Bộ vi xử lý hoàn thành chu kỳ máy hiện tại, thả nổi các bus và gửi tín hiệu chấp nhận (HLDA) cho DMAC. 5. DMAC giành quyền điều khiển bus, thực hiện truyền dữ liệu trực tiếp giữa I/O và bộ nhớ. 6. Sau khi hoàn tất, DMAC trả lại quyền điều khiển bus cho bộ vi xử lý. Quá trình này loại bỏ vai trò trung gian của CPU, giải phóng tài nguyên và tăng tốc độ truyền dữ liệu lên đáng kể.

VI. Tương lai kỹ thuật vi xử lý và các phương thức giao tiếp

Tổng kết lại, kỹ thuật vi xử lý cung cấp một loạt các phương pháp giao tiếp vào/ra, mỗi phương pháp có những đặc điểm riêng biệt phù hợp với các yêu cầu ứng dụng khác nhau. Vào/ra điều khiển bằng chương trình, bao gồm cả kỹ thuật hỏi vòng, là phương pháp đơn giản nhất, dễ triển khai nhưng lại làm lãng phí thời gian xử lý của CPU. Nó phù hợp với các hệ thống đơn giản, không yêu cầu đáp ứng thời gian thực nghiêm ngặt. Vào/ra điều khiển bằng ngắt là một bước tiến vượt bậc, giải phóng CPU khỏi việc phải chờ đợi thiết bị ngoại vi, giúp hệ thống hoạt động hiệu quả và đáp ứng tốt hơn với các sự kiện không đồng bộ. Đây là phương pháp phổ biến nhất trong hầu hết các ứng dụng nhúng. Cuối cùng, Thâm nhập bộ nhớ trực tiếp (DMA) là giải pháp đỉnh cao cho các tác vụ truyền dữ liệu khối lượng lớn với tốc độ cao, giảm thiểu sự can thiệp của CPU đến mức tối đa. Nhìn về tương lai, xu hướng trong kỹ thuật vi xử lý là tích hợp ngày càng nhiều bộ điều khiển ngoại vi phức tạp ngay trên cùng một vi mạch (SoC - System on a Chip). Các vi điều khiển hiện đại không chỉ có các cổng I/O cơ bản mà còn tích hợp sẵn các bộ điều khiển ngắt tiên tiến, nhiều kênh DMA, cùng với các giao diện truyền thông chuẩn như UART, SPI, I2C. Điều này giúp đơn giản hóa việc thiết kế phần cứng, giảm kích thước và chi phí sản phẩm, đồng thời tăng cường hiệu suất và độ tin cậy của hệ thống.

6.1. Tóm tắt ưu nhược điểm của các phương pháp vào ra

  • Điều khiển bằng chương trình (Polling): Ưu điểm là cấu trúc phần mềm và phần cứng đơn giản. Nhược điểm là lãng phí tài nguyên CPU, thời gian đáp ứng chậm và không thể đoán trước, phụ thuộc vào vị trí của thiết bị trong vòng lặp hỏi vòng.
  • Điều khiển bằng ngắt: Ưu điểm là đáp ứng nhanh với các sự kiện, hiệu quả sử dụng CPU cao. Nhược điểm là phần cứng và phần mềm phức tạp hơn, cần quản lý ngăn xếp và bối cảnh (context switching).
  • Điều khiển bằng DMA: Ưu điểm là tốc độ truyền dữ liệu rất cao, CPU được giải phóng hoàn toàn trong quá trình truyền. Nhược điểm là yêu cầu phần cứng phức tạp nhất (bộ điều khiển DMA) và chi phí cao hơn.

6.2. Xu hướng tích hợp bộ điều khiển I O trong vi điều khiển

Các vi điều khiển hiện đại (MCU) và hệ thống trên chip (SoC) đang đi theo xu hướng tích hợp sâu. Thay vì sử dụng các IC giao tiếp ngoại vi rời rạc như 8155 hay 8255A, các MCU ngày nay tích hợp sẵn các bộ điều khiển ngoại vi có thể lập trình (peripherals). Một MCU có thể có hàng chục kênh DMA, một bộ điều khiển ngắt vector lồng nhau (Nested Vectored Interrupt Controller - NVIC), và các bộ điều khiển cho nhiều chuẩn giao tiếp. Sự tích hợp này không chỉ giúp giảm diện tích bo mạch và chi phí mà còn tối ưu hóa hiệu suất vì các thành phần giao tiếp với nhau trên cùng một đế silicon với tốc độ rất cao, mở ra khả năng cho các ứng dụng vi xử lý ngày càng phức tạp và mạnh mẽ hơn.

15/07/2025
Kỹ thuật vi xử lý tập 2

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

1Í TRƯƠNG'TẤN HAI jor TRƯỜNG ĐẠI HOC GIAO TRÔNG VẬN TẮLG SỞ? Horns — s KY THUAT VEXU LY | law l “. td : eg Re ". be! Sees ` poly. " ca F so nh nh.

a Tage read eee Covet a a TRUONG DAI HOC GIAO THONG VAN TAI - HA NOI 1997 k CHRUGNG VI: VAO/RA DIEU KHIEN BANG CHUONG TRINH VI. GIỐI THIỆU CHUNG: Các hệ vi xử lý ứng dụng đỏi hỏi trao đổi số liệu giữa các mạch bên ngoài với bộ vi xử lý, giữa bộ vi xử lý với bộ nhớ. Sự trao đổi số liệu như vậy được gọi là quá trỉnh vào/ra. Cố nhiều phương pháp điều khiển trao đổi thông tin nhưng có thể chia chúng thành ba nhóm chính sau : , 1, Vàojra điều khiển bằng chương trình 2.

Vào/ra điều khiển bằng ngắt 3. Vao/ra diéu khién bang phan cứng ' Oo nhom thứ nhất, chương trình điều khiển quá trình trao đổi số liệu, có nghĩa là vào/ra ; duge thuc hién khi chương trình thực biện lệnh trao đổi vào/ra. Trong nhiều trường hợp cần xác định trạng thái SANSANG cia thiét bị trước khi trao đổi số liệu, bằng cách kiểm tra cờ bên ngoài hoặc các bít trạng thái liên quan với vào/ra. Ngược lại, trong nhóm thứ hai, thiết bị ngoài kích đầu vào ngắt của bộ vi xử lý để thông báo cho bộ vi xử lý biết khả năng trao đổi số liệu.

Việc chấp nhận yêu cầu ngất ở. một số đầu vào ngắt của bộ vi xử lý được điều kbiển bằng chương trình. Khi bộ vi xử lý chấp nhận ngất, nó dừng chương trình đang thực hiện và chuyển điều khiển đến chương trình phục vụ ngắt. Chương trình con này trao đổi số liệu, rồi trả điều khiển cho chương trình đang thực hiện bị ngắt.

Trong nhóm này việc trao đổi số liệu được xác định trước bằng mạch cứng bên ngoài và được điều khiển bằng chương trỉnh phục vụ ngắt. Trong nhớm ở, phần cứng điều khiển trao đổi số liệu hay xâm nhập trực tiếp bộ nhớ (DMA - DIRECTMEMORY ACCESS). Viéc trao déi số liệu là trực tiếp giữa bộ nhớ và vào/ra. Số liệu không đi từ vào/ra đến các thanh ghi của bộ vi xử lý rồi tới bộ nhớ, hoặc theo hướng ngược lại, mà trao đổi trực tiếp giữa thiết bị ngoài và bộ nhớ.

Bộ vi xử lý xác định trước cho DMA địa chỉ khởi đầu của bộ nhớ và tổng số từ sẽ truyền. DMA được sử dụng chủ yếuở nơi có yêu cầu trao đối số liệu với tốc độ cao. Như đã trình bàyở trước các cửa vào và các cửa ra là các thanh ghỉ ngoài. Một số phân loại bộ vi xử lý phát sinh tính hiệu điều khiển để phân biệt vùng địa chỉ các thanh ghi ngoài (liên quan tới thiết bị vào/ra) với vùng địa chỉ các thanh ghi ngoài gọi là các ngăn nhớ.

Tín hiệu điều khiển IO/M của 80854 xác định địa chỉ và số liệu cho b6 nhé (IO/M= 0), hoặc vào/ra (IO/M ='1). Hướng trao đổi số liệu của vào/ya xác định bằng xung RO = 0 (vao) va WR = 0 (ra). -—— me 0000H 00H 00H địa chỉ vùng địa chỉ |,. — địa chỉ nhó ˆ ` đefavào| 7 ˆ cửa vào FFFFH ˆ, FFH FF Cac tin hiệu điều khiển : .1JO/M=0_ © - IO/M = 1 -- -IO/M=1 hoặc RD = 0 WR=0.

hoặc - hoặc : _ MEMW = 0 TR = 0= 0 ¬.= 0 ee th ` “Hình 6. CáctÍnhiệudiềukhiểnchonvùngnhóvào/ra. Vào/ra tách biệt. Chỉ có lệnh IN vào lệnh OUT trao đổi số liệu trong vào/ra tách biệt.

Lệnh IN vào OUT đời hỏi ba chủ kỳ máy để thực hiện. Chu kỳ thứ nhất là OPCODEFETCH.thứ hai MEMORY RBAD nhận địa chỉ của 8 bit từ bộ nhớ vào cả hai thanh ghi W và Z. Chu kỳ thứ ba:'là INPUT' hoặc OUTPUT, chu ky nay lénh OUT gui số liệu từ bộ vi xử lý ra thiết bï.ra, lệnh IN nhận số liệu vào bộ vi xử lý từ thiết bị vào. Trong chu kỳ máy INPUT hoac OUTPUT, 8 bit dia chi cta tit hai thanh ghi W va Z được gửi vào bus địa chỉ /số liệu ADO-AD7 và vào bus địa chỉ A8- A15: Trên hình 6.2 là biểu đồ thời gian của chu kỳ lệnh In.

Các xung RD và WR xác định thời điển để chốt cửa vảo 3 trạnh thái kích Bus số liệu hơặc thời điểm để cửa ra chốt số liệu từ bus.2a chỉ số quan hệ thời gian giữa địa chỉ cửa và xung ED của 8085A trong chự kỳ may INPUT.2b là quan hệ thời gian giữa địa chỉ cửa và xung WR. Đối với các cửa vào, bộ giải mã cớ đầu vào là RD, IO/M, va địa chỉ cửa sẽ sinh ra xung chọn thiết bị vào duy nhất cho mỗi cửa vào (xem hình 6. Xung näy chỉ xuất hiện. trong chu kỳ INPUT của lệnh IN.

Xung chọn thiết bị vào mở bộ đệm 3 trạng thái của cửa vào. Nếu cớ lỗi thiết kế hoặc lỗi chương trình các bộ đệm 3 trạng thái của 2 hay nhiễu cửa hoặc bộ nhớ đồng thời được chọn. Như vậy cả 2 hay nhiều. thiết bị đồng thời kích bus số liệu, gây ra chập mạch trên bus số liệu.

Đối với cửa ra, bộ giải mã có đầu vào là WR, IO/M và địa-chỉ cửa ra sẽ sinh ra xung chọn thiết bị ra để chọn: cửa ra.3 xung này chỉ xuất hiện trong chủ kỳ OUTPUT của lệnh OUT. Thông thường mỗi xung chọn thiết bị ra làm nhịp cho một cửa ra. Có thể có hai hay nhiều cửa ra được chọn đồng thời. Thiết kế mạch logic thiết bị phụ thuộc vào số lượng thiết bị vào/ ra mà hệ yêu cầu.

Không cần giải mã địa chỉ cửa nếu hệ chi có một cửa vào và một cửa ra. Tín hiệu điều khiển IO/M tổ hợp với RD để tạo LOR và với WR để tạo xung viết LOW. Các xung nhịp 4 này điều khiển trực tiếp thanh ghi đệm vào và thanh ghi chốt ra. Nếu trong hệ cố nhiều cửa vào và cửa ra, cần phải giải mã địa chỉ để tạo xung chọn thiết bị cho mỗi cửa.

Phương pháp giải mã địa chỉ đơn giản nhất là chọn tuyến tính. Nó không đòi hỏi mạch logic, nhưng chỉ sử dụng cho hệ có tổng số cửa vào ít hơn hoặc bằng 8 và tổng số cửa ra Ít hơn hoặc bằng 8. © đây mỗi bit địa chỉ eó quan hệ loại trừ với cửa vào/ra và tổ hợp lôgic với IO/M va RD hoặc WR dé tao xung chọn thiết bị, trong chu kỳ mày ở thời điểm cha xung RD hoặc WR xuất hiện trừ đi độ trễ của mạch lôgic chọn.3 bịt địa chỉ A4 =1 chọn cửa 16. Xung chọn thiết bị vào IDSPI0H được sinh ra tu A„ IO/M và RD.

Dau ra IDSP10H cho phép b6 dém 8 tranh thai kích bus. ` Bất lợi của phương pháp chọn tuyến tính là lỗi chương trình gây nguy hại cho phần cứng. Nhầm lẫn địa chỉ cửa gây ra 2 hay nhiều cửa vào kích bus đồng thời. Giả sử chọn dây địa chỉ A¿ và A+ cho các cửa vào 4 và 8.

Nếu lệnh IN12 là lỗi của chương trình thi cả cửa 4 và 8 đồng thời được chọn. Như vậy khi sử dụng phương pháp này, phải đâm bảo không chọn 2 cửa đồng thời. Phương pháp chọn tuyến tính giới hạn tổng số cửa vào và ra của hệ. Để chọn nhiều cửa vào/ ra, cần cớ bộ giải mã địa chỉ.

Tổng số thiết bị ngoài cho phép là 512; 256 địa chỉ cho lénh IN va 256 cho lénh OUT. Khi giải mã các bít địa chi để cd nhiều xung chọn thiết bị vào, ta cần các bộ giải mã cố nhiều đầu vào bởi vì chúng làm giảm tổng sé IC cần thiết. Nếu một hệ yêu cầu 4 (hay Ít hơn) cửa vào và ð (hay Ít hơn) cửa ra thì có thể sử dụng một bộ giải mã 74LS139. 7415139 có 2 bộ giải mã, mỗi bộ có 4 đầu ra.

Một đầu vào của giải mã nối véi I/OR, 2 đầu còn lại nối với các bit địa chỉ AO và AI. Bốn đầu ra cho -xung chọn thiết bị vào, xem hình 6. Nếu không xuất hiện xung nhịp I/DOR thì 4 cửa ra đều có mức logic 1. Một trong các đầu ra có xung chọn thiết bị là 0 khi đầu vào LƯOR = 0.

Việc chọn cửa ra cũng tương tự như chọn cửa vào, nhưng đầu vào có mức tích cực thấp không nối với UƠÑR mà nối với A, tA c eat (OR. Tin hin mini ne luan TLK 1M" S, So Ag-A; AD; AD, Hinh 6. Biéu do thii gian đọc MW hoac [OW MW heac Ol’ | MW 10W Tiá hệ T Tz 1 T; TWAIT CLK o/M 20,50 s My t whhote (raw)2212 AYR. lo (Mw) hoge C10 As-Ais AD,-AD, [ALE ¬ WR READY Hình 6.

Biểu đồ thời gian viết tt ee IN2. , A; 2uT8 A4 ——^e kẻ OpsPosH fen en — - WR RD : - Ay lô¡8 ISPØZH ips = Ae SE off ^ TN r onaroan oD 4 RD wR———Ì>>—] Hinh 6. Tạo xung chọn thiết bị vào và ra bằng phương pháp tuyến tính Bởi vì chỉ có 2 bit địa chỉ thấp nhất nối với bộ giải mã và các bit địa chỉ còn lại không được sử dụng cho nên có thể nhiều lệnh IN höặc OUT với các địa chỉ khác nhau sẽ cho cùng xung chọn thiết bị. Thí dụ, xung chọn thiết bị IDSPOOH được tạo ra khi thực hiện các lệnh TNO hoặc IN4, IN8, 1N12, TNI16, IN20, v.

Các bộ giải mã với 6 đầu vào linh hoạt hơn. Ví dụ, các bộ giải mã 1 từ 8 có tên 8205 và 74L138.ð khi 8205 hoặc 74LS138 được sử dụng để phát sinh xung chọn thiết bị cho hệ 8085A, các xung chốt RD hoặc WR phải nối với một trong các đầu vào "chọn ƒ————— mạch" với mức tích cực thấp, còn đầu vào "chọn mạch" với mức tích cực thấp kia được nối với đất. Tín hiệu IO/M được nối với đầu “chọn mạch" với mức tích cực cao (xem hinh 6. Như vậy không cần thêm mạch lôgic để sinh ra LOR hoặc IOW, bởi vì chúng đã có sẵn bên trong 8205 hoặc 7415138.

— A}, >——»iDsPo0H “1, a ODSPOOH 2 Ao 1⁄2. Aa—¬ —zIDSPð01 ^8— ODSPOTH 1912 | ipspom | 215132 ODSP22H bh|DSPo3H l/0w ——" ODSP03H ~ " ——————. Az ——slA; O, ——>iDSP00H A2 A2 O p——>©DsPoon A4 ———>|ÀJ 0, P IDSPO01H at 4 0, b OpSPOTH - ae Aoe ——¬DlAo. ——4 _— O7 |__» ODSPO3H I0/A ——}| „ : Ioff———> Hình 65.

a) Bộ giải mã tạo ra xung "chọn cửa vào". b) Bộ giải mã tạo ra xung "chọn cửa ra" Các bộ giải mã cớ đầu vào "chọn mạch” mắc liên tiếp nhau cho phép tạo nhiều hơn các xung "chọn thiết bị".6 là sơ đồ của 17 bộ giải mã 1 từ 16 có tên 74L154, cung cấp 2ð6 xung chọn thiết bị. A3 —ib 2 PSPQ@6H — 4 pb—> DSPØ1H ——>E e .

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