<?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: sreharika</title>
    <description>The latest articles on DEV Community by sreharika (@sreharika).</description>
    <link>https://dev.to/sreharika</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%2F1062238%2Fa182c6e1-ae52-4c43-b995-d96235bedda0.png</url>
      <title>DEV Community: sreharika</title>
      <link>https://dev.to/sreharika</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sreharika"/>
    <language>en</language>
    <item>
      <title>UDP (USER DATAGRAM PROTOCOL) IN AUTOSAR</title>
      <dc:creator>sreharika</dc:creator>
      <pubDate>Thu, 27 Apr 2023 09:51:10 +0000</pubDate>
      <link>https://dev.to/sreharika/udp-user-datagram-protocol-in-autosar-e2g</link>
      <guid>https://dev.to/sreharika/udp-user-datagram-protocol-in-autosar-e2g</guid>
      <description>&lt;p&gt;Hello All, I'm Sree Harika, and I work at &lt;strong&gt;Luxoft India&lt;/strong&gt;.Here I would like to provide a brief knowledge about "&lt;strong&gt;USER DATAGRAM PROTOCOL IN AUTOSAR."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Embedded systems are becoming an integral part of modern communication networks, and UDP (User Datagram Protocol) is a critical protocol for fast communication over IP networks. Embedded UDP is an implementation of this protocol specifically designed for use in embedded systems and Autosar.&lt;/p&gt;

&lt;p&gt;In this article, we will discuss the basic features of UDP. We will also look at the advantages and limitations of using UDP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is UDP?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;UDP is a protocol used for sending datagrams (packets) over an IP network. Unlike TCP, which provides reliable communication by retransmitting lost packets and ensuring that data is received in order, UDP does not provide any guarantees regarding the delivery or order of packets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZpN7hHDW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oijx5n8tljqy43effcb8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZpN7hHDW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oijx5n8tljqy43effcb8.png" alt="Image description" width="386" height="131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;UDP is well-suited for applications that require speed and low latency, such as real-time communication and multimedia streaming. However, it is not suitable for applications that require reliable communication, such as file transfers or email.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Basic Features of UDP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;UDP is designed to be a lightweight implementation of the UDP protocol specifically tailored for use in embedded systems. It is highly optimized for efficiency and can be run on systems with limited resources, such as microcontrollers and embedded sensors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Some of the basic features of UDP include:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Small footprint:&lt;/strong&gt; UDP implementations are designed to have a small memory and processing footprint, making them ideal for use in embedded systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Low overhead:&lt;/strong&gt; UDP has low overhead because it does not provide reliable data transmission and connection management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Fast:&lt;/strong&gt; UDP is fast because it does not have the overhead associated with TCP, making it suitable for applications that require high-speed, low-latency communication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.Source port:&lt;/strong&gt; a 16-bit field that identifies the port number of the sender.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Destination port:&lt;/strong&gt; a 16-bit field that identifies the port number of the recipient.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Length:&lt;/strong&gt; a 16-bit field that specifies the length of the UDP datagram in bytes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Checksum:&lt;/strong&gt; a 16-bit field that is used for error detection. The checksum is computed on the entire UDP datagram, including the UDP header and payload.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Data:&lt;/strong&gt; the payload of the UDP datagram, which can be up to 64 kilobytes in length.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The UDP datagram has several components, including:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Source Port and Destination Port&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The source port and destination port are 16-bit fields that identify the port numbers of the sending and receiving applications. The source port is randomly selected by the sending application, while the destination port is specified by the receiving application. The combination of the source port and destination port is used to identify a unique communication session.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Length&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The length field is a 16-bit field that specifies the length of the UDP datagram in bytes. The length field includes the UDP header and payload. The maximum length of a UDP datagram is  65,535 bytes .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Checksum&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The checksum field is a 16-bit field that is used for error detection. The checksum is computed over the entire UDP datagram, including the UDP header and payload. If the computed checksum does not match the checksum value sent by the sender, the datagram is discarded.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Data&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The data field is the payload of the UDP datagram. It is the actual data that is being transmitted from the sender to the receiver. The size of the data field can vary, depending on the length specified in the length field.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of Using UDP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Speed and low latency:&lt;/strong&gt;UDP is ideal for applications that require speed and low latency, such as real-time communication and multimedia streaming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Low overhead:&lt;/strong&gt;UDP has lower overhead than TCP, making it suitable for communication in systems with limited resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Lightweight&lt;/strong&gt;:UDP implementations are designed to be lightweight, making them suitable for use in embedded systems with limited resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Configurable:&lt;/strong&gt;UDP can be configured to meet specific requirements, such as packet size, transmission rate, and security.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations of Using UDP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. No reliability guarantee:&lt;/strong&gt; Like all UDP implementations, Embedded UDP does not provide a reliability guarantee. This means that packets may be lost or received out of order.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. No congestion control:&lt;/strong&gt; UDP does not include a congestion control mechanism, which means that it may not be suitable for applications that require reliable communication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Unsuitable for large data transfers:&lt;/strong&gt; UDP is not suitable for large data transfers because it does not provide a reliability guarantee, and packets may be lost or received out of order.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;UDP is a lightweight implementation of the UDP protocol designed specifically for use in embedded systems and Autosar. It provides a fast and efficient way to communicate over IP networks, making it ideal for applications that require speed and low latency such as real-time communication and multimedia streaming. It has a basic structure that includes a source port, destination port, length, checksum, and data. The source and destination ports identify the sending and receiving applications, the length field specifies the length of the datagram, the checksum is used for error detection, and the data field is the actual data being transmitted. UDP datagrams are used in real-time communication, multimedia streaming, and DNS queries. However, it is not suitable for applications that require reliable data transmission or large data transfers. It is important to carefully consider the specific requirements of an application before deciding whether to use UDP or TCP in an embedded system. UDP is a transport layer protocol used for transmitting data over IP networks. It provides fast, efficient communication and is ideal for applications that require speed and low latency, such as real-time communication and multimedia streaming. However, it is not suitable for applications that require reliable data transmission, large data transfers, or congestion control. It is important to carefully consider the specific requirements of an application before deciding whether to use UDP or TCP in transmitting data over IP networks.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Automotive Bootlader Overview</title>
      <dc:creator>sreharika</dc:creator>
      <pubDate>Wed, 12 Apr 2023 04:56:06 +0000</pubDate>
      <link>https://dev.to/sreharika/automotive-bootlader-overview-2i1p</link>
      <guid>https://dev.to/sreharika/automotive-bootlader-overview-2i1p</guid>
      <description>&lt;p&gt;Hi folks, I'm Sree Harika employee of &lt;strong&gt;LUXOFT India&lt;/strong&gt;. Here I would like to share brief knowledge about  &lt;strong&gt;Autosar Bootloader&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Autosar Bootloader:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OBg_KDmc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sj41g7cxhuzorzhy5o50.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OBg_KDmc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sj41g7cxhuzorzhy5o50.PNG" alt="Image description" width="362" height="369"&gt;&lt;/a&gt;&lt;br&gt;
