Khi bộ vi xử lý nhận ñược tín hiệu ngắt, nó thường tạm ngưng tất cả các hoạt ñộng khác và kích hoạt một chương trình con ñang có trong bộ nhớ gọi là chương trình xử lý ngắt (Interrupt [r]
(1)Tài liệu môn học: Ghép nối ñiều khiển thiết bị ngoại vi
CHƯƠNG 4: GHÉP NỐI ðIỀU KHIỂN NGẮT 4.1 Khái niệm phân loại ngắt
4.1.1 Khái niệm
Mỗi thiết bị phần cứng hay chương trình cần đến giúp đỡ CPU, gửi ñi tín hiệu lệnh gọi ngắt (Interrupt Request – IRQ) ñến vi xử lý ñịnh cơng việc cụ thể mà cần CPU thực Khi vi xử lý nhận ñược tín hiệu ngắt, thường tạm ngưng tất hoạt động khác kích hoạt chương trình có nhớ gọi chương trình xử lý ngắt (Interrupt Service Routine _ ISR) tương ứng với số liệu ngắt cụ thể Sau chương trình xử lý ngắt làm xong nhiệm vụ, hoạt ñộng máy tính tiếp tục lại từ nơi bị tạm dừng lúc xảy ngắt
4.1.2 Phân loại ngắt
Có ba loại ngắt chính, ngắt ñược tạo mạch ñiện máy tính nhằm đáp lại kiện nhấn phím bàn phím Các ngắt ñược ñiều khiển ngắt 8259A quản lý 8259A ấn ñịnh mức ñộ ưu tiên cho ngắt gửi ñến CPU Thứ hai ngắt CPU tạo gặp phải kết bất thường thực chương trình chia cho chẳng hạn … Cuối ngắt chương trình tạo nhằm gọi chương trình xa ñang nằm ROM RAM, ngắt gọi ngắt mềm chúng thường phận chương trình phục vụ ROM-BIOS DOS
Ngoài ba loại ngắt cịn có loại ngắt đặc biệt ngắt khơng bị che NMI địi hỏi CPU phục vụ có yêu cầu Loại ngắt thường ñược dùng ñể báo hiệu cố sụt ñiệp áp hay lỗi nhớ Như NMI mức ngắt có độ ưu tiên cao
Các ngắt PC chia thành nhóm sau : - Các ngắt vi xử lý :
Thường gọi ngắt logic ñược thiết kế sẵn VXL Bốn số ngắt (0,1,3,4 ) VXL tạo ra, ngắt (NMI ) kích hoạt có tín hiệu tạo thiết bị
1.Các ngắt cứng
Ðược thiết kế sẵn phần cứng của PC, tám ngắt số ngắt (2,8,9,từ Bh ñến Fh) ñược gắn chết vào VXL vào bảng mạch hệ thống Tất ngắt cứng ñều 8259A ñiều khiển
(2)Tài liệu môn học: Ghép nối ñiều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 56
Những ngắt phần chương trình ROM -BIOS, số hiệu dành cho ngắt ROM- BIOS từ 10h ñến 1C h 48h
Ngoài cịn có ngắt DOS ngắt BASIC phục vụ hệ điều hành DOS chương trình BASIC
3 Các ngắt ñịa chỉ
Bảng 4.1 : Bảng chức ngắt máy vi tính INT (Hex) IRQ Common Uses
00 Exception Handlers Chia số cho 01 Exception Handlers Thực bước
02 Non-Maskable IRQ Non-Maskable IRQ (Các lỗi chẵn lẻ)
03 Exception Handlers ðiểm dừng chương trình người sử dụng đặt 04 Exception Handlers Vượt nội dung ghi hay nhớ
05 - 07 Exception Handlers -
08 Hardware IRQ0 Bộ thời gian hệ thống 09 Hardware IRQ1 Bàn phím
0A Hardware IRQ2 Redirected
0B Hardware IRQ3 Cổng nối tiếp COM2/COM4 0C Hardware IRQ4 Cổng nối tiếp COM1/COM3 0D Hardware IRQ5 Reserved/Sound Card
0E Hardware IRQ6 ðiểu khiển ñĩa mềm 0F Hardware IRQ7 Cổng song song
10 - 6F Software Interrupts Ngắt ROM-BIOS hay DOS 70 Hardware IRQ8 ðồng hồ thời gian thực 71 Hardware IRQ9 Redirected IRQ2 72 Hardware IRQ10 Reserved
73 Hardware IRQ11 Reserved 74 Hardware IRQ12 PS/2 Mouse
75 Hardware IRQ13 Math's Co-Processor 76 Hardware IRQ14 Hard Disk Drive 77 Hardware IRQ15 Reserved
78 - FF Software Interrupts -
(3)Tài liệu môn học: Ghép nối ñiều khiển thiết bị ngoại vi
BIOS dùng khởi ñộng hệ thống tạo ký tự ñồ thị Các số hiệu dành cho ngắt từ 1D hex ñến 1F hex
4.2 Xử lý ngắt nhiều thiết bị ngoại vi
Thông thường MVT cần xử lý ngắt nhiều TBNV, cần giải vấn đề sau:
- Cho phép cấm ngắt cho yêu cầu ngắt TBNV - Ghi nhận xếp nhiều yêu cầu ngắt theo thứ tụ ưu tiên - Xác ñịnh nguồn ngắt TBNV gây
- Tạo vector ngắt, tức địa nhớ lệnh chương trình phục vụ ngắt
4.2.1 Cho phép hoặc cấm ngắt
1. Cho phép hoặc cấm ngắt bằng lệnh
- Lệnh cấm ngắt DI (Disable interrupt) cho phép ngắt EI (Enable Interrupt) 8085 - Ghi vào ghi cờ nội dung bit IF (Interrupt Flag) giá trị:
IF =1 : cho phép ngắt IF=0 : cấm ngắt
2. Cho phép hoặc cấm ngắt bằng mạch phần cứng
Với lối vào NMI yêu cầu ngắt TBNV, ta dùng mạch lật ñể ñiều khiển cho phép cấm ngắt
4.2.2 Sắp xếp ưu tiên ngắt
Theo ba phương pháp sau:
1. Phương pháp hỏi vịng (polling):
Dùng chương trình, ñọc theo thứ tự ưu tiên bit trạng thái TBNV kiểm tra chúng Nếu bit xác lập lên 1, tức TBNV tương ứng có yêu cầu ngắt, VXL chuyển sang chương trình ngắt phục vụ TBNV Sau lại đọc kiểm tra bit trạng thái TBNV có mức ưu tiên thấp
Phương pháp ñơn giản thiết bị thời gian hỏi vòng
2. Phương pháp ngắt cứng
ðể tránh thời gian hỏi vòng, người ta nối bit trạng thái TBNV với mạch OR, lối cổng OR nối vào chân INTR VXL Khi TBNV có yêu cầu ngắt, VXL nhận biết qua INTR tiến hành hỏi vịng
Phương pháp giảm thời gian kiểm tra trạng thái chưa có yêu cầu ngắt nào, khơng thay đổi thứ tự ưu tiên
3. Phương pháp xử lý ưu tiên bằng mạch cứng
Có hai loại ưu tiên theo vị trí ưu tiên tuỳ theo mạch so sánh
Ưu tiên theo vị trí đặt gần VXL
Sơ đồ mạch ví dụ hình 4.1, với hoạt động sau:
(4)Tài liệu mơn học: Ghép nối điều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 58
- Nếu BGN ghi nhận ngắt, tín hiệu INTA bị chặn khơng truyền tới BGN sau Do đó, VXL khơng nhận tín hiệu INTA, nghĩa có u cầu ngắt xảy
Hình 4.1: Sơ đồ ưu tiên ngắt theo vị trí vector ngắt
Phương pháp đơn giản thứ tự ưu tiên khơng thay ñổi ñược có BGN bị hỏng, mạch ln báo có u cầu ngắt
Ưu tiên ngắt dùng mạch so sánh
Dùng vi mạch Intel 8214, 8259 thay đổi ưu tiên ngắt chương trình
4.2.3 Xác định nguồn gây ngắt
Có phương pháp xác định TBNV gây ngắt để chuyển sang chương trình phục vụ ngắt tưng ứng cho TBNV đó:
- Phương pháp hỏi vịng: VXL đọc kiểm tra trạng thái TBNV Nếu kết 1, trạng thái TBNV sẵn sàng nguồn ngắt TBNV - Phương pháp đọc vector ngắt tạo tín hiệu ngắt INTA ưu tiên ngắt
theo vị trí
- Phương pháp đọc vào ghi ưu tiên PR sơ ñồ dùng mạch so sánh
4.2.4 Tạo vector ngắt
Vector ngắt chứa địa đầu chương trình phục vụ ngắt Các vector ngắt MVT – PC trình bày bảng 4.1 Ta tạo vector ngắt cổng AND colector hở hình 4.1 (b)
Phương pháp thay ñổi ñược mức ưu tiên cách tìm nguồn ngắt, mạch phức tạp đắt tiền
VXL
INTR
INTA
INTA DI0÷DIn
BGN1 BGN2 BGN3
INTA
DI0÷DIn
0
(5)Tài liệu môn học: Ghép nối ñiều khiển thiết bị ngoại vi
CHƯƠNG 5: GHÉP NỐI VÀO RA ðIỀU KHIỂN BẰNG DMA 5.1 Khái niệm DMA
5.1.1 Khái niệm DMA
Phương pháp trao ñổi liệu theo chương trình chậm do: - VXL phải giải mã thực lệnh
- Trao ñổi liệu byte thông qua chứa AX VXL
Kỹ thuật vào DMA (direct memory access) phương pháp truy cập trực tiếp tới nhớ I/O mà khơng có tham gia CPU Phương pháp trao ñổi liệu nhớ thiết bị ngoại vi với tốc ñộ cao bị hạn chế tốc ñộ nhớ ñiều khiển DMA Tốc ñộ truyền DMA đạt tới 10 ÷ 12 Kbyte/s với nhớ RAM có tốc độ cao DMA ứng dụng nhiều mục đích thơng thường ñược dùng trình "refresh" DRAM, xuất hình, ñọc ghi ñĩa, truyền liệu vùng nhớ với tốc ñộ cao
5.1.2 Hoạt ñộng DMAC (DMA Controller) cơ bản
Hai tín hiệu ñể yêu cầu xác nhận hệ thống VXL HOLD ñược sử dụng ñể yêu cầu DMA HLDA đầu xác nhận DMA Khi tín hiệu HOLD hoạt ñộng (HOLD = 1), DMA ñược yêu cầu Bộ VXL trả lời cách kích hoạt tín hiệu HLDA, xác nhận yêu cầu, ñồng thời thả công việc thời bus liệu ñịa chỉ, ñiều khiển ñược ñặt trạng thái trở kháng cao Trạng thái cho phép thiết bị I/O bên VXL khác nắm quyền ñiều khiển bus hệ thống ñể truy cập trực tiếp nhớ Tín hiệu HOLD có mức ưu tiên cao INTR đầu vào NMI (ngắt khơng che được) sau RESET Tín hiệu HOLD ln có hiệu lực thời ñiểm suốt trình thực lệnh khác VXL Chú ý từ lúc tín hiệu HOLD thay đổi cho ñến tín hiệu HLDA thay ñổi ñã trải qua số chu kỳ clock
DMA thường ñược thực thiết bị I/O nhớ Quá trình đọc DMA q trình đưa liệu từ nhớ thiết bị I/O, ngược lại trình ghi DMA q trình đưa liệu từ I/O tới nhớ Trong hai chu trình thiết bị I/O nhớ ñược ñiều khiển ñồng thời dẫn đến cần có tín hiệu điều khiển khác Ðể điều khiển q trình đọc DMA ta cần hai tín hiệu hoạt động MEMR (đọc nhớ ) IOW (ghi I/O) Ðể điều khiển q trình ghi ta có hai tín hiệu MEMW (ghi bộ nhớ) IOR (ñọc I/O) Bộ ñiều khiển DMA cung cấp địa nhớ tín hiệu chọn thiết bị I/O cho 8088 suốt trình DMA Do tốc ñộ truyền DMA phụ thuộc vào tốc ñộ nhớ tốc ñộ ñiều khiển DMA nên trường hợp tốc ñộ ñiều khiển DMA nhỏ so với nhớ điều khiển DMA làm giảm tốc ñộ chung hệ thống
(6)Tài liệu môn học: Ghép nối ñiều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 60
(7)Tài liệu mơn học: Ghép nối điều khiển thiết bị ngoại vi
5.1.3 Các chếñộ trao ñổi dữ liệu DMA
+ Trao ñổi liệu theo khối: trao ñổi nhiều lời liệu, ñếm từ giá trị n ñến + Trao ñổi lấy chu kỳ phần: DMA phát data bus rỗi, thực trao ñổi liệu DMA
DMAC phải có:
- Thiết bị phát đường dây rỗi
- Thiết bị bảo ñảm VXL bị treo DMAC khơng sử dụng đường dây, khiến VXL chờ thời gian Twtới DMAC thực trao ñổi xong phần trao ñổi liệu tiếp tục nốt phần lấy chu kỳ sau kết thúc trao ñổi từ liệu DMA
(8)Tài liệu mơn học: Ghép nối điều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 62
5.2 Bộ ñiều khiển DMA – 8237A
Vi mạch 8237A ñiều khiển DMA cung cấp địa nhớ tín hiệu điều khiển suốt trình DMA truyền số liệu với tốc ñộ cao nhớ thiết bị vào 8237 vi mạch có kênh tương thích với VXL 8088, kênh mở rộng thêm nhiều kênh khác ñối với hệ thống nhỏ kênh qúa đủ 8237 có khả thực truyền DMA lên tới 1.6Mbyte/s Mỗi kênh có khả đánh địa tới 64 Kbyte nhớ truyền 64 Kbyte theo chương trình
5.2.1 Sơđồ khối chức năng khối của vi mạch 8237A
1 Sơñồ khối
(9)Tài liệu môn học: Ghép nối ñiều khiển thiết bị ngoại vi
Hình 5.2: Sơ đồ khối chi tiết 8237 - CLK : Ðược nối với tín hiệu đồng hồ hệ thống
- CS :Tín hiệu chọn mạch, thơng thường nối với đầu giải mã địa - RESET : Xố ghi tạm, ghi trạng thái , ghi lệnh,thanh ghi yêu cầu - READY : tạo trạng thái chờ cho 8237A-5 nhớ I/O có tốc độ thấp - HLDA (hold Acknowledge): tín hiệu thơng báo CPU ñã thả bus ñịa chỉ, liệu, ñiều khiển
- DREQ0 - DREQ3 (DMA request) : Ðầu vào yêu cầu truyền DMA cho kênh
8237A-5, cực tính tín hiệu vào lập trình
- DB0 - DB7 (data bus ): Chân nối với bus liệu VXL 8088 ñược sử dụng
q trình trao đổi liệu
- IOR IOW : ñiều khiển ñọc ghi I/O
- EOP (end of process ) : tín hiệu hai chiều báo kết thúc DMA cuối chu kỳ DMA - A0- A3 : Chọn ghi nội cần lập trình phần địa truyền DMA
trình DMA
(10)Tài liệu mơn học: Ghép nối điều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 64
- HRQ (hold request ) : nối với HOLD VXL tạo yêu cầu DMA
- DACK0- DACK3 : (DMA channel acknowledge ) Ðầu chấp nhận DMA ( lập
trình được) Thường dùng ñể chọn thiết bị cần ñiều khiển DMA
- AEN : Cho phép chốt ñịa nối với DB0 - DB7 đồng thời khơng cho phép ñệm
trong hệ thống ñược nối với VXL
- ADSTB : (address strobe ) : hoạt ñộng ALE sử dụng ñiều khiển DMA chốt địa A8- A15 suốt q trình truyền DMA
-MEMW ,MEMR: Ðầu ñiều khiển nhớ ñọc, ghi liệu chu kỳ DMA tương ứng
2 Chức năng khối ghi
* Các khối chức vi mạch : - Khối ñệm bus liệu
Ðây ñệm bit ghép nối 8237 với bus hệ thống
(D0- D7) : Các ñường bus liệu ba trạng thái, hai chiều Khi 8237 ñang ñược lập trình
ñiều khiển 8088 CPU, bit liệu ghi ñịa DMA, ghi chế ñộ (Mode set Register ) ñược gửi ñến từ bus liệu Khi 8088 CPU ñọc ghi ñịa DMA, ghi ñếm (terminal count Register), ghi trạng thái liệu ñược truyền ñến 8088 thông qua bus liệu Trong suốt chu kỳ DMA (khi 8237 ñang nắm quyền ñiều khiển bus liệu), 8237 gửi bit quan trọng ñịa nhớ (từ số ghi ñịa DMA) tới ñiều khiển bus Các bit ñịa ñược truyền bắt ñầu chu kỳ DMA, sau ñó bus liệu giải phóng để thực q trình trao đổi liệu với nhớ suốt trình DMA
* Các kênh DMA (DMA channel ):
Mỗi kênh (CH0 - CH3) bao gồm hai ghi 16 bit :
Thanh ghi ñịa DMA ghi ñếm (Terminal Count Register )
(11)Tài liệu mơn học: Ghép nối điều khiển thiết bị ngoại vi * Khối ñọc ghi logic (Read/ Write logic )
Khi 8088 CPU ñọc ghi số ghi 8237, khối logic ñiều khiển ñọc ghi nhận lệnh ñọc I/O (IOR) I/O Write (IOW) thơng báo cho vi mạch điều khiển bus 8288 giải mã bit ñịa thấp (A0- A3 ) ñồng thời ghi nội dung bus
dữ liệu vào ghi ñịa (nếu tín hiệu IOW) ghi nội dung ghi địa lên bus liệu (nếu tín hiệu IOR ) Trong suốt trình DMA khối logic ñiều khiển ñọc ghi thực lệnh ñọc I/O ghi nhớ ( chu kỳ DMA ghi) tín hiệu ghi I/O ñọc nhớ (chu kỳ DMA ñọc) Cần lưu ý suốt trình ñiều khiển DMA thiết bị I/O khơng hoạt động chế ñộ phải ñược ñặt trạng thái "cấm " sử dụng tín hiệu AEN
* Các ghi nội:
- Thanh ghi ñịa thời (CAR ): Lưu 16 bít địa nhớ suốt q trình truyền DMA Mỗi kênh có ghi CAR tăng giảm tuỳ thuộc vào cách lập trình
- Thanh ghi đếm từ thời (CWCR ): ñiều khiển số byte ñược truyền trình DMA Số ghi ghi nhỏ số byte ñã ñược truyền ñơn vị
- Thanh ghi ñịa sở từ sở (BWCR): sử dụng chọn chế ñộ tự động kích hoạt cho kênh ,trong q trình ghi BWCR ñược dùng ñể gọi lại ghi CAR CWCR sau DMA kết thúc
- Thanh ghi lệnh (Command Register ): lập trình cho hoạt ñộng 8237
(12)Tài liệu mơn học: Ghép nối điều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 66
- Thanh ghi yêu cầu (Request Register): dùng yêu cầu truyền DMA phần mềm
- Thanh ghi che set/reset (Mask register set/reset mode): xoá ,thiết lập việc cấm kênh
(13)Tài liệu mơn học: Ghép nối điều khiển thiết bị ngoại vi
- Thanh ghi trạng thái (Status register -SR ): xác ñịnh trạng thái kênh DMA
Bảng 5.1: Giới thiệu ñịa lệnh ñọc ghi cho ghi A3 A2 A1 A0 IOR IOW Hoạt ñộng
1 0 0 ðọc ghi trạng thái 0 Ghi ghi lệnh 0 1 Ghi ghi yêu cầu 1 Ghi ghi mặt nạ ñơn 1 1 Ghi ghi chế ñộ 1 0 Xoá flip-flop trỏ byte 1 1 ðọc ghi tạm thời 1 1 Xoá chủ
1 1 Xoá ghi mặt nạ
(14)Tài liệu mơn học: Ghép nối điều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 68
Kê
nh Thanh ghi Hoạt ñộng CS IOR IOW A3 A2 A1 A0 Int FF Data Bus ñịa sở Ghi 0 0 0 A7÷A0
và hành 0 0 A8÷A15
địa ðọc 0 0 0 A7÷A0
hành 0 0 0 A8÷A15
ðếm lời sở Ghi 0 0 W7÷W0
và hành 0 0 1 W15÷W8
ðếm lời ðọc 0 0 W7÷W0
hành 0 0 1 W15÷W8
1 địa sở Ghi 0 0 A7÷A0
và hành 0 1 A8÷A15
địa ðọc 0 0 0 A7÷A0
hành 0 0 1 A8÷A15
ðếm lời sở Ghi 0 1 W7÷W0
và hành 0 1 W15÷W8
ðếm lời ðọc 0 0 1 W7÷W0
hành 0 0 1 W15÷W8
2 ñịa sở Ghi 0 0 A7÷A0
và hành 0 0 A8÷A15
ñịa ðọc 0 1 0 A7÷A0
hành 0 1 0 A8÷A15
ðếm lời sở Ghi 0 1 W7÷W0
và hành 0 1 W15÷W8
ðếm lời ðọc 0 1 W7÷W0
hành 0 1 1 W15÷W8
3 địa sở Ghi 0 1 0 A7÷A0
và hành 0 1 A8÷A15
địa ðọc 0 1 0 A7÷A0
hành 0 1 1 A8÷A15
ðếm lời sở Ghi 0 1 W7÷W0
và hành 0 1 1 W15÷W8
ðếm lời ðọc 0 1 1 W7÷W0
(15)Tài liệu mơn học: Ghép nối ñiều khiển thiết bị ngoại vi
5.2.2 Ghép nối với 8237A-5 hệ vi xử lý 8088
Vi mạch 8237 ñược sử dụng máy vi tính IBM PC để thực q trình DMA trao đổi liệu trực tiếp thiết bị ngồi máy vi tính
Tín hiệu AEN ADSTB 8237A-5 điều khiển ñầu chốt 82C82 Trong suốt trình hoạt ñộng bình thường 8088 (AEN=0 ) vi mạch chốt ñịa cung cấp bit ñịa A15- A8 Ðịa bus A7- A0 ñược cung cấp trực tiếp 8237A-5 chứa
một phần ñịa truyền DMA Tín hiệu điều khiển MEMR ,MEMW ,IOR ,IOW ñược tạo ñiều khiển DMA Giả thiết ñịa ñầu cho DMAC 0070h
Hình 5.3: Sơ ñồ ghép nối 8237 với 8088
1. Các trạng thái hoạt ñộng
Vi mạch 8237A có trạng thái sau:
- Trạng thái nghỉ SI: trạng thái trở kháng cao, khơng chọn mạch (CS=1)
- Trạng thái chờ SO: Trạng thái đầu q trình trao đổi DMA 8257 nhận tín hiệu DREQ, xử lý gởi yêu cầu Hold cho VXL chưa nhận tín hiệu xác nhận theo HLDA Khi nhận ñược xác nhận, DMAC bắt ñầu q trình trao đổi liệu
- Trạng thái phát ñịa nguồn số liệu S1:
DMAC phát ñịa nguồn số liệu (cửa I/O Memory) - Trạng thái phát lệnh ñọc cho nguồn số liệu S2:
DMAC phát lệnh ñọc số liệu nguồn số liệu - Trạng thái chờ SW:
(16)Tài liệu mơn học: Ghép nối điều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 70
- Trạng thái phát địa đích số liệu S3:
DMAC phát ñịa nơi gởi số liệu (Memory cửa I/O) - Trạng thái phát lệnh ghi số liệu vào đích S4:
DMAC phát lệnh ghi số liệu từ ghi ñệm cửa vào-ra
2. Các chếñộ
Tuỳ nội dung ghi chế độ lúc khởi phát, DMAC có chế ñộ sau: - Chế ñộ chuyển từ ñơn (Single Transfer Mode)
- Chế ñộ chuyển nhiều từ (Block Transfer Mode)
- Chế ñộ chuyển theo nhu cầu (Demand Transfer Mode) với số lượng từ tuỳ theo người sử dụng ñiều khiển
- Chế ñộ ghép tầng (Cascade Mode) chế ñộ chuyển liên tiếp từ, ñiều khiển DMAC mắc nối tầng
3. Các chếñộưu tiên của yêu cầu DMAC
Cũng giống xử lý ngắt, DAMC có hai chế ñộ ưu tiên:
- Chế ñộ ưu tiên cố ñịnh: kênh có mức ưu tiên cao nhất, kênh có mức ưu tiên thấp
- Chế ñộ ưu tiên vòng: kênh vừa ñược phục vụ có mức ưu tiên thấp Khi lập chế ñộ, kênh có mức ưu tiên cao
4. Khởi phát đảm bảo chương trình phục vụ
Trước đưa DMAC vào hoạt động, chương trình phải khởi phát Q trình khởi phát gồm giai đoạn:
- Xố cứng tín hiệu Reset, làm ghi
- Ghi lệnh chương trình khởi phát: VXL ghi vào ghi chức ñịa ban ñầu, số từ trao ñổi, số kênh, che chắn yêu cầu kênh khơng cần hoạt động, chế độ trao đổi, chiều tăng hay giảm ñịa chỉ… Khi ghi liệu vào ghi 16 bit, phải ghi lần lựơt byte theo thứ tự byte thấp trước, byte cao sau
- Sau khởi phát, DMAC hồn tồn tự động làm việc Kết thúc chương trình khởi phát này, ln phải có lệnh ghi bit D4=1 vào ghi chế
ñộ ñể cho phép tự khởi ñộng
5. Kết thúc trao đổi DMA
Có hai cách kết thúc trao ñổi liệu:
(17)Tài liệu mơn học: Ghép nối điều khiển thiết bị ngoại vi
- Kết thúc cữơng bức: tín hiệu từ ngồi vào (do mạch TBNV người ñiều hành can thiếp cách ấn nút lệnh) để kết thúc q trình trao đổi DMA
6. Kiểm tra sự kết thúc ở kênh mong muốn
Trong DMAC hoạt ñộng, ghi trạng thái ln cập nhật, tức ln ghi trạng thái thời DMAC Khi kết thúc, VXL đọc nội dung ghi trạng thái ñể biết kênh DMA ñã ñạt ñến số ñếm kết thúc TC, số lời ñã trao ñổi ( trường hợp kết thúc cưỡng EOP từ vào)
kênh vào ñang chờ phục vụ
7. ðặc ñiểm về hoạt động của 8237
8237 có đặc điểm sau:
- Cho phép cấm riêng biệt kênh DMA số kênh - Trao ñổi liệu DMA trực tiếp hai vùng nhớ
- Cho phép nối tầng DMAC ñể tăng số kênh DMA - Có thể tạo yêu cầu DMA chương trình
- Với 8237-2, tốc độ trao đổi DMA đạt tới 1,6Mbps Do ngồi phục vụ trao ñổi liệu MVT hình, đĩa, DMA cịn dùng mạng MVT
5.2.3 Lập trình cho 8237A
a Chương trình truyền liệu nhớ-bộ nhớ DMA
Ví dụ cần chuyển khối nhớ có địa 1000h-13FFh tới khối nhớ 1400h-17FFh thơng qua DMA Chương trình gồm bước sau:
- Xoá flip-flop trỏ byte
- Lập trình cho kênh 1: ðưa địa nguồn đích vào kênh - ðặt giá trị ñếm số byte cần chuyển -1
- Lập trình thơng qua ghi chế độ cho kênh - Lập trình cho ghi lệnh
- Cho phép kênh ñưa yêu cầu DMA
- Kiểm tra bit hết liệu Nếu ñã xong kết thúc DMA Xác định địa ghi:
Addr_chanel0 = $70; Addr_chanel1 =$72;
Addr_CT1 =$73 ;// ðịa chỉ bộñếm kênh
Addr_SR =$78 ;// ðịa chỉ ghi trạng thái
Addr_CR =$78 ;// ñịa chỉ ghi ñiều khiển
Addr_MR =$7B ; //ñịa chỉ ghi chếñộ
Addr_MKR = $7F;// ñịa chỉ ghi cấm
Addr_RR = $79 ; //ñịa chỉ ghi yêu cầu
(18)Tài liệu môn học: Ghép nối ñiều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 72
port[addr_pFF]=$00;// xoá trỏ FF về
// ðặt ñịa chỉ nguồn vào kênh port[addr_chanel0] =$00; port[addr_chanel0] =$10; // ðặt địa chỉđích vào kênh
port[addr_pFF]=$01;// xoá trỏ FF về
port[addr_chanel1] =$00; port[addr_chanel1] =$14;
//Chỉñịnh số byte cần chuyển 4000
port[addr_pFF]=$01;// xoá trỏ FF về
port[addr_CT1] =$00; port[addr_CT1] =$40;
// ðặt chếñộ: kênh ñọc 1011 1000b= B8h ; kênh ghi: 1011 0101=B5h
port[addr_pFF]=$01;// xoá trỏ FF về
port[addr_MR]=$B8; port[addr_MR]=$B5;
// Lập trình ghi lệnh cho phép truyền M-M= 01h
Port[addr_CR]=$01;
// Bỏ mặt nạ che chắn kênh = 0000 1110 b=0Eh
port[addr_MKR]= $0E;
//Yêu cầu DMAC = 0000 0100 b=04h
port[addr_RR] = $04;
//Kiểm tra trạng thái kết thúc ñếm: kênh ñã truyền hết dữ liệu (D0=1) =01h Repeat
Var1=port[addr_SR]; Until ((var1 and $01)=$01); //kết thúc truyền
Return;
(19)Tài liệu mơn học: Ghép nối điều khiển thiết bị ngoại vi
CHƯƠNG 6: GHÉP NỐI TƯƠNG TỰ-SỐ VÀ SỐ-TƯƠNG TỰ Ðể điều khiển máy móc nhà máy, thiết bị y tế cần quan tâm ñến ảnh hưởng mơi trường bên ngồi áp suất, nhiệt độ Thường có số bước để nhận tín hiệu ñiện biểu diễn cho yếu tố ñó biến ñổi từ dạng tương tự sang dạng số ñể máy tính xử lý Hình 6.1 biểu diễn sơ ñồ ñơn giản hệ thống ñiều khiển tự động dùng máy vi tính
Hình 6.1: Sơ ñồ cấu trúc hệ thống ñiều khiển tự ñộng dùng máy vi tính
ðầu tiên cảm biến (CB) dùng ñể biến ñổi giá trị vật lý nhiệt ñộ, áp suất sang
một ñiện áp hay dòng tương ứng Sau cảm biến thường khuếch ñại (Kð) lọc Khâu ñược thực số mạch khuếch đại thuật tốn Sau đó, tín hiệu tương tự chuyển sang dạng số biến ñổi tương tự-số (Analog-Digital Converter-ADC), máy vi tính nhận, xử lý, lưu trữ, so sánh với tín hiệu đặt, tạo tín hiệu điều khiển (ðK) tương ứng Vì máy vi tính làm việc tín hiệu số (logic
và 1) nên cần có chuyển đổi số-tương tự (Digital-Analog Converter-DAC) để tạo tín hiệu điều khiển dạng tương tự Tiếp theo khâu khuếch ñại (Kð) lệch áp để tạo tín
hiệu phù hợp cung cấp cho cơ cấu chấp hành (CCCH) hệ thống thực
6.1 Giới thiệu số mạch khuếch ñại thuật toán
Khuếch ñại thuật toán số linh kiện ñiện tử thường gặp kỹ thuật tương tự, kỹ thuật ño lường ñiều khiển công nghiệp, khuếch ñại thuật tốn có mặt nhiều thiết bị hệ thống Khả sử dụng khuếch ñại thuật toán vạn năng, chúng ñược áp dụng nhiều lĩnh vực khuếch ñại chiều, khuếch ñại xoay chiều, lọc tích cực, dao động, biến đổi trở kháng, vi phân, tích phân
6.1.1 Các tham số cơ bản của mạch khuếch đại thuật tốn
CCCH Hệ thống thực
CB Kð
ADC
DAC Kð
ðK Setpoint
(20)Tài liệu mơn học: Ghép nối điều khiển thiết bị ngoại vi
Giảng viên: Nguyễn Văn Minh Trí 74
Hình 6.2: Sơ đồ khuếch đại thuật tốn
Ud hiệu điện áp vào
UP, IP điện áp vào dịng điện vào cửa thuận
UN , IN ñiện áp vào dịng điện vào cửa đảo
Ur , Ir điện áp dịng điện
Bộ khuếch đại thuật tốn khuếch đại hiệu ñiện áp Ud = UP - UN với hệ số khuếch ñại
0
0 >
K Do điện áp ra:
( p N)
d
r KU K U U
U = 0 = 0 −
1 Hệ số khuếch đại hiệu K0
Khi khơng tải xác định theo biểu thức sau
N p r d r U U U U U K − = =
2 Hệ số khuếch ñại ñồng pha KCM
Nếu ñặt vào cửa thuận cửa ñảo khuếch đại thuật tốn điện áp nhau, nghĩa là:
UP = UN = UCM =0
thì Ud = Gọi UCM điện áp vào ñồng pha Lý tưởng ta có Ur=0 Tuy nhiên, thực tế
khơng phải Do điện áp điện áp vào đồng pha có quan hệ tỷ lệ hệ số khuếch ñại ñồng pha KCM :
CM r CM U U K ∆ ∆ =