|
CCS Modul P_AUFTRAG |
$Id: p_auftrag.C,v 1.48 2005/12/19 14:33:11 cvs Exp $
---------------------------------------------------------------------
Kurzbeschreibung: Auftrag an die PSS/SKM senden.
---------------------------------------------------------------------
Projekt: CCS
Sourcefile: p_auftrag.C
Autor: RtW/TEF72-Keppler (02.04.96)
Zielsystem: HP9000/V743 (HP-RT 2.0x), /Sxxx (HP-UX 9.0x)
Sprache: C++
---------------------------------------------------------------------
Prototyp:
MPI Schnittstelle
void p_init(shm_stringpointer *zeilen_info
,shm_stringpointer *zeilen_wert
,long index1
,long anzahl)
---------------------------------------------------------------------
Aufruf: im Vectorinterpreter
(*funktionen[modulnummer])
(Ssp_expand_zeile
,Ssp_expand_wert
,p_verwaltung->begin_modulblock
,p_verwaltung->anzahl_modulparameter);
---------------------------------------------------------------------
Funktionsbeschreibung:
Dieses Modul dient zur Auftragsvergabe an die PSS. Hiermit kÎnnen beliebige
Strings an die PSS bzw. an das SG gesendet werden. Die Auswertung der
Antwort erfolgt nicht in diesem Modul. Die Antwort wird im shared Memory
abgelegt und kann dort z.B. vom Modul p_zerlege_string geholt und
verarbeitet werden.
Einfuehrung von langen Variablen:
Der Befehl C ist bei diesen Variablen nicht erlaubt.
Eine Konvertierung bei 0x findet nicht statt.
Beschreibung der ModulÏbergabeparameter:1 PRUEFSCHRITTGAUDI PrÏfschritt ------------------------------2 POSITION
PAV- Position ------------------------------3 BEFEHL
Steuerbefehl fÏr die PSS/SKM
Diese Befehle gelten auch fÏr die SKM falls dies
explizit vermerkt ist.
ASCCAN_SWITCH: Bei ASCCAN werden die KWP2000-Signale für die K-Line einfach auf den
(nur SKMlight) CAN-Bus gelegt (nicht zu verwechseln mit KWP2000 over CAN). Für den
Host sieht es so aus, als würde über K-Line kommuniziert werden. Der
Host muss lediglich vor der Kommunikation den Befehl ASCCAN_SWITCH(1)
und am Ende der gesamten Kommunikation wieder ASCCAN_SWITCH(0) absetzen.
Der Befehl ASCCAN_SWITCH nimmt die hardwaremäßige Umschaltung vor.
DATUM 0 -> ASCCAN wird deaktiviert (Standard)
DATUM 1 -> ASCCAN wird aktiviert
Es ist zu beachten, dass für ASCCAN ein spezieller Adapterstecker
notwendig ist. Solange ASCCAN aktiviert ist, kann über die normale
CAN- und K-Line-Schnittstelle nicht kommuniziert werden!
BEDIENBLOCK: Der Block mit dem die Komunikation mir dem SG
aufrechterhalten werden soll, kann hier der PSS
mitgeteilt werden. Dieser Befehl muÞ nach Initialisierung
der Schnittstelle und vor reizen des SG erfolgen.
UnterstÏtzt bei:
KP2000
BLOCK
ECHOBLOCK: Echofunktionalität auf K-Line:
Stellt einen Block ein, der nach Empfang einer definierten Botschaft
gesendet wird.
Wird nicht bei Protokollen über K-Line unterstützt.
(siehe auch ECHOVERGL_BLOCK)
ECHOVERGL_BLOCK: Echofunktionalität auf K-Line.
Stellt einen Block ein, auf den, die über die K-line empfangenen Daten
verglichen werden. Die Echofunktionalität wird aktiviert, wenn die
Kommandos ECHOBLOCK und ECHOVERGL_BLOCK abgesendet wurden.
Die Reihenfolge ist egal. Der Echoblock wird nur 1 mal abgesendet, dann
wird die Funktion deaktiviert und muss ggf. neu aufgesetzt werden.
Wird nicht bei Protokollen über K-Line unterstützt.
(siehe auch ECHOBLOCK)
BUILD_CS: Dieser Befehl bildet eine Checksumme Ïber den im Parameter
Daten angegebenen Datenbereich.
Stringaufbau im Parameter DATUM:
Anfangsadresse = 00..FF
Endadresse = 00..FF
UnterstÏtzt bei:
EEPROM
BAUDRATE: FÏr PSS: Dient der Umschaltung der Baudrate
In DATUM ist "tthh" einzutragen.
tt= tausender der Baudrate = 00..FF in Hex
hh= hunderter der Baudrate = 00..FF in Hex
CAN_BKGND_START:Startet im Hintergrund die Embedded CAN-Restbussimulation.
(nur SKMlight) Falls parallel dazu beispielsweise der "KWP2000 on CAN"-
Tester verwendet werden soll, muss darauf geachtet werden
dass alle CAN-Bus-Teilnehmer dieselben CAN-Bus-
Eigenschaften einstellen.
Modus "S" verwenden!
CAN_BKGND_STOP: Beendet die Embedded CAN-Restbussimulation.
(nur SKMlight) Modus "S" verwenden!
CAN_BKGND_ON_KEY:Über diesen Befehl kann die Embedded CAN-Restbussimulation
(nur SKMlight) durch "Tastatur-Zeichen" manipuliert werden.
DATUM ist 1 Byte ("Tastatur-Zeichen") als Hex-Wert.
Beispiel: Zeichen 'a' wird mit 61 dargestellt.
Modus "S" verwenden!
COMBLOCK: Komunikation mit dem SG. Es wird ein Block
zum SG gesendet und auf die Antwort vom SG
gewartet. Die Antwort vom SG wird zum Host
weitergeleitet.
Der zum SG zu sendende Block ist im Parameter
DATUM einzutragen.
UnterstÏtzt bei:
KP2000
DDS
JECS: PS-Befehl
EASY
K71
BLOCK
COMBLOCK_MAD: Wie COMBLOCK, jedoch wird nach empfang der Botschaft
das Senden des SG gestoppt.
UnterstÏtzt bei:
JECS: MAD-Kommando
DLM_NACHLADEN: Mit diesem Befehl wird das Downloadmodul aus dem
(nur SKM) pcc-File zum SG geladen.
UnterstÏtzt bei: (nur SKM)
Prokist
DREZ_FUEHLER: Mit diesem Befehl wird Frequenz fuer die Drehzahlfuehler der
ABS-Geraete angeschaltet.
Eingabe in DATUM: NN MM F1 F1 T1 T1.... F4 F4 T4 T4
NN = Nummer des Drehzahlfuehler in Ascii
31 => DF1 ...
Prokist-Pins am 80C176-Controller Ausgaenge
P2.3 HSK_0 CC3IO DF1=>31 DZF_VL Pin13
P2.4 HSK_1 CC4IO DF2=>32 DZF_HR Pin12
P2.5 HSK_2 CC5IO DF3=>33 DZF_VR Pin11
P2.6 HSK_3 CC6IO DF4=>34 DZF_HL Pin10
MM = Mode
41= A= Activate
44= D= Deactivate
48= H= statisch high
4C= L= statisch Low
F1F1 = Frequenz in Hz (Hex) (0000..FFFF)
Bsp.: fuer DATUM
31 41 03 E8 aktiviere DF1 mit 1000Hz
Neues Feature PWM
NN = Mode
4D= M= Activate PWM
44= D= Deactivate PWM
MM = Mode
45= E= Alle Ausgaenge mit dem gleichen Signal
F1F1 = Frequenz in Hz (Hex) (0000..FFFF)
fuer alle Kanaele
T1T1 = Tastverhaeltnis fuer alle Kanaele
46= F= Wie E jedoch werden die Signale
invertiert ausgegeben.
44= D= Jeder Ausgang eigenes Signal
F1F1..F4F4= Frequenz in Hz (Hex) (0000..FFFF)
T1T1..T4T4= Tastverhaeltnis (0000..FFFF)
Bsp.: fuer PWM
4D 45 07 D0 00 03 aktiviere DF1 -DF4 mit 2000Hz
und Tastverhaeltnis 1/3
Unterstuetzt bei: (nur SKM und SKMlight)
alle Protokolle
Ausgang auf SKMlight: Buchse X5 (25polige D-sub) Pin 7
EMPFANG_SG: Die Schnittstelle wird auf hoeren geschaltet. Es muÞ
innerhalb der Timeoutzeit eine Botschaft vom SG
empfangen werden, sonst erfolgt eine Fehlermeldung.
ACHTUNG:
Ein schalten der Komunikationsleitung auf high wÌhrend
die Schnittstelle auf hoeren geschaltet ist, fÏhrt zu
falschen (sinnlosen) empfangenen Botschaften, und ist
daher nicht mÎglich.
UnterstÏtzt bei:
DDS
EASY
K71
FILE_LOAD: Syntax wie FLASH_PROG, jedoch wird das File nur bei
nicht vorhandensein auf die SKM geladen. Ist das File
schon vorhanden, dann findet keine Aktion statt.
UnterstÏtzt bei: (SKM)
Alle Protokolle
FILE_DELETE: Alle Files auf der SKM//PSS werden gelÎscht. Diese Option zwingt
zum nachladen aller Files. !ACHTUNG! Diese Option darf nicht bei
jedem Durchlauf stattfinden und muÞ z.B. duch eine IF - THEN - ELSE
Struktur abgefangen werden (nur RÏstlauf o.Ì.)
Alle Protokolle
FLASH_PROG: Mit diesem Befehl kann eine Flashprogrammierung durch-
gefÏhrt werden. In der Vatiablen DATUM sind die
notwendigen Informationen an die PSS/SKM einzutragen.
(Siehe auch PSS-Doku. oder SKM-Doku) Ist das zu
programmierende File mit der Endung .bin
der PSS/SKM nicht bekannt, so wird dies hier automatisch
geladen, und dann die Programmierung durchgefÏhrt.
Beispielstring in DATUM:
AA||<filename>||MM||LL||OOOOOO||NNNNNN||
AA = String der vor die Daten zum SG gehÌngt wird
also z.B. der Blocktitel und Adressen.
MM = Modus:
00 => Die LÌnge LL ist die relev. DatenlÌnge fÏr die BlÎcke zum SG
01 => Die LÌnge zum SG steht im File
02 => Es wird mit Offset und LÌnge zugegriffen
Die LÌnge LL ist die relev. DatenlÌnge fÏr die BlÎcke zum SG
03 => Es wird mit Offset und LÌnge zugegriffen
Die LÌnge zum SG steht im File
LL =LÌnge : LÌnge des Blocks zum SG. (0..FF)
Bei Modus 02 oder 03: OOOOOO und NNNNNN
OOOOOO=Offset: Offset mit dem auf das File zugegriffen werden soll
NNNNNN=LÌnge: Zu programmierende LÌnge in Byte
UnterstÏtzt bei:
Alle Protokolle
FLASH_ANTW_EIN: Mit diesem Befehl kann die Antwort die vom SG bei der
Flashprogrammierung erwartet wird eingestellt werden.
Mit setzen des Initparameters 0x80 = FLASH_SG_ANTW = 02
wird die Antwort des SG's dann mit dieser Botschaft auf
Ûbereinstimmung verglichen (nur die Nutzdaten einschl.
Blcktitel).
UnterstÏtzt bei: (SKM/PSS)
Alle Protokolle
FLASH_PROG_PAR: Wie FLASH_PROG, jedoch kÎnnen hier im Zusammenhang mit
PARA3 = L mehrere PSS'n nacheinander dazu veranlaÞt
werden, einen Flashdatensatz zum SG zu programmieren.
Die Antwort OK wird zurÏckgegeben befor die Flash-
programmierung erfolgt.
Die Antwort fÏr die Richtigkeit der Programmierung
kann spÌter mit einem erneuten Modulaufruf
geholt werden, indem PARA3 = G gesetzt wird.
Bevor eine andere PSS angesprochen wird, muÞ zuerst die
Adresse mit dem Modul P_STEUER geÌndert werden.
UnterstÏtzt bei:
Alle Protokolle
GET_DIGITAL_IN:
(nur SKMlight) liest die digitalen Eingänge von der SKMlight zurueck (1 Byte)
Es stehen 5 Kanäle zur Verfügung (falls nicht im gewählten Protokoll
benoetigt.)
Das Ergebnis kann mit dem Modul p_zerlege_str ausgewertet werden.
Die Bits 0,1 und 7 sind immer 1. Die relevanten bits liegen also
von Bit 2-6.
Z.B.: ERGEBNIS = 87 -> IN1 auf high alle anderen auf 0
ERGEBNIS = 97 -> IN1 und IN3 auf high
INIT_PROTOCOL: Hiermit wird initialisiert, ob (alt: INIT_PRUEFUNG)
(nur SKM) E = EndprÏfung
Z = ZwischenprÏfung oder
P = Programmierung des SG
gewÏnscht wird. Das Zeichen E/Z/P muÞ unter Datum
eingetragen werden.
UnterstÏtzt bei: (nur SKM)
Prokist
KOMM_ENDE: Hiermit beendet die Schnittstelle die Kommunikation mit
dem SG. D.h., daÞ eine Bedienung der Schnittstelle nicht
mehr erfolgt.
Wird dieser Befehl vor Abschalten des SG nicht an die
Schnittstelle gegeben, so wird ein Timeout abgewarte,
und die PrÏfung verzÎgert sich entsprechend.
UnterstÏtzt bei:
Alle Protokolle
LOESCHE: Wie Befehl COMBLOCK, jedoch wird der Befehl nur unter
folgenden Bedingungen ausgefÏhrt.
1. Der Standtyp muÞ HT sein.
2. Die Pruefung muÞ bis hier Fehlerfrei gelaufen sein.
3. Es muÞ die letzte Wiederholpruefung sein.
UnterstÏtzt bei: (SKM und PSS)
Alle Protokolle
MERKE: Die jetzt bei Parameter DATUM eingetragenen Daten
werden gespeichert.Und bei Befehl REIZ_PAV mit PARA01 =10
verwendet.
Notwendig für Workarround Reizen des NEC mit Makro K2000INI
synchronem Protokoll.
MELEXIS_CLK_SWITCH:
(nur SKMlight) Es gibt Fälle, in denen nach Absetzen spezieller Melexisbefehle die
Taktausgabe ausgeschalten wird. Über MELEXIS_CLK_SWITCH kann die
Taktausgabe wieder gestartet werden.
DATUM (1 Byte): 01 => Taktausgabe wird gestartet
00 => Taktausgabe wird ausgeschalten
PAS4_INIT: Schreibt die Settings (Parameter), die für die PAS4-Kommunikation
(nur SKMlight) verwendet werden. Hierfuer muessen die Parameter jedoch zuerst mit
dem Modul p_init besetzt werden.
DATUM: keines
PAS4_COMMAND: Sendet den übergebenen PAS4-Befehl an den PAS4-Sensor.
(nur SKMlight) DATUM: Byte 1: Bit0 = A4, Bit1-3 = I0-I2, Bit4-7 werden ignoriert
Byte 2: Bit0-3 = D0-D3, Bit4-7 = A0-A3
PAS4_PROGRAMMING:
(nur SKMlight) Erlaubt das Programmieren/Brennen von bis zu 20 Bits im PROM des
PAS4-Sensors. Dabei kann das Datum von PAS4_COMMAND bis zu 5 mal direkt
hintereinander liegend angegeben werden. Folgende Besonderheiten sind
zu beachten:
a) Bei den Daten (D0-D3) können jeweils mehrere Datenbits gesetzt sein.
b) Wird das Datum mehrmals angegeben, dann müssen die Instructionsbits
(I0-I2) jeweils gleich sein.
Dieser Befehl kehrt bereits zurück, BEVOR er vollständig abgearbeitet
wurde!
DATUM: Byte 1: Bit0 = A4, Bit1-3 = I0-I2, Bit4-7 werden ignoriert
Byte 2: Bit0-3 = D0-D3, Bit4-7 = A0-A3
Byte 1 und 2 können bis zu 5 mal angegeben werden (max. 5*2 Bytes).
PAS4_READING: Initiiert das Lesen von bis zu 64 Bits aus dem PAS4-Sensor. Die Anfangs-
(nur SKMlight) und Endadresse wird angegeben und für jede Adresse werden 4 Datenbits
ausgelesen. Die Antwortdaten selbst werden von der SKMlight nicht
ausgewertet. Dieser Befehl kehrt bereits zurück, BEVOR er vollständig
abgearbeitet wurde!
DATUM: Byte 1: Bit0 = A4, Bit1-3 = I0-I2, Bit4-7 werden ignoriert
Byte 2: Bit0-3 = D0-D3, Bit4-7 = A0-A3
Byte 3: Bit0-4 = A0-A4 (Endadresse)
In Byte 1-2 ist die Startadresse und in Byte 3 die Endadresse enthalten.
Die Datenbits aus Byte 1 werden z.Zt. nicht verwendet und sollten auf
0001 gesetzt sein.
PAS4_SET_I0_1_2:Hiermit können die Ausgänge I0, I1 und I2 (Instruction) beliebig gesetzt
(nur SKMlight) werden.
DATUM: Byte 1: Bit0-3 = I0-I2, Bit4-7 werden ignoriert
PCC_DOWNLOAD: Wie FLASH_LOAD, jedoch wird die TTNr. nicht automatisch
(nur SKM) an den Pfad angehaengt.
Die PCC-Files muessen somit unter /hw/pcc/ stehen.
Sollten hier Subdirectories verwendet werden, so muessen
diese dem Filenamen vorangestellt werden.
/hw/pcc/<Subdir>/<Subdir>/<filename>
PCC_LOAD: Wie FILE_LOAD, jedoch wird die TTNr. nicht automatisch
(nur SKM) an den Pfad angehaengt.
Die PCC-Files muessen somit unter /hw/pcc/ stehen.
Sollten hier Subdirectories verwendet werden, so muessen
diese dem Filenamen vorangestellt werden.
/hw/pcc/<Subdir>/<Subdir>/<filename>
PPS_COM_SPI: Es werden ueber die SPI daten gesendet oder gelesen.
(nur SKMlight) Die Daten werden immer 16 Bit weise gesendet.
Es können max. 16 * 2 Bytes gesendet/gelesen werden. Es ist
nur eine geradzahlige Menge von Bytes zugelassen. (2..4 ..6.....32)
PPS_COLLECT_DATA:
(nur SKMlight) Dieser Befehl gibt ein Triggersignal auf dem Output Port 2 aus, wartet die
eingetragene Zeit in ms ab, und beginnt mit dem einlesen der gewuenschten
Anzahl von Druckwerten aus den angegebenen Kanaelen.
Wartezeit nach Trigger bis lesen in ms
Kanalwahl: bis zu 3 Kanäle die der ASIC cg974 beherrscht.
Anzahl der gelesenen Druckwerte.
Dies Parameter bitte mit p_init initialisieren.
PPS_COLLECT_DATA_ALL:
wie PPS_COLLECT_DATA jedoch werden nicht nur Druckwerte, sondern alle Werte gesammelt.
PPS_COLLECT_DATA_REL:
wie PPS_COLLECT_DATA jedoch werden nur relative Druckwerte gesammelt. Die absoluten
Druckwerte werden verworfen.
PPS_COLLECT_DATA_RAW:
wie PPS_COLLECT_DATA jedoch alle Werte gesammelt. Es werden keine Werte verworfen, auch nicht
die oversampelten.
PPS_SENSOR_ON_COLLECT_DATA:
PPS_SENSOR_ON_COLLECT_DATA_ALL:
PPS_SENSOR_ON_COLLECT_DATA_REL:
PPS_SENSOR_ON_COLLECT_DATA_RAW:
(nur SKMlight) Diese Befehle sind identisch zu ihrem jeweiligen Pendant (s.o.) mit dem Unterschied,
dass zuerst der Sensor eingeschalten wird.
PPS_GET_COLLECTED_DATA:
(nur SKMlight) Diese Befehl liest die bei dem Befehl PPS_COLLECT_DATA erhaltenen daten
aus der SKMlight sortiert nach Kanal aus.
DATUM: Kanalwahl: 1 Byte: 01 = Kanal 1 (nur 1 Kanal moeglich)
02 = Kanal 2
04 = Kanal 3
Blockwahl 1 Byte 0...4 Da bis zu 5000 Daten pro Kanal moglich sind muessen
dies in Blöcken zu je 1000 von der SKMlight geholt
werden. 0=1..1000
1=1001-2000
2=2001-3000 etc.
Beispiel: Kanal 2 u. Datum 1001-2000: DATUM = 0201
PPS_GET_STATUS: Liest die Statusinformationen die der Sensor in der Initialisierungsphase
(nur SKMlight) sendet aus.
Hierzu muss der Befehl vor oder waehrend der Initphase abgesetz werden.
ACHTUNG: Es wird maximal 250 ms auf die ID's gepollt.
DATUM: Kanalwahl: 1 Byte: 01 = Kanal 1 (nur 1 Kanal moeglich)
02 = Kanal 2
04 = Kanal 3
Es werden die Statusinfos zurück gegeben (8 Byte)
PPS_GET_STATUS_EXACTLY:
Wie PPS_GET_STATUS, jedoch muessen von der 16-fachen Wiederholung der Daten mindestens
15 Datenwerte richtig erkannt werden. Ansonsten wird eine Fehlermeldung zurück gegeben.
PPS_GET_STATUS_VERY_EXACTLY:
Wie PPS_GET_STATUS, jedoch muessen von der 16-fachen Wiederholung der Daten alle
16 Datenwerte richtig erkannt werden. Ansonsten wird eine Fehlermeldung zurück gegeben.
PPS_GET_ABS_PRESSURE:
(nur SKMlight) Liest die absoluten Druckwerte P1 und P2 mit ID's aus dem
PPS1-Sensor aus. Hierzu wird maximal 300 ms auf die ID's gepollt, dann
wird die Aufgabe abgebrochen.
DATUM: Kanalwahl: 1 Byte: 01 = Kanal 1 (nur 1 Kanal moeglich)
02 = Kanal 2
04 = Kanal 3
Antwortdaten: PPS-ID1, P1, PPS-ID2, P2 (8 Bytes)
PPS_SENSOR_ON_GET_STATUS:
(nur SKMlight) Schaltet den PPS1-Sensor an und liest anschließend die Statusinformationen (siehe
PPS_GET_STATUS_EXACTLY), die der Sensor in der Initialisierungsphase sendet.
DATUM: Kanalwahl: 1 Byte: 01 = Kanal 1 (nur 1 Kanal moeglich)
02 = Kanal 2
04 = Kanal 3
Es werden die Statusinfos zurück gegeben (8 Byte)
PPS_SENSOR_ON_GET_STATUS_PRESSURE:
(nur SKMlight) Schaltet den PPS1-Sensor an und liest anschließend die Statusinformationen (siehe
PPS_GET_STATUS_EXACTLY) und den Absolutdruck (siehe PPS_GET_ABS_PRESSURE).
DATUM: Kanalwahl: 1 Byte: 01 = Kanal 1 (nur 1 Kanal moeglich)
02 = Kanal 2
04 = Kanal 3
Es werden die Statusinfos und die Druckwerte mit IDs (PPS-ID1, P1, PPS-ID2, P2)
zurück gegeben - insgesamt 8 + 8 Bytes.
PROG_SPANNUNG: Hiermit kann die von der SKM erzeugte Programmierspannung
eingestellt werden.
Eintrag in DATUM: <Spannung in mV>\\<Mode>
Z.B. 3200\\00 => 3,2 V mit Mode = 0
Mode: 00 = Interne Reverenz, Prog.Spannung geschaltet
Mode: 01 = Externe Referenz,Prog.Spannung geschaltet
Mode: 02 = Ausgangsrelais wird geoeffnet
PRUEFMODUL: Mit diesem Befehl wird die SKM veranlasst eine Pruef-
(nur SKM) sequenz aus dem pms-File abzuarbeiten.
Das entsprechende Label muss im Parameter DATUM angegeben
werden. (Z.B. LABEL_55)
Dieses Label muÞ selbstverstÌndlich im pms-File
wiederzufinden sein.
UnterstÏtz bei: (nur SKM)
Prokist
PWM_START: Startet die Pulsweitenmodulation mit folgenden Daten
(nur SKM_LIGHT) Eintrag in DATUM
Frequenz: 4Byte in Hex (10000Hz => 00 00 27 10)
Highfase in %: 1Byte in Hex (75% => 4B)
Obiges Eingabebeispiel in DATUM : 000027104B
Es werden also immer 5 Byte erwartet.
PWM_STOP Stoppt die PWM
(nur SKM_LIGHT) DATUM: kein Eintrag
READ_EEPROM: Dieser Befehl liest aus einem EEPROM die Daten eines
Adressbereiches von Anfangsadresse bis Endadresse aus.
Aufbau des Datenstrings:
Anfangsadresse = 00..FF
Endadresse = 00..FF
UnterstÏtzt bei:
EEPROM (PSS)
REIZEN: Reizen des SG.
UnterstÏtzt bei:
KP2000: (5-Baud Reizung)
JECS
REIZ_MA: Reizen des SG mit Massetastung.
Nach Massetastung meldet sich das SG. Die PSS empfÌngt
die Meldung, und gibt an den Host ein OK zurÏck.
UnterstÏtzt bei:
KP2000
DDS
K71
REIZ_MA_E3: Reizen des SG mit Massetastung.
Nach Massetastung meldet sich das SG. Die PSS/SKM empfÌngt
die Meldung, und gibt sie an den Host weiter.
Bei Fehler SG_ANTWORTET_NICHT wird als Status OK zurÏck
gegeben.
Als Daten wird E3E3E3 an den Host zurÏck gegeben.
UnterstÏtzt bei:
KP2000
REIZ_PO: Reizen des SG durch Power On (einschalten UBATT).
Die Schnittstelle empfÌngt die Meldung.
Daraufhin kann mit normaler Kommunkation weiter gemacht werden.
REIZ_PO_KEY: Reizen des SG durch Power On (einschalten UBATT).
Nach Power On meldet sich das SG mit den Key Bytes.
Die Schnittstelle empfÌngt die Meldung, und den darauf folgenden
Acknowledge Block und gibt dann dem Host ein OK zurÏck.
UnterstÏtzt bei:
K71
KP2000(SKM)
REIZ_PAV: PARA01:0 -> Keine Reizung
1 -> 5 Baud Reizung
2 -> Massetastung
10 -> Protokolleinstieg in NEC-Prozessor KP2000 synchron
zuvor muss Modulaufruf p_auftrag mit Befehl MERKE erfolgen.
hier bei Daten <reset command> und <bootstrap command>
eingeben.
11 -> Handshake für synchrones KP2000 einschalten.
PARA02:0 -> keine Reizung -> Keine Funktion des Moduls
Daraufhin kann mit normaler Kommunkation weiter gemacht werden.
RELAIS_CLOSE: Die bei der Initialisierung eingeschalteten Relais kÎnnen
hier nach einem RELAIS_OPEN wieder geschlossen werden.
UnterstÏtzt bei:
Alle Protokolle
RELAIS_OPEN: Die bei der Initialisierung eingeschalteten Relais kÎnnen
hier geÎffnet werden.
UnterstÏtzt bei:
Alle Protokolle
REQUEST_TRIGGER:
Einschalten eines Triggers:Der Trigger kommt, während eine Botschaft
zum ECU gesendet wird.
SKMlight->Buchse X5->Pin 21
DATUM: =00 -> kein Trigger (Trigger ausschalten)
=01 -> Trigger einschalten
Unterstützt bei:
(derzeit nur KWP2000 über CAN bei SKMlight)
RESET: Es wird ein Reset auf die Schnittstellenkarte ausgegeben.
Alle Protokolle
RESETTEST: Resettest fÏr das DDS-SG.
Es wird eine Botschaft zum SG gesendet, und es darf
keine Antwort zurÏckkommen. Dann ist dieser Test OK.
UnterstÏtzt bei:
DDS
RETURN: RÏcksprung aus Protokoll ohne die Initialisierungs-
parameter zu Ìndern.
UnterstÏtzt bei: (nur SKM)
Alle Protokolle
SAFE_STATE: Prokist-Pins in den Anfangszustand setzen.
UnterstÏtzt bei: (nur SKM)
Prokist
SEED_KEY: Seed and Key Verfahren fÏr EDC 15 C. Es werden hierbei 2
Kommunikationen mit dem SG aufgenommen, die im
DATUM eingetragen werden mÏssen.
B1B1B1B1...||MM||B2B2BK0K1K2K3B2B2....||
B1 = Botschaft 1
B2 = Botschaft 2
K0 - Kn = Platzhalter fÏr Key
MM = Mode : 02 = EDC15 C (access - Mode aus Botschaft B1)
03 = (access - Mode aus INIT-feld 0xE0)
UnterstÏtzt bei: (nur PSS)
Alle Protokolle
SENDBLOCK: Siehe SEND_SG (unten):
Unterstuetzt bei: ( SKM)
alle Protokolle (ohne NOP)
SEND_SG: Die eingegebene Botschaft wird an das SG gesendet. Es
wird nicht auf eine Antwort gewartet. Die Schnittstelle
liefert sofort ein OK zurÏck.
Eine eventuelle Antwort vom SG geht verloren.
UnterstÏtzt bei: (nur PSS)
K71
BLOCK
SET_DIGITAL_OUT:
(nur SKMlight) Setzt die digitalen Ausgänge auf den mitgegebenen Wert (1 Byte)
Es stehen 6 Kanäle zur Verfügung (falls nicht im gewählten Protokoll
benoetigt.
Z.B.: DATUM = 05 -> OUT 0 und OUT 2 auf high
ACHTUNG:
Dies sollte mit der Funktion e_bits realisiert werden.
Diese Funktion ist nur fuer Testzwecke.
SET_PROKI_L: Setzen und zuruecksetzen der Leitungen, die fÏr Prokist
Verwendung finden. (TP)
DATUM: DD DD => 16 Bit (0000....FFFF)
Bit 15 - 12 => Handschakeleitungen DF4-DF1 (Pin 10-13)
Bit 11 - 8 => Resetleitungen RS4-RS1 (Pin 6-9)
Bit 7 => frei
Bit 6 => frei
Bit 5 => frei
Bit 4 - 0 => frei
Wird ein Bit auf 1 gesetzt, geht die Leitung auf High
START_X2_TRIGGER:
(nur SKMlight) Gibt ein Triggersignal auf dem Anschluss X2 der SKMlight aus.
Der Trigger ist LOW-aktiv und es kann gleichzeitig nur ein
einziger Trigger gestartet werden.
Datum DH DL W
DH = Trigger-Delay (High-Byte): Verzögerung in ms, bis der
Trigger ausgegeben wird.
DL = Trigger-Delay (Low-Byte)
W = Triggerbreite in ms
STOP_SG_SEND: Hiermit wird das SG veranlaÞt das dauernde Senden
einzustellen.
UnterstÏtzt bei:
JECS
STRTOMEM:
Der in Daten eingetragene Datenstring wird wird direkt ins
shared memory geschrieben, und kann mit dem Modul p_zerlege_str
oder Makro BLOCKINT zurückglesen werden. (fuer testzwecke).
PARA3 muss mit C oder S,L genau bedient werden wie sonst auch.
C= Sammeln , S oder L = ins Memory speichern.
ACHTUNG: Voraussetzung das Makro K2000Start oder ähnliches
Es muss das verwendete Inteface definiert sein.
TEST_PROKI_L: Setzen und zurÏcksetzen der Leitungen, die fÏr Prokist
Verwendung finden. (TP)
DATUM: DD DD => 16 Bit (0000....FFFF)
Bit 15 - 12 => Handschakeleitungen DF4-DF1 (Pin 10-13)
Bit 11 - 8 => Resetleitungen RS4-RS1 (Pin 6-9)
ACHTUNG: bei folgenden Leitungen sind die auf high
gesetzten Leitungen auf high, der Rest ist offen.
Sind alle Bits auf 0, so werden alle Leitungen auf Low
gesetzt.
Bit 7 => K-Leitung
Bit 6 => L-Leitung
Bit 5 => CLK-Leitung
Bit 4 - 0 => frei
Wird ein Bit auf 1 gesetzt, geht die Leitung auf High
TIMEOUT_PSS:
Hiermit kann der Timeout der PSS gesetzt werden.
(Eintrag in ms, 1...640000ms)
TIMEOUT_SKM:
Hiermit kann der Timeout der SKM gesetzt werden.
(Eintrag in ms, 1...640000ms)
TRIG_SGEMPF_ON: Einschalten des Triggers bei Empfang vom SG.
Achtung nur als Gate-Funktion zu verwenden.
Triggerline unter DATUM eintragen:
Triggerline durch E_TRIGGER mit E_TRG_MODE: NEW vergeben
lassen.
UnterstÏtzt bei SKM ab V4.90:
KP2000
EASY
TRIG_SGEMPF_OF: Abschalten des Triggers bei Empfang vom SG.
noch nicht implementiert !!
WEGFAHRSPERRE: Hiermit wird die Wegfahrsperre im SG gelÎst.
UnterstÏtzt bei:
JECS
WEGFAHR_LESE: Hiermit wird die Wegfahrsperrenbyte vom SG gelesen.
UnterstÏtzt bei:
JECS
WRITE_EEPROM: Dieser Befehl beschreibt ein EEPROM mit den im String DATUM
stehenden Daten, ab der Anfangsadresse.
Aufbau des Datenstrings:
Anfangsadresse = 00..FF
Datum 1 = 00..FF (highbyte)
Datum 1 = 00..FF (lowbyte)
Datum n = 00..FF (highbyte)
Datum n = 00..FF (lowbyte)
UnterstÏtzt bei:
EEPROM
WRITE_ENABLE: Dieser Befehl schaltet das Eeprom in den Zustand, daÞ
es beschrieben werden kann.
UnterstÏtzt bei:
EEPROM
WRITE_DISABLE: Dieser Befehl schaltet das Eeprom in den Zustand, daÞ
das beschreiben verboten wird.
UnterstÏtzt bei:
EEPROM
USS4_INIT: Schreibt die Settings für das USS4-Protokoll zur SKMlight
Hierfuer muessen die Parameter jedoch zuerst mit dem
Modul p_init besetzt werden.
DATUM: keines
Unterstuetzt bei:
USS4-Protokoll (nur SKMlight)
USS4_SENDING Startet das Senden eines Ultraschall-Signals. Nach dem Senden wird
ein Triggersignal ausgegeben und die S/E-Leitung wird losgelassen.
* DATUM: keines
Unterstuetzt bei:
USS4-Protokoll (nur SKMlight)
USS4_RECEIVING: Startet das Empfangen eines Ultraschall-Signals, gibt ein Triggersignal
aus und nimmt sich dann von der S/E-Leitung.
DATUM: keines
Unterstuetzt bei:
USS4-Protokoll (nur SKMlight)
USS4_SEND_REC:
Startet das Senden eines Ultraschall-Signals am Nachbarsensor.
Gleichzeitig startet diese Funktion das Empfangen dieses Ultraschall-
Signals am aktuellen Sensor. Es wird ein Triggersignal ausgegeben, sobald
das Senden gestartet wurde.
DATUM: keines
Unterstuetzt bei:
USS4-Protokoll (nur SKMlight)
USS4_SEND_TRIG: Wies USS4_SENDING, jedoch wird eine Zeit in ms/inc spaeter ab ende des Sendesignals
ein Trigger von 40 us Dauer auf der S/E-Leitung ausgegeben (Initialisierbar mit p_init).
. DATUM: keines
Unterstuetzt bei:
USS4-Protokoll (nur SKMlight)
USS4_GET_STATUS:Liest den Status aus dem USS4.
Antwortdaten: 1 Statusbyte. Der Status des USS4 besteht aus 3 Bits
(die restlichen Bits werden auf 0 gesetzt).
DATUM: keines
Unterstuetzt bei:
USS4-Protokoll (nur SKMlight)
USS4_WRITE_PAR:
Parametrisiert den USS4 mit den übergebenen Bits. Die CRC wird von
automatisch berechnet und angehängt. Die CRC-Berechnung erfolgt nach dem
Polynom P(x) = x^8 + x^7 + x^4 + x^3 + x + 1.
* DATUM: 9 Bytes (MSB zuerst). Da es nur 68 Parameterbits gibt,
werden die 4 MSBits ignoriert.
* Antwortdaten: keine
Unterstuetzt bei:
USS4-Protokoll (nur SKMlight)
USS4_PROG:
Programmiert den USS4. Diese Programmierung dient als Abgleich.
* DATUM: DD SS
DD = 1 Byte zu Programmierendes Datum
SS = Modebyte: 0 = kein Zapping
sonst = Zapping
Unterstuetzt bei:
USS4-Protokoll (nur SKMlight)
BEFEHLxx: Mit diesem SchlÏsselwort kann jeder beliebige Befehl an
die Schnittststelle gegeben werden.
Syntax:
BEFEHLXX wobei XX fÏr den Hex-Code des entsprechenden
Befehls steht. Der Hex-Code zum jeweiligen Befehl
kann der Doku der Schnittstelle entnommen werden.
Vor den Datenstring wird hier noch eine StringlÌnge
fÏr das Protokoll.
COMMANDxx: Wie BEFEHLxx jedoch wird keine LÌnge vor den Daten-
string gehÌngt.4 DATUM Hier ist der String zur PSS bzw. zum SG einzutragen.
BlocklÌnge und Checksumme fÏr die jeweiligen Protokolle
ermittelt die Software hier oder auf der PSS selbst.
Der Header von KP2000 muÞ beim INIT mitgeteilt werden.5 PARA1Siehe Befehl REIZ_PAV6 PARA2
Siehe Befehl REIZ_PAV
NOERROR<fehlercode> : z.B. NOERRORE3 "nur SKM"
Bei dem hier eingetragenen Fehler-
code wird der von der SKM zurueckgegebene Fehler
als Messwert weitergegeben. Es wird kein
Fehlerflag gesetzt und keine Fehlermeldung im
Log-File kreiert.
Fehlercodes sind aus der SKM-Doku zu entnehmen.7 PARA3 Steuerparameter
C: Die Strings in Datum werden so lange aneinander gehÌngt,
bis hier ein L, S oder I eingetragen wird.
L: Der String in Datum wird zur PSS/SKM gesendet und es
wird auf Antwort gewartet.
Ist der Paramter DATUM leer, so wird nur eine Antwort
von der SKM geholt. Diese Antwort kann durch einen
frueheren Befehl im Speicher der SKM hinterlegt worden sein.
Besonderheiten:
L_NOANSWER:Es darf keine Antwort vom SG kommen. Dann wird der Schritt gut
gesetzt. Der Messwert wird auf FF00 gesetzt und kann mit
BLOCKHEX ausgewertet werden.
L_xx: Die Antwort des SG ist egal. Der Schritt wird auch gut gesetzt
wenn keine Antwort kommt. Wenn keine Antwort kommt werden die
Bytes xx als Messwerte bereitgestellt und können mit BLOCKHEX
ausgewertet werden.(z.B. xx=00..FF oder xx=1234)
S: Der String in Datum wird zur PSS/SKM gesendet, dann wird
das Programm ohne auf Antwort zu warten fortgesetzt.
SKM: Eine Ausnahme bildet hierfÏr der Befehl COMBLOCK.
Hier wird der String nur zum SG gesendet. Die
Antwort des SG wird ignoriert und geht verloren.
(Standard PAV)
G Es wird eine Antwort die im Speicher der Schnittstelle
hinterlegt ist ausgelesen wie unter unter L.
ACHTUNG: Geht nicht bei COMBLOCK
INIT: Wie Befehl S: die Antwort wird jedoch erwartet,
zwischengespeichert und kann spaeter mit L abgeholt
werden.
F: Wie S, jedoch wird das von der SKM gelieferte Ergebnis
in ein File geschrieben und auf der /tmp- Direktory
abgelegt. ZusÌtzlich kann das Ergebnis aber wie gehabt
ausgewertet werden bis zu 256 Byte.8 PARA4Steuerparameter for Future use9 ERGEBNIS
Pointer auf den Antwortstring der PSS/SKM10 FEHLERFLAG
Wird gesetzt bei aufgetretenem Fehler Revision 1.1 2001/12/18 10:47:33 sgc3sa Anpassungen fuer Linux und QT Revision 1.27 2001/09/24 08:07:19 ssm3bw ssm3bw_010924: COMBLOCK_ANW enhanced Revision 1.26 2001/08/16 13:02:37 ssm3bw SymToAddr activated again Revision 1.25 2001/06/19 13:30:03 lehmann Änderung für Linux Revision 1.24 2001/03/29 14:39:23 lehmann Eingabe und Concatinierung von langen Strings implementiert Revision 1.23 2001/02/09 14:27:15 PIJ3SA SymToAddr raus Revision 1.22 2000/11/27 09:29:53 keppler Synchronisiert mit aenderungen AnW Revision 1.21 2000/10/23 09:39:05 schneid COMBLOCK_ANW fuer SYM-Files definiert Revision 1.21 2000/08/16 13:56:47 keppler Doku geaendert Revision 1.20 2000/08/16 12:12:01 keppler Doku erweitert Revision 1.19 2000/01/21 13:46:22 keppler Doku erweitert Revision 1.18 2000/01/11 12:14:15 keppler Doku erweitert Revision 1.17 1999/12/22 10:05:59 keppler $ID -> $Id Revision 1.16 1999/12/22 09:12:27 keppler $Header -> $Id Revision 1.15 1999/10/26 15:27:34 keppler Defaultprozess = vxi_pss Revision 1.14 99/10/26 15:25:16 15:25:16 wiese (Stefan Wiese) Return -1 eingefuehrt Revision 1.13 99/10/22 10:11:01 10:11:01 keppler (Fritz Keppler) Errormessage und Doku Revision 1.12 99/04/20 12:59:25 12:59:25 wiese (Stefan Wiese) FILE_DELETE neu Revision 1.11 99/04/20 12:54:18 12:54:18 keppler (Fritz Keppler) SET_PROKI_L neu Revision 1.10 99/03/10 15:04:37 15:04:37 wiese (Stefan Wiese) Doku klarer Revision 1.9 99/01/28 11:50:43 11:50:43 keppler (Fritz Keppler) Doku erweitert Revision 1.8 98/11/27 10:33:03 10:33:03 keppler (Fritz Keppler) Doku erweitert Revision 1.7 98/09/30 13:24:32 13:24:32 keppler (Fritz Keppler) Doku werweitert Revision 1.6 98/09/25 14:09:41 14:09:41 wiese (Stefan Wiese) Doku erweitert Revision 1.5 98/09/18 17:52:55 17:52:55 wiese (Stefan Wiese) REIZ_PAV neu Revision 1.4 98/09/18 17:35:23 17:35:23 keppler (Fritz Keppler) DOKU PCC_DOWNLOAD Revision 1.3 98/08/13 17:42:55 17:42:55 keppler (Fritz Keppler) no entry Revision 1.2 98/07/20 14:35:32 14:35:32 keppler (Fritz Keppler) Modul auch im sammle Mode schrittfÌhig Revision 1.1 98/07/02 13:59:58 13:59:58 keppler (Fritz Keppler) Initial revision Revision 1.12 98/05/27 17:13:14 17:13:14 keppler (Fritz Keppler) Doku erweitert Revision 1.11 98/05/06 07:28:25 07:28:25 keppler (Fritz Keppler) Doku erweitert Revision 1.10 98/04/29 16:27:24 16:27:24 wiese (Stefan Wiese) P_AUFTRAG_B neu Revision 1.9 98/03/03 10:36:13 10:36:13 keppler (Fritz Keppler) Doku erweitert Revision 1.8 98/02/25 08:47:17 08:47:17 keppler (Fritz Keppler) Doku erweitert Revision 1.7 98/02/13 14:01:14 14:01:14 keppler (Fritz Keppler) Doku erweitert Revision 1.6 98/02/09 18:03:31 18:03:31 keppler (Fritz Keppler) Schrittbetrieb vor starten des Programms Revision 1.5 98/01/30 15:38:54 15:38:54 keppler (Fritz Keppler) Doku erweitert Revision 1.4 98/01/26 16:52:34 16:52:34 keppler (Fritz Keppler) no entry Revision 1.3 97/12/17 10:51:31 10:51:31 keppler (Fritz Keppler) Doku erweitert Revision 1.2 97/12/10 13:55:00 13:55:00 keppler (Fritz Keppler) Doku erweitert Revision 1.1 97/12/02 14:39:59 14:39:59 keppler (Fritz Keppler) Initial revision Revision 1.1 96/11/29 11:22:38 11:22:38 keppler (Fritz Keppler) Initial revision Revision 1.6 96/07/11 09:39:18 09:39:18 gueltlin (Jochen Gueltling) include-File STRIN_540 entfernt Revision 1.5 96/07/04 15:31:51 15:31:51 keppler (Fritz Keppler) Doku erweitert. Revision 1.4 96/07/04 15:23:15 15:23:15 keppler (Fritz Keppler) Doku erweitert. Revision 1.3 96/06/05 13:44:57 13:44:57 keppler (Fritz Keppler) Keine Fehler mit prolint Revision 1.2 96/06/05 13:32:36 13:32:36 keppler (Fritz Keppler) Erste funktionierende Version Revision 1.1 96/05/20 14:30:18 14:30:18 keppler (Fritz Keppler) Initial revision ---------------------------------------------------------------------