Impulszähler-Chip

OP #4106903
Lesenswert?

Moin!

Suche für eine Geräteentwicklung einen Zähler-Chip

Anforderung:
Zählerbreite: 20-32bit
Zählerstand bleibt auch ohne Strom erhalten
Zähler nicht rücksetzbar
Auslesbar über I2C
Separater Zählimpuls-Eingang

Schön wäre:
Dil Gehäuse
Serien-Nummer
Doppel-Zähler (2 Zähler in einem Chip)

Wem ist schon mal sowas begegnet oder kann mir sagen wo o. wonach ich 
suchen soll?

Danke!
#4106923
Lesenswert?

Max Mustermann schrieb:
> Wem ist schon mal sowas begegnet oder kann mir sagen wo o. wonach ich
> suchen soll?

Mikrocontroller.

Das "nicht rücksetzbar" kannst Du über eine Kombination aus dem 
Flash-Ausleseschutz und einem geheimen Wert im Flash realisieren. Mit 
dem geheimen Wert, zusammen mit der vom Hersteller fest im µC 
hinterlegten Seriennummer, werden die gültigen Daten signiert. Wurde das 
gesamte Ding geleert und neu beschrieben, fehlt der geheime Wert und die 
Signaturen stimmen nicht mehr.

Für meine Begriffe sollte eine Erkennung der Manipulation ausreichen, 
denn wirklich "nicht rücksetzbar" hilft nicht gegen Zerstören durch 
Auslöten, Hammer,...
Gast #4107149
Lesenswert?

Max Mustermann schrieb:
> Marc Vesely schrieb:
>> Nimm doch einen Mega88.
>
> Gerd E. schrieb:
>> Mikrocontroller.
>
> Ach ne, da wär ich jetzt nicht drauf gekommen;-)
>
> Und wo soll der Zählerstand non volatil abgespeichert werden?
> 20 Bit hochzählen sind über 1.000.000 Schreibzugriffe.
> Das EEPROM der atmega ist aber nur für 100.000 Schreibzugriffe
> spezifiziert.

Den ATmega-8 Zähler als extra Schaltung konzipieren mit Pufferelko.
Bei Spannungsverlust werden die Zählwerte vom SRAM ins EEPROM 
geschrieben. Fertig...
Gast #4107159
Lesenswert?

>Ach ne, da wär ich jetzt nicht drauf gekommen;-)

Wenn Du es eh schon weißt, dann mach es einfach.

Du kannst ja nach 500.000 Schreibzugriffen die Schreibadresse ändern. 
Und schon hast Du wieder ein paar Zugriffe gewonnen.

Andernfalls brauchst Du ja nur schreiben, wenn die Betriebsspannung des 
µC weggeht. Mit Schaltungsmaßnahmen kannst Du erreichen, daß das 
Programm noch schreiben kann, bevor der µC schläft.

Damit kannst du den µC 1.000.000 mal ein und ausschalten, bevor der 
Datenerhalt nicht mehr garantiert ist.

...aber das hast du bestimmt schon alles gewußt.
#4107160
Lesenswert?

Max Mustermann schrieb:
> Marc Vesely schrieb:
>> Nimm doch einen Mega88.
>
> Gerd E. schrieb:
>> Mikrocontroller.
>
> Ach ne, da wär ich jetzt nicht drauf gekommen;-)
>
> Und wo soll der Zählerstand non volatil abgespeichert werden?
> 20 Bit hochzählen sind über 1.000.000 Schreibzugriffe.
> Das EEPROM der atmega ist aber nur für 100.000 Schreibzugriffe
> spezifiziert.

Deswegen nutzte ich FRAM. Perfekt!
#4107168
Lesenswert?

Max Mustermann schrieb:
> Und wo soll der Zählerstand non volatil abgespeichert werden?
> 20 Bit hochzählen sind über 1.000.000 Schreibzugriffe.
> Das EEPROM der atmega ist aber nur für 100.000 Schreibzugriffe
> spezifiziert.

