基于AVR单片机的USB 0TG主从机系统设计
入可操作状态。首先检测主机控制器是否存在,此步由MCU(单片机)实现,本文通过MCL响HcScratch寄存器内写入某个值,再从该寄存器中读取,将读出值与写入数值进行比较,若相等,则可说明主机控制器存在;反之则出错,无主机控制器存在。
(2)构建PTD描述符。PTD(Phi l ips Transfer Descriptor)为ISP1362主机控制器与外围设备的通信提供了一个传输渠道,要在主机与外设之间进行通讯,首先需要构建一个PTD。PTD具有3种传输类型:控制和批量传输(非周期传输)PTD、中断传输PTD和同步传输PTD。
(3)主机分配地址给设备,获取设备描述符和设备的功能信息。主机通过不断地向外设发送设备请求来获取设备、端点的功能信息。获取USB设备描述符的过程分为三个步骤:a.主机通过设备的默认端点获取设备描述符,为设备分配一个惟一的地址;b.主机读取配置描述符信息、接口描述符信息和端点描述符信息;c.根据设备的相关信息调用相应的事务处理程序。
(4)设备枚举成功之后,主机就可以根据已编写的进程与外设进行USB通信,等待、查询数据的发送和接收。
(5)数据发送或接收完毕之后,根据QueryBus函数查询总线的活动情况,判断设备是否需要挂起。
2.3 设备驱动程序
要实现主机对从机的读写,USB主机必须具有相应的驱动,对各种读写指令进行封装、解释和执行。开发驱动有很多种方法,本文采用直接在USB主机接口驱动上层封装一个USB传输API 函数-USBXfer,应用于实现各种USB传输。
3 结束语
本文设计的USB 0TG主从机系统性能稳定,数据传输效率高。测试表明,此设计能够正确地实现USB 0TG主从机间的数据交换,性能可以满足设备间的数据传输要求,同时又能很好地控制成本,具有一定的实用价值。
AVR单片机 相关文章:
- 锁相环控制及初始化简析(08-27)
- 基于AVR单片机的串口转FSK的通信模块设计(01-23)
- 基于AVR单片机的服装压力检测系统设计(05-03)
- 基于Atmel AVR单片机的无线图像侦检系统(10-19)
- avr单片机串口多机通讯及实例(12-03)
- AVR单片机入门系列(25)AVR PWM OC0(12-03)