Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: synchrone serielle Schnittstelle realisieren? Kategorie: Programmierung (von André H. - 12.01.2012 1:23)
Als Antwort auf synchrone serielle Schnittstelle realisieren? von Carsten - 10.01.2012 20:23
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, C-Control II Station, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.1
Hallo Günther,

> ich würde gerne mit ein paar Gerätschaften aus dem Automobilen Bereich kommunizieren.
> Das Protokoll hierzu liegt mir vor, es handelt sich um die Bit-Serielle Schnittstelle von Bosch, BSD,
> die z.B. BMW verwendet, um seitens Motorsteuergerät mit Lichtmaschine oder Wasserpumpe oder etc..
> zu kommunizieren.
>
> Siehe Grundlagen BSD.
>
> Hat evtl. jemand einen Tip für mich, wie ich das mit der Syncronisation per Software realisieren
> kann? Die Datenrate ist nominal 1200Bd, d.h. ein Sync Impuls ist 70us lang. Signalquelle ist lt. Doku ein
> Schaltausgang, der per Pull-Up auf Ub gezogen wird und ansonsten gegen Masse schaltet. Nach den
> 3 Sync-Impulsen Pause werden 18 Bit an Nutzdaten übertragen. Der Master, was in diesem Fall die
> C-Control sein soll, sendet also jeweils 3 Sync-Impulse in im Byte 1 eine jeweilige Statusabfrage an
> die Slaves. Diese Antworten umgehend und füllen gglfs. Byte 2 mit Ihren Nutzdaten auf.
>
> Lässt sich das im Prinzip mit einer C-Control realisieren? Oder wird das ünmöglich, weil es um eine
> synchron-Ã?bertragung geht? Die Datenfrequenz darf dabei lt. Specs zwischen 1164 und 1236 bit/s liegen.

Prinzipiell sollte das möglich sein.
Allerdings wird das höchstwahrscheinlich nicht ohne Assembler klappen.
Da die Bits nicht als High- oder Low-Pegel, sondern als Pulsweite übertragen werden,
sollte dies mit Interrupts möglich sein, indem man darüber die Impulse zählt und die
Dauer jedes einzelnen ermittelt.

Aber das wäre für den Einstieg mit der CC2 aber eher etwas zu schwer, da man gleich
drei Baustellen aufmacht: Programmiersprache C2, Assembler und ein paar Interna der CC2.
Man könnte natürlich auch versuchen, die Daten per Polling nur in C2 ohne ASM
zu erfassen. Aber sobald mehrere Threads laufen, könnte das Timing unvorhersagbar werden.
Und 70µs werden wahrschenlich nicht reichen, um andere Threads vorübergehend anzuhalten.


MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: