Android
Nos mais de dez anos desde o nascimento do sistema,Android
a 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 aAndroid
comunicação serial para re-compreender a comunicação serial.
Índice
Introdução à comunicação serial
Comunicação serial ( ) é um método de comunicação no qual a porta serial envia e recebe bytes Serial Communications
bit 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.
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, respectivamentebit
. - 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.
- 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.
- 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.
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-485
etc.
RS-232C
O 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 entreEIA-RS-232C
equipamentos terminais de dados (DTE
) e equipamentos de comunicação de dados ( )". É um padrão para comunicação serial full-duplex desenvolvido em conjunto pelaDCE
Electronic Industries Association () e pela Bell System, fabricantes de modems e fabricantes de terminais de computador em 1970 .EIA
Por exemplo, a interfacePC
na máquina é a interface.COM1
COM2
RS-232C
Veja mais detalhes: EIA-RS-232C
- EIA-422
EIA-422
(também conhecido como EIARS-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çaEIA-485
é queEIA-422
nã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 deEIA-485
(RS-485
), ou seja, dois half-duplexEIA-485
(RS-485
) constituem um full-duplexRS-422
(EIA-422
).
Veja mais detalhes: EIA-422
- EIA-485
EIA-485
(anteriormente conhecido comoRS-485
ORRS485
) é 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 ( ).EIA
As 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.
Gráfico resumindo a comunicação serial
Uso de comunicação serial
Como
Android
desenvolvedor, 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 clone
o projeto AndroidSerialPort e copie lib_serialport
o 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/CTS
controle de fluxo (terminal de dados pronto/configuração de dados pronta) controle de fluxo e controle de fluxo de software comumente usado incluiXON/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:
![](https://img-blog.csdnimg.cn/dce69db60ad44057a98e1672a9716c78.jpeg)
![](https://img-blog.csdnimg.cn/0c14469c770d43b389d5f5e114ff7d59.gif)
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)