Du hast aber nicht nur eine Speicherstelle zur Verfügung und die 
spezifizierte Zahl der Schreibzugriffe gilt pro Speicherzelle.

Also ganz einfach: Du schreibst wie in einen Ringpuffer Deinen Wert 
zuerst an Adresse eeprom[0], dann eeprom[1], ..., eeprom[EEPROM_MAX], 
eeprom[0], eeprom[1],...

Da Dein Zähler immer nur hochzählt, brauchst Du keinen Pointer der Dir 
sagt wo Du gerade bist, Du kannst beim Start einfach einmal durchs 
EEPROM loopen und den höchsten Wert finden.

Damit bei plötzlichem Spannungsabfall nix durcheinanderkommt, brauchst 
Du nur von der Spannungsversorgung eine Diode und dann einen Elko der 
dick genug ist um die Zeit eines EEPROM-Schreibvorgangs zu überbrücken.
OP #4107236
Lesenswert?

Asko B. schrieb:
> Wieso nur "teilweise2 ???

Weil nicht Narrensicher genug. Eine Hardwaremanipulation ist einfach 
leichter nachzuweisen als eine Softwaremanipulation.

A-Freak schrieb:
> so etwas wie Tintenpatronen für Drucker

Nein! Die Geräte sollen vermietet/verleast werden. der Kunde zahlt neben 
einem Grundbetrag einen kleinen Betrag pro Arbeitstakt. Da ist dann auch 
eine benutzungsabhängige Wartung mit abgegolten.
#4107258
Lesenswert?

Max Mustermann schrieb:
> Die Geräte sollen vermietet/verleast werden. der Kunde zahlt neben
> einem Grundbetrag einen kleinen Betrag pro Arbeitstakt. Da ist dann auch
> eine benutzungsabhängige Wartung mit abgegolten.

Nehmen wir mal einen böswilligen Kunden an, der wirklich jemanden mit 
ordentlichen Elektronikkenntnissen ne Weile an einer solchen 
Manipulation arbeiten lässt.

Was hindert den daran, die Leitung zum Zählereingang während des 
Betriebs zu kappen und hinterher, wenn er das Gerät zurückgibt (oder der 
Kundendienst kommt), sie wieder zu verbinden?

Ich würde hier die oben beschriebenen Signaturen im Zählercontroller zum 
Einsatz kommen lassen. Der Hauptcontroller schickt ein Nonce an den 
Zähler und bekommt das vom Zähler signiert zurück. Der Zähler zählt in 
diesem Moment eins hoch und der Hauptcontroller führt einen Arbeitstakt 
auf der Maschine aus.

Kommt die Signatur dagegen falsch zurück, sperrt sich der 
Hauptcontroller.

Ein Austauschen oder Abklemmen des Zählercontrollers hilft nix weil dann 
die Maschine still steht. Auch die Kommunikation mitzuschneiden und mit 
einem Fake-Zählercontroller wieder abzuspielen ist wirkungslos weil das 
Nonce ja jedesmal anders ist.

Wenn Du Angst hast, daß der Kunde vor dem Zurückgeben der Anlage den 
Zählercontroller ausbaut und zerstört, dann helfen folgende Lösungen:
a) Vertragsbedingungen mit saftiger Vertragsstrafe für diesen Fall
b) Der Controller ist immer nur für x Takte freigeschaltet. Jedesmal 
wenn der Servicetechniker vorbeikommt, liest er den Zählerstand aus und 
schaltet wieder x Takte frei. Das kann natürlich auch Online gemacht 
werden.
OP #4107286
Lesenswert?

Gerd E. schrieb:
> Nehmen wir mal einen böswilligen Kunden an, der wirklich jemanden mit
> ordentlichen Elektronikkenntnissen ne Weile an einer solchen
> Manipulation arbeiten lässt.

Davon gehe ich nicht aus!
Die Kunden sind alle persönlich bekannt und seriös.
Die Miet/Leasingverträge laufen über mehrere Jahre.

