The LUFA Project is an open-source USB stack for AVR microcontrollers which feature a hardware USB interface. One of the USB device implementations which is included in the project sources is an AVR Programmer supporting the ISP, TPI and PDI protocols.
The documentation LUFA provides does not include a schematic, but it does provide enough information to work one out. This is an implementation of the hardware needed to support a basic programmer using the LUFA code.
It features as little hardware as possible to support as wide a range of target AVR chips as possible. It includes a logic level translator to%