Forum: Mikrocontroller und Digitale Elektronik Can Bus und MS Dos 6.22


von Izibizi666 A. (izibizi666)


Angehängte Dateien:

Lesenswert?

Hallo,

ich hab einen alten IndustriePC (siehe Bild) aus dem Jahr 2003 auf dem 
MS Dos 6.22 und eine Steuerungssoftware läuft.

Über den CanBus des PC werden diverse Verbraucher geschaltet (z.B. 
Motoren) bzw. Werte eingelesen (z.B. Waage). Der CANBus Befehl geht 
dabei an eine weitere CANBus Karte, die dann die Motoren schaltet.

Der Industrie PC hat auf der Platine einen Stecker, an dem eine simple 
CANBus Karte hängt. Die Karte ist glaub ich nur ein "Signalverteiler" 
(siehe Bild). Die Verteilung geht von Platine (Low,High,GND) nach CAN_IN 
(LOW,HIGH;GND) und CAN_OUT (LOW,HIGH,GND). Ich denke der CANController 
ist auf der Platine des IndustriePC verbaut.

Ich möchte nun die Software auf einem neueren PC (z.B. WIN 7) einsetzen. 
Dazu hab ich mir DosBox installiert. Das Steuerungsprogramm kann ich in 
der DOSBox starten und bedienen.

Meine Frage ist nun: Wie ist es möglich, die CANBus Verbindung zu meinen 
Verbrauchern (CANBus Karten (Motoren)) aufzubauen. Könnte ich mir einen 
USB-SERIAL Converter kaufen und an dem eine CANBus Karte hängen (per COM 
Port) und diese CANBus Karte über CAN_LOW, CAN_HIGH, GND der original 
CAN "Signalverteiler" Karte verbinden?

In der DosBox kann ich die COM Ports den realen Comports des WIN 7 PC´s 
zuordnen. Soweit ich weiß, sind für DOS keine speziellen Treiber 
notwendig.

Ich bin leider kein Elektrotechniker. Aber als Softwareentwickler würde 
mich interessieren, ob sowas zu realisieren ist. Eigentlich müsste ja 
nur der CANBus Befehl des Steuerungssoftware über den CAN Adapter (WIN7) 
zu den CANKarten(Motoren) gesendet werden.

Danke für eure Hilfe.
Vg

von Jörg B. (jbernau)


Lesenswert?

Hallo Izibizi666,


wenn Du einen USB-Port hast weshalb nimmst Du dann nicht USB? Es gibt 
fertige Dongles auf dem Markt.

Kannst Du STM32 programmieren? Dann hätte ich auch ein Dongle hier. Den 
kannst Du dann auf verschiedene USB-Profile anpassen, sodass die alte SW 
läuft.

VG

Jörg

von temp (Gast)


Lesenswert?

Jörg B. schrieb:
> wenn Du einen USB-Port hast weshalb nimmst Du dann nicht USB? Es gibt
> fertige Dongles auf dem Markt.
>
> Kannst Du STM32 programmieren? Dann hätte ich auch ein Dongle hier. Den
> kannst Du dann auf verschiedene USB-Profile anpassen, sodass die alte SW
> läuft.

Lesen hilft. Hier geht es darum, dass die Software läuft. Die wird aber 
das CAN-Interface in einer Art und Weise ansprechen, die wir bis jetzt 
noch nicht kennen. Wenn er ganz ganz großes Glück hat ist das auch 
seriell im LAWICEL-Protokol gemacht, dann kann das gehen. Das sollte 
dann auch daran erahnbar sein, dass in der Software irgendwo die 
serielle Schnittstelle eingestellt werden kann.
Es ist aber auch möglich, dass die DOS-Software seine eigenen Sprache 
direkt mit der Hardware spricht. In dem Fall ist es sicher ziemlich 
aussichtslos ohne genauere Kenntnis der Hardware so was nach zubauen, 
mit dem sich die alte DOS-Software noch unterhalten kann.

Izibizi666 A. schrieb:
> Eigentlich müsste ja
> nur der CANBus Befehl des Steuerungssoftware über den CAN Adapter (WIN7)
> zu den CANKarten(Motoren) gesendet werden.

