Developers guide:Low level API
Trezor communicates using a simple request-response model. Messages are exchanged always in a purely synchronous fashion over USB HID. These messages are serialized into binary format using Protocol Buffers.
The SatoshiLabs Vendor ID is
0x534c and Trezor's Device ID
If you've never worked with HID devices before, it may be helpful to take a look at Python implementation or Java implementation which establish a connection to Trezor and reads and write to the device.
Protobuf message definitions are stored in the trezor-common repository.
Message ordering in the Trezor protobuf protocol is significant. You will find a list of standard workflows bellow: