Если глобально, то детонация возникает всего по трем причинам. Итак.
Слишком бедная смесь
То есть, когда бензина очень мало, а воздуха очень много. Например, в случае засорения форсунок или чрезмерной подачи воздуха из-за поврежденного датчика положения заслонки. Казалось бы, при чем здесь бедная смесь, ведь должно быть наоборот - бензина-то мало! Но не всё так очевидно. Дело в том, что бензин, впрыскиваемый в камеру сгорания в виде мелкодисперсного тумана, выполняет роль охладителя, частично испаряясь на горячих стенках камеры, клапанах и поршне. Тем самым, понижается температура смеси и она опять же "терпит" до момента поджига свечой. А вот если обороты большие, а заряд очень скуден на долю топлива в нём, риск детонации повышается. Конечно, если бензина не будет совсем, просто воздух не загорится. Но детонация - такая неприятная штука, которая возникает как раз на пограничных режимах работы мотора и ловить ее не так-то просто. Именно поэтому любой блок управления имеет арсенал борьбы с этим явлением. В том числе есть датчик, который так и называется: "датчик детонации". Функционировать он может по-разному: особо продвинутые алгоритмы даже анализируют уровень ионизации газов в камере сгорания (SAAB), но как правило, датчик просто "слушает" стуки специальным пьезоэлементом (да-да, те самые детонационные стуки о которых столько страшилок). Но суть одна: как можно быстрее определить слишком раннее воспламенение и скорректировать его составом смеси и/или углом опережения зажигания.
Низкооктановое топливо
Точнее, когда октановое число бензина значительно меньше предусмотренного для данного двигателя. А что такое октановое число? Если на пальцах, то это устойчивость к воспламенению. Условно говоря, 76-й бензин вспыхнет куда как охотнее, чем 98-й (а не наоборот, как многие думают). Например, если в высокооборотистый и "горячий" (то есть с высокой степенью сжатия) двигатель, рассчитанный хотя бы на 95-й, залить 76-й бензин, то он просто будет самовоспламеняться. Из-за чего? А из-за того что в процессе сжатия, следуя законам физики, газы сильно нагреваются. И когда поршень резко и сильно начинает сжимать смесь бензина, не рассчитанного на такие "издевательства", то она просто самовоспламеняется еще до поджига свечой. Итог уже описан выше: возникает детонация. А вот 95-й как раз "дотерпит" до момента поджига свечой, и заряд сгорит так как задумано.
Слишком высокая температура в камере сгорания
Когда даже "правильный" бензин не выдерживает до конца такта сжатия и смесь начинает взрываться сильно раньше. Как и в первом случае, причин может быть множество: забитый вентилятор, неэффективная работа помпы, низкий уровень охлаждающей жидкости, и еще куча факторов.