Learning JTAG

To understand how JTAG works I recommend a series of articles by Aliaksandr Kavalchuk. He describes details of the protocol and accompanies the text with amazing illustrations. Check it out:

Also, there are a few articles from other authors, describing JTAG in a more practical way: