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!
Max Mustermann schrieb: > Wem ist schon mal sowas begegnet oder kann mir sagen wo o. wonach ich > suchen soll? Nimm doch einen Mega88. Selbst mit 1MHz langweilt der sich doch zwischen den Impulsen.
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,...
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.
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...
Gerd E. schrieb: > Wurde das > gesamte Ding geleert und neu beschrieben, fehlt der geheime Wert und die > Signaturen stimmen nicht mehr Schön! Aber kann ich dann trotzdem nicht feststellen welcher Wert mindestens im Zähler war!
>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.
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!
Max Mustermann schrieb: > Aber kann ich dann trotzdem nicht feststellen welcher Wert mindestens im > Zähler war! Das kannst du bei ausgebautem und ersetztem Zähler sowieso nicht, egal welcher Chip. Du weisst nur noch, dass das Original nicht mehr da ist.
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.
spontan schrieb: > ...aber das hast du bestimmt schon alles gewußt. Ja! Wird auch im jetzigen Prototypen teilweise so gemacht.
Max Mustermann schrieb: > Ja! > Wird auch im jetzigen Prototypen teilweise so gemacht. Wieso nur "teilweise2 ???
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.
hab das hier gefunden. Aber keine Bezugsquelle. http://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCsQFjAA&url=http%3A%2F%2Fwww.datasheet5.com%2Fdownload%3Fproduct%3DSLE4501%26fp%3Dekivkkis&ei=-UU9Vaa_IMKsswGQloH4CQ&usg=AFQjCNHPjTtqFhv_82HlB4cSqjiB3bayKQ&bvm=bv.91665533,d.bGg&cad=rja
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.
Schlumpf schrieb: > Und wie schnell ist dieser Arbeitstakt? Bei Hochbetrieb ca. 2/min. Meist aber weniger da das Gerät manuel bestückt wird. Aber bei teilweise Zweischichtbetrieb mit Extraschicht am Samstag kommt da trotzdem was zusammen.
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
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.
Wird wohl auf eine ATtiny12 im DIP8 Gehäuse hinauslaufen. Bei geschickter Schreibstrategie sollten die 64 Byte EEPROM locker reichen
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.
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).
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!
Max Mustermann schrieb: > zu groß! > wird wohl ATtiny12. Ich glaube du hast beim kehren der Werkstatt irgendein Gespräch mitgeschnappt aber so richtig wissen, wovon die Rede war, weisst du immer noch nicht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.