Autosar is a standardized, open software architecture for automotive electronics. One of the protocols used in the Autosar architecture is the bootloader. This article provides an overview of the Autosar bootloader and its role in a vehicle system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is an Autosar Bootloader?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A bootloader is a software program that loads a new application program in non-volatile memory, called a flash memory, of a microcontroller. The AUTOSAR bootloader is a standardized, secure, and interoperable specification for vehicle electronics. It is designed to enable the update or reprogramming of the software in the Electronic Control Units (ECUs) of a vehicle during runtime. &lt;/p&gt;

&lt;p&gt;The main function of the bootloader is to initialize, verify, and transfer the software to the target. The Autosar bootloader is mainly used in the automotive industry to ensure that the electronic systems are updated with the latest software. The bootloader is responsible for establishing communication between the ECU and the external device, loading the new software image, and ensuring that the new software is compatible with the existing system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of Autosar Bootloader:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A bootloader is a software program used to install a new operating system, firmware or application on a device, and is designed to provide a secure and reliable way of updating software. Bootloaders are widely used in embedded systems like computers, smartphones, and other electronic devices. There are several advantages that bootloaders offer, including:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Increased Security: Bootloaders are designed to provide a secure way of updating software. They provide a mechanism for verifying the authenticity and integrity of the software before installing it. By verifying the software before installation, bootloaders prevent malicious software from being installed on the device.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reduced Downtime: With bootloaders, software updates can be installed seamlessly and without disruption. By eliminating the need to turn off the device, software updates can be performed in real-time, without any interruption to the operation of the device.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improved Reliability: Bootloaders enhance software reliability by ensuring that the system remains stable and does not break down unexpectedly during the updating process. The integrity of the software is verified before installation, thereby reducing the risk of corruption or system crashes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Increased Compatibility: By verifying the software before installation, bootloaders help ensure that the software is compatible with the device's hardware and existing software. This is particularly important when updating firmware, which is directly tied to the device's hardware.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enhanced Flexibility: Bootloaders provide greater flexibility in terms of software updates, allowing for the installation of software from different sources. This flexibility can be useful in situations where a device needs to be updated with software from another manufacturer or platform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simplified Maintenance: Installing software updates using a bootloader can simplify maintenance by reducing the complexity of the update process. With the ability to install updates directly on the device, there is no need to connect external components, such as a computer, to perform the update process.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Use cases of Bootloader:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the most important applications of the Vector Bootloader is to provide a mechanism for securely and reliably updating the firmware in Electronic Control Units (ECUs) of automotive systems. ECUs control a wide range of functions in a vehicle, including the engine, transmission, brakes, and safety systems. The Vector Bootloader makes it easy to update the firmware in these ECUs, ensuring that they remain up-to-date with the latest software or firmware versions. This can help improve the performance, safety, and overall functionality of the vehicle.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ECU Configuration&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Vector Bootloader can also be used for ECU configuration. Depending on the specific use case, vehicle configurations may require a combination of hardware and software changes. The bootloader makes it easy to install configuration changes by providing a reliable and secure way of updating the software that controls various vehicle functions. This is particularly important when adding new features or capabilities to a vehicle or creating custom configurations for specific markets or users.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fault Correction&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Vector Bootloader can help diagnose faults in the ECU and install patches or software updates that correct the problem. This use case is particularly important when a vehicle recall is not necessary. Streamlining the process of correcting faults can reduce the risk of faulty software causing accidents and potentially save vehicle manufacturers significant costs.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enhanced Vehicle Security&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Automotive cybersecurity is becoming increasingly important as vehicles become more complex, connected, and digitalized. The Vector Bootloader provides protection against cyber attacks by incorporating features such as software authentication, encryption algorithms, and secure key storage. Providing secure and reliable software updates, coupled with advanced cybersecurity measures, enhances the security of vehicles and helps to safeguard against cyber threats.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Faster Time-to-Market&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With its robust and proven bootloader software, Vector can help speed up the development process for new automotive systems. Complex ECUs require high reliability, low-level software development, and testing, which can take a significant amount of time. Vector's Bootloader simplifies this process by reducing the risks of downtime or corrupted software during development and testing, resulting in faster time-to-market and reduced development costs.&lt;/p&gt;

