통신/USB (2) 썸네일형 리스트형 [적용] RaspberryPi로 USB 통신하기 1. Raspberry에 usb.c 파일을 만든다.#include#include#include#include#includeint main() { int fd = -1; int iSize = 0; int idx = 0; int i, j; char buf[100]; struct termios options; // 가상 시리얼 포트를 열고 데이터를 송수신하겠다. fd = open("/dev/ttyACM0", O_RDWR | O_NOCTTY | O_NONBLOCK); if(fd == -1) { printf("fail open\n"); return 1; } memset(&options, 0, sizeof(options)); // 시리얼 통신을 위한 설정들 options.c_cflag = B9600;.. [개념] USB 통신 1. Host가 Device의 가상 장치 정보(Class, Subclass)를 가져온다.ClassSubclass USB CDCCDC ACM시리얼 통신 장치CDC ECM이더넷 통신 장치USB MSC없음저장 장치※ CDC(Communication Device Class), MSC(Mass Storage Class)※ ACM(Abstract Control Model), ECM(Ethernet networking Control Model) 2. Host는 가져온 장치 정보를 기반으로 드라이버를 활성화한다.해당 드라이버가 로딩되면, OS는 이를 추상화된 장치 파일로 나타낸다.즉, 가상 포트가 생성되어 장치를 사용할 준비가 된다. 3. 사용자 프로그램은 이 가상 포트를 통해 데이터를 송수신한다.예를 들어, 가상 포.. 이전 1 다음