FTDI 칩은 어떻게 작동합니까?


20

누군가가 FTDI USB- 직렬 UART 작동 방식을 물어 보았습니다. FT232R의 데이터 시트를 보았고 블록 다이어그램이 실제로 도움이되지 않았습니다. 누구든지 나를 설명하거나 좋은 설명으로 연결할 수 있습니까?


3
USB CDC 장치의 장치 쪽을 구현하는 것보다 더 많은 설명이 있습니까? en.wikipedia.org/wiki/USB_communications_device_class
kenny

1
@kenny, 실제로는 그렇지 않습니다. 독점 프로파일을 사용하므로 드라이버를 설치해야합니다 (적어도 Windows에서는).
avakar

2
@avakar는 모든 OS에서 드라이버를 사용하며 일부는 미리로드되어 있습니다.
Kortuk

답변:


15

FTDI 칩은 USB 프로토콜 스택을 구현합니다. 이 하드웨어의 책임은 컴퓨터에 올바른 드라이버를로드 할 수 있도록 PC에 (일부 식별 정보를 사용하여) 알려주고 USB 엔드 포인트를 검색 한 후 PC와 데이터 트랜잭션을 관리하는 것입니다. 이러한 프로세스에 대한 더 나은 설명.

해당 드라이버가로드되면 PC에서 칩을 쿼리하는 데 사용할 수있는 명령 세트가 지정됩니다. 이 하드웨어는 방정식의 한 측면을 처리합니다 (PC와의 통신). 그것의 다른 쪽은 논리, 버퍼 및 라인 드라이버 및 정렬을 포함하는 UART 프로토콜을 관리하는 전용 하드웨어입니다. 앞에서 언급 한 명령 세트는 UART 하드웨어에서 읽거나 쓰는 데 사용됩니다. USB 장치는 PC에 의해 폴링되므로 이벤트 기반 코드를 사용하는 경우 PC는 실제로 새로운 데이터가 도착했는지 확인하기 위해 폴링을 수행합니다. 이는 기본 직렬과 다를 수 있습니다. 포트, 모르겠다.

위의 논리는 전용 ASIC으로 또는 ROM에서 펌웨어를 실행하는 제거 된 마이크로 컨트롤러 코어를 사용하여 구현할 수 있습니다. 그것이 실제로 마이크로 컨트롤러 코어라면 UART가 주변 장치로 연결되어 있다고 생각합니다.


펌웨어 프로그램이 실행되고 있지 않다는 것이 얼마나 확실합니까? 마이크로 컨트롤러는 일반적으로 동등한 ASIC 전용 하드웨어 구현보다 적은 수의 로직 게이트를 필요로합니다. 마이크로 컨트롤러 펌웨어에 사용자가 액세스 할 수없는 경우 ASIC에서 마이크로 컨트롤러를 알리는 것은 실제로 어렵습니다.
Ben Voigt

@ 벤 : 그거 알아? 아마 그렇게 말해서는 안됩니다. 내 무지로 인해 답변이 수정되었습니다. 블록 다이어그램을 본 후에는 장의 가정을했지만 어쨌든 잠재적 인 uC 세부 정보를 추상화하는 것이 더 좋을 것이라고 생각합니다. 저는 FTDI 직원들만 알고 있다고 생각하며, 이는 주택 개발 시간과 비교할 때 핵심 라이센스 비용으로 귀결된다고 생각합니다.
Jon L

1
일반적으로 "프로토콜"이 있으면 ASIC 또는 FPGA에 깊숙히 묻힌 엔진에서 실행 되더라도이를 처리하기위한 "프로그램"으로 끝납니다. 맹목적으로 빠른 속도가 복잡성을 능가하는 상황은 예외입니다. 여기서 상태 기계 또는 대규모 병렬 처리를 볼 수 있습니다. 컴퓨팅 경로가 제어 로직에 비례하여 구축 된 엔진 사이에는 DSP 프로세서의 독창적 인 아이디어
Chris Stratton

2

내부에는 USB를 통한 독점 프로토콜 (따라서 드라이버가 필요함)을 말하고이를 "일반적인"UART 신호로 변환 한 후 다시 되 돌리는 USB 마이크로 컨트롤러가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.