<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: pooja1008-design</title>
    <description>The latest articles on DEV Community by pooja1008-design (@pooja1008).</description>
    <link>https://dev.to/pooja1008</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1001612%2F46e42eeb-9a93-405f-9908-b383365d07f2.png</url>
      <title>DEV Community: pooja1008-design</title>
      <link>https://dev.to/pooja1008</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pooja1008"/>
    <language>en</language>
    <item>
      <title>Part 2-Understanding and Configuring Runnable Entities in AUTOSAR Software</title>
      <dc:creator>pooja1008-design</dc:creator>
      <pubDate>Sun, 15 Oct 2023 19:01:26 +0000</pubDate>
      <link>https://dev.to/pooja1008/part-2-understanding-and-configuring-runnable-entities-in-autosar-software-1eo9</link>
      <guid>https://dev.to/pooja1008/part-2-understanding-and-configuring-runnable-entities-in-autosar-software-1eo9</guid>
      <description>&lt;p&gt;Hello everyone, I am Pooja, and I work at &lt;strong&gt;Luxoft India&lt;/strong&gt;. Here I would like to provide a brief knowledge about "Part 2-Understanding and Configuring Runnable Entities in AUTOSAR Software".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
In the realm of Automotive Open System Architecture (AUTOSAR), the concept of "Runnable" entities serves as the foundational building blocks of software components. These runnables, akin to individual functions, are meticulously defined in the software's configuration to encapsulate specific behaviors and functionalities. In this comprehensive article, we will delve deep into the world of Runnable entities, exploring their significance and the array of configurations and properties associated with them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Defining Runnable Entities&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each runnable entity corresponds to a function within the C code of a software component. To illustrate this, let's consider an example C file containing four distinct functions: "Sum," "Difference," "Multiplication," and "Division." Each of these functions is a runnable entity, and within the AUTOSAR framework, each must have a specific configuration.&lt;br&gt;
&lt;strong&gt;Example:-&lt;/strong&gt;&lt;br&gt;
Fig. Runnable Sw &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5157adiu7w5t0ygy3p6.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5157adiu7w5t0ygy3p6.PNG" alt="Runnable swe"&gt;&lt;/a&gt; #include "Rte_SWC_1.h"&lt;br&gt;
void Sum()&lt;br&gt;
{&lt;br&gt;
    int x, y;&lt;br&gt;
    Rte_Read_RP_X_X(&amp;amp;x);&lt;br&gt;
    Rte_Read_RP_Y_Y(&amp;amp;y);&lt;br&gt;
    Rte_Write_PP_Sum_Sum(x + y);&lt;br&gt;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;void Difference(int x, int y, int* diff)&lt;br&gt;
{&lt;br&gt;
    *diff = x - y;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;void Multiplication(int x, y, long* product)&lt;br&gt;
{&lt;br&gt;
    *product = x * y;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;void Division(int x, int y, float* quotient)&lt;br&gt;
{&lt;br&gt;
    *quotient = (float)x / y;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;In this example, the four functions, "Sum," "Difference," "Multiplication," and "Division," are considered as runnable entities. Each of these functions necessitates a corresponding runnable configuration within the AUTOSAR framework.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxb3mi1brvhmkxa2a3g0.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxb3mi1brvhmkxa2a3g0.PNG" alt="RTE Configuration"&gt;&lt;/a&gt; Fig. RTE Configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Runnable Configuration&lt;/strong&gt;&lt;br&gt;
A runnable configuration is defined within the "Runnable Entity" tag and encompasses vital information regarding the interfaces or ports accessed within the runnable. Let's dissect the key aspects of a runnable configuration:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Access Configuration:&lt;/strong&gt;&lt;br&gt;
AUTOSAR provides two modes of communication: Explicit and Implicit.&lt;br&gt;
Explicit communication involves the straightforward transfer of data between ports, with no concern for message consistency.&lt;br&gt;
Implicit communication ensures message consistency across receivers by establishing dedicated message buffers for each receiver.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Read-and-Write Access:&lt;/strong&gt;&lt;br&gt;
Data read-and-write access is used for implicit communication, where the RTE manages message consistency between the sender and multiple receivers.&lt;br&gt;
For explicit communication, data can be received either by argument or value.&lt;br&gt;
Data send configuration is employed for queued communication, with the RTE creating a message queue to store data from the sender and forwarding it to the receivers upon request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parameter Access:&lt;/strong&gt;&lt;br&gt;
Parameters are typically read-only and cannot be written by the software.&lt;br&gt;
The "Parameter Access" tag specifies the intent to read calibration parameters from a function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mode Switch Ports:&lt;/strong&gt;&lt;br&gt;
For mode switch ports, two options are available: "Set Mode" or "Access Mode Port."&lt;br&gt;
When accessing a mode port through a receiver port, the "Mode Access Point Configuration" is employed.&lt;br&gt;
When a provider port or function calculates the mode interface itself, it is configured using a "Mode Switch Point."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local Interface Access:&lt;/strong&gt;&lt;br&gt;
Local interface access allows the access of interfaces defined within the scope of the component.&lt;br&gt;
"Read Local Variable" and "Write Local Variable" tags are used for reading and writing local variables.&lt;br&gt;
Unlike external ports, local variables are not sent or received from external components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Client-Server Interface:&lt;/strong&gt;&lt;br&gt;
Specify if the runnable is accessing client-server interfaces.&lt;br&gt;
Depending on requirements, a client can call the server either asynchronously or synchronously.&lt;br&gt;
For synchronous server calls, use the "Synchronous Server Call Point."&lt;br&gt;
For asynchronous server calls where results are read later, use the "Asynchronous Server Call Result Point."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Triggers:&lt;/strong&gt;&lt;br&gt;
Triggers can be internal or external and are associated with trigger ports.&lt;br&gt;
Configuration options are based on trigger interfaces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;General Properties:&lt;/strong&gt;&lt;br&gt;
The "Can Be in Concurrently" option determines whether the runnable can be called recursively or in parallel on different tasks (True or False).&lt;br&gt;
The "Symbol" tag specifies the exact name of the function in the C file, enabling the operating system to call the function correctly during scheduling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
In summary, Runnable entities form the fundamental components of AUTOSAR software, representing individual functions within a software component. These runnables are meticulously configured to define their behavior and interface access. The configurations encompass communication modes, data access, parameter access, mode switch ports, local interface access, client-server interfaces, triggers, and general properties.&lt;/p&gt;

&lt;p&gt;This structured approach ensures efficient communication and coordination within complex automotive software systems, making AUTOSAR a powerful framework for automotive software development. Understanding and effectively configuring Runnable entities is crucial for building reliable and robust automotive software applications. As the automotive industry advances, these configurations become ever more critical in ensuring safe and efficient vehicle operation. I hope by now you have understood about Runnable Entity and configuration, for more clearance stay tuned for next article.&lt;/p&gt;

</description>
      <category>runnable</category>
      <category>rteport</category>
      <category>automotive</category>
      <category>autosar</category>
    </item>
    <item>
      <title>"Part 1- Unlocking the Power of AUTOSAR: Understanding Components, Ports, and Port Interfaces in Automotive Software"</title>
      <dc:creator>pooja1008-design</dc:creator>
      <pubDate>Mon, 21 Aug 2023 19:22:54 +0000</pubDate>
      <link>https://dev.to/pooja1008/unlocking-the-power-of-autosar-understanding-components-ports-and-port-interfaces-in-automotive-software-1oa8</link>
      <guid>https://dev.to/pooja1008/unlocking-the-power-of-autosar-understanding-components-ports-and-port-interfaces-in-automotive-software-1oa8</guid>
      <description>&lt;p&gt;Hello everyone, I am Pooja, and I work at Luxoft India. Here I would like to provide a brief knowledge about "Part 1-Unlocking the Power of AUTOSAR: Understanding Components, Ports, and Port Interfaces in Automotive Software".&lt;br&gt;
&lt;em&gt;&lt;strong&gt;Software Component and Compositions&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Software Components:-&lt;/strong&gt;&lt;br&gt;
In AUTOSAR, the application software is structured into self-contained units known as Atomic Software Components. These Atomic Software Components collectively create the entire operational functionality of the software. Different types of Software component.&lt;br&gt;
&lt;strong&gt;1.ApplicationSw Component: -&lt;/strong&gt; software component holds the functionality of the software. Example: Calculations, Functional/decision-making Algorithms etc.&lt;br&gt;
&lt;strong&gt;2.NV Block Sw Component: -&lt;/strong&gt; component is used when we have interfaces on the application layer to be stored on NVM memory. It interacts with the NVRAM Manager&lt;br&gt;
&lt;strong&gt;3.Complex Device Driver Sw Component:-&lt;/strong&gt; component provides easy access to hardware directly from the application layer to fulfil special timings and functional requirements&lt;br&gt;
&lt;strong&gt;4.ServiceSw Component: -&lt;/strong&gt; component is used for configuring services for a particular control unit&lt;br&gt;
&lt;strong&gt;5.ServiceProxySw Component: -&lt;/strong&gt; component is used when a particular service component is to be accessed from different control units&lt;br&gt;
&lt;strong&gt;6. Ecu Abstraction Sw Component: -&lt;/strong&gt; This component, found within the BSW, functions as an intermediary between MCAL and the Sensor Actuator component within the ASW, facilitating smooth communication.&lt;br&gt;
&lt;strong&gt;7. Sensor Actuator Sw Component: -&lt;/strong&gt; component is used on the application layer to interact with the BSW ECU Abstraction layer and acts as an interface to the other application components.&lt;br&gt;
&lt;strong&gt;8.ParameterSw Component: -&lt;/strong&gt; component is a part of software component types that provide only calibrations to the software. Example: Tuning vehicle performance using parameters during testing&lt;br&gt;
&lt;strong&gt;9.Compositions Component: -&lt;/strong&gt; Aggregates components and connections between its sub Components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Autosar Ports and Port Interfaces: -&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Ports:&lt;/strong&gt; Autosar architecture proposes Ports as the mode of communication between Autosar modules.&lt;br&gt;
• Provider Port (P-Port) &lt;br&gt;
•  Receiver Port (R-Port) &lt;br&gt;
• Provider Receiver Port (PR-Port)&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft2d6rnvfg54aq3def5xl.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft2d6rnvfg54aq3def5xl.PNG" alt="Autosar different modules"&gt;&lt;/a&gt; &lt;strong&gt;Fig. :&lt;/strong&gt; Above the fig. will indicate the communication between Autosar's different modules.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5dggowp4m9ns799mk41w.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5dggowp4m9ns799mk41w.PNG" alt="Port Interface"&gt;&lt;/a&gt; &lt;strong&gt;Fig.&lt;/strong&gt; Above fig are different types of Port Interface&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Port Interfaces:-&lt;/strong&gt;&lt;/em&gt; The kind of information that is communicated between ports is defined by port interfaces. Below are some different types of port Interfaces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sender Receiver Interface: -&lt;/strong&gt;&lt;br&gt;
Sender Receiver Interface is used to send or receive data between software components.&lt;br&gt;
It is used to communicate interfaces between components Port writing the interface is the Provider and receiving end is the Receiver. It's an asynchronous communication.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm7m3hszjlv6gx9l9v80i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm7m3hszjlv6gx9l9v80i.png" alt="Sender Receiver Interface"&gt;&lt;/a&gt; &lt;strong&gt;Fig.&lt;/strong&gt; Sender Receiver Interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Client Server Interface:-&lt;/strong&gt;&lt;br&gt;
Client Server Interface is used for function calls. The server is the provider that has the P-port and the Client is the receiver that has the R_Port. While synchronous call client will wait until the server function runs and completes. While Asynchronous call client will trigger the server function and just proceed.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fph65dpodq2x4drwf7rl2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fph65dpodq2x4drwf7rl2.png" alt="Client Server"&gt;&lt;/a&gt; &lt;strong&gt;Fig.&lt;/strong&gt; Client Server Interface&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NVData Interface: -&lt;/strong&gt; NVData Interface is to communicate with NVBlock SWC to send and receive non-volatile memory interface&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parameter Interface: -&lt;/strong&gt;The parameter interface is used for exchanging calibrations or constants across components&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ModeSwitch Interface: -&lt;/strong&gt; The mode switch interface is used for notification of a software component of different states that the system can enter&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trigger Interface: -&lt;/strong&gt; The trigger interface induces a trigger execution for other components.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Composition and Connectors:-&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Compositions:-&lt;/strong&gt; A software component type that aggregates software components or compositions. Composition is a software component type that clusters or aggregates other software components or compositions. In simple terms, a composition could be understood as a container that can hold a group of software components.&lt;br&gt;
&lt;strong&gt;Connectors:-&lt;/strong&gt; Used to complete the connections port prototypes in a live system, you might have thousands of provider ports and receiver ports and who's connected with whom is decided from the connector configuration. A delegation connector and Pass-through Connector. Connectors have 2 types. &lt;br&gt;
&lt;strong&gt;1.Assembly Connector: -&lt;/strong&gt; Connects a provider and a receiver port. Let's take two software components that have a sender-receiver and a client-server communication with the two provider and two receiver ports. And we shall place them under a composition called Composition One To connect these two ports, we can use a simple assembly connector. An assembly connector is used to connect to ports within the same composition.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdmq2megbxib2oeifjsj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdmq2megbxib2oeifjsj.png" alt="Assembly connection"&gt;&lt;/a&gt; &lt;strong&gt;Fig.&lt;/strong&gt; Assembly connector&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Delegation Connector: -&lt;/strong&gt; Connects the same port types to delegate ports to the outer composition. A delegation connector extends the inner port from the components to the outer composition. A new mirror port is also created on the outer composition and the delegation connector connects this outer port to the inner port of the component. The opposite connecting ports of software component 3 are now available within the same parent, and we can now have an assembly connector between composition 1 and software component 3. An additional difference between these two connectors is that an assembly connector connects a provider and a receive port, but a delegation connector connects the same port, either provider to provider or receiver to receiver. Every port connection should finally end with an assembly connector configuration.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3wd4ntzuy459l02vgw76.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3wd4ntzuy459l02vgw76.png" alt="Delegate Connection"&gt;&lt;/a&gt; &lt;strong&gt;Fig.&lt;/strong&gt; Delegate Connector&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Runnable: -&lt;/em&gt;&lt;/strong&gt; Enable entities are the smallest code fragments that are provided by the component.&lt;br&gt;
•Runnable entities together with Events are scheduled by the operating system.&lt;br&gt;
•Am atomic software component has to provide an entry point to code for each runnable in its internal behavior.&lt;br&gt;
•Runnable can be defined only for atomic software components. Composition software components or parameter software components cannot have runnable.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Conclusion:-&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
In a nutshell, AUTOSAR makes car software work together smoothly by using different "components" for tasks, "ports" for communication, and "interfaces" like a language. Connectors link things up, and there are also small tasks called "runnable entities." All of this teamwork creates a well-organized system for cars to run smoothly and safely. Stay tuned for Part 2, Thank you for your interest.&lt;/p&gt;

</description>
      <category>autosar</category>
      <category>portconnection</category>
      <category>autosarinterface</category>
      <category>automotive</category>
    </item>
    <item>
      <title>Roll of Network Management in AUTOSAR</title>
      <dc:creator>pooja1008-design</dc:creator>
      <pubDate>Tue, 25 Apr 2023 10:41:32 +0000</pubDate>
      <link>https://dev.to/pooja1008/roll-of-network-management-in-autosar-4jbn</link>
      <guid>https://dev.to/pooja1008/roll-of-network-management-in-autosar-4jbn</guid>
      <description>&lt;p&gt;Hello All, I'm Pooja Shiraguppe, and I work at &lt;strong&gt;Luxoft India&lt;/strong&gt;.Here I would like to provide a brief knowledge about "Roll of Network Management in AUTOSAR."&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction To AUTOSAR CAN Network Management (CanNM)
&lt;/h3&gt;

&lt;p&gt;CanNM is part of AUTOSAR, a standardized automotive software architecture. CanNM is responsible for managing CAN (Controller Area Network) communication networks. CAN is a widely used communication protocol in the automotive industry for interconnecting electronic control units (ECUs). CanNM provides services such as network initialization, state transitions, and error handling for CAN networks. CanNM can operate in master or slave mode, depending on the role of the ECU in the network. CanNM supports different communication modes, such as event-triggered, cyclic, or mixed. CanNM also supports different topologies like star, bus, or hybrid.CanNM is designed to be platform-independent &amp;amp; configurable, to adapt to different hardware and software environments. CanNM is part of the AUTOSAR Basic Software (BSW) layer, which provides a common interface for the application software to access the hardware and network services.&lt;/p&gt;

&lt;h3&gt;
  
  
  Functions Of CAN Network Management (CanNM)in AUTOSAR:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;CanNM is an essential component of the AUTOSAR software architecture that provides a standardized approach to managing the communication networks in modern vehicles. By offering a common interface for CAN network initialization, configuration, and operation, CanNM enables more efficient and reliable communication between the electronic control units (ECUs) that control various automotive systems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One of the primary functions of CanNM is to facilitate the startup and shutdown of the CAN network, ensuring that all the nodes are synchronized and operational before any data transmission occurs. CanNM also manages the transition of nodes between different network states, such as sleep mode, normal mode, and bus-off mode, in response to events or commands.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CanNM supports different network topologies, including the popular bus topology, which enables multiple ECUs to communicate over a single shared bus. CanNM manages the arbitration process for messages on the bus, ensuring that only one ECU can transmit at a time and that higher-priority messages are transmitted first.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CanNM provides various diagnostic and error-handling functions to detect and report faults in the CAN network, such as message lost, message corruption, or bus-off condition. CanNM can also trigger fault-tolerant mechanisms, such as redundant communication paths, to ensure the continued operation of critical automotive functions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CanNM supports different communication modes, such as event-triggered, cyclic, or mixed, to suit various application requirements. For example, the event-triggered communication mode sends messages only when certain events occur, while the cyclic communication mode sends messages periodically at fixed intervals. Mixed mode combines both modes to achieve a balance between responsiveness and efficiency.&lt;br&gt;
Below the figure shows the different Nodes connected to the cluster.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F27xuegewthsumqewxfau.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F27xuegewthsumqewxfau.png" alt="Different Nodes connected to Custer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  AUTOSAR CAN Network Management State Machine: -
&lt;/h3&gt;

&lt;h3&gt;
  
  
  1. Prepare Bus-Sleep Mode:
&lt;/h3&gt;

&lt;p&gt;This mode is used to transition from Normal Operation Mode to BUS Sleep Mode gradually, by allowing pending transmissions and receptions to complete before entering the sleep mode. In this mode, the node sends a message to inform other nodes that it is preparing to sleep and waits for their responses before entering sleep mode.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. BUS Sleep Mode:
&lt;/h3&gt;

&lt;p&gt;In this mode, the CAN node stops transmitting and receiving messages but remains synchronized with the network by monitoring the bus activity. The node can wake up from this mode when it receives a wake-up pattern or message from another node or a local event.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Network Mode:
&lt;/h3&gt;

&lt;p&gt;When the network Mode is entered from Bus-Sleep Mode or Prepare Bus sleep Mode, the repeat message state shall be entered by default.&lt;br&gt;
Network Mode has 3 types.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Repeat Message Mode (Go to Mode):
&lt;/h3&gt;

&lt;p&gt;This mode is used to re-transmit a previously sent message that has not been acknowledged by the recipient. In this mode, the node sends the same message with the same identifier and data payload, hoping that the recipient will receive it successfully.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Normal Operation Mode:
&lt;/h3&gt;

&lt;p&gt;This is the default mode of the CAN network, where nodes can transmit and receive messages according to the arbitration rules and protocol. The bus is not in an error state in this mode, and the nodes can operate normally.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Ready Sleep Mode:
&lt;/h3&gt;

&lt;p&gt;This mode is similar to BUS Sleep Mode but with an additional feature of a local wake-up source that can initiate a wake-up event without external stimuli. In this mode, the node consumes less power than in Normal Operation Mode but remains ready to wake up quickly.&lt;br&gt;
The below figure shows the Network Management State Machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fde1e2lsxppjzzmto15cd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fde1e2lsxppjzzmto15cd.png" alt="Network Management State Machine"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Preventing Race Conditions and State Inconsistencies in AUTOSAR CanNM:
&lt;/h3&gt;

&lt;p&gt;To prevent race conditions and state inconsistencies between Network and Mode Management in AUTOSAR CanNM, the transition from Bus-Sleep Mode to Network Mode is not automatic. Instead, CanNm will notify the upper layers of the software stack, which are responsible for making the decision to wake up. During Bus-Sleep Mode in AUTOSAR CanNM, the reception of Network Management Protocol Data Units (PDU) must be managed according to the current state of the ECU's shutdown or startup process. This approach ensures that the wake-up decision is made with the necessary context and avoids potential conflicts between different software components.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion :
&lt;/h3&gt;

&lt;p&gt;AUTOSAR CAN Network Management (CanNM) is a critical component of the AUTOSAR software architecture, responsible for managing CAN communication networks in modern vehicles. CanNM provides various functions such as network initialization, state transitions, and error handling for CAN networks, and supports different communication modes and topologies to suit various application requirements. Additionally, CanNM is designed to be platform-independent and configurable to adapt to different hardware and software environments. However, to prevent race conditions and state inconsistencies between Network and Mode Management, CanNM's transition from Bus-Sleep Mode to Network Mode is not automatic, and the upper layers of the software stack are responsible for making the wake-up decision.&lt;/p&gt;

</description>
      <category>autosarnm</category>
      <category>ecucommunication</category>
      <category>faultdetectionandhandling</category>
      <category>efficientvehicleoperation</category>
    </item>
    <item>
      <title>Understanding Mode Management in Automotive Systems: A Comprehensive Overview</title>
      <dc:creator>pooja1008-design</dc:creator>
      <pubDate>Fri, 14 Apr 2023 09:56:57 +0000</pubDate>
      <link>https://dev.to/pooja1008/understanding-mode-management-in-automotive-systems-a-comprehensive-overview-58ck</link>
      <guid>https://dev.to/pooja1008/understanding-mode-management-in-automotive-systems-a-comprehensive-overview-58ck</guid>
      <description>&lt;p&gt;Hello All, I'm Pooja Shiraguppe employee of &lt;strong&gt;LUXOFT India.&lt;/strong&gt; Here I would like to provide a brief knowledge about "Mode Management in Automotive Systems:A Comprehensive Overview".&lt;/p&gt;

&lt;p&gt;As modern vehicles become more complex, the need for efficient and effective mode management becomes increasingly important. In automotive systems, mode management refers to the process of controlling and coordinating the state of electronic control units (ECUs) to optimize performance and power usage. This article provides a comprehensive overview of mode management in automotive systems, including its importance, key components, and typical implementation.&lt;br&gt;
below fig. shows Mode Management in AUTOSAR.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B22CueQk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ungwzpbjuxo0lbx69j6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B22CueQk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ungwzpbjuxo0lbx69j6.png" alt="Mode management in AUTOSAR Architecture" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Importance of Mode Management:-
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Mode management is crucial for optimizing the performance and power usage of modern vehicles. With multiple ECUs in operation.&lt;/li&gt;
&lt;li&gt;It is essential to manage them efficiently to avoid battery drain and ensure optimal system performance.&lt;/li&gt;
&lt;li&gt;Mode management allows for the coordination of ECUs based on conditions and requirements, ensuring that each ECU is only turned on when necessary, thus reducing overall power consumption and improving vehicle efficiency.&lt;/li&gt;
&lt;li&gt;ECUs control various vehicle systems, such as the engine, transmission, brakes, and steering.&lt;/li&gt;
&lt;li&gt;Depending on the driving conditions, different ECUs are activated to perform specific tasks. For example, during normal driving, the engine control unit (ECU) manages the engine performance. Still, during braking, the brake ECU takes over to ensure that the brakes operate correctly.&lt;/li&gt;
&lt;li&gt;If not managed correctly, ECUs can consume power even when not required, leading to battery drain and reduced vehicle efficiency. For example, an ECU that remains active even when the vehicle is parked can drain the battery, resulting in starting problems or even a dead battery. Therefore, efficient mode management is essential to ensure optimal power usage and prevent battery drain.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Components of Mode Management:-
&lt;/h3&gt;

&lt;p&gt;Mode management in automotive systems is typically divided into two components: ECU state management (EcuM) and Basic Software mode manager (BswM).&lt;/p&gt;

&lt;h3&gt;
  
  
  EcuM:-
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;EcuM is responsible for managing the state of individual ECUs, including start-up and shut-down, run, and sleep state. EcuM provides a standard interface for managing the power state of an ECU, ensuring that ECUs only operate when necessary, reducing overall power consumption.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;EcuM also ensures that ECUs start up and shut down in the correct sequence. For example, during vehicle start-up, EcuM ensures that the engine ECU is started before the transmission ECU, ensuring that the engine is running correctly before engaging the transmission.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  BswM:-
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;BswM is responsible for coordinating the behavior of multiple ECUs based on specific rules and conditions. BswM consists of two operational tasks: mode arbitration and mode control.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Mode arbitration: -
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Mode arbitration initiates mode switches resulting from rule-based arbitration of mode requests and mode indications received from software components (SWCs) or other BSW modules.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mode arbitration ensures that each ECU operates in the correct mode based on the current driving conditions and requirements.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Mode control:-
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mode control, on the other hand, executes the resulting mode switches by activating or deactivating specific ECUs. Mode control ensures that the correct ECU is activated to perform the required task, reducing power consumption and optimizing vehicle performance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4q4cFDvc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vboneh08quk3byrt35ae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4q4cFDvc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vboneh08quk3byrt35ae.png" alt="Typical Implementation of BSW &amp;amp; Configuration" width="800" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Typical Implementation of BswM:-
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The implementation of BswM involves the configuration of action lists, which are executed based on trigger or condition evaluation. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A trigger-based action list is executed only when the result of the rule evaluation changes from its previous state, while a condition-based action list is executed every time the rule is evaluated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;BswM also includes mode conditions, which evaluate to true or false based on specific conditions and events. For example, if an event request port is in a set state, the mode condition evaluates to true, and if it is in a clear state, the mode condition evaluates to false.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To ensure efficient and effective mode management, BswM must be configured correctly based on the specific requirements of the vehicle.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;BswM implementation also involves mode request ports, which receive mode requests from other software components (SWCs) or BSW modules. These requests are then processed by the mode arbitration and mode control tasks to initiate mode switches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mode conditions can also be combined using AND, OR, and NOT logical operators to create complex mode conditions that consider multiple events and conditions. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For example, a mode condition can be defined as a combination of two events: engine speed exceeding a certain value AND transmission gear in a specific position.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, BswM provides a flexible and customizable solution for mode management in automotive systems. The ability to define specific rules and conditions for mode switching allows for efficient and effective coordination of multiple ECUs, leading to improved vehicle efficiency and performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion:-
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Mode management is a critical aspect of automotive systems, especially as vehicles become more complex and feature-rich. Effective mode management requires a comprehensive understanding of the key components and their typical implementation. In this article, we have discussed the importance of mode management in optimizing vehicle performance and power usage, as well as the key components of mode management: EcuM and BswM.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;EcuM is responsible for managing the state of individual ECUs, while BswM coordinates the behavior of multiple ECUs based on specific rules and conditions. The implementation of BswM involves the configuration of action lists and mode conditions, which evaluate to true or false based on specific events and conditions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;By implementing effective mode management, automotive manufacturers can improve vehicle efficiency, reduce power consumption, and enhance overall performance. As automotive systems continue to evolve, mode management will remain a crucial aspect of ensuring optimal vehicle performance and reliability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>modemangement</category>
      <category>ecum</category>
      <category>bswm</category>
      <category>automotiv</category>
    </item>
    <item>
      <title>How USB Protocol Revolutionized the Way We Connect and Interact with Devices</title>
      <dc:creator>pooja1008-design</dc:creator>
      <pubDate>Fri, 07 Apr 2023 09:22:48 +0000</pubDate>
      <link>https://dev.to/pooja1008/how-usb-protocol-revolutionized-the-way-we-connect-and-interact-with-devices-3eb3</link>
      <guid>https://dev.to/pooja1008/how-usb-protocol-revolutionized-the-way-we-connect-and-interact-with-devices-3eb3</guid>
      <description>&lt;p&gt;Hello all, I am Pooja Shiraguppe employee of LUXOFT India. Here I would like to provide a brief knowledge about How USB protocol Revolutionized the way we connect and interact with device. &lt;/p&gt;

&lt;p&gt;The Universal Serial Bus (USB) protocol has revolutionized the way we connect and interact with devices in our daily lives. The development of the USB protocol has brought a new level of convenience and efficiency to the world of computer peripherals, mobile devices, and other electronic gadgets. In this article, we will discuss how USB protocol has changed the way we connect and interact with devices, exploring its history, capabilities, and impact on modern technology.&lt;/p&gt;

&lt;h3&gt;
  
  
  History of USB Protocol
&lt;/h3&gt;

&lt;p&gt;The USB protocol was first introduced in 1995 by a group of seven companies, including Compaq, Intel, and Microsoft, in response to the proliferation of different types of connectors and protocols used to connect devices to computers. The goal was to develop a single, standardized interface that could replace the various serial and parallel ports, SCSI, and other proprietary connectors that were in use at the time.&lt;/p&gt;

&lt;p&gt;The first version of the USB protocol, USB 1.0, was released in 1996 and provided a maximum data transfer rate of 12 Mbps. Over the years, the protocol has evolved, with subsequent versions offering faster data transfer rates, improved power management, and other features.&lt;/p&gt;

&lt;p&gt;Today, the most common USB versions are USB 2.0, which offers a maximum transfer rate of 480 Mbps, and USB 3.0 and USB 3.1, which offer transfer rates of up to 5 Gbps and 10 Gbps, respectively. USB 4.0, which is expected to be released soon, promises to deliver even faster data transfer speeds and enhanced functionality.&lt;/p&gt;

&lt;h3&gt;
  
  
  Capabilities of USB Protocol
&lt;/h3&gt;

&lt;p&gt;One of the most significant advantages of USB protocol is its versatility. It can be used to connect a wide range of devices, including printers, scanners, cameras, external hard drives, smartphones, tablets, and gaming consoles. The protocol supports both data transfer and power delivery, which means that many devices can be charged through a USB connection.&lt;/p&gt;

&lt;p&gt;USB protocol also allows for hot swapping, which means that devices can be plugged and unplugged without the need to reboot the computer or disconnect other devices. This feature has made it much easier to use and manage multiple devices, particularly in settings where a large number of peripherals are used, such as in office or industrial environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Impact of USB Protocol on Modern Technology
&lt;/h3&gt;

&lt;p&gt;The impact of USB protocol on modern technology cannot be overstated. The protocol has made it possible to connect and interact with devices in ways that were previously impossible or impractical. Here are some of how USB protocol has changed the way we interact with technology:&lt;/p&gt;

&lt;h3&gt;
  
  
  Easy and Efficient Data Transfer
&lt;/h3&gt;

&lt;p&gt;Before the advent of the USB protocol, transferring data between devices often required a complex and time-consuming process. With the use of USB protocol, transferring data between devices is as simple as plugging in a cable. The high-speed data transfer rates of USB protocol have made it possible to transfer large files quickly and efficiently, enabling faster and more productive work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Improved Charging Capabilities
&lt;/h3&gt;

&lt;p&gt;USB protocol has also improved the charging capabilities of electronic devices. With the introduction of USB charging ports, devices can be charged quickly and conveniently, eliminating the need for multiple chargers and cables. USB charging has become the standard for many electronic devices, including smartphones, tablets, and laptops.&lt;/p&gt;

&lt;h3&gt;
  
  
  Simplified Device Management
&lt;/h3&gt;

&lt;p&gt;With USB protocol, managing multiple devices has become much simpler. The hot-swapping feature of USB protocol allows devices to be added and removed without disrupting the functioning of other devices, making it easy to manage a large number of peripherals.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enhanced User Experience
&lt;/h3&gt;

&lt;p&gt;USB protocol has also enhanced the user experience of many devices. For example, the use of USB protocol has made it possible to connect a wide range of peripherals to gaming consoles, such as joysticks, steering wheels, and gamepads. This has greatly enhanced the gaming experience and made gaming more immersive and enjoyable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Increased Compatibility
&lt;/h3&gt;

&lt;p&gt;USB protocol has also increased compatibility between devices. With a single USB cable, users can connect devices from different manufacturers and with different operating systems. This has made it easier to share data between devices and has reduced the need for specialized cables and connectors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Streamlined Workflows
&lt;/h3&gt;

&lt;p&gt;The efficiency of the USB protocol has streamlined workflows in many industries. In healthcare, for example, USB protocol has made it possible for medical devices to connect to computers, allowing healthcare professionals to access and manage patient data more easily. In industrial settings, USB protocol has made it possible to connect and control machinery and equipment, improving productivity and efficiency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Future Developments
&lt;/h3&gt;

&lt;p&gt;As technology continues to advance, the demand for faster and more efficient data transfer will only increase. USB protocol is expected to play a crucial role in meeting this demand. The upcoming USB 4.0 is expected to deliver even faster data transfer speeds, improved power management, and enhanced functionality.&lt;/p&gt;

&lt;p&gt;USB 4.0 will use the Thunderbolt 3 protocol, providing even faster data transfer speeds of up to 40 Gbps. It will also support backward compatibility with USB 3.2 and USB 2.0 devices, providing users with a seamless transition to the new standard.&lt;/p&gt;

&lt;p&gt;USB 4.0 is also expected to introduce new features such as dual-lane operation, which will enable the use of multiple display monitors, and increased power delivery, which will make it possible to charge even more power-hungry devices.&lt;/p&gt;

&lt;p&gt;In addition to USB 4.0, the development of USB Type-C has also been a significant advancement. The USB Type-C connector is reversible, making it easier to plug in devices, and it also supports higher power delivery and data transfer rates. USB Type-C has become the standard connector for many devices, including smartphones, laptops, and tablets.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;In conclusion, the USB protocol has revolutionized the way we connect and interact with devices, providing a standardized interface that has simplified device management, improved charging capabilities, and increased compatibility between devices. Its versatility and efficiency have enhanced user experiences, streamlined workflows, and impacted various industries positively. As technology continues to evolve, we can expect USB protocol to play an even more significant role in shaping the future of device connectivity and interaction. The upcoming USB 4.0 and USB Type-C developments are promising advancements that will provide even faster data transfer speeds and improved functionality, making it even easier for us to connect and interact with our devices.&lt;/p&gt;

</description>
      <category>usbprotocol</category>
      <category>iot</category>
      <category>usb</category>
      <category>devices</category>
    </item>
  </channel>
</rss>
