com kiunganishi cha bandari. Lango la COM (bandari ya serial)

Hapo awali, walipoonekana kompyuta za kibinafsi, pamoja nao walikuja kadhaa sio-kisasa, lakini kwa mafanikio kabisa kufanya kazi pamoja na kujaza nyingine zote, bandari au miingiliano ya mzunguko. Neno port inaashiria njia ya uhamisho wa data. Ni kama seli ya kumbukumbu. Habari pekee ndiyo inayoandikwa kwenye RAM na inabaki pale mradi tu programu fulani inaihitaji, hadi programu itachakata (au programu yenyewe bado inahitajika na mtu kwenye kompyuta).

Bandari na kumbukumbu

Hiyo ni, programu itasoma data kutoka kwa kumbukumbu kwenye processor, fanya kitu nayo, labda kupokea data mpya kutoka kwa habari hii, ambayo itaandika kwa eneo lingine. Au iliyopewa yenyewe itaandikwa tena mahali pengine. Kwa hali yoyote, katika kumbukumbu, habari ambayo imerekodiwa inaweza kusomwa au kufutwa. Seli inaonekana kama kifua kilichosimama dhidi ya ukuta. Na kumbukumbu zote zina seli, kila seli ina anwani yake. Kama vile vifua vilivyosimama kwa safu dhidi ya ukuta kwenye basement ya knight bahili.

Kweli, unaweza pia kufikiria bandari kama seli. Pekee seli kama hiyo nyuma kuna dirisha linaloongoza mahali fulani nyuma ya ukuta. Unaweza kuandika habari ndani yake, na habari itachukua na kuruka nje ya dirisha, ingawa kwa muda itabaki kwenye seli kwa njia ile ile. katika seli ya kawaida kumbukumbu ya ufikiaji bila mpangilio.

Au kinyume chake, habari inaweza "kuruka" kwenye seli ya bandari kutoka kwa dirisha. Mchakataji ataona hii na kusoma habari hii mpya inayoonekana. Na ataifanya kazi - ataiandika tena mahali pengine, aihesabu tena pamoja na data zingine. Inaweza hata kuiandika kwa seli nyingine. Au kwa lango lingine la seli, basi habari hii iliyopokelewa kupitia lango la kwanza inaweza "kuruka" hadi kwenye dirisha la mlango wa pili - vizuri, ndivyo kichakataji huamua. Kwa usahihi zaidi, programu ambayo kwa wakati huu inaamuru processor na kusindika data iliyorekodiwa kwenye kumbukumbu na kutoka kwa bandari.

Rahisi na nzuri. Bandari hizi ziliitwa mara moja - bandari za pembejeo-pato. Kupitia baadhi yao, data hutumwa mahali fulani, kupitia wengine, inapokelewa kutoka mahali fulani.

Kweli, basi harakati huanza kwenye duara. Kuna kifaa kimoja, na kuna kingine. Na sasa kuna mlolongo wa wahusika, ambayo kila mmoja ina bits binafsi ya binary, na mlolongo huu unahitaji kupitishwa. Jinsi ya kuhamisha? Unaweza kusambaza tabia nzima mara moja kwenye mstari wa waya 8 - waya moja = kidogo, kisha msimbo wa mwingine, kisha wa tatu, na kadhalika mpaka upitishe mlolongo mzima.

Na ilikuwa inawezekana kufunua kila kidogo si katika nafasi (kupitia waya), lakini kwa wakati: kwanza kusambaza kidogo moja ya ishara, kisha pili, na kadhalika mara nane. Ni wazi kwamba katika kesi ya pili njia zingine za ziada zinahitajika ili kufunua alama kwa njia hii kwa wakati.

Sambamba na serial

Na kasi ya maambukizi itakuwa tofauti:

Inatokea kwamba kila chaguo ina faida zake, lakini pia hasara zake.

  1. Ni haraka kusambaza biti nane kwa wakati mmoja (hiyo ni, byte byte), lakini unahitaji waya mara nane zaidi.
  2. Kusambaza kidogo kwa wakati kunahitaji upitishaji habari mmoja tu, lakini itakuwa polepole mara 8.

Kwa hiyo katika kesi ya kwanza waliita maambukizi ya sambamba, na katika kesi ya pili - serial.

Kiolesura cha Bandari

Na mfumo mzima wa maambukizi kama haya - kwa hali moja kwa njia hii, kwa nyingine - kama hiyo, inayoitwa interface. Interface moja ni sambamba, nyingine ni ya mfululizo. Karibu kitu kimoja, bandari, sambamba moja, serial nyingine.

Je, dhana ya bandari inatofautianaje na dhana ya "interface"? Katika teknolojia ya kisasa, maneno hayaonekani tu, yanakua na kupokea "elimu." Na kama tu na watu, wanaweza kuwa wataalam finyu, au wanaweza kuwa "amateurs." Hili ni neno la kawaida la amateur - "interface". Kwa sababu ni “plagi kwa kila shimo.” Violesura ni:

Na maana ya neno ni kitu baina ya kitu. Inter - kati, uso - uso. Iligeuka kwa uzuri, ndiyo sababu inatumiwa kila mahali. Kwa mfano, interface ya mtumiaji wa mfumo wa Windows ni uso wa skrini wa mfumo, iliyoundwa kuwasiliana na mtu.

Na ina picha inayotolewa kwenye skrini + sheria za uendeshaji wa kila kipengele cha picha (kwa mfano, bonyeza kitufe kwenye skrini na panya - itasisitizwa) + sheria za majibu ya kila kipengele na mfumo mzima kwa ujumla + vifaa vyote vinavyoshiriki kwenye mazungumzo (panya, kibodi, skrini) + programu zote zinazotoa mazungumzo kutoka upande wa mfumo mzima na kutoka kwa vifaa vya mtu binafsi (madereva).

Hawakumtaja mtu huyo, lakini kwa kuwa yeye pia ni sehemu ya mwingiliano, lazima awe na ujuzi na ujuzi wa kufanya kazi katika mfumo, na kwa hili kuna programu za mafunzo, mifumo ya usaidizi ... Na kutoka kwa haya yote nzuri na nzuri. neno lenye uwezo linatokea: kiolesura.

Katika mada yetu, kiolesura kinamaanisha mambo rahisi zaidi.

Hizi ni njia za maunzi + za uhamishaji wa programu + sheria za uhamishaji. Vifaa - inaeleweka. Lakini programu kwenye kompyuta na katika mawasiliano ya kisasa daima na kila mahali iko. Hata hutokea: kwanza, kitu kinachofanya kazi kinaundwa kwenye msingi fulani wa vifaa, ambavyo havifanyiki mara moja, lakini kwa kutumia programu zilizoandikwa maalum. Na programu zote zinaweza kubinafsishwa.

Na hatua kwa hatua, kazi mpya (au kizuizi cha kazi) inafanya kazi, programu ambazo "huitengeneza" - na zinatofautiana na vifaa kwa kuwa zinaweza kusanidiwa kwa urahisi - huletwa kwa hali fulani ya usanidi bora. Kwamba hakuna haja ya kusanidi tena. Na kisha programu katika toleo jipya la kizuizi cha kazi inaweza kubadilishwa na mbadala ya msingi ya vifaa kwa sehemu ya programu. Kwa mfano, "kushona" inayofanya kazi kikamilifu programu iliyosasishwa vizuri kuwa kumbukumbu ya kudumu. Au njoo na mzunguko maalum wa kimantiki ambao utafanya kile kile ambacho programu iliyosanidiwa ilifanya - bila kukwepa na wakati mwingine kusahau mipangilio yake yote muhimu.

Ndio maana interface mara nyingi huitwa hii - programu na maunzi.

Sheria za uhamishaji zinahitajika ili kuhakikisha kuwa vitu sawa vinaeleweka (na kuchakatwa) kwa njia sawa katika ncha zote mbili za mwingiliano. Je, tunazungumzia maambukizi ya msukumo? Hii inamaanisha kuwa misukumo lazima iwe sawa kabisa.

Kwa mfano, ili 1 kidogo inakuja kwa namna ya +12 au +15 volts ya kushuka kwa voltage kutoka sifuri. Na hivyo kwamba ni kwa namna ya mstatili, au kupasuka kwa kasi - kilele ambacho lazima iwe chini ya, vizuri, + 5 volts, na si lazima kweli kuanzisha kikomo cha juu, kwa mfano. Hii ni kwa sababu wakati wa kupitisha msukumo kwa umbali fulani, ishara za umeme huwa dhaifu na "kupaka."

Ikiwa volts 12 hutumwa kutoka mwisho mmoja, basi volts 3 zinaweza kufikia nyingine, na hii inaweza kufasiriwa na mfumo wa kupokea tu kama kelele kwenye mstari, na habari iliyopitishwa itapotea.

Maana ya msukumo inapaswa pia kueleweka kwa njia sawa. Na misukumo inaweza kuwa habari, huduma, kusawazisha. Na kwa ujumla, kwa mfano, si msukumo, lakini tu voltage mara kwa mara. Ambayo inaweza kutumika kwa upande mwingine ili kuwasha kifaa kidogo.

Na waya zenyewe zilizojadiliwa mwanzoni kabisa zinapaswa kueleweka kwa usawa. Hapa ni lazima kusema mara moja kwamba kamwe hutokea kwamba kuna waya moja tu. Hata simu ina waya mbili kwenye kebo, lakini kawaida kebo hiyo inapaswa kuwa na nne. Na miingiliano ya data daima ina makondakta kadhaa. Baadhi yao ni habari, wengine ni huduma. Na hii ndiyo inapaswa kutambuliwa kwa usawa katika ncha zote mbili za mwingiliano. Na waya zinatambuliwa kama? Kwa rangi, ikiwa iko kwenye kebo na kwa eneo, ikiwa iko kwenye anwani za unganisho.

Bandari ni neno rahisi na pia sio wazi kabisa. Lakini maana ni sawa: kwamba kitu kinapakiwa kwenye kitu na kutumwa mahali fulani. Au kinyume chake, kitu ambacho kinakubali kitu na kupakua kitu kutoka kwake. Maana ni karibu sawa na kiolesura cha programu ya vifaa, lakini kwa namna fulani mafupi zaidi. Na kali zaidi, kama katika jeshi la wanamaji ("Watakuambia - usibishane ... lakini hatubishani ..."). Ishara zetu tu hazisafiri kwa bahari, lakini kwa kebo.

Pinout ya viunganishi vya bandari vya COM

Pinout haina muunganisho kwa kusulubishwa, ingawa, kama waya zinazoendesha kwa uhuru kwenye shehena moja ya kebo, hutenganishwa kwa pande na kuuzwa kwa bidii kwa pini zao, sawa na kusulubiwa. Piga, kwa Kiingereza "pin", pin, kwa hiyo pinout, neno tayari ni jargon ya mawasiliano ya kompyuta "pro-English". Inamaanisha kuunganisha waya kwenye pini kwenye kontakt.

Sura ya kontakt, utaratibu wa wiring (pini) ndani yake, madhumuni ya kila pini, pamoja na viwango vya voltage na maana ya ishara katika kila - hii ni sehemu ya interface. Kwa kawaida habari hii yote inakusanywa katika hati tofauti inayoitwa vipimo vya bandari. Ishara rahisi na wazi ya ukurasa mmoja. Katika aina zingine za miingiliano, kitu kama hiki kinaweza kuitwa "itifaki." Na hapa wanaiita tu "pinout".

Bandari za Serial COM

Bandari za COM za kompyuta ni muunganisho wa masafa marefu kati ya tata ya kompyuta. Tofauti na bandari na nyaya zinazofanana ambazo zilisababisha vifaa "nzito" - printa, skana, bandari za Com ziliunganisha vitengo vya "mwanga" kwenye kompyuta - panya, modem. Miingiliano ya kwanza ya kompyuta hadi kompyuta (kupitia "modemu isiyofaa"). Zaidi, mitandao ya ndani ilisambaa lini, na panya zilianza kuunganishwa kupitia kiunganishi sawa na kibodi - bandari ps/2 (pe-es-in nusu) - bandari ya com ilisahau kwa namna fulani.

Uamsho ulikuja na ujio wa kiolesura cha serial cha USB. Kwa hivyo iligeuka kuwa harakati kwenye duara. Sasa kwenye USB unaweza kupata, pamoja na anatoa flash, panya za USB na kibodi za USB. Printers, scanners, modem - vifaa vyote vya pembeni sasa viko kwenye USB, tayari nimesahau kuhusu nyaya nene na imara za LTP zinazofanana, ambazo zilipaswa kupigwa kwa kila upande na bolts 2. Na kuna waya mbili za ishara katika USB hizi (kwa kweli, kuna njia moja, ishara moja ya moja kwa moja, nyingine sawa - inverse) na mbili - ugavi wa umeme na nyumba.

Kulikuwa na bandari kadhaa za awali za COM. Ndogo - na maarufu zaidi Lango la pini 9 (D9), ambalo vifaa vingi viliunganishwa: panya, modemu, nyaya zisizo na modem. Mawasiliano yalipangwa kwa safu mbili, 5 na 4 mfululizo, na kuunda trapezoid. Kwa hivyo jina la D9. Kwenye "mama" nambari zilitoka kushoto kwenda kulia na kutoka juu hadi chini:

1 2 3 4 5

Wiring bandari ya COM, bandari RS232, pini 9.

Uteuzi Aina Maelezo
1 DCD Ingång Kiwango cha juu kutoka kwa modemu inapopokea mshirika wa modemu ya mtoa huduma
2 RxD Ingång Mipigo ya data inayoingia
3 TxD Utgång Mipigo ya data inayotoka
4 DTR Utgång Kiwango cha juu (+12V) kinaonyesha kuwa kompyuta iko tayari kupokea data. Kipanya kilichounganishwa kilitumia pini hii kama chanzo cha nishati
5 GND Mkuu Dunia
6 DSR Ingång Kifaa kiko tayari kusambaza data
7 RTS Utgång Utayari wa kujibu wa kifaa cha mshirika
8 CTS Ingång Utayari wa kupokea data kutoka kwa mshirika
9 R.I. Ingång Ishara inayojulisha kompyuta kuhusu simu inayoingia iliyopokelewa na modem kutoka kwa mstari wa mawasiliano

Pamoja na lango sambamba, lango la COM, au mlango wa serial, ni mojawapo ya lango za jadi za ingizo/pato za kompyuta, zinazotumiwa katika Kompyuta za kwanza. Ingawa bandari ya COM ina matumizi machache katika kompyuta za kisasa, hata hivyo, habari kuihusu inaweza kuwa muhimu kwa watumiaji wengi.

