Ich habe großes Interesse daran, eine solche USART-, UART-, RS232-, USB-, SPI-, I2C- und TTL-Kommunikation zu lernen. Ich finde einige detaillierte Erklärungen zu den oben genannten Mitteilungen in diesem Link
Und ich möchte ein tiefes Verständnis dafür haben, indem ich es mit einem Mikrocontroller lerne. Heutzutage gibt es viele Arten von Mikrocontrollern. Und ich bin sehr verwirrt, welchen ich wählen soll, um das zu lernen, da ich ein Neuling in Sachen Mikrocontroller bin.
Aber ich finde diesen Link und denke, dass dieses Arduino-Starterkit ausreichen würde, um die Kommunikation über das Protokoll zu lernen. Habe ich recht? gibt es eine günstigere? Wenn nicht, empfehlen Sie mir bitte das Richtige.
Gibt es auch gute Referenzen, um die Kommunikation über die obigen Protokolle zu lernen?
Danke schon mal im Voraus.
Ich habe das Gefühl, dass das Problem, das Sie haben, darin besteht, dass Sie sich nicht sicher sind, wo Sie anfangen sollen, und dass Sie etwas Hilfe benötigen, um die notwendigen Recherchen selbst durchzuführen, damit Sie sich diese von Ihnen aufgelisteten Protokolle selbst beibringen können.
Für mich scheint es drei Schritte zu geben, um ein relativ einfaches Protokoll (einfach im Vergleich zu Protokollen wie Bluetooth) gut zu verstehen und es in MCUs zu implementieren. Ich werde hier allgemein bleiben, aber ich werde versuchen, Ihnen so gut wie möglich einige gute Richtungen aufzuzeigen, damit Sie mit Ihrer eigenen Forschung beginnen können.
1: Lernen Sie das Protokoll
Lesen Sie mehr über das Protokoll auf einer niedrigeren Ebene; welche Signale beteiligt sind, die Logik, Timing-Anforderungen, wie die Daten übertragen werden usw. Dies scheint beispielsweise ein großartiger Artikel zu sein, um sich selbst beizubringen, wie UART auf niedriger Ebene funktioniert:
Finden Sie Artikel wie diesen für alle Protokolle und verstehen Sie wirklich, was an den Pins einer MCU passiert.
2: Forschungsdatenblätter zu MCUs
Finden Sie eine MCU, die dieses Protokoll unterstützt, und lesen Sie das Datenblatt. Digikey ist ein großartiges Tool, um MCUs und die damit verbundenen Datenblätter zu finden. Zum Beispiel (ich bin selbst ein AVR-Mensch) wähle ich den allgegenwärtigen ATmega328p. Die Suche danach in Digikey ergibt die verschiedenen Pakete für diesen Chip. Ich wähle DIP ( ATmega328p DIP ).
Hier können Sie das Datenblatt der MCU öffnen. In Abschnitt 20 erläutert das Datenblatt seine USART-HW (Sie können es so konfigurieren, dass es sich asynchron verhält, um ein einfacher UART zu werden). Hier müssen Sie sich Zeit nehmen und recherchieren, wie Sie die verschiedenen Register einstellen, um den UART zu konfigurieren, und wie Sie im Allgemeinen eine Schnittstelle zur HW herstellen.
Schauen Sie sich das HW-Design des Protokolls selbst an:
Die fettgedruckten HW-Teile, z. B. UBRRn, UDRn, UCSRnA, UCSRnB und UCSRnC, sind Register, zu denen Sie eine Schnittstelle herstellen, um die USART-HW zu verwenden. Beispielsweise können Sie das Register UCSRnC verwenden, um zu steuern, ob der USART synchron oder asynchron funktioniert oder nicht!
3: Implementieren Sie es tatsächlich
Schnappen Sie sich die MCU Ihrer Wahl, bauen Sie eine Stromversorgungsschaltung und verwenden Sie sie tatsächlich! Oder, viel bequemer, verbinden Sie sich selbst mit Arduino mit den Registern; Arduino verwendet übrigens tatsächlich den ATmega328p. Die Verwendung von Arduino mit seinen High-Level-Funktionen wird Ihnen das betreffende Protokoll nicht beibringen. Aber wenn Sie tatsächlich mit den Registern in der unteren Ebene herumspielen, werden Sie tatsächlich beginnen, die Nuancen und die damit verbundenen Feinheiten zu verstehen.
Ja, es ist viel Arbeit, aber es lohnt sich; Es vermittelt Ihnen auch unschätzbare Fähigkeiten, die in EE nützlich sind.
TL;DR: Lies viel
Viel Glück.
Das Problem ist, dass jede Familie / Marke von Micros in der Art und Weise, wie sie funktionieren, unterschiedlich ist, jede Programmiersprache auch anders ist und Sie manchmal Dinge für verschiedene Aufgaben anders machen müssen.
Es gibt also keine richtige Antwort - zum Erlernen der Grundprinzipien reicht fast jedes Mikro mit einem vernünftigen Entwicklungskit / einer angemessenen Umgebung aus. Wenn Sie jedoch etwas Bestimmtes im Sinn haben, wie zum Beispiel zu lernen, wie man Atmel-Mikros in C programmiert, dann sollten Sie diesen Weg besser einschlagen.
pjc50
Kalingga
PeterJ
Olin Lathrop
pjc50
Nick Alexejew