
æ§ããã«èšã£ãŠããã»ãšãã©ã®ãæ®éã®ãããã°ã©ããŒã¯LabVIEWãã¯ãããžãŒã«å¯ŸããŠææ§ãªæ
床ãæã£ãŠããŸãã ããã§ã¯ãé·ãéè°è«ããããšãã§ããŸãããç¡é§ã«ãªããŸãã ãããã¯ãŒã¯äžã«LabVIEWããã°ã©ã ã®äŸããããããããšããäºå®ã«ãã£ãŠç¶æ³ã¯æªåããŸããããããã¯ãã¹ãŠåå¿è
åãã§ãããããããã©ãã ãç°¡åã«èŠãããããã€ã¹ããã€ã³ãžã±ãŒã¿ã«æ¥ç¶ããããããã²ãããæ°åãå€ãããããŸãã¯ãããããµã€ã¯ã«ã®ã°ã©ãã«èŠçŽãããŸãä¹±æ°ãŸãã¯æ£åŒŠæ³¢ã衚瀺ãããŸããããã«ã¯ã巚倧ãªãã°ã«ã¹ã€ãããå転ããããã€ã€ã«ã€ã³ãžã±ãŒã¿ãŒã®åœ¢ã§ãççãªã€ã³ã¿ãŒãã§ã€ã¹ã䌎ããŸãã å人çã«ããã®æèçãªåçŽåã®ã¢ãããŒãã¯ç§ãæ©ãŸããŸãã çãã·ãªãŒãºã®èšäºã§ã¯ãèªè
ã«LabVIEWã§ã¢ããªã±ãŒã·ã§ã³ãœãããŠã§ã¢ãéçºããããã»ã¹ã玹ä»ããããšããŸãã ãµããžã§ã¯ããšãªã¢ã«å€ãã®æéãè²»ãããªãããã«ã MPSSEã¢ãŒãã§FTDIãä»ããŠæ§æãã¡ã€ã«ãFPGAã«ã¢ããããŒãããããã®è©³çŽ°ãªã¢ã«ãŽãªãºã ã䜿çšããŸãïŒ USBãä»ããFPGAãžã®æ§æã®ããŠã³ããŒããŸãã¯FTDI MPSSEã®éã¢ã»ã³ãã« ïŒã ãã®èšäºã§ã¯ãåãFPGAããŒããŒãLabVIEWèšèªã§å®è£
ããæ¹æ³ã瀺ããŸãã
åè¿°ã®ããã«ãã·ãªã¢ã«ããã·ãïŒSPïŒã¢ãŒãã§ã®FPGAããŒãã¢ã«ãŽãªãºã ãšFTDIåäœã®åçã¯ãåã®èšäºã§è©³ãã説æãããŠããŸãã ç¹°ãè¿ããŸããã ã¢ã«ãŽãªãºã ã¯ãã¹ããããé©åã§ãããšèªèãããŠãããšèããŠããŸãã ã¯ããèªè
ãå°ãªããšãè¡šé¢çã«LabVIEWã®æŠå¿µã«ç²ŸéããŠãããå€å
žçãªããã°ã©ãã³ã°ã«ç²ŸéããŠãããšä»®å®ããŸãã
ããŒãããŒããŒã®äœæããã»ã¹ã«ã¯ããã»ã©æéã¯ããããŸããããããã»ã¹ã®èª¬æã1ã€ã®èšäºã®ããªã¥ãŒã ã«åããããšãã§ããªãã£ããããå°ããªã·ãªãŒãºããããŸãã å®éšã®æ®µéã¯ãã§ã«å®äºããŠãããã¢ã«ãŽãªãºã ã®æäœæ§ã«èªä¿¡ãããã®ã§ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ããéçºãéå§ã§ããããã«ããŸãã æåã®èšäºã§ã¯ãããŒããŒã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãäœæããããã°ã©ã æ§é ãå®è£
ããŸãã 2çªç®ã§ã¯ãFTDIãã©ã€ããŒdllã䜿çšããŠã* .rbfãã¡ã€ã«ã®FPGAãžã®ããŒããå®è£
ããŸãã
äŒè©±ã®çç£æ§ã®ããã«ãLabVIEWã§æ¡çšãããŠããçšèªãæãåºãããšã¯äžå¿
èŠã§ã¯ãããŸããã LabVIEWã§ã¯ãã¢ããªã±ãŒã·ã§ã³ããã°ã©ã ã¯ä»®æ³èšæž¬åšãšãåŒã°ããVIãšãåŒã°ããä»®æ³èšæž¬åšãŸãã¯ç¥ããŠVIãšãåŒã°ããŸãã VPã«ã¯2ã€ã®ããµã€ããããããŸããã³ã³ãããŒã«ãšã€ã³ãžã±ãŒã¿ãé
眮ãããŠããããã³ãããã«ãšããããã®èŠçŽ ãçžäºæ¥ç¶ãããæ©èœãšããŒã¿åŠçãããŒãå®è£
ãããŠãããããã¯å³ïŒãããã¯å³ïŒã§ãã ååãšããŠãVPã«ã¯éå±€æ§é ããããæäžäœVPå
ã®ãã¹ãŠã®VPã¯éåžžããµãããã€ã¹ãŸãã¯ãµãVIãšåŒã°ããŸãã
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹
ã¢ããªã±ãŒã·ã§ã³ã¯ãæ§æãã¡ã€ã«ãFPGAã«ããŒãããå¿
èŠããããŸãã åæã«ãè€æ°ã®FTDIãã³ã³ãã¥ãŒã¿ãŒã«åæã«æ¥ç¶ã§ãããããã®äžéšã䜿çšããŠFPGAãæ§æã§ããå¯èœæ§ãããããšãæå³ããŸãã ããããããŠã³ãªã¹ãããããã€ã¹ãéžæãããã¹åºåã®ãããã¿ã³ãããã¡ã€ã«ãéžæããããšããå§ãããŸãã ããŠã³ããŒããéå§ããã«ã¯ããããã°ã©ã ããã¿ã³ãè¿œå ããŸãã ä»®æ³LEDã¯ãæäœã®ã¹ããŒã¿ã¹ã瀺ããŸãã LabVIEWãèµ·åããŸãã
å¿
èŠãªèŠçŽ ãããã³ãããã«ïŒããã³ãããã«ïŒã«è¿œå ããŸãã VPã«ã¯ãã·ã«ããŒãã¹ã¿ã€ã«ã䜿çšããŸãã 次ã®å³ã¯ãçµæãå
ã®ç¶æ
ã®ãã¹ãŠã®èŠçŽ ã瀺ããŠããŸãã å¿
èŠã«å¿ããŠãååãä»ããŠãã¬ããã§ç°¡åã«èŠã€ããããšãã§ããŸãã