&lt;p&gt;In conclusion, bootloaders are critical components in electronic devices, providing a secure and reliable way of updating software. The advantages of bootloader programming include enhanced security, reduced downtime, improved reliability, increased compatibility, enhanced flexibility, and simplified maintenance. These advantages make bootloaders an essential component in the development of electronic systems.&lt;/p&gt;

</description>
      <category>bootloader</category>
      <category>vector</category>
      <category>autosar</category>
      <category>automotive</category>
    </item>
    <item>
      <title>AUTOMOTIVE UDS SERVICES</title>
      <dc:creator>sreharika</dc:creator>
      <pubDate>Mon, 10 Apr 2023 09:29:02 +0000</pubDate>
      <link>https://dev.to/sreharika/automotive-uds-services-o77</link>
      <guid>https://dev.to/sreharika/automotive-uds-services-o77</guid>
      <description>&lt;p&gt;Hi folks, I'm Sree Harika employee of &lt;strong&gt;LUXOFT India&lt;/strong&gt;. Here I would like to provide a brief knowledge about  UDS Services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why UDS in automotive?&lt;/strong&gt;&lt;br&gt;
If car is not working fine and facing some issue. For finding the issue UDS will helps us where exactly problem was present, and he will try to fix the issue. Within short period of time.&lt;br&gt;
If UDS protocol is not available, then it is very difficult to find the issue where exactly issue was present, and it is time taking process to fix the issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is UDS?&lt;/strong&gt;&lt;br&gt;
UDS: Unified Diagnostic Services.&lt;br&gt;
&lt;strong&gt;UDS Protocol Request Frame Format:&lt;/strong&gt;&lt;br&gt;
• Whenever the client wants to request anything from the data then the tester will send this request the frame to get the response from the server on the CAN data field. This frame had consisted of 3 fields:&lt;br&gt;
• Service ID.&lt;br&gt;
• Sub-Function ID (optional: not exist for some diag. services).&lt;br&gt;
• Data bytes.&lt;br&gt;
In the message format &lt;br&gt;
• 0th byte indicates the message length. &lt;br&gt;
• 1st byte indicates SID information.&lt;br&gt;
• 2nd byte indicates the Sub Function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Diagnostics?&lt;/strong&gt;&lt;br&gt;
In a complex machine and if vehicle contains more ECU and it is very difficult to find the defect from which source we are facing failure, for this type of problems diagnostics helps the tester to detect the failure from which source exact defect is available and root cause as well. Diagnostics will monitor several sensors, located throughout the engine, fuel etc.,&lt;br&gt;
With the help of Diagnostics in two ways to outside world can understand whether really issue was present or not.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; With help of warning lamp and this warning lamp will alert the driver there will be a problem in our car.&lt;/li&gt;
&lt;li&gt; Second one with the help of DTC code service person can understand what exactly issue was present and from which source. For each DTC there will be a pre-defined definition based on that service person, developer and tester can understand the problem. The DTC will be stored in EEPROM.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What is Diagnostic?&lt;/strong&gt;&lt;br&gt;
Based on the word we can understand it will help us to identify the cause of a problem or a situation. Whenever the ECU finds a problem, it stores that problem as a Diagnostic Trouble Code (DTC) it the EEPROM.&lt;br&gt;
With the help of Diagnostic tool, we can read the DTC’s from EEPROM to find the root cause of a failure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is DTC?&lt;/strong&gt;&lt;br&gt;
DTC is Diagnostic Trouble code: with the help of DTC’s, we can understand what exactly failure happen in our system and this DTC code will store in EEPROM. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is DID?&lt;/strong&gt;&lt;br&gt;
DID: Data identifier is mainly useful to read and write the data in between client and server.&lt;br&gt;
Client means Tester/End user.&lt;br&gt;
Server means ECU.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is unit Services?&lt;/strong&gt;&lt;br&gt;
Normally the functional unit or services will help us to control the diagnostic functionalities in the ECU.&lt;br&gt;
The communication will happen in between client and server.&lt;br&gt;
The services are divided in to 6 different types based on the functionalities. &lt;br&gt;
For each services their will, be a Service ID, Sub Function.&lt;br&gt;
The services will work based on the request and response method will follow.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Diagnostic and communication management.&lt;/li&gt;
&lt;li&gt; Data Transmission.&lt;/li&gt;
&lt;li&gt; Stored Data Transmission.&lt;/li&gt;
&lt;li&gt; Input and Output Control.&lt;/li&gt;
&lt;li&gt; Remote Activation of unit.
Upload Diagnostic and communication management.
Under this section 10 more service are available.&lt;/li&gt;
&lt;li&gt; Diagnostic Session Control.&lt;/li&gt;
&lt;li&gt; ECU Reset.&lt;/li&gt;
&lt;li&gt; Communication Control.&lt;/li&gt;
&lt;li&gt; Accessing timing parameter&lt;/li&gt;
&lt;li&gt; Secured Data Transmission.&lt;/li&gt;
&lt;li&gt; Control DTC Setting.&lt;/li&gt;
&lt;li&gt; Response on Event.&lt;/li&gt;
&lt;li&gt; Link Control.&lt;/li&gt;
&lt;li&gt; Security Access.&lt;/li&gt;
&lt;li&gt;Tester Present.
For example, I will explain the request and frame format of Request and response:
&lt;strong&gt;UDS Protocol Response Frame Format:&lt;/strong&gt;
• Whenever a diagnostic engineer or tester will request any service to a vehicle, there is a possibility of two types of response from the vehicle or a particular ECU as per physical or functional request type.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Positive Response Frame Format:&lt;/strong&gt;&lt;br&gt;
• Whenever the tester will request to the server if it is correct and the server has been executed the request successfully, then it will send the response message concerning this request by adding 0x40 to the respective service ID for reference. Positive response 1st byte should be Request Service ID + 0x40.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Negative Response Frame Format:&lt;/strong&gt;&lt;br&gt;
• If the client did not request in a proper frame format or the server is not able to execute the request due to the internal problem, then it will send a negative response to the client.&lt;br&gt;
• Negative response 1st byte should be 0x7F.&lt;br&gt;
• Negative response 2nd byte should be Service ID.&lt;br&gt;
• Negative response 3rd byte should be Response Code.&lt;br&gt;
&lt;strong&gt;Diagnostic Session Control (0x10 02) service:&lt;/strong&gt;&lt;br&gt;
• This diagnostic Session enables all diagnostic services required to support the&lt;br&gt;
     memory programming of a ECU.&lt;br&gt;
