emotas CANopen Basic Slave stack
Softwarepakket voor de ontwikkeling van CiA301 CANopen slave-nodes
De stack is ontwikkeld in ANSI-C en is MISRA-conform. CANopen Slave-compatibele apparaten kunnen snel en eenvoudig worden ontwikkeld of uitgebreid met onze CANopen Basic Slave softwarestack.
Highlights
- ANSI-C compatibele CANopen Basic Slave broncode stack
- MISRA-C-conform
- Ondersteunt alle CANopen-services van CiA301 V4.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 Basic Slave
Naast de standaard CANopen-diensten zijn uitbreidingen voor extra communicatieprofielen zoals redundante communicatie (CiA 302), veiligheidsrelevante communicatie (CiA 304) en implementatie van apparaatprofielen zoals bijvoorbeeld generieke I/O-modules (CiA 401) beschikbaar.
Interfacing
Een flexibele gebruikersinterface biedt functies om de ontvangen data te evalueren en om de CANopen Basic Slave-services in het netwerk te gebruiken.
Om de CANopen Basic 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 Basic 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 Basic 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 Basic 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 Basic 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 Basic 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 Basic 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 Basic 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 Basic 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) |