Membro VIP
QT251 (16 portas seriais, 4 portas de rede)
O QT251N é um computador embutido com MPU de 32 bits de alto desempenho baseado na arquitetura RISC.
Detalhes do produto
QT251 Especificações do produto
I. Visão geral do produto
O QT251N é um computador embutido com MPU de 32 bits de alto desempenho baseado na arquitetura RISC. A CPU é um chip hierárquico de sistema com o ARMCortex-A8 como núcleo, co-processamento de fluxo de maioria de comando único (SIMD) NEON incorporado, cache de 256KBL2 com código de correção de erros (ECC) e suporte a frequências até 1GHz. O sistema fornece comunicação RS458 / RS232, comunicação de rede com fio, ônibus CAN, mas também fornece comunicação GPRS sem fio opcional, com pequeno tamanho, baixo consumo de energia, alta eficiência e outras características. HMI、 Controle industrial, gateways e outras ocasiões.
Características do produto
Características do hardware
AM355xCPU:
Arquitetura 32bitARMCorte-A8, frequência principal 800MHz, 1.6MIPS / MHz, frequência principal máxima 1GHz
32KBI-cache, 32KBD-cache, coprocessador NeonSIMD
Memória:
512MbyteDDR3, 64KB de RAM dedicada
Flash:
512MbyteNANDFlash, Suporte máximo de 8Gbyte
Suporte para NAND, NOR, SRAM e Flash
Criptografia:
Criptografia PRNG/DES/3DES/AES/SHA/HMAC com até 256 bits
Cão de guarda:
WDT incorporado, tempo de desbordamento inferior a 60 segundos, suporte para despertar em tempo livre e despertar desligado
RTC:
Relógio em tempo real de alta precisão com bateria integrada
Porta de depuração:
A porta serial 1 é a porta do console do sistema. Taxa de transmissão: 115200, bits de dados: 8, bits de parada: 1, bits de verificação: nenhum, controle de fluxo: nenhum
RS485 e RS232:
Comunicação RS485 independente de 8 canais, design de proteção totalmente isolado interno
Comunicação multiplex de 8 canais RS485 / RS232, pode ser usada de acordo com a escolha prática, design de proteção totalmente isolado interno
Número B correto:
1 via de recepção RS485, dedicada ao emparelhamento de código B, automaticamente após a conexão
Pode:
Comunicação CAN 1 via, design de proteção de isolamento incorporado
Entrada de saída de interruptor:
2 saídas de relé de lançamento duplo
2 entradas de interruptor
Rede:
4 vias 10M / 100M Ethernet industrial adaptável, interface RJ45 padrão
Proteção 15KVTVS, design de proteção totalmente isolado interno
Função sem fio (opcional):
Banda de RF 800/900/1800/1900MHz (opcional 2/3/4G)
WIFI opcional: pode ser AP ou AP
1 interface de cartão SIM, 1 interface de antena
Velocidade de transmissão: velocidade padrão para a função correspondente
Cartão SDCARD:
Uma interface de cartão SD/MMC incorporada
Alimentação:
Tensão de entrada: 220V, suporte AC, DC
Consumo de potência: <12W
Características mecânicas
Materiais metálicos da carcaça
Tamanho: 1U
Classe de proteção: IP63
Ambiente de trabalho
Temperatura de funcionamento: -40 ℃ ~ + 85 ℃
Umidade de trabalho: 5% ~ 95%
Características do software
2.1 Características do sistema
O QT251N é pré-instalado com o sistema operacional Linux baseado no TIAM335x, versão 3.2.0. Aplicativos que atendam aos padrões POSIX ou plataformas semelhantes a UNIX. Para dispositivos de hardware específicos do sistema, o kernel fornece uma interface de driver simples e fácil de usar que acelera o desenvolvimento de aplicativos do usuário.
O sistema de software do QT251N é dividido em 3 partes: Bootloader, kernel Linux e
rootfs。 Bootloader é um projeto de código aberto que segue os termos da GPL, UBoot é principalmente inicialização do kernel, suporte a montagem NFS, inicialização NANDFlash; O kernel Linux é a camada mais baixa de todo o sistema operacional, responsável pelo driver de todo o hardware e por fornecer as funções essenciais necessárias para vários sistemas; rootfs é um método usado para determinar a estrutura de dados e arquivos em um disco ou partição, ou seja, um método para organizar arquivos em um disco.
2.2 Configuração ambiental
O sistema de máquinas virtuais Ubuntu 10.04 é compilável para uso direto. Nome de usuário: work
Senha: 123456
编译命令: arm-linux-gnueabihf-gcc-ofilenamenome do arquivo. (c)
Cadeia de compilação: arm-linux-gnueabihf-4.7.tar.gz fornecido pela nossa empresa
No ambiente de compilação não fornecido pela empresa, copie a cadeia de compilação para o sistema Linux do PC, depois de descomprimir a cadeia de compilação, adicione o diretório bin no diretório raiz à variável de ambiente do sistema.
Se você descomprimir para o diretório /opt/arm-linux-gnu, adicione variáveis de ambiente como:
exportPATH=$PATH:/opt/arm-linux-gnu/bin
Endereço de download da cadeia de compilação:
https://pan.baidu.com/s/1nv19D1Z#list/path=%2FWORK%2FCortex A8
2.3 Login do gerenciador
IP: eth0: 192.168.1.177eth1: 192.168.2.177eth2: 192.168.3.177eth3: 192.168.4.177
Nome de usuário: root Senha: root
Definição da interface
1. Interface de alimentação
Interface RS485
Nota: Os canais 9 a 16 do RS485 e os canais 9 a 16 do RS232 são canais múltiplos.
Interface RS232 e CAN
Nota: Os canais 9 a 16 do RS232 e os canais 9 a 16 do RS485 são canais múltiplos. A interface do controlador correspondente é a mesma e é um canal de repartição de tempo.
4. Entrada de saída de interruptor
Nota: A saída do relé é um interruptor de dupla lâmina, como mostrado abaixo:
5. Interfaces de rede
6. Interface de depuração
Configuração da porta de depuração: taxa de portagem: 115200, bits de dados: 8, bit de parada: 1, bit de verificação: nenhum, controle de fluxo: nenhum
Interface de driver RS485/RS232
A interface do driver pode ser visualizada no diretório /dev do gerenciador.
IV. Exemplos de condução
Existem os arquivos de script correspondentes no diretório /programa do sistema, que permitem realizar alguns testes simples. Assim, certifique-se de que o mapeamento da porta no arquivo startup.sh é correto. O conteúdo do documento está no anexo.
Anexo:
Conteúdo do arquivo startup.sh:
#!/bin/sh
ln-sf/dev/ttyCH0/dev/ttyS1
ln-sf/dev/ttyCH1/dev/ttyS2 (em inglês)
ln-sf/dev/ttyCH2/dev/ttyS3 (em inglês)
ln-sf/dev/ttyCH3/dev/ttyS4 (em inglês)
ln-sf/dev/ttyCH4/dev/ttyS5 (em inglês)
ln-sf/dev/ttyCH5/dev/ttyS6 (em inglês)
ln-sf/dev/ttyCH6/dev/ttyS7
ln-sf/dev/ttyCH7/dev/ttyS8
ln-sf/dev/ttyCH8/dev/ttyS9
ln-sf/dev/ttyCH9/dev/ttyS10
ln-sf/dev/ttyCH10/dev/ttyS11
ln-sf/dev/ttyCH11/dev/ttyS12
ln-sf/dev/ttyCH12/dev/ttyS13
ln-sf/dev/ttyCH13/dev/ttyS14
ln-sf/dev/ttyCH14/dev/ttyS15
ln-sf/dev/ttyCH15/dev/ttyS16
ln-sf/dev/ttyO1/dev/ttyS17
iplinksetcan0typecanbitrate100000
ifconfigcan0up (em inglês)
Conteúdo do arquivo serial.c:
#Incluir#Incluir
#Incluir
#Incluir
#Incluir
#Incluir
#Incluir
#Incluir
#definemax_buffer_size100/*tamanho do buffer*/
/*************************************/intfd1;
inteflag_close;
intopen_serial(intk,int*fd)
{
intsfd=-1; charstr[100];
sprintf(str,"/dev/ttyS%d",k); printf("open%s/n",str);
sfd=open(str,O_RDWR|O_NOCTTY|O_NONBLOCK); se(sfd==-1){
perror(str); retorno-1;
}
outro{
*fd=sfd; retorno0;
}
}
/**************************************************************/intmain(intargc,char*argv[])
{
time_ttAgora, tVelho; importação;
char
sbuf[]={"12345678901234567890123456789012345678901234567890/n"}; /* Fixo
Dados enviados*/
charsbufrec[256]={0};
intsfd,retv,i,ncount=0,mcount=0; estruturatermiosopto;
intlength=sizeof(sbuf);
/*****************************************************************
**/
se(argc<2)
{
printf("inputerro:serial<1~4>/n"); retorno0;
}
**/
/
**/
port=atoi(argv[1]); open_serial(porta, &fd1);
/*****************************************************************
printf("readyforsendingdata.../n"); tcgetattr(fd1,&opt); cfmakeraw(&optar);
/*****************************************************************
cfsetispeed(&opt,B9600); /*Defina a taxa de bitrate para 9600bps*/cfsetospeed(&opt,B9600);
/*************************************************** tcsetattr(fd1, TCSANOW, &opt);
enquanto(mcount<5)
{
retv=write(fd1,sbuf,length); /*Enviar dados*/if(retv==-1){
//perror("escrever"); printf("erro de escrita/n");
}
outro{
printf("thenumberofcharsentis%d/n",retv);
}
contagem=0;
printf("readyforreceivingdata.../n");
tempo (&tOld); tAgora=tVelho; contagem=0;
while((tNow-tOld)<2))/*Configurar o tempo limite de recepção*/
{
tempo (&tNow); retv=read(fd2,&sbufrec[0],1); se(retv==-1){
//perror("ler");
//printf("erroread/n");
//printf("tVelho=%d;tAgora=%d/n",tVelho,tAgora);
}
outro{
printf("%02x",sbufrec[0]); contagem+=1;
}
}
mcount+=1; printf("/n");
}
flag_close=close(fd1);
if(flag_close==-1)/*关闭口端口*/printf("ClosetheDevice1failur!/n");
retorno0;
}
Inquérito em linha
