Skip to content

Zonal Architecture

This document holds an example of a zonal architecture using the TOSCA SofDCar profile. This zonal architecture consists of several zones inside the vehicle in which also cloud services are integrated.

Scenario

In this example, there are two zones which both contain a zone control unit, an actuator, and a sensor, as shown in Figure 1. Communication inside those zones is based on CAN. Furthermore, there is a third zone which contains a vehicle control unit. This vehicle control unit connects the other two zones based on Ethernet. Moreover, this vehicle control unit also connects to some service running in the cloud.

Distributed Locations

Figure 1: Zonal Architecture

Appendix A "Service Template"

This appendix contains the service template of this guide. The service template is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3
description: Example of a zonal architecture connected to the cloud.
imports:
    - types.yaml

topology_template:
    node_templates:
        ###################################################
        #
        # Cloud
        #
        ###################################################

        cloud_service:
            type: example.nodes.Cloud.Service
            requirements:
                - host: cloud_provider

        cloud_provider:
            type: example.nodes.Cloud.Provider

        ###################################################
        #
        # Vehicle Control Unit
        #
        ###################################################

        vehicle_control_unit_software:
            type: example.nodes.VCU.Software
            requirements:
                - host: vehicle_control_unit_hardware
                - cloud: cloud_service

        vehicle_control_unit_hardware:
            type: example.nodes.VCU.Hardware
            requirements:
                - ethernet: zone_a_ethernet
                - ethernet: zone_b_ethernet

        ###################################################
        #
        # Zone A
        #
        ###################################################

        zone_a_control_unit_software:
            type: example.nodes.ZCU.Software
            requirements:
                - host: zone_a_control_unit_hardware
                - vcu: vehicle_control_unit_software

        zone_a_control_unit_hardware:
            type: example.nodes.ZCU.Hardware
            requirements:
                - ethernet: zone_a_ethernet
                - can: zone_a_can_bus

        zone_a_ethernet:
            type: sofdcar.nodes.Ethernet

        zone_a_can_bus:
            type: sofdcar.nodes.CAN

        zone_a_actuator:
            type: example.nodes.Actuator
            requirements:
                - can: zone_a_can_bus
                - zcu: zone_a_control_unit_software

        zone_a_sensor:
            type: example.nodes.Sensor
            requirements:
                - can: zone_a_can_bus
                - zcu: zone_a_control_unit_software

        ###################################################
        #
        # Zone B
        #
        ###################################################

        zone_b_control_unit_software:
            type: example.nodes.ZCU.Software
            requirements:
                - host: zone_b_control_unit_hardware
                - vcu: vehicle_control_unit_software

        zone_b_control_unit_hardware:
            type: example.nodes.ZCU.Hardware
            requirements:
                - ethernet: zone_b_ethernet
                - can: zone_b_can_bus

        zone_b_ethernet:
            type: sofdcar.nodes.Ethernet

        zone_b_can_bus:
            type: sofdcar.nodes.CAN

        zone_b_actuator:
            type: example.nodes.Actuator
            requirements:
                - can: zone_b_can_bus
                - zcu: zone_b_control_unit_software

        zone_b_sensor:
            type: example.nodes.Sensor
            requirements:
                - can: zone_b_can_bus
                - zcu: zone_b_control_unit_software

    groups:
        cloud:
            type: tosca.groups.Root
            members:
                - cloud_service
                - cloud_provider

        zone_a:
            type: sofdcar.groups.Zone
            members:
                - zone_a_control_unit_software
                - zone_a_control_unit_hardware
                - zone_a_ethernet
                - zone_a_can_bus
                - zone_a_actuator
                - zone_a_sensor

        zone_b:
            type: sofdcar.groups.Zone
            members:
                - zone_b_control_unit_software
                - zone_b_control_unit_hardware
                - zone_b_ethernet
                - zone_b_can_bus
                - zone_b_actuator
                - zone_b_sensor

        zone_c:
            type: sofdcar.groups.Zone
            members:
                - vehicle_control_unit_software
                - vehicle_control_unit_hardware

Appendix B "Type Definitions"

This appendix contains the type definitions of this guide. The type definitions are also available as download

tosca_definitions_version: tosca_simple_yaml_1_3
imports:
    - ../../tosca-sofdcar-profile.yaml
    - ../../tosca-sofdcar-profile-extended.yaml

node_types:
    example.nodes.Cloud.Service:
        derived_from: tosca.nodes.SoftwareComponent
        capabilities:
            endpoint:
                type: tosca.capabilities.Endpoint

    example.nodes.Cloud.Provider:
        derived_from: sofdcar.nodes.Cloud
        capabilities:
            host:
                type: tosca.capabilities.Compute

    example.nodes.VCU.Software:
        derived_from: sofdcar.nodes.HPC.Software
        capabilities:
            endpoint:
                type: tosca.capabilities.Endpoint
        requirements:
            - cloud:
                  capability: tosca.capabilities.Endpoint
                  relationship: tosca.relationships.ConnectsTo

    example.nodes.VCU.Hardware:
        derived_from: sofdcar.nodes.HPC.Hardware
        requirements:
            - ethernet:
                  capability: sofdcar.capabilities.Endpoint.Ethernet
                  relationship: sofdcar.relationships.Ethernet
                  occurrences: [0, UNBOUNDED]

    example.nodes.ZCU.Software:
        derived_from: sofdcar.nodes.HPC.Software
        capabilities:
            endpoint:
                type: tosca.capabilities.Endpoint
        requirements:
            - vcu:
                  capability: tosca.capabilities.Endpoint
                  relationship: tosca.relationships.ConnectsTo

    example.nodes.ZCU.Hardware:
        derived_from: sofdcar.nodes.HPC.Hardware
        requirements:
            - can:
                  capability: sofdcar.capabilities.Endpoint.CAN
                  relationship: sofdcar.relationships.CAN
            - ethernet:
                  capability: sofdcar.capabilities.Endpoint.Ethernet
                  relationship: sofdcar.relationships.Ethernet

    example.nodes.Actuator:
        derived_from: sofdcar.nodes.Actuator
        requirements:
            - can:
                  capability: sofdcar.capabilities.Endpoint.CAN
                  relationship: sofdcar.relationships.CAN
            - zcu:
                  capability: tosca.capabilities.Endpoint
                  relationship: tosca.relationships.ConnectsTo

    example.nodes.Sensor:
        derived_from: sofdcar.nodes.Sensor
        requirements:
            - can:
                  capability: sofdcar.capabilities.Endpoint.CAN
                  relationship: sofdcar.relationships.CAN
            - zcu:
                  capability: tosca.capabilities.Endpoint
                  relationship: tosca.relationships.ConnectsTo

Last update: December 4, 2024