单片机的usb接口帮我们做了啥

控制/MCU

1878人已加入

描述

usb协议虽然比较复杂,但是单片机的usb接口帮我们做了很多工作,大大简化了软件编程人员的工作量,比如usb数据包中的SYNC PID CRC等内容都是硬件自动添加的,硬件自动添加速度更快,通讯效率高。

1、SETUP事务

单片机的usb接口初始化之后,打开了SETUP中断,单片机处于等待SETUP中断状态,当SETUP数据被正确接收后,产生一个SETUP中断,单片机接收标准请求,然后分析标准请求并返回主机相应的信息。

主机下发请求后,单片机返回数据前,这一段时间,主机下发的IN事务单片机会自动返回NAK,直到单片机把返回的数据准备好,交给usb接口。

2、IN事务

IN端点在初始化之后,如果单片机没有数据需要上送给主机,主机下发的IN令牌硬件自动返回NAK,当单片机有数据需要上送的时候,把数据交给usb接口并启动发送,usb接口收到IN令牌的时候会自动把数据上送,主机收到校验通过后下发ACK,单片机收到ACK后会产生一个IN中断,提示单片机数据上送成功。

一次IN事务最多能传输端点大小数据,如果数据量大,需要分包发送,单片机收到IN中断后,把一下包的数据启动发送,在收到第一个IN中断后,第二包启动发送前,这一段时间内主机下发的IN令牌,usb接口自动返回NAK,如果单片机慢,处理第二包时间长,在这段时间内会有大量的NAK,这些NAK编程者可不用理会。

3、OUT事务

和SETUP事务类似,单片机的USB接口初始化之后OUT端点处于等待状态,当OUT数据下发并正确接收后,会产生一个OUT中断,单片机收到中断后把数据从USB的Buffer中取出后,重新设置OUT端点为等待接收状态,等待接收一下个数据包。

从第一个OUT中断开始到重新等待接收这段时间内,主机下发的OUT数据,单片机自动返回NAK,NAK无需理会。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分