Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Ingebed

Hoe ruis op systeemniveau in digitale interfaces kan leiden tot valse fouten in serieel Flash-geheugen

In het niet aflatende streven naar hogere prestaties op systeemniveau, zijn Integrated Device Manufacturers (IDM's) goed thuis in het ontwikkelen van digitale interfaces die in staat zijn om met hoge snelheden te werken in elektrisch uitdagende omgevingen. Standaardinterfaces, zoals SPI en I2C, bieden een relatief eenvoudige manier om apparaten van verschillende leveranciers op een betrouwbare en effectieve manier met elkaar te verbinden. Hetzelfde geldt voor andere typen interfaces.

Het digitale domein kan worden gezien als een veilige haven voor ontwikkelaars die snel complexe systemen willen bouwen met behulp van 'standaard' technologieën. De embedded industrie is namelijk grotendeels afhankelijk van op standaarden gebaseerde interfaces die ‘gewoon werken’, omdat ze het raamwerk voor innovatie bieden. Als ze niet ‘gewoon werken’, kan dit tot verwarring leiden, vooral als de oorzaak van een fout verkeerd wordt geïnterpreteerd. Elke verwarring zou begrijpelijk zijn, aangezien de interfaces zijn ontwikkeld om robuust en betrouwbaar te zijn wanneer ze worden toegepast in overeenstemming met de specificatie. Het feit dat de onderliggende fysieke interface in silicium is gefixeerd, zou ook geruststellend zijn.

Systeemruis, in al zijn vormen

Elke vervorming van een signaal kan worden geïnterpreteerd als ruis en het is waarschijnlijk redelijk om aan te nemen dat ruis het vaakst zichtbaar is in een communicatieomgeving; het ontvangen signaal is niet het verzonden signaal. Deze directe correlatie is relatief eenvoudig te vinden, maar in sommige gevallen zijn oorzaak en gevolg niet zo gemakkelijk te identificeren. De uitdaging wordt nog groter wanneer de fout intermitterend wordt.

De huidige microcontrollers zijn ontworpen om een ​​betrouwbare werking te leveren met minimale configuratie. In het geval van een seriële interface kan dit het standaard instellen van hoge stuurstromen op de I/O-pinnen inhouden om de invloed van lange PCB-sporen of hoge capacitieve belastingen tegen te gaan. In sommige gevallen kan dit leiden tot oversturing van een interface, wat op zijn beurt kan leiden tot afgeleide effecten die worden geïnterpreteerd als fouten of fouten.

Seriële Flash-geheugenapparaten bieden bijvoorbeeld een aantal geavanceerde functies die een betrouwbare werking garanderen en het apparaat kunnen uitlezen. Dit kan onder meer ruisfilters, geavanceerde adaptieve programmering en wisalgoritmen zijn die celmarges beheren. Sommige fabrikanten nemen ook ECC op in de opslagelementen, waardoor extra metagegevens worden opgeslagen bij elke schrijfbewerking, zodat enkele of meer bits fouten kunnen worden gedetecteerd en gecorrigeerd, maar deze ECC-oplossing helpt niet wanneer ruis de basisberichttransactie op de communicatie-interfacebus corrumpeert.

Ruis op de SPI-interface kan verkeerd worden geïnterpreteerd als extra klokpulsen. Aangezien SPI een klokgestuurde interface is, zou dit gevolgen hebben, zoals het negeren van opdrachten, het verkeerd interpreteren van gegevens, het gebruik van verkeerde opdrachten, enz. Ruis draagt ​​echter ook energie met zich mee en in sommige gevallen kan deze energie zelf fouten veroorzaken in de werking van een apparaat .

pompen opladen en doorschieten

In de meeste gevallen kan enige over- of onderschrijding van een signaal worden getolereerd door digitale interfaces. Men mag echter niet vergeten dat de energie onder de curve nog steeds aanwezig is en in sommige circuits kan dit storend zijn.

Een voorbeeld hiervan is het circuit van de laadpomp in het seriële Flash-geheugen. Als de SPI-bussignalen significante ruis bevatten, bestaat de kans dat de energie in dat signaal zich kan voortplanten naar de laadpomp en de werking ervan kan verstoren.

De laadpomp in het Flash-geheugen is een kritieke functie, omdat deze de kracht levert die nodig is om de bias van een geheugencel te veranderen en, in feite, een logische 1 of 0 op te slaan. Het schrijf-/wisproces is een cruciaal moment in de werking van Flash geheugen kan elke onderbreking van de laadpomp gedurende deze tijd schrijf- of wisfouten veroorzaken en hoewel deze fouten kunnen worden gedetecteerd, bestaat de kans dat ze niet zichtbaar zijn.

Een dergelijke fout kan gemakkelijk worden geïnterpreteerd als een fout in het Flash-geheugenapparaat. Het feit dat Flash-geheugen een eindig aantal lees- en schrijfcycli heeft dat door de fabrikant wordt gegarandeerd, wordt goed begrepen door ingebedde ontwerpers, maar wat misschien niet zo goed wordt begrepen, is het belang van het bieden van een schone interface zonder te veel overshoot of undershoot.

Beschouw als voorbeeld de afbeelding in figuur 1. Het toont gezonde celmarges voor zes Flash-apparaten. Er ontstaan ​​twee verschillende patronen tussen cellen die zijn geprogrammeerd met gegevens die logische 1 (2V tot 5V) en 0 (>6v) vertegenwoordigen. Ter vergelijking:de afbeelding in figuur 2 toont de geheugencelmarge voor drie Flash-apparaten die te maken hebben gehad met gegevenscorruptie als gevolg van over- en onderschrijding van de controlelijnen.


Figuur 1:Deze afbeelding toont goede gegevens over celmargescheiding voor Flash-geheugen dat is geprogrammeerd en gewist. (Bron:Adesto)


Figuur 2:Deze afbeelding toont slechte scheidingsgegevens van de celmarges voor Flash-geheugen waar er aanzienlijke ruis aanwezig was op de SPI-lijnen. (Bron:Adesto)

Meerdere factoren kunnen bijdragen aan het geluidsniveau, zoals de werkfrequentie, de amplitude van het signaal, de MCU-aandrijfniveaus en de energie in de geluidspieken. PCB-ontwerp en overspraak tussen signalen kunnen ook bijdragende factoren zijn.

De gegevens in figuur 2 tonen de effecten van buitensporige overshoot en undershoot op de seriële interface. Afbeelding 3 hieronder toont een weergave van hoe deze overschrijding eruit zou zien in een echte applicatie.

klik voor grotere afbeelding

Figuur 3:Deze trace-afbeelding toont duidelijk de over- en onderschrijding aanwezig op de SPI-lijnen, wat resulteerde in een piek-tot-piek spanning van 5,65 V, wat de absolute maximale waarde overschrijdt die is gedocumenteerd in de Flash-geheugenspecificatie . (Bron:Adesto)

Het resultaat van deze ruis was een foutieve werking van het apparaat, wat opdook als fouten in de opgeslagen waarden in het seriële flashgeheugen. Aanvankelijk werd de echte impact van de fouten gemist, aangezien het minder frequent pollen van het STATUS-register minder fouten rapporteerde, waardoor de ontwerper onjuiste veronderstellingen maakte over de oorzaak van de fout.

De ware oorzaak identificeren

Hoewel deze fout leek op een geheugenfout, lag de hoofdoorzaak niet bij de Flash-apparaten. Dit werd ontdekt door Adesto-ingenieurs door de SPI-signalen te onderzoeken en de aanwezige systeemruis te identificeren. Hoewel de ruis gedeeltelijk kon worden toegeschreven aan een impedantie-mismatch op het PCB-spoor tussen de MCU en het Flash-geheugen, was dit niet het volledige verhaal.

De bron van het geluid was eigenlijk de MCU-interface, die bij het opstarten standaard op een hoog schijfniveau staat. De overmatige drive was voldoende om over- en onderschrijding van de SPI-lijnen te veroorzaken, wat in sommige gevallen verkeerd kan worden geïnterpreteerd als signaalovergangen, wat leidt tot lees- of schrijffouten. In dit geval bleek echter dat de overshoot voldoende energie bevatte om de Flash-laadpomp te verstoren, die op zijn beurt de fouten veroorzaakte.

In het ontwerp van de klant leverde de gebruikte microcontroller een configureerbare aandrijfstroom voor zijn I/O, die bij het opstarten standaard HOOG is. Omdat de applicatiecode dit niveau tijdens de initialisatie niet heeft gewijzigd, bleef het hoog bij normaal gebruik.

De impact hiervan is misschien niet duidelijk voor andere apparaten op de SPI-bus, aangezien digitale interfaces doorgaans robuust zijn ontworpen. De gevoelige aard van Flash-geheugen, de noodzaak om op veel hogere frequenties te werken, en in het bijzonder de werking van de ladingspomp, maakten het geheugen vatbaar voor overshoot/undershoot. Dit leidde tot een foutieve werking die aanvankelijk verkeerd werd geïnterpreteerd als een fout in het Flash-geheugenapparaat.

De fout corrigeren

Door de aandrijfstroom via firmware te verminderen, werd de overshoot en undershoot tot nul gereduceerd (Figuur 4), wat op zijn beurt resulteerde in een foutloze werking van het Flash-geheugen.

klik voor grotere afbeelding

Figuur 4:Zonder overschrijding kon de laadpomp van het seriële Flash-geheugen correct werken en betrouwbare functionaliteit bieden. (Bron:Adesto)

Uit de aard van de fout bleek dat het Flash-apparaat er alles aan deed om het effect van de fout, namelijk de overmatige systeemruis op de SPI-interface, te compenseren.

Misschien wel het belangrijkste punt hier is dat de oorzaak eigenlijk een ontwerpkenmerk van de gebruikte MCU was, die standaard was ingesteld op een bedrijfsmodus die in de meeste situaties volkomen acceptabel zou zijn. De combinatie van een hoge drive-output en imperfecte PCB-inductantie creëerde een toestand die resulteerde in intermitterende storingen. Het verminderen van de drive-output op de MCU, door middel van een eenvoudige firmwarewijziging, loste het probleem op.

Dit benadrukt de echte les hier:dat wat lijkt op een echte storing van een onderdeel, in feite een onoplettendheid in het ontwerp kan zijn. Het vervangen van de geheugenapparaten zou een natuurlijke reactie zijn geweest op wat aanvankelijk als de fout werd beschouwd, maar door een sterke werkrelatie tussen klant en leverancier, evenals hardware- en software-engineeringteams, werd de werkelijke oorzaak gevonden en de juiste oplossing toegepast . Het resultaat was een aanzienlijk beter ontwerp, hogere systeemprestaties en grotere betrouwbaarheid.

Conclusie

Systeemruis kan eenvoudig worden weggewuifd als er geen duidelijke impact is. Intermitterende fouten zijn bijzonder moeilijk te lokaliseren onder optimale omstandigheden, maar wanneer de fouten verkeerd worden geïnterpreteerd, wordt de uitdaging nog moeilijker.

Overshoot is mogelijk de minst zichtbare vorm van systeemruis, maar zoals hier wordt uitgelegd, kan de impact ervan aanzienlijk zijn. Flash-geheugen is een betrouwbare technologie, maar een die afhankelijk is van een zorgvuldig ontworpen interface. Overmatige ruis op de seriële interface kan zich verspreiden naar het circuit van de laadpomp, wat afbreuk doet aan de werking van het programmeer- en wiscircuit. Dit resulteert in onvoorziene kenmerken die gemakkelijk kunnen worden geïnterpreteerd als een fout in het apparaat zelf die zich manifesteert als geheugencelfouten, evenals in inconsistente of onbetrouwbare programmeer- en wisbewerkingen.

In dit geval had het vervangen van het Flash-geheugen en ervan uitgaande dat het probleem was opgelost, ertoe kunnen leiden dat producten op de markt zijn gekomen die op een bepaald moment waarschijnlijk zouden mislukken. In plaats daarvan was de ontwerper in staat om de programmering te verbeteren en de consistentie te wissen met een significante factor, met een effectief uithoudingsvermogen dat sprong van een onaanvaardbare ~20K cycli voordat fouten werden gedetecteerd naar meer dan 2,5 miljoen cycli zonder fouten en zonder dat er aanvullende foutdetectie- en correctieroutines nodig waren.

De mate van configureerbaarheid die moderne microcontrollers bieden, kan zowel als een hulp als een belemmering worden gezien; het feit dat de aandrijfstroom configureerbaar is, was mogelijk de oorzaak van de overshoot in dit voorbeeld. Het verminderen van de aandrijfkracht was echter ook effectief bij het oplossen van het probleem.


Ingebed

  1. Keysight lanceert nieuw faseruistestsysteem
  2. Winbond:NOR+NAND dual-die geheugenchip ondersteunt nu NXP Layerscape LS1012A
  3. Toegang tot:voertuig-pc met CAN, GbE, PoE, 4G, 3G en WLAN
  4. Hoe digitale tweelingen de logistieke prestaties kunnen helpen verbeteren
  5. Hoe cloudanalyse de transformatie van de digitale supply chain kan versnellen
  6. Waarom leveranciers van materialen digitale marketing moeten omarmen - en hoe we kunnen helpen!
  7. Hoe OEM's van medische apparatuur industrie 4.0-bedrijfsmodellen kunnen implementeren
  8. Hoe verontreinigingen in perslucht processen kunnen beïnvloeden
  9. Hoe het aantal fouten te verminderen en het productiekwaliteitssysteem te verbeteren?
  10. Hoe kleine winkels digitaal kunnen worden - economisch!
  11. Een draaibank waterpas zetten