Hallo zusammen,
Zusammengefasst ist das so: Der Controller soll inputs für einen anderen
Controller simulieren und die outputs dann messen. "Manuel" geschieht
das wunderbar, also per terminal inputs eingeben und outputs lesen. Die
kommunikation mit dem PC geschieht über USB.
Der nächste Schritt ists nun, das ganze zu automatisieren, also aus
einer .txt Datei testcases (inputs) einlesen, simulieren, outputs messen
und gegebenenfalls in einer anderen .txt Datei protokollieren.
Ich habe die letzten 2 Tage gesucht und gelesen, das meiste was ich
gefunden habe, war wie man mit SPI und SD-Karte umgeht, aber nicht wenn
die datei auf der Festplatte im PC ist.
PS:
http://elm-chan.org/fsw/ff/00index_e.html
habe ich gecheckt, die Dokumentation und die Demofiles, trotzdem bin ich
(noch) planlos und wäre für eure Tipps sehr dankbar,
LG
Jim Meba schrieb:> Wenn ich das richtig verstanden habe, dann ist das ein Problem für den> PC und nicht auf dem Microkontroller.
Warum ist das ein Problem für den PC? der hat ein eigenes Betriebsystem
:)
Der µController soll nun auf der Festplatte des PCs Schreib- und
Lesezugriffe haben.
Bastler schrieb:> Dann brauchst du kein FATfs auf dem μC, sonder ein RemoteFs, NFS oder> so. Der PC wird dir was husten, wenn du seine Files lowlevel beschreiben> willst.
Das werde ich mal googlen, aber momentan sagt mir das nichts :)
Probier doch mal ein simples Protokoll über Seriellen Port:
O,<filename> crlf Datei öffnen
R crlf Lesen, PC antwortet mit <Daten> crlf
W,<Daten> crlf Schreiben
C crlf Datei schließen
Kann beliebig erweitert werden, z.B. Durch FileNummern für mehrere
offene Dateien, Öffnungs-Modus (Read, Write, Append, ...)
Syrer schrieb:> gefunden habe, war wie man mit SPI und SD-Karte umgeht, aber nicht wenn> die datei auf der Festplatte im PC ist.
Das Experiment "Festplatte SCHREIBEN" würde ich auch sehr vorsichtig
angehen. Mach erst mal kleine Schritte und prüfe ob DU überhaupt dort
lesen KANNST und ob DU überhaupt genau DORT schreiben DARFST wo Du es
möchtest. Dein PC-BS hat auch eine Meinung was Du darfst!
Die Frage ist:
Soll der zweite Controller die Steuerung übernehmen und die Files lesen,
den ersten Controller fütern und die Resultate speichern lassen oder
soll der zweite Controller nur Bindeglied spielen und nur vermitteln,
während der PC das Kommando hat. Bei letzterem bräuchte man kein
Remotefilesystem sondern ein eventuell selbstgestricktes Progrämmchen,
welches die Daten verschickt und empfängt während der zweite Controller
nur reagiert aber nicht wirklich was steuert. Das wäre eine andere
Aufgabenstellung.
32u4 hat ja USB, darüber kann man das simple Protokoll natürlich auch
verwenden.
BTW, SMB, das Windows Remote File Protokoll, ist übrigens fast genau so
gebaut. Nur etwas universeller, sprich aufwendiger
oszi40 schrieb:> Das Experiment "Festplatte SCHREIBEN" würde ich auch sehr vorsichtig> angehen. Mach erst mal kleine Schritte und prüfe ob DU überhaupt dort> lesen KANNST und ob DU überhaupt genau DORT schreiben DARFST wo Du es> möchtest. Dein PC-BS hat auch eine Meinung was Du darfst!
Ist eh klar, wenn ich was gelerent hab, dann die Arbeit aufzuteilen und
kleine Erfolge zu geniessen
Carsten R. schrieb:> Soll der zweite Controler die Steuerung übernehmen und die Files lesen,> den ersten Controller fütern und die Resultate speichern lassen oder> soll der zweite Controller nur Bindeglied spielen und nur vermitteln,> während der PC das Kommando hat. Bei letzterem bräuchte man kein> Remotefilesystem sondern ein eventuell selbstgestricktes Progrämmchen,> welches die Daten verschickt und empfängt während der zweite Controller> nur reagiert aber nicht wirklich was steuert. Das wäre eine andere> Aufgabenstellung.
ähm, sagen wir µController A hat die aufgabe temperatur zu messen und
einen Lüfter zu steuern, µController B kann den sensor und den Motor für
A spielen und empfangen was A so macht, also temperatur und Tachosignal
simulieren und duty cycle empfangen. Das alles geht über USB vom PC aus
(Die kommunikation zwischen PC und B meine ich), und nun soll B Daten
aus einer datei einlesen und weiter machen als ob ein user das händisch
machen würde.
Bastler schrieb:> 32u4 hat ja USB, darüber kann man das simple Protokoll natürlich> auch> verwenden.> BTW, SMB, das Windows Remote File Protokoll, ist übrigens fast genau so> gebaut. Nur etwas universeller, sprich aufwendiger
Ja, wie gesagt .. händisch, also wert für wert, geht das, nun sollte
µController B die Daten von einer datei einlesen.
Update: Wie gesagt, Die Kommunikation mit dem PC über USB ist schon da,
d.h. ich habe sowas wie:
- Temperature:25
- Temperature sent to application, measuring the duty cycle
- O.K. duty cycle is 50%
ODER
- ERROR, Temperature is over lower bound and the motor is not running
Eine .txt datei soll nun z.b. folgendes beinhalten:
T:25
T:30
T:10
...
und µController B soll nun diese Werte einlesen und verarbeiten.
Ich hoffe die Idee ist nun klar :)
Dann kontrolliert er entweder das Blockdevice selbst, SD-Card, oder er
bittet den PC das für ihn zu tun.
Mit SD wäre er in der Lage nach vorbereiteter Kommandodatei Tests
durchzuführen und gegen ebenso vorbereitete Ergebnisdatei zu prüfen. Die
SD füllt der PC, dann steckt man sie in den Prüfautomat. Vorteil: 10
Automaten können parallel arbeiten, event. auch verschiedene Testpläne.
Nur wozu dann USB?
Es könnte natürlich auch ein PC-Programm die Testpläne aus einer Datei
lesen und dann wie schon funktionierend Stück für Stück an den μC
schicken und das Ergebnis von dort lesen. Programme können auch, was man
am Terminal von Hand macht ;-)
Syrer .. schrieb:> und µController B soll nun diese Werte einlesen und verarbeiten.> Ich hoffe die Idee ist nun klar :)
Nun ist die Frage,
1.ob Dein µC B "Einzelfeuer" schon erfolgreich lieferte oder
2.geht es gar nicht?
3.Besteht das Problem NUR bei "Dauerfeuer"? Dann wäre es evtl. ein
Zeitproblem/Handshake?
Bastler schrieb:> Mit SD wäre er in der Lage nach vorbereiteter Kommandodatei Tests> durchzuführen und gegen ebenso vorbereitete Ergebnisdatei zu prüfen. Die> SD füllt der PC, dann steckt man sie in den Prüfautomat. Vorteil: 10> Automaten können parallel arbeiten, event. auch verschiedene Testpläne.> Nur wozu dann USB?
Das kann ich leider momentan nicht ändern, also die kommunikation mit
dem PC muss über USB laufen.
Bastler schrieb:> Es könnte natürlich auch ein PC-Programm die Testpläne aus einer Datei> lesen und dann wie schon funktionierend Stück für Stück an den μC> schicken und das Ergebnis von dort lesen. Programme können auch, was man> am Terminal von Hand macht ;-)
Aso, genau das wäre richtig für mich, stichwörter bitte ;;)
oszi40 schrieb:> 3.Besteht das Problem NUR bei "Dauerfeuer"? Dann wäre es evtl. ein> Zeitproblem/Handshake?
Die Idee für "Dauerfeuer" ist nicht vorhanden, denn das Problem besteht
darin, dass ich keine Ahnung habe, wie der Controller die .txt datei
überhaupt lesen könnte..
Die Idee hast du doch schon geliefert bekommen. Den Rest der
Semester-/Abschuß-Arbeit mußt du schon selbst machen. Das gefällt jetzt
bestimmt wieder einigen nicht, aber ist halt so!
Bastler schrieb:> Das gefällt jetzt bestimmt wieder einigen nicht, aber ist halt so!
Ne, ich gehöre nicht zu dieser Gruppe :), aber in dem Bereich habe ich
eigentlich keine Erfahrung, und ich verlange nie fetrige Lösungen
Bastler schrieb:> Nochmal: der PC liest die Datei und tut dann so, als würde das jemand> eintippen!
hmm, die das ist inzwischen klar, danke :)
Update: Wonach würde man dann suchen wenn man genau das beabsichtigt? :D