èŠçŽ ãç·šéããŸãã転éãã¹ãã¬ãããç¢æã®è¿œå -å¿
èŠãªãã©ãŒã ã«ç§»åããŸãã ããã§ã¯ãå®éã«ã¯ããã¶ã€ããŒã®æãå¿
èŠã§ããã次ã®ããšãã§ããŸãã

ãããã¯å³ïŒ

ããªãã®æ³šæãåŒããŸãã åèŠçŽ ã«ã¯ãååã決å®ãã2ã€ã®ããããã£-ã©ãã«ãšãã£ãã·ã§ã³ããããŸãã

æåã®ããããã£ã¯èŠçŽ ã®ååãèšå®ããŸãããã®ååã®äžã§ãããã¯å³ã«è¡šç€ºãããŸãã ã©ãã«ã¯ããã£ãã·ã§ã³ãšã¯ç°ãªããVIã®å®è¡äžã«å€æŽã§ããŸããã ãã®æ©èœã«é¢é£ããŠãããã³ãããã«ã®VIã§ã©ãã«ãé衚瀺ã«ãããã£ãã·ã§ã³ã衚瀺ããããšããå§ãããŸãã Labelããå€å
žçãªããã°ã©ãã³ã°èšèªã®å€æ°ãšããŠãã§ããã°ã©ãã³èªã®ã¬ã€ã¢ãŠãã§ãæå³ã®ããååãæãä»ãããã«ããŸãã ãã£ãã·ã§ã³ã«ã¯ã人éåãã®ååãå°å
¥ããŸããååã¯éåžžã«é·ããã¹ããŒã¹ãå«ãŸããå¿
èŠã«å¿ããŠãã·ã¢èªã§è¡šèšãããŸãã LabVIEWã䜿çšããŠããã£ãã·ã§ã³è¡šç€ºãã©ã³ããã«ã¹ã¿ãã€ãºã§ããŸãã ãã£ãã·ã§ã³ãå°ç¡ãã«ããããšã誰ã匷å¶ããŠããªãããšãèšããªããã°ãªããŸããïŒç¢æã¯ã FPã®ä»»æã®å Žæã§çŽæ¥äœæã§ããŸãã
Whileã«ãŒããšã€ãã³ããã³ãã©ãŒãšããå€å
žçãªã¹ããŒã ã«åŸã£ãŠVPæäœãå®è£
ããŸãã While
ã«ãŒãïŒããã°ã©ãã³ã°->æ§é -> Whileã«ãŒãïŒããããã¯å³ã«è¿œå ããã€ãã³ããã³ãã©ãŒæ§é ïŒããã°ã©ãã³ã°->æ§é ->ã€ãã³ãæ§é ïŒãè¿œå ããŸãã
ã€ãã³ãæ§é ã«é¢ããç°¡åãªãã«ãæ§é äœã¯ã€ãã³ããçºçããã®ãåŸ
ã£ãŠããã察å¿ãããã³ãã©ãŒãå®è¡ãããŸãã ã€ãã³ãã®æ§é ã«ã¯ã1ã€ãŸãã¯è€æ°ã®ãµããã€ã¢ã°ã©ã ããããŸããã€ãã³ããã³ãã©ãŒãããããã±ãŒã¹ã§ãããã®1ã€ã¯ãã€ãã³ããçºçãããšãã«å®è¡ãããŸãã å·Šäžé
ã®ã¿ãŒããã«ã䜿çšããŠãæ§é äœãã€ãã³ããäºæããããªç§æ°ãæå®ã§ããŸãã ãã®æéäžã«ã€ãã³ããçºçããªãã£ãå Žåããã¿ã€ã ã¢ãŠãããµããã€ã¢ã°ã©ã ãå®è¡ãããŸãã ããã©ã«ãå€ã¯ãã€ãã¹1ã§ããããã¯ãã¿ã€ã ã¢ãŠããæéåãã«ãªããªãããšãæå³ããŸãã

