- Mga uri ng Protokol ng Komunikasyon
- Mga Mode ng Paghahatid sa Serial Communication
- Pagsabay sa Orasan
- Iba Pang Mga Tuntunin na Kaugnay sa Serial Communication
- Mga Kasabay na Mga Serial na Protokol
- Mga Asynchronous Serial Protocol
- Konklusyon
Bago magsimula sa Mga Serial Communication Protocols, Sirain natin ang terminolohiya sa tatlong bahagi. Ang komunikasyon ay kilalang terminolohiya na nagsasangkot ng pagpapalitan ng impormasyon sa pagitan ng dalawa o higit pang mga medium. Sa mga naka-embed na system, nangangahulugan ang komunikasyon ng pagpapalitan ng data sa pagitan ng dalawang microcontroller sa anyo ng mga piraso. Ang pagpapalitan ng mga piraso ng data sa microcontroller ay ginagawa ng ilang hanay ng mga tinukoy na panuntunan na kilala bilang mga protocol sa komunikasyon. Ngayon kung ang data ay ipinadala sa serye hal sunod- sunod sa gayon ang protokol ng komunikasyon ay kilala bilang Serial Communication Protocol. Mas partikular, ang mga piraso ng data ay naililipat nang paisa-isa sa sunud-sunod na paraan sa data bus o channel ng komunikasyon sa Serial Communication.
Mga uri ng Protokol ng Komunikasyon
Mayroong iba't ibang mga uri ng paglilipat ng data na magagamit sa mga digital electronics tulad ng serial na komunikasyon at parallel na komunikasyon. Katulad nito ang mga protokol ay nahahati sa dalawang uri tulad ng Serial Communication Protocol at Parallel Communication Protocols. Ang mga halimbawa ng Parallel Communication Protocols ay ISA, ATA, SCSI, PCI at IEEE-488. Katulad nito maraming mga halimbawa ng Mga Serial Communication Protocol tulad ng CAN, ETHERNET, I2C, SPI, RS232, USB, 1-Wire, at SATA atbp.
Sa artikulong ito, tatalakayin ang iba't ibang uri ng Serial Communication Protocols. Ang serial na komunikasyon ay ang pinaka malawak na ginagamit na diskarte upang maglipat ng impormasyon sa pagitan ng mga peripheral ng pagproseso ng data. Ang bawat aparato na electronics alinman sa Personal Computer (PC) o Mobile ay tumatakbo sa serial na komunikasyon. Ang protokol ay ang ligtas at maaasahang anyo ng komunikasyon na mayroong isang hanay ng mga patakaran na hinarap ng source host (nagpadala) at host ng patutunguhan (tagatanggap) na katulad ng parallel na komunikasyon.
Mga Mode ng Paghahatid sa Serial Communication
Tulad ng nasabi na sa itaas na sa serial data ng komunikasyon ay ipinadala sa anyo ng mga bits ie binary pulses at alam na alam na, ang binary ay kumakatawan sa lohika na TAAS at ang zero ay kumakatawan sa lohong LOW. Mayroong maraming mga uri ng serial na komunikasyon depende sa uri ng mode ng paghahatid at paglilipat ng data. Ang mga mode ng paghahatid ay inuri bilang Simplex, Half Duplex at Full Duplex.
Pamamaraan ng Simplex:
Sa pamamaraan ng simplex alinman sa daluyan ibig sabihin, nagpadala o tatanggap ay maaaring maging aktibo sa bawat oras. Kaya't kung nagpapadala ang nagpadala ng data kung gayon ang tatanggap ay maaari lamang tanggapin at kabaligtaran. Kaya't ang pamamaraang simplex ay isang diskarte sa komunikasyon na isang paraan. Ang mga kilalang halimbawa ng pamamaraang simplex ay ang Telebisyon at Radio.
Paraan ng Half Duplex:
Sa kalahating duplex na pamamaraan ang parehong nagpadala at tatanggap ay maaaring maging aktibo ngunit hindi sa parehong oras. Kaya't kung nagpapadala ang nagpapadala sa gayon ang tatanggap ay maaaring tanggapin ngunit hindi maaaring magpadala at katulad ng kabaligtaran. Ang mga kilalang halimbawa ng kalahating duplex ay ang internet kung saan nagpapadala ang gumagamit ng isang kahilingan para sa isang data at makuha ito mula sa server.
Buong Paraan ng Duplex:
Sa buong pamamaraan ng duplex, ang parehong tagatanggap at transmiter ay maaaring magpadala ng data sa bawat isa nang sabay. Ang kilalang halimbawa ay mobile phone.
Bukod dito, para sa naaangkop na paghahatid ng data, ang orasan ay may mahalagang papel at ito ay isa sa pangunahing mapagkukunan. Ang hindi paggana ng orasan ay nagreresulta sa hindi inaasahang paghahatid ng data kahit minsan pagkawala ng data. Kaya, ang pagsasabay sa orasan ay naging napakahalaga kapag gumagamit ng serial na komunikasyon.
Pagsabay sa Orasan
Ang orasan ay naiiba para sa mga serial device at naiuri ito sa dalawang uri ng viz. Synchronous Serial Interface at Asynchronous Serial Interface.
Kasabay na Serial Interface:
Ito ay isang point-to-point na koneksyon mula sa isang master hanggang sa alipin. Sa ganitong uri ng interface, ang lahat ng mga aparato ay gumagamit ng solong CPU bus upang magbahagi ng data at orasan. Ang paghahatid ng data ay nagiging mas mabilis sa parehong bus upang ibahagi ang orasan at data. Gayundin walang maling pagtutugma sa rate ng baud sa interface na ito. Sa panig ng transmiter, mayroong isang paglilipat ng data sa serial line na nagbibigay ng orasan bilang isang hiwalay na signal dahil walang pagsisimula, paghinto at mga parity bits ay idinagdag sa data. Sa panig ng tatanggap, ang data ay kinukuha gamit ang orasan na ibinigay ng transmiter at binabalik ang serial data pabalik sa parallel form. Ang mga kilalang halimbawa ay ang I2C at SPI.
Hindi magkasabay na Serial Interface:
Sa asynchronous Serial Interface, ang panlabas na signal ng orasan ay wala. Ang Asynchronous Serial Interfaces ay makikita sa karamihan sa mga application ng malayuan at perpektong akma para sa matatag na komunikasyon. Sa asynchronous Serial Interface ang kawalan ng panlabas na Pinagmulan ng Clock ay nakasalalay sa maraming mga parameter tulad ng Data Flow Control, Error Control, Baud Rate Control, Transmission Control at Recipher Control. Sa panig ng transmiter, mayroong isang paglilipat ng parallel data sa serial line gamit ang sarili nitong orasan. Gayundin dinadagdag nito ang mga pagsisimula, pagtigil at pag-check ng parity bits. Sa panig ng tatanggap, ang tagatanggap ay kumukuha ng data gamit ang sarili nitong orasan at i-convert ang serial data pabalik sa parallel form pagkatapos na hubarin ang pagsisimula, paghinto, at mga parity bit. Ang mga kilalang halimbawa ay ang RS-232, RS-422 at RS-485.
Iba Pang Mga Tuntunin na Kaugnay sa Serial Communication
Bukod sa Clock Synchronization mayroong ilang mga bagay na dapat tandaan kapag naglilipat ng data nang serial tulad ng Baud Rate, Data bit seleksyon (Framing), Synchronization at error check. Talakayin natin ang mga term na ito nang maikling.
Rate ng Baud: Ang rate ng baud ay rate kung saan ang data ay inililipat sa pagitan ng transmiter at tatanggap sa anyo ng mga bits bawat segundo (bps). Ang pinaka-karaniwang ginagamit na rate ng baud ay 9600. Ngunit may iba pang pagpipilian ng rate ng baud tulad ng 1200, 2400, 4800, 57600, 115200. Ang mas maraming rate ng baud ay magiging fats ang data ay maililipat sa isang oras. Gayundin para sa komunikasyon ng data ang rate ng baud ay dapat na pareho para sa parehong transmiter at tatanggap.
Pag-frame: Ang pag- frame ay tinukoy sa bilang ng mga data bit na ipapadala mula sa transmiter patungo sa tatanggap. Ang bilang ng mga piraso ng data ay naiiba sa kaso ng aplikasyon. Karamihan sa application ay gumagamit ng 8 bits bilang karaniwang mga data bits ngunit maaari itong mapili bilang 5, 6 o 7 bits din.
Pag-synchronize: Mahalaga ang mga Syncingization Bits upang pumili ng isang tipak ng data. Sinasabi nito ang simula at pagtatapos ng mga piraso ng data. Itatakda ng transmiter ang pagsisimula at ihinto ang mga piraso sa frame ng data at makikilala ito ng tatanggap nang naaayon at gawin ang karagdagang pagproseso.
Pagkontrol sa Error: Ang pagkontrol sa error ay gumaganap ng isang mahalagang papel habang ang serial na komunikasyon dahil maraming mga kadahilanan na nakakaapekto at nagdaragdag ng ingay sa serial na komunikasyon. Upang mapupuksa ang error na ito ang mga parity bits ay ginagamit kung saan susuriin ng parity ang pantay at kakaibang pagkakapareho. Kaya't kung ang data frame ay naglalaman ng pantay na bilang ng 1 pagkatapos ay kilala ito bilang pantay at ang pagkakapareho sa rehistro ay nakatakda sa 1. Gayundin kung ang data frame ay naglalaman ng kakaibang bilang ng 1 pagkatapos ay kilala ito bilang kakaibang pagkakapareho at nililimas kakaibang pagkakatulad ng kaunti sa rehistro.
Ang protokol ay katulad ng isang karaniwang wika na ginagamit ng system upang maunawaan ang data. Tulad ng inilarawan sa itaas, ang serial protocol ng komunikasyon ay nahahati sa mga uri hal Syn Synous at Asynchronous. Ngayon ang pareho ay tatalakayin nang detalyado.
Mga Kasabay na Mga Serial na Protokol
Ang magkasabay na uri ng mga serial protokol tulad ng SPI, I2C, CAN at LIN ay ginagamit sa iba't ibang mga proyekto sapagkat ito ay isa sa mga pinakamahusay na mapagkukunan para sa onboard peripheral. Gayundin ito ang mga malawakang ginagamit na mga protokol sa mga pangunahing application.
SPI Protocol
Ang Serial Peripheral Interface (SPI) ay isang magkasabay na interface na nagbibigay-daan sa maraming mga microcontroller ng SPI na magkaugnay. Sa SPI, kinakailangan ang magkakahiwalay na mga wire para sa data at linya ng orasan. Gayundin ang orasan ay hindi kasama sa stream ng data at dapat na maibigay bilang isang hiwalay na signal. Ang SPI ay maaaring mai-configure alinman bilang master o bilang isang alipin. Ang apat na pangunahing mga signal ng SPI (MISO, MOSI, SCK at SS), Vcc at Ground ay bahagi ng komunikasyon sa data. Kaya kailangan nito ng 6 na mga wire upang magpadala at tumanggap ng data mula sa alipin o master. Sa teoretikal, ang SPI ay maaaring magkaroon ng walang limitasyong bilang ng mga alipin. Ang komunikasyon sa data ay naka-configure sa mga rehistro ng SPI. Ang SPI ay maaaring maghatid ng hanggang sa 10Mbps ng bilis at mainam para sa mataas na bilis ng komunikasyon sa data.
Karamihan sa mga microcontroller ay may naka-built na suporta para sa SPI at maaaring direktang konektado sa suportadong aparato ng SPI:
- Pakikipag-usap sa SPI sa PIC Microcontroller PIC16F877A
- Paano Gumamit ng Komunikasyon sa SPI sa STM32 Microcontroller
- Paano gamitin ang SPI sa Arduino: Komunikasyon sa pagitan ng dalawang Arduino Boards
Serial na Komunikasyon ng I2C
Ang inter integrated circuit (I2C) na dalawang-linya na komunikasyon sa pagitan ng iba't ibang mga IC o module na kung saan ang dalawang linya ay SDA (Serial Data Line) at SCL (Serial Clock Line). Ang parehong mga linya ay dapat na konektado sa isang positibong supply gamit ang isang pull up risistor. Ang I2C ay maaaring maghatid ng bilis ng hanggang sa 400Kbps at gumagamit ito ng 10 bit o 7 bit na addressing system upang ma-target ang isang tukoy na aparato sa i2c bus upang maaari itong kumonekta hanggang sa 1024 na mga aparato. Ito ay may limitadong haba ng komunikasyon at mainam para sa onboard na komunikasyon. Madaling mai-set up ang mga network ng I2C dahil gumagamit lamang ito ng dalawang wires at ang mga bagong aparato ay maaaring maiugnay lamang sa dalawang karaniwang mga linya ng bus ng I2C. Parehas sa SPI, ang microcontroller sa pangkalahatan ay may mga I2C na pin upang ikonekta ang anumang aparato ng I2C:
- Paano gamitin ang I2C Communication sa STM32 Microcontroller
- Pakikipag-usap sa I2C sa PIC Microcontroller PIC16F877
- Paano gamitin ang I2C sa Arduino: Komunikasyon sa pagitan ng dalawang Arduino Boards
USB
Ang USB (Universal Serial Bus) ay malawak na may iba't ibang mga bersyon at bilis. Ang maximum na 127 peripheral ay maaaring konektado sa isang solong USB host controller. Gumaganap ang USB bilang "plug and play" na aparato. Ginagamit ang USB sa halos mga aparato tulad ng mga keyboard, printer, media device, camera, scanner at mouse. Dinisenyo ito para sa madaling pag-install, mas mabilis na na-rate ang data, hindi gaanong paglalagay ng kable at mainit na pagpapalit. Pinalitan nito ang mas malaki at mas mabagal na serial at parallel port. Gumagamit ang USB ng pagkakaiba sa pagbibigay ng senyas upang mabawasan ang pagkagambala at pahintulutan ang mabilis na paghahatid sa isang mahabang distansya.
Ang isang kaugalian na bus ay itinayo na may dalawang kawad, ang isa ay kumakatawan sa naihatid na data at ang iba pang pantulong nito. Ang ideya ay ang 'average' na boltahe sa mga wire ay hindi nagdadala ng anumang impormasyon, na nagreresulta sa mas kaunting pagkagambala. Sa USB, pinapayagan ang mga aparato na gumuhit ng isang tiyak na halaga ng lakas nang hindi tinatanong ang host. Gumagamit lamang ang USB ng dalawang wires para sa paglilipat ng data at mas mabilis kaysa sa serial at parallel interface. Sinusuportahan ng mga bersyon ng USB ang iba't ibang mga bilis tulad ng 1.5Mbps (USB v1.0), 480 Mbps (USB2.0), 5Gbps (USB v3.0). Ang haba ng indibidwal na USB cable ay maaaring umabot ng hanggang sa 5 metro nang walang isang hub at 40 metro na may hub.
MAAARI
Ang Controller Area Network (CAN) ay ginagamit sa eg automotive upang payagan ang komunikasyon sa pagitan ng ECUs (Engine Control Units) at sensor. Ang CAN protocol ay matatag, murang gastos at nakabatay sa mensahe at sumasaklaw sa maraming mga application - hal. Mga kotse, trak, traktor, pang-industriya na robot. Pinapayagan ng system ng CAN bus ang diagnosis ng gitnang error at pagsasaayos sa lahat ng mga ECU. Ang mga mensahe sa CAN ay binibigyan ng priyoridad sa pamamagitan ng mga ID upang ang pinakamataas na mga prioridad na ID ay hindi nagambala. Ang bawat ECU ay naglalaman ng isang maliit na tilad para sa pagtanggap ng lahat ng mga naihatid na mensahe, magpasya ng kaugnayan at kumilos nang naaayon - pinapayagan nito ang madaling pagbabago at pagsasama ng mga karagdagang node (hal. CAN log data log). Kasama sa mga application ang pagsisimula / paghinto ng mga sasakyan, mga system ng pag-iwas sa banggaan. Ang mga sistema ng CAN bus ay maaaring magbigay ng bilis ng hanggang sa 1Mbps.
Microwire
Ang MICROWIRE ay isang 3Mbps serial 3-wire interface na mahalagang isang subset ng interface ng SPI. Ang Microwire ay isang serial I / O port sa mga microcontroller, kaya matatagpuan ang Microwire bus sa mga EEPROM at iba pang mga Peripheral chip. Ang 3 linya ay SI (Serial Input), SO (SerialOutput) at SK (Serial Clock). Ang linya ng Serial Input (SI) sa microcontroller, KAYA ang linya ng serial output, at ang SK ang serial line na orasan. Ang data ay inilipat sa pagbagsak na gilid ng SK, at pinahahalagahan sa tumataas na gilid. Ang SI ay inilipat sa tumataas na gilid ng SK. Ang isang karagdagang pagpapahusay ng bus sa MICROWIRE ay tinatawag na MICROWIRE / Plus. Ang pangunahing pagkakaiba sa pagitan ng dalawang bus ay tila ang arkitekturang MICROWIRE / Plus sa loob ng microcontroller ay mas kumplikado. Sinusuportahan nito ang bilis ng hanggang sa 3Mbps.
Mga Asynchronous Serial Protocol
Ang hindi magkasabay na uri ng mga serial protokol ay napakahalaga pagdating sa mas mahabang distansya maaasahang paglipat ng data. Ang hindi magkasabay na komunikasyon ay hindi nangangailangan ng orasan sa oras na karaniwan sa parehong mga aparato. Malaya na nakikinig ang bawat aparato at nagpapadala ng mga digital na pulso na kumakatawan sa mga piraso ng data sa isang napagkasunduang rate. Ang walang komunikasyon sa serial na serial ay minsang tinutukoy bilang serial ng Transistor-Transistor Logic (TTL), kung saan ang antas ng mataas na boltahe ay lohika 1, at ang mababang boltahe ay katumbas ng lohika 0. Halos bawat microcontroller sa merkado ngayon ay may hindi bababa sa isang Universal Asynchronous Receiver- Transmitter (UART) para sa serial na komunikasyon. Ang mga halimbawa ay ang RS232, RS422, RS485 atbp.
RS232
Ang RS232 (Inirekumendang Karaniwan 232) ay napaka-pangkaraniwang protokol na ginagamit upang ikonekta ang iba't ibang mga peripheral tulad ng Mga Monitor, CNC atbp Ang RS232 ay nagmumula sa mga konektor ng lalaki at babae. Ang RS232 ay point-to-point topology na may maximum na isang aparato na nakakonekta at sumasaklaw sa distansya hanggang sa 15 metro sa 9600 bps. Ang impormasyon sa interface ng RS-232 ay naililipat nang digital sa pamamagitan ng lohikal na 0 at 1. Ang lohikal na "1" (MARK) ay tumutugma sa isang boltahe sa saklaw mula -3 hanggang -15 V. Ang lohikal na "0" (SPACE) ay tumutugma sa isang boltahe sa saklaw mula sa +3 hanggang +15 V. Dumating ito sa konektor ng DB9 na mayroong 9 na mga pinout tulad ng TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
Ang RS422 ay katulad ng RS232 na nagpapahintulot na sabay na magpadala at makatanggap ng mga mensahe sa magkakahiwalay na linya ngunit gumagamit ng kaugalian na signal para dito. Sa network ng RS-422, maaari lamang magkaroon ng isang aparato na nagpapadala at hanggang sa 10 tumatanggap na mga aparato. Ang bilis ng paglilipat ng data sa RS-422 ay nakasalalay sa distansya at maaaring mag-iba mula 10 kbps (1200 metro) hanggang 10 Mbps (10 metro). Ang linya ng RS-422 ay 4 na mga wire para sa paghahatid ng data (2 mga baluktot na mga wire para sa paghahatid at 2 mga baluktot na mga wire para sa pagtanggap) at isang pangkaraniwang GND ground wire. Ang boltahe sa mga linya ng data ay maaaring nasa saklaw mula -6 V hanggang +6 V. Ang lohikal na pagkakaiba sa pagitan ng A at B ay mas malaki sa +0.2 V. Ang lohikal na 1 ay tumutugma sa pagkakaiba sa pagitan ng A at B na mas mababa sa -0.2 V. Ang pamantayan ng RS-422 ay hindi tumutukoy sa isang tukoy na uri ng konektor, karaniwang maaari itong maging isang bloke ng terminal o isang konektor ng DB9.
RS485
Dahil ang RS485 ay gumagamit ng multi-point topology, ito ay pinaka ginagamit sa mga industriya at mas gusto ng industriya na protocol. Maaaring ikonekta ng RS422 ang 32 mga driver ng linya at 32 mga tatanggap sa isang pagkakaiba-iba na mga pagsasaayos ngunit sa tulong ng mga karagdagang repeater at signal amplifier hanggang sa 256 na mga aparato. Ang RS-485 ay hindi tumutukoy sa isang tukoy na uri ng konektor, ngunit madalas itong isang terminal block o isang konektor ng DB9. Ang bilis ng pagpapatakbo ay nakasalalay din sa haba ng linya at maaaring umabot sa 10 Mbit / s sa 10 metro. Ang boltahe sa mga linya ay nasa saklaw mula -7 V hanggang +12 V. Mayroong dalawang uri ng RS-485 tulad ng kalahating duplex mode na RS-485 na may 2 mga contact at buong duplex mode na RS-485 na may 4 na contact. Upang matuto nang higit pa tungkol sa paggamit ng RS485 sa iba pang mga microcontroller, suriin ang mga link:
- RS-485 MODBUS Serial Communication gamit ang Arduino UNO bilang Alipin
- Ang RS-485 Serial Communication sa pagitan ng Raspberry Pi at Arduino Uno
- Ang RS485 Serial Communication sa pagitan ng Arduino Uno at Arduino Nano
- Serial Communication sa pagitan ng STM32F103C8 at Arduino UNO gamit ang RS-485
Konklusyon
Ang Serial Communication ay isa sa malawakang ginagamit na mga sistema ng interface ng komunikasyon sa electronics at mga naka-embed na system. Ang mga rate ng data ay maaaring magkakaiba para sa iba't ibang mga application. Ang Serial Communication Protocols ay maaaring gampanan ang mapagpasyang papel kapag nakikipag-usap sa ganitong uri ng mga aplikasyon. Kaya't ang pagpili ng tamang Serial protocol ay naging napakahalaga.