• Programming Session used to upload software.&lt;br&gt;
• Extended Diagnostic Session used to unlock additional diagnostic functions, such as the adjustment of sensors.&lt;br&gt;
•  Safety system diagnostic session used to test all safety-critical diagnostic functions, such as airbag tests.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---OWk3TyR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/itrsmlafyve52rqukzk3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---OWk3TyR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/itrsmlafyve52rqukzk3.png" alt="Image description" width="400" height="111"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• Request Download (0x34) service:&lt;br&gt;
• The request Download service is used by the client (Tester ECU) to initiate a data transfer from the client(Tester ECU) to the server.&lt;br&gt;
     (download).&lt;br&gt;
• After The Server (Server ECU) has received the request Download request message the server shall take all necessary actions to receive data before it Sends a positive Response Message. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ufdZJQm4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/12s0dtq5olk5jq8nsjz2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ufdZJQm4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/12s0dtq5olk5jq8nsjz2.png" alt="Image description" width="440" height="89"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Transfer Data (0x36) service:&lt;/strong&gt;&lt;br&gt;
• The Transfer Data service is used by the client (Tester ECU) to transfer data either from the client (Tester ECU) to the server (Server ECU) or from the server to the client (Tester ECU).&lt;br&gt;
• The data transfer direction is defined after Request Download or Request Upload service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xhQKUOXQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sqr7cff67hcfp2h9kf4m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xhQKUOXQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sqr7cff67hcfp2h9kf4m.png" alt="Image description" width="434" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Request Transfer Exit (0x37) service:&lt;br&gt;
• The request File Transfer service is used by the client to initiate a file data transfer from either the client to the&lt;br&gt;
     server (server ECU) or from the server to the client (Tester Ecu). &lt;br&gt;
