AT91SAM9G45 USB 2.0 核心错误处理与干扰管理

需积分: 32 44 下载量 57 浏览量 更新于2024-08-10 收藏 29.52MB PDF 举报
"AT91SAM9G45是一款基于Thumb指令集的400MHz ARM926EJ-STM处理器,具有32KB的数据高速缓存和32KB的指令高速缓存,以及内存管理单元(MMU)。该芯片提供双外部总线接口,支持多种内存类型如DDR2/LPDDR、SDRAM/LPSDR等,并带有ECC纠错功能。此外,它还内置64KB单周期访问SRAM和64KB的内部ROM。外设方面,AT91SAM9G45包含LCD控制器、图像传感器接口、USB高速Device及Host接口、以太网MAC控制器、SD/MMC/SDIO控制器、AC'97控制器、多个串行外设接口、定时器/计数器、I2S模式的串行控制器、PWM控制器、2-线接口、多通道USART和ADC,以及支持多种模式的UART。其系统架构包括133MHz的12组32位AHB总线矩阵和37个DMA通道。" 在USB 2.0通信中,核心处理微帧的错误管理是关键。如果在微帧期间发生子序列丢失或输入令牌错误,USB 2.0核心会在微帧结束时清除已正确发送的数据组,并设置UDPHS_EPTSTAx寄存器的ERR_FLUSH位来指示错误状况。如果没有有效数据组,系统会响应DATA0零长度包(ZLP)并标记下溢(UDPHS_EPTSTAx的ERR_FL_ISO被设置),而不清除数据组。在处理第二个NB_TRANS=3的事务微帧时,若无有效数据组,系统将响应DATA1 ZLP,同样设置ERR_FL_ISO位。如果在微帧最后仍有未发送的有效数据组,这些组会被清除,同时再次设置ERR_FLUSH位,表示出现错误。 这个描述涉及的是AT91SAM9G45中的USB接口在处理传输错误时的机制,特别是如何管理和报告USB 2.0微帧中的错误状态。微帧是USB通信中的基本时间单位,错误处理机制确保了数据传输的可靠性和系统的稳定性。这种详细的信息对于理解如何在基于AT91SAM9G45的系统中设计和调试USB接口至关重要。