Tải bản đầy đủ (.docx) (2 trang)

chuẩn bàn phím ps2 điện tử viễn thông

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (29.99 KB, 2 trang )

(Nếu bạn copy để đăng trên các trang web khác vui lòng chỉ rõ nguồn của bài viết là
icdesignvn.com) Bài viết này nhằm trình bày về các vấn đề liên quan đến giao tiếp bàn
phím máy tính (Keyboard) thông qua chuẩn PS/2. Tổng quan Các bàn phím máy tính hiện
nay có một trong các giao tiếp sau: Giao tiếp USB (Universal Serial Bus): Loại giao tiếp
truyền nhận nối tiếp tốc độ cao, hiện nay rất phổ biến, hỗ trợ trên tất cả các máy tính hiện
nay. Giao tiếp PS/2: Loại giao tiếp truyền thống dành cho chuột và bàn phím. Giao tiếp ADB
(Apple Desktop Bus): Một loại giao tiếp nối tiếp kết nối các thiết bị tốc độ thấp đến máy
tính nhưng đã không còn được hỗ trợ bởi các phần cứng Apple từ năm 1999. Bài này chỉ
trình bày về bàn phím có giao tiếp PS/2 Bàn phím là một ma trận nút nhấn được giám sát
bởi một vi xử lý gọi là bộ mã hóa phím (keyboard encoder). Vi xử lý này có thể khác nhau
trên mỗi loại bàn phím nhưng chúng đều thực hiện các chức năng cơ bản là giám sát sự
nhấn/thả (press/release) phím và gửi dữ liệu tương ứng đến host. Host ở đây được hiểu là
một thiết bị có khả năng điều khiển, nhận và phân tích tín hiệu từ bàn phím PS/2, ví dụ
như máy tính. Vi xử lý này đảm bảo tránh hiện tượng nảy (rung) phím (debouncing) và lưu
lại bất cứ dữ liệu nào xuất hiện trong bộ đệm của nó nếu cần. Trên bo mạch chủ
(motherboard) sẽ có một bộ điều khiển bàn phím (keyboard controller) để nhận và giải mã
tất cả các dữ liệu từ bàn phím và thông báo lại cho phần mềm đang chạy hiện tại trên máy
tính. Ví dụ như IBM sử dụng vi điều khiển Intel 8048 để làm bộ mã hóa cho bàn phím và vi
điều khiển Intel 8042 để làm bộ điều khiển bàn phím gắn trên bo mạch chủ. Hiện nay chip
mã hóa bàn phím có rất nhiều hãng khác nhau sản xuất còn chức năng điều khiển bàn
phím trên bo mạch chủ thì được tích hợp sẵn trong chipset của bo mạch chủ. Hoạt động
của bàn phím Bộ xử lý trên bàn phím sẽ dành phần lớn thời gian để quét và giá sát ma trận
phím. Nếu nó thấy một phím được nhấn (press), nhả (release) hay giữ (hold), bàn phím sẽ
gửi một gói thông tin tương ứng gọi là scancode đến host. Một scancode có thể là make
code hoặc break code. Make code được gửi khi một phím được nhấn hoặc giữ. Break code
được gửi khi phím được nhả Mỗi phím được gán make code và break code riêng nên host
có thể nhận biết chính xác phím đó. Một tập liệt kê các make code và break code của các
phím bấm gọi là một tập scancode (scancode set). Có 3 chuẩn dành cho tập scancode được
gọi là scancode set 1, scancode set 2 và scancode set 3, sau đây sẽ gọi tắt lần lượt là set 1,
set 2 và set 3. Hầu hết các bàn phím phổ dụng đều thiết lập mặc định ở scancode set 2.
Làm thế nào để biết scancode của mỗi phím? Đối với set 1: Nếu make code của một phím