• Additionally, this service has capabilities to retrieve information about the file system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JflY5Lbm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z6dh0cl2ahtqvgnx2i72.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JflY5Lbm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z6dh0cl2ahtqvgnx2i72.png" alt="Image description" width="434" height="95"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Routine Control (31 Hex) Service:&lt;/strong&gt;&lt;br&gt;
If client requested a routine with a routine identifier, then server will stop the normal operation mode and routine will enable with the normal operation mode with the specified routine identifier.&lt;br&gt;
The main use of Routine control service to test the critical functionality like air bag system whether it is working or not for that routine identifier will be configured, client can test the functionality of air bag with the routine control service mentioned with the identifier.&lt;br&gt;
Sub functions&lt;br&gt;
1 - Start a routine.&lt;br&gt;
2 – Stop a Routine.&lt;br&gt;
3 – Request the Routine result.&lt;br&gt;
Steps to follow to test the routine.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Start a routine&lt;/li&gt;
&lt;li&gt; Stop a routine&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Request result for the routine identifier.&lt;br&gt;
The above steps should follow in sequence&lt;br&gt;
For the above service negative response will update with NRC 12, 13, 22, 24, 31 33 and 72&lt;br&gt;
12 – Sub function not supported.&lt;br&gt;
13 – Invalid message length.&lt;br&gt;
22 – Condition does not correct.&lt;br&gt;
24 – Request sequence error.&lt;br&gt;
31- Request out of Range.&lt;br&gt;
33 – Security Access Denied.&lt;br&gt;
72 – General Programming Failure&lt;br&gt;
service ID 31 in negative response case 03 7F 31 12 00 00 00 00 Indicates Sub function not supported.&lt;br&gt;
   service ID 31 in negative response case 03 7F 31 13 00 00 00 00 Invalid message length.&lt;/p&gt;

&lt;p&gt;service ID 31 in negative response case 03 7F 31 22 00 00 00 00 Indicates Condition does not correct.&lt;/p&gt;

&lt;p&gt;service ID 31 in negative response case 03 7F 31 24 00 00 00 00 Indicates Request sequence error.&lt;/p&gt;

&lt;p&gt;service ID 31 in negative response case 03 7F 31 31 00 00 00 00 Indicates Request out of Range.&lt;/p&gt;

&lt;p&gt;service ID 31 in negative response case 03 7F 31 33 00 00 00 00 Indicates Security Access Denied.&lt;/p&gt;

&lt;p&gt;service ID 31 in negative response case 03 7F 31 72 00 00 00 00 Indicates General Programming Failure.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>autosar</category>
      <category>vectorbootlader</category>
      <category>uds</category>
      <category>daignostics</category>
    </item>
  </channel>
</rss>
