Scan tool atau orang juga menyebutnya scanner merupakan alat diagnosa profesional yang digunakan oleh seorang mekanik/teknisi kendaraan, dimana :
(1) alat tersebut bisa memberikan informasi-informasi seputar nilai variabel dari sensor-sensor atau aktuator yang istilahnya adalah current data yang tentunya akan membantu seorang teknisi untuk mendiagnosa kerusakan-kerusakan yang timbul.
(2) alat tersebut bisa memberikan informasi berupa trouble code (kode kerusakan) yang terbaca oleh ECU (Electronic Control Unit). Jangan selalu membayangkan setiap ada kerusakan mobil, pasti bisa dideteksi oleh scanner/scan tool.
{---- Yang harus selalu diingat, scanner bukan merupakan dewa, scanner hanya merupakan suatu alat ukur yang membantu kita untuk memecahkan masalah (troubleshooting) kerusakan kendaraan, keputusan final tetap harus pada kita.---}
(3) alat tersebut bisa digunakan untuk test aktuator (actuator testing). Jadi kita bisa meng-ON/OFF-kan AC, memajukan sudut pengapian, memperbesar/memperkecil semprotan bahan bakar, meng-ON/OFF-kan kipas pendingi dan lain-lain. Kesemuanya itu bisa dilakukan dengan hanya memencet tombol-tombol dari scanner.
(4) dan juga pada alat tersebut disediakan alat ukur lain berupa volt meter, osiloskop dan juga ada generator simulasi sinyal.
Sebenarnya scan tool bukan hanya bisa dipakai oleh seorang teknisi untuk memperbaiki kerusakan kendaraan yang ada. Tetapi lebih dari itu, bagi seorang profesional di bidang race, scanner bisa juga dimanfaatkan untuk mendapatkan informasi-informasi yang berguna bagi peningkatan performa mesin kendaraan.
Cara kerja alat yang bernama scantool/scanner pada prinsipnya adalah sederhana. Scanner mendapatkan kode-kode angka berupa bilangan-bilangan binner (0/1) yang dikirim oleh ECU, kemudian scanner menterjemahkan kode-kode tadi ke dalam bentuk angka-angka, grafik dan sebagainya. Yang menjadi tidak se-simple yang kita bayangkan adalah bagimana kita bisa mengartikan kode-kode tersebut menjadi suatu simbol yang bisa kita pahami. Seperti halnya jika kita berkomunikasi dengan seorang bule dari rusia. Tanpa penerjemah yang kita bawa, tentunya bagi kita-kita yang tidak paham dengan bahasa rusia, tidak bisa memahami apa yang dibicarakan oleh orang rusia tadi. Dalam hal ini penerjemah yang kita bawa bisa diartikan fungsinya sama dengan scan tool. ECU mengirim suatu kode-kode ke scanner, scanner mengartikan kode-kode tadi menjadi informasi yang bisa kita pahami. Dan begitu sebaliknya kita memencet tombol-tombol di scan tool, scan tool mengirimkan kode-kode ke ECU yang bisa dipahami olehnya kemudian ECU balik lagi mengirimkan kode-kode ke scanner...dan begitu seterusnya. Dalam hal ini tentunya telah terjadi percakapan antara ECU dengan scanner (atau kita sebagai pengguna scanner).
Kode-kode binner yang dikirim atau diterima dari/ke scanner ke/dari ECU dilakukan secara bergantian, disebut komunikasi secara serial. Apa yang dimaksud dengan komunikasi secara serial ?
Semua komunikasi pada kendaraan untuk dikoneksikan keluar menggunakan komunikasi serial. Pada prinsipnya ada 2 jenis komunikasi serial. Dikenal dua cara komunikasi data secara serial, yaitu komunikasi data serial secara sinkron dan komunikasi data serial secara asinkron. Pada komunikasi data serial sinkron, clock dikirimkan bersama-sama dengan data serial, sedangkan komunikasi data serial asinkron, clock tidak dikirimkan bersama data serial, tetapi dibangkitkan secara sendiri-sendiri baik pada sisi pengirim (transmitter) maupun pada sisi penerima (receiver).
Komunikasi data serial secara sinkron merupakan bentuk komunikasi data serial yang memerlukan sinyal clock untak sinkronisasi. Sinyal clock tersebut akan tersulut pada setiap bit pengiriman data, sedangkan komunikasi asinkron tidak memerlukan sinyal clock sebagai sinkronisasi. Pengiriman data pada komunikast serial pada mikrokontroler tertentu dilakukan mulai dari bit yang paling rendah (LSB) hingga bit yang paling tinggi (MSB).
Komunikasi data serial secara sinkron merupakan bentuk komunikasi data serial yang memerlukan sinyal clock untak sinkronisasi. Sinyal clock tersebut akan tersulut pada setiap bit pengiriman data, sedangkan komunikasi asinkron tidak memerlukan sinyal clock sebagai sinkronisasi. Pengiriman data pada komunikast serial pada mikrokontroler tertentu dilakukan mulai dari bit yang paling rendah (LSB) hingga bit yang paling tinggi (MSB).
Pada gambar di atas diamati dengan osiloskop yang menggambarkan kode binner yang dikirimkan secara serial, yaitu bilangan 0100-0001b. Ingat LSB adalah bit rendah yang dikirimkan setelah "start", dan MSB adalah bit tingginya. 0100 adalah MSB, dan 0001 adalah LSB . Jika digabungkan menjadi 01000001b = 65d. (b=binner, d=desimal). Atau kalau kita lihat ditabel ascii dibwah, meunjukkan bahwa kode ascii untuk angka 65 d adalah huruf a besar (A).