Pergunta

Em toda a honestidade, eu acho que a resposta é "não"; no entanto, gostaria de obter uma segunda opinião. Basicamente, eu preciso de um dispositivo micro-controlador para enviar um sinal constante para outro, mas a comunicação entre eles está usando RS232. Então eu acho que eu tenho que criar / atualizar as mensagens de comunicação para obtê-lo para fazer o que eu quero.

O que você acha?

Foi útil?

Solução

Você deve ser capaz de definir algo como DTR (Data Terminal Ready), pin 20, ou DSR (Data Set Ready), 6 pinos, alta e mantê-lo lá como seu sinal de steady-state. Isto é como modems / terminais detectar que existe um dispositivo na outra extremidade que está pronto para se comunicar. Tudo depende de qual o nível de acesso que você tem para o hardware através de seu motorista.

[EDIT] Isso não envolve o envio de dados, embora você ainda pode fazer isso usando TX / RX, pinos 2 & 3.

RS-232 referência na wikipedia

Outras dicas

Você quer dizer uma voltagem fixa? Não uma onda quadrada? (A letra L) Que tal um comando de pausa (se você quiser chamá-lo um comando)?

Certamente você pode usar uma das linhas de controle se isso ajuda ... Ou especificamente à procura de algo fora do TX?

Se a pergunta é "eu posso alterar o estado DC da linha Tx", então a resposta é que muitos UARTs (incluindo os de PCs) pode ser solicitado a criar uma condição de 'break', que é o oposto de a condição ociosa normal da linha.

Então você pode virar 'break' on e off e alternar a linha assim.

Pode ser possível fazer algo assim, desde que você não se importa uma explosão semelhante a interface. Um micro poderia transmitir um byte e o outro poderia fazer alguma coisa para que bytes e enviá-lo como uma resposta.

Se você pode controlar ambas as extremidades da linha, você pode ser capaz de transformar o tx RS-232 e linhas de rx em linhas lógicas regulares para dar essa informação.

Na maioria das situações, no entanto, cada extremidade envia periodicamente um byte de informação de status que contém 8 valores possíveis digitais -. Dá muito mais informações sobre o status

Um temporizador no fim de recepção é sempre que redefinir uma mensagem é recebida, e se o temporizador expirar, em seguida, a mensagem tem tomado muito tempo e yo pode agir sobre faltando mensagem de status.

Como outros apontaram, se você estiver usando o controle de fluxo de hardware você tem algumas linhas de status disponíveis, bem como, embora em muitos casos essas linhas não são implementadas de modo que pode não ser uma opção.

-Adam

sinal constante poderia dizer:

  • explosão constante de charaters: manter o send buffer cheio
  • linha de alta detidos ou baixo: não envia nada ou enviar quebras contínuas

Enquanto a primeira resposta está correta, pode não ser possível usar esta técnica (usando DTR ou DSR) em muitas micro controladores como eles podem não ter esses sinais (muitas micro controladores pode apenas ter o RX básico / linhas TX e você que muitas vezes tem que usar outras portas I / o, se você queria / linhas de status de controle extra. no entanto, nem tudo está perdido, muitos controladores RS232 permitem que você defina a linha TX para 'marca' ou 'espaço' (ou seja, definir a linha TX para lógico alto ou baixo). Isso permitiria que você obtenha o seu sinal de estado estacionário. a linha de RX no receptor podem ser verificados para ver se o seu na marca ou espaço nível.

scroll top