SlideShare a Scribd company logo
1 of 21
MULTIFUNCTIONAL USB
FIRMWARE
PRESENTED BY:
SACHIN GROVER
DISHANT AKSHAY
SHUBHAM KUMAR
MANOHAR JAGANI
VERSHA CHAUDHARY
OVERVIEW OF THE PROJECT
• IMPLEMENTING BULK, CDC AND A COMBINATION OF BULK AND CDC DEVICE
CLASSES ON A DEVICE.
• THE DEVICE SENDS SOME DATA TO THE HOST BY USING USB PROTOCOLS.
• CORTEX-M4 PROCESSOR BASED TI-TM4C123G BOARD ACTING AS A DEVICE.
• LINUX MACHINE ACTING AS A HOST.
• THE DATA COMING FROM THE DEVICE IS READ BY A USER-SPACE APPLICATION
RUNNING ON THE HOST SIDE.
• THE SPECIFIC-CLASS DRIVERS ARE MANAGING THE DATA COMING TO AND
FROM THE HOST.
DEVICE CLASSES AND ITS DRIVERS
• BULK DEVICES ARE BEING MANAGED BY A DYNAMIC MODULE USB_SKELETON.C
,SINCE BULK IS NOT A STANDARD DEVICE CLASS.
• CDC DEVICES ARE MANAGED BY THE STATIC MODULE CDC-ACM.C ,SINCE IT IS A
STANDARD DEVICE CLASS.
• BOTH THESE CLASS DRIVERS ARE MANAGED BY USBCORE.C ,WHICH IS A GENERIC
USB DRIVER.
A LINUX USB HOST STACK
LAYERS IN THE USB HOST STACK
• USB HOST DRIVER ->THE USB HOST DRIVER FRAMEWORK IMPLEMENTS USB
TRANSFERS AND OTHER USB HOST REQUIREMENTS. THE HOST DRIVER ALSO
MANAGES USB REQUEST BLOCK (URB) TRANSFER FROM THE CLASS DRIVERS TO
THE HCDS.
• HCD INTERFACES->THE HCD INTERFACES FRAMEWORK IMPLEMENTS ROUTINES
BETWEEN THE USBCORE AND THE USB HCD, WHICH FACILITATES URB TRANSFER
TO THE HCD.
USB DEVICE
• TI-TM4C123G IS ACTING AS A USB DEVICE.
• THIS BOARD CAN ACT AS A USB DEVICE OF A PARTICULAR CLASS ON LOADING
ITS FLASH MEMORY WITH THE SPECIFIC FIRMWARE.
• WE HAVE CUSTOMIZED THESE FIRMWARES AS PER OUR REQUIREMENTS.
DEVICE AS A BULK CLASS TYPE
• THIS DEVICE IS ENUMERATED WITH A PAIR OF BULK ENDPOINTS-BULK IN AND BULK
OUT.
• A BULK TRANSFER IS USED BY APPLICATIONS THAT TRANSFER LARGE AMOUNTS OF
DATA TO AND FROM THE USB HOST TO THE DEVICE WITH NO STRICT TIME
REQUIREMENTS.
• A USB BULK TRANSFER HAS A MAXIMUM TRANSFER SIZE OF 512 BYTES, IS NON-
PERIODIC , AND USES ANY AVAILABLE BUS BANDWIDTH. BECAUSE BULK TRANSFERS
OCCUR ONLY ON THE BASIS OF THE BANDWIDTH AVAILABLE, THE TRANSFERS ARE
FASTER WHEN THERE ARE LARGE AMOUNTS OF FREE BANDWIDTH.
USB GENERIC BULK DEVICE MODEL
BULK DEVICE CLASS EVENTS
THE BULK DEVICE CLASS DRIVER SENDS THE FOLLOWING EVENTS TO THE APPLICATION
CALLBACK FUNCTIONS:
RECEIVE CHANNEL EVENTS
USB_EVENT_RX_AVAILABLE
USB_EVENT_ERROR
USB_EVENT_CONNECTED
USB_EVENT_DISCONNECTED
USB_EVENT_SUSPEND
USB_EVENT_RESUME
TRANSMIT CHANNEL EVENTS
USB_EVENT_TX_COMPLETE
WHAT WE ARE DOING IN BULK
• WE ARE READING THE DATA FROM THE ON-CHIP TEMPERATURE SENSOR BY ADC
CONVERSION AND SENDING IT TO THE HOST AT A PERIOD OF 1 SECOND USING
TIMER INTERRUPT.
• SO, THE NEW TEMPERATURE IS GETTING UPDATED EVERY 1 SECOND ON THE
HOST SIDE, WHERE WE ARE READING THE TEMPERATURE BY ACCESSING THE
DEVICE FILE /DEV/SKEL0 CREATED BY THE USB_SKELETON.C DRIVER.
FIRMWARE CODE SNIPPET
DEVICE AS A CDC CLASS TYPE
• THE USB COMMUNICATION DEVICE CLASS (CDC) CLASS DRIVER SUPPORTS THE CDC ABSTRACT
CONTROL MODEL VARIANT AND ALLOWS A CLIENT APPLICATION TO BE SEEN AS A VIRTUAL SERIAL
PORT TO THE USB HOST SYSTEM.
• THE DRIVER PROVIDES TWO CHANNELS, ONE TRANSMIT AND ONE RECEIVE. THE CHANNELS MAY BE
USED IN CONJUNCTION WITH USB BUFFERS TO PROVIDE A SIMPLE READ/WRITE INTERFACE FOR DATA
TRANSFER TO AND FROM THE HOST.
• THIS DEVICE CLASS USES 3 ENDPOINTS IN ADDITION TO ENDPOINT ZERO. 2 BULK ENDPOINTS CARRY
DATA
TO AND FROM THE HOST AND 1 INTERRUPT IN ENDPOINT IS USED TO SIGNAL ANY SERIAL ERRORS
SUCH AS BREAK,
FRAMING ERROR OR PARITY ERROR DETECTED BY THE DEVICE.
• ENDPOINT ZERO CARRIES STANDARD USB REQUESTS AND ALSO CDC-SPECIFIC REQUESTS WHICH
TRANSLATE TO EVENTS PASSED TO THE APPLICATION VIA THE CONTROL CHANNEL CALLBACK.
USB CDC DEVICE MODEL
CDC DEVICE CLASS EVENTS
• THE CDC DEVICE CLASS DRIVER SENDS THE FOLLOWING EVENTS TO THE APPLICATION CALLBACK FUNCTIONS:
RECEIVE CHANNEL EVENTS
USB_EVENT_RX_AVAILABLE
USB_EVENT_DATA_REMAINING
USB_EVENT_ERROR
TRANSMIT CHANNEL EVENTS
USB_EVENT_TX_COMPLETE
CONTROL CHANNEL EVENTS
USB_EVENT_CONNECTED
USB_EVENT_DISCONNECTED
USB_EVENT_SUSPEND
USB_EVENT_RESUME
USBD_CDC_EVENT_SEND_BREAK
USBD_CDC_EVENT_CLEAR_BREAK
USBD_CDC_EVENT_SET_LINE_CODING
USBD_CDC_EVENT_GET_LINE_CODING
USBD_CDC_EVENT_SET_CONTROL_LINE_STATE
WHAT WE ARE DOING IN CDC
• WE ARE READING THE DATA FROM THE ON-CHIP TEMPERATURE SENSOR BY ADC
CONVERSION AND SENDING IT TO THE HOST ONLY WHEN THERE IS A CHANGE
IN THE TEMPERATURE.
• SO, THE NEW TEMPERATURE IS GETTING UPDATED ONLY WHEN IT CHANGES
FROM ITS PREVIOUS VALUE. WE ARE READING THE TEMPERATURE BY ACCESSING
THE DEVICE FILE /DEV/TTYACM0 CREATED BY THE CDC-ACM.C DRIVER.
FIRMWARE CODE SNIPPET
FIRMWARE CODE SNIPPET
COMPOSITE DEVICE
• OUR CUSTOMIZED COMPOSITE DEVICE CONSISTS OF 2 BULK INTERFACES(2 PAIRS
OF BULK ENDPOINTS) AND 2 CDC INTERFACES(CONTAINING 1 PAIR OF BULK
ENDPOINTS AND 1 INTERRUPT-IN ENDPOINT).
• SO, OUR DEVICE IS GETTING ENUMERATED WITH 2 MINOR NUMBERS-192 AND
193 FOR 2 BULK INTERFACES BY USB_SKELETON.C
• SO, 2 DEVICE FILES /DEV/SKEL0 AND /DEV/SKEL1 ARE BEING CREATED FOR 2
BULK LOGICAL DEVICES AND /DEV/TTYACM0 IS BEING CREATED FOR 1 CDC
ACM DEVICE.
COMPOSITE DEVICE
• IN ORDER FOR OUR DEVICE TO GET ENUMERATED AS A COMPOSITE BULK & CDC
DEVICE,WE HAD TO REGISTER WITH THE ADDITIONAL DEVICE INSTANCES ON
THE FIRMWARE SIDE.
• API’S USED FOR COMPOSITE:
•
WHAT WE ARE DOING IN COMPOSITE
• WE IMPLEMENTED THE SAME CDC FUNCTIONALITY , THE SAME BULK
FUNCTIONALITY AND AN ADDITIONAL GPIO CONTROL FUNCTIONALITY, WHERE
THE LEDS ON THE BOARD ARE GETTING CONTROLLED AS PER THE COMMAND
GIVEN FROM THE HOST SIDE.
• THE FIRMWARE IS SENDING A MESSAGE AS A PART OF ACKNOWLEDGEMENT.
SO, 2-WAY COMMUNICATION HAS BEEN IMPLEMENTED.
FIRMWARE CODE SNIPPET

More Related Content

Similar to Multifunctional usb firmware

Wireless charging technology ppt
Wireless charging technology pptWireless charging technology ppt
Wireless charging technology pptAnkit Gupta
 
USB Universal Serial Bus
USB Universal Serial BusUSB Universal Serial Bus
USB Universal Serial BusVarun Kambrath
 
USB presentation by Mishuk
USB presentation by MishukUSB presentation by Mishuk
USB presentation by Mishukmks mk
 
United parcel service inc presentation
United parcel service inc presentationUnited parcel service inc presentation
United parcel service inc presentationKumar Parteek Thakur
 
Remote Desktop Application--by Shivam Tripathi and Hemant Kumar of JIIT , NOIDA
Remote Desktop Application--by Shivam Tripathi and Hemant Kumar of JIIT , NOIDARemote Desktop Application--by Shivam Tripathi and Hemant Kumar of JIIT , NOIDA
Remote Desktop Application--by Shivam Tripathi and Hemant Kumar of JIIT , NOIDAShivam Tripathi
 
wireless-usb-207-ipx1bSv.pptx
wireless-usb-207-ipx1bSv.pptxwireless-usb-207-ipx1bSv.pptx
wireless-usb-207-ipx1bSv.pptxTanmayaKar4
 
3 phase energy meter on Zigbee1
3 phase energy meter on Zigbee13 phase energy meter on Zigbee1
3 phase energy meter on Zigbee1Sumit Vyas
 
Eekol 2012 jan04_int_ems_an_01
Eekol 2012 jan04_int_ems_an_01Eekol 2012 jan04_int_ems_an_01
Eekol 2012 jan04_int_ems_an_01KaoMao
 
NXP_SDV_RealTime software development organisation
NXP_SDV_RealTime software development organisationNXP_SDV_RealTime software development organisation
NXP_SDV_RealTime software development organisationssuser57b3e5
 
Solution de charge au dépôt pour les bus électriques par ABB
Solution de charge au dépôt pour les bus électriques par ABBSolution de charge au dépôt pour les bus électriques par ABB
Solution de charge au dépôt pour les bus électriques par ABBNicolas Chauveau
 
Track 2 session 5 - st dev con 2016-usb type c with pd
Track 2   session 5 - st dev con 2016-usb type c with pdTrack 2   session 5 - st dev con 2016-usb type c with pd
Track 2 session 5 - st dev con 2016-usb type c with pdST_World
 
BRAIN COMPUTER INTERFACE.pptx
BRAIN COMPUTER INTERFACE.pptxBRAIN COMPUTER INTERFACE.pptx
BRAIN COMPUTER INTERFACE.pptxMukilKrishna4
 

Similar to Multifunctional usb firmware (20)

Wireless charging technology ppt
Wireless charging technology pptWireless charging technology ppt
Wireless charging technology ppt
 
USB Universal Serial Bus
USB Universal Serial BusUSB Universal Serial Bus
USB Universal Serial Bus
 
ICIECA 2014 Paper 18
ICIECA 2014 Paper 18ICIECA 2014 Paper 18
ICIECA 2014 Paper 18
 
USB presentation by Mishuk
USB presentation by MishukUSB presentation by Mishuk
USB presentation by Mishuk
 
Universal serial bus
Universal serial busUniversal serial bus
Universal serial bus
 
United parcel service inc presentation
United parcel service inc presentationUnited parcel service inc presentation
United parcel service inc presentation
 
Csss
CsssCsss
Csss
 
Remote Desktop Application--by Shivam Tripathi and Hemant Kumar of JIIT , NOIDA
Remote Desktop Application--by Shivam Tripathi and Hemant Kumar of JIIT , NOIDARemote Desktop Application--by Shivam Tripathi and Hemant Kumar of JIIT , NOIDA
Remote Desktop Application--by Shivam Tripathi and Hemant Kumar of JIIT , NOIDA
 
wireless-usb-207-ipx1bSv.pptx
wireless-usb-207-ipx1bSv.pptxwireless-usb-207-ipx1bSv.pptx
wireless-usb-207-ipx1bSv.pptx
 
3 phase energy meter on Zigbee1
3 phase energy meter on Zigbee13 phase energy meter on Zigbee1
3 phase energy meter on Zigbee1
 
Eekol 2012 jan04_int_ems_an_01
Eekol 2012 jan04_int_ems_an_01Eekol 2012 jan04_int_ems_an_01
Eekol 2012 jan04_int_ems_an_01
 
Am044253258
Am044253258Am044253258
Am044253258
 
NXP_SDV_RealTime software development organisation
NXP_SDV_RealTime software development organisationNXP_SDV_RealTime software development organisation
NXP_SDV_RealTime software development organisation
 
Solution de charge au dépôt pour les bus électriques par ABB
Solution de charge au dépôt pour les bus électriques par ABBSolution de charge au dépôt pour les bus électriques par ABB
Solution de charge au dépôt pour les bus électriques par ABB
 
Track 2 session 5 - st dev con 2016-usb type c with pd
Track 2   session 5 - st dev con 2016-usb type c with pdTrack 2   session 5 - st dev con 2016-usb type c with pd
Track 2 session 5 - st dev con 2016-usb type c with pd
 
Bb push sapra
Bb push sapraBb push sapra
Bb push sapra
 
BRAIN COMPUTER INTERFACE.pptx
BRAIN COMPUTER INTERFACE.pptxBRAIN COMPUTER INTERFACE.pptx
BRAIN COMPUTER INTERFACE.pptx
 
Automatic meter reading
Automatic meter readingAutomatic meter reading
Automatic meter reading
 
Universal Serial Bus (USB)
Universal Serial Bus (USB)Universal Serial Bus (USB)
Universal Serial Bus (USB)
 
BHAVESH AGRAWAL.pptx
BHAVESH AGRAWAL.pptxBHAVESH AGRAWAL.pptx
BHAVESH AGRAWAL.pptx
 

More from Shubham Kumar

Direct Memory Access (DMA)-Working and Implementation
Direct Memory Access (DMA)-Working and ImplementationDirect Memory Access (DMA)-Working and Implementation
Direct Memory Access (DMA)-Working and ImplementationShubham Kumar
 
ARM BASED 4-BIT CODED LOCKER
ARM BASED 4-BIT CODED LOCKERARM BASED 4-BIT CODED LOCKER
ARM BASED 4-BIT CODED LOCKERShubham Kumar
 
ARM BASED 4bit coded locker
ARM BASED 4bit coded lockerARM BASED 4bit coded locker
ARM BASED 4bit coded lockerShubham Kumar
 

More from Shubham Kumar (8)

Smart Refrigerator
Smart RefrigeratorSmart Refrigerator
Smart Refrigerator
 
Intel Quark HSUART
Intel Quark HSUARTIntel Quark HSUART
Intel Quark HSUART
 
Take_On_IOT
Take_On_IOTTake_On_IOT
Take_On_IOT
 
Direct Memory Access (DMA)-Working and Implementation
Direct Memory Access (DMA)-Working and ImplementationDirect Memory Access (DMA)-Working and Implementation
Direct Memory Access (DMA)-Working and Implementation
 
ARM BASED 4-BIT CODED LOCKER
ARM BASED 4-BIT CODED LOCKERARM BASED 4-BIT CODED LOCKER
ARM BASED 4-BIT CODED LOCKER
 
ARM BASED 4bit coded locker
ARM BASED 4bit coded lockerARM BASED 4bit coded locker
ARM BASED 4bit coded locker
 
LUMOS
LUMOSLUMOS
LUMOS
 
Lumos
LumosLumos
Lumos
 

Recently uploaded

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 

Recently uploaded (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 

Multifunctional usb firmware

  • 1. MULTIFUNCTIONAL USB FIRMWARE PRESENTED BY: SACHIN GROVER DISHANT AKSHAY SHUBHAM KUMAR MANOHAR JAGANI VERSHA CHAUDHARY
  • 2. OVERVIEW OF THE PROJECT • IMPLEMENTING BULK, CDC AND A COMBINATION OF BULK AND CDC DEVICE CLASSES ON A DEVICE. • THE DEVICE SENDS SOME DATA TO THE HOST BY USING USB PROTOCOLS. • CORTEX-M4 PROCESSOR BASED TI-TM4C123G BOARD ACTING AS A DEVICE. • LINUX MACHINE ACTING AS A HOST. • THE DATA COMING FROM THE DEVICE IS READ BY A USER-SPACE APPLICATION RUNNING ON THE HOST SIDE. • THE SPECIFIC-CLASS DRIVERS ARE MANAGING THE DATA COMING TO AND FROM THE HOST.
  • 3. DEVICE CLASSES AND ITS DRIVERS • BULK DEVICES ARE BEING MANAGED BY A DYNAMIC MODULE USB_SKELETON.C ,SINCE BULK IS NOT A STANDARD DEVICE CLASS. • CDC DEVICES ARE MANAGED BY THE STATIC MODULE CDC-ACM.C ,SINCE IT IS A STANDARD DEVICE CLASS. • BOTH THESE CLASS DRIVERS ARE MANAGED BY USBCORE.C ,WHICH IS A GENERIC USB DRIVER.
  • 4. A LINUX USB HOST STACK
  • 5. LAYERS IN THE USB HOST STACK • USB HOST DRIVER ->THE USB HOST DRIVER FRAMEWORK IMPLEMENTS USB TRANSFERS AND OTHER USB HOST REQUIREMENTS. THE HOST DRIVER ALSO MANAGES USB REQUEST BLOCK (URB) TRANSFER FROM THE CLASS DRIVERS TO THE HCDS. • HCD INTERFACES->THE HCD INTERFACES FRAMEWORK IMPLEMENTS ROUTINES BETWEEN THE USBCORE AND THE USB HCD, WHICH FACILITATES URB TRANSFER TO THE HCD.
  • 6. USB DEVICE • TI-TM4C123G IS ACTING AS A USB DEVICE. • THIS BOARD CAN ACT AS A USB DEVICE OF A PARTICULAR CLASS ON LOADING ITS FLASH MEMORY WITH THE SPECIFIC FIRMWARE. • WE HAVE CUSTOMIZED THESE FIRMWARES AS PER OUR REQUIREMENTS.
  • 7. DEVICE AS A BULK CLASS TYPE • THIS DEVICE IS ENUMERATED WITH A PAIR OF BULK ENDPOINTS-BULK IN AND BULK OUT. • A BULK TRANSFER IS USED BY APPLICATIONS THAT TRANSFER LARGE AMOUNTS OF DATA TO AND FROM THE USB HOST TO THE DEVICE WITH NO STRICT TIME REQUIREMENTS. • A USB BULK TRANSFER HAS A MAXIMUM TRANSFER SIZE OF 512 BYTES, IS NON- PERIODIC , AND USES ANY AVAILABLE BUS BANDWIDTH. BECAUSE BULK TRANSFERS OCCUR ONLY ON THE BASIS OF THE BANDWIDTH AVAILABLE, THE TRANSFERS ARE FASTER WHEN THERE ARE LARGE AMOUNTS OF FREE BANDWIDTH.
  • 8. USB GENERIC BULK DEVICE MODEL
  • 9. BULK DEVICE CLASS EVENTS THE BULK DEVICE CLASS DRIVER SENDS THE FOLLOWING EVENTS TO THE APPLICATION CALLBACK FUNCTIONS: RECEIVE CHANNEL EVENTS USB_EVENT_RX_AVAILABLE USB_EVENT_ERROR USB_EVENT_CONNECTED USB_EVENT_DISCONNECTED USB_EVENT_SUSPEND USB_EVENT_RESUME TRANSMIT CHANNEL EVENTS USB_EVENT_TX_COMPLETE
  • 10. WHAT WE ARE DOING IN BULK • WE ARE READING THE DATA FROM THE ON-CHIP TEMPERATURE SENSOR BY ADC CONVERSION AND SENDING IT TO THE HOST AT A PERIOD OF 1 SECOND USING TIMER INTERRUPT. • SO, THE NEW TEMPERATURE IS GETTING UPDATED EVERY 1 SECOND ON THE HOST SIDE, WHERE WE ARE READING THE TEMPERATURE BY ACCESSING THE DEVICE FILE /DEV/SKEL0 CREATED BY THE USB_SKELETON.C DRIVER.
  • 12. DEVICE AS A CDC CLASS TYPE • THE USB COMMUNICATION DEVICE CLASS (CDC) CLASS DRIVER SUPPORTS THE CDC ABSTRACT CONTROL MODEL VARIANT AND ALLOWS A CLIENT APPLICATION TO BE SEEN AS A VIRTUAL SERIAL PORT TO THE USB HOST SYSTEM. • THE DRIVER PROVIDES TWO CHANNELS, ONE TRANSMIT AND ONE RECEIVE. THE CHANNELS MAY BE USED IN CONJUNCTION WITH USB BUFFERS TO PROVIDE A SIMPLE READ/WRITE INTERFACE FOR DATA TRANSFER TO AND FROM THE HOST. • THIS DEVICE CLASS USES 3 ENDPOINTS IN ADDITION TO ENDPOINT ZERO. 2 BULK ENDPOINTS CARRY DATA TO AND FROM THE HOST AND 1 INTERRUPT IN ENDPOINT IS USED TO SIGNAL ANY SERIAL ERRORS SUCH AS BREAK, FRAMING ERROR OR PARITY ERROR DETECTED BY THE DEVICE. • ENDPOINT ZERO CARRIES STANDARD USB REQUESTS AND ALSO CDC-SPECIFIC REQUESTS WHICH TRANSLATE TO EVENTS PASSED TO THE APPLICATION VIA THE CONTROL CHANNEL CALLBACK.
  • 13. USB CDC DEVICE MODEL
  • 14. CDC DEVICE CLASS EVENTS • THE CDC DEVICE CLASS DRIVER SENDS THE FOLLOWING EVENTS TO THE APPLICATION CALLBACK FUNCTIONS: RECEIVE CHANNEL EVENTS USB_EVENT_RX_AVAILABLE USB_EVENT_DATA_REMAINING USB_EVENT_ERROR TRANSMIT CHANNEL EVENTS USB_EVENT_TX_COMPLETE CONTROL CHANNEL EVENTS USB_EVENT_CONNECTED USB_EVENT_DISCONNECTED USB_EVENT_SUSPEND USB_EVENT_RESUME USBD_CDC_EVENT_SEND_BREAK USBD_CDC_EVENT_CLEAR_BREAK USBD_CDC_EVENT_SET_LINE_CODING USBD_CDC_EVENT_GET_LINE_CODING USBD_CDC_EVENT_SET_CONTROL_LINE_STATE
  • 15. WHAT WE ARE DOING IN CDC • WE ARE READING THE DATA FROM THE ON-CHIP TEMPERATURE SENSOR BY ADC CONVERSION AND SENDING IT TO THE HOST ONLY WHEN THERE IS A CHANGE IN THE TEMPERATURE. • SO, THE NEW TEMPERATURE IS GETTING UPDATED ONLY WHEN IT CHANGES FROM ITS PREVIOUS VALUE. WE ARE READING THE TEMPERATURE BY ACCESSING THE DEVICE FILE /DEV/TTYACM0 CREATED BY THE CDC-ACM.C DRIVER.
  • 18. COMPOSITE DEVICE • OUR CUSTOMIZED COMPOSITE DEVICE CONSISTS OF 2 BULK INTERFACES(2 PAIRS OF BULK ENDPOINTS) AND 2 CDC INTERFACES(CONTAINING 1 PAIR OF BULK ENDPOINTS AND 1 INTERRUPT-IN ENDPOINT). • SO, OUR DEVICE IS GETTING ENUMERATED WITH 2 MINOR NUMBERS-192 AND 193 FOR 2 BULK INTERFACES BY USB_SKELETON.C • SO, 2 DEVICE FILES /DEV/SKEL0 AND /DEV/SKEL1 ARE BEING CREATED FOR 2 BULK LOGICAL DEVICES AND /DEV/TTYACM0 IS BEING CREATED FOR 1 CDC ACM DEVICE.
  • 19. COMPOSITE DEVICE • IN ORDER FOR OUR DEVICE TO GET ENUMERATED AS A COMPOSITE BULK & CDC DEVICE,WE HAD TO REGISTER WITH THE ADDITIONAL DEVICE INSTANCES ON THE FIRMWARE SIDE. • API’S USED FOR COMPOSITE: •
  • 20. WHAT WE ARE DOING IN COMPOSITE • WE IMPLEMENTED THE SAME CDC FUNCTIONALITY , THE SAME BULK FUNCTIONALITY AND AN ADDITIONAL GPIO CONTROL FUNCTIONALITY, WHERE THE LEDS ON THE BOARD ARE GETTING CONTROLLED AS PER THE COMMAND GIVEN FROM THE HOST SIDE. • THE FIRMWARE IS SENDING A MESSAGE AS A PART OF ACKNOWLEDGEMENT. SO, 2-WAY COMMUNICATION HAS BEEN IMPLEMENTED.