The JTAG electrical interface is used to communicate with one or more Test Access Port (TAP) controllers on the chip. You can find an article on Wikipedia which describes JTAG, and another at http://www.xjtag.com/support-jtag/jtag-technical-guide.php which talks about TAPs.Every processor implements the TAP differently and the boundary scan chain is different on each chip. It may be challenging to obtain the details of how the TAP is designed and the layout of the scan chain. OpenOCD http://openocd.sourceforge.net/There are cheap USB to JTAG dongles you can use for your ARM cores: https://www.olimex.com/Products/ARM/JTAG/ For other cores, it might be difficult to find tools. "Setting up a generic JTAG interface is a full time job as it requires both hardware and software knowledge. If this is your final year project, then this is very interesting one! But if you are more of the user side and just need a JTAG tool to program a core then I would definitely suggest you stick with whatever JTAG tool comes with the chips you buy." If you wany to program a range of CPU cores inc AVR, HCS08 and Cortex, then have a look at http://www.versaloon.com It's cheap, but the software is "odd" by modern standards. It can be made to word with OpenOCD. - If you are working with ARM/Cortex, buy a cheap dongle from Olimex or some such, and use the OpenOCD. It works, but you have to be a masochist to enjoy it. This solution is fairly cheap and there's a user community that thinks OCD is wonderful. - If you value your time, buy a Segger J-Link, which ranges from EU 60 or so for a student/hobby version through 290 for the standard USB version and more if you want to spend it. These units are really quick. The ability to put Segger's J-Link firmware onto some manufacturers eval boards is also really nice.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.