Victor Vision LTDA Protocolo Serial DGUS Versão 2.1 23/04/2015 Victor Vision LTDA 1 Introdução O protocolo nativo DGUS é composto por 5 comandos: 0x80: Escrita nos registradores DGUS 0x81: Leitura dos registradores DGUS 0x82: Escrita no espaço de variáveis (RAM) 0x83: Leitura do espaço de variáveis (RAM) 0x84: Escrita no buffer de curvas O formato geral é dado por: {FrameHeader}{FrameHeader}{Quantidade de bytes}{Comando}[{Dados}...] O cabeçalho (FrameHeader) pode ser definido livremente, sendo o valor padrão preferível 5AA5. A quatidade de bytes é contada a partir (inclusive) do byte de Comando. A tabela 4.1 DGUS Register, documento “Guida de Desenvolvimento”, acessível em http://www.victorvision.com.br/index.php/suporte/documentacao, lista todos os registradores de controle DGUS. A transferência de dados entre a memória FLASH (não volátil) e a memória RAM (volátil) é obtida através da manipulação dos registradores DGUS. Nos firmwares DGUS, é possível ler e escrever dados entre quaisquer posições nas memórias RAM e FLASH. Nos firmwares MiniDGUS, apenas a posição 120 (0x78) é acessível, e só é possível copiar a RAM inteira para a FLASH, embora seja possível ler endereços aleatórios da FLASH para a RAM. Notação utilizada neste documento: {__}: Um byte. [__]: Conjunto de valores opcionais. Rafael Moura 23/04/2015 1 Victor Vision LTDA 2 Comandos para Registradores de Controle DGUS 2.1 Escrita - Comando 0x80 Formato: 5AA5 {XX}80 {RG} {VL1} [{VL2} {VL3} ...] Argumentos: {XX}: Número de bytes (sem contar 5AA5 XX) {RG}: Endereço do Registrador {VLx}: Valor transmitido Exemplo: Alterar PIC_ID para tela 10: Comando: 5AA5 0480 03 000A Registradores PIC_ID = 0x03:0x04 (2 bytes) Valores enviados = 0x00:0x0A 2.2 Leitura - Comando 0x81 Formato: 5AA5 {XX}81 {RG} {LEN} Argumentos: {XX}: Número de bytes (sem contar 5AA5 XX) {RG}: Endereço do Registrador (1 Byte) {LEN}: Número de bytes a serem lidos (1 Byte) Resposta: 5AA5 {XX}81 {RG} {LEN} {VL1} [{VL2} {VL3} ...] Exemplo: Leitura do PIC_ID: Comando: 5AA5 0381 03 02 Resposta da IHM: 5AA5 0581 03 02 000A Registrador inicial = 0x03 Registradores lidos = 0x02 Tela atual = 0x00:0x0A Rafael Moura 23/04/2015 2 Victor Vision LTDA 3 Comandos para RAM 3.1 Escrita - Comando 0x82 Formato: 5AA5 {XX}82 {VP}{VP} {VL1}{VL1} [{VL2}{VL2} {VL3}{VL3} ...] Argumentos: {XX}: Número de bytes (sem contar 5AA5 XX) {VP}{VP}: Endereço na RAM {VLx}{VLx}: Valor transmitido Exemplo: Escrever 0x0001 no VP 0x0018: Comando: 5AA5 0582 0018 0001 3.2 Leitura - Comando 0x83 Formato: 5AA5 {XX}83 {VP}{VP} {LEN} Argumentos: {XX}: Número de bytes (sem contar 5AA5 XX) {VP}{VP}: Endereço na RAM {LEN}: Número de words a serem lidas Resposta: 5AA5 XX83 {VP}{VP} {LEN} {VL1}{VL1} [{VL2}{VL2} {VL3}{VL3} ...] Exemplo: Ler VP 0x0018: Comando: 5AA5 0483 0018 01 Resposta da IHM: 5AA5 0683 0018 01 0001 Rafael Moura 23/04/2015 3 Victor Vision LTDA 4 Transferência de dados na memória FLASH (DGUS) Obs.: Recomenda-se aguardar pelo menos 200 ms antes de realizar outras operações no display. 4.1 Comando de escrita na FLASH: RAM FLASH Formato: 5AA5 0C8040 5A50 {ID} {XX}{XX}{XX} {VP}{VP} {LEN}{LEN} Argumentos: {ID}: Lib_ID (Página da FLASH, de 0x40 a 0x7F) {XX}{XX}{XX}: Endereço na FLASH {VP}{VP}: Endereço na SRAM {LEN}{LEN}: Número de words a serem transferidas Exemplo: Copiar dados da RAM para a Flash: Comando: 5AA5 0C8040 5A50 4000 0230 0230 0030 Endereço inicial na RAM: 0x0230 Comprimento dos dados: 48 (0x0030) Endereço inicial na Flash: 0x0230 4.2 Comando de leitura da FLASH: FLASH SRAM Formato: 5AA5 0C8040 5AA0 {ID} {XX}{XX}{XX} {VP}{VP} {LEN}{LEN} Argumentos: {ID}: Lib_ID (Página da FLASH, de 0x40 a 0x7F) {XX}{XX}{XX}: Endereço na FLASH {VP}{VP}: Endereço na SRAM {LEN}{LEN}: Número de words a serem transferidas Exemplo: Copiar dados da FLASH para a RAM: Comando: 5AA5 0C8040 5AA0 4000 0230 0230 0030 Endereço inicial na RAM: 0x0230 Comprimento dos dados: 48 (0x0030) Endereço inicial na Flash: 0x0230 Rafael Moura 23/04/2015 4 Victor Vision LTDA 5 Transferência de dados na memória FLASH (MiniDGUS) Obs.: Recomenda-se aguardar pelo menos 200 ms antes de realizar outras operações no display. 5.1 Comando de escrita na Flash: RAM FLASH Copia toda a RAM (2048 VPs) para a posição 0x78 (120) da FLASH. Comando: 5AA5 058040 5A50 78 5.2 Comando de leitura da Flash: FLASH SRAM Formato: 5AA5 0C8040 5AA0 7800 {XX}{XX} {VP}{VP} {LEN}{LEN} Argumentos: {XX}{XX}: Endereço na FLASH {VP}{VP}: Endereço na RAM {LEN}{LEN}: Número de words a serem transferidas Exemplo: Copiar dados da FLASH para a RAM: Comando: 5AA5 0C8040 5AA0 7800 0230 0230 0030 Endereço inicial na RAM: 0x0230 Comprimento dos dados: 48 (0x0030) Endereço inicial na Flash: 0x0230 Rafael Moura 23/04/2015 5 Victor Vision LTDA 6 Comandos para curva (Trend Curve Display) O firmware DGUS possui um buffer de 8 canais para traçado de curvas, enquanto que o firmware MiniDGUS possui 2 canais. 6.1 Escrita de valores na curva – 0x84 Os dados podem ser enviados para uma ou mais curvas simultaneamente, um ou mais pontos por vez. Formato: 5AA5 {XX}84 {Canal} {VL}{VL} [{VL}{VL} ...} Argumentos: {XX}: Número de bytes (sem contar 5AA5 XX) {Canal}: Curvas que receberão os dados, segundo a tabela a seguir {VL}{VL}: Valores enviados Canal Representação binária Representação hexadecimal 0 00000001 0x01 1 00000010 0x02 2 00000100 0x04 3 00001000 0x08 4 00010000 0x10 5 00100000 0x20 6 01000000 0x40 7 10000000 0x80 O parâmetro {Canal} é calculado pela soma das curvas desejadas. Os valores são enviados sequencialmente para cada canal, um ou mais pontos por envio. Exemplo – Enviar 4 valores para o canal 1 e 4 valores para o canal 4, simultaneamente: 5AA5 1284 12 0032 0072 009F 0004 0017 0036 0093 001A Número de bytes = 0x12 Canais = 0x12 (Canais 1 e Canal 4: 0x02 + 0x10 = 0x012) 6.2 Apagar curvas Formato: 5AA5 0380 EB {0x55+Canal} Argumentos: {0x55 + Canal}: 0x55 mais soma das curvas a serem apagadas. 0x55 apaga todas as curvas. Rafael Moura 23/04/2015 6