Comunicando-se com uma impressora

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Comunicando-se com uma impressora

Mensagempor alessandro » 29 Jan 2009 12:50

Pessoal, precisava disponibilizar uma saída paralela para comunicação com uma impressora matricial para a impressão de realtórios.

Alguém sabe onde encontrar material a respeito do protocolo usado para se comunicar com uma impressora?

Estou procurando mas o que ando encontrando é somente algumas API para se usar no windows.

Alessandro
Alessandro
Avatar do usuário
alessandro
Byte
 
Mensagens: 278
Registrado em: 12 Out 2006 19:32

Mensagempor guest2003 » 29 Jan 2009 13:00

Pelo que sei é só mandar o caracter ASC e ir bimbando o strobe...

Ai varia de impressora pra impressora as sequencias de ESC... que sao comandos para modo grafico / expandido / comprimido / etc...

Mas se quer so escrever normal mesmo... manda o ASCII + strobe (pino 1 se nao me engano)

Ai CR+LF no fim da linha e tals...

eh isso...

[]'s
http://www.sethi.com.br (Institucional)
http://www.sethi3d.com.br (Impressoras 3d)
http://www.sethi.com.br/blog (Blog Impressoras 3d)
Avatar do usuário
guest2003
Word
 
Mensagens: 746
Registrado em: 13 Out 2006 11:48
Localização: Campinas - SP

Mensagempor alessandro » 29 Jan 2009 13:35

Ok, Guest, vou tentar fazer isso.

Valeu.


Alessandro
Alessandro
Avatar do usuário
alessandro
Byte
 
Mensagens: 278
Registrado em: 12 Out 2006 19:32

Mensagempor tcpipchip » 29 Jan 2009 14:26

Isto mesmo...confirmei no livro PARALLEL PC PORT da JAN AXELSON!
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor Wagner de Queiroz » 29 Jan 2009 14:43

Bom, porta paralela é simples de usar.

O pino Strobe é ativo em nivel baixo. Coloque o caractere ASCII que vai enviar em D0 a D7.

Pulse Strobe por no minimo 500uS e veja se temos em ACK ou BUSY um sinal. Se tivermos o ACK o caractere foi recebido pela impressora.

Se tivermos o BUSY, significa que o bufffer da impressora esta cheio e devemos esperar o ACK voltar.

Com o ACK, colocamos o proximo byte em D0-D7 e pulsamos o Strobe novamente, ou seja o ciclo se repete até a cadeia de caracteres for enviada.

Agora.

A impressora e seus protocolos


Cada impressora tem um protocolo de uso. As matriciais da EPSON sao baseadas no ESC/P ou ESC/P2 (Veja no manual da impressora qual emulacao aceita) Tem impressora que usa PCL, PostScript, ou outras emulacoes. Na internet vc pode achar um manual da emulacao da impressora procurando pelo nome da emulacao.

Por exemplo. O manual ESCP da EPSON pode ser achado em:

http://www.epson.co.uk/support/manuals/pdf/ESCP/Part_1.pdf


ESC/P é simples de entender.

Quando a impressora recebe o caractere ESC, fica esperta com o proximo caractere para saber o comando. Se for outro ESC ela sabe que nao é um comando e suprime o segundo ESC.

Vejamos as combinacoes mais básicas:

ESC + E = Enfatizado - Enfatiza a letra
ESC + F = Desliga Enfatizado

ESC + G = Double Strike - Negrito
ESC + H = Desliga o Double Strike

ESC + X [ascii 1] Liga modo carta (ASCII 1 é o caractere ASCII 1)
ESC + X [ascii 0] Desliga Liga modo carta

o codigo do caractere ESC é 27.

algumas impressoras tem um protocolo ESC/P2 que é uma evolucao do ESC/P onde temos fontes escalonaveis. As impressoras Epson da série LQ sabem ESC/P2. O basico de ESC/P elas aceitam. Mas tem comandos mais legais depois. O manual do ESP/P2 é um grande aliado.

Existe alguns caracteres especiais que nao sao precedidos de ESC

Por exemplo

ASCII 14 = Liga Largura Dupla por uma unica linha
ASCII 20 = Desliga LArgura Dupla antes de terminar a linha

ASCII 15 = Liga o Comprimido por uma linha
ASCII 18 = Desliga o Comprimido por uma linha

O comando Comprimido pode ser ligado forever com ESC 15 e desligado com ESC 18.



Espero que isso tenha te ajudado.

A emulacao PCL é mais complicada pq vc insere uma tonelada de comandos e a impressora vai acumulando no buffer dela e montando a página. Quando a página termina o computador envia a palavra ShowPage e a página é impressa.

A sua sorte é que a grande maioria das matriciais (Senao quase todas) aceita a emulacao EPSON ESC/P. Algumas poucas nao aceitam, esteja atento ao manual dela para saber qual é a emulação qualquer duvida me procure no MSN que terei prazer em ajuda-lo.
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor andre_luis » 29 Jan 2009 15:23

"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor Wagner de Queiroz » 29 Jan 2009 17:27

Eu acho que o termo Biblia esta fora de contexto. Nao desmerecendo o Rogerio messias. Dizem que o Curso dele é muito bom, o site dele é muito bem feito, tem muita coisa, mas nao é tudo.

A biblia tambem nao pode ser considerada o livro do Ian sobre Parallel Port complete. O livro é bom tb mas fala mais software.

O correto para se dizer que é biblia é a norma IEEE 1284, o Draft do Ieee1284 ta perdido por ai na internet. sao mais de 600 paginas só de porta paralela. Coisas sinistras sober o crosstalk dos sinais da porta paralela, como fazer e testar o cabo paralelo, dimensoes de tudo, alem dos registradores da paralela em modo ECP/EPP. è muita coisa na norma!
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor msamsoniuk » 29 Jan 2009 20:51

