[Android] Teoria da comunicação serial e tutorial de uso

AndroidNos mais de dez anos desde o nascimento do sistema, Androida posição de engenheiro de desenvolvimento passou da prosperidade ao declínio. Atualmente, poucas empresas estão dispostas a gastar grandes somas de dinheiro para desenvolver aplicativos UI Android puros. As únicas empresas que desenvolvem APPs Android são jogos e Internet das Coisas (Internet das Coisas (IoT, abreviadamente) e outras direções. No mundo da Internet das Coisas, a comunicação serial é um método comum de comunicação com fio. Este artigo enfoca a Androidcomunicação serial para re-compreender a comunicação serial.

Introdução à comunicação serial

Comunicação serial ( ) é um método de comunicação no qual a porta serial envia e recebe bytes Serial Communicationsbit a bit ( ).bit

A porta serial é a principal interface para comunicação entre o dispositivo de controle de exibição e a placa de processamento de sinal.É também uma interface importante para a comunicação e transmissão de quadros de dados de protocolo entre o dispositivo de controle de exibição e outros dispositivos, e entre dispositivos.

Classificação de comunicação serial

De acordo com o método de comunicação, a comunicação serial pode ser dividida em 串行通信e 并行通信.

comunicação em série

Comunicação serial: Um método de comunicação no qual ambas as partes se comunicam pouco a pouco e respeitam o tempo.
Insira a descrição da imagem aqui

As comunicações seriais podem ser subdivididas em diferentes categorias com base em 数据同步方式, e novamente.数据传输方式电气标准及协议

Dividido de acordo com o método de sincronização de dados

  • Comunicação síncrona
    Comunicação síncrona: Uma comunicação transmite apenas um quadro de informação, geralmente contendo vários caracteres de dados. Os formatos de dados são orientados a caracteres e orientados a caracteres, respectivamente bit.
  • Comunicação assíncrona
    Comunicação assíncrona: Cada caractere usa um bit de início e um bit de parada como marcas de início e fim do caractere e é enviado e recebido um por um em unidades de caracteres. Ao transmitir dados de forma assíncrona, ambas as partes comunicantes devem concordar sobre: ​​formato de caracteres e taxa de comunicação.

De acordo com o método de transmissão de dados

  • Simplex
    Simplex: Entre as duas partes em comunicação, uma parte é fixada como remetente e a outra parte é fixada como receptor. As informações só podem ser transmitidas em uma direção, usando uma única linha de transmissão.
    Insira a descrição da imagem aqui
  • Half-
    duplex Half-duplex: A qualquer momento durante o processo de comunicação, informações podem ser transmitidas de A para B e de B para A, mas só pode haver transmissão em uma direção.
    Insira a descrição da imagem aqui
  • Full-
    duplex Full-duplex: A comunicação permite que os dados sejam transmitidos em ambas as direções simultaneamente, sendo equivalente em capacidade à combinação de dois métodos de comunicação simplex. Full duplex significa que os sinais podem ser transmitidos simultaneamente (instantaneamente) em ambas as direções (A→B e B→A). Significa A→B e B→A ao mesmo tempo, o que é sincronização instantânea.
    Insira a descrição da imagem aqui

Classificado de acordo com padrões e protocolos elétricos

As portas seriais são divididas de acordo com padrões e protocolos elétricos, incluindo EIA-RS-232C, , EIA-422, EIA-485etc.


  • RS-232CO nome completo do padrão (protocolo) EIA-RS-232C é o padrão, e a definição é " o padrão técnico para a interface serial de troca de dados binários entre EIA-RS-232Cequipamentos terminais de dados ( DTE) e equipamentos de comunicação de dados ( )". É um padrão para comunicação serial full-duplex desenvolvido em conjunto pela DCEElectronic Industries Association () e pela Bell System, fabricantes de modems e fabricantes de terminais de computador em 1970 . EIAPor exemplo, a interface PCna máquina é a interface.COM1COM2RS-232C

Veja mais detalhes: EIA-RS-232C

  • EIA-422
    EIA-422 (também conhecido como EIA RS-422-422) é uma série de protocolos de transmissão de dados que especifica comunicações de 4 fios, full-duplex, transmissão diferencial e multiponto. Ele usa transmissão balanceada usando linhas de transmissão unidirecionais/não reversíveis com ou sem extremidades habilitadas. A diferença EIA-485é que EIA-422não são permitidos vários remetentes, mas apenas vários destinatários. Em termos de configuração de hardware, EIA-422( RS-422) equivale a dois conjuntos de EIA-485( RS-485), ou seja, dois half-duplex EIA-485( RS-485) constituem um full-duplex RS-422( EIA-422).

Veja mais detalhes: EIA-422

  • EIA-485
    EIA-485 (anteriormente conhecido como RS-485OR RS485) é um padrão que especifica as características elétricas da camada física do modelo OSI para comunicações multiponto de linha de transmissão balanceada de 2 fios, half-duplex. É um padrão emitido em conjunto pela Telecommunications Industry Association ( TIA) e pela Electronic Industries Alliance ( ). EIAAs redes de comunicação digital que implementam este padrão podem comunicar-se de forma eficiente em longas distâncias em ambientes com ruído eletrônico. Em uma configuração de barramento multiponto linear, pode haver vários receptores em uma rede. Portanto é adequado para uso em ambientes industriais.

Veja mais detalhes: EIA-485

Comunicação paralela

Comunicação paralela: refere-se ao uso de byte ( byte) ou um múltiplo de byte ( byte) como unidade de transmissão e transmissão através de linhas paralelas ao mesmo tempo. Desta forma, a velocidade de transmissão de dados é bastante melhorada, mas o comprimento da linha de transmissão paralela é limitado. Como o comprimento aumenta, a interferência aumentará e os dados serão propensos a erros, portanto a comunicação paralela não é adequada para transmissão de dados de longa distância. Por exemplo: porta de impressora, porta IDE, etc.
Insira a descrição da imagem aqui

Gráfico resumindo a comunicação serial

Insira a descrição da imagem aqui

Uso de comunicação serial

Como Androiddesenvolvedor, não precisamos entender muitas coisas relacionadas à porta serial. Basicamente, só precisamos nos concentrar em como nos conectar à porta serial. Talvez apenas os engenheiros de desenvolvimento de hardware precisem entender os princípios da comunicação da porta serial e outros conhecimento relacionado.

Antes de utilizá-lo, acesse localmente Github cloneo projeto AndroidSerialPort e copie lib_serialporto módulo para o projeto.

Em seguida configure os parâmetros necessários para a conexão da porta serial:

  • Porta serial: A interface usada para o protocolo de comunicação serial.
  • Taxa de transmissão ( Baud rate): o número de símbolos transmitidos em uma unidade de tempo. Por exemplo, uma taxa de transmissão de 9.600 significa transmitir 9.600 bytes por segundo, ou 9,6 bytes por milissegundo.
  • Bits de dados: Um pacote de informações enviado por um computador, dependendo do comprimento da mensagem que está sendo transmitida.
  • Bit de verificação: também conhecido como bit de paridade, é um método de verificação para verificar a exatidão da transmissão do código.
  • Stop bit: Fornece uma oportunidade para corrigir a sincronização do relógio e é usado para indicar o fim da transmissão.
  • Controle de fluxo: controle o processo de transmissão de dados para obter correspondência de velocidade entre as partes remetente e receptora e evitar perda de dados. Os controles de fluxo comumente usados ​​são controle de fluxo de hardware e controle de fluxo de software. O controle de fluxo de hardware comumente usado inclui RTS/CTScontrole de fluxo (terminal de dados pronto/configuração de dados pronta) controle de fluxo e controle de fluxo de software comumente usado inclui XON/XOFF.
var mSerialPortHelper = SerialPortHelper()
// 配置串口号
mSerialPortHelper.port = ConfigManage.serialPort
// 配置波特率
mSerialPortHelper.baudRate = ConfigManage.baudRate.toInt()
// 配置数据位
mSerialPortHelper.dataBits = ConfigManage.dataBits.toInt()
// 配置校验位
mSerialPortHelper.parity = SerialPortDataManage.parity[ConfigManage.parity]!!.toInt()
// 配置停止位
mSerialPortHelper.stopBits = ConfigManage.stopBits.toInt()
// 配置流控
mSerialPortHelper.flowCon = SerialPortDataManage.flow_bits[ConfigManage.flowBits]!!.toInt()
// 监听串口数据的传输
mSerialPortHelper.setISerialPortDataListener(object : ISerialPortDataListener {
    
    
	override fun onDataReceived(bytes: ByteArray?) {
    
    
		byteToHex(1, bytes)
	}

	override fun onDataSend(bytes: ByteArray?) {
    
    
		byteToHex(0, bytes)
	}
})
// 打开串口
mSerialPortHelper.open()

efeito final:

Documento de referência
1. [Comunicação serial] Notas de estudo
2. Classificação dos métodos de comunicação (comunicação serial e comunicação paralela)

Acho que você gosta

Origin blog.csdn.net/baidu_41616022/article/details/130478138
Recomendado
Clasificación