Wat is het MF4-bestandsformaat?
.mf4 is de bestandsextensie voor ASAM MDF 4 (Measurement Data Format versie 4), de open standaard van de automobielindustrie voor het opslaan van tijdreeks-meetgegevens van ECU's, CAN/LIN/Ethernet-bussen en sensoren. De standaard wordt onderhouden door ASAM e.V. en is mede ontwikkeld door Vector Informatik en Robert Bosch GmbH.
Elk .mf4-bestand opent met een 64-byte ID-blok met de ASCII-identificatie MDF (8 bytes met spaties aan het einde), gevolgd door een hiërarchische gekoppelde lijst van getypeerde blokken: Header (HD), Data Groups (DG), Channel Groups (CG), Channel-definities (CN) en Data-blokken (DT/DZ). Elk kanaal bevat zijn signaalnaam, fysieke eenheid en waardeconversieformule in hetzelfde bestand, waardoor .mf4 zelfbeschrijvend is.
Datacompressie - DEFLATE, LZ4 of Transpose+DEFLATE - kan per datablok worden toegepast sinds MDF 4.1. Het formaat ondersteunt bijlageblokken voor het insluiten van kalibratiebestanden of afbeeldingen, en een finalisatievlag geeft aan of een opname correct is afgesloten. Niet-gefinaliseerde opnames beginnen met de ASCII-tekenreeks UnFinalizedMDF in plaats van het standaard ID-blok.
.mf4 wordt gebruikt bij HIL/SIL-testen, voertuiggegevensverwerving en AUTOSAR-kalibratieworkflows. Bestanden kunnen tientallen gigabytes groot worden voor volledige testrit-sessies. De open-source Python-bibliotheek asammdf (pip install asammdf) biedt snelle lees-/schrijftoegang; MATLAB, CANape en CANalyzer zijn de dominante commerciële tools. Het voorgaande .mdf-formaat (MDF 3.x, uit 1991) deelt hetzelfde bestandstype-voorvoegsel, maar gebruikt een andere blokstructuur.
Beveiliging & veiligheid
RISICO: LOWMF4 is een binair gegevensbestand; niet uitvoerbaar. Bestanden kunnen bedrijfseigen meetgegevens van voertuigen bevatten (voertuigsignalen, ECU-parameters) die commercieel gevoelig zijn. Het extern delen van .mf4-bestanden kan vertrouwelijke kalibratie- of prestatiegegevens blootstellen.
Formaatdetails
in een notendopProgramma's die MF4-bestanden openen
Technische details
diepe specificaties| Standaardisatie-instantie | ASAM e.V. (Association for Standardization of Automation and Measuring Systems) |
| Bestandsidentificatie | 8-byte ASCII 'MDF ' (MDF + 5 spaties) op offset 0 van het 64-byte ID-blok |
| Byte-volgorde | Little-endian (standaard); big-endian toegestaan door specificatie maar zelden gebruikt |
| Blokstructuur | Hiërarchische gekoppelde lijst: ID → HD → DG → CG/CN → DT/DZ blokken via absolute byte-positie pointers |
| Compressie | Optionele DEFLATE (zlib), LZ4, of Transpose+DEFLATE per datablok (MDF 4.1+) |
| Typische bestandsgrootte | 1 MB - 10 GB (grote ECU/CAN log-sessies) |
| Signaal-metadata | Signaalnaam, fysieke eenheid en waardeconversieformule opgeslagen per kanaal binnen het bestand |
| Versie-codering | 4-karakter ASCII-tekenreeks op ID-blok offset 8 (bijv. '4.10', '4.20') |
| Bus-logging ondersteuning | CAN, LIN, FlexRay en Ethernet frame-logging (toegevoegd in MDF 4.1+) |
| Integriteitscontrole | Optionele MD5-checksum bijlage; finalisatievlag in MDF 4.1+; niet-gefinaliseerde bestanden beginnen met 'UnFinalizedMDF' |
| Python-toegang | asammdf-bibliotheek (pip install asammdf) - open-source lezen/schrijven |
| Bemonsteringsfrequentie | Metadata per kanaal; CAN-bus doorgaans 1-1.000 Hz, sensorgegevens tot in het MHz-bereik |
| Besturingssystemen | Windows, Linux |
| Uitgebracht | 2009 (ASAM MDF 4.0 published as official standard) |
| Laatste versie | ASAM MDF 4.2.0 (2019); 4.3.0 planned |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.asam.net |
MF4 conversies
Community V&A
gevraagd door gebruikersVeelgestelde vragen
Wat is een .mf4-bestand?
Hoe open ik een .mf4-bestand gratis?
Kan MATLAB .mf4-bestanden openen?
Hoe converteer ik .mf4 naar CSV?
from asammdf import MDF; MDF('file.mf4').export('csv'). Of open het in CANape en gebruik de exportfunctie.Wat is het verschil tussen .mdf en .mf4?
.mdf is het oudere MDF 3.x-formaat; .mf4 is expliciet MDF 4.x. Beiden gebruiken dezelfde magic bytes maar verschillen in de versie-tekenreeks. asammdf en Vector-tools lezen beide.