- ã€ãã³ãã»ã¬ã¯ã¿ã©ãã«ã¯ãçŸåšã®ã±ãŒã¹ãããªã¬ãŒããã€ãã³ãã瀺ããŸãã ä»ã®ãã³ãã©ãŒã衚瀺ããã«ã¯ãã€ãã³ãåã®æšªã®äžç¢å°ãã¯ãªãã¯ããŸãã
timeout
端æ«ã¯ãã€ãã³ããåŸ
æ©ããããªç§æ°ãèšå®ããŸãã å€ã-1以å€ã®å Žåãã¿ã€ã ã¢ãŠããµããã€ã¢ã°ã©ã ãå®è£
ããå¿
èŠããããŸãã- åçã€ãã³ããå
¥åããããã®ç«¯æ«ã ãã®ç«¯æ«ã¯ããã©ã«ãã§ã¯è¡šç€ºãããŸããã 衚瀺ããã«ã¯ãã³ã³ããã¹ãã¡ãã¥ãŒã§[ãã€ãããã¯ã€ãã³ãã¿ãŒããã«ã®è¡šç€º]ãéžæããŸãã
- ã€ãã³ãããŒã¿ããŒãã ã€ãã³ããçºçãããšãLabVIEWã¯ãã®ã€ãã³ãã«é¢é£ããããŒã¿ãçæããŸãã ãã®ããŒãã¯ããã®ããŒã¿ããã³ãã©ãŒã«æäŸããŸãã ããŠã¹ã䜿çšããŠãããŒãã®ãµã€ãºãåçŽã«å€æŽããå¿
èŠãªèŠçŽ ãéžæã§ããŸãã
Type
ãTime
ãªã©ã®äžéšã®ããŒã¿ã¯ãã¹ãŠã®ã€ãã³ãã«å
±éã§ããã Char
ãVKey
ãªã©ã®ä»ã®ããŒã¿ã¯æ§æãããã€ãã³ãã®ã¿ã€ãã«äŸåããŸãã - ã€ãã³ããã£ã«ã¿ãŒããŒãã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ããã®ããŒã¿ãåŠçããåã«å€æŽã§ããã€ãã³ãããŒã¿ãå®çŸ©ããŸãã ãã®ããŒãã¯ããã£ã«ã¿ãªã³ã°ãå©çšå¯èœãªãã³ãã©ãŒã§ã®ã¿è¡šç€ºãããŸãã ã€ãã³ãããŒã¿ããŒãããã€ãã³ããã£ã«ã¿ããŒãã«ã¢ã€ãã ãæ¥ç¶ããã³å€æŽã§ããŸãã æ°ããå€ãããŒãã¿ãŒããã«ã«æ¥ç¶ããŠããããã®ã€ãã³ããå€æŽããããšãã§ããŸãã
Discard?
ã¿ãŒããã«ã«true
ãéä¿¡ããå Žåãã€ãã³ãã«å¯Ÿããã€ã³ã¿ãŒãã§ã€ã¹ã®åå¿ãå®å
šã«ãã£ã³ã»ã«ã§ããŸãDiscard?
ã å€ããã£ã«ã¿ãŒèŠçŽ ã«æ¥ç¶ããªãå Žåããã®ããŒã¿èŠçŽ ã¯å€æŽãããŸããã Case
æ§é ãšåæ§ã«ãã€ãã³ãæ§é ã¯ãã³ãã«ããµããŒãããŠããŸãã ããå Žåã«ãã³ãã«ãè¿œå ãããšããã³ãã©ãŒããšã«ãã³ãã«ãèªåçã«äœæãããŸãã ãã ããããã©ã«ãã§ã¯ãåãã³ãã©ãŒã§ã€ãã³ãæ§é ã®åºåãã³ãã«ãæ¥ç¶ããå¿
èŠã¯ãããŸããã æ¥ç¶ãããŠããªããã³ãã«ã¯ãã¹ãŠããã³ãã«ããŒã¿ã¿ã€ãã«ããã©ã«ãå€ã䜿çšããŸãã ããã«ãããæ€åºãå°é£ãªãšã©ãŒãçºçããå¯èœæ§ããããŸãã ãã³ãã«ããã¹ãŠã®ãã³ãã©ãŒã§é
ç·ããã¢ãŒãã«æ»ãããšãã§ããŸãããã®ããã«ã¯ãã³ã³ããã¹ãã¡ãã¥ãŒã§[é
ç·ãããŠããªãå Žåã¯ããã©ã«ãã䜿çš]ãéžæããŸãã
æåã«åŠçããã®ã¯ããµã€ã¯ã«ãã©ã®ããã«çµäºããŠããã°ã©ã ãçµäºãããã§ãã æãç°¡åãªæ¹æ³ã¯ããµã€ã¯ã«ãåæ¢ããåæ¢ãã¿ã³ãè¿œå ããããšã§ãããç§ã®æèŠã§ã¯ããŠã£ã³ããŠã®äžéšé
ã«ããèµ€ãååã§ããã°ã©ã ãçµäºããã®ãæ
£ç¿ã§ãã
é©åãªãã³ãã©ãŒãEvent Structure
è¿œå ããŸãã ã³ã³ããã¹ãã¡ãã¥ãŒã§ã[ã€ãã³ãã±ãŒã¹ã®è¿œå ]ãéžæããŸãã ã€ãã³ãã®ãœãŒã¹ãšããŠããã®VIããéžæãããšãã€ãã³ãã¯ãããã«ãéããïŒãã瀺ããŸãã
ã€ãã³ããç·šé
ã¯ãªãã¯å¯èœãªç»å
ãããã«ã¯ããŒãºãïŒè³ªåãªãïŒãéžæããå Žåããã®ã€ãã³ãã«ã¯ãã£ã«ã¿ãŒããªããå
ã«æ»ããªãããšã«æ³šæããŠãã ããã 質åãããå Žåã¯ãååæ¶ãã¯ãªãã¯ãããšãç§ãã¡ãå¶åŸ¡ããèªåã§ããã°ã©ã ãæ£ããå®äºããããšãã§ããŸãã ãããã«ãéããŸããïŒã ãã³ãã«ãä»ããŠã while
ãåæ¢ããããã®ããŒã«å®æ°true
ã端æ«ã«æ¥ç¶while
ã ãç Žæ£ããŸããïŒããšå
¥åããŸã ãŸãã true
圹ç«ã€ã
çŸåšãæ確ãªãã¥ã¢ã³ã¹ã¯ãããŸãããçŸåšã®VIãLabVIEWç°å¢ã§ã¯ãªãã³ã³ãã€ã«ãããã¢ããªã±ãŒã·ã§ã³ã®åœ¢åŒã§èµ·åãããå Žåãååãã¯ãªãã¯ããŠããŠã£ã³ããŠã¯éããŸããããã¢ããªã±ãŒã·ã§ã³ã¯åæ¢ããŸãã ãã®åé¡ã解決ããããã«ãã¡ã€ã³ãµã€ã¯ã«ã®å®äºåŸãéçºã¢ãŒããããã°ã©ã ã¢ãŒããã確èªããŸãããããã°ã©ã ã¢ãŒãã®å Žåã¯ã¢ããªã±ãŒã·ã§ã³ãçµäºããŸãã çŸåšã®VIãå®è¡ãããŠããå Žæãç解ããã«ã¯ãããããã£ããŒãã䜿çšããŸãïŒããã°ã©ãã³ã°->ã¢ããªã±ãŒã·ã§ã³å¶åŸ¡->ããããã£ããŒãïŒã ãã®ããŒãã¯ããã®ãªããžã§ã¯ããžã®åç
§ã«ãã£ãŠãªããžã§ã¯ãã®ããããã£ãžã®ã¢ã¯ã»ã¹ãæäŸããŸãã ãã®å Žåãã¢ããªã±ãŒã·ã§ã³å
šäœãžã®ãªã³ã¯ãååŸããå¿
èŠããããŸãã åããã¬ããããVI Server Reference
å®æ°ãéžæãVI Server Reference
ã å®æ°ããããã¯ç·å³ã«èšå®ãããåŸããã®ã¿ã€ããThis Application
ïŒå·ŠããŠã¹ãã¿ã³ïŒã«å€æŽããå¿
èŠããããŸãã çµæã®ãªã³ã¯ãããããã£ããŒãã«æ¥ç¶ããŸãã Application:Kind Property
ããããã£ãéžæApplication:Kind Property
-çŸåšã®VIãå®è¡ãããŠããLabVIEWã·ã¹ãã ã®ã¿ã€ããè¿ããŸãã ããããã£ã®åºåãã±ãŒã¹ã¹ãã©ã¯ãã£ã«æ¥ç¶ãããã©ã³ã¿ã€ã ã·ã¹ãã ãã±ãŒã¹ãè¿œå ããŠãã¢ããªã±ãŒã·ã§ã³ãçµäºããŸãïŒ Quit LabVIEW
ãçµäºããŸãïŒã ãã®ãããã¯ããµã€ã¯ã«ã®åã§ã¯ãªãåŸã«å®è¡ããããã«ãå
¥å端åerror in
ãã³ãã«ãä»ããŠãµã€ã¯ã«ã«æ¥ç¶ããŸãã

