前些日子有朋友問我關於 USB-CDC 與 USB-TMC (USB Test & Measurement Class) 之間差異的問題,在此彙整重點:
Arduino 所用的 USB 是 USB-CDC, 它會在電腦上虛擬出 COM port,當同一 USB-CDC 裝置插在不同 USB 孔時,電腦會改變 COM port 來對應,同時你的應用程式也需要同時變更對應的 COM port 才能連上。
但是 USB-TMC 不是這樣,例如 LEGO NXT/EV3 是屬於 USB-TMC,其特色是
同一 USB-TMC 裝置,插入不同 USB 孔時,電腦仍會對應同一組 VISA 位址 (Virtual Instrument Software Architecture),因此程式控制,只要設定一次就可以,不必再修改程式碼。這就是為什麼 USB-TMC 被發明的原因。
關於裝置是用 USB-CDC 還是 USB-TMC 來通訊,這是由 USB 通訊晶片來控制,USB-TMC 目前沒有現成的市售晶片,因為 VISA 會內含裝置獨一的序號,因此 USB-TMC 通訊晶片的韌體都是產品製造商自己設計。
沒有留言:
張貼留言