remote keystroke retrieval system kevin butler omar martino eric hicks
Post on 21-Dec-2015
220 views
TRANSCRIPT
Remote Keystroke Retrieval System
Kevin Butler
Omar Martino
Eric Hicks
Project Description
Interface a PIC16F84 microcontroller with external EEProm to record and store all keystrokes from a given AT or PS/2 keyboard.
Transmit the stored data using a TX/RX transmitter pair to a separate device
Display the received data on a monitor screen.
General Functionality
Keyboard CPU
Recorder
CPU
Mobile
Interface Functionality
PIC16F84
EEProm
Receiver Transmitter
From Mobile To Mobile
Interface Functionality Cont’d
Receiver
EEProm II
PIC16F84
Transmitter
From Recorder
To Recorder
Parts Description
Microcontrollers
Memory
RF Systems
Keyboard
PIC16F84 Microcontroller
Coding– RISC Assembly
32 instructions– PIC Basic
Hardware– 18 Pins
13 pins available for input/output specification
– Requires 4 MHz clock– 5V power supply
Microchip EEProm (2kbit-512kbit packages)
Interface/PinOuts Hardware Storage
– Each lower case character is 24 bits
– Our storage capacity using this setup will be 80 characters to 21,000 characters!
– Max storage approximately 20 pages (font 12, double spaced)
Keyboard
6-pin Mini-DIN (PS/2): 1 - Data 2 - Not Implemented 3 - Ground 4 - Vcc (+5V) 5 - Clock 6 - Not Implemented
Male
(Plug)
Testing Phases
Phase 1- Handling Keystrokes (In Progress)– Ignores mouse movement– Displays scan codes on LED’s– Still need special keystroke recognition (F1,
Win95, etc.)
Phase 2- Storing Data (In Progress)
– Must implement higher capacity EEProm
Phase 4- Transmitting (Upcoming)
– Use microcontroller to start and end transmission of data from EEProm
Phase 3- Keyboard Emulation (Completed)
– Use microcontroller to simulate a working keyboard.
Phase 1 & 2- Recording Keystrokes
PIC16F84 receives clock and data from keyboard, and “routes” the data to EEProm
Ignores mouse movements PICBasic I2COUT/I2CIN handles
all serial transmission– Control byte, address byte, data
byte
Test Circuit Diagram
Phase 3- Keyboard Emulation
PIC16F84 manually switches clock pin high and low, to simulate keyboard clock
Memory accessed and sent as it was received initially (FIFO)
Ignoring crucial keys (Win95, F1, etc) is still an issue– Each of these keys has a two part make code that
starts with the byte E0, should be easy to ignore, but hard to display what key was typed.
Phase 4- Transmission
PIC16F84 receives control signal and initiates EEProm data extraction
Data is obtained byte by byte from EEProm, and sent to transmitter serially using the I2COUT instruction.
Data is received and processed exactly as in Phase 1 & 2
Recording Unit Diagram
Mobile Unit Circuit Diagram
TimelineID Task Name
1 PDR
2 Select microcontrollers
3 Select memory
4 Select Tx, Rx
5 Order Parts
6 Design
7 CDR
8 Testing Tx, Rx
9 Keyboard/MC interface
10 MC/Memory Interface
11 MC/RF interface
12 Milestone 1
13 Integration
14 Fine-tune Tx/Rx
15 Milestone 2
16 Assemble boards
17 Internal Expo
18 Documentation
1/26 2/2 2/9 2/16 2/23 3/2 3/9 3/16 3/23 3/30 4/6 4/13 4/20 4/27February March April
Timeline
Uncertainties
Transmission Clarity/Distance– Might need error correcting codes– Have not tested TX/RX as of yet
Code– Have not established a clear strategy for filtering
unwanted keystrokes
Power Consumption– May be able to power transmitter from PIC
Milestone Goals
Milestone 1– Demonstrate transmission
of stored data to remote device.
– Display data on screen from “remote device”
– Completion of Phase 3
Milestone 2– Demonstrate completed
prototype– Integration of all phases– Working keystroke filtering
Ignore or Recognize
Questions?