You might check the OpenOCD Documentation: Debug Adapter Configuration, which is one of the most utilized Open Source JTAG driver/API. JTAG adapters which are compatible with OpenOCD typically incorporate the FTDI FT232 chipset for USB connectivity, the documentation listed above offers a partial list of compatible JTAG adapters, perhaps one or more offer the design schematic and source code.
If you wish to avoid the headache of "rolling your own" JTAG adapter, Segger offers a full version of their ARM JTAG programmer/debugger for academic purposes at a greatly reduced price:
If you wish to avoid the headache of "rolling your own" JTAG adapter, Segger offers a full version of their ARM JTAG programmer/debugger for academic purposes at a greatly reduced price