Dazu musst du aber erst mal raus kriegen wie die Steuerungssoftware das 
der Hardware mitteilt. Leider gibt es bis heute für CAN keine 
standardisierte Treiberschicht, sondern jeder macht seine eigenen 
Speziallösung.

von Jörg B. (jbernau)


Lesenswert?

Ich habe verstanden, dass Win7 die serielle Schnittstelle gar nicht 
findet, weil es dafür keinen Treiber gibt, oder?

Gibt es einen Schaltplan? der Maschine?

VG

Jörg

: Bearbeitet durch User
von Izibizi666 A. (izibizi666)


Lesenswert?

Jörg B. schrieb:
> Gibt es einen Schaltplan? der Maschine?

Ich kann leider nur die Bilder anbieten.

von Jörg B. (jbernau)


Lesenswert?

Kannst Du mal bitte eine Detailaufnahme von der Region der Batterie 
machen? Un den beiden Steckverbindern müssten Kabel drinnen gewesen 
sein. In der rechten Buchse vermutlich nicht (Staub). Mich interessieren 
die achtpoligen ICs auf der Platine. Ich vermute dort Transceiver. Wenn 
wir dann noch irgentwo einen UART entdecken könnten wären wir vielleicht 
weiter... Also das Foto nochmal so einstellen, dass die Bezeichnungen 
auf den ICs zu lesen sind. Danke.

VG Jörg

von temp (Gast)


Lesenswert?

Jörg B. schrieb:
> Ich habe verstanden, dass Win7 die serielle Schnittstelle gar nicht
> findet, weil es dafür keinen Treiber gibt, oder?

Wie kommst du auf serielle Schnittstelle? Wir reden von CAN. Und ob die 
Spezialhardware und Software als Zwischenschicht eine serielle 
Schnittstelle hat ist völlig unklar und ehr unwahrscheinlich. CAN 
Controller früherer Jahre waren PCA82C200 oder SJA1000 und die hatten 
einen 8bit Datenbus und nichts serielles. Ein bißchen Logik dazu und man 
konnte die direkt an den ISA-Bus hängen. Da musste dann nur die Software 
das spezielle Hardwareprotokoll sprechen. Viel Spaß beim Re-Engineering.

von Jörg B. (jbernau)


Lesenswert?

temp schrieb:
> Wie kommst du auf serielle Schnittstelle?


Izibizi666 A. schrieb:
> In der DosBox kann ich die COM Ports den realen Comports des WIN 7 PC´s
> zuordnen. Soweit ich weiß, sind für DOS keine speziellen Treiber
> notwendig.

Daher, oder hab ich da was falsch verstanden?

VG

Jörg

von temp (Gast)


Lesenswert?

Wie heisst den IC3 genau, das kann man auf deinem Bild nicht erkennen?

von Izibizi666 A. (izibizi666)


Lesenswert?

temp schrieb:
> Wie heisst den IC3 genau, das kann man auf deinem Bild nicht erkennen?

Soweit ich das lesen konnte steht auf dem IC3:
AM28F018
-120JC
9807DXM E
(C) 1991 AMD

von Izibizi666 A. (izibizi666)


Lesenswert?

Izibizi666 A. schrieb:
> AM28F018

könnte auch AM28F010 sein. :-)

von Jörg B. (jbernau)


Lesenswert?

Am28F010
1 Megabit (128 K x 8-Bit)
CMOS 12.0 Volt, Bulk Erase Flash Memory

von temp (Gast)


Lesenswert?

Dann hat er damit nichts zu tun. Ist denn unter der CPU-Platine auch 
noch was ?

von temp (Gast)


Lesenswert?

Jörg B. schrieb:
> Izibizi666 A. schrieb:
>> In der DosBox kann ich die COM Ports den realen Comports des WIN 7 PC´s
>> zuordnen. Soweit ich weiß, sind für DOS keine speziellen Treiber
>> notwendig.
>
> Daher, oder hab ich da was falsch verstanden?

Das entspricht dem Wunschdenken von Izibizi666 dass der CAN-Bus über 
eine serielle Schnittstelle angesprochen wird. Die Realität wird eine 
andere sein.

von Jörg B. (jbernau)


Lesenswert?

temp schrieb:
> Das entspricht dem Wunschdenken von Izibizi666 dass der CAN-Bus über
> eine serielle Schnittstelle angesprochen wird. Die Realität wird eine
> andere sein.

