Design av system för att extrahera och visualisera realtidsdata från inbyggda system under körning via CAN och UART: Flexibel programvara för mikrokontrolleranalys och visualisering
| dc.contributor.author | Broborn, Oscar | |
| dc.contributor.author | Versanen, Jesper | |
| dc.contributor.department | Chalmers tekniska högskola / Institutionen för data och informationsteknik | sv |
| dc.contributor.department | Chalmers University of Technology / Department of Computer Science and Engineering | en |
| dc.contributor.examiner | Smallbone, Nicholas | |
| dc.contributor.supervisor | Sistek, Sakib | |
| dc.date.accessioned | 2025-09-25T11:47:30Z | |
| dc.date.issued | 2025 | |
| dc.date.submitted | ||
| dc.description.abstract | Detta examensarbete undersöker möjligheten att utveckla ett C-bibliotek för tidsstämpling med hög precision och hög genomströmning vid dataöverföring över UART, avsett för användning i STM32-baserade mikrokontrollerprojekt, och att koppla ihop det med en användarvänlig visualiseringsapplikation. Projektets huvudsakliga mål är att underlätta realtidsutvinning, överföring och analys av inbyggda systemdata för att möjliggöra enkel åtkomst till felsökning och prestandaanalys under drift. Projektet är uppdelat i två huvuddelar. För det första utformades och implementerades binära protokoll för ett UART-dataöverföringsbibliotek i C för att enkelt kunna integreras i befintliga STM32-projekt. Viktiga funktioner i biblioteket inkluderar konfigurerbar datapaketstorlek, tidsstämpling före överföring och bufferthantering. För det andra utvecklades en plattformsoberoende PC-applikation i C# med Avalonia UI-ramverket och ScottPlot för att rita grafer. Applikationen ansluter till befintlig CAN-trafik för lokal tidsmärkning och dataanalys, eller till UART C-biblioteket för högre precision med hårdvarutidsstämplar. Den stödjer avläsning och plottning av flera variabler samtidigt samt dynamisk aktivering eller inaktivering av deras synlighet. Applikationen erbjuder ett interaktivt linjediagram med zoom- och scrollfunktioner, möjlighet att visa historiskt mottagen data, en oscilloskopliknande triggermekanism och en stapeldiagramvy av de senaste värdena. Konfigurationsfiler kan också sparas och laddas för att minimera upprepade arbetsmoment. Empirisk testning på ett STM32F407G-DISC1 utvecklingskort visade bibehållen användning av UART C-biblioteket vid överföringshastigheter på över 900 000 baud/s med en samplingsfrekvens på över 30 kHz vid avläsning av en 8-bitars datavariabel. Tester visade också att fler variabler med större datamängder var enkla att hantera vid lägre samplingsfrekvenser. PC-applikationen visade hög prestanda även den, genom att underhålla dataströmmar med över 50 000 datapaket per sekund och då den klarade av att visa tiotals miljoner punkter samtidigt i vyn för historisk data. Projektets slutsatser visar på att det var möjligt att utveckla både ett effektivt C-bibliotek för dataöverföring via UART, och en PC-applikation för visualisering av mikrokontrollerdata. De mål som sattes för projektet uppnåddes väl, och kunde implementeras med hjälp av standardiserade principer och designmönster för objektorienterad programmering utan att kompromissa med kodkvalitet. | |
| dc.identifier.coursecode | LMTX38 | |
| dc.identifier.uri | http://hdl.handle.net/20.500.12380/310547 | |
| dc.language.iso | swe | |
| dc.setspec.uppsok | Technology | |
| dc.subject | inbyggda system | |
| dc.subject | pc applikation | |
| dc.subject | realtidsvisualisering | |
| dc.subject | plattformsoberoende | |
| dc.subject | uart | |
| dc.subject | can | |
| dc.subject | mvvm | |
| dc.subject | c | |
| dc.subject | csharp | |
| dc.subject | dataanalys | |
| dc.title | Design av system för att extrahera och visualisera realtidsdata från inbyggda system under körning via CAN och UART: Flexibel programvara för mikrokontrolleranalys och visualisering | |
| dc.type.degree | Examensarbete på kandidatnivå | sv |
| dc.type.degree | Bachelor Thesis | en |
| dc.type.uppsok | M2 | |
| local.programme | Datateknik 180 hp (högskoleingenjör) |
