串行通信协议μFR每配置序列μFR
我的气质,我的气质,我的意涵,μFR所有的稳定的,una通信,azione tramite la porta COM虚拟di FTDIvisti来硬件标准della porta COM。
参数di communicazione#
介面系列FTDI#
Lettori μFR Classic e μFR Advance con connessione USB:
康unicazione系列:1mbps, 8-N-1, Controllo di flusso: Nessuno;
这是一种重新分配的手段。Quando l'RTS è冒名顶替,il dispositivo è在uno stato di ripristino。Quando l'RTS è chiaro, il dispositivo è在uno stato normal。
Lettori μFR BaseHD con固件“μFR support”安装。字母XR e μFR XRc):
Comunicazione系列(utilizzando驱动VCOM FTDI): 250kbps, 8-N-1, Controllo di flusso: Nessuno;
Lettori senza接口系列FTDI#
RS485 (conessione senza转换器USB/RS-485):
Il波特率变量può essere impostato tramite uno strumento软件。波特率基本不需要修改波特率。La velocità在波特预定义è 250 kbps。
μFR Classic Nano RS232 e formato scheda RS232:
UART / TTL: 115200bps, 8-N-1,控冲:Nessuno。
115200 BPS è il波特率预定义。Il波特率变量può essere impostato tramite lo strumento软件。
Il PIN 4 sul connecttore vienenutilization per reimpostare Il dispositivo。Se la tensione su questo pin è alta (3,3 V), il dispositivo è nello stato di ripristino。Se la tensione è bassa (0 V), il dispositivo è在uno statto di funzionamento normale。
Se il dispositivo è collegato al nostro convertitore da RS232 a TTL, il livello di tensione sul pin 4 control su RTS。Quando l'RTS è chiaro, il dispositivo è in uno stato di ripristino。Quando l'RTS è冒充者,il dispositivo è在uno statto normal。
Durante l' aggiadorento del firmware, il pin RTS deve essere collegato al pin 4 del dispositivo。
La piedinatura per il modello UART / TTL è presentata di seguito:
Ai fini della communicazione tra i disposipositivi di lettura e il PC主机,viene creato il protocollo proprietario di D-Logic chiamato“串行μFR”。
Tutte le communicazioni vengono avviate dall'host (PC o altre piattaforme) a cui è collegato il dispositivo。
Il numero massimo di dati trasferiti da unsingolo comando o ricevuti da una risposta del dispositivo,达拉版本固件3.9.44 è di 256字节e prima è di 192字节。
将军,ci sono due tipi di pacchetti:
- CMD-我可以向你请示
- 答-邀请所有的主人
CMD può essere un set corto o lungo。Il set breve CMD è sempre lungo 7字节mentre Il set lungo CMD - chiamato CMD_EXT può avere una lunghezza变量。
Le risposte sono
- 消- Riconoscimento, tutto è OK, il dispositivo è in attesa del prosimo CMD o CMD EXT
- 犯错- Si è verificato un error, il byte di error definisce ERR_TYPE
- 负责- Risposta dal dispositivo su CMD o CMD_EXT
字节di costanti di communicazione definiscono il tipo di packet, che può essere visualizzato nei primi Byte di ciascun packet。
Il primo byte di ogni packet to è Il byte HEADER。Il secondo字节è sempre CMD_CODE。Il terzo byte è Il byte TRAILER。
Tabella1。Costanti di comunicazione
CMD_HEADER | 0 x55 | CMD_TRAILER | 0 xaa |
ACK_HEADER | 0 xac | ACK_TRAILER | 0 xca |
RESPONSE_HEADER | 0 xde | RESPONSE_TRAILER | 0中 |
ERR_HEADER | 0 xec | ERR_TRAILER | 0 xce |
校验和#
Tutti i checksum in questo documento sono calcolati nello stesso modo: una riga di byte viene utilizzata per il calcolo del checksum, ogni byte è XOR-ed con quello successivo fino真主安拉fine della riga。价值的终结与增量的失败0x07。
Ad esempio, un packet to CMD ha 7字节,dove il settimo字节è il checksum dei 6字节前例:
CHECKSUM = (Byte1 XOR Byte2 XOR Byte3 XOR Byte4 XOR Byte5 XOR Byte6) + 0x07
Codici CMD#
我是指挥官,我是指挥官,我是指挥官,我是指挥官。
Codici di error#
Se si verifica unerror, il dispositivo risponderà con il packet ERR。Ogni error ha il suo valore corrispondente che può在附录中:CODICI DI error。
Pacchetto CMD#
Il数据包CMD può essere breve - 7字节di lunghezza o ext结束的con lunghezza变量。Nel caso del packet to EXT CMD, il quarto byte del packet to CMD è maggiore di 0, content il valore intero lunghezza del packet to CMD_EXT。Quando si emettono CMD_EXT, il packet to cmD principale lungo 7字节va per primo。Se tutto come previsto, il dispositivo risponderà con il packet to ACK, in attesa del packet to CMD_EXT。In caso di error, il dispositivo risponderà con il packet ERR。CMD_EXT è costituito da vari parametri diversi, a seconda del tipo di comando, quindi CMD_EXT non ha una lunghezza e un ordine fissi di parametri。
Il pacchetto CMD ha la seguente structura:
Il pacchetto CMD ha la seguente structura:
义务结构dei pacchetti CMD一个7字节 |
||||||
---|---|---|---|---|---|---|
1字节 | 2字节 | 3字节 | 4字节 | 5字节 | 6字节 | 7字节 |
CMD_HEADER | CMD_CODE | CMD_TRAILER | CMD_EXT_Length | CMD_Par0 | CMD_Par1 | 校验和 |
- 1字节: CMD_HEADER在表1中定义。Costanti di commununicazione, 0x55
- 2字节: CMD_CODE在表2中定义。CMD_CODE valori
- 3字节: CMD_TRAILER在表1中定义。Costanti di communicazione, 0xAA
- 4字节: CMD_EXT_Length: Se 0 allora il "CMD EXT" non viene utilitzzato);Il valore ELSE è la lunghezza dell'intero pacchetto CMD_EXT
- 5字节: CMD_Par0:参数di comando0,假设valori diversi a second da del comando
- 6字节: CMD_Par1:参数di comando1,假设valori diversi a second da del comando
- 7字节: CHECKSUM -校验和di字节da 1 a 6 come spiegato sopra
CMD_EXT pacchetto ha la seguente struttura:
CMD_EXT pacchetto ha la seguente struttura:
CMD_EXT structua dei pacchetti | |||
1字节 | ... | 字节N | 字节N + 1 |
字节di参数da 1 a N | CMD_EXT_CHECKSUM |
参数字节达1 a N -参数多样性,我的价值,dipendono dal tipo di comando
- CMD_EXT_CHECKSUM -校验和di byte da 1 a N
- CMD_EXT_Length è il numero di tutti i byte, inclusi CMD_EXT_CHECKSUM;ad esempio la lunghezza è N + 1
Tipi di pacchetti回答#
Il dispositivo può rispondere con i seguenti tipi di pacchetti:
ACK -科学程序包
Se il comando e il packet CMD sono configurati correttamente(结构校验和)e deve essere inviato un packet to CMD_EXT aggiuntivo, il dispositivo risponderà con un packet to ACK。
ERR -错误包
Se si è verificato un error, il dispositivo risponderà con il packet to ERR。我有权利归还我的财产。在tal caso, il packet to ERR_EXT viene immediatamente dopo il packet to ERR。
RSP - risposta包
Se viene inviato unpacchetto CMD o CMD_EXT correttamente configurato, il dispositivo risponderà con RSP o RSP_EXT pacchetto, che dipenda dal comando emesso。Ad esempio, se CMD ha bisogno di una risposta abbastanza breve per il packet RSP, non ci sarà alcun pacchetto RSP_EXT。Altrimenti, se CMD o CMD_EXT ha bisogno di una risposta con più byte, RSP_EXT arriverà immediatamente dopo il paccheetto RSP。Una sitazione communune è quando si leggono i dati con il comando LinearRead, in cui il dispositivo risponderà con Una riga di byte di dati della scheda。
ACK -科学程序包#
Il pacchetto ACK ha la seguente structura:
Il pacchetto ACK ha la seguente structura:
ACP |
||||||
1字节 | 2字节 | 3字节 | 4字节 | 5字节 | 6字节 | 7字节 |
ACK_HEADER | CMD_CODE | CMD_TRAILER | 无关联,不使用ACK数据包 | 校验和 |
- 1字节: ACK_HEADER在表1中定义。Costanti di commununicazione, 0x55
- 2字节: CMD_CODE在表2中定义。CMD_CODE valori。设备承认有先机è有先机
- 3字节: ACK_HEADER在表1中定义。Costanti di commununicazione, 0x55
- 4字节:字节5,字节6:非使用ACK包,从值校验0x00
- 7字节: CHECKSUM -校验和di字节da 1 a 6 come spiegato sopra
ERR -数据包错误#
Il pacchetto ERR ha la seguente structura:
ERR obbligatorio 7字节 |
||||||
1字节 | 2字节 | 3字节 | 4字节 | 5字节 | 6字节 | 7字节 |
ERR_HEADER | ERROR_CODE | ERR_TRAILER | ERR_EXT_Length | Err_Val0 | Err_Val1 | 校验和 |
- 1字节: ERR_HEADER来定义表1。Costanti di communicazione, 0xEC
- 2字节: ERR_CODE在表3中定义。Codici di error。
- 3字节: ERR_TRAILER来定义表1。Costanti di communicazione, 0xCE
- 4字节: se esiste ERR_EXT, questo byte contiene la lunghezza del paccheetto ERR_EXT (incluso ERR_EXT checksum)
- 5字节: ERR_Val0中可能的信息和关联的错误所有
- 6字节: ERR_Val1中可能存在的信息关联的所有错误
- 7字节: CHECKSUM -校验和di字节da 1 a 6 come spiegato sopra
ERR_EXT e ha la seguente structura:
ERR_EXT strucuttura dei pacchetti | |||
1字节 | .. | 字节N | 字节N + 1 |
字节di错误da 1 a N | ERR_EXT_CHECKSUM |
- 字节1:Primo字节di ERR_EXT
- ...
- Byte N: N-ennesimo Byte di ERR_EXT
- 字节N+1: ERR_EXT_CHECKSUM, checksum di Byte da 1 a N, calcolato come spiegato in preverenza。
RSP - risposta包#
Il pacchetto RSP ha la seguente structura:
RSP obbligatorio 7字节 |
||||||
1字节 | 2字节 | 3字节 | 4字节 | 5字节 | 6字节 | 7字节 |
RSP_HEADER | CMD_CODE | RSP_TRAILER | RSP_EX_length | RSP_Val0 | RSP_Val1 | 校验和 |
- 1字节: RSP_HEADER在表1中定义。Costanti di comunicazione, 0xED
- 2字节: CMD_CODE在表2中定义。CMD_CODE valori
- 3字节: ERR_TRAILER来定义表1。Costanti di communicazione, 0xDE
- 4字节: se esiste RSP_EXT, questo byte contiene la lunghezza del paccheetto RSP_EXT (incluso RSP_EXT checksum)
- 5字节:在RSP_Val0中,信息的可能和响应的所有不确定
- 6字节: RSP_Val1中信息的可能和响应的所有必须确定
- 7字节: CHECKSUM -校验和dei字节da 1 a 6 come spiegato sopra。
T
RSP_EXT structua dei pacchetti | |||
1字节 | .. | 字节N | 字节N + 1 |
字节RSP da 1 a N | RSP_EXT_CHECKSUM |
- 字节1:Primo字节di RSP_EXT
- ...
- 字节N: N-ennesimo Byte di RSP_EXT
- 字节N+1: RSP_EXT_CHECKSUM, checksum di Byte da 1 a N, calcolato come spiegato in preverenza。