Seriell kommunikation med gammal mikrokontroller

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
zappen999
Inlägg: 15
Blev medlem: 10 november 2013, 11:27:58

Seriell kommunikation med gammal mikrokontroller

Inlägg av zappen999 »

Lite bakgrund först:

Jag har en panel som styr pumpar och ventiler till solfångarpanelerna på taket. Panelen installerades 1996 och levererades med ett seriellt gränssnitt samt ett program på diskett för att övervaka temperaturer, kWh, flöden mm.

Kontakten till datorn är en gammal skrivarport
Bild

I andra änden satt denna krets, som verkar konvertera 5v till TTL nivåer som mikrokontrollern kan förstå
Bild

Hittade detta kopplingsschema och kopplade om det till en DB9 kontakt.
Bild

Mikrokontrollern heter följande: MC68HC711D3.
Datablad: http://www.rlocman.ru/i/File/dat/Freesc ... CFNE2R.pdf

Såhär står det under Serial-delen i databladet
Bild

Jag har alltså ingen aning om vilken baudrate den sänder med. Jag kör med RealTerm för kommunikationen och jag får några bytes data varje sekund från mikrokontrollern. Jag får "Framing error", antar att baudrate eller något annat är felinställt.

Jag har hittat disketten med programmet till panelen. Dessvärre verkar den vara korrupt. Använde ett program till att "recovra" filerna. Verkade hitta alla men .exe-filen var bortom räddning... Tänkte om man kunde spionera på den seriella kommunikationen när det programmet var igång.

Det jag behöver hjälp med nu är alltså att hitta rätt inställningar så jag får över datan utan errors, och sedan tolka den.
I vilket format skickas datan i troligtvis? ASCII? Råa bytes?

Såhär ser det ut i terminalen med 9600 baudrate med ASCII-tolkning.
Bild

Någon som har någon idé på hur jag kan gå tillväga? Jag tänkte skriva ett python-script som loggar värderna för att sedan visa upp det i mobilen.
gkar
Inlägg: 1585
Blev medlem: 31 oktober 2011, 15:28:29
Ort: Linköping

Re: Seriell kommunikation med gammal mikrokontroller

Inlägg av gkar »

Mät upp periodtiderna på ett antal bitar med ett skåp. Dessa kommer att vara n * t där n är en integer och x är periodtiden för en bit.
När det är gjort får kan man ställa in bitrate korrekt och analysera hur många stoppbitar och vilken paritet det skall vara.
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Re: Seriell kommunikation med gammal mikrokontroller

Inlägg av Andax »

Har du tillgång till ett oscilloscop? I så fall kan du mäta baudrate. Skickas data binärt så kan det vara bra att veta baudrate säkert.

Gkar var visst snabbare!
jah
Inlägg: 659
Blev medlem: 16 januari 2009, 13:00:08
Ort: Eslöv

Re: Seriell kommunikation med gammal mikrokontroller

Inlägg av jah »

Det du loggat i relterm ser ju systematiskt och läsbart ut, så ASCII-data och 9600bps är säkert korrekt, och du behöver bara prova dig fram till inställningarna för stop- och paritetsbitar. Blir ju inte speciellt många kombinationer att prova.
Har man ett oscilloskåp så blir det ju som de andra redan påpekat mycket lättare att se, men går nog lika snabbt att prova sig fram.

Vad sedan de olika värdena representerar är ju en annan femma,och då behöver man lite mer kännedom om vilka givare och antal osv, samt lite hum om vilka värden dessa kan tänkas ha just vid avläsningen.

Har du svårt att se systemet så klistra in en textdump på forumet och bifoga lite info, så kan du säkert få lite hjälp på traven.

/J
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Seriell kommunikation med gammal mikrokontroller

Inlägg av sodjan »

> antar att baudrate eller något annat är felinställt.

Det gär väldigt snabbt att kolla. Testa med 2400, 4800, 9600 o.s.v.
Det är bara 8-10 alternativ som är sannolika. Testa också med några
olika instaällningar av 8/7 bit och paritet.

Det verkar ju vara ett visst mönster i det hela, sekvensen med "616" eller "619"
upprepas.

> jag får några bytes data varje sekund från mikrokontrollern.

Kan vi visa hur just ett sedant paket ser ut? Det går ju inte att se
av det flöde som är på skrämen i exemplet.

Finns det ingen som helst märkning på varken paneler eller disketterna?
Du har ju inte angivit några identiteter på någonting...

> Kontakten till datorn är en gammal skrivarport

Nej, det är sannolikt en (vanlig) 25-pin seriell kontakt.

> som verkar konvertera 5v till TTL nivåer som mikrokontrollern kan förstå

Nej, den konverterar RS232 nivåer till 5V (TTL) nivåer till MC68'ian.

> Någon som har någon idé på hur jag kan gå tillväga?

Fortsätt att labba med hstigheten och andra inställningar tills du
inte får något fellarm i alla fall. Sedan kan vi se om det är något
vettigt data.
Skriv svar