Bin nur auf der suche nach einer möglichst simplen Ein-Chip-Lösung.

Der Haupt-MC soll bei nicht vorhandenem Zählerchip einfach die Arbeit 
verweigern
#4107303
Lesenswert?

Max Mustermann schrieb:
> Die Kunden sind alle persönlich bekannt und seriös.
> Die Miet/Leasingverträge laufen über mehrere Jahre.
>
> Bin nur auf der suche nach einer möglichst simplen Ein-Chip-Lösung.

Und warum dann "Aber kann ich dann trotzdem nicht feststellen welcher 
Wert mindestens im Zähler war!"?

Nimm doch einfach nen µC wie oben beschrieben und fertig. Die ganzen 
Sachen mit den Signaturen erhöhen die Sicherheit gegen Manipulation, 
sind aber eben nicht mehr möglichst simpel.

> Der Haupt-MC soll bei nicht vorhandenem Zählerchip einfach die Arbeit
> verweigern

Dann musst Du irgendeine Art Bestätigungssignal vom Zählerchip 
zurückliefern was dann vom Haupt-MC ausgewertet wird.
Gast #4107320
Lesenswert?

Das wären dann ca 0,5 Mio Zyklen/a

Wenn es dir nur darum geht, dass der ATmega nur 100 000 Zyklen kann, 
dann hänge halt ein besseres, extrenes EEPROM dran. Von ST gibt es z.B. 
welche, die können 4 Mio Zyklen. Das sollte ja dann wohl reichen, oder?

Aber ich verstehe immer noch nicht, was schlecht daran ist, im ATmega 
die Werte eben auf unterschiedlichen Speicherstellen abzulegen, oder die 
Methode zu verwenden, dass du geschrieben wird, wenn die Spannung 
einbricht.

Was spricht da konkret dagegen?
Das wäre doch die von dir gesuchte 1-Chip-Lösung.

Einen Counter zu finden, der exakt das tut, was du dir vorstellst, wird 
wohl schwer sein.
#4107323
Lesenswert?

nehmen wir den atmega8
der hat einen eeprom mit 128 pages zu je 4 byte
jedes schreiben "belastet" immer eine ganze page
damit kannst du 128 * 100k = 12,8 Millionen mal schreiben bevor das Ding 
aufgibt.
Das lässt sich noch gut vergrößern indem du halt den avr größer wählst 
(atmega328 hat auchnoch dip28).
Dann setzt du die lockbits so, dass der eeprom via isp nurnoch lesbar 
ist.
Damit hast du maximal billig (son mega kostet ja keine 2€) deinen 
zählerchip.
Dann kannst du zur authentifizierung gegenüber der steuerung jede noch 
so abgefahrene kryptographie nutzen.
zusätzlich kann sich auchnoch die steuerung dem mega gegenüber 
"ausweisen", damit verhinderst du auch replay-angriffe in diese richtung 
(warum der kunde auch immer den zähler absichtlich hochzählen will sei 
dahingestellt).
OP #4107324
Lesenswert?

Gerd E. schrieb:
> Dann musst Du irgendeine Art Bestätigungssignal vom Zählerchip
> zurückliefern was dann vom Haupt-MC ausgewertet wird.

Der Haupt-MC liest beim Einschalten den Zählerstand aus und speichert 
ihn im eigenen EEPROM.
Kann der MC keinen Zähler finden geht das Programm in einen Fehlerstatus 
und stopt.
Wird ein bestimter Wert Überschritten bekommt der Bediener einen 
Wartungshinweis den er quittieren muss.
Dann läuft das normale Arbeitsprogramm.Der Zähler zählt die 
Arbeitstakte.
Der Bediener schaltet das Gerät einfach am Hauptschalter ab.
Beim erneuten einschalten liest der MC den Zähler erneut aus und 
vergleicht den Zähler aus und vergleicht ihn mit dem im eigenen EEPROM 
gespeicerten Wert.
Ist der Wert im Zähler kleiner als der im EEPROM so ist was nicht in 
Ordnung!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren