In this project i explain how i made my USB lock controlled with a smartcard. I used a PIC microcontroller to mak a smartcard reader board. The board has several functions to save up to 4 different cards. The cards that i use are simple expired telephone cards. When the correct card is inserted to the slot, the 4 USB ports are enabled, otherwise the USB ports are disabled. This way, i can lock the mouse and keyboard of the computer, as well as any other external device.
The smartcard reader is connected with a USB switch that i made with an ADG714 analog bidirectional switch. It also has a relay to control the power supply of the USB ports. This is the final look of the smartcard slot:
A small bi-color LED indicates if the correct card is inserted to the slot, or if a wrong card is inserted:
Correct card
Wrong card
Here is a video in which i present this project
And here is a video in which i explain how the smartcard reader works:
Complete documentation with schematics and PCB designs as well as PIC software can be found in the worklog section
This was one of the most well documented blog entries I have read in a long time. It was a pleasure to fill all the gaps I had about this topic. Well written an concise.
At 3 September 2012, 14:14:58 user pcb wrote: [reply @ pcb]
Thanks for share this pcb layout design work... its give me more better ideas for my future projects...
@Pat I see what you mean... I think i will make some tests :D
At 14 August 2012, 13:09:12 user Pat wrote: [reply @ Pat]
@Giorgos Lazaridis Yeah, like I said, it'll work... mostly. If you take a look at TPC 12 on the ADG714 datasheet, the frequency response at ~500 MHz is going to be around -8 dB. The maximum attenuation of a USB cable is basically the same as that ( http://www.usb.org/developers/presentations/pres0410/2-2_SSUSB_DevCon_PHY_Heck.pdf ) - so essentially, you've basically just put in a long USB cable.
So long as you're talking about devices that are attached with, say, like a 1' cable or something like that, you won't notice basically anything. It's all just a question of how much margin you have left.
@Pat this was one of my concerned, it works ok until now, and i have test usb devices like external HDD (which i copied some 300GB of data with no problem) and also my camcorder uses the USB for the video. Nevertheless, have order relays with 4p2t if the adg fails or have slow data transmission.
molis eida smartcard lock skeytika oti enas apo ellinas eixe kanei kati paromio me tilekartes kai tsoup na se pali :P ! ekseretiki douleia opws panta !
At 14 August 2012, 7:39:43 user Pat wrote: [reply @ Pat]
"I'm not sure if the ADG714 can be used for USB applications."
No, it can't. It's the bandwidth that matters, not the on-resistance. It has a bandwidth of 155 MHz, which is way below USB spec. This is because the ADG714's input/output capacitance isn't 6/4 pF: I'm not sure where you got that from (the digital input/output capacitance is 3/4 pF respectively). Its on capacitance is *22* pF. This is way, way too high: on a 50 ohm input that's a critical frequency of ~150 MHz.
Switches designed for USB (like the FSUSB46) have on capacitances more like 4 pF, leading to a bandwidth of well greater than 480 MHz.
This design will work... some of the time. Probably mainly with short USB cables and devices that are well within USB spec. Definitely with low-speed USB devices. But high-speed USB devices could easily struggle since you're probably tacking on at least ~6 dB of attenuation.