ã¯ãªãã¯å¯èœãªç»å
ããã§ãããã°ã©ã ãèµ·åãããšãã«ããŠã£ã³ããŠã®ååãã¯ãªãã¯ããŠåæ¢ã§ããŸãã èµ·åãããããã°ã©ã ã¯æ¬¡ã®ããã«ãªããŸãã

ç§ã®æèŠã§ã¯ãå€ãã®äœåãªã VIããããã£ïŒãã¡ã€ã«-> VIããããã£ã¡ãã¥ãŒïŒã«ç§»åããããŠã£ã³ããŠã®å€èŠ³ãã«ããŽãªãéžæããŠãã«ã¹ã¿ã ãèšå®ããŸãã
ã¡ãã¥ãŒè¡šç€ºããªãã«ãïŒç·šéã¢ãŒãã®ãŸãŸïŒãã¹ã¯ããŒã«ããŒããªãã«ããã¢ããªã±ãŒã·ã§ã³ã®å®è¡äžã«ããŒã«ããŒãé衚瀺ã«ããŸãïŒå®è¡äžã«ããŒã«ããŒã衚瀺ïŒã ãŠã£ã³ããŠã®ãµã€ãºå€æŽãçŠæ¢ãããŠã£ã³ããŠã®æå°åãšæå°åãèš±å¯ããŸãã ããã¯è¯ãã§ãïŒ

ãã¡ããããNationalInstrumentsãLabVIEWEvaluation Softwareããšããç¢æãåé€ãã䟡å€ã¯ãããŸãããç§ã¯ãŸã 家åºçšã³ã³ãã¥ãŒã¿ã®ã©ã€ã»ã³ã¹ã賌å
¥ããããªãã®ã§ãç¢æãææ
¢ããŠ45æ¥éã®è©Šçšæéã§ç®¡çããŸãã
åœç¶ãèæ¯è²ãšåèŠçŽ ã調æŽãããã©ã³ããéžæã§ããŸãããç§ã¯ãã¶ã€ããŒã§ã¯ãããŸãããããããæªåãããã ãã ãšèšãããŸãã
楜åšãªã¹ã
VPã¯ããŠãŒã¶ãŒãç®çã®ããã€ã¹ãéžæã§ããããã«ãFPGAãã¡ãŒã ãŠã§ã¢ã«é©ããã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ãããããã€ã¹ã®ãªã¹ãããŠãŒã¶ãŒã«æäŸããå¿
èŠããããŸãã FTD2XXã©ã€ãã©ãªã§ã¯ã FT_CreateDeviceInfoList
ããã³FT_GetDeviceInfoDetail
é¢æ°ã¯ããã®ç®çã®ããã®ãã®ã§ãã åã®èšäºã§èª¬æããããã«ããã©ã€ããŒã©ã€ãã©ãªã䜿çšããŠFTD2XX APIã䜿çšã§ããŸãã LabVIEWã«ã¯ããã€ãããã¯ã©ã€ãã©ãªãšå¯Ÿè©±ããããã®äŸ¿å©ãªã¡ã«ããºã ããããŸã-ã©ã€ãã©ãªé¢æ°åŒã³åºãããŒãããŒãã¯ããæ¥ç¶æ§->ã©ã€ãã©ãªãšå®è¡å¯èœãã¡ã€ã«ããã¬ããã«ãããŸãã é¢æ°åŒã³åºãããŒããæ§æããå¿
èŠããããŸãããŸããdllãžã®ãã¹ïŒãé¢æ°ãã¿ãïŒãæå®ããŸãããã®åŸãã·ã¹ãã ã¯ã©ã€ãã©ãªãã¹ãã£ã³ãããé¢æ°åããªã¹ãã§é¢æ°åãéžæããŸãFT_CreateDeviceInfoList
éžæããåŒã³åºãèŠåãéžæ- stdcallïŒWINAPIïŒ ã 次ã«ã[ãã©ã¡ãŒã¿]ã¿ãã§ãé¢æ°ãã©ã¡ãŒã¿ã®ãªã¹ããå
¥åããå¿
èŠããããŸãããªã¹ãã®æåã®èŠçŽ ã¯æ»ãå€ã§ãã ããã§ã¯ãAPIã®ããã¥ã¡ã³ããŸãã¯ããããŒãã¡ã€ã«ãèŠããŠãããšäŸ¿å©ã§ãã [é¢æ°ãããã¿ã€ã]ãšãªã¢ã§ãã©ã¡ãŒã¿ãŒãèšå®ãããšãã€ã³ããŒããããé¢æ°ã®ãããã¿ã€ãã衚瀺ãããŸãã ããã¥ã¡ã³ãã®çœ²åãæ§ææžã¿ã®ãããã¿ã€ããšäžèŽãããã[OK]ãã¯ãªãã¯ããŸãã
1ç§éã«1åã¹ãã£ã³ãå®è¡ããå¿
èŠããããšããŸãã ãã¿ã€ã ã¢ãŠããã¿ãã®ã€ãã³ããã³ãã©ãŒã®æ§é ã«åŒã³åºãããŒããé
眮ããåŸ
æ©æéã1000ããªç§ã«èšå®ããŸãã ããŒããã³ã«ã€ã³ãžã±ãŒã¿ãè¿œå ããŸãããã¹ãŠãæ£ããè¡ãããå ŽåãVIãèµ·åãããšãFTDIã§æ¥ç¶ãããããã€ã¹ã®æ°ã衚瀺ãããŸãã
ããã³ãããã«ãšãããã¯å³
åçã¯ã¯ãªãã¯å¯èœã§ã