Bandari ya serial, kama bandari inayofanana, ilionekana muda mrefu kabla ya ujio wa kompyuta za kibinafsi za usanifu wa IBM PC. Katika kompyuta za kwanza za kibinafsi, bandari ya COM ilitumiwa kuunganisha vifaa vya pembeni. Hata hivyo, upeo wa matumizi yake ulikuwa tofauti na upeo wa bandari sambamba. Ikiwa bandari sambamba ilitumiwa hasa kuunganisha vichapishi, basi bandari ya COM (kwa njia, kiambishi awali COM ni muhtasari wa neno mawasiliano) kawaida ilitumika kufanya kazi na vifaa vya mawasiliano ya simu, kama vile modemu. Hata hivyo, unaweza kuunganisha kwenye bandari, kwa mfano, panya, pamoja na vifaa vingine vya pembeni.

Bandari ya COM, maeneo kuu ya maombi:

  1. Kuunganisha vituo
  2. ~ modemu za nje
  3. ~ printers and plotters
  4. ~ panya
  5. Uunganisho wa moja kwa moja kati ya kompyuta mbili

Hivi sasa, upeo wa bandari ya COM umepunguzwa kwa kiasi kikubwa kutokana na kuanzishwa kwa kasi zaidi na zaidi, na, kwa njia, pia serial, interface ya USB. Modemu za nje zilizoundwa kuunganishwa kwenye lango, pamoja na panya za "COM", zimekaribia kutotumika. Na ni nadra kwamba mtu yeyote sasa anaunganisha kompyuta mbili kwa kutumia kebo ya modem isiyo na maana.

Walakini, idadi ya vifaa maalum bado vinatumia bandari ya serial. Unaweza kuipata kwenye bodi nyingi za mama. Ukweli ni kwamba, ikilinganishwa na USB, bandari ya COM ina faida moja muhimu - kulingana na kiwango cha maambukizi ya data ya RS-232, inaweza kufanya kazi na vifaa kwa umbali wa makumi kadhaa ya mita, wakati aina mbalimbali za cable USB ni. kawaida hupunguzwa hadi mita 5.

Kanuni ya uendeshaji wa bandari ya serial na tofauti yake kutoka kwa sambamba

Tofauti na mlango sambamba (LPT), mlango wa mfululizo husambaza data kidogo kidogo kwenye mstari mmoja, badala ya kwenye mistari mingi kwa wakati mmoja. Mfuatano wa biti hupangwa katika mfululizo wa data, kuanzia na biti ya kuanzia na kuishia na sehemu ya kusimamisha, pamoja na biti za usawa zinazotumika kukagua makosa. Hapa ndipo jina lingine la Kiingereza linatoka, ambalo lina bandari ya serial - Bandari ya Serial.

Bandari ya serial ina mistari miwili ambayo data yenyewe hupitishwa - hizi ni mistari ya kuhamisha data kutoka kwa terminal (PC) hadi kifaa cha mawasiliano na nyuma. Kwa kuongeza, kuna mistari kadhaa zaidi ya udhibiti. Bandari ya Serial inatumiwa na chip maalum cha UART, ambacho kinaweza kusaidia kiwango cha juu cha uhamisho wa data, kufikia baud 115,000 (baiti / s). Hata hivyo, ni muhimu kuzingatia kwamba kasi halisi ya kubadilishana habari inategemea vifaa vyote viwili vya mawasiliano. Kwa kuongeza, kazi za kidhibiti cha UART ni pamoja na kubadilisha msimbo sambamba kuwa msimbo wa serial na kinyume chake.

Bandari hutumia ishara za umeme za voltage ya juu - hadi +15 V na -15 V. Ngazi ya sifuri ya mantiki ya bandari ya serial ni +12 V, na ngazi moja ya mantiki ni -12 V. Kushuka kwa voltage kubwa vile kunatuwezesha. kuhakikisha kiwango cha juu cha kinga ya kelele ya data iliyopitishwa. Kwa upande mwingine, voltages za juu zinazotumiwa kwenye bandari ya Serial zinahitaji ufumbuzi wa mzunguko tata. Hali hii pia ilichangia kushuka kwa umaarufu wa bandari.

Kiolesura cha serial RS-232

Uendeshaji wa bandari ya serial kwenye Kompyuta inategemea kiwango cha uhamisho wa data kwa vifaa vya mfululizo RS-232. Kiwango hiki kinaelezea mchakato wa kubadilishana data kati ya kifaa cha mawasiliano ya simu, kama vile modemu na terminal ya kompyuta. Kiwango cha RS-232 kinafafanua sifa za umeme za ishara, madhumuni yao, muda, pamoja na ukubwa wa viunganisho na pinouts kwao. Hata hivyo, RS-232 inaeleza tu kiwango cha kimwili cha mchakato wa kuhamisha data na haihusu itifaki za usafiri zinazotumiwa, ambazo zinaweza kutofautiana kulingana na vifaa vya mawasiliano na programu inayotumiwa.

Kiwango cha RS-232 kiliundwa mwaka wa 1969, na toleo lake la hivi karibuni, TIA 232, lilitolewa mwaka wa 1997. RS-232 sasa inachukuliwa kuwa ya kizamani, lakini mifumo mingi ya uendeshaji bado inaunga mkono.

Katika kompyuta za kisasa, kiunganishi cha bandari ya Serial ni kiunganishi cha kiume cha pini 9 cha DB-9, ingawa kiwango cha RS-232 pia kinaelezea kiunganishi cha DB-25 cha pini 25, ambacho kilitumika mara nyingi kwenye kompyuta za zamani. Kiunganishi cha DB-9 kawaida kiko kwenye ubao wa mama wa PC, ingawa katika kompyuta za zamani kinaweza kuwa kimewekwa kwenye kadi nyingi maalum iliyoingizwa kwenye slot ya upanuzi.

Soketi ya DB-9 ya pini 9 kwenye ubao wa mama

Kiunganishi cha DB-9 kwenye kebo ya kifaa kilichounganishwa kwenye mlango

Tofauti na bandari sambamba, viunganishi vya pande zote mbili za cable ya serial ya njia mbili ni sawa. Mbali na mistari ya kupitisha data yenyewe, bandari ina mistari kadhaa ya huduma ambayo habari ya udhibiti inaweza kupitishwa kati ya terminal (kompyuta) na kifaa cha mawasiliano ya simu (modem). Ingawa kinadharia ni njia tatu tu zinazohitajika ili bandari ya serial kufanya kazi - mapokezi ya data, usambazaji wa data na ardhi, mazoezi yameonyesha kuwa uwepo wa laini za huduma hufanya mawasiliano kuwa bora zaidi, ya kuaminika na, kwa sababu hiyo, haraka.

Kusudi la mistari ya kiunganishi cha bandari ya DB-9 kulingana na RS-232 na mawasiliano yao kwa anwani za kiunganishi cha DB-25:

Wasiliana na DB-9 Jina la Kiingereza Jina la Kirusi Wasiliana na DB-25
1 Gundua Mtoa huduma wa Data Mtoa huduma ametambuliwa 8
2 Sambaza Data Data iliyotumwa 2
3 Pokea Data Data iliyopokelewa 3
4 Kituo cha Data Tayari Utayari wa terminal 20
5 Ardhi Dunia 7
6 Data Imewekwa Tayari Utayari wa kisambazaji 6
7 Ombi la Kutuma Ombi la kutuma data 4
8 Wazi Kutuma Uhamisho wa data unaruhusiwa 5
9 Kiashiria cha pete Kiashiria cha pete 22

Usanidi na kukatizwa

Kwa kuwa kompyuta inaweza kuwa na bandari kadhaa za serial (hadi 4), mfumo hutenga usumbufu wa vifaa viwili kwao - IRQ 3 (COM 2 na 4) na IRQ 4 (COM 1 na 3) na usumbufu kadhaa wa BIOS. Programu nyingi za mawasiliano, pamoja na modem zilizojengwa, hutumia usumbufu na nafasi ya anwani ya bandari za COM kwa kazi zao. Katika kesi hii, sio bandari halisi hutumiwa, lakini kinachojulikana kama bandari za kawaida, ambazo zinaigwa na mfumo wa uendeshaji yenyewe.

Kama ilivyo kwa vifaa vingine vingi vya ubao wa mama, vigezo vya bandari ya COM, haswa maadili ya kukatiza kwa BIOS yanayolingana na kukatizwa kwa maunzi, yanaweza kusanidiwa kupitia kiolesura cha Usanidi wa BIOS. Kwa hili, chaguzi za BIOS kama vile COM Port, Onboard Serial Port, Serial Port Address, nk hutumiwa.

Hitimisho

Lango la serial la PC kwa sasa si njia inayotumika sana ya kuingiza/kutoa. Walakini, kwa kuwa kuna idadi kubwa ya vifaa, haswa kwa madhumuni ya mawasiliano ya simu, iliyoundwa kufanya kazi na bandari ya serial, na pia kwa sababu ya faida kadhaa za itifaki ya data ya serial ya RS-232, kiolesura cha serial haipaswi kuandikwa. kama usanifu wa kizamani kabisa wa kompyuta ya kibinafsi.

THR - rejista ya data ya kati ya transmita(andika tu) Data iliyoandikwa kwa rejista itahamishiwa kwenye rejista ya mabadiliko ya pato (ikiwa ni bure), ambayo itatolewa wakati ishara ya kuwezesha iko. CTS. Bit 0 hupitishwa (na kupokelewa) kwanza. Ikiwa urefu wa kutuma ni chini ya bits 8, bits muhimu zaidi hazizingatiwi.
RBR - pokea rejista ya akiba ya data(kusoma tu) Data iliyopokelewa na rejista ya mabadiliko ya pembejeo imewekwa kwenye rejista RBR, kutoka ambapo zinaweza kusomwa na processor. Ikiwa kwa wakati tabia inayofuata inapokelewa, ya awali haijasomwa kutoka kwa rejista, hitilafu ya kufurika imeandikwa. Wakati urefu wa kutuma ni chini ya bits 8, bits muhimu zaidi kwenye rejista zina thamani ya sifuri.
DLL - rejista ya kigawanyaji cha masafa ya chini.
DLM - rejista ya kigawanyaji cha masafa ya juu. Kigawanyiko kinatambuliwa na formula D=115200/V, ambapo V ni kasi ya maambukizi, bit/s. Mzunguko wa saa ya pembejeo ya 1.8432 MHz imegawanywa na sababu fulani ili kuzalisha mara 16 ya kiwango cha data.
IER - kukatiza kuwezesha rejista. Thamani kidogo ya moja huwezesha kukatiza kutoka kwa chanzo kinacholingana.
Sajili kazi kidogo IER:
* bits =0 - haitumiki;
* kidogo 3 - Mod_IE- kwa kubadilisha hali ya modem (yoyote ya mistari CTS, DSR, RI, DCD);
* kidogo 2 - RxL_IE- kutokana na kuvunja mstari / kosa;
* kidogo 1 - TxD_IE- baada ya kukamilika kwa uhamisho;
* kidogo 0 - RxD_IE- baada ya kupokea mhusika (katika hali ya FIFO - usumbufu wa kuisha).
IIR - kukatiza rejista ya kitambulisho na ishara ya hali ya FIFO(kwa kusoma tu). Ili kurahisisha uchanganuzi wa programu, UART hupanga maombi ya kukatiza ndani kulingana na mfumo wa kipaumbele wa ngazi nne. Agizo la kipaumbele (kushuka): hali ya mstari, mapokezi ya tabia, kutolewa kwa rejista ya transmitter, hali ya modem. Wakati hali ya usumbufu inatokea, UART inaelekeza kwenye chanzo cha kipaumbele cha juu hadi kitakapofutwa na operesheni inayolingana. Tu baada ya hii ombi litatolewa kuonyesha chanzo kinachofuata. Madhumuni ya bits za rejista yamefafanuliwa hapa chini: IIR.
* Bits - ishara ya hali ya FIFO:
11-mode FIFO 16550A;
10 - FIFO 16550 mode;
00 - kawaida.
* Bits - haitumiki.
* Bit 3 - pokea kukatika kwa muda katika modi ya FIFO (kuna herufi za kusomwa kwenye bafa).
* Biti - sababu ya usumbufu na kipaumbele cha juu (katika hali ya kawaida, sio FIFO):
11 - hitilafu / mstari wa kuvunja, upya upya unafanywa kwa kusoma rejista ya hali ya mstari;
10 - tabia iliyopokelewa, upya upya unafanywa kwa kusoma data;
01 - herufi iliyopitishwa (jiandikishe THR tupu), kuweka upya hufanywa kwa kuandika data;
00 - mabadiliko ya hali ya modem; Upya unafanywa kwa kusoma rejista ya hali ya modem.
* Bit 0 ni ishara ya ombi la usumbufu ambalo halijashughulikiwa (1 - hakuna ombi, 0 - kuna ombi).
Katika hali ya FIFO, sababu ya usumbufu inatambuliwa na bits.
* O11 - hitilafu / mapumziko ya mstari. Upya unafanywa kwa kusoma rejista ya hali ya mstari.
* 010 - mhusika amekubaliwa. Upya unafanywa kwa kusoma rejista ya data ya mpokeaji
* 110 - kiashirio cha muda kuisha (katika muda wa muda wa herufi 4, hakuna herufi moja iliyopitishwa au kupokelewa, ingawa kuna angalau moja kwenye bafa). Upya unafanywa kwa kusoma rejista ya data ya mpokeaji.
* 001 - kujiandikisha THR tupu Kuweka upya kunafanywa kwa kuandika data.
* 000 - mabadiliko ya hali ya modem ( CIS, DSR, RI au DCD) Upya unafanywa kwa kusoma rejista MSR.
FCR - Rejesta ya udhibiti wa FIFO(kwa kurekodi tu). Madhumuni ya bits za rejista yamefafanuliwa hapa chini: FCR:
* Biti - ITL(Kingaza Kiwango cha Kichochezi) - Kiwango cha kujaza bafa ya FIFO ambapo usumbufu hutolewa:
00 - 1 byte (chaguo-msingi);
01 - 4 ka;
10 - 8 ka;
11 - 14 ka.
*Biti zimehifadhiwa.
* Bit 3 - wezesha shughuli za DMA.
* Kidogo 2 - RESETTF(Rudisha Transmitter FIFO) - upya FIFO transmitter counter (kwa kuandika moja; rejista ya mabadiliko haijawekwa upya).
* Kidogo 1 - UPYA(Rudisha Mpokeaji FIFO) - weka upya kidhibiti cha mpokeaji FIFO (kwa kuandika moja; rejista ya mabadiliko haijawekwa upya).
* Kidogo 0 - TRIFFOE(Sambaza na Upokee FIFO Wezesha) - wezesha (kwa kitengo) hali ya FIFO kwa kisambazaji na kipokeaji. Wakati wa kubadilisha modi, bafa za FIFO huondolewa kiotomatiki.
LCR - rejista ya udhibiti wa mstari(mipangilio ya parameta ya kituo). Madhumuni ya bits za rejista yamefafanuliwa hapa chini: LCR.
* kidogo 7 - DLAB(Divisor Latch Access Bit) - inadhibiti upatikanaji wa mgawanyiko wa mzunguko.
* Kidogo 6 - BRCON(Udhibiti wa Kuvunja) - kuzalisha mapumziko ya mstari (kutuma sufuri) wakati BRCON=1.
* kidogo 5 - STICPAR(Parity Sticky) - uundaji wa kulazimishwa wa usawa:
0 - kuangalia kidogo huzalishwa kwa mujibu wa usawa wa ishara ya pato;
1 - thamani ya mara kwa mara ya biti ya kudhibiti: wakati EVENPAR=1 - sifuri, pamoja na EVENPAR=0 - moja.
* Kidogo 4 - EVENPAR(Hata Usawa Chagua) - uteuzi wa aina ya udhibiti: 0 - isiyo ya kawaida, 1 - hata.
* Kidogo 3 - WAZAZI(Usawazishaji Wezesha) - udhibiti wa azimio la biti:
1 - kudhibiti kidogo (usawa au mara kwa mara) imewezeshwa;
0 - biti ya kudhibiti imezimwa.
* Kidogo 2 - STOPB(Acha Biti) - idadi ya sehemu za kuacha:
0 - 1 kuacha kidogo;
1 - 2 kuacha bits (kwa 5-bit code, stop bit itakuwa 1.5 bits urefu).
* Biti - SERIALDB(Biti za data za serial) - idadi ya vipande vya data:
00 - 5 bits;
01-6 bits;
10 - 7 bits;
Biti 11-8.
MCR - rejista ya udhibiti wa modem. Madhumuni ya bits za rejista yamefafanuliwa hapa chini: MCR.
* Bits =0 - zimehifadhiwa.
* Kidogo 4 - LME(Njia ya Kurudi nyuma Wezesha) - wezesha hali ya uchunguzi:
0 - hali ya kawaida;
1 - hali ya uchunguzi (tazama hapa chini).
* Kidogo 3 - I.E.(Kukatiza Wezesha) - kuwezesha kukatiza kwa kutumia pato la nje OUT2 MSR.7:
0 - usumbufu umezimwa;
1 - kukatizwa kumewashwa.
* Kidogo 2 - OUT1C(OUT1 Udhibiti wa Bit) - udhibiti wa ishara ya pato 1 (haijatumiwa); katika hali ya uchunguzi inaingia pembejeo MSR.6.
* Kidogo 1 - RTSC(Ombi la Kutuma Udhibiti) - udhibiti wa pato RTS; katika hali ya uchunguzi inaingia pembejeo MSR.4:
0 - hai (-V);
1 - passiv (+V).
* Kidogo 0 - DRC(Udhibiti wa Tayari wa Kituo cha Data) - udhibiti wa pato DTR; katika hali ya uchunguzi inaingia pembejeo MSR.5:
0 - hai (-V);
1 - passiv (+V).
LSR - rejista ya hali ya mstari(kwa usahihi zaidi, hali ya transceiver). Madhumuni ya bits za rejista ya LSR yameelezwa hapa chini.
* kidogo 7 - FIFOE(Hali ya Hitilafu ya FIFO) - hitilafu katika data iliyopokelewa katika hali ya FIFO (bafa ina angalau herufi moja iliyopokelewa na hitilafu ya umbizo, hitilafu ya usawa, au mapumziko). Katika hali isiyo ya FIFO daima ni 0.
* Kidogo 6 - JARIBU(Hali Tupu ya Transmitter) - rejista ya kisambazaji ni tupu (hakuna data ya kusambaza katika rejista ya zamu au rejista za bafa THR au FIFO).
* kidogo 5 - TATU(Daftari la Kushikilia la Transmitter Tupu) - rejista ya transmitter iko tayari kupokea byte kwa maambukizi. Katika hali ya FIFO, inaonyesha kuwa hakuna herufi katika bafa ya kusambaza ya FIFO. Huenda ikawa chanzo cha usumbufu.
* Kidogo 4 - BD(Kuvunja Kupatikana) - kiashiria cha kuvunja mstari (pembejeo ya mpokeaji iko katika hali 0 kwa si chini ya wakati ishara ilitumwa).
* Kidogo 3 - F.E.(Hitilafu ya Kutunga) - hitilafu ya sura (kidogo cha kuacha kisicho sahihi).
* Kidogo 2 - RE(Hitilafu ya Usawa) - angalia kosa kidogo (usawa au fasta).
* Kidogo 1 - OE(Hitilafu ya Overrun) - kufurika (kupoteza tabia). Ikiwa mapokezi ya herufi inayofuata huanza kabla ya ile ya awali kupakuliwa kutoka kwa rejista ya zamu hadi kwenye rejista ya bafa au kwenye rejista ya FIFO, herufi ya awali kwenye rejista ya zamu inapotea.
* Kidogo 0 - D.R.(Data ya Mpokeaji Tayari) - data iliyopokelewa iko tayari (katika DHR au FIFO bafa). Weka upya - kwa kusoma mpokeaji.
Viashiria vya makosa - bits - huwekwa upya baada ya kusoma rejista LSR. Katika hali ya FIFO, alama za makosa huhifadhiwa kwenye bafa ya FIFO pamoja na kila herufi. Katika rejista, zimewekwa (na kusababisha usumbufu) wakati mhusika aliyepokelewa kimakosa yuko juu ya FIFO (ya kwanza kwenye foleni ya kusomwa). Katika tukio la kukatika kwa mstari, tabia moja tu ya "mapumziko" imeingia kwenye FIFO, na UART inasubiri kurejesha na kidogo ya kuanza baadae. MSR- rejista ya hali ya modem. Madhumuni ya bits za rejista yamefafanuliwa hapa chini: MSR:
* kidogo 7 - DCD(Tambua Mtoa huduma wa Data) - hali ya mstari DCD:
0 - hai (-V);
1 - passiv (+V).
* Kidogo 6 - R.I.(Kiashiria cha Gonga) - hali ya mstari R.I.:
0 - hai (-V);
1 - passiv (+V).
* kidogo 5 - DSR(Data Imewekwa Tayari) - hali ya mstari DSR:
0 - hai (-V);
1 - passiv (+V).
* Kidogo 4 - CTS(Wazi Ili Kutuma) - hali ya mstari CTS:
0 - hai (-V);
1 - passiv (+V).
* Kidogo 3 - DDCD(Delta Data Carrier Detect) - mabadiliko ya hali DCD.
* Kidogo 2 - TERI(Kiashiria cha Ufuatiliaji wa Pete) - kuoza kwa bahasha R.I.(kata simu).
* Kidogo 1 - DDSR(Delta Data Set Tayari) - mabadiliko ya hali DSR.
* Kidogo 0 - DCTS(Delta Wazi Ili Kutuma) - mabadiliko ya hali CTS.
Ishara za mabadiliko (bits) zinawekwa upya wakati rejista inasomwa.
SRC - rejista ya kazi(8 bits), haiathiri uendeshaji wa UART, imekusudiwa kuhifadhi data ya muda (haipatikani katika 8250).
KATIKA hali ya uchunguzi(katika LME=1) "stub" ya ndani imepangwa ndani ya UART:
* pato la transmita hubadilishwa kuwa hali moja ya mantiki;
* Ingizo la mpokeaji limezimwa; * pembejeo DSR, CTS, RI Na DCD imetenganishwa na mistari ya ingizo na kudhibitiwa ndani kwa bits TDRC, RTSC, OUT1C, IE;
* Matokeo ya udhibiti wa modemu hubadilishwa hadi hali ya passiv (zero mantiki).
Data iliyopitishwa katika fomu ya serial inapokelewa mara moja, ambayo inakuwezesha kuangalia chaneli ya data ya ndani ya bandari (ikiwa ni pamoja na rejista za kuhama) na kukatiza usindikaji, na pia kuamua kasi ya UART.

Kipengele maalum cha bandari hii ikilinganishwa na teknolojia nyingine za "serial" ni ukweli kwamba hakuna mahitaji ya muda kati ya 2 byte. Kuna mahitaji ya wakati tu kati ya bits za byte moja (ikiwa ni pamoja na kuanza, kuacha na usawa), usawa wa pause kati ya bits ya byte moja inaitwa kiwango cha baud - kiwango cha baud. Pia katika teknolojia hii hakuna dhana ya "mfuko".

Teknolojia zingine za "serial", kama vile X.25, USB au Ethernet, zina dhana ya "pakiti", na zinaweka mahitaji madhubuti ya kuweka muda kati ya biti zote za pakiti moja.

Kwa sababu hii, katika istilahi ya Cisco IOS, bandari hii iliitwa async - tofauti na serial ya synchronous, i.e. X.25. Kwa sababu hiyo hiyo, moduli ya Windows inayotumia PPP juu ya bandari hii inaitwa AsyncMac.sys (kiwango cha PPP kinaeleza kando utekelezaji wa PPP, ambayo inatumia dhana ya "pakiti", juu ya mlango wa serial ambao hauna dhana hii) .

Baadhi ya itifaki za mawasiliano ya kiviwanda huweka mahitaji madhubuti ya muda kati ya baiti za serial za bandari. Itifaki kama hizo ni ngumu sana kutekeleza katika mifumo ya kufanya kazi nyingi na usaidizi dhaifu wa wakati halisi, kama vile Windows, na kwa hivyo mara nyingi huhitaji MS-DOS na programu zilizopitwa na wakati kutoka karibu miaka 20 iliyopita kwenye kompyuta ya kudhibiti.

Kusudi

Kiwango kinachotumiwa zaidi kwa bandari ya serial ya kompyuta za kibinafsi ni RS-232C. Hapo awali, bandari ya serial ilitumiwa kuunganisha terminal, baadaye kwa modem au panya. Sasa inatumika kuunganishwa na, kuwasiliana na maunzi kwa ajili ya ukuzaji wa mifumo ya kompyuta iliyopachikwa, vipokezi vya satelaiti, rejista za pesa, pamoja na vifaa vya mfumo wa usalama wa kituo.

Kwa kutumia bandari ya COM, unaweza kuunganisha kompyuta mbili kwa kutumia kinachojulikana kama "null modem cable" (tazama hapa chini). Imetumika tangu siku za MS-DOS kwa kuhamisha faili kutoka kwa kompyuta moja hadi nyingine, katika UNIX kwa ufikiaji wa terminal kwa mashine nyingine, na katika Windows (hata za kisasa) kwa kitatuzi cha kiwango cha kernel.

Faida ya teknolojia ni unyenyekevu mkubwa wa vifaa. Hasara ni kasi ya chini, ukubwa mkubwa wa kontakt, pamoja na mahitaji ya mara nyingi ya juu kwa muda wa majibu ya OS na dereva na idadi kubwa ya kukatika (moja kwa nusu ya foleni ya vifaa, yaani 8 byte).

Viunganishi

Kwenye bodi za mama kutoka kwa wazalishaji wanaoongoza (kwa mfano, Intel) au mifumo iliyotengenezwa tayari (kwa mfano, IBM, Hewlett-Packard, Fujitsu Siemens Computers), ishara ifuatayo inatumika kwa bandari ya serial:

Viunganishi vilivyotumika sana vya umbo la D, vilivyosanifiwa mnamo 1969, ni pini 9 na pini 25 (DB-9 na DB-25, mtawalia). Hapo awali, DB-31 na pande zote za pini nane DIN-8 pia zilitumiwa. Upeo wa kasi ya maambukizi katika toleo la kawaida la bandari ni baud 115,200.

Umuhimu

Kuna viwango vya kuiga mlango wa serial juu ya USB na juu ya Bluetooth (teknolojia hii iliundwa kwa kiasi kikubwa kama "bandari isiyo na waya").

Walakini, uigaji wa programu wa bandari hii bado unatumika sana leo. Kwa mfano, karibu simu zote za rununu huiga lango la kawaida la COM na modemu ndani yake ili kutekeleza utengamano - ufikiaji wa kompyuta kwenye Mtandao kupitia vifaa vya simu vya GPRS/EGDE/3G. Katika kesi hii, USB, Bluetooth au Wi-Fi hutumiwa kwa uunganisho wa kimwili kwenye kompyuta.

Pia, uigaji wa programu wa bandari hii hutolewa kwa "wageni" wa VMWare na mashine za mtandaoni za Microsoft Hyper-V, lengo kuu ambalo ni kuunganisha kitatuzi cha kiwango cha Windows kernel kwa "mgeni".

Vifaa

Kiunganishi kina anwani:

DTR (Data Terminal Tayari - utayari wa kupokea data) - pato kwenye kompyuta, ingiza kwenye modem. Inaonyesha kuwa kompyuta iko tayari kutumia modem. Kuweka upya laini hii husababisha kuwashwa upya kwa modemu karibu kukamilika hadi hali yake ya asili, ikijumuisha. kunyongwa (baadhi ya rejista za udhibiti huishi uwekaji upya kama huo). Kwenye UNIX, hii hutokea wakati programu zote zimefunga faili kwenye kiendeshi cha bandari ya serial. Kipanya hutumia waya huu kupokea nishati.

DSR (Data Set Tayari - utayari wa uhamisho wa data) - pembejeo kwenye kompyuta, pato kwenye modem. Inaonyesha kuwa modem iko tayari. Ikiwa mstari huu ni sifuri, basi katika baadhi ya mifumo ya uendeshaji inakuwa haiwezekani kufungua bandari kama faili.

RxD (Pokea Data) - pembejeo kwenye kompyuta, pato kwenye modem. Mtiririko wa data unaoingia kwenye kompyuta.

TxD (Kusambaza Data) - pato kwenye kompyuta, ingiza kwenye modem. Mtiririko wa data kutoka kwa kompyuta.

CTS (Wazi kwa Kutuma - utayari wa kutuma) - pembejeo kwenye kompyuta, pato kwenye modem. Kompyuta inahitajika kusimamisha utumaji data hadi waya hii iwekwe kwa moja. Inatumika katika itifaki ya udhibiti wa mtiririko wa maunzi ili kuzuia kufurika kwenye modemu.

RTS (Ombi la Kutuma - ombi la kutuma) - pato kwenye kompyuta, ingiza kwenye modem. Modem inahitajika ili kusimamisha utumaji data hadi waya hii iwekwe kuwa moja. Inatumika katika itifaki ya udhibiti wa mtiririko wa maunzi ili kuzuia maunzi na viendeshaji kufurika.

DCD (Carrier Detect - uwepo wa carrier) - pembejeo kwenye kompyuta, pato kwenye modem. Weka kwa moja kwa modem baada ya kuanzisha uhusiano na modem upande wa pili, upya hadi sifuri wakati uunganisho umevunjika. Vifaa vya kompyuta vinaweza kutoa usumbufu wakati tukio kama hilo linatokea.

RI (Kiashiria cha Gonga - ishara ya kupigia) - pembejeo kwenye kompyuta, pato kwenye modem. Imewekwa na modem kwa moja baada ya kugundua ishara ya simu ya simu. Vifaa vya kompyuta vinaweza kutoa usumbufu wakati tukio kama hilo linatokea.

SG (Signal Ground) - waya wa ishara ya kawaida ya bandari, sio ardhi ya kawaida, kama sheria, pekee kutoka kwa kesi ya kompyuta au modem.

Kebo ya modemu isiyo na maana hutumia jozi mbili zilizovuka: TXD/RXD na RTS/CTS.

Kiwango (tangu vifaa vya bandari vya IBM vya asili) vinaitwa UART 16550 (sasa imejumuishwa kwenye chipu ya SuperIO kwenye ubao wa mama pamoja na vifaa vingine kadhaa). Tangu wakati wa IBM PC, foleni ya byte ya vifaa imeonekana ndani yake, ambayo inapunguza sana idadi ya kuingiliwa iliyotolewa na kifaa.

Ufikiaji wa programu kwa bandari ya COM

UNIX

Kuna sehemu ya usajili kwa kila bandari. Sehemu hizi zina majina yafuatayo:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial10000

ambapo thamani ya mwisho "Serial10000" ni nambari ya kipekee kwa kila bandari mpya ya COM iliyoongezwa kwenye mfumo, kwa pili - "Serial10001", nk.

Ili kuwasiliana na vifaa vinavyotumia Bluetooth, baadhi ya programu (kwa mfano, programu kama hizo ni pamoja na: programu inayosawazisha orodha ya anwani na simu ya rununu; programu ambayo inachukua viwianishi vya GPS kutoka kwa kipokezi cha GPS) inahitaji mlango wa COM kwenye kompyuta ya mtumiaji.

Programu zinazotumia bandari za COM kusaidia mawasiliano kwa kutumia teknolojia ya wireless ya Bluetooth, iliyotengenezwa moja kwa moja na Microsoft, ni pamoja na:

  • HotSync inayotumika kwenye kompyuta za mkononi
  • ActiveSync, kutumika katika PC mfukoni

Mfumo wa Uendeshaji/2

Dereva iliyopo ya COM.SYS inasaidia bandari 4 tu za COM, ambazo kila moja lazima iwe na laini yake ya kukatiza. Ili kuhudumia bandari za COM na mstari wa kawaida wa kukatiza, lazima utumie kiendeshi cha SIO.

Kebo ya modemu tupu

Makala kuu: Kebo ya modemu tupu

Katika baadhi ya matukio, inawezekana kutumia toleo rahisi la cable, ambayo pini 2, 3 na 5 tu hutumiwa.

Angalia pia

  • Ishara za Bandari ya Serial

Vidokezo

Viungo

  • Tafsiri ya mwongozo wa programu ya bandari ya COM katika mifumo ya uendeshaji ya POSIX
  • Kupanga bandari katika java - hukuruhusu kufanya kazi kutoka Windows, tofauti na vifurushi rasmi kutoka kwa Jua.
  • Kupanga bandari ya COM katika C++ ya Windows. Maktaba iliyotengenezwa tayari, misimbo ya chanzo, programu za sampuli.
  • Yashkardin V.L. Bandari ya serial. Kupanga bandari ya COM katika Windows na MS-DOS. SoftElectro (2009). Imehifadhiwa kutoka ya asili mnamo Februari 8, 2012.

Kwa hivyo tulifika kwenye bandari ya COM. Lakini nayo kila kitu sio rahisi kama ilivyo kwa LPT, na matumizi yake kamili yatahitaji bidii zaidi. Tatizo kuu pia ni faida yake kuu - uhamisho wa data wa serial. Ikiwa katika LPT baiti ya data inapitishwa kwa mistari 8, kidogo kwa kila mstari, na hali ya kila laini inaweza kutazamwa kwa urahisi, basi kwenye bandari ya COM baiti ya data hupitishwa kidogo kidogo kwenye mstari mmoja (inayohusiana na ardhi. , bila shaka) na uone kile kinachopitishwa huko na LED pekee haitafanya hivyo. Ili kufanya hivyo, unahitaji kifaa maalum - kibadilishaji cha mkondo wa data ya serial kuwa sawa, kinachojulikana. UART (Kisambazaji Kipokeaji Kinasawazishwa cha Universal/Asynchronous). Kwa mfano, imejumuishwa kwenye ubao wa mama wa kompyuta iliyo na bandari ya COM, au katika kidhibiti chochote kikubwa zaidi.


Natumai bado umekata tamaa katika kusimamia bandari ya COM. Sio maangamizi na utusitusi wote. Baadhi ya matokeo yanaweza kupatikana bila UART. Wacha tuunda kazi ambayo tutatekeleza katika hatua ya awali ya kufanya kazi na bandari ya COM:


"Ningependa LED iunganishwe kwenye kompyuta kupitia bandari ya COM. Ninazindua programu. Ninafanya hatua fulani katika programu hii, LED inawaka, nafanya kitu kingine - LED inazima."


Kazi ni maalum kabisa (kwa kuzingatia ukweli kwamba USART haitumiki) na ni kazi safi ya "kufanya-wewe-mwenyewe", lakini inawezekana kabisa na inafanya kazi. Hebu tuanze kuitekeleza.


bandari 1.COM

Tena, chukua kitengo cha mfumo wa PC yako na uangalie nyuma. Tunakumbuka kuna kiunganishi cha pini 9 - hii ni bandari ya COM. Kwa kweli kunaweza kuwa na kadhaa kati yao (hadi 4). Kompyuta yangu ina bandari mbili za COM (tazama picha).


2. Ugani wa bandari ya COM


3. Vifaa

Pia tutalazimika "kucheza" na vifaa, kwa maana kwamba itakuwa ngumu zaidi kuliko kifaa cha kwanza cha bandari ya LPT. Ukweli ni kwamba itifaki ya RS-232, kwa njia ambayo data inabadilishwa kwenye bandari ya COM, ina uhusiano tofauti wa mantiki ya hali-voltage. Ikiwa kawaida hii ni ya kimantiki 0 0 V, mantiki 1 +5 V, basi katika RS-232 uhusiano huu ni kama ifuatavyo: mantiki 0 +12 V, mantiki 1 -12 V.

Na kwa mfano, baada ya kupokea -12 V, haijulikani mara moja nini cha kufanya na voltage hii. Kwa kawaida, viwango vya RS-232 vinabadilishwa kuwa TTL (0.5 V). Chaguo rahisi ni diode za zener. Lakini napendekeza kufanya kibadilishaji hiki kwenye chip maalum. Inaitwa MAX232.

Sasa hebu tuone ni ishara gani kutoka kwa bandari ya COM tunaweza kuona kwenye LEDs? Kwa kweli, kuna mistari 6 ya kujitegemea kwenye bandari ya COM, ambayo ni ya kupendeza kwa msanidi wa vifaa vya kiolesura. Mbili kati yao bado hazipatikani kwetu - mistari ya data ya serial. Lakini 4 zilizosalia zimeundwa kudhibiti na kuonyesha mchakato wa kuhamisha data na tunaweza "kuzihamisha" ili kukidhi mahitaji yetu. Mbili kati yao imekusudiwa kudhibiti kutoka kwa kifaa cha nje na hatutazigusa kwa sasa, lakini sasa tutatumia mistari miwili iliyobaki. Wanaitwa:

  • RTS- Ombi la uhamisho. Mstari wa mwingiliano unaoonyesha kuwa kompyuta iko tayari kupokea data.
  • DTR- Kompyuta iko tayari. Mstari wa mwingiliano unaoonyesha kuwa kompyuta imewashwa na iko tayari kuwasiliana.

Sasa tunahamisha kusudi lao kidogo, na LED zilizounganishwa nao zitatoka au kuangaza, kulingana na vitendo katika programu yetu wenyewe.

Kwa hivyo, hebu tuweke pamoja mchoro utakaotuwezesha kutekeleza matendo yetu yaliyokusudiwa.

Na hapa ni utekelezaji wake wa vitendo. Nadhani utanisamehe kwamba niliifanya kwa toleo la ubao la bubu, kwa sababu sitaki kutengeneza bodi kwa mzunguko huo "wenye tija sana".


4. Sehemu ya programu

Kila kitu ni rahisi zaidi hapa. Hebu tuunde programu ya Windows katika Microsoft Visual C++ 6.0 kulingana na MFC ili kudhibiti njia mbili za mawasiliano ya bandari ya COM. Ili kufanya hivyo, tengeneza mradi mpya wa MFC na upe jina, kwa mfano, TestCOM. Ifuatayo, chagua chaguo la kujenga kulingana na mazungumzo.

Toa mwonekano wa dirisha la mazungumzo ya programu yetu kama ilivyo kwenye Mtini. chini, yaani ongeza vifungo vinne, viwili kwa kila moja ya mistari. Mmoja wao ni kwa mtiririko huo muhimu "kuzima" mstari, mwingine "kuweka" kwa moja.

Darasa CTestCOMDlg: CDialog ya umma ( // Ujenzi wa umma: CTestCOMDlg(CWnd* pParent = NULL); // mjenzi wa kawaida HANDLE hFile;

Ili programu yetu kudhibiti mistari ya bandari ya COM, lazima kwanza ifunguliwe. Hebu tuandike msimbo unaohusika na kufungua bandari wakati wa kupakia programu.

HFile = CreateFile("COM2", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL); if(hFile==INVALID_HANDLE_VALUE) ( MessageBox("Lango haikuweza kufunguliwa!", "Error", MB_ICONERROR); ) vinginevyo ( MessageBox("Mlango umefunguliwa kwa ufanisi", "Ok", MB_OK); )

Kwa kutumia kitendakazi cha kawaida cha Win API CreateFile() fungua bandari ya COM COM2. Ifuatayo, tunaangalia mafanikio ya ufunguzi na kuonyesha ujumbe wa habari. Hapa tunahitaji kufanya kumbuka muhimu: COM2 iko kwenye kompyuta yangu, lakini kwenye kompyuta yako unaweza kuiunganisha kwenye bandari nyingine ya COM. Ipasavyo, jina lake linahitaji kubadilishwa kuwa bandari yoyote unayotumia. Unaweza kuona ni nambari gani za bandari zilizopo kwenye kompyuta yako kama hii: Anza -> Mipangilio -> Jopo la Kudhibiti -> Mfumo -> Vifaa -> Kidhibiti cha Kifaa -> Bandari (COM na LPT).

Matokeo yake, kazi CTestCOMDlg::OnInitDialog(), iliyoko kwenye faili TestCOMDlg.cpp, darasa letu la mazungumzo linapaswa kuchukua fomu:

BOOL CTestCOMDlg::OnInitDialog() ( CDialog::OnInitDialog(); // Ongeza kipengee cha menyu cha "Kuhusu..." kwenye menyu ya mfumo. // IDM_ABOUTBOX lazima iwe katika safu ya amri ya mfumo. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); ) ) // Weka ikoni ya mazungumzo haya. Mfumo hufanya hivi kiotomatiki // wakati dirisha kuu la programu sio mazungumzo ya SetIcon(m_hIcon, TRUE); // Weka ikoni kubwa SetIcon(m_hIcon, FALSE); // Weka ikoni ndogo // TODO: Ongeza uanzishaji zaidi hapa hFile = CreateFile("COM2", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL); if(hFile==INVALID_HANDLE_VALUE) ( MessageBox("Haikuweza kufungua mlango!", "Ostbk", MB_ICONERROR); ) ( MessageBox("Bandari imefunguliwa kwa ufanisi", "Ok", MB_OK); ) rudisha TRUE; // rudisha TRUE isipokuwa ukiweka lengo kwenye udhibiti)

Sasa hebu tuongeze vidhibiti kwa vitufe vya kudhibiti laini. Niliwapa majina yanayofaa: kazi inayoweka moja kwenye mstari wa DTR ni OnDTR1(), 0 ni OnDTR0(). Kwa mstari wa RTS, kwa njia sawa. Acha nikukumbushe kwamba kidhibiti kinaundwa wakati bonyeza mara mbili kwenye kifungo. Kama matokeo, kazi hizi nne zinapaswa kuonekana kama:

Void CTestCOMDlg ::OnDTR1() ( // TODO: Ongeza msimbo wako wa kidhibiti arifa hapa EscapeCommFunction(hFile, 6); ) utupu CTestCOMDlg ::OnDTR0() ( // TODO: Ongeza msimbo wako wa kudhibiti arifa hapa EscapeCommFunction(hFile, 5); ) utupu CTestCOMDlg::OnRTS1() ( // TODO: Ongeza msimbo wako wa kidhibiti arifa hapa EscapeCommFunction(hFile, 4); ) utupu CTestCOMDlg::OnRTS0() ( // TODO: Ongeza msimbo wako wa kudhibiti arifa hapa EscapeCommFunction(hFile, 3); )

Hebu nieleze kidogo jinsi zinavyofanya kazi. Kama unaweza kuona, ndani zina simu kwa kazi sawa ya Win API EscapeCommFunction() na vigezo viwili. Wa kwanza wao ni kushughulikia (HANDLE) kwenye bandari ya wazi, ya pili ni msimbo maalum wa hatua unaofanana na hali inayotakiwa ya mstari.

Hiyo ni, tunakusanya na kuzindua. Ikiwa kila kitu ni sawa, unapaswa kuona ujumbe kuhusu ufunguzi wa mafanikio wa bandari. Ifuatayo, kwa kushinikiza vifungo vinavyolingana, tunapiga LED zilizounganishwa kwenye bandari ya COM.

© Ivanov Dmitry
Desemba 2006