Tổng quan về cấu trúc máy tính

Các thiết bị xuất nhập Bàn phím Màn hình Chuột Các giao tiếp ngoại vi Giao tiếp song song Giao tiếp nối tiếp USB

pdf17 trang | Chia sẻ: haohao89 | Lượt xem: 2031 | Lượt tải: 3download
Bạn đang xem nội dung tài liệu Tổng quan về cấu trúc máy tính, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
IO Devices 1 CẤU TRÚC MÁY TÍNH   Các thiết bị xuất nhập  Bàn phím  Màn hình  Chuột  Các giao tiếp ngoại vi  Giao tiếp song song  Giao tiếp nối tiếp  USB IO Devices 2 BÀN PHÍM _ KEYBOARD  Các kiểu bàn phím: các máy tính IBM và tương  thích sử dụng các kiểu bàn phím sau: Bàn phím XT chuẩn  83 phím:   5 đầu nối DIN  truyền nối tiếp 1  chiều  không hỗ trợ từ  host đến bàn phím  sử dụng scan code  set 1 Bàn phím AT chuẩn  84­101 phím:   6 đầu nối DIN  truyền nối tiếp 2  chiều  sử dụng scan code  set 2 IO Devices 3 Các kiểu bàn phím Bàn phím tăng cường 101 hoặc 102 phím Bàn phím Window 104 phím Bàn phím PS/2:   84­102 phím   6 đầu nối mini DIN  truyền nối tiếp 2 chiều  hỗ trợ sử dụng scan code set 3  có 17 lệnh host to keyboard IO Devices 4 Cấu trúc và giao tiếp bàn phím  Mỗi phím là 1 chuyển mạch  switch, tạo ra một tiếp xúc điện  khi ấn phím  Các loại nút phổ biến:  Pure mechanical  Foam element  Rubber dome  Membrane  Cáp bàn phím được nối đến chip  ngoại vi 8255A  Bộ điều khiển bàn phím thường là  chip 8042, 8048, 8049, 8741,  8742, 6868, 6805.  Khi chip điều khiển nhận được  yêu cầu từ bàn phím, chip này  gửi tín hiệu ngắt IRQ1 và truyền  dữ liệu vào CPU IO Devices 5 Kết nối bàn phím DIN 5 pin 1. Clock 2. Data 3. N/C 4. GND 5. +5V (VCC)  PS/2 1. Clock 2. GND 3. Data 4. N/C 5. +5V (VCC) 6. N/C  IO Devices 6 Mã quét bàn phím (Scan code)  Khi nhấn 1 phím, bộ xử lý bàn phím gửi đến  PC mã quét (scan­code) của phím được nhấn  Khi phím được nhấn, mã này gọi là make­ code  Khi phím được nhả, mã này gọi là break­code  Break­code gồm 2 byte: byte đầu là F0 (đối với  bàn phím mở rộng), byte kế là mã make­code  Scan code có 3 tiêu chuẩn: set 1, set 2, set 3.  Bàn phím hiện nay mặc nhiên sử dụng set 2  Ví dụ:   nhấn SHIFT: make­code = 12   Nhấn A:   make­code = 1C  Nhả  A:    break­code = F0, 1C  Nhả SHIFT:   break­code = F0, 12  Mã được truyền nối tiếp từng byte, với khung  truyền 11bit IO Devices 7 Bảng scan­code Scan code bàn phím loại 83 phím Scan­code bàn phím loại 102 phím IO Devices 8 Giao tiếp bàn phím  Bàn phím PS2 giao tiếp bằng giao thức nối  tiếp bất đồng bộ 2 chiều  Xung clock được phát bởi bàn phím, tần số  khoảng 10­16.7kHz  Các trạng thái hoạt động:  Data=high, clock=high: trạng thái rảnh  Data=high, clock=low: trạng thái cấm giao  tiếp  Data=low, clock=high: trạng thái máy chủ  được yêu cầu truyền dữ liệu  Nếu máy chủ muốn truyền dữ liệu, nó phải  cấm giao tiếp từ bàn phím bằng cách kéo  clock xuống thấp, sau đó kéo Data xuống  mức thấp và giải phóng cho clock.  Data được truyền theo khung dữ liệu gồm  11­12bit như sau:  1 start bit = 0  8 data bit (LSB truyền trước)  1 parity bit  1 stop bit = 1  1 acknowledge bit (host only) IO Devices 9 Giao tiếp bàn phím (tt) 1. Truyền dữ liệu từ bàn phím về máy  chủ:  Các bước thực hiện:  Kiểm tra bus đang ở trạng thái rảnh  Clock ở mức cao ít nhất 50us trước khi bàn  phím gửi data  Bàn phím gửi data từng khung dữ liệu 11bit  Dữ liệu được đọc tại cạnh xuống của clock  Máy chủ có thể cấm giao tiếp bằng cách  kéo clock xuống thấp  Khi clock được giải phóng, bàn phím lại  truyền tiếp dữ liệu chưa hoàn chỉnh Dữ liệu từ keyboard đến PC IO Devices 10 2. Truyền dữ liệu từ máy chủ đến bàn  phím:  Các bước thực hiện:  máy chủ cấm truyền từ bàn phím đến  bằng cách kéo clock xuống thấp  máy chủ kéo data xuống thấp và giải  phóng clock báo hiệu bàn phím phát xung  clock bắt đầu truyền dữ liệu  Dữ liệu được đọc tại cạnh lên của clock  Sau khi bàn phím nhận stop bit nó sẽ  truyền tín hiệu ACK đến máy chủ kết thúc  quá trình truyền dữ liệu Dữ liệu từ PC đến keyboard IO Devices 11 Chức năng Typematic  Khi một phím được nhấn liên tục, nó trở  thành typematic  Bàn phím gửi mã nhấn phím đến PC  lặp đi lặp lại  Tốc độ typematic có thể điều chỉnh  bằng cách gửi lệnh đến bộ điều khiển  bàn phím  Lệnh điều khiển bàn phím trong DOS  MODE CON: RATE=r  DELAY=d  RATE: tốc độ typematic, r = ký tự trên  giây (cps)  DELAY: khoảng thời gian trước khi  typematic xảy ra. Số DELAY:   1 ­> 0.25s  2 ­> 0.50s  3 ­> 0.75s  4 ­> 1.00s  Ví dụ: lệnh sau được đặt trong  Autoexec.bat  MODE CON: RATE=32 DELAY=1 IO Devices 12 Truy xuất bàn phím qua DOS  Có thể truy xuất bàn phím qua một số  hàm của DOS với ngắt INT 21h: 01h,  06h, 07h, 08h, 0ah, 0bh, 3fh.  Chương trình ví dụ: đọc 80 ký tự vào  buffer char *ch_input(void) {  char *buffer, *string; union REGS inregs, outregs; buffer = (char*) malloc(82);/* tạo buffer */ *buffer = 80; /* byte đầu chỉ số lượng ký tự */ Inregs.h.ah = 0x0ah; inregs.x.dx = FP_OFF(buffer); int86(0x21,&inregs,&outregs); string = buffer+2; return(string) } IO Devices 13 Lập trình bàn phím trực tiếp  qua Port  Các thanh ghi:  Port 60h: output buffer (R)  Port 60h: input buffer (W)   Port 64h: control register (W)  Port 64h: status register (R)  Status register:  Bit 7 (PARE): 1­ last byte with parity error; 0­  last byte without parity error  Bit 6 (TIM): 1­error; 0­no time­out error  Bit 5 (AUXP): 1­holds data for auxiliary  device  Bit 4 (KEYL): 1­keyboard free; 0­keyboard  locked  Bit 3 (C/D): 1­command byte written via port  64h; 0­command byte written via port 60h  Bit 2 (SYSF): 1­self test successful; 0­power  on reset  Bit 1 (INPB): 1­CPU data in input buffer;0­ input buffer empty  Bit 0 (OUTB): 1­keyboard controller data in  output buffer; 0­output buffer empty IO Devices 14 Lập trình bàn phím trực tiếp  qua Port (tt)  Control register (8 bit): gồm 17 lệnh theo  bảng lệnh sau Code Command a7h a8h a9h aah abh adh aeh c0h c1h c2h d0h d1h d2h d3h d4h e0h f0h­ffh disable auxiliary device enable auxiliary device check interface to auxiliary device self­test check keyboard interface disable keyboard enable keyboard read input port read out input port (low) read out input port (high) read output port write output port write keyboard output buffer write output buffer of auxiliary device write auxiliary device read test input port send pulses to output port IO Devices 15 Lập trình bàn phím trực tiếp  qua Port (tt)  Ví dụ: disable keyboard start: IN al, 64h ;read status byte TEST al, 02h ;check whether input buffer is full JNZ start ;some byte still in input buffer OUT 64h, adh ;disable keyboard  Ví dụ: ghi byte 01h vào output port OUT 64h, d1h ;pass code for the controller command  ;write output port wait: IN al, 64h ;read status register TEST al, 02h ;check whether input buffer is full JNZ wait ;input buffer full thus wait OUT 60h,01h ;pass data byte 01h for the controller  ;command IO Devices 16 Thiết kế giao tiếp bàn phím L C D - H D 4 4 7 8 0 D B 0 D B 1 D B 2 D B 3 D B 4 D B 5 D B 6 V D D V S S E N R S R / W V E E D B 7 1 2 M H z V C C 5 V 1 0 u F 3 0 p F 5 V K e y b o a r d 6 4 2 1 3 5 3 0 p F R 1 R R 3 1 0 k 1 0 0 A T 8 9 C 5 1 9 1 8 1 9 20 2 9 3 0 3 1 40 1 2 3 4 5 6 7 8 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 1 3 1 1 1 2 1 0 1 4 3 6 3 5 3 4 3 9 3 8 3 7 1 7 1 6 1 5 3 3 3 2 R S T X T A L 2 X T A L 1 G N D P S E N A L E / P R O G E A / V P P V C C P 1 . 0 P 1 . 1 P 1 . 2 P 1 . 3 P 1 . 4 P 1 . 5 P 1 . 6 P 1 . 7 P 2 . 0 / A 8 P 2 . 1 / A 9 P 2 . 2 / A 1 0 P 2 . 3 / A 1 1 P 2 . 4 / A 1 2 P 2 . 5 / A 1 3 P 2 . 6 / A 1 4 P 2 . 7 / A 1 5 P 3 . 3 P 3 . 1 / T X D P 3 . 2 / I N T O P 3 . 0 P 3 . 4 / T O P 0 . 3 P 0 . 4 P 0 . 5 P 0 . 0 / A D 0 P 0 . 1 / A D 1 P 0 . 2 / A D 2 P 3 . 7 P 3 . 6 P 3 . 5 P 0 . 6 / A D 6 P 0 . 7 / A D 7 R e s e t 5 V 1. N/C 2. Data 3. +5V (VCC) 4. GND 5. N/C 6. Clock Thiết kế minh hoạ: giao tiếp bàn phím với AT89C51 • Chân Data nối P3.4 • Chân Clock nối P3.2 • Dữ liệu thu được từ bàn phím sẽ hiển thị trên LCD điều  khiển ở P1 IO Devices 17 Câu hỏi ôn tập 1. Nêu đặc điểm các thế hệ bàn phím 2. Trình bày giao thức truyền giữa bàn phím  và PC 3. Mã scan­code là gì? Nếu bấm phím sau  thì bàn phím sẽ truyền mã gì đến PC: 1. Nhấn và nhả Delete 2. Nhấn Ctrl + z, sau đó nhả phím 3. Nhấn và nhả phím ­> 4. Có bao nhiêu lệnh hỗ trợ từ host đến  keyboard. Kể tên. 5. Trình bày hoạt động của chế độ typmatic 6. Hãy cài đặt để chế độ typematic có thời  gian trễ là 0.5s và tốc độ là 20 ký tự/giây 7. Viết chương trình điều khiển keyboard  thực hiện selftest 8. Viết chương trình ghi giá trị 0fh ra output  port của keyboard 9. Viết chương trình ASM cho AT89C51 để  nhận mã scan­code từ bàn phím 10. Tìm hiểu các bộ mã scan­code của bàn  phím
Tài liệu liên quan