新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 采用PDIUSBD12的USB系统固件程序设计

采用PDIUSBD12的USB系统固件程序设计

作者:时间:2012-06-06来源:网络收藏

USB设备在正常使用以前,必须由主机配置设备。主机一般会从USB设备获取配置信息后再确定此设备有哪些功能。

作为配置操作的一部分,主机会设备设备的配置值,如果必要的话会选择合适的接口备选设备。其初始化函数为:

void D12_int()

{ XmtBuff.pNum=16;

D12_COMMAND=0xf4;//读中断寄存器

ist=D12_DATA;

ist=D12_DATA;

if(ist 0x01) //ENDP0_OUT

{XmtBuff.out=0;

XmtBuff.in=1;

D12_COMMAND=0x40; //读OUT最后状态

ist=D12_DATA;

if(ist 0x20)//收到SETUP包

{ Setup_read();

Setup_control();

}

else

{ Setup_read();

}

}

else if(ist 0x02)//ENDP0_IN

{ XmtBuff.in=1;

D12_COMMAND=0x41;//读in最后状态

ist=D12_DATA;

USB_submit();

}

else if(ist 0x04)//ENDP1_OUT

{ XmtBuff.out=2;

XmtBuff.in=3;

D12_COMMAND=0x42;//读out最后状态

ist=D12_DATA;

read_out();

}

else if(ist 0x08)//ENDP1_IN

{ XmtBuff.in=3;

D12_COMMAND=0x43;//读in最后状态

ist=D12_DATA;

XmtBuff.b[0]=5;

XmtBuff.wrLength=1;

XmtBuff.p=XmtBuff.b;

USB_submit();

}

……

在发出连接USB命令后,主机先读取设备描述符,然后发出设置USB地址SETUP包,设置USB地址后,进行主机客户驱动与设备初始化。其余端点(ENDPOINT)依此类推。

在其头文件里需定义USB规范中的各种描述符格式,包括设备描述表、配置描述表、接口描述表、端点描述表、字符串描述表以及描述表类型。这样,在发送配置[,接口(1),端点(1),接口(2),端点(2),…,类,厂商等]联合描述表时,主机USBD可以根据描述类型标识区分各种分描述表。



评论


相关推荐

技术专区

关闭