Ich möchte Daten von einer Baugruppe in die nächste übertragen. Die erste hat einen ARM7 mit konventionellem Bus und darf einen PLD/FPGA bekommen. Es stehen aber nur 2 Leitungen zur Verfügung. Länge geschätzt 25cm. Kabel, wie ich möchte.
Nun stehe ich vor der Frage, eine SDO-Leitung zu nehmen und eine Taktleitung, oder es differenziell und dafür schön schnell aufzubauen. EMV-technisch geht beides.
Bis zu welcher Datenrate kriege ich aus einem nicht genau bekannten Takt noch einen stabilen Datenstrom? Angesehen habe ich mir unterschiedliche Protokolle, die aber z.T. einen Takt benötigen oder rekonstruieren.
Was nimmt man da am Besten und wie gestaltet man das Protokoll? Momentan wäre es 100% unidirektional vom Master zu dem Slavegerät.
Bisher angedacht war ein einfaches, asynchrones Protokoll und eine UART draufzusetzen. Angenommen der PLD läuft mit 150 MHz, dann könnte man wegen oversampling vlt. 60Mbps hinbekommen und bei einem 11-12 Bit Protokoll folglich 5MBps. Das ist aber zu wenig. Auch ein 300 MHz FPGA würde nicht reichen. 50MB/s wären angestrebt.
Laut Datenblatt können das die Serializer, aber ich frage mich, wie das mit dem Eintakten läuft: Ein Serializer für 50MB/s müsste sicher auf 500Mbps laufen. Wie synchronisiert man die dafür nötige PLL im Empfänger? Die beiden Baugruppen werden zwar aus dem gleichen Quarz versorgt, aber das hat 25MHz. Da wird es nicht gelingen, eine feste Taktkonstellation zu erzielen, die man einmal einstellt und die dann dauerhaft in der Mitte der Bits arbeitet.
Transceiver wären mir zu aufwändig. Dann würde ich eher auf USB gehen.