Prgramaçã em ASIC para PIC Cmuncaçã Seral Vr Amadeu Suza Inrduçã Nesa quara sére relaand us d mkrasic para prgramar PIC, verems cm realzar a cmuncaçã seral enre PC e mcrcnrladr. A déa será lgar u deslgar um relé nsalad na placa ddáca, de acrd cm caracer recebd va cmuncaçã seral. Esa aplcaçã sera bem neressane para n cas de alguma aumaçã resdencal, nde em deermnads mmens alguma lâmpada pdera lgar u deslgar de acrd cm hrár ajusad n PC. A cmuncaçã ulzada é d p RS232, e s níves lógcs asscads a nível al e bax dese p de cmuncaçã e d TTL pdem ser bservads na abela 1. Níves / Tps TTL RS232 1 5 Vcc -3 a 18V 0 0 Vcc 3 a 18 V Tabela 1 Níves de cmuncaçã Ne que s níves ulzads pel PIC sã s níves TTL enquan ulzad pel PC, é RS232. Para cmpablzar um nível a ur, é necessár um cnversr de níves de TTL para RS232 e vce-versa. Um cnversr mu ppular hje n mercad é MAX232 desenvlvd pela Maxm. Ese cnversr pde ser bservad na fgura 1. Fgura 1 Cnversr TTL RS232 e vce-versa O esquema básc de lgaçã enre mcrcnrladr e PC, de frma cm que s mesms pssam se cmuncar esá apresenad na fgura 2.
TX - 232 TX - TTL MAX232 RX - 232 RX-TTL Fgura 2 Esquema de lgaçã básc para cmuncaçã Observe que crcu de cnversã, que é CI MAX232 e mcrcnrladr fcam ambs clcads na placa PICLA18F442. Para enenderms melhr funcnamen dese p de cmuncaçã, vams plar um gráfc que rá apresenar a cmuncaçã n nível TTL e RS232. Verfque a ransmssã d bye 01101010 na fgura 3. TTL RS232 R e p u s S a r 0 1 2 3 4 5 6 7 S p R e p u s Fgura 3 Plagem d gráfc na lnha TTL e RS232 Observe que n mmen em que nã há cmuncaçã, a lnha TTL permanece em nível al. Ese é cnhecd esad de repus, u seja, mmen em que nã há cmuncaçã na lnha e a mesma esá prna para cmeçar. Tda vez em que um bye será envad, prmeramene ems b de
sar (níc) e lg em seguda, s bs d bye a ser ransmd, cmeçand sempre pel b mens sgnfcav. Para fnalzar a cmuncaçã, ems b de sp (parada) em que nese mmen, a lnha de dads vla a seu esad de repus. Tda cmuncaçã seral, seja ela US, RS485 u RS232 ulza uma axa de cmuncaçã (baud rae). Cm baud rae, pdems saber quans bs pdem rafegar pela lnha em um nerval de 1 segund. Cmumene s baud raes sã múlpls de 300 bps (bs pr segund), encnrand desa frma axas de cmuncaçã cm pr exempl 2400 bps, 4800 bps e 9600 bps. Em nss exempl, rems ulzar a axa de 9600 bps e para acharms emp que 1 b demra para ser ransmd nesa axa, basa dvdrms 1 pel númer de bs pr segund. N gráfc plad na fgura 3, cnsderand baud rae de 9600 bps, achams emp de aprxmadamene de 104 us, ps 1/9600 é gual a ese valr. Exsem bascamene rês mds de cmuncaçã ulzads, send eses smplex, half duplex e full duplex. A cmuncaçã smplex é aquela em que se dá em smene 1 send. Um exempl sera cas da elevsã, em que usuár smene cnsegue receber dads runds da cenral de ransmssã e nunca cnsegue fazer prcess nvers. Pderíams represenar a cmuncaçã smplex cm uma sea de uma só dreçã, cm apresenad na fgura 4. Fgura 4 Represenaçã da cmuncaçã Smplex Já a cmuncaçã half duplex se dá ns ds sends, prém nese cas a lnha de cmuncaçã é cmparlhada, send em nsane smene de ransmssã e em ur smene de recepçã. Exsem aparelhs elefôncs, cm da peradra NEXTEL que é um exempl dese p de cmuncaçã. Nese cas, pderíams represenar ese p de cmuncaçã cm apresenad na fgura 5, cm uma sea únca cm cmuncaçã bdrecnal. Fgura 5 Represenaçã da cmuncaçã Half Duplex Já a cmuncaçã full duplex perme a rca de dads smulaneamene, ps ems duas lnhas, send uma de ransmssã e ura de recepçã. Um exempl crrquer sera us de um celular, em que duas pessas cnseguem falar n mesm mmen e rcar nfrmações. A represenaçã desa cmuncaçã sera cm apresenad na fgura 6, cm uma sea smene de ransmssã e ura smene de recepçã.
Fgura 6 Represenaçã da cmuncaçã Full Duplex A cmuncaçã d p RS232 é d p full duplex, ps ems uma lnha smene de ransmssã e ura smene de recepçã. Desa frma, enquan esams ransmnd um bye pela lnha de TX, pdems perfeamene esar recebend ur pela lnha de RX. Recurss de Hardware O esquema elérc dese exempl pde ser bservad na fgura 7. Observe que as lnhas de cmuncaçã d PIC fcam lgadas a MAX232 e n pn R0 esá cnecad relé d nss exempl. Além dss, mcrcnrladr e MAX232 fcam ambs almenads aravés de uma fne de 5 Vcc. Fgura 7 Esquema Elérc d Exempl
Fluxgrama O fluxgrama que rá reger ese exempl esá apresenad na fgura 8. Ne que prmeramene é fea a cnfguraçã d mcrcnrladr, cm a cnfguraçã ds pns e da USART e lg em seguda ssema enra em lp nfn verfcand a exsênca de algum bye n canal seral. A ser verfcad que algum bye f recebd, é checad se mesm é caracer A e cas seja, relé é acnad. Cas caracer nã seja A, buffer é nvamene esad e cas seja, relé é deslgad. Quasquer caraceres dferenes deses ds nã erã efe sbre ssema. Iníc Cnfgurações Incas Cnfgura USART Sm Recebeu algum bye? Nã Lga relé ye recebd é A? Nã Sm Deslga relé ye recebd é? Nã Sm Fgura 8 Fluxgrama d exempl
Recurss de Sfware Exsem bascamene quar funções dspníves para acess a pra de cmuncaçã seral d mcrcnrladr. Esas esã apresenadas na abela 2. usar_n (baud rae) usar_read usar_daa_ready usar_wre_ex (ex a escrever) Tabela 2 Funções de acess a cmuncaçã seral Aravés da funçã usar_n pdems ncalzar a máquna de cmuncaçã seral cm um baud rae defnd pel prgrama. Cm n nss cas a axa será de 9600 bps, ese cmand será defnd cm usar_n (9600). Ulzand a funçã usar_read, pdems ler bye que f recebd e esá armazenad n buffer d mcrcnrladr. Já a funçã usar_daa_ready perme cm que sabams se exse u nã um bye para ser fea a leura. Sempre anes de lerms buffer de cmuncaçã aravés da funçã usar_read, precsams saber se exse algum bye lá e aravés d ese da usar_daa_ready pdems ber esa nfrmaçã. Cm a funçã usar_wre_ex pdems envar um dad para PC. Sfware O sfware cmple que permrá bservar funcnamen dese exempl esá apresenad n bx 1. prgram cmuncaca man: repee: end. rsb.0=0 usar_n(9600) f usar_daa_ready=1 hen f usar_read="a" hen prb.0=1 end f f usar_read="" hen prb.0=0 end f end f g repee x 1 Prgrama d exempl
Vams enender melhr códg apresenad. Lg desare bservams pn R0 cnfgurad cm saída, aravés d cmand rsb.0=0. Esa cnfguraçã é fea ps nese pn esá lgad relé. Lg na lnha abax a usar é cnfgurada para funcnar a 9600 bps aravés da funçã usar_n. N pn segune, prgrama fca pres em lp esand cnnuamene se exse u nã um dad n buffer de cmuncaçã. A ser deecad a presença de um bye, é verfcad se caracer é A u e cas seja algum deles será mada a açã de acrd cm caracer. Para que pssams envar s dads d PC para mcrcnrladr, ulzarems sfware chamad Cmmuncan Termnal que já vem n própr mkrasic. Para acessar ese sfware, vá em Tls -> Usar Termnal. Será abera uma ela cm apresenad na fgura 9. Fgura 9 Ulzand Cmmuncan Termnal Esclha em Cm Pr a pra que eseja lvre em seu PC para cmuncaçã. Em seguda, em baud manenha a axa de 9600 bps. Cnfgure em Sp a pçã One Sp e em pardade Nne. Ulzarems a cmuncaçã de 8 bs de dads, esclha desa frma esa pçã em Daa s. Mu bem, cm eses parâmers ajusads pdems ncar a cmuncaçã. Para ss, clque em
Cnnec. Nese mmen a pra esará abera e prna para envar dads. Na caxa Cmmuncan, dge caracer A e clque em send. Nese mmen, relé deverá ser acnad. Para desavar mesm prcess é mesm, basand apenas rcar caracer para. Cnclusã A cmuncaçã seral é a melhr frma de permr cm que um u mas dspsvs pssam se cmuncar em uma rede. Exsem hje várs barramens seras dspníves, cm pr exempl CAN, RS485 e US. Vms nese arg s passs para cnrlar um relé remamene e pdems expandr esa déa para uma placa que em cnjun cm um sfware devdamene cnfgurad n PC, perma cnrlar d funcnamen de uma casa u ndúsra. Aplcações cm esa, serã crrqueras em um fuur próxm, em que a dmóca cada da mas nvade as nssas casas. Cmenárs, dúvdas u sugesões, dex nvamene meu e-mal dspnível para cna, que é vr@cerne-ec.cm.br.