基于STM32的USB-OTG数据通信

基于STM32的USB-OTG数据通信

ID:36609935

大小:137.50 KB

页数:5页

时间:2019-05-12

基于STM32的USB-OTG数据通信_第1页
基于STM32的USB-OTG数据通信_第2页
基于STM32的USB-OTG数据通信_第3页
基于STM32的USB-OTG数据通信_第4页
基于STM32的USB-OTG数据通信_第5页
资源描述:

《基于STM32的USB-OTG数据通信》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、目前使用的USB移动设备都只能通过PC机进行相互的文件和数据交换。人们希望通过移动设备直接与USB外设通信,使得USB能应用在没有PC的领域中。  USBOTG(OnTheGo)[1]可满足这些要求,即一个拥有OTG功能的设备既可以扮演主机的角色操纵其他USB从设备,同时又可以担当从设备的角色接受主机的支配。该技术对于便携式设备、野外作业设备间的数据传输将是一个重要突破。基于Cortex-M3内核的STM32系列的ARM嵌入式处理器因其高的性价比而正被广泛应用。将USB与ARM相结合是进行数据采集、处理与传输的理想解决方案。本文重点讨论基于

2、STM32的USBOTG的数据通信。       本文的创新点就在于充分结合和利用了STM32处理器低成本、低功耗、高可靠性与USBOTG技术的优点,对于已经编程实现的主机、从机栈程序有很好的移植性,对于以后数据传输的开发具有很好的参考性。将USB与STM32相结合实现USB嵌入式设备之间的数据传输,将会在移动数据传输领域具有很好的应用前景。  1USBOTG规范  USBOTG规范是USB2.0规范的补充,它完全遵守USB2.0规范的外围设备。在USBOTG规范之下,任意两个符合规范的USB产品都可以互相连接进行通信,而不是必须通过PC机

3、才能通信,从而实现了各类USB产品完全脱离电脑进行数据传输的功能。  双重角色设备必须具备有限的主机能力,同时还需要一个OTG目标列表,即包括与之通信的设备信息、设备类型、制造商等。它支持会话请求协议SRP和主机交换协议HNP。SRP协议用于B设备向A设备请求开始USB会话,HNP协议用于USB会话过程中在A设备和B设备之间传递主机地位[2]。  2STM32的USBOTG全速控制器  ST公司在基于ARM公司的Cortex-M3架构上研发出32bitSTM32处理器后,凭借其丰富的外围模块、高速指令执行速度、低功耗、低价格而备受市场青睐。

4、2009年又推出了STM32F107互联型系列微控制器,它集成了USBOTG接口,配合了USBHOST和SPI功能,让微控制器可以读取USB大容量外存、MP3播放器、SD记忆卡等文件。STM32F107芯片内集成了USBOTG模块功能图如图1所示。     USBOTG全速控制器从复位和时钟控制模块(RCC)中获得时钟,微控制器内核(CPU)通过AHB外设总线访问OTG全速控制器的寄存器,USB事件由单独的USBOTG中断控制线通知微控制器内核[3]。  每个发送FIFO都配置了一个PUSH寄存器,微控制器以向PUSH寄存器写32bit数据

5、的方式向USB控制器传输数据,每一个OUT端点或IN通道都有一个POP寄存器,微控制器通过读POP寄存器获得来自USB总线的32bit数据,这些数据自动从共享的接收FIFO中载入,接收FIFO位于总共1.25KB的USB数据RAM区。  USB协议层由串行接口控制器(SIE)驱动,并连接到由内置物理层(PHY)支持的USB全速/低速收发模块。OTGPHY由OTG全速控制器控制,并通过UTMI+总线(UTMIFS)的全速子集来收发控制和数据信号。它包括了上拉/下拉电阻的ECN电路。内置了ID线的上拉电阻,用于区分是主机状态还是设备状态,若ID

6、线浮空,内置的上拉电阻将检测到ID线的高电平,此时控制器处于默认的设备模式下。若ID线接地。自动切换到主机模式,并需要软件初始化主机模式。  DP/DM线内置了上拉和下拉电阻[4],在设备模式下,当VBUS线上出现了有效的电平,控制器使能DP线的上拉电阻,向主机通告接入一个USB全速设备。在主机模式下,控制器同时使能DP和DM线的下拉电阻。上拉和下拉电阻可以在控制器通过主机协商协议(HNP)切换角色类型时动态地切换。STM32F107芯片集成了USBOTG功能,USBOTG固件程序的设计可以完成数据传输的所有操作及功能。其结构图如图2所示。

7、其中驱动程序栈包括主机驱动程序栈、从机驱动程序栈、USBOTG驱动程序栈。当完成固定程序设计后,系统软件会根据硬件的连接检查ID线的状态来选择工作模式是设备模式还是主机模式。程序流程图如图3所示。        如果工作于主机模式下,则进行相应初始化、检测端口,在检测到有设备接入时复位总线、枚举并配置从机设备,在完成对从机识别后,可通过查询从机的OTG性能描述符判断是否支持HNP协议(即是否为两用OTG设备)。当工作在从机状态时则等待主机对其完成枚举。本文是在STM32开发工具RealViewMDK的基于STM32固件库上进行开发,实现与U

8、盘、PC机间的通信。  3.1U盘读写的实现  U盘属于USB大容量存储设备,它具有容量大、可移动、数据交互方便等优点,因而实现与U盘的读写具有很强的应用价值和市场前景。要实现U

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。