Deshalb suchen wir ja die chips auf der Platine durch :-)

von Jörg B. (jbernau)


Angehängte Dateien:

Lesenswert?

... dieser Bereich würde mich besonders interessieren. Auch was 
vielleicht unter dem Mainboard/CPU ist. Ich fände es hilfreich, wenn Du 
die Platine dort ein wenig vom Staub befreien würdest, dann lässt sich 
bei einer Detailaufnahme auch die Bezeichnung der ICs besser erkennen...

VG

Jörg

von Izibizi666 A. (izibizi666)


Lesenswert?

temp schrieb:
> Das entspricht dem Wunschdenken von Izibizi666

Ja das ist richtig.

Es wäre der Idealfall, wenn ich einfach einen CANAdapter an den COM Port 
meines Win7 PC´s hängen könnte. Ich könnte dann in der Dosbox sagen nimm 
COM1 des Win7 PC´s und verwende diesen in DOS. Nur das Problem wird 
sein, dass der CANAdapter einen anderen Chip verbaut hat wie der CAN 
auf meinem IndustriePC. Und das Steuerungsprogramm spricht ja den 
CANChip des IndustriePC an.

So wie ich das verstehe bräuchte ich einen CANAdapter, der den selben 
Chip verbaut hat wie der IndustriePC bzw. ich müsste die Software 
umschreiben (was leider nicht geht, da ich den Quellcode nicht habe).

von temp (Gast)


Lesenswert?

Unten links ist ein AN82527 verbaut. 
https://www.dena-de.com/en/products/intel/an82527-serial-can-20-controller-5v/
Die beiden Chips links daneben werden den wohl parallel an den Bus 
koppeln.
Deshalb nochmal die Frage an Izibizi666: Was wird wie und wo in der DOS 
Software eingestellt um den Treiber zu konfigurieren?

von Soul E. (Gast)


Lesenswert?

Izibizi666 A. schrieb:

> Meine Frage ist nun: Wie ist es möglich, die CANBus Verbindung zu meinen
> Verbrauchern (CANBus Karten (Motoren)) aufzubauen. Könnte ich mir einen
> USB-SERIAL Converter kaufen und an dem eine CANBus Karte hängen (per COM
> Port) und diese CANBus Karte über CAN_LOW, CAN_HIGH, GND der original
> CAN "Signalverteiler" Karte verbinden?

Nein. Unter MS-DOS gibt es keine genormte CAN-API. Deine Software greift 
mittels I/O-Befehlen direkt auf die vorhandene CAN-Hardware zu. Diese 
Hardware muss bei dem neuen Rechner wieder genauso unter den originalen 
I/O-Adressen auf dem ISA-Bus (bzw PC-104, ist das gleiche nur anderer 
Stecker) vorhanden sein.

Theoretisch könnte man die Steuersoftware neu programmieren, so dass 
diese über USB oder einen virtuellen COM-Port auf eine neuzeitliche 
CAN-Hardware (Vector CANcase oder Lawicel Can-USB) zugreift. Das muss 
aber derjenige machen der den Quellcode der Software hat. Mit ein paar 
Bytes patchen ist es nicht getan.

von temp (Gast)


Lesenswert?

Izibizi666 A. schrieb:
> So wie ich das verstehe bräuchte ich einen CANAdapter, der den selben
> Chip verbaut hat wie der IndustriePC bzw. ich müsste die Software
> umschreiben (was leider nicht geht, da ich den Quellcode nicht habe).

Der muss dann aber auch zusätzlich von der Emulationschicht bedient 
werden können. Schließlich kannst du in deiner DosBox nicht mehr direkt 
auf deine Hardware zugreifen. Auch wenn beim AN82527 'seriel' vorkommt, 
das ist spi und hat nichts mit einer normalen seriellen Schnittstelle im 
Rechner zu tun.

von temp (Gast)


Lesenswert?

temp schrieb:
> Die beiden Chips links daneben

meine natürlich rechts...

von Jörg B. (jbernau)


Lesenswert?

Was haltet ihr von folgender IDEE:

den Isa-Bus virtuell abbilden als Gerätetreiber => auf der andren Seite 
der Datenendpunkte den AN82527 emmulieren und nach seriell weiter 
leiten. Ob sich das lohnt?

Was für eine Maschine ist das denn?

VG Jörg

