2009-06-19 3 views
0

USB 장치 용 CDC 드라이버를 개발 중입니다. 일부 문제가 발생합니다. Windows 측에서 사용중인 드라이버는 끝점 기능을 flish 메커니즘의 일종으로 사용하거나 데이터를 올바르게 가져 오는 데 사용합니다. 왜냐하면 나는 그것을 작동시키지 않기 때문에 저에게 많은 트로 블레를 유발합니다. 나는 데이터 토글이 동의하지 않는다고 생각하며 일부 중요한 데이터 전송이 누락되었다고 생각합니다. 불투명 한 데이터 토글로 인해 해당 엔드 피킹과 관련된 인터럽트가 발생하지는 않습니다. USB 표준에서 지적한대로 설정된 인터페이스 및 클리어 기능으로 데이터 토글을 0으로 재설정합니다. 이렇게해야 할 때 더 많은 상황이 있습니까? 또는 잘못된 데이터 토글을 처리하는 오류의 쉬운 방법이 있습니다.USB 지우기 엔드 포인트 기능

감사드립니다. 나는 USB 분석기를 가지고있다. 그러나 나는 지금 아무 것도하지 않는다. 내가 관리 할 수있는 것에서 나는 생각하고 있습니다. 데이터 포인트 비트를 해당 끝점에 대해 지우기 기능을 수행 한 후 하드 비트로 설정합니다. 데이터를 보내면 PC에 저장됩니다. 나는이 형태의 USB 분석기를 알고 포트 모니터로 Vcom 드라이버를 추적했다. 그런 다음 모든 항목이 구성되어 (장치 나열 등) 일부 데이터를 기다리는 동안 초기 질문에 답변을하지만 다음 질문은 명확한 끝점 확인 후 PC 쪽에서 다시 질문하고 있습니다. 이것은 대응하는 끝점에 대해 UBS 인터럽트를 트리거해야하지만, 일정 시간이 지난 후에도 명확한 끝점 기능과 동일한 패키지가 다시 발생합니다. 그리고 이번에는 응답을 받고 다시 통신 프로토콜에 침묵합니다. 내가 요청한 tranfer 대 인터럽트가 누락 된 비율은 정확하게 2 : 1이므로 데이터 토글 링이 시간의 절반으로 잘못 설정되었다고 생각하지만 명확한 엔드 포인트 기능을 얻을 때마다 데이터 토글 비트를 설정하면 어떻게 될 수 있습니까?

나는 분명히 문제를 언급했으면 좋겠다. harvare 측에 대해서, 내가 생각한 유일한 것은 내가 설정하고있는 비트라고 생각한다. 상태 "1을 쓰면이 비트가 끝점 데이터 토글을 0으로 재설정합니다." 좋습니다 (잘만되면) 나는 명확한 끝점을 풀 었다고 생각합니다. 다른 오류는 다른 것들로 인해 발생했으며, 누적 문제는 잡기가 어려웠습니다.


좋아 지금 난 원인 이었지만 같은 ususally 무엇 remeber하지 않는, 몇 시간 전에 문제를 해결 - 그것은 뭔가 다른했다. anwser 감사에 묶인 모두.

답변

1

일부 usbser.sys 버전에서는 64 바이트의 정확한 배수를 전송 한 후 Windows에서 올바르게 파이프를 플러시하지 않는다는 점에 유의하십시오. 나는 당신의 질문에서 이것이 당신이보고있는 행동인지 정확히 알 수는 없지만, USB 분석기는 이것이 사실인지를 판단하는 데 도움을 줄 것입니다. XP SP2를 사용하는 경우 SP3으로 업그레이드하십시오.

+0

내 경우가 더 간단했다. 결점이 분명하고 끝점이 풍부하고 처리가 불충분했다. 둘째로 내 USB 스택 내부의 작업 처리에 문제가있어 이상한 행동이 보였다. – CrazyChris

1

무엇이 잘못되었는지 이해하기 위해 usb snoopy (소프트웨어 USB 분석기)을 사용하는 것이 좋습니다. 예산이 있으면 하드웨어 USB 애널라이저가 Lecroy 또는 Ellisys과 같은 것이 좋습니다. 또는 상업용 CDC 드라이버를 구하려면 cdc 드라이버 만 있으면됩니다. 문제 설명은 매우 일반적이며 직접 처리 할 수 ​​있습니다.

관련 문제