Tuần trước, chúng tôi đã giới thiệu một phiên bản mới của công cụ giao diện nối tiếp Bus Pirate Universal Universal. Bản cập nhật phần mềm cuối cùng bao gồm một thư viện bộ giải mã bàn phím cho cả hai phiên bản phần cứng.
Có một tấn cũ ở bàn phím tìm đường đến bãi rác. Chúng tôi sẽ chỉ cho bạn cách tái chế một thiết bị đầu vào cho dự án tiếp theo của bạn.
Sự liên quan
Bus Pirate.
PC ở bàn phím (PIN #)
SDA.
Dữ liệu KBD (3)
Scl.
Đồng hồ KBD (1)
+ 5Volts.
VDD (5)
Gnd.
Gnd (2)
Tại bàn phím giao tiếp qua giao diện hai dây hai chiều. Xe buýt đang mở Collector, nhưng bàn phím đã có điện trở kéo bên trong. PC ở giao thức bàn phím được mô tả ở đây. Chúng tôi đã sử dụng công cụ Pirate Bus của chúng tôi để chứng minh giao thức bàn phím, nhưng các hiệu trưởng cơ bản tương tự áp dụng cho bất kỳ vi điều khiển nào.
Chúng tôi đã kết nối tên cướp biển đến bàn phím như được mô tả trong bảng. Chúng tôi tin rằng đây là một phụ nữ thông qua lỗ trên bàn phím, nhưng chúng tôi chưa đánh giá nó. Bạn có biết một nguồn cho các ổ cắm mới?
Giao thức.
Bàn phím cung cấp tín hiệu đồng hồ cho tất cả các chuyển dữ liệu; phía PC giống như một thiết bị nô lệ. Không có thư viện giao diện cướp biển nào hiện tại hoạt động với đồng hồ bên ngoài, vì vậy chúng tôi đã viết một thư viện giải mã bàn phím dễ dàng. Thư viện phụ thuộc vào tín hiệu đồng hồ của bàn phím và nó sẽ bị treo nếu bàn phím bị lỗi hoặc không được kết nối. Nếu bạn sử dụng thư viện của chúng tôi trong dự án của riêng bạn, hãy xem xét việc thêm độ trễ thời gian chờ trong các hàm Readbit () và WriteBit ().
PC để bàn phím Mã lệnh
Mã số
Yêu cầu
0x.
Đặt đèn LED trạng thái
0xee.
Echo 0xee.
0xf0.
Đặt Scancode Type.
0xf3.
Đặt tỷ lệ lặp lại
0xf4.
Bật bàn phím
0xF5.
Bàn phím vô hiệu hóa
0xfe.
Gửi lại byte cuối cùng.
0xff.
Đặt lại bàn phím
Một PC sử dụng các lệnh này để điều khiển các chức năng khác nhau của một bàn phím. Bàn phím đáp ứng các lệnh với một byte xác nhận (OXFA). Trong trải nghiệm của chúng tôi, bàn phím sẽ được thiết lập lại nếu byte phản ứng không được đọc ngay sau khi lệnh được gửi.
Mã phản ứng bàn phím để PC
Mã số
Phản ứng
0xfa.
Thừa nhận
0xAA.
Tự kiểm tra thông qua
0xee.
Phản ứng vang vọng
0xfe.
Gửi lại byte cuối cùng.
0x00 hoặc 0xff.
Lỗi hoặc tràn bộ đệm
Bàn phím có một số mã phản ứng byte duy nhất. Nhiều lệnh PC được công nhận với 0xFA. 0xAA được gửi sau khi thiết lập lại bàn phím.
Thiết lập cướp biển xe buýt
Hiz> M.
1. HIZ.
…
9. PC ở bàn phím
Chế độ> 9 <-set Chế độ
Bộ 900 chế độ
X02 PC tại bộ giải mã KB đã sẵn sàng
PC ở bàn phím>
Đầu tiên, chúng tôi thiết lập tên cướp biển cho ở chế độ bàn phím, tùy chọn 9.
PC ở bàn phím> P <-Power cung cấp thiết lập W / w toggles cung cấp 3.3volt? 1. Không 2. Có. Chế độ> 1 <-Không cung cấp 3.3Volt W / w toggles cung cấp 5volt? 1. Không 2. Có. Chế độ> 2 W <-Capital 'W', bật nguồn cung cấp Cung cấp 9xx 5Volt trên PC ở bàn phím>
Tiếp theo, chúng tôi định cấu hình nguồn điện của Bus Pirate để cung cấp 5Volts cho Bàn phím AT.
PC ở bàn phím> r <-Read byte từ bàn phím X30 PCATKB Đọc: Không có dữ liệu <-Không có sẵn PC ở bàn phím>
Thư viện tại bàn phím theo cú pháp cướp biển xe buýt tiêu chuẩn. Các giá trị số được gửi đến bàn phím dưới dạng byte, ‘r’ đọc một byte từ bàn phím. Giao thức được giao thức bằng bàn phím để các hoạt động bitwise bị vô hiệu hóa. Nếu không có dữ liệu, hãy đọc sẽ trả về ‘Không’.
Thiết lập bàn phím
PC ở bàn phím> 0xee r <-send 0xee, đọc một byte X20 pcatkb viết: 0xee có ack