http://zone.ni.com/devzone/cda/tut/p/id/3466

nao eh muito complicado nao, de fato o negocio bem simples...eu nao acho que de para escrever sequer um evangelho sobre o assunto hahaha mas eh baseado num padrao da decada de 60 (interface paralela centronics) e, ao contrario das interfaces seriais, acho que paralela tah meio obsoleto hoje em dia...
#innovation #poweredby #riscv https://github.com/darklife/darkriscv
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor andre_luis » 29 Jan 2009 21:14

Tá bom, confesso que peguei pesado...
Me referi no ambito da WEB. O conteúdo é bem didático.
No ambito dp papel-celulose, esses caras aqui tem uma boa referencia para HW.

http://www.mzeditora.com.br/

Lamentavelmente, não vendem mais o livro de SW.

+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor alessandro » 30 Jan 2009 08:05

Agora tenho bastante informação, obrigado a todos!

Outra dúvida é: As impressoras a jato de tinta não recebem os dados "modo texto" da mesma forma? Tenho essa dúvida porque me lembro que mesmo que não tivesse o driver da impressa, o windows tinha um drive padrão para este tipo de impressora.

Obrigado a todos!

Alessandro
Alessandro
Avatar do usuário
alessandro
Byte
 
Mensagens: 278
Registrado em: 12 Out 2006 19:32

Mensagempor msamsoniuk » 30 Jan 2009 09:22

toda impressora recebe text e imprime direto, inclusive interpretando caracteres de controle basico, como \f para avancar pagina, \t para tabulacao, \r e \n para mudar linha e retornar ao inicio da mesma. o q varia de impressora para impressora sao os comandos extendidos atraves de sequencias de escape, daih tem q ver o manual da impressora.

uma excessao a isso sao impressoras postscript. tudo q vc manda vai para o interpretador postscript, portanto se nao for postscript, apenas fica dando erros e ela nunca imprime nada hehehe.
#innovation #poweredby #riscv https://github.com/darklife/darkriscv
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor Wagner de Queiroz » 30 Jan 2009 12:14

As impressoras Jato de tinta, voce precisa saber a emulacao. Nada impede de voce controlar diretamente uma HP Deskjet ou Laserjet, basta saber a emulacao dela e negociar com ela.

O fato de ter um driver para Windows nao significa que o driver tem que ser dela.

Algumas impressoras sao chamadas de Impressoras Host Emulation. O que é isso?

Significa que este tipo de impressora é controlada diretamente pelo computador, ou seja, nao tem uma emulacao, digamos, aprimorada. Isso pq a impressora tem um microcontrolador vagabundinho e nao uma CPU parruda para processar os dados, ou seja. O PC em tese só envia o que será impresso, como um mapa binario da imagem. Infelizmente nao tem documentacao sobre impressoras Host mode para te ajudar.

Agora as impressoras Jato de Tinta EPSON que tem emulacao ESC/P2 podem receber dados como uma impressora matricial que usa ESC/P.

As impressoras Jato de Tinta HP usam HPGL que é uma especie de PCL de jato de tinta. Tem as impressoras Host Mode que são controladas diretamente pelo driver. Pois geralmente nao possuem buffer de impressao sómente um mapa da pagina a ser impressa, pelo menos foi o que eu consegui com um conhecido que trabalhou num projeto deste tipo de impressora, como nao pude comprovar, nao é uma explicacao correta. O projeto de uma impressora Host mode é para baratear o custo do hardware da impressora.
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor tcpipchip » 30 Jan 2009 12:41

do Jan Axelson nao, da Jan Axelson :)
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor msamsoniuk » 30 Jan 2009 13:45

o windows nao manda ascii direto de forma transparente como o linux neh ? no linux eu mando o texto e um \f (avanco de pagina) em qq impressora nao-postscript e jah era.

Wagner de Queiroz escreveu:As impressoras Jato de tinta, voce precisa saber a emulacao. Nada impede de voce controlar diretamente uma HP Deskjet ou Laserjet, basta saber a emulacao dela e negociar com ela.

O fato de ter um driver para Windows nao significa que o driver tem que ser dela.

Algumas impressoras sao chamadas de Impressoras Host Emulation. O que é isso?

Significa que este tipo de impressora é controlada diretamente pelo computador, ou seja, nao tem uma emulacao, digamos, aprimorada. Isso pq a impressora tem um microcontrolador vagabundinho e nao uma CPU parruda para processar os dados, ou seja. O PC em tese só envia o que será impresso, como um mapa binario da imagem. Infelizmente nao tem documentacao sobre impressoras Host mode para te ajudar.

Agora as impressoras Jato de Tinta EPSON que tem emulacao ESC/P2 podem receber dados como uma impressora matricial que usa ESC/P.

As impressoras Jato de Tinta HP usam HPGL que é uma especie de PCL de jato de tinta. Tem as impressoras Host Mode que são controladas diretamente pelo driver. Pois geralmente nao possuem buffer de impressao sómente um mapa da pagina a ser impressa, pelo menos foi o que eu consegui com um conhecido que trabalhou num projeto deste tipo de impressora, como nao pude comprovar, nao é uma explicacao correta. O projeto de uma impressora Host mode é para baratear o custo do hardware da impressora.
#innovation #poweredby #riscv https://github.com/darklife/darkriscv
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor enigmabox » 30 Jan 2009 14:43

Já fiz uns projetos enviando ascii direto com alguns comandos para impressora Epson matricial e InkJet e funcionou normal. Se for impressora com driver postscript ai tem que respeitar o protocolo.

Se a impressora não consegue imprimir diretamente o ASCII, pra mim não é impressora, é uma cabeça de impressão! :shock:
enigmabox
 


Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x