USB File System Module User Manual (Host Mass Storage Class) ( 모델명 : USB-FSM-TTL, USB-FSM-RS232) 1. USB-FSM 개요본 USB 호스트 MSC 파일시스템모듈은 UART 통신을이용한명령어로 USB Drive Memory Stick 파일시스템을간편하게사용할수있도록만든모듈입니다. USB Drive Memory Stick은최대 32GByte까지사용할수있으며, 지원되는파일시스템은 FAT12, FAT16, FAT32 입니다. USB 호스트 MSC 파일시스템모듈은 USB 2.0 Full-Speed를지원합니다. <NOTICE> 모든종류의 USB Drive Memory Stick 지원을보장하지는않습니다!! 2. USB-FSM 명령 - 명령어는알파벳순으로설명 - <CR> 은 Carriage Return 으로 0x0D 명령어 BAUD UART Baud-Rate 변경 사용예 명령 정상응답 설명 BAUD [Baud-Rate]<CR> >OK: [Baud-Rate]<CR> Baud-Rate: 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600bps 가능 ( 초기치 =115200bps) BAUD<CR> >OK: 115200<CR> UART Baud-Rate 확인 BAUD 230400<CR> >OK: 230400<CR> UART Baud-Rate를 230400bps로설정 1 of 13
명령어 CD 디렉토리확인 / 변경 DEL 파일삭제 DEVINFO USB Device 정보보기 DIR 디렉토리보기 사용예 명령 정상응답 설명 CD [ 디렉토리경로 ]<CR> >OK: [ 현재디렉토리경로 ]<CR> CD<CR> >OK: /<CR> 현재디렉토리확인 CD Test/Sub<CR> >OK: /Test/Sub<CR> Test/Sub 디렉토리로이동 CD..<CR> >OK: /Test<CR> 상위디렉토리로이동 CD /<CR> >OK: /<CR> 루트디렉토리로이동 DEL [ 파일명 ]<CR> >OK: [ 삭제파일수 ]<CR> DEL Test.txt<CR> >OK: 1<CR> Test.txt 파일삭제 DEL *.*<CR> >OK: 9<CR> 현재디렉토리의모든파일삭제 DEL Temp/*.*<CR> >OK: 12<CR> Temp 디렉토리의모든파일삭제 DEVINFO<CR> >OK: [USB Device 정보 ]<CR> DEVINFO<CR> >OK: 043E;70D3;LG;X TICK<CR> 043E = Vendor ID 70D3 = Product ID LG = Manufacturer X TICK = Product DIR<CR> [ 디렉토리리스트 ]<CR> 디렉토리리스트와객체수 / 용량정보의 >OK: [ 객체수 / 용량정보 ]<CR> 각항목은콤마로구분 DIR<CR> 2016-11-17,12:31:48,<DIR>,Test<CR> <DIR> = 디렉토리 (Test는디렉토리 ) 2016-11-17,12:41:00,109,a.txt<CR> 2016-11-17,12:41:00 = 날짜 / 시간 2016-11-23,10:32:54,137,b.txt<CR> 137 = 파일크기, b.txt = 파일명 >OK: 1,2,3960995840,246,3951198208<CR> 1 = 폴더수 2 = 파일수 3960995840 = 전체디스크용량 246 = 디렉토리내의파일크기합 3951198208 = 남은디스크용량 2 of 13
명령어 DISKINFO 디스크정보보기 FCLOSE 열린파일닫기 FINFO 디렉토리 / 파일정보보기 사용예 명령 정상응답 설명 DISKINFO<CR> >OK: [ 디스크정보 ]<CR> 디스크정보의각항목은콤마로구분 >OK: FAT32,4971-61E4,3960995840,39511982 FAT32 = 파일시스템종류 DISKINFO<CR> 08<CR> 4971-61E4 = 디스크볼륨일련번호 3960995840 = 전체디스크용량 3951198208 = 남은디스크용량 FCLOSE<CR> >OK: [ 닫은파일명 ]<CR> FCLOSE<CR> >OK: Test.txt<CR> FINFO [ 디렉토리 / 파일명 ]<CR> >OK: [ 디렉토리 / 파일정보 ]<CR> 디렉토리 / 파일정보의각항목은콤마 로구분 FINFO EX<CR> >OK: 2016-11-25,15:36:24,0,D----,EX<CR> 2016-11-25,15:36:24 = 날짜 / 시간 0 = 크기 ( 디렉토리의경우항상 0) D---- = File Attribute Directory FINFO a.txt<cr> >OK: 2016-11-17,12:41:00,109,----A,a.txt 109 = 파일크키 <CR> ----A = File Attribute Archive ---S- = File Attribute System --H-- = File Attribute Hidden -R--- = File Attribute Read Only FINFO /Work/Example<CR> >OK: 2016-11-26,15:47:22,0,D----,/Work/ Example<CR> FINFO /EX/log.txt<CR> >OK: 2016-11-26,17:23:52,1024,----A,/EX/ log.txt<cr> 3 of 13
명령어 FOPEN 파일열기 사용예 명령 정상응답 설명 FOPEN [ 모드 ] [ 파일명 ]<CR> >OK: [ 모드 ] [ 파일명 ]<CR> 모드 : RD = 파일읽기 WR = 파일쓰기 CN = 파일생성 파일이있으면실패 CA = 파일생성 파일이있으면덮어씀 OE = 파일열기 (Default) 파일이없으면실패 OA = 파일열기 파일이없으면파일생성 OP = 위의 OA와동일하고파일 읽기 / 쓰기포인터를파일 끝으로설정 ( 이어쓰기 ) FOPEN RD a.txt<cr> 또는 >OK: OE RD a.txt<cr> a.txt 파일을읽기모드로열기 FOPEN OE RD a.txt<cr> FOPEN RD WR a.txt<cr> 또는 >OK: OE RD WR a.txt<cr> a.txt 파일을읽기 / 쓰기모드로열기 FOPEN OE RD WR a.txt<cr> FOPEN CN WR c.txt<cr> >OK: CN WR c.txt<cr> c.txt 파일을쓰기모드로생성 FOPEN CA WR c.txt<cr> >OK: CA WR c.txt<cr> c.txt 파일을쓰기모드로생성 FOPEN OA RD WR b.txt<cr> >OK: OA RD WR b.txt<cr> b.txt 파일을읽기 / 쓰기모드로열기 만약 b.txt 파일이없으면 b.txt 파일 생성 FOPEN OP WR b.txt<cr> >OK: OP WR b.txt<cr> b.txt 파일을쓰기모드로열기 만약 b.txt 파일이없으면 b.txt 파일 생성하고쓰기포인터를파일끝으로 설정 ( 이어쓰기 ) 4 of 13
명령어 FOPWR 파일열고 / 쓰고 / 닫기 FORMAT USB Drive 디스크포맷 FREAD 열린파일에서데이터읽기 사용예 명령 정상응답 설명 FOPWR [ 옵션 ] [ 쓰기바이트수 ] - 옵션 : A = 이어쓰기 [ 파일명 ]<CR> >WR:<CR> W = 덮어쓰기 [ 쓰기데이터 ] >OK: [ 쓰기완료바이트수 ]<CR> - 쓰기바이트수는최대 512 바이트 까지가능 FOPWR A 5 test.txt<cr> >WR:<CR> - test.txt 파일을이어쓰기로열고 12345 >OK: 5<CR> ( 파일이없으면생성 ) 5 바이트의 데이터 12345를쓰고파일을닫음 FOPWR W 3 test.txt<cr> >WR:<CR> - test.txt 파일을덮어쓰기로열고 ABC >OK: 3<CR> ( 파일이없으면생성 ) 3 바이트의 데이터 ABC를쓰고파일을닫음 FORMAT<CR> >OK: FORMATTED<CR> - 디스크포맷은많은시간을소요 - 포맷이완료되면디스크드라이브 는다시 Mount되고포맷된디스크 의정보를보고함 FREAD [ 읽을바이트수 ]<CR> >RD: [ 읽은바이트수 ]<CR> - 읽을바이트수는최대 512 바이트 [ 읽은데이터 ] 까지가능 - 읽은바이트수가읽을바이트수 보다작거나 0이면파일을끝까지 읽은것임 FREAD 10<CR> >RD: 10<CR> - 10 바이트읽기명령에대하여 0123456789 10 바이트데이터 0123456789 읽음 FREAD 10<CR> >RD: 5<CR> - 10 바이트읽기명령에대하여 ABCD<CR> 5 바이트데이터 ABCD<CR> 읽음 - 읽은바이트수가읽을바이트수 보다작으므르파일을끝까지읽음 5 of 13
명령어 FSEEK 열린파일의읽기 / 쓰기포인터확인 / 이동 FWRITE 열린파일에데이터쓰기 MD 디렉토리만들기 RD 디렉토리삭제 사용예 명령 정상응답 설명 FSEEK [ 옵션 ] [ 이동위치 ]<CR> >OK: [ 파일포인터 ]<CR> 옵션 : SEEK_SET = 처음에서이동 SEEK_CUR = 현재에서이동 SEEK_END = 마지막에서이동 이동위치범위 : -2,147,483,648부터 2,147,483,647까지 FSEEK<CR> >OK: 10/109<CR> 현재파일포인터확인 10 = 파일포인터현재위치 109 = 파일포인터마지막위치 FSEEK SEEK_SET 0<CR> >OK: 0/109<CR> 파일포인터를처음으로이동 FSEEK SEEK_SET 15<CR> >OK: 15/109<CR> 처음위치에서 15 포인터이동 FSEEK SEEK_CUR -5<CR> >OK: 10/109<CR> 현재위치에서 -5 포인터이동 FSEEK SEEK_CUR 10<CR> >OK: 20/109<CR> 현재위치에서 10 포인터이동 FSEEK SEEK_END 0<CR> >OK: 109/109<CR> 파일포인터를마지막으로이동 FSEEK SEEK_END -9<CR> >OK: 100/109<CR> 마지막위치에서 -9 포인터이동 FWRITE [ 쓰기바이트수 ]<CR> >WR:<CR> 쓰기바이트수는최대 512 바이트 [ 쓰기데이터 ] >OK: [ 쓰기완료바이트수 ]<CR> 까지가능 FWRITE 10<CR> >WR:<CR> - 10 바이트쓰기명령 / 응답 0123456789 >OK: 10<CR> - 0123456789 데이터쓰기완료 MD [ 디렉토리 ]<CR> >OK: [ 디렉토리 ]<CR> MD EX<CR> >OK: EX<CR> 디렉토리 EX를만듬 RD [ 디렉토리 ]<CR> >OK: [ 디렉토리 ]<CR> 디렉토리내에서브디렉토리나 파일이있으면삭제되지않음 RD EX<CR> >OK: EX<CR> 디렉토리 EX 삭제 6 of 13
명령어 사용예명령정상응답설명 명령수신시간초과처리 RXTIMEOUT<CR> >OK: DISABLED<OK> 시간초과처리동작유 / 무확인 RXTIMEOUT 동작유 / 무확인 / 설정 RXTIMEOUT ENABLE<CR> >OK: ENABLED<CR> 시간초과처리동작함 ( 수신초과시간은 5초 ) RXTIMEOUT DISABLE<CR> >OK: DISABLED<CR> 시간초과처리동작안함 TIME [ 년월일시분초 ]<CR> >OK: [ 년월일요일시분초 ]<CR> TIME 시간확인 / 설정 TIME<CR> >OK: 16-11-24 THU 09:54:15<CR> 시간확인 TIME 161125153452<CR> >OK: 16-11-25 FRI 15:34:52<CR> 시간을 16-11-25 15:34:52로설정 VER 모듈버전확인 VER<CR> >OK: USB Host MSC File System <CR> <NOTICE> - 여러개의파일을열수없습니다. - BAUD 명령으로설정된 UART Baud-Rate는전원이 Off 되어도유지됩니다. - DEL, FORMAT, RD 명령의경우파일이열려있으면파일을닫습니다. - 명령수신시간초과처리동작의초기치는 ENABLE 이며, 전원이 Off 되면 RXTIMEOUT 명령으로설정된명령수신시간초과처리동작은초기화됩니다. - 전원이 Off 되면 TIME 명령으로설정된날짜와시간은초기화됩니다. 3. USB-FSM UART 통신설정 - Baud-Rate = 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 ( 초기치 =115200) - Parity = None - Data Bit = 8-Bit - Stop Bit = 1-Bit 4. USB-FSM 시작보고 USB 호스트 MSC 파일시스템모듈의동작이시작되면아래와같은형식으로호스트에게보고합니다. >RS: START<CR> 7 of 13
5. USB-FSM 상태보고 / 오류응답 - 상태보고형식 >NT: [ 코드 ]=[ 전문 ]<CR> >NT: 30=MOUNT_OK<CR> - 오류응답형식 >ER: [ 코드 ]=[ 전문 ]<CR> >ER: 21=NO_DEVICE<CR> 코드 종류 전문 설명 01 DISK_ERR 복구할수없는디스크 I/O 오류 02 INT_ERR 내부오류 ( 스택오버, FAT 구조오류등 ) 03 NOT_READY 미디어가없거나, 저장장치가작동하지않는경우 04 NOT_FOUND 파일또는디렉토리를찾을수없음 05 NO_PATH 경로를찾을수없음 06 INVALID_NAME 이름이잘못됨 07 DENIED 액세스거부 08 상태보고및오류응답 EXIST 같은이름이이미있음 09 INVALID_OBJECT 파일 / 디렉토리오브젝트가유효하지않음 10 WRITE_PROTECTED 쓰기금지된미디어 11 INVALID_DRIVE 잘못된드라이브번호 12 NOT_ENABLED 논리드라이브가등록되지않음 13 NO_FILE_SYSTEM 유효한 FAT 볼륨이없음 14 FORMAT_ABORTED 포맷중단 15 TIMEOUT 시간초과 8 of 13
코드 종류 전문 설명 16 LOCKED 작업거부 17 NOT_ENOUGH_CORE 메모리 / 저장공간부족 18 TOO_MANY_OPEN_FILES 열려있는최대객체수초과 19 INVALID_PARAMETER 매개변수가유효하지않음 20 UNKNOWN 원인을알수없음 21 NO_DEVICE USB Drive Memory Stick 없음 22 상태보고및오류응답 MOUNT_FAIL Logical Drive Mount 실패 23 NO_FORMAT 디스크가포맷되어있지않음 24 NO_OPEN 파일이열려있지않음 25 ALREADY_OPEN 파일이열려있음 26 SIZE_NOT_SAME 크기가같지않음 27 COMMAND_ERROR 호스트명령오류 28 UNKNOWN_COMMAND 정의되지않은명령 29 RTC_FAULT RTC가정상동작하지않음 30 MOUNT_OK Logical Drive Mount 성공 31 FAT32,4971-61E4,3960995840,3951198208 디스크정보 (FAT 종류, 볼륨일련번호, 총용량, 남은용량 ) 32 UNMOUNT Logical Drive Unmount 됨상태보고 33 CLOSED,[ 닫은파일명 ] 열려있는파일을닫음 34 RX_TIMEOUT 명령수신시간초과 (5초) - RXTIMEOUT ENABLE 인경우유효 35 DEVICE_NOT_SUPPORT 지원되지않는 USB Device (Mass Storage Class Device 아님 ) 36 DEVICE_DETACH USB Device 제거 (Logical Drive가 Mount되지않은경우 ) 9 of 13
6. USB-FSM 크기 10 of 13
7. USB-FSM 제품사진 [USB-FSM-TTL 앞면 ) [USB-FSM-TTL 뒷면 ) [USB-FSM-RS232 앞면 ) [USB-FSM-RS232 뒷면 ) 11 of 13
8. USB-FSM J1 설명 Pin Name Pin Function I/O Remark 5V 입력전원 5V I GND GROUND - TX Host Communication TXD O 사용자제품의 RX와연결하여사용합니다 RX Host Communication RXD I 사용자제품의 TX와연결하여사용합니다. RY USB Disk Ready State O USB Disk가준비상태인지를표시합니다. (H=Ready, L=Not Ready) DT USB Device Attach State O USB Device가꽂혔는지를표시합니다. (H=Attach, L=Detach) RESET USB-FSM Reset I USB-FSM을외부에서리셋합니다. (H=Not Reset, L=Reset) <NOTICE> - RY, DT, RESET 은사용하지않아도됩니다. - RY 신호는 USB Disk 사용가능상태를나타냅니다. 예로 USB Disk 가포맷되어있지않으면 RY 신호는 Low 를출력합니다. RY 신호가 High 면 USB Disk 에 Read/Write 가가능한상태라보면됩니다. 9. USB-FSM Hole 설명 - H1, H2, H3, H4 는 2.5mm 크기이며나사체결용입니다. 10. USB-FSM J4, J6 설명 - J4 는케이블을연결하여사용하고자할때사용됩니다. ( 사용가능제품 : 연호 (YMW025-04R), MOLEX(5267-04)) - J6 은외부에 LED 를추가하고자할때사용되며, STATUS(LD1) 와동일하게동작됩니다. ( 사용가능제품 : 연호 (YMW025-02R), MOLEX(5267-02)) 12 of 13
11. USB-FSM 소모전류 (LG XTICK 4GB 기준 ) Operation TTL RS-232 Max Remark Idle 52mA 57mA <60mA USB Memory Stick Detach Idle 93mA 98mA <110mA USB Memory Stick Attach Write 98mA 103mA <150mA <NOTICE> - USB Memory Stick으로허용되는전류는 500mA 입니다. - USB-FSM에추가로 J6의 LED를사용한다고하면추가되는전류용량을고려해야합니다. - 사용하는 USB Memory Stick의용량에따라서전류차이가있을수있습니다. - 사용하고자하는 USB Memory Stick을고려하여 5V 입력전원을 200mA ~ 700mA 이상으로설계해주시기바랍니다. - 참고로 32GB는약 290mA 정도소모되었습니다. 12. USB-FSM 주문 - USB-FSM-TTL : UART TTL Level(3.3V) 로 TIA/EIA-232 Level 이아닙니다. - USB-FSM-RS232 : 실제제품에 MAX3232 가사용되었습니다. 가격은 1,000 원이추가됩니다. 13. 유사모델 : SD File System Module ( 모델명 : SD-FSM-TTL, SD-FSM-RS232) - SD 카드를위한파일시스템모듈입니다. 13 of 13