I'm currently using a PIC18F4680 to try to implement Figures 1 and 6 of the pdf that I have attached in this post. I have been suggested to use the USART instead of using timer interrupt and external interrupt to read the diagnosis and data bytes. I have also read the relevant sections of the microcontroller's datasheet, but don't really have a clue on how to read the bytes using the USART (not even sure if the auto baud rate adjustment generator would help). It would be fantastic to hear some feedback on this. Thanks.