Bài giảng Vi xử lý Chương 1: giới thiệu vi xử lý

- Mỗi thiết bị I/O hay bộ điều khiển của nó được nối với một đường interrupt.

- Khi I/O có yêu cầu trao đổi dữ liệu nó sẽ phát ra mộttín hiệu báo cho µP. Tín hiệu đó

được gọi là tín hiệu yêu cầu ngắt IRQ (interrupt request). Khi µP nhận được yêu cầu ngắt

đó, nếu đồng ý trao đổi thông tin với I/O, nó sẽ trả lời với bộ điều khiển nhập/xuất bằng

tín hiệu chấp nhận ngắt INTA (interrupt acknownledge) đồng thời ngừng chương trình

đang làm và gọi chương trình phục vụ ngắt cho I/O. Sau khi phục vụ xong, nó quay về

tiếp tục thực hiện chương trình đang làm tại nơi bị ngắt.

pdf21 trang | Chia sẻ: thienmai908 | Lượt xem: 1082 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Vi xử lý Chương 1: giới thiệu vi xử lý, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hiện bằng chươ trình → polling là cơ chế đồng bộ (synchronous) với việc thực thi chương trình. - Kỹ thuật polling có các hạn chế: + Mất thời gian của μP (do kiểm tra trạng thái của + Chậm trong các hệ thống thời gian thực (real-time), không thỏa mãn cho các thiết bị yêu cầu tốc độ đáp ứng nhanh. + Người sử dụng có thể gặp kh chừng I/O. μP I/O0 I/O1 I/On … Memory Bus ? ? ? Hình 1.23 I/O0 yêu cầu dịch vụ? Trình dịch vụ cho I/O0 I/O1 yêu cầu dịch vụ? Trình dịch vụ cho I/O1 I/On yêu cầu dịch vụ? Trình dịch vụ cho I/On … Y N Y N Y N Hình 1.24 16 Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý b. Interrupt (Ngắt) Ngắt là một quá trình xử lý thơng tin của vi xử lý tương tự như con người xử lý thơng tin. Ví dụ khi bạn đang nĩi chuyện với một người. Người thứ ba đến và gọi tên bạn. Đây là dấu hiệu rằng cĩ một người khác yêu cầu sự quan tâm của bạn. Người thứ ba này cĩ thể được coi như là một yêu cầu ngắt bên ngồi (external interrupt request). Người này yêu cầu bạn ngắt cuộc nĩi chuyện của mình. Bạn cĩ thể xử lý yêu cầu này bằng các cách như sau: 1. Bạn cĩ thể bỏ qua yêu cầu và coi như người thứ ba là khơng tồn tại. 2. Bạn cĩ thể dừng một cách thích hợp đối thoại đang diễn ra, rồi bắt đầu quan tâm đến người thứ ba. Lúc này bạn bắt đầu nĩi chuyện với người này chứ khơng nĩi chuyện với người đầu tiên nữa. 3. Bạn tức khắc dừng nĩi chuyện với người thứ nhất và bắt đầu nĩi chuyện ngay với người thứ ba. Khi bạn nĩi chuyện xong với người thứ ba, bạn muốn quay lại tiếp tục cuộc đối thoại với người thứ nhất tại điểm mà yêu cầu ngắt xuất hiện. Quá trình trên diễn ra tương tự với kỹ thuật ngắt trong hệ thống vi xử lý. Lúc này CPU đĩng vai trị của bạn. Người thứ nhất là chương trình chính đang được thực hiện. Người thứ ba là một yêu cầu ngắt bên ngồi. Đây là một thiết bị phần cứng bên ngồi yêu cầu CPU quan tâm đến nĩ. CPU phải xử lý yêu cầu ngắt này bằng cách nào đĩ. Cĩ nhiều cách xử lý ngắt, các cách được nêu ở ví dụ trên là các cách xử lý thơng dụng nhất. Ví dụ như ta cĩ một cảm biến báo cháy. Thơng thường khi khơng cĩ lửa thì cảm biến xuất ra số 1, lúc cĩ lửa thì cảm biến xuất số 0 báo cho vi xử lý kích hoạt chương trình báo động. Vi xử lý cĩ thể luơn luơn đọc trạng thái của cảm biến bằng lệnh IN từ cổng nối với cảm biến. Sau đĩ vi xử lý kiểm tra trạng thái cảm biến và gọi chương trình báo động khi trạng thái cảm biến là 0. Tuy vậy đây là một thao tác lặp đi lặp lại nhiều lần một cách khơng hiệu quả, vì phần lớn thời gian cảm biến khơng báo cháy. Một cách xử lý hiệu quả hơn là đưa tín hiệu của cảm biến vào chân yêu cầu ngắt của vi xử lý. Chỉ khi chân yêu cầu ngắt này được kích hoạt thì vi xử lý mới gọi chương trình báo động. [LQĐ – p.100] - Ngắt là cơ chế bất đồng bộ (asynchronous) với việc thực thi chương trình. Nó được dùng với mục đích là tránh tối đa hoặc loại bỏ hẳn cơ chế hỏi vòng để kiểm tra trạng thái thiết bị. Hình 1.25 μP I/O0 I/O1 I/On … Memory Bus INT0 INT1 INTn 17 Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý - Mỗi thiết bị I/O hay bộ điều khiển của nó được nối với một đường interrupt. - Khi I/O có yêu cầu trao đổi dữ liệu nó sẽ phát ra một tín hiệu báo cho μP. Tín hiệu đó được gọi là tín hiệu yêu cầu ngắt IRQ (interrupt request). Khi μP nhận được yêu cầu ngắt đó, nếu đồng ý trao đổi thông tin với I/O, nó sẽ trả lời với bộ điều khiển nhập/xuất bằng tín hiệu chấp nhận ngắt INTA (interrupt acknownledge) đồng thời ngừng chương trình đang làm và gọi chương trình phục vụ ngắt cho I/O. Sau khi phục vụ xong, nó quay về tiếp tục thực hiện chương trình đang làm tại nơi bị ngắt. - Khi có nhiều I/O yêu cầu ngắt đồng thời → cần có mạch điều khiển ưu tiên ngắt. - Lưu đồ hoạt động của ngắt: Thực thi lệnh Yêu cầu ngắt? Y N Chương trình phục vụ ngắt (ISR) Lệnh kế Hình 1.26 - Thủ tục interrupt về nguyên tắc tương tự với gọi chương trình con, ngoại trừ: 1. Interrupt được khởi động từ 1 tín hiệu bên trong hoặc bên ngoài thay vì từ những thực thi lệnh. 2. Địa chỉ của chương trình phục vụ interrupt được xác định bằng thủ tục hardware thay vì từ vùng địa chỉ của lệnh. (bảng vector ngắt được xác định trước của từng loại vi xử lý). 3. Khi đáp ứng 1 interrupt cần lưu tất cả các thông tin định nghĩa trạng thái hiện hành của hệ thống thay vì chỉ lưu trữ bộ đếm chương trình PC. Như vậy để thực hiện thao tác ngắt vi xử lý cần cĩ một phần cứng báo ngắt và một phần mềm gọi là chương trình phục vụ ngắt (interrupt service routines). Phần cứng báo ngắt để tạo tín hiệu điện thơng báo cho vi xử lý yêu cầu ngắt. Phần mềm phục vụ ngắt thực hiện thao tác cần thiết như là câu trả lời cho yêu cầu ngắt. c. DMA (Direct Memory Access) - Thông thường khi chương trình muốn chuyển một byte dữ liệu từ ngoại vi vào bộ nhớ, nó phải thực hiện thông qua μP gồm một thao tác nhập và sau đó là thao tác ghi bộ nhớ. Hoặc ngược lại, khi muốn đưa thông tin từ bộ nhớ ra ngoại vi, μP phải làm thao tác đọc bộ nhớ rồi xuất ra ngoại vi. Trong trường hợp này, chức năng của μP chỉ là chuyển dữ liệu mà không xử lý gì cả. Điều này lặp đi lặp lại nhiều lần sẽ làm lãng phí việc sử dụng μP vì chức năng chủ yếu của μP là xử lý dữ liệu. 18 Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý Hình 1.27 μP I/O0 I/On … Memory Bus HOLD DMACHLDA HRQ HACK DACK0 DACKn DRQ0 DRQn - DMA là cơ chế điều khiển cho phép truy xuất bộ nhớ trực tiếp, không thông qua μP. - Cơ chế DMA được thực hiện bởi một mạch phần cứng được gọi là bộ điều khiển DMA (DMAC - DMA Controller). - DMA giúp rút ngắn thời gian truy xuất giữa bộ nhớ và I/O. Cơ chế này rất tiện dụng cho các thiết bị ngoại vi có khối lượng thông tin trao đổi lớn (trao đổi một khối dữ liệu lớn trong một thời gian ngắn) ví dụ như card màn hình, đĩa cứng … trong máy tính. - Quá trình DMA bắt đầu khi có tín hiệu yêu cầu DMA (DRQ) từ thiết bị I/O đến DMAC. DMAC tiếp tục gởi tín hiệu yêu cầu μP nhường bus (HRQ) đến chân HOLD của μP để nó thực thi việc trao đổi dữ liệu trực tiếp giữa bộ nhớ và I/O. Khi μP đồng ý nhường bus, nó trả lời cho DMAC bằng tín hiệu chấp nhận nhường bus (HLDA) đồng thời tạm ngưng mọi hoạt động, tự tách ra khỏi hệ thống. Đến lượt DMAC gởi tín hiệu thông báo cho phép trao đổi dữ liệu theo kiểu DMA (DACK) đến thiết bị I/O. Khi DMAC chuyển hết dữ liệu, nó trả quyền điều khiển các bus lại cho μP, quá trình DMA kết thúc. - Trong thực tế, việc sử dụng cơ chế DMA khá phức tạp và qua nhiều công đoạn vì DMAC không thi hành bất kì lệnh nào, chương trình nào (không thực thi phần mềm) để chuyển dữ liệu mà nó thực hiện hoàn toàn bằng phần cứng nên cần phải có trước đầy đủ các thông tin về vị trí dữ liệu của I/O, vị trí bộ nhớ chứa dữ liệu và số lượng byte cần chuyển để μP nạp cho DMAC. Ngoài ra, DMAC còn phải có khả năng tạo ra các tín hiệu điều khiển cần thiết giống như các tín hiệu của μP. VI. VI XỬ LÝ VÀ VI ĐIỀU KHIỂN - Về cấu trúc phần cứng: + Vi xử lý: là một CPU đơn chip (như trong sơ đồ khối ở trên). + Vi điều khiển: gồm CPU và một số thành phần khác như bộ nhớ ROM, RAM, các port I/O và một số mạch chức năng như mạch định thời (timer), mạch điều khiển ngắt (interrupt controller), mạch giao tiếp nối tiếp (serial interface)… - Về ứng dụng: + Vi xử lý: thường dùng làm CPU trong các máy vi tính. + Vi điều khiển: thường dùng trong các thiết kế nhỏ, hướng điều khiển. - Đặc trưng về tập lệnh: + Vi xử lý: mạnh về các kiểu định địa chỉ, số lệnh nhiều. + Vi điều khiển: có thể thao tác với từng bit đơn (định hướng bit). 19 Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý CÂU HỎI VÀ BÀI TẬP CHƯƠNG 1 1.1. Hãy nêu các thành phần cơ bản trong một hệ vi xử lý? Chức năng của từng thành phần? 1.2. Vi xử lý là gì? Các thành phần cơ bản trong một chip vi xử lý? 1.3. Phân biệt bộ nhớ ROM và RAM? 1.4. Phân biệt bộ nhớ DRAM và SRAM? 1.5. Cấu trúc tiêu biểu của một port nhập/xuất? 1.6. So sánh các phương pháp điều khiển I/O? 1.7. Các thiết bị/linh kiện 3 trạng thái là gì? Tại sao chúng lại cần thiết trong các hệ thống dùng bus? 1.8. Cần bao nhiêu byte để làm thành một word (từ) 32 bit? 1.9. Có bao nhiêu vị trí bộ nhớ có thể được địùnh địa chỉ bởi một μP có 20 đường địa chỉ? 1.10. Nếu một chip bộ nhớ có kích thước là1024 x 4 bit thì phải cần bao nhiêu chip như vậy để tạo 2K (2048) byte bộ nhớ? 1.11. Nếu một chip bộ nhớ có kích thước là 256 x 1 bit thì phải cần bao nhiêu chip như vậy để tạo 1 KB bộ nhớ? 1.12. Cần phải có bao nhiêu đường địa chỉ trên một chip bộ nhớ có kích thước 2K x 8 bit? 1.13. Một chip nhớ 4 KB có địa chỉ bắt đầu là 2000H trong bảng địa chỉ bộ nhớ. Xác định địa chỉ cuối cùng của chip và số trang trong chip (giả sử chọn kích thước một trang là 256 byte)? 20 Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý 1.14. Trong bộ giải mã 4 sang 16 ở hình a, ngõ ra nào xuống mức thấp nếu các ngõ vào của bộ giải mã có giá trị như hình vẽ? 1.15. Trong hình b, hãy tìm ngõ ra nào xuống mức thấp nếu các giá trị vào (bao gồm các đường cho phép) của bộ giải mã 3 sang 8 (74LS138) là: A7 A6 A5 A4 A3 A2 A1 A0 1 1 1 1 0 1 1 1 0 1 0 4-to-16 decoder 74LS154 LSB MSB Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15 A B C D G1 G2 1 0 Hình a) A2 A5 A7 A6 A0 A4 3-to-8 decoder 74LS138 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B A1 A3 Hình b) 21

Các file đính kèm theo tài liệu này:

  • pdfCh1.pdf
Tài liệu liên quan