Die
Table of Contents |
---|
Einleitung
Eine LAYER_2 Kommunikation kann mit der CANopen Slave Firmware und/oder der CANopen Master Firmware gleichermaßen realisiert werden.
Wenn ausschließlich LAYER_2 Kommunikation benötigt wird, muss in der SyconSYCON.net Konfiguration das Startverhalten bei beiden Firmware (Master/Slave) auf "Controlled by Application" gestellt werden.
...
Der Master wird dann nur ein CAN-Telegramm mit CAN-ID 0x700 + NODE-ID senden, das lässt sich auch nicht abstellen.
Der Slave sendet dieses Telegramm nicht. SYCON.net übernimmt hier aber auch nur einen Teil der Konfiguration.
...
Alles weitere (Konfiguration, senden Senden und empfangen Empfangen von CAN Telegrammen) erfolgt ausschließlich über die Mailboxen der CIFX Karte, also mit den Treiberfunktionen xChannelPutPacket() und xChannelGetPacket().
Da ohnehin mit Paketen konfiguriert werden muss, kann das Ganze aber dies auch komplett ohne SYCON.net implementiert werden (von SYCON kommt dann .net wird in diesem Fall nur die Baudrate definiert).In der Datei "LAYER_2.txt"
Anwendung
Folgend sind die einzelnen Kommandos als Dump zusammengestellt, die hierfür benötigt werden (alle Werte in HEX).
Es handelt sich hierbei aus Paketen um Pakete, die den Protokoll API - Manuals entnommen sind. Diese sende ich Ihnen anbei.
CANopen Master Protocol API: CANopen Master
CANopen Slave Protocol API: CANopen Slave
Die Baudrate ist in beiden Fällen 1MBaud.
CANopen-Master SetBusParam
DEST: 20
CMD: 2806
LEN: 2C
DATA: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
CANopen-Slave SetBusParam
DEST: 20
CMD: 2E04
LEN: 44
DATA: 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Channel Init
DEST: 20
CMD: 2F80
LEN: 0
DATA:
CAN_DL-Register
DEST: 20
CMD: 2A0A
LEN: 04
DATA: 00 00 00 00
CAN_DL-Enable RxID
DEST: 20
CMD: 2A12
LEN: 18
DATA: 03 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 FF 07 00 00 00 00 00 00
CAN_DL-Send Data
DEST: 20
CMD: 2A02
LEN: 14
DATA: 00 00 00 00 08 00 00 00 42 00 00 00 11 22 33 44 55 66 77 88 |
Für den CANopen Master müssen (ohne SYCON.net) folgende Pakete in folgender Reihenfolge gesendet werden (das oben beschriebene CAN-Telegramm mit CAN-ID 0x700 + NODE-ID wird hier auch gesendet):
- CANopen-Master SetBusParam
- CAN_DL-Register
- CAN_DL-Enable RxID
- (CAN_DL-Send Data) – Exemplarisches Senden eines CAN-Telegramms
Für den CANopen Slave müssen (ohne SYCON.net) folgende Pakete in folgender Reihenfolge gesendet werden:
- CANopen-Slave SetBusParam
- Channel Init
- CAN_DL-Register
- CAN_DL-Enable RxID
- (CAN_DL-Send Data) – Exemplarisches Senden eines CAN-Telegramms
CAN-Telegramme werden dann von der Kundenapplikation Applikation über die Receive Mailbox der Karte empfangen (CAN_DL_CMD_DATA_IND).
Wenn SYCON.net verwendet wird, müssen müssen die SetBusParam und beim Slave der Channel Init übersprungen werden.