åæ§ã«ã FT_GetDeviceInfoDetail
é¢æ°ã®ããŒããäœæããŸãã é¢æ°ã®ãããã¿ã€ãã¯æ¬¡ã®ãšããã§ãã
FTD2XX_API FT_STATUS WINAPI FT_GetDeviceInfoDetail( DWORD dwIndex, LPDWORD lpdwFlags, LPDWORD lpdwType, LPDWORD lpdwID, LPDWORD lpdwLocId, LPVOID lpSerialNumber, LPVOID lpDescription, FT_HAN
ãã©ã¡ãŒã¿ãŒã説æããéã lpdwFlags
ã lpdwType
ã lpdwID
ã lpdwLocId
ãuint32
ãžã®ãã€ã³ã¿ãŒãšããŠæž¡ãããããšã«æ³šæããå¿
èŠããããŸãã ãã©ã¡ãŒã¿ãŒlpSerialNumber
ããã³lpDescription
ã¯ããã€ãæååïŒnullã¿ãŒãããŒã¿ãŒãæã€char
é
åïŒã®æ¬è³ªã§ãã åŒã³åºãããŒãã®ãã®çš®ã®ãã©ã¡ãŒã¿ãŒã¯ããŸããŸãªæ¹æ³ã§è£
食ã§ãã8ãããã¯ãŒãã®é
åã«å
¥åã§ããŸããããããæååã§ããããšãããã«ç€ºããäºæ³ããããµã€ãºãèšå®ããã®ãæã䟿å©ã ãšæããŸãã ãã®å Žåãåºåã¯ããã«æå¹ãªãè¿·è·¯ãè¡ã«ãªããè¿œå ã®å€æã¯å¿
èŠãããŸããã

ã©ã€ãã©ãªé¢æ°ãåŒã³åºã
ãã®é¢æ°ã¯ã dwIndex
ã·ãªã¢ã«çªå·ã«ãã£ãŠæ
å ±ãè¿ããŸãã è€æ°ã®FTDIãã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ãããŠããå Žåãåã³ã³ããŒã¿ãŒã®æ
å ±ãèªã¿åãã«ã¯ãé¢æ°ãã«ãŒãã§åŒã³åºãå¿
èŠããããŸãã ã«ãŒãã®å埩åæ°ã¯ãåã®é¢æ°FT_CreateDeviceInfoList
ã«ãã£ãŠæäŸãããŸãã
ããã³ãããã«ãšãããã¯å³
åçã¯ã¯ãªãã¯å¯èœã§ã

äžå¿«ãªæ©èœããããŸããã³ãŒã«ããŒãã®ãã¹ãŠã®ããŒãã¯ãå°ãªããšãçåŽã§æ¥ç¶ããå¿
èŠããããŸãã ãããã£ãŠã䜿çšããªãåºå端åã®ã«ãŒãå
ã«ãã³ãã«ãäœæãããŸãã
Types
é
åã«ã¯FTDIãããã¿ã€ããå«ãŸããŠããŸãããMPSSEããµããŒãããFPGAããã°ã©ãã³ã°ã«äœ¿çšã§ããå¯èœæ§ããããã®ã«ã®ã¿éžæãå¶éããããã«å¿
èŠã§ãã ãã ãããããžãã¯ãã³ããŒãã§ã®æäœã¯äžäŸ¿ã§ããFTDIã¿ã€ããenum
ã®åœ¢åŒã§é
眮ããããšãææ¡ããŸãã ããã«ããã®ãããªenum
ãã§ã«ããããŒãã¡ã€ã«ftd2xx.hã«ãããŸãã LabVIEWã§ã¯ãããã¹ããªã³ã°ãšEnumèªäœã®2ã€ã®ã³ã³ãããŒã«ã䜿çšããŠåæãäœæã§ããŸãã äž¡æ¹ãšããåãæ¿ãå¯èœãªæ°å€ãæã€æååã®ãªã¹ããå«ãŸããŠããŸãã äž»ãªéãã¯ããåæåãã§ã¯æ°å€ãæŽæ°ã®é£ç¶ããæ°å€ã§ããå¿
èŠãããã®ã«å¯Ÿãããããã¹ããªã³ã°ãã§ã¯èªç±åºŠãé«ãããšã§ããä»»æã®å€ãæå®ã§ããŸãã
åæã äœæ
æåã§å€ãå
¥åããŸãããCããenum
ãã€ã³ããŒãããæ©èœããªãã®ã¯æ®å¿µã§ã

ããã³ãããã«ã§ã¯ããã®ã€ã³ãžã±ãŒã¿ã¯æ¬¡ã®ããã«ãªããŸã

å·Šã¯ãªãã¯ããŠå€ãéžæãã
äœæããããªã¹ãã®ä»åŸã®ãã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ããªã³ã¯ããã³åæããã«ã¯ããMake Type Defãã䜿çšãããšäŸ¿å©ã§ãã ïŒã¢ã€ãã ã®ã³ã³ããã¹ãã¡ãã¥ãŒããéžæïŒã ãã®çµæãã«ã¹ã¿ã ããŒã¿åãäœæãããŸãã æ°ããã¿ã€ãã¯ãæ¡åŒµåã* .ctlã®å¥ã®ãã¡ã€ã«ã«é
眮ãããŸãã ãã®ãã¡ã€ã«ãç·šéãããšããã®èŠçŽ ã®ãã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ãå€æŽãããŸãã ãããã©ãã»ã©äŸ¿å©ãã説æãã䟡å€ã¯ãªããšæããŸãã å®çŸ©ãã¡ã€ã«ãžã®ã¢ã¯ã»ã¹ã¯ããType DefãéãããéžæããŠã€ã³ã¹ã¿ã³ã¹ã®ã³ã³ããã¹ãã¡ãã¥ãŒããååŸã§ããŸããåãã¡ãã¥ãŒã§ãType Defããã®èªåæŽæ°ãã«æ³šæããå¿
èŠããããŸãã ããã³ãType Defããåæãã
Types
ã€ã³ãžã±ãŒã¿ãFTDI Type
ã€ã³ãžã±ãŒã¿ã®é
åã«å€æŽããŸãããã®çµæãVIãèµ·åãããšãæ¥ç¶ãããŠããã³ã³ããŒã¿ã®ã¿ã€ãã衚瀺ãããŸãã

3ã€ã®ããã€ã¹ãèŠã€ãããŸãã
ãã¿ã€ã ã¢ãŠããã®å Žåã®çµæã®ã³ãŒãã®æ©èœãå®å
šã§ããããšã«æ°ä»ãã®ã¯ç°¡åã§ãããããã£ãŠãå¥ã®ãµãVIã«ç§»åã§ããŸãã ãµãããã€ã¹ã«è»¢éããèŠçŽ ãéžæããã¡ã€ã³ã¡ãã¥ãŒã®[ç·šé]ãã[ãµãVIã®äœæ]ãéžæããŸãã
ãµãæ©åšãäœæããããããã¯å³ãã¹ãŠã®ã€ã³ãžã±ãŒã¿ãæ®ããã³ãŒã«ããŒãã®ä»£ããã«ãæšæºã¢ã€ã³ã³ã§æ°ããVIã圢æãããŸããã

åçã¯ã¯ãªãã¯å¯èœã§ã
æ°ãããµãVIãããã«ã¯ãªãã¯ãããšãç·šéãŠã£ã³ããŠãèµ·åããŸãã ãŸããä¿åããŠæå³ã®ããååïŒããšãã°ããFT_GetDeviceInfoãïŒãä»ããŸãã I / Oã¿ãŒããã«ãã»ããã¢ããããŸãã ãããè¡ãã«ã¯ãã³ãã¯ã¿ãã€ã³ã䜿çšããŸãã

ããã«ã¯ãå¶åŸ¡åšããã³è¡šç€ºåšVIã«å¯Ÿå¿ãã端åã®ã»ããã§ãã
æ¥ç¶ããã«ã§ç«¯åãéžæãããšãããã³ãããã«ã®å¯Ÿå¿ããèŠçŽ ã匷調衚瀺ãããŸãã 空ã®ã¿ãŒããã«ãéžæããããã³ãããã«ã®èŠçŽ ãã¯ãªãã¯ãããšããã®èŠçŽ ã¯ã¿ãŒããã«ã«ã¢ã¿ãããããŸããããã®åã«ä»ã®ã¿ãŒããã«ã«å²ãåœãŠãã¹ãã§ã¯ãããŸããã ã³ã³ããã¹ãã¡ãã¥ãŒã§ã¯ãåå¥ã«ããŸãã¯ãšã¬ã¡ã³ãããã¿ãŒããã«ãäžåºŠã«åæããŠãããã«å
šäœã®ãã¿ãŒã³ãå€æŽã§ããŸãã
çŸåšã®ãµãVIãäœæãããšãã®ç«¯åã®å²ãåœãŠæ¹æ³ãæ°ã«å
¥ããªãã®ã§ãããã¹ãŠã®ç«¯åãåæããéžæããŠæåã§ããŒã¯ã¢ããããŸãã å
¥å端åãå·ŠåŽã«ãåºåãå³åŽã«ããªãã·ã§ã³ã®å
¥åãäžéšã«ããªãã·ã§ã³ã®åºåãäžéšã«é
眮ããããšããå§ãããŸãã ããã«ããããããã¯å³ã§ã®ã³ãŒãã®èªã¿ããããšèŠèŠçãªé åºãè¯å¥œã«ãªããŸãã
ãšã©ãŒãå¶åŸ¡ããã«ã¯ã Error in
ãšError out
2ã€ã®è¿œå èŠçŽ ãäœæError out
ãŸãã LabVIEWã®ãšã©ãŒå¶åŸ¡ãããã¯ã¯éåžžã«åºç¯å²ã«ãããããããã®èšäºã®ç¯å²ãè¶
ããŠãããããæå°éã®èª¬æã«éå®ãããç§ãããããšããååãéµå®ããŸãã ãããã£ãŠããšã©ãŒçšã®2ã€ã®ã¿ãŒããã«ãå
¥åãšåºåãäœæããŸãã
ã³ã³ããã¹ãã¡ãã¥ãŒã䜿çšããŠäœæãããšäŸ¿å©ã§ãä»»æã®ããŒãã®ãšã©ãŒã¿ãŒããã«ãå³ã¯ãªãã¯ããŸãã

LabVIEWã§ã¯ãå·Šäžã®æ¥ç¶ããã«ã«ãšã©ãŒã®å
¥å端åãé
眮ããå³äžã«åºå端åãé
眮ããã®ãäžè¬çã§ãã
åºåãæ§é ã«çµåããæ¹ã䟿å©ã§ãã åºåçšã«ã2ã€ã®ã¢ã¬ã€ãäœæããŸããæåã®ã¢ã¬ã€ã«ã¯æ€åºããããã¹ãŠã®FTDIããã€ã¹ãå«ãŸãã2çªç®ã®ã¢ã¬ã€ã«ã¯MPSSEãå¯èœã§ãçè«çã«ã¯FPGAã®æ§æã«äœ¿çšã§ãããã®ã®ã¿ãå«ãŸããŸãã
ãµãæ©åšãäœæãããšãã®æåŸã®ä»äžãã¯ãã¢ã€ã³ã³ãæ§æããããšã§ãã ãŠã£ã³ããŠã®å³äžé
ã«ããã¢ã€ã³ã³ãããã«ã¯ãªãã¯ãããšããšãã£ã¿ãŒãèµ·åããŸãã ãããã¯å³ã§ããã€ã¹ã®ç®çãæ確ã«è§£éã§ãããäœããã®æå³ã®ããç»åãäœæããããšããŠããŸãã
FT_GetDeviceInfo.vi
ããã³ãããã«

ãããã¯å³
ãããŠãããã¯ããã¿ã€ã ã¢ãŠããã±ãŒã¹ãæŽçãããåŸã«ã©ã®ããã«èŠãããã§ãïŒ

åçã¯ã¯ãªãã¯å¯èœã§ã
ãã®æç¹ãŸã§ããããã€ã¹ã®éžæããšããååã®ããããããŠã³ãªã¹ãã¯ç©ºã§ããããããã§ããŒã¿ãå
¥åã§ããããã«ãªããŸããã ããããã£ãæåå[]ãã§ãªã¹ãã®ããããã£ããŒããäœæããŸãïŒã³ã³ããã¹ãã¡ãã¥ãŒ->äœæ->ããããã£ããŒã->æåå[]ïŒã æžã蟌ã¿ãšèªã¿åãã«ä»»æã®ããããã£ã䜿çšã§ããçŸåšã®ã¢ãŒãã¯ããããã£ããŒãã®ã³ã³ããã¹ãã¡ãã¥ãŒã§éžæãããŸãã ããã©ã«ãã§ããŒããäœæããå Žåãããããã£ã¯èªã¿åãçšã«èšå®ãããŸãã æžã蟌ã¿ã«å€æŽïŒãæžã蟌ã¿ã«å€æŽãã
æ§é ã®é
åããã説æã®ããé
åãéžæãããããStrings[]
éä¿¡ããŸãã For Loop
ã䜿çšããŠé
åãéžæã§ããŸãã
VIãéå§ããåŸããããã€ã¹ãéžæãèŠçŽ ã®å·Šãã¿ã³ãæŒããšãæ§æããããã€ã¹ãæå®ã§ããŸãã ãã®å Žåãããã€ã¹ã®ãªã¹ãã¯1ç§ã«2åæŽæ°ãããŸãã ãã¡ããããªã¹ããæŽæ°ãããå Žåã«ã®ã¿ããããã£ãæŽæ°ããããšã¯å¯èœã§ãããä»ã®ãšããã¯ãããã¯å³ã®äžèŠãªæ··ä¹±ãçºçããŸãã
ã©ãããã®ïŒ
ããã³ãããã«

åçã¯ã¯ãªãã¯å¯èœã§ã
以åããã®ãããªèå³æ·±ãæ©èœã«ã€ããŠèšåããã®ãå¿ããŸãããForã«ãŒãã¯å埩åæ°ãæ瀺çã«ç€ºãå¿
èŠã¯ãããŸãããé
åã®å
¥åãã³ãã«ãäœæããã ãã§ååã§ããã«ãŒãã¯åèŠçŽ ã«å¯ŸããŠå®è¡ãããŸãããã®åäœã¯C ++ 11ã®foreach
ã«äŒŒãŠãforeach
ã ãã ããã«ãŒãå
¥åã«è€æ°ã®é
åãå°çããå Žåã¯æ³šæãå¿
èŠã§ãã
ã€ãã³ãæ§é ã«ããããã°ã©ã ããã¿ã³ãæŒãããã®ãã³ãã©ãŒãè¿œå ããŸãã FPGAãžã®ãã¡ã€ã«ã®ã¢ããããŒããæ
åœããVIã¯ãããŸãããããµãããã€ã¹ããã¹ã¿ããã«ããŸãã æ§æãã¡ã€ã«ãžã®ãã¹ãšFTDIèšè¿°åãå
¥åãšããŠåãåããäœæ¥ã®çµæã«å¿ããŠããã¡ãŒã ãŠã§ã¢ã®ã¹ããŒã¿ã¹ïŒæåãŸãã¯å€±æïŒãè¿ããšããŸãã ãããŠãããã°ã©ã ã®ã€ã³ã¿ãŒãã§ãŒã¹ããã¹ãããããšãããé¢çœãããããã«ããã®ã¹ããŒã¿ã¹ãã©ã³ãã ã«ããŸãã
ã¹ã¿ãFT_MPSSE_SP_FPGA.vi
ããã³ãããã«

ãããã¯å³
ãªã¹ãããããã£ïŒã³ã³ããã¹ãã¡ãã¥ãŒ->äœæ->ããããã£ããŒã->ãªã³ã°ããã¹ã->ããã¹ãïŒãä»ããŠFTDIèšè¿°åãã¹ã¿ãå
¥åã«æž¡ãããã¡ã€ã«ãã¹ãããã¡ã€ã«ãã¹ãèŠçŽ ã«è»¢éããŠãããŒã«ã«å€æ°ãäœæããŸãïŒã³ã³ããã¹ãã¡ãã¥ãŒ->äœæ->ããŒã«ã«å€æ°ïŒãèªã¿åãïŒChange To ReadïŒã«èšå®ããŸãã ã¹ããŒã¿ã¹åºåãStatus
ã€ã³ãžã±ãŒã¿ã«çŽæ¥æ¥ç¶ããŸãã Programm
ãã¿ã³ãã€ãã³ããã³ãã©ãŒã«ãã©ãã°ãããŸãã ã€ãã³ãããã³ãã©ãŒã§æ§æãããŠããèŠçŽ ãé
眮ããããšããå§ãããŸã-ããã³ãããã«ã§ãã®èŠçŽ ãããã«ã¯ãªãã¯ãããšããããã¯å³ã®å¯Ÿå¿ããèŠçŽ ã ãã§ãªãããã®èŠçŽ ã«é¢é£ä»ããããã€ãã³ããã³ãã©ãŒã衚瀺ãããŸãã
ããã§ããããã°ã©ã ããã¿ã³ãæŒããšãã€ã³ãžã±ãŒã¿ã¯ç·è²ïŒæåïŒãŸãã¯æç·è²ïŒæåã§ã¯ãªãïŒã«ãªããŸãã ããŸãæ確ã§ã¯ãããŸããã ã€ã³ãžã±ãŒã¿ã®ããããã£ã§ãè²ããªãããèµ€ã«å€æŽããŸãã è¯ãã§ã ã€ã³ãžã±ãŒã¿ãç·è²ã®å Žåãéžæããããã€ã¹ã®FPGAã¯ãŠã£ã³ããŠã§æ§æãããŠãããã¡ã€ã«ã§æ§æãããŠãããšèšããŸãã

ããã³ãããã«
ãã ãããã¡ã€ã«ãå€æŽãããå¥ã®ããã€ã¹ãéžæãããšããã®ã¹ããŒãã¡ã³ãã¯falseã«ãªããŸãã åæã«ãããã°ã©ãã³ã°ãšã©ãŒãçºçããªãã£ããããã€ã³ãžã±ãŒã¿ãŒãèµ€ã«è²ä»ãããããšã¯ã§ããŸããã ãã¡ã€ã«ãŸãã¯ããã€ã¹ãå€æŽãããå Žåãã€ã³ãžã±ãŒã¿ãŒã®å€ã¯é¢ä¿ãªãããšã匷調ããã®ã䟿å©ã§ã-æãããŸãã ããã«ã¯ã Disabled
ã€ã³ãžã±ãŒã¿ãŒããããã£ã䜿çšã§ããŸãã ãã®ããããã£ã¯3ã€ã®å€ãåãããšãã§ããŸãEnabled
-éåžžã®è¡šç€ºããŠãŒã¶ãŒã¯ãªããžã§ã¯ããå¶åŸ¡ã§ããŸãã Disabled
-éåžžã©ãããªããžã§ã¯ãã¯ããã³ãããã«ã«è¡šç€ºãããŸããããŠãŒã¶ãŒã¯ãªããžã§ã¯ããå¶åŸ¡ã§ããŸããã Disabled and Grayed Out
衚瀺-ãªããžã§ã¯ãã¯åé¢ããã«ã«æãè²ã§è¡šç€ºããããŠãŒã¶ãŒã¯ãªããžã§ã¯ããå¶åŸ¡ã§ããŸããã
Devices list
ãšFile Path
ã€ãã³ããã³ãã©ãŒãäœæãããããã§ã¹ããŒã¿ã¹ã€ã³ãžã±ãŒã¿ãŒãæããããã³ãã©ãŒã§[Program]ãã¿ã³ãEnabled
ããããã£ã«å²ãåœãŠãŸãã
ã©ããã
ãããã°ã©ã ããã³ãã©ãŒïŒå€ã®å€æŽã

ããã€ã¹ãªã¹ããã³ãã©ãŒïŒå€ã®å€æŽ

ããã¯ãæãã€ã³ãžã±ãŒã¿ãŒãã©ã®ããã«èŠãããã§ã
èšå®ãã¡ã€ã«ã®æ€çŽ¢ããŠãŒã¶ãŒã«ãšã£ãŠäŸ¿å©ã«ããŸããã-ãã¡ã€ã«è¡šç€ºãŠã£ã³ããŠãèšå®ããŸãã File Path
èŠçŽ ã®ããããã£ã«ç§»åãã[åç
§ãªãã·ã§ã³]ã¿ãã§[ããã³ãã]ã[ãã¿ãŒã³ã©ãã«]ã«å
¥åãããã¡ã€ã«ã¿ã€ããã£ã«ã¿ãŒïŒãã¿ãŒã³ïŒãšãã¿ã³ã®ååïŒãã¿ã³ããã¹ãïŒãæå®ããŸãã
ãã¡ã€ã«éžæãŠã£ã³ããŠ
rbfãã¡ã€ã«ã®ã¿ã衚瀺ãããŸã

ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®äœæã¯å®äºãããšèŠãªãããšãã§ããŸãã

ããŒãããŒããŒã®å®è¡
ä»æ¥ã¯äœã«äŒããŸãããïŒ
ãã®èšäºã§ã¯ãæå°éã®ã€ã³ã¿ãŒãã§ã€ã¹ã§æ©èœçã«å®å
šãªã¢ããªã±ãŒã·ã§ã³ãäœæããäŸãšããŠãLabVIEWã§ã®äœæ¥ã«å¯ŸããããŸããŸãªã¢ãããŒãã瀺ããŸããã
ãã®çµæãç§ãã¡ã¯ãããã«è§ŠããŸããïŒ
- ä»®æ³ã¢ãã©ã€ã¢ã³ã¹ã®ããããã£ãæ§æããŸãã äžèŠãªã¡ãã¥ãŒã¿ã€ãé
ç®ãç¡å¹ã«ããæ¹æ³ãåŠç¿ããŸããã
- ä»®æ³ã¢ãã©ã€ã¢ã³ã¹ã®æ§é ïŒã€ãã³ãã«ãŒãã
- ã€ãã³ãã®æ§é ãæäœããŸãã
- ã¢ãã©ã€ã¢ã³ã¹èšèšã
- dllããé¢æ°ãã€ã³ããŒãããŸãã
- èŠçŽ ã®ããããã£ãæäœããŸãã
次ã®èšäºã§ã¯ãMPSSEã®äŸã䜿çšããŠFTD2XX APIã®æäœã«ã€ããŠããã«æãäžããŸããã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ãã€ããªãFPGAã«ããŠã³ããŒãããŸãã
é¢é£è³æ
- USBçµç±ã§æ§æãFPGAã«ããŠã³ããŒãããããFTDI MPSSEãéã¢ã»ã³ãã«ããŸã
- labview_mpsseããããžã§ã¯ãã®ãããªããžããªã
- DSPã®ãã¬ãŒãã³ã°ã¹ã¿ã³ããçµéšã®ããã®é
- éçºD2XXã¢ããªã±ãŒã·ã§ã³ãœãããŠã§ã¢ããã°ã©ããŒãºã»ã¬ã€ãã¬ãã¥ãŒãAPIã¬ã€ãD2XXã