CAN/Cyphal¶
Cyphal
defines the communication stack from physical layer via transport and presentation up to the application layer.
The software implementation is included in the Cyphal Library.
Periodically data exchange is done with a subscriber / publisher structure between the platforms of the Highdra.
Additionally a register interface offers configuration of the Cyphal nodes. Available registers are listed for each board's firmware in addition to the default registers:
External Links¶
- The official Cyphal Specification
- Cyphal data struct definitions:
public_regulated_data_types - Cyphal message to C converter: nunavut
- C-Library for Cyphal:
libcanard
CAN Communication Limitations¶
- Minimum of two devices (e.g. one device under test / BMS and one receiving monitor / PC)
- If only one participant is present, the CAN controller will perform automatic message repeats (not getting acknowledged)
- CAN bus requires power supply / bus voltage
- e.g. by activating the BMS latches or HS, alternatively by apply of 5V to the CAN VDD
Reserved Cyphal Subject Port¶
| Subject Port | Description |
|---|---|
| [7168, 8191] | Reserved by Cyphal (as for Services: [384, 511]) |
| 6060 | BMS Power Data Publish, starcopter.highdra.bms.PowerData.0.2 |
| 6061 | BMS Temperature Data Publish, starcopter.highdra.bms.TempData.0.1 |
| 6062 | BMS State Data Publish, starcopter.highdra.bms.State.0.2 |
| 6063 | BMS Energy Source Publish, reg.udral.physics.electricity.Power.0.1 |
| 6064 | BMS Data Publish, starcopter.highdra.bms.BMSData.0.1 |
| --- | --- |
| xxxx | MB Sync pulse (for MMB Synchronization) |
| xxxx | MB Data |
| xxxx | MMB Data |
Note
Maybe change all internal ports to [6144,7167] - Non-standard fixed regulated identifiers (i.e., vendor-specific).
Reserved Cyphal Node IDs¶
| Node ID | Module Reservation |
|---|---|
| 0 | MB |
| 1, 3, 5, 7, 9, 11 | MMB (at corresponding slot position) |
| 2, 4, 6, 8, 10, 12 | BMS (at corresponding slot position) |
| 13 | Gear Controller |