00001
00028 #ifndef __USBP_FPGA_H__
00029 #define __USBP_FPGA_H__
00030
00031 #include "usbp_iusb_fpga.h"
00032
00036 class USB_FPGA : public iUSB_FPGA
00037 {
00038 private:
00039 int srEP, dataEP;
00040
00041 public:
00042 iUSB_Driver *UsbD;
00043
00044 USB_FPGA(){;}
00046 USB_FPGA(iUSB_Driver *ud){
00047 UsbD = ud;
00048 }
00050 virtual ~USB_FPGA(){
00051 UsbD = NULL;
00052 }
00053
00054 void setUSB(iUSB_Driver *ud){ UsbD = ud;}
00055
00058 virtual int downloadConfigFile(string file);
00059 int configStart(void);
00060 int configWrite(byte *b, int len);
00061 int configEnd(void);
00062
00064 int setupShadowReg(int ep, eXferType type = BULK, int num_reg=32);
00065 int writeShadowReg(byte *b, int start_addr, int len);
00066 int readShadowReg(byte *b, int start_addr, int len);
00067
00069 int setupDataXfer(int ep, eXferType type = BULK);
00070 int writeData(byte *b, int len);
00071 int readData(byte *b, int len);
00072
00073 };
00074
00075 #endif