前阵子一直忙着复习考试,都没没有时间学习USB,还好,现在考完了,终于有时间了.好好学习我USB了.预计是先把固件程序用控制传输发送数据调试成功.然后在Linux下编写相应的USB驱动,先点亮LED灯.下面说说USB的固件程序是怎样设计的.
编程环境是:Keil51.板子是用CY7C68013A做的USB最小系统.下载软件是:CYconsole.
首 先说程序框架:在主函数中定义自己的设备请求号,在请求号中有相应的设备请求处理函数,在设备请求处理函数中可以对端点,进行设置.USB端点是最基本 的,端点的集合就是接口,而接口的集合就是配置.设备请求在固件程序中是被放在一个叫做SETUPDAT的八字节数组中的第2位, 即:SETUPDAT[1]中.驱动程序通过给该结构中发送设备请求来控制响应的USB设备.在USB固件程序的框架中通常是通过switch-case 语句来处理USB设备请求的.以下是一个定义一个数据发送和接收的设备请求,通过端点0以及使用控制传输方式通信:
#define SendData 0xB1
#define ReceiveData 0xB2
switch(SETUPDAT[1])
case SendData:
DR_Send();
case ReceiveData:
&
USB固件程序设计初步
最新推荐文章于 2017-11-05 23:16:00 发布
本文介绍了USB固件程序设计的基础知识,包括使用Keil51编程环境和CY7C68013A USB最小系统。作者强调了设备请求号在固件程序中的重要性,并展示了如何通过switch-case语句处理设备请求,特别是数据发送和接收的设备请求。通过定义SendData和ReceiveData常量,实现了控制传输方式通信的数据发送和接收功能。在固件程序正确运行后,下一步计划是在Linux下编写USB驱动,以控制LED灯。

最低0.47元/天 解锁文章
1735

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



