Hacking Automotive ultraljudssensorer (1 / 3 steg)
Steg 1: hårdvara
Varje sensor har tre stift. Stiften är +8.5 volt leverans, enda tråd halv duplex comm och marken. I ett fordon innehåller UPA modulen 8,5 volt regleras tillgången till sensorer. UPA kan slå detta utbud på och av, efter behag. Som ett exempel, fördriva tiden resande på motorvägen är sensorerna avstängda. När fordonet saktar under några magiska hastigheten tröskel är sensorerna påslagna tillbaka.
Den enda tråd comm mellan UPA modul och sensorn verkar lite konstigt för mig. Vid inaktivitet är bussen inaktiv vid åtta volt. I en öppen kollektor kinda mode kommunicerar UPA modulen och sensor med hjälp av pulser som handtag bussen låg för korta pulser. Det konstiga är att UPA skickar digitala kommandon till sensorn och sensorn svarar med antingen en digital vågform som ser ut som den faktiska echo eller normala digitala bitar. Det beror på kommandot. Körde det genom en op-amp komparator för echo svar det är som de tog bara analogt rätt utanför Piezoelementet, och skickade op-förstärkaren utgång ut till comm tråd. Det är konstigt och slick på samma gång. Nackdelen är, mikro har att använda en snabb timer för att mäta alla dessa echo pulser. Ingen enkel UART åtgärd att ta emot ett eko svar.
Efter uppstart skickar UPA en massa data till sensorn. Jag gissar den första uppsättningen av pulser initiera sensorn med en viss vinst. Jag gissar varje annan typ av fordon har en olika initieringssträngen data pulser. Ser ut som UPA skickar sedan ett par reset-kommandon till sensorn. Det är naturligtvis en bekräftelse från sensorn. Slutligen, en sensor scan sekvens börjar på UPA där en sensorer är befallt att pinga medan en eller två andra sensorer befalls samtidigt lyssna bara. Använder en sensor att pinga och en / två sensorer att lyssna kan mycket nära objekt ska identifieras. Alla resultat från sensorerna sugs av mikro i UPA. Observera att Star12 mikro i UPA kan fånga timer värden baserade på pulser kommer i. Det finns åtta stift på Star12 som har denna förmåga. Så, en puls utlöser Start12 för att fånga timern automatiskt, samtidigt ett avbrott-flaggan är angiven för det klämmer fast. I rutinen avbrott mikro buffertar av infångade, rensar flaggan avbrott och returnerar. Den svala delen är att fångade timer-värde görs i hårdvara rätt när avtryckaren händer. Så, även om det är jitter i avbrott svaret, det spelar ingen roll eftersom timern hade redan har infångats. Motorola verkligen vet hur man utformar automotive micros. OK, jag medger det, som anställd X Motorola jag har fortfarande en soft spot för gamla Moto. Observera att Motorola sålde den micro uppdelningen till Freescale några 6 / 8 år sedan. Motorola har också sålt min gamla automotive division.
Du hur Motorola fick sitt namn? Tja, spelade en 100 år sedan en Victrola poster. Så fick Motorola sitt namn genom att sätta en Victrola (inte en faktisk Victrola men bara tanken spelar en post) i ett motorfordon. Motor bil + Victrola = Motorola bilradion. Motorola fick sin början genom att tillverka automotive radioapparater. Motorola är nu helt ur automotive företag. Gör mig ledsen. Hur som helst, lite av kuriosa.
Tillbaka till maskinvaruinställningar. Utveckling styrelsen visas nedan som byggt jag gränssnitt fyra sensorer till en MBed utveckling mikro. Varje sensor måste ha en buffert krets att konvertera buss spänningar ner till de 3.3V TTL-värden som används av MBed mikro. Du kan se sensor bussen som en halv duplex kommunikation buss. Det visas meddelanden om bussen är 9600 baud serial. Vid leasing min LSA (logik staten analyzer) kan avkoda pulserar om inställd på 9600 baud.
Jag använde helt enkelt stift P21 genom P28 på MBed till gränssnittet till fyra sensorer på min utveckling ombord. MBed ser ut för att bli ännu bättre på bearbetning puls tåg än Star12. Den har alla de finesser som Star12 gör, plus mycket mer.