N
Nephazz
Guest
안녕하세요,
나의 현재 프로젝트는 FPGA를하고 WinXP PC를 사이에 확립 USB 연결합니다.그래도 난 FPGA를 안에 손을 얻을 나의 더러운, 나의 상사가 물건을 의미.그는 datarate의 요구를 제공하기 위해 내가 적어도 15 MB / s의난 탑재된 칩의 645490 "적이있어 04 기판을 갖고있다"사이 프러스 반도체 CY3684 / 3674 용 EZ - B 호의 USB 고급 개발 보드 "를 인쇄하고는"CY7C68013A - 128AXC 0731.내가 AVnet에서 보드를 FPGA를 사용하여 이것을 개발할 나의 WinXP 소프트웨어 (석사는 Visual C ) 사용을 최종 버전 것입니다하지만.컨트롤러는 USB - CY7 현재의 펌웨어에 대한 bulkloop.hex이다에 deliverd에 c : / 사이 프러스 /는 USB / 예.
지금 내가 어떤 정보를 같이 "에서 대량 전송"및 종점 번호 및 설정할 수에 I'am과 CyAPI을 사용하여 연결을 할 수있는 보드.사용 내가 tranferspeed을 meassure.(원본 파일이 첨부되어 있습니다) 안타깝게도 난 오직 얻을 약 1 MB / s의(필자가 사용 해봤 http://www.cypress.com/?docID=4383를 속도를 meassure 수 있지만 나는 그것을 실행 할 수 없습니다.의 USB 컨트롤 패널 - 그건이지의의 "아마 때문에 대신에"내가 사용 "의 USB 콘솔을" 그래서 .. 나는 아무데도 찾을 수 없습니다.)
그래서 ...어디 병목 제?높은 대역폭을 얻기가없는 일반적인 CyAPI를?잘못은 내가 사용하거나입니까 제공하지 않습니다 그냥 펌웨어를 expample?읽고 해 - 당신이 가진 어떤 애플 리케이션 노트 또는 기타 겠지?
,이 좋은 하루
1 월추신 : 이것은에 crossposted입니다 http://www.cypress.com/forums/forum/messageview.cfm?catid=8&threadid=10046&enterthread=y코드 :
//************************************************ ***********
//************************************************ ***********
/ /
/ / 파일 : Test_CyAPI.cpp을
/ / 날짜 : 7.4.10
/ / 저자 : Kießling, 1 월 조선
/ / 목적 : CyAPI하고 기본적인 작문 익숙해지
/ / 함수
//************************************************ ***********
//************************************************ ***********
//************************************************ ***********
/ /이 포함됩니다
//************************************************ ***********
#은 <windows.h> 포함
#은 <stdio.h> 포함
/ / #은 <iostream.h> 포함
#은 <time.h> 포함
#은 <conio.h> 포함
#은 <math.h> 포함
#은 <CyAPI.h> 포함
#은 <string> 포함
#은 <iostream> 포함//************************************************ ***********
/ / 매크로와 전역 변수
//************************************************ ***********
네임 스페이스는 표준을 사용;
통근 자의 담당 처리;
표준 : : 문자열을 사용하여;
//************************************************ ***********
/ / 선언
//************************************************ ***********
bool USBSend512 (서명 char *로 아웃, CCyUSBDevice *의 USBDevice);
bool USBGet512 (에 서명 char *로, CCyUSBDevice *의 USBDevice);
무효의 wait_seconds (int 초);
//************************************************ ***********
/ / 메인
//************************************************ ***********
메인 (무효) 무효
(
/ / [의 USB 초기화]를
CCyUSBDevice * USBDevice = 새로운 CCyUSBDevice (NULL을);
/ / 시도 장치를 # 0 열
아닙니다 이미 열려 있습니다 (USBDevice -> DeviceCount () & &! USBDevice -> 열기 (0)) / /있는 경우 장치를 사용할 경우 Device0에는 있는지 확인하는 경우
(
법정 < "는 리셋 <0"<<endl를 장치를 여는;
USBDevice -> 재설정 ();
USBDevice -> 열기 (0);
)
(만약! USBDevice - IsOpen ())>
(
printf ( "\ N 개의 장치가 아닙니다 열린 \ N 개의 \ 안내 n");
)
다른 사람
(
printf ( "\ N 개의 장치를 열고 \ 안내 n \ n");
)/ / [정보]를 얻을
int 장치 = USBDevice -> DeviceCount ();
int altInt = USBDevice -> AltIntfcCount ();
int curInt = USBDevice -> AltIntfc ();
int eptCount = USBDevice -> EndPointCount ();
int maxPaketSize = USBDevice -> BulkOutEndPt -> MaxPktSize;/ / [인쇄 정보]를
법정 << "FriendlyName :"<<USBDevice -> FriendlyName <<endl;
/ / 법정 << "번호 사이 프러스 장비 :"<<장치 <endl을 <;
법정 << "대체 인터페이스의 개수 :"<<altInt <<endl;
법정 < "는 인터페이스를 사용 <:"<<curInt <<endl를;
법정 << "번호 종점의 :"<<eptCount <<endl;
1 절판 대량의 법정 << "최대 Paket 사이즈 :"<<maxPaketSize <<endl;
법정 << "송금 크기 ="<<USBDevice -> BulkOutEndPt -> GetXferSize () <<endl;/ / [리포트 유형 및 방향에] 모든 종점
문자열 방향을 입력합니다;
int C = 0 (용; C <eptCount; C 로)
(
(USBDevice -> 종점의 [C] -> bin을)하는 경우
(
방향 = "입력";
)
다른 사람
(
방향 = "출력";
)
(USBDevice -> 종점 [C] -> 속성) 스위치
(
경우 0 :
유형 = "권한";
휴식;
경우 1 :
유형 = "등시";
휴식;
경우 2 :
유형 = "일괄";
휴식;
사례 3 :
유형 = "인터럽트";
휴식;
)
법정 << "종점"는 <C << "는"<<유형 << ""<<방향 <<endl입니다 <;
)/ / [속도 테스트]를
메기 서명되지 않은 아웃 [512];
메기 [512]에서 서명되지 않은;
time_t t_start, t_end;
더블 t_elapsed;
/ / 배열 초기화
(다 = 0; C <513; C 로)
(
밖으로 [C] = 0x00 C를;
[C] = 나타내고 0x01에;
)
/ / 테스트를 시작합니다
시간 (& t_start); / / 현재 시간을 얻을
더블 맥 = 0 (용; 맥 <65535; 맥 )
(
USBSend512 (밖으로, USBDevice);
USBGet512 (에, USBDevice);
)
시간 (& t_end);
t_elapsed = difftime (t_start t_end);
법정 << "는"<t_elapsed <<endl <;
/ / [마지막 두 배열을 동일?]
카 bool = true로;
(다 = 0; C <512; C 로)
(
(다] [하는 경우! = 아웃 [C])
(
카 = FALSE로;
)
)
면 (카)
(
법정 << "에서 <<endl"아웃 같음;
)
다른 사람
(
법정 << "에서는 같지 않음 <<endl"절판 않는다;
)
/ / [주요]의 끝
USBDevice -> 닫기 ();
반환;
)//************************************************ ***********
/ / 함수
//************************************************ ***********bool USBSend512 (서명 char *로 아웃, CCyUSBDevice *의 USBDevice)
(
/ /이 함수는 USB를 통해 오픈 종점에 512 바이트를 전송합니다
/ / 만약 확인을 TRUE로, 거짓없는 경우가 존재 EP에 반환
bool = FALSE로 확인;
오랫동안 길이 = 512;(USBDevice -> BulkOutEndPt) / EP는 있는지 / 체크면
(
확인 = (USBDevice -> BulkOutEndPt -> XferData (밖으로, 길이)); / / 배열을 보내는
)
다른 사람
(
확인 = FALSE로;
)
확인을 반환;
)
//************************************************ ***********
bool USBGet512 (에 서명 char *로, CCyUSBDevice *의 USBDevice)
(
/ /이 함수는 USB를 통해 열려있는 종점에서 512 바이트를 얻을 수
/ / 만약 확인을 TRUE로, 거짓없는 경우가 존재 EP에 반환
bool = FALSE로 확인;
오랫동안 길이 = 512;(USBDevice -> BulkInEndPt) / EP는 있는지 / 체크면
(
확인 = USBDevice -> BulkInEndPt -> XferData (에, 길이);
)
다른 사람
(
확인 = FALSE로;
)
확인을 반환;
)
//************************************************ ***********
무효의 wait_seconds (int 초)
(
clock_t endwait;
endwait = 시계 () 초 * CLOCKS_PER_SEC;
(클럭 () <endwait) 동안
()
)
나의 현재 프로젝트는 FPGA를하고 WinXP PC를 사이에 확립 USB 연결합니다.그래도 난 FPGA를 안에 손을 얻을 나의 더러운, 나의 상사가 물건을 의미.그는 datarate의 요구를 제공하기 위해 내가 적어도 15 MB / s의난 탑재된 칩의 645490 "적이있어 04 기판을 갖고있다"사이 프러스 반도체 CY3684 / 3674 용 EZ - B 호의 USB 고급 개발 보드 "를 인쇄하고는"CY7C68013A - 128AXC 0731.내가 AVnet에서 보드를 FPGA를 사용하여 이것을 개발할 나의 WinXP 소프트웨어 (석사는 Visual C ) 사용을 최종 버전 것입니다하지만.컨트롤러는 USB - CY7 현재의 펌웨어에 대한 bulkloop.hex이다에 deliverd에 c : / 사이 프러스 /는 USB / 예.
지금 내가 어떤 정보를 같이 "에서 대량 전송"및 종점 번호 및 설정할 수에 I'am과 CyAPI을 사용하여 연결을 할 수있는 보드.사용 내가 tranferspeed을 meassure.(원본 파일이 첨부되어 있습니다) 안타깝게도 난 오직 얻을 약 1 MB / s의(필자가 사용 해봤 http://www.cypress.com/?docID=4383를 속도를 meassure 수 있지만 나는 그것을 실행 할 수 없습니다.의 USB 컨트롤 패널 - 그건이지의의 "아마 때문에 대신에"내가 사용 "의 USB 콘솔을" 그래서 .. 나는 아무데도 찾을 수 없습니다.)
그래서 ...어디 병목 제?높은 대역폭을 얻기가없는 일반적인 CyAPI를?잘못은 내가 사용하거나입니까 제공하지 않습니다 그냥 펌웨어를 expample?읽고 해 - 당신이 가진 어떤 애플 리케이션 노트 또는 기타 겠지?
,이 좋은 하루
1 월추신 : 이것은에 crossposted입니다 http://www.cypress.com/forums/forum/messageview.cfm?catid=8&threadid=10046&enterthread=y코드 :
//************************************************ ***********
//************************************************ ***********
/ /
/ / 파일 : Test_CyAPI.cpp을
/ / 날짜 : 7.4.10
/ / 저자 : Kießling, 1 월 조선
/ / 목적 : CyAPI하고 기본적인 작문 익숙해지
/ / 함수
//************************************************ ***********
//************************************************ ***********
//************************************************ ***********
/ /이 포함됩니다
//************************************************ ***********
#은 <windows.h> 포함
#은 <stdio.h> 포함
/ / #은 <iostream.h> 포함
#은 <time.h> 포함
#은 <conio.h> 포함
#은 <math.h> 포함
#은 <CyAPI.h> 포함
#은 <string> 포함
#은 <iostream> 포함//************************************************ ***********
/ / 매크로와 전역 변수
//************************************************ ***********
네임 스페이스는 표준을 사용;
통근 자의 담당 처리;
표준 : : 문자열을 사용하여;
//************************************************ ***********
/ / 선언
//************************************************ ***********
bool USBSend512 (서명 char *로 아웃, CCyUSBDevice *의 USBDevice);
bool USBGet512 (에 서명 char *로, CCyUSBDevice *의 USBDevice);
무효의 wait_seconds (int 초);
//************************************************ ***********
/ / 메인
//************************************************ ***********
메인 (무효) 무효
(
/ / [의 USB 초기화]를
CCyUSBDevice * USBDevice = 새로운 CCyUSBDevice (NULL을);
/ / 시도 장치를 # 0 열
아닙니다 이미 열려 있습니다 (USBDevice -> DeviceCount () & &! USBDevice -> 열기 (0)) / /있는 경우 장치를 사용할 경우 Device0에는 있는지 확인하는 경우
(
법정 < "는 리셋 <0"<<endl를 장치를 여는;
USBDevice -> 재설정 ();
USBDevice -> 열기 (0);
)
(만약! USBDevice - IsOpen ())>
(
printf ( "\ N 개의 장치가 아닙니다 열린 \ N 개의 \ 안내 n");
)
다른 사람
(
printf ( "\ N 개의 장치를 열고 \ 안내 n \ n");
)/ / [정보]를 얻을
int 장치 = USBDevice -> DeviceCount ();
int altInt = USBDevice -> AltIntfcCount ();
int curInt = USBDevice -> AltIntfc ();
int eptCount = USBDevice -> EndPointCount ();
int maxPaketSize = USBDevice -> BulkOutEndPt -> MaxPktSize;/ / [인쇄 정보]를
법정 << "FriendlyName :"<<USBDevice -> FriendlyName <<endl;
/ / 법정 << "번호 사이 프러스 장비 :"<<장치 <endl을 <;
법정 << "대체 인터페이스의 개수 :"<<altInt <<endl;
법정 < "는 인터페이스를 사용 <:"<<curInt <<endl를;
법정 << "번호 종점의 :"<<eptCount <<endl;
1 절판 대량의 법정 << "최대 Paket 사이즈 :"<<maxPaketSize <<endl;
법정 << "송금 크기 ="<<USBDevice -> BulkOutEndPt -> GetXferSize () <<endl;/ / [리포트 유형 및 방향에] 모든 종점
문자열 방향을 입력합니다;
int C = 0 (용; C <eptCount; C 로)
(
(USBDevice -> 종점의 [C] -> bin을)하는 경우
(
방향 = "입력";
)
다른 사람
(
방향 = "출력";
)
(USBDevice -> 종점 [C] -> 속성) 스위치
(
경우 0 :
유형 = "권한";
휴식;
경우 1 :
유형 = "등시";
휴식;
경우 2 :
유형 = "일괄";
휴식;
사례 3 :
유형 = "인터럽트";
휴식;
)
법정 << "종점"는 <C << "는"<<유형 << ""<<방향 <<endl입니다 <;
)/ / [속도 테스트]를
메기 서명되지 않은 아웃 [512];
메기 [512]에서 서명되지 않은;
time_t t_start, t_end;
더블 t_elapsed;
/ / 배열 초기화
(다 = 0; C <513; C 로)
(
밖으로 [C] = 0x00 C를;
[C] = 나타내고 0x01에;
)
/ / 테스트를 시작합니다
시간 (& t_start); / / 현재 시간을 얻을
더블 맥 = 0 (용; 맥 <65535; 맥 )
(
USBSend512 (밖으로, USBDevice);
USBGet512 (에, USBDevice);
)
시간 (& t_end);
t_elapsed = difftime (t_start t_end);
법정 << "는"<t_elapsed <<endl <;
/ / [마지막 두 배열을 동일?]
카 bool = true로;
(다 = 0; C <512; C 로)
(
(다] [하는 경우! = 아웃 [C])
(
카 = FALSE로;
)
)
면 (카)
(
법정 << "에서 <<endl"아웃 같음;
)
다른 사람
(
법정 << "에서는 같지 않음 <<endl"절판 않는다;
)
/ / [주요]의 끝
USBDevice -> 닫기 ();
반환;
)//************************************************ ***********
/ / 함수
//************************************************ ***********bool USBSend512 (서명 char *로 아웃, CCyUSBDevice *의 USBDevice)
(
/ /이 함수는 USB를 통해 오픈 종점에 512 바이트를 전송합니다
/ / 만약 확인을 TRUE로, 거짓없는 경우가 존재 EP에 반환
bool = FALSE로 확인;
오랫동안 길이 = 512;(USBDevice -> BulkOutEndPt) / EP는 있는지 / 체크면
(
확인 = (USBDevice -> BulkOutEndPt -> XferData (밖으로, 길이)); / / 배열을 보내는
)
다른 사람
(
확인 = FALSE로;
)
확인을 반환;
)
//************************************************ ***********
bool USBGet512 (에 서명 char *로, CCyUSBDevice *의 USBDevice)
(
/ /이 함수는 USB를 통해 열려있는 종점에서 512 바이트를 얻을 수
/ / 만약 확인을 TRUE로, 거짓없는 경우가 존재 EP에 반환
bool = FALSE로 확인;
오랫동안 길이 = 512;(USBDevice -> BulkInEndPt) / EP는 있는지 / 체크면
(
확인 = USBDevice -> BulkInEndPt -> XferData (에, 길이);
)
다른 사람
(
확인 = FALSE로;
)
확인을 반환;
)
//************************************************ ***********
무효의 wait_seconds (int 초)
(
clock_t endwait;
endwait = 시계 () 초 * CLOCKS_PER_SEC;
(클럭 () <endwait) 동안
()
)