là x thì break code của phím đó sẽ là “x + 80h”. Ví dụ như phím “q” có make code là 10h
thì break code sẽ là 10h + 80h = 90h. Phím “Right CTRL” có make code là E0h, 1Dh thì
break code sẽ là E0h, 1Dh + 80h = E0h, 9Dh. Riêng phím PAUSE có make code là E1h,
1Dh, 45h, E1h, 9Dh, C5h và không có break code. Đối với set 2: Nếu make code của một
phím là x thì break code sẽ là “F0h, x”. Nếu make code là “E0h, x” thì break code là “E0h,
F0h, x”. Riêng phím PAUSE có make code là “E1h, 14h, 77h, E1h F0h 14h F0h 77h” và
không có break code. Đối với set 3: Nếu make code của một phím là x thì break code sẽ là
“F0h, x” và không có phím nào ngoại lệ, kể cả phím PAUSE. Set 3 cho phép enable hoặc
disable “sự lặp lại” của phím và sinh ra break code cho từng phím riêng biệt hoặc cho tất cả


các phím Bất cứ khi nào một phím được nhấn thì make code của phím đó sẽ được gửi đến
host. make code này tượng trưng cho một phím (key) trên bàn phím chứ không biểu thị
cho ký tự được in trên phím đó. Nghĩa là không có mối liên hệ nào giữa make code với mã
ASCII. Việc dịch các scan code của từng phím nhấn ra ký tự hiển thị (character) hay lệnh
(command) là tùy thuộc vào host. Mặc dù hầu hết make code của set 2 đều có độ rộng 1
byte thì vẫn có một nhóm các phím mở rộng (extended key) có make code dài từ 2 byte trở
lên. Từ phần này về sau, scancode set được sử dụng để mô tả mặc định là set 2 Bàn phím
sẽ gửi make code và break code như thế nào? Khi nhấn một phím: để gửi một ký tự “q”
đến host thì các sự kiện xảy ra là bạn nhấn phím “q”, make code phím “q” là 15h được tạo.
Bạn nhả phím “q”, break code phím “q” là F0h, 15h được tạo. Như vậy, Một scan code của
phím “q” là 15h, F0h, 15h được tuần tự gửi đến host. Khi nhấn nhiều phím: để gửi một ký
tự “Q” đến host thì các sự kiện xảy ra là: Nhấn phím “Shift”, giả sử là Left Shift, make code
phím Left Shift là 12h được tạo. Nhấn phím “q”, make code phím “q” là 15h được tạo Nhả
phím “q”, break code phím “q” là F0h, 15h được tạo Nhả phím “Shift”, break code phím
Shift là F0h, 12h được tạo Một chuỗi dữ liệu lần lượt được gửi đến máy tính là 12h, 15h,
F0h, 15h, F0h, 12h Khi nhấn và giữ một phím thì sao? Khi bạn nhấn và giữ một phím thì
phím đó trở thành typematic (hay repeat). Khi phím typematic thì make code của nó sẽ
được gửi đến khi phím đó được nhả hoặc một phím khác được bấm. Bạn có thể kiểm tra
bằng cách bật Microsoft Word lên và thực hiện thao tác này. Khi nhấn giữ một phím trên

bàn phím chúng ta sẽ có các thông số cần quan tâm là độ trễ (typematic delay) và tốc độ
(typematic rate). Ví dụ, trong Microsoft word, bạn nhấn và giữ phím “q”, chữ “q” đầu tiên
sẽ xuất hiện ngay lập tức trên trang soạn thảo khi bạn vừa nhấn phím “q” xuống, một
khoảng thời gian sau thì chữ “q” thứ hai mới xuất hiện, khoảng thời gian này gọi là
typematic delay. Sau khi chữ “q” thứ 2 xuất hiện thì chuỗi ký tự “q” tiếp theo sẽ xuất hiện
liên tục và nhanh đều nhau cho đến khi bạn nhả phím “q”. Thông số typematic rate là số ký
tự sẽ xuất hiện trong 1 giây sau thời gian typematic delay (tính từ ký tự thứ hai trở đi).
Nguồn: />Diễn đàn Thiết kế Vi mạch và Vi Điện tử: ICdesignVN.com



×