Skip to content

Commit 2593299

Browse files
Rebranding (#112)
1 parent 327e52c commit 2593299

28 files changed

+511
-411
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# UAVCAN specification
1+
# Cyphal specification
22

3-
[![CI](https://github.com/UAVCAN/specification/actions/workflows/build.yml/badge.svg)](https://github.com/UAVCAN/specification/actions)
4-
[![Forum](https://img.shields.io/discourse/https/forum.uavcan.org/users.svg)](https://forum.uavcan.org)
3+
[![CI](https://github.com/OpenCyphal/specification/actions/workflows/build.yml/badge.svg)](https://github.com/OpenCyphal/specification/actions)
4+
[![Forum](https://img.shields.io/discourse/https/forum.opencyphal.org/users.svg)](https://forum.opencyphal.org)
55

6-
The sources of the UAVCAN specification and other related documents are contained here.
6+
The sources of the Cyphal specification and other related documents are contained here.
77

88
When cloning this repository, don't forget to initialize the Git submodules:
99
`git submodule update --init --recursive`.
@@ -15,7 +15,7 @@ When cloning this repository, don't forget to initialize the Git submodules:
1515
Follow the Zubax LaTeX guide: <https://kb.zubax.com/x/IYEh>.
1616
**Do not edit the document without the spell checker.**
1717

18-
Write in American English <sub>*(don't look at me, I'm trying my best)*</sub>.
18+
Write in American English.
1919

2020
Critical definitions (behaviors, constraints, assumptions, etc.) shall be written in the main body of the document.
2121
Optional content (clarifications, examples, elaborations) is placed either into footnotes or into blue remark boxes

compile.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22

3-
SRC=UAVCAN_Specification
3+
SRC=Cyphal_Specification
44

55
# https://tex.stackexchange.com/a/52994/132781
66
export max_print_line=1000

dsdl

Submodule dsdl updated from 53a7dbb to d0bd651

specification/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,4 +179,4 @@ TSWLatexianTemp*
179179

180180
# Outputs
181181
*-converted-to.*
182-
UAVCAN_Specification.pdf
182+
Cyphal_Specification.pdf
Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
% !TEX root
22
%
3-
% Copyright (c) 2018-2019 UAVCAN Development Team
3+
% Copyright (c) 2018-2019 OpenCyphal
44
%
55

6-
\documentclass{uavcandoc}
6+
\documentclass{cyphaldoc}
77

88
\usepackage{multirow}
99
\usepackage{tabularx}
@@ -48,12 +48,10 @@
4848

4949
\section*{Overview}
5050

51-
UAVCAN is an open lightweight protocol designed for reliable intravehicular communication
52-
in aerospace and robotic applications over robust transports.
53-
It is created to address the challenge of deterministic on-board data exchange
54-
between systems and components of advanced intelligent vehicles.
55-
56-
The name UAVCAN stands for \emph{Uncomplicated Application-level Vehicular Communication And Networking}.
51+
Cyphal is an open technology for real-time intravehicular distributed computing and communication based on
52+
modern networking standards (Ethernet, CAN FD, etc.).
53+
It was created to address the challenge of on-board deterministic computing and data distribution in
54+
next-generation intelligent vehicles: manned and unmanned aircraft, spacecraft, robots, and cars.
5755

5856
Features:
5957

@@ -76,7 +74,7 @@ \section*{Overview}
7674

7775
\section*{License}
7876

79-
UAVCAN is a standard open to everyone, and it will always remain this way.
77+
Cyphal is a standard open to everyone, and it will always remain this way.
8078
No authorization or approval of any kind is necessary for its implementation, distribution, or use.
8179

8280
% The following statement looks a bit archaic, but it is the recommended form according to

specification/application/application.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,22 @@ \chapter{Application layer}\label{sec:application}
33
Previous chapters of this specification define a set of basic concepts that are the foundation of the protocol:
44
they allow one to define data types and exchange data objects over the bus in a robust and deterministic manner.
55
This chapter is focused on higher-level concepts: rules, conventions, and standard functions that are to be
6-
respected by applications utilizing UAVCAN to maximize cross-vendor compatibility, avoid ambiguities, and
6+
respected by applications utilizing Cyphal to maximize cross-vendor compatibility, avoid ambiguities, and
77
prevent some common design pitfalls.
88

99
The rules, conventions, and standard functions defined in this chapter are designed to be an acceptable middle
1010
ground for any sensible aerospace or robotic system.
11-
UAVCAN favors no particular domain or kind of system among targeted applications.
11+
Cyphal favors no particular domain or kind of system among targeted applications.
1212

1313
\begin{itemize}
1414
\item Section~\ref{sec:application_requirements} contains a set of mandatory rules that shall be
15-
followed by all UAVCAN implementations.
15+
followed by all Cyphal implementations.
1616

1717
\item Section~\ref{sec:application_conventions} contains a set of conventions and recommendations that
1818
are not mandatory to follow. Every deviation, however, should be justified and well-documented.
1919

2020
\item Section~\ref{sec:application_functions} contains a full list of high-level functions defined on
21-
top of UAVCAN. Formal specification of such functions is provided in the DSDL data type definition files that
21+
top of Cyphal. Formal specification of such functions is provided in the DSDL data type definition files that
2222
those functions are based on (see chapter~\ref{sec:sdt}).
2323
\end{itemize}
2424

specification/application/conventions.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
\section{Application-level conventions}\label{sec:application_conventions}
22

33
This section describes a set of high-level conventions designed to enhance compatibility
4-
of applications leveraging UAVCAN.
4+
of applications leveraging Cyphal.
55
The conventions described here are not mandatory to follow;
66
however, every deviation should be justified and documented.
77

@@ -27,7 +27,7 @@ \subsection{Service latency}
2727

2828
\subsection{Coordinate frames}
2929

30-
UAVCAN follows the conventions that are widely accepted in relevant applications.
30+
Cyphal follows the conventions that are widely accepted in relevant applications.
3131
Adherence to the coordinate frame conventions described here maximizes compatibility and
3232
reduces the amount of computations for conversions between incompatible coordinate systems and
3333
representations.

specification/application/functions.tex

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
\section{Application-level functions}\label{sec:application_functions}
22

3-
This section documents the high-level functionality defined by UAVCAN.
3+
This section documents the high-level functionality defined by Cyphal.
44
The common high-level functions defined by the specification span across different application domains.
55
All of the functions defined in this section are optional (not mandatory to implement),
66
except for the node heartbeat feature (section~\ref{sec:application_functions_heartbeat}),
7-
which is mandatory for all UAVCAN nodes.
7+
which is mandatory for all Cyphal nodes.
88

99
The detailed specifications for each function are provided in the DSDL comments of the data type definitions
1010
they are built upon, whereas this section serves as a high-level overview and index.
1111

1212
\subsection{Node initialization}
1313

14-
UAVCAN does not require that nodes undergo any specific initialization upon connection to the bus ---
14+
Cyphal does not require that nodes undergo any specific initialization upon connection to the bus ---
1515
a node is free to begin functioning immediately once it is powered up.
1616
The operating mode of the node (such as initialization, normal operation, maintenance, and so on)
1717
is to be reflected via the mandatory heartbeat message described in section~\ref{sec:application_functions_heartbeat}.
1818

1919
\subsection{Node heartbeat}\label{sec:application_functions_heartbeat}
2020

21-
Every non-anonymous UAVCAN node shall report its status and presence by periodically publishing messages of type
21+
Every non-anonymous Cyphal node shall report its status and presence by periodically publishing messages of type
2222
\DSDLReference{uavcan.node.Heartbeat} at a fixed rate specified in the message definition using the fixed subject-ID.
2323
Anonymous nodes shall not publish to this subject.
2424

25-
This is the only high-level protocol function that UAVCAN nodes are required to support.
25+
This is the only high-level protocol function that Cyphal nodes are required to support.
2626
All other data types and application-level functions are optional.
2727

2828
\DSDL{uavcan.node.Heartbeat}
@@ -32,7 +32,7 @@ \subsection{Generic node information}
3232
The service \DSDLReference{uavcan.node.GetInfo} can be used to obtain generic information about the node,
3333
such as the structured name of the node (which includes the name of its vendor),
3434
a 128-bit globally unique identifier, the version information about its hardware and software,
35-
version of the UAVCAN specification implemented on the node, and the optional certificate of authenticity.
35+
version of the Cyphal specification implemented on the node, and the optional certificate of authenticity.
3636

3737
While the service is, strictly speaking, optional, omitting its support is highly discouraged,
3838
since it is instrumental for network discovery, firmware update, and various maintenance and diagnostic needs.
@@ -52,7 +52,7 @@ \subsection{Bus data flow monitoring}
5252

5353
\subsection{Network-wide time synchronization}
5454

55-
UAVCAN provides a simple and robust method of time synchronization%
55+
Cyphal provides a simple and robust method of time synchronization%
5656
\footnote{The ability to accurately synchronize time between nodes is instrumental for building distributed
5757
real-time data processing systems such as various robotic applications, autopilots, autonomous driving solutions,
5858
and so on.} that is built upon the work
@@ -181,7 +181,7 @@ \subsection{Generic node commands}\label{sec:application_functions_generic_comma
181181

182182
\subsection{Node software update}
183183

184-
A simple software\footnote{Or firmware -- UAVCAN does not distinguish between the two.}
184+
A simple software\footnote{Or firmware -- Cyphal does not distinguish between the two.}
185185
update protocol is defined on top of the remote file system interface
186186
(section~\ref{sec:application_functions_file_system})
187187
and the generic node commands (section~\ref{sec:application_functions_generic_commands}).
@@ -201,9 +201,9 @@ \subsection{Node software update}
201201

202202
\subsection{Register interface}\label{sec:application_functions_register}
203203

204-
UAVCAN defines the concept of \emph{named register} -- a scalar, vector, or string value with an associated
205-
human-readable name that is stored on a UAVCAN node locally and is accessible via
206-
UAVCAN\footnote{And, possibly, other interfaces.} for reading and/or modification
204+
Cyphal defines the concept of \emph{named register} -- a scalar, vector, or string value with an associated
205+
human-readable name that is stored on a Cyphal node locally and is accessible via
206+
Cyphal\footnote{And, possibly, other interfaces.} for reading and/or modification
207207
by other nodes on the bus.
208208

209209
Named registers are designed to serve the following purposes:
@@ -230,7 +230,7 @@ \subsection{Register interface}\label{sec:application_functions_register}
230230
Data types supported by the register protocol are defined in the nested data structure
231231
\DSDLReference{uavcan.register.Value}.
232232

233-
The UAVCAN specification defines several standard naming patterns to facilitate cross-vendor compatibility
233+
The Cyphal specification defines several standard naming patterns to facilitate cross-vendor compatibility
234234
and provide a framework of common basic functionality.
235235

236236
\DSDL{uavcan.register.* --index-only}
@@ -244,18 +244,18 @@ \subsection{Diagnostics and event logging}
244244

245245
\subsection{Plug-and-play nodes}\label{sec:application_functions_pnp}
246246

247-
Every UAVCAN node shall have a node-ID that is unique within the network (excepting anonymous nodes).
247+
Every Cyphal node shall have a node-ID that is unique within the network (excepting anonymous nodes).
248248
Normally, such identifiers are assigned by the network designer, integrator, some automatic external tool,
249249
or another entity that is external to the network.
250250
However, there exist circumstances where such manual assignment is either difficult or undesirable.
251251

252-
Nodes that can join any UAVCAN network automatically without any prior manual configuration
252+
Nodes that can join any Cyphal network automatically without any prior manual configuration
253253
are called \emph{plug-and-play nodes} (or \emph{PnP nodes} for brevity).
254254

255255
Plug-and-play nodes automatically obtain a node-ID and deduce all necessary parameters of the physical layer
256256
such as the bit rate.
257257

258-
UAVCAN defines an automatic node-ID allocation protocol that is built on top of the data types defined in the
258+
Cyphal defines an automatic node-ID allocation protocol that is built on top of the data types defined in the
259259
namespace \DSDLReference{uavcan.pnp} (where \emph{pnp} stands for ``plug-and-play'')
260260
(see table~\ref{table:dsdl:uavcan.pnp}).
261261
The protocol is described in the documentation for the data type \DSDLReference{uavcan.pnp.NodeIDAllocationData}.
@@ -275,7 +275,7 @@ \subsection{Plug-and-play nodes}\label{sec:application_functions_pnp}
275275
\subsection{Internet/LAN forwarding interface}
276276

277277
Data types defined in the namespace \DSDLReference{uavcan.internet} (see table~\ref{table:dsdl:uavcan.internet})
278-
are designed for establishing robust direct connectivity between local UAVCAN nodes and hosts on the Internet
278+
are designed for establishing robust direct connectivity between local Cyphal nodes and hosts on the Internet
279279
or on a local area network (LAN) using \emph{modem nodes}\footnote{%
280280
Usually such modem nodes are implemented using on-board cellular, radio frequency,
281281
or satellite communication hardware.
@@ -292,7 +292,7 @@ \subsection{Internet/LAN forwarding interface}
292292
\begin{remark}
293293
Some of the major applications for this feature are as follows:
294294
\begin{enumerate}
295-
\item Direct telemetry transmission from UAVCAN nodes to a remote data collection server.
295+
\item Direct telemetry transmission from Cyphal nodes to a remote data collection server.
296296
\item Implementation of remote API for on-board equipment (e.g., web interface).
297297
\item Reception of real-time correction data streams (e.g., RTCM RC-104)
298298
for precise positioning applications.
@@ -307,7 +307,7 @@ \subsection{Meta-transport}
307307
Data types defined in the namespace \DSDLReference{uavcan.metatransport}
308308
(see table~\ref{table:dsdl:uavcan.metatransport})
309309
are designed for tunneling transport frames\footnote{Section~\ref{sec:transport_model}.}
310-
over UAVCAN subjects,
311-
as well as logging UAVCAN traffic in the form of serialized UAVCAN message objects.
310+
over Cyphal subjects,
311+
as well as logging Cyphal traffic in the form of serialized Cyphal message objects.
312312

313313
\DSDL{uavcan.metatransport.* --index-only}

specification/application/requirements.tex

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
\section{Application-level requirements}\label{sec:application_requirements}
22

3-
This section describes a set of high-level rules that shall be obeyed by all UAVCAN implementations.
3+
This section describes a set of high-level rules that shall be obeyed by all Cyphal implementations.
44

55
\subsection{Port identifier distribution}
66

@@ -10,26 +10,26 @@ \subsection{Port identifier distribution}
1010
\begin{itemize}
1111
\item unregulated port identifiers that can be freely chosen by users and integrators (both fixed and non-fixed);
1212
\item regulated fixed identifiers for non-standard data type definitions
13-
that are assigned by the UAVCAN maintainers for publicly released data types;
14-
\item regulated identifiers of the standard data types that are an integral part of the UAVCAN specification.
13+
that are assigned by the Cyphal maintainers for publicly released data types;
14+
\item regulated identifiers of the standard data types that are an integral part of the Cyphal specification.
1515
\end{itemize}
1616

1717
More information on the subject of data type regulation is provided in section~\ref{sec:basic_data_type_regulation}.
1818

1919
The ranges are summarized in table~\ref{table:application_requirements_port_id_distribution}.
2020
The ranges may be expanded, but not contracted, in a future version of the document.
2121

22-
\begin{UAVCANSimpleTable}{Port identifier distribution}{|l l X|}%
22+
\begin{CyphalSimpleTable}{Port identifier distribution}{|l l X|}%
2323
\label{table:application_requirements_port_id_distribution}
2424
Subject-ID & Service-ID & Purpose \\
2525
$[0, 6143]$ & $[0, 255]$ & Unregulated identifiers (both fixed and non-fixed). \\
2626
$[6144, 7167]$ & $[256, 383]$ & Non-standard fixed regulated identifiers (i.e., vendor-specific). \\
2727
$[7168, 8191]$ & $[384, 511]$ & Standard fixed regulated identifiers. \\
28-
\end{UAVCANSimpleTable}
28+
\end{CyphalSimpleTable}
2929

3030
\subsection{Port compatibility}
3131

32-
% https://github.com/UAVCAN/specification/pull/64#discussion_r357771739
32+
% https://github.com/OpenCyphal/specification/pull/64#discussion_r357771739
3333

3434
The system integrator shall ensure that nodes participating in data exchange via a given port\footnote{%
3535
I.e., subject or service.
@@ -75,7 +75,9 @@ \subsection{Standard namespace}
7575
An overview of related concepts is provided in chapter~\ref{sec:dsdl}.
7676

7777
This specification defines a set of standard regulated DSDL data types located under
78-
the root namespace named ``\verb"uavcan"'' (section~\ref{sec:sdt}).
78+
the root namespace named ``\verb"uavcan"''%
79+
\footnote{The standard root namespace is named \texttt{uavcan}, not \texttt{cyphal}, for historical reasons.}
80+
(section~\ref{sec:sdt}).
7981

8082
Vendor-specific, user-specific, or any other data types not defined by this specification
8183
shall not be defined inside the standard root namespace\footnote{Custom data type definitions shall be located

0 commit comments

Comments
 (0)