emotas CANopen Master/Slave stack
Softwarepakket voor de ontwikkeling van CiA301 & CiA302-2 CANopen master of slave nodes
De stack is ontwikkeld in ANSI-C en is MISRA-conform. CANopen Master/Slave-compatibele apparaten kunnen snel en eenvoudig worden ontwikkeld of uitgebreid met onze CANopen Master/Slave softwarestack.
Highlights
- ANSI-C compatibele CANopen Master/Slave broncode stack
- MISRA-C-conform
- Ondersteunt alle CANopen-services van CiA301 V4.2 & CiA302-2
- Inclusief Layer Setting Service (LSS)
- Uitbreidingen voor verdere standaarden beschikbaar
- Beschikbaar voor vele CAN-controllers en CPU's
- Comfortabele gebruikersinterface
- Veelzijdig, configureerbaar en schaalbaar
CANopen Master/Slave
De stack bevat alle functies en services van de emotas CANopen Slave Stack. Daarnaast is de stack uitgerust met NMT Master-functionaliteiten en netwerkbeheer. Er zijn verschillende Master voorbeelden beschikbaar om de eerste stappen te zetten om de complexe Master-functionaliteiten zo eenvoudig mogelijk te maken.
Interfacing
Een flexibele gebruikersinterface biedt functies om de ontvangen data te evalueren en om de CANopen Master/Slave-services in het netwerk te gebruiken.
Om de CANopen Master/Slave Stack te verbinden met meerdere CAN-controllers en CPU-types, wordt een goed gedefinieerde driverinterface gebruikt. Met behulp van deze driverinterface kan de CANopen Master/Slave-stack ook eenvoudig worden aangepast aan nieuwe CAN-controllers of CPU-typen. Ook is het mogelijk om hardwareplatforms met weinig inspanning te vervangen.
De CANopen Slave Stack kan worden gebruikt met verschillende Realtime besturingssystemen zoals ThreadX, FreeRTOS, Keil RTX of TI-RTOS, maar ook met Linux (SocketCAN, can4linux), QNX of met Real time-uitbreidingen voor Windows.
De stack wordt constant getest met de CANopen Conformance Test om te voldoen aan de specificatie.
API
Naast de functie-API is er ook een Mailbox-API beschikbaar voor een eenvoudig gebruik met meerdere taken resp. threads. Berichten tussen toepassingsmodules en CANopen Master/Slave-stack worden verzonden via mailboxen in plaats van functieaanroepen. Dit zorgt voor een niet-blokkerende communicatie. Een toepassing kan zodoende uit meerdere taken bestaan die de CANopen Stack parallel gebruiken.
CANopen functies
Overzicht van de CANopen-functies van de Master/Slave stack in vergelijk met de andere emotasstacks
Services | Basic Slave | Master/Slave | Manager |
SDO Server | 2 | 128 | 128 |
SDO Client | 128 | 128 | |
SDO expedited/ segmented/block | ●/●/- | ●/●/○ | ●/●/○ |
PDO Producer | 32 | 512 | 512 |
PDO Consumer | 32 | 512 | 512 |
PDO Mapping | static | static/dynamic | static/dynamic |
MPDO Dest Mode | ○ | ○ | |
MPDO Src. Mode | ○ | ○ | |
SYNC Producer | ● | ● | |
SYNC Consumer | ● | ● | ● |
Time Producer | ● | ● | |
Time Consumer | ● | ● | |
Emergency Producer | ● | ● | ● |
Emergency Consumer | 127 | 127 | |
Guarding Master | ● | ||
Guarding Slave | ● | ● | ● |
Bootup Handling | ● | ● | |
Heartbeat Producer | ● | ● | ● |
Heartbeat Consumer | 127 | 127 | |
NMT Master function | ● | ● | |
NMT Slave | ● | ● | ● |
LED CiA-303 | ● | ● | ● |
LSS CiA-305 | ● | ● | ● |
SDO Requester (SRD) CiA-302-5 | ○ | ○ | |
CANopen Router CiA-302-7 | ○ | ○ | |
Master Bootup CiA 302 | ● | ||
Configuration Manager | ● | ||
Flying Master | ○ | ○ | |
Redundancy | ○ | ○ | |
Safety | ○ | ○ | ○ |
Multiline | ○ | ○ | |
C#-API-Wrapper for Windows | ○ | ○ | ○ |
Delphi-API-Wrapper for Windows | ○ | ○ | ○ |
● - Inclusief ○ - Optioneel |
CANopen DeviceDesigner
Om bronnen te sparen is de CANopen Master/Slave-stack breed configureerbaar en schaalbaar. De instellingen voor deze functies worden ondersteund door de grafische configuratietool CANopen DeviceDesigner. De CANopen DeviceDesigner stelt de Object Directory samen en genereert de initialisatiefuncties in C, het EDS-bestand en apparaatdocumentatie. Daarnaast configureert de CANopen DeviceDesigner de CANopen-stack en CANopen-stuurprogramma.
Met behulp van de unieke CANopen DeviceDesigner wordt waardevolle ontwikkeltijd bespaard.
Eenvoudig opstarten
Er zijn veel kant-en-klare voorbeelden beschikbaar om de start met de CANopen Master/Slave-stack zo eenvoudig mogelijk te maken. Daarnaast behoort een gebruikershandleiding, waarin principes en use cases worden beschreven, en een referentiehandleiding, die elke API-functie in detail beschrijft, tot de leveringsomvang.
Ondersteunde processoren en IDE's
De volgende chipfabrikanten en CAN-controllers worden op dit moment door de emotasCANopen Master/Slave Stack ondersteund: ATMEL, BOSCH, Freescale (NXP), Cypress (Spansion/Fujitsu), Infineon, Microchip, NXP, NuvoTon, Renesas, ST Microelectronics, Texas Instruments. Veder wordt generiek de x86-arcitectuur en LINUX ondersteund.
CANopen Master/Slave Stack code kan worden gegenereerd met bijvoorbeeld compilers of IDE’s van GCC / GNU, Keil, IAR, Crossworks, Atollic True Studio, Tasking en de specifieke ontwikkelomgevingen van de diverse chipfabrikanten.
Vraag naar de specifieke mogelijkheden van een specifieke controller/IDE-combinatie.
Licentiemodel
De CANopen Master/Slave Stack wordt geleverd als broncode in de vorm van een éénmalige Project of Site Licentie. Het onderscheidt tussen beiden is als volgt:
- Project licentie
De software (broncode) mag worden gebruikt op één gedefinieerde ontwikkelingslocatie voor één gedefinieerd project. De standaard supportperiode bedraagt 6 maanden. - Site licentie
De software (broncode) mag worden gebruikt op één ontwikkelsite/-locatie, door verschillende ontwikkelaars op deze locatie, voor een onbeperkt aantal producten. De standaard supportperiode bedraagt 24 maanden.
Er bestaan géén run-time fees of royalty's op de uiteindelijk gegenereerde object code.
Leveromvang |
- Bron-code in C |
- Voorbeeld code in C |
- Software gebruikerslicentie |
- Programmeerhandleiding |
- CANopen DeviceDesigner (gebruikerslicentie op naam) |
- Technische ondersteuning (tijdgelimiteerd) |