1. Trang chủ
  2. » Công Nghệ Thông Tin

Đo lường và điều khiển bằng máy tính .chương 6

24 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 269,53 KB

Nội dung

cổng song song dùng để giao tiếp máy tính với đối tượng bên ngoài nhờ các đặc điểm: lập trình đon giản dể kết nối tốc độ nhanh khuyết điểm của cổng song song là khoảng cách ngắn do tính chống nhiễu kém.theo tiêu chuẩn IEEE 1284 năm 1994 có 5 chế độ hoạt đông cho công song song.

Chương GIAO TIẾP QUA CỔNG SONG SONG Cổng song song thường dùng để giao tiếp máy vi tính với đối tượng bên nhờ đặc điểm: - Lập trình đơn giản, dễ kết nối - Tốc độ nhanh Khuyết điểm cổng song song khoảng cách ngắn tính chống nhiễu Theo tiêu chuẩn IEEE 1284 năm 1994 có chế độ hoạt động cho cổng song song - SPP :cổng song song chuẩn có mode là: + Compatibility: xuất bit + Nibble: nhập bit + Byte: cổng hai chiều - EPP: cổng song song tăng cường (enhanced parallel port) - ECP: cổng mở rộng khả (extended capability port) Tùy loại mainboard hỗ trợ mode hay vài mode Cổng SPP truyền liệu song song bit từ máy tính với vận tốc 50 Kbytes/sec đến 150 Kbytes/sec Khi muốn nhập liệu vào máy tính dùng mode Nibble truyền bit hay mode Byte truyền bit Cổng EPP ECP dùng thêm phần cứng hỗ trợ nên vận tốc truyền nhanh hơn, đến Mbytes/sec, thu phát song song bit Thay đổi chế độ cổng song song cách vào BIOS SETUP máy tính khởi động máy CHƯƠNG 6: GIAO TIẾP QUA CỔNG SONG SONG Trang 6.1 CỔNG SPP Cổng song song có đầu nối 25 chân thường dùng để kết nối với máy in đầu nối Centronics 34 chân Bảng 6.1 cho sơ đồ chân ý nghóa chân cổng SPP dùng với máy in, dấu “/” có nghóa tích cực thấp Ví dụ, chân 15 /Error hướng vào, chân xuống mức có lỗi Cột Đảo ghi chữ Có tức tín hiệu đảo mức, ví dụ chân 17 đưa mức logic ứng với chân vào ghi điều khiển chân 17 xuất mức Bảng 6.1: Sơ đồ chân đầu nối phía máy tính (cổng SPP) phía máy in Chân Chân D – 25 Centronics Tín hiệu SPP Hướng Thanh ghi Đảo 1 /Strobe Vào/Ra Điều khiển Có 2 Data Ra Data 3 Data Ra Data 4 Data Ra Data 5 Data Ra Data 6 Data Ra Data 7 Data Ra Data 8 Data Ra Data 9 Data Ra Data 10 10 /Ack Vào Trạng thái 11 11 Busy Vào Trạng thái Có 12 12 Paper Out Vào Trạng thái 13 13 Select Vào Trạng thái 14 14 15 32 /Error 16 31 /Init 17 36 18 - 25 19 - 30 /Auto-Linefeed Vào/Ra Điều khiển Có Vào Trạng thái Vào/Ra Điều khiển /Select Printer Vào/Ra Điều khiển Có Mass Ngõ cổng song song tương thích với cổng TTL, dòng cấp thu khoảng vài mA đến 16mA tùy loại kết cấu phần cứng (công nghệ ASIC) Giao tiếp cổng song song với máy in thường thực theo H.6.1 Thành phố Hồ Chí Minh, tháng năm 2006 Tác giả: TS Nguyễn Đức Thành Trang Hình 6.1: Sơ đồ kết nối bắt tay Ban đầu liệu bit đưa ra, máy tính đọc chân Busy mức thấp máy in rảnh, đưa tín hiệu Strobe rộng sec máy in đọc liệu, đọc xong báo trở lại ACK rộng sec Nếu máy in bận Busy mức cao Việc giao tiếp thực qua ghi: ghi liệu, ghi điều khiển ghi trạng thái Thông thường sử dụng hai địa gốc là: 378H cho LPT1 (line printer 1) 278H cho LPT2 http://www.khvt.com CHƯƠNG 6: GIAO TIẾP QUA CỔNG SONG SONG Trang Một số máy dùng địa 03BC - Thanh ghi liệu có địa gốc +0, bit, nhận liệu để xuất ngoài, liệu chốt - Thanh ghi trạng thái địa gốc +1 ghi đọc dùng để nhận tín hiệu từ vào, có tín hiệu vào D7 D0 Busy /ACK Paper Out Select /Error 11 10 12 13 15 /IRQ X X Chú ý bit Busy đảo, nghóa chân 11 có điện áp +5V bit D7 ghi trạng thái mức logic 0, bit D2 có ngắt từ /ACK - Thanh ghi điều khiển có bốn đường điều khiển, địa gốc +2, đường dùng cực thu hở giao tiếp hai chiều D7 X D0 X Cho phép cổng hai chiều Cho phép IRQ qua ACK Chọn máy in /Select 17 Khởi động máy in /Init Xuống hàng /Auto Linefeed Kích /Strobe 16 14 Các chân 1, 11, 14 17 đảo phần cứng, bit D6 ghi trạng thái (chân số 10) từ → gây ngắt IRQ7 cho phép D4 ghi điều khiển =1 Hình 6.2 Sơ đồ ghi liệu hai hướng Một số mainboard (H6.2) hỗ trợ giao tiếp hai chiều qua ghi Thành phố Hồ Chí Minh, tháng năm 2006 Tác giả: TS Nguyễn Đức Thành Trang liệu, bit D5 ghi điều khiển cho phép chân :9 ghi liệu có chiều vào, nghóa đưa tín hiệu vào chân đọc ghi liệu Các chân ghi điều khiển có ngõ cực thu hở nên nhận tín hiệu vào trước ta nạp bit cho ngõ ứng với ghi lên (sơ đồ H 6.3) Do tín hiệu /Busy, /Select, /AF /Strobe đảo phần cứng nên ta thêm cổng đảo, logic đọc vào phản ảnh mức tín hiệu Hình 6.3: Giao tiếp song song hai chiều qua cổng SPP Trong số trường hợp, chân ghi điều khiển không dùng loại cực thu hở mà dùng cột totem có chiều xuất, lúc dùng phân kênh để đọc bit liệu vào ghi trạng thái, đọc hai lần bit liệu (H6.4) Trong sơ đồ chân /Strobe dùng để chọn nửa byte thấp mức tức bit D0 ghi điều khiển mức http://www.khvt.com CHƯƠNG 6: GIAO TIẾP QUA CỔNG SONG SONG Trang Với sơ đồ việc xuất nhập liệu bit thực sau: 1- Xác định địa gốc cổng LPT 2- Muốn xuất liệu, ghi liệu bitvào ghi liệu, muốn xuất nhiều bit dùng kèm tín hiệu Init, Select … cách ghi vào ghi điều khiển byte thích hợp 3- Muốn đọc liệu, ghi bit D0 = vào ghi điều khiển, đọc bit cao ghi trạng thái (4 bit thấp liệu vào), dời phải bit, sau cho D0 ghi điều khiển 0, đọc bit cao ghi trạng thái (4 bit cao liệu vào), kết hợp hai lần đọc ta byte exclusive OR với 88H để đảo hai bit D7 D3 (do Busy đảo) Hình 6.4: Vào bit với 74LS157 Ví dụ lập trình Xuất trị biến oval1 ghi liệu oval2 ghi điều khiển, nhập giá trị inval từ ghi trạng thái Trong ngôn ngữ C # define DATA 0X378 # define STATUS DATA + # define CONTROL DATA + int oval1, oval2, inval; oval1 = 0X81; outportb (DATA, oval1); Thành phố Hồ Chí Minh, tháng năm 2006 Tác giả: TS Nguyễn Đức Thành Trang oval2 = 0X08; outportb (CONTROL, OVAL2 ^ 0x0b); // exclusive or inval = ((inportb (STATUS) ^ 0X80; Trong ngôn ngữ BASIC DATA = &H378 STATUS = DATA + CONTROL = DATA + OVAL1 = 129 OUT DATA, OVAL1 OVAL2 = 75 OUT CONTROL, OVAL2 XOR 11 INVAL = ((INP (STATUS) XOR 128) AND &HF8) / Lập trình cho sơ đồ H6 đọc bit outportb(CONTROL, inportb(CONTROL) | 0x01); /* Chọn nửa byte thấp (A), phép tóan or */ a = (inportb(STATUS) & 0xF0); /* Đọc nửa byte thấp, phép toán and */ a = a >> 4; /* Dời phải bit */ outportb(CONTROL, inportb(CONTROL) & 0xFE); /* Chọn nửa byte cao (B)/ a = a |(inportb(STATUS) & 0xF0); /* Đọc nửa byte cao */ byte = a ^ 0x88; Sử dụng ngắt Khi bit ghi điều khiển mức cho phép ngắt chân ACK chuyển từ xuống 0, chương trình phục vụ ngắt IRQ7 gọi (cũng có lúc ngắt bị tác động ACK chuyển từ lên 1) Có thể viết chương trình kiểm tra xem ngắt có tác động không Về phần cứng cần nối chân (D7) với chân 10 (ACK) Vào Control panel –System kiểm tra địa số ngắt cổng LPT #include #define PORTADDRESS 0x378 #define IRQ #define DATA PORTADDRESS+0 #define STATUS PORTADDRESS+1 #define CONTROL PORTADDRESS+2 #define PIC1 0x20 #define PIC2 0xA0 int interflag; /* Cờ ngắt */ int picaddr; /* Địa gốc PIC) */ void interrupt (*oldhandler)(); void interrupt parisr() /* Interrupt Service Routine (ISR) */ { interflag = 1; outportb(picaddr,0x20); /* End of Interrupt (EOI) */ } void main(void) { http://www.khvt.com CHƯƠNG 6: GIAO TIẾP QUA CỔNG SONG SONG Trang int c; int intno; /* Số vectơ ngắt */ int picmask; /* Mặt naï */ if (IRQ >= && IRQ

Ngày đăng: 11/05/2021, 04:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w