von temp (Gast)


Lesenswert?

Jörg B. schrieb:
> Was haltet ihr von folgender IDEE:
>
> den Isa-Bus virtuell abbilden als Gerätetreiber => auf der andren Seite
> der Datenendpunkte den AN82527 emmulieren und nach seriell weiter
> leiten. Ob sich das lohnt?
>
> Was für eine Maschine ist das denn?
>
> VG Jörg

Da müsste die Maschine noch einen Restwer >10T€ haben damit sich das 
lohnt. Ich glaube auch kaum das Izibizi666 das auch nur ansatzweise hin 
bekommt. Anderenfalls hätte er hier diese Fragen nie gestellt.
Für den SJA100 gibt es eine qemu-Emulation zu Socketcan. Die Frage nach 
der Treiberkonfiguration der jetzigen DOS Software und ob noch andere 
Chips unterstützt werden wurde aber nicht beantwortet, also ist da erst 
mal Ende.

von Jörg B. (jbernau)


Lesenswert?

temp schrieb:
>Da müsste die Maschine noch einen Restwer >10T€ haben

Oder produktionstechnisch als Sondermaschine nicht ersetzbar.

> also ist da erst mal Ende.

Das denke ich auch, sofern obiges nicht zutrifft. Sonst wäre eine 
Beckhoff IPC (o.ä.) die bessere Alternative. Die diversen Schnittstellen 
hat die ja.


VG Jörg

von Izibizi666 A. (izibizi666)


Lesenswert?

Ich glaub ich hab den CAN Processor (IC21) gefunden:

A82C250
2A6A2
n2194

Keine Ahnung, ob diese Information noch was nutzt. Was müsste man im 
Programm einstellen, damit ich einen anderen CAN Processor ansprechen 
kann?

von fchk (Gast)


Lesenswert?

Das ist nur die Kopplung zwischen dem Intel CAN Controller und dem Bus. 
Ein reiner Analogchip. Mehr nicht.

Deine Situation ist recht hoffnungslos. Die Software wirst Du nur zum 
Laufen bekommen, wenn Du die aktuelle Hardware nachimplementierst. Den 
Intel CAN Controller bekommst Du nicht mehr - der wird schon seit 
Jahrzehnten nicht mehr produziert.

Eine Neuentwickung wird einfacher - glaub es mir.

fchk

von Jörg B. (jbernau)


Lesenswert?

fchk schrieb:
> Eine Neuentwickung wird einfacher - glaub es mir.

Das hatten Temp und ich auch schon festgestellt. Jetzt sind drei der 
selben Meinung... Vielleicht wird es ja so deutlicher? 8-)

Jörg

von bingo (Gast)


Lesenswert?

Jörg B. schrieb:
>> Eine Neuentwickung wird einfacher - glaub es mir.
>
> Das hatten Temp und ich auch schon festgestellt. Jetzt sind drei der
> selben Meinung... Vielleicht wird es ja so deutlicher? 8-)

Da Du Softwareentwickler bist, kannst Du das evtl. abschätzen

von Jörg B. (jbernau)


Lesenswert?

... Hier 
https://www.beckhoff.ch/default.asp?industrial_pc/ipc.htm?id=3443 
findest Du geeignete Hardware.

Beckhoff liefert eine gratis IDE mit; die anderer Hersteller musst Du 
vermutlich bezahlen

CoDeSys ist C vergleichbar also leicht zu verstehen. Die Datenendpunkte 
steuern dann die Peripherie ...

Noch etwas Rechtliches:

Durch den Umbau machst Du ein RetroFit und wirst zum Hersteller. Du 
musst dann auch den ganzen Zertifizierungsprozess nachweisen. Also 
EN12100, EN60204, EN13849/EN62061 oder IEC61508. Bist Du Dir dessen 
bewusst?

VG

Jörg

: Bearbeitet durch User
von Izibizi666 (Gast)


Lesenswert?

Das ganze ist dann doch nicht so trivial wie ich gedacht habe. Gut das 
ich hier im Forum nachgefragt habe.

Werde die Sache dann auf Eis legen. Wenn der PC defekt ist muss ich mir 
wohl das aktuelle Modell kaufen.

Vielen herzlichen Dank für eure tolle Unterstützung.

Vg

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
Noch kein Account? Hier anmelden.