USB设备内部都有USB的芯片和MCU(Micro CPU Unit)。 USB设备上电后,首先初始化(设备自身逻辑和USB芯片的初始化) 。连接PC后即可开始USB设备与主机的交互进程。
1,Firmware程序的基本框架
设备Firmware的工作往往采用前、后台的方,前后台通过中断标志位进行通信,中断标志位可设置成全局变量以简化设计。
前台程序:死循环。不断的检测标志位,判断是否有中断,有则进入到相应的时间处理函数中。如果有操作系统则会不止这么简单 。
后台程序:中断处理程序。读取中断标记,判断并处理中断事务(如传输错误、收到Setup包、收到令牌包、传输完成等),设置相应的标志位。
下面是一个基本的USB firmware的基本交互框架。
========后台============ ============前台=================
•中断处理函数(ISR)

USB设备在上电后,初始化USB芯片和MCU,然后通过前后台程序交互进行USB与主机通信。前台程序不断检测中断标志,后台程序处理中断事件。数据接收时,USB芯片通过中断通知MCU,MCU分析处理数据;发送数据时,MCU将数据写入USB芯片缓存,等待主机请求。在处理USB请求如Get Descriptor时,设备响应主机的SETUP和IN令牌包,完成数据交换。
最低0.47元/天 解锁文章
298

被折叠的 条评论
为什么被折叠?



