- 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.
21 trang |
Chia sẻ: thienmai908 | Lượt xem: 1177 | Lượt tải: 0
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:
- Ch1.pdf