文章目录

  • 一、流程
  • 二、UML图


一、流程

  • 1:主机发送命令,设置音频流播放接口的选项为“1”
  • 2:请求从HAL驱动程序传输到USBD_Core
  • 3,4:USBD_Core将请求传输到音频类
  • 5:设置配置选项功能被调用
  • 6:USB_AudioPlaybackSetAudioStreamingInterfaceAlternateSetting回调被调用。它通知应用程序AS接口替代设置中的更改
  • 7:播放会话开始函数被调用
  • 8,9:USB输入节点启动被调用
  • 10,11:控制功能启动被调用
  • 12:播放会话已启动
  • 13:中间件音频类从USB输入节点请求最大数据包大小
  • 14:打开数据EP(同步)
  • 15:中间件音频类从USB输入节点请求缓冲区
  • 16:中间件音频类开始接收数据包
  • 17,18:如果激活了反馈同步,则中间件音频类打开反馈EP并开始传输数据速率
  • 19,20:准备正面握手
  • i:音频SAI DMA已编程,传输完成时会产生中断BSP_AUDIO_OUT_TransferComplete_CallBack
  • ii:当收到此中断时,将启动新的传输BSP_AUDIO_OUT_ChangeBuffer

二、UML图

X-CUBE-USB-AUDIO 资料篇⑦——USB音频播放启动Start流程详解_USB AUDIO


Host 
    
      HAL USB 
    
      Middleware USB Core 
    
      Middleware USB Class Audi10 
    
      audio_usb_playback_session.c 
    
      audio_usb_node.c 
    
      audio_speaker_node.c 
    
      BSP 
    
      audio_speaker_node 
    
    1. Set Audio Streaming Interface Alternate Setting to 1 
  
    2. USBD_LL_SetupStage 
  
    3. USBD_StdDevReq 
  
    4. USBD_Audio_Setup 
  
    5. USBD_AUDIO_SetInterfaceAlternate 
  
    6. USB_AudioPlaybackSetAudioStreamingInterfaceAlternateSetting 
  
    7. USB_AudioPlaybackSessionStart 
  
    8. USB AUDIO StreamingOutputStart 
  
    9. node.state=AUDIO_NODE_STARTED 
  
    10. PlaybackFeatureUnitNode.CFStart 
  
    11.a AUDIO_SpeakerSetVolume 
  
    11.b BSP_AUDIO_OUT_SetVolume 
  
    12. session.state = AUDIO_SESSION_STARTED 
  
    13. USB_AudioStreamingInputOutputMaxPacketLength 
  
    Max Packet Length 
  
    14. USB_LL_OpenEP(OUT EP) 
  
    i. BSP_AUDIO_OUT_TransferComplete_CallBack 
  
    ii. BSP_AUDIO_OUT_ChangeBuffer 
  
    15. USB_AudioStreamingInputGetBuffer 
  
    pbuf, length 
  
    16. USB_LL_PrepareReceive 
  
    17. USB_LL_OpenEP(FEEDBACK UP) 
  
    18. USB_LL_Transmit 
  
    19. USBD_CtlSendStatus 
  
    20. USBD_LL 
  
    19. Status ok 
  
      Host 
    
      HAL USB 
    
      Middleware USB Core 
    
      Middleware USB Class Audi10 
    
      audio_usb_playback_session.c 
    
      audio_usb_node.c 
    
      audio_speaker_node.c 
    
      BSP 
    
      audio_speaker_node