usb固件开发流程60145

usb固件开发流程60145

ID:17381880

大小:34.00 KB

页数:6页

时间:2018-08-30

usb固件开发流程60145_第1页
usb固件开发流程60145_第2页
usb固件开发流程60145_第3页
usb固件开发流程60145_第4页
usb固件开发流程60145_第5页
资源描述:

《usb固件开发流程60145》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、USB固件开发流程.txt标题:USB固件开发流程2008-10-2017:11:35由于固件架构和固件的函数库的开发环境是KeilC51,所以针对本系统的开发也是基于这个开发环境。下图的项目窗口反映了对于本设计所需要的文件:文件描叙如下:(1)FW.C-固件框架,处理USB的请求和调用工作分配器中的函数。(2)gpif.c-包含波形描述符表的文件,实现GPIF传输的波形。(3)gpif_fifo_rw.c-用户应用程序代码,修改TD-Poll()和TD-Init()以满足用户的要求。(4)DSCR.A51-设备描述符表。报告在FX2设备中使用哪些端点,如何配置等信息。本设计中设置EP0作

2、为控制传输端点,EP2作为USBOUT传输端点,EP6作为USBIN传输端点。(5)USBjmpTb.OBJ-中断向量跳转表:USB中断源INT2和GPIF/SLAVEFIFO中断源INT4。(6)Ezusb.lib-处理设备挂起(suspend),重新开始操作(resume),I2C串口操作的函数集。初始化:首先在对设备读写之前,对CY7C68013的寄存器进行初始设置,这部分工作在TD_Init()函数中实现。位于gpif_fifo_rw.c文件中。实现其设置的代码如下:voidTD_Init(void){CPUCS=((CPUCS&~bmCLKSPD)

3、bmCLKSPD1);//配置

4、芯片时钟方式GpifInit();//初始GPIF波形EP2CFG=0xA0;//配置端点2outBULK传输模式512字节EP6CFG=0xE0;//配置端点6inBULK传输模式512字节4倍缓存区EP4CFG=0x00;//无效端点4EP8CFG=0x00;//无效端点8……EP2FIFOCFG=0x11;//设置端点2的USB传输方式AUTOOUT=1EP6FIFOCFG=0x09;//设置端点6的USB传输方式AUTOIN=1……EP2GPIFFLGSEL=0x01;//设置端点2输出的GPIF标识OUT传输FS1=0,FS0=1空标志有效EP6GPIFFLGSEL=0x02;/

5、/设置端点6的输入GPIF标识IN传输FS1=1,FS0=0满标志有效……//配置GPIF以数据流状态传输FLOWLOGIC=FlowStates[19];FLOWSTB=FlowStates[23];GPIFHOLDAMOUNT=FlowStates[26];FLOWSTBEDGE=FlowStates[24];FLOWSTBHPERIOD=FlowStates[25];……}利用GPIF实现对控制器数据流的控制:(1)单字的读写为了区分所操作的数据来自哪个寄存器,在设备请求剖析器中的DR_VendorCmnd(void)函数编写不同的用户请求命令程序,如发送设备请求命令OxB3,表示读

6、通道寄存器,然后在DR_VendorCmnd(void)中写相应的处理代码。以下是DR_VendorCmnd(void)中读通道寄存器的部分代码:单字的读:DR_VendorCmnd(void){switch(SETUPDAT[1]){……caseVX_B3://单字读取{Peripheral_SetAddress(0x0002);//设置读取寄存器的地址Peripheral_SingleWordRead(&gdata2);//调用单字节波形读取通道寄存器EP0BUF[0]=VX_B3;//标准请求EP0BUF[1]=gdata2>>8;//高8位EP0BUF[2]=gdata2;//低8

7、位EP0BCH=0;//发送到上位机EP0BCL=3;EP0CS

8、=bmHSNAK;break;}……}}单字的写:单字写代码如下:DR_VendorCmnd(void){switch(SETUPDAT[1]){……caseVX_B4://单字读取{Peripheral_SetAddress(0x0002);//设置读取寄存器的地址Peripheral_SingleWordWrite(&gdata2);//调用单字节波形写取通道寄存器EP0BUF[0]=VX_B4;//标准请求EP0BUF[1]=gdata2>>8;//高8位EP0BUF[2]=gdata2;//低8位EP0BCH=0;/

9、/发送到上位机EP0BCL=3;EP0CS

10、=bmHSNAK;break;}……}}(2)FIFO读写FX2与FPGA的接口采用GPIF主模式,对于大批量的测试响应采用FIFO读的传输方式,将这些数据传送到大端点EP6的缓冲区。这是主机读FIFO操作的第一个阶段。第二过程就是数据从端点EP6缓冲区读回到主机,即USB的IN传输,在USB的IN传输中,设计不要求8051对数据进行处理,将要传输的数据自动打包(置AUTOIN

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。