com port konnektoru. COM portu (seriyalı port)

Əvvəlcə onlar görünəndə fərdi kompüterlər, onlarla birlikdə bir neçə nə Tanrı bilir, nə mürəkkəbdir, lakin bütün digər doldurma, portlar və ya dövrə interfeysləri ilə birlikdə olduqca uğurla işləyir. Port sözü məlumatların ötürülməsi üsulunu bildirir. Bu yaddaş hüceyrəsi kimidir. Yalnız məlumat RAM-a yazılır və bəzi proqramlar ehtiyac duyduqca, proqram onu ​​emal edənə qədər (yaxud proqramın özü hələ də kompüterdə kiməsə lazımdır) orada qalır.

Port və yaddaş

Yəni proqram yaddaşdan məlumatları prosessora oxuyacaq, onunla nəsə edəcək, ola bilsin ki, bu məlumatdan hansısa yeni məlumatlar alacaq, onu başqa yerə yazacaq. Və ya verilən özü sadəcə başqa yerə yazılacaq. İstənilən halda yaddaşda bir dəfə qeydə alınmış məlumat ya oxuna, ya da silinə bilər. Hüceyrə divara söykənən sandıq kimi görünür. Və bütün yaddaş bir hüceyrədən ibarətdir, hər bir hüceyrənin öz ünvanı var. Necə ki, xəsis cəngavərin zirzəmisində divara qarşı cərgə ilə dayanmış sandıqlar.

Yaxşı, bir portu bir hüceyrə kimi də təsəvvür edə bilərsiniz. Yalnız belə bir hüceyrə arxada divarın arxasına bir yerə aparan pəncərə var. Siz ona məlumat yaza bilərsiniz və məlumat onu götürüb pəncərədən uçacaq, baxmayaraq ki, bir müddət hüceyrədə eyni şəkildə qalacaq. adi bir hüceyrədə təsadüfi giriş yaddaşı.

Və ya əksinə, məlumat pəncərədən port hüceyrəsinə "uça bilər". Prosessor bunu görəcək və görünən bu yeni məlumatı oxuyacaq. Və onu işə salacaq - onu bir yerdə yenidən yazacaq, bəzi digər məlumatlar ilə birlikdə yenidən hesablayacaq. Hətta onu başqa bir hüceyrəyə də yaza bilər. Və ya başqa bir hüceyrə portuna, onda birinci port vasitəsilə alınan bu məlumat ikinci portun pəncərəsinə "uça bilər" - yaxşı, prosessor belə qərar verir. Daha doğrusu, bu anda prosessora əmr verən və yaddaşa yazılan və portlardan gələn məlumatları emal edən proqram.

Sadə və gözəl. Bu portlar dərhal çağırıldı - giriş-çıxış portları. Onların bəziləri vasitəsilə məlumatlar harasa göndərilir, digərləri vasitəsilə isə haradansa qəbul edilir.

Yaxşı, sonra hərəkət bir dairədə başlayır. Bir cihaz var, digəri var. İndi isə hər biri fərdi ikili bitlərdən ibarət olan simvollar zənciri var və bu zənciri ötürmək lazımdır. Necə köçürmək olar? Siz dərhal 8 teldən ibarət bir xətt boyunca bütöv bir simvol ötürə bilərsiniz - bir tel = bir bit, sonra digərinin kodu, sonra üçüncü və bütün zənciri ötürənə qədər.

Və hər biti kosmosda deyil (tellər vasitəsilə) açmaq mümkün idi: əvvəlcə simvolun bir bitini, sonra ikincisini və s. səkkiz dəfə ötürmək. Aydındır ki, ikinci halda simvolları vaxtında bu şəkildə açmaq üçün bəzi əlavə vasitələrə ehtiyac var.

Paralel və serial

Və ötürmə sürəti fərqli olacaq:

Belə çıxır ki, hər bir variantın öz üstünlükləri ilə yanaşı, mənfi cəhətləri də var.

  1. Bir anda səkkiz bit ötürmək daha sürətlidir (yəni bayt-bayt), lakin sizə səkkiz qat daha çox naqil lazımdır
  2. Bir bitin bir dəfə ötürülməsi yalnız bir məlumat ötürülməsini tələb edir, lakin bu, 8 dəfə yavaş olacaq.

Beləliklə, birinci halda ötürülməni paralel, ikinci halda isə serial adlandırdılar.

Port interfeysi

Və belə ötürmənin bütün sistemi - bir halda bu şəkildə, digərində - buna bənzər, interfeys adlanır. Bir interfeys paralel, digəri serialdır. Demək olar ki, eyni şey, portlar, biri paralel, digəri serial.

Port anlayışı “interfeys” anlayışından nə ilə fərqlənir? Müasir texnologiyada sözlər nəinki meydana çıxır, həm də böyüyür və “təhsil” alır. İnsanlarda olduğu kimi, onlar da dar mütəxəssis ola bilər və ya “həvəskar” ola bilərlər. Bu tipik bir həvəskar sözdür - "interfeys". Çünki o, “hər dəlik üçün bir tıxacdır”. İnterfeyslər bunlardır:

Sözün mənası isə bir şey arasında olan bir şeydir. İnter - arasında, üz - üz. Gözəl çıxdı, buna görə də hər yerdə istifadə olunur. Məsələn, Windows sisteminin istifadəçi interfeysi bir şəxslə ünsiyyət üçün nəzərdə tutulmuş sistemin ekrandakı üzüdür.

Və o, ekranda çəkilmiş bir şəkil + şəklin hər bir elementinin işləmə qaydaları (məsələn, siçan ilə ekranda düyməni basın - basılacaq) + hər bir elementin reaksiyası qaydaları və bütövlükdə bütün sistem + dialoqda iştirak edən bütün avadanlıq (siçan, klaviatura, ekran) + həm bütün sistemin tərəfdən, həm də ayrı-ayrı qurğular (sürücülər) tərəfindən dialoqu təmin edən bütün proqramlar.

Adamı qeyd etmədilər, amma o da qarşılıqlı əlaqənin bir hissəsi olduğu üçün sistemdə işləmək üçün bilik və bacarıqlara sahib olmalıdır və bunun üçün təlim proqramları, yardım sistemləri var... Və bütün bunlardan gözəl və tutumlu söz yaranır: interfeys.

Mövzumuzda interfeys bir az daha sadə şeylər deməkdir.

Bunlar aparat + proqram təminatı ötürmə vasitələri + ötürmə qaydalarıdır. Aparat - başa düşüləndir. Lakin kompüterlərdə və müasir rabitədə proqram təminatı həmişə və hər yerdə mövcuddur. Hətta belə olur: birincisi, hansısa aparat bazasında funksional bir şey yaradılır, o, dərhal icra olunmur, lakin xüsusi yazılmış proqramlardan istifadə etməklə. Və proqramların hamısı fərdiləşdirilə bilər.

Və tədricən, yeni funksiya (və ya funksional blok) işlədikcə, "onu düzəldən" proqramlar - və onlar asanlıqla konfiqurasiya oluna bilmələri ilə təchizatdan fərqlənirlər - optimal konfiqurasiya vəziyyətinə gətirilir. Artıq konfiqurasiya etməyə ehtiyac yoxdur. Və sonra funksional blokun yeni versiyasındakı proqramı proqram təminatı hissəsinin aparat əsaslı əvəzedicisi ilə əvəz etmək olar. Məsələn, optimal işləyən “tikin” daimi yaddaşa yaxşı uyğunlaşdırılmış proqram. Yaxud da optimal şəkildə konfiqurasiya edilmiş proqramın etdiyi kimi eyni şeyi edəcək xüsusi bir məntiqi sxem tapın - çəkinmədən və bəzən onun bütün faydalı parametrlərini unutmadan.

Buna görə interfeys tez-tez belə adlanır - proqram təminatı və aparat.

Qarşılıqlı əlaqənin hər iki ucunda eyni şeylərin eyni şəkildə başa düşülməsini (və işlənməsini) təmin etmək üçün ötürmə qaydaları lazımdır. İmpuls ötürülməsindən danışırıq? Bu o deməkdir ki, impulslar ciddi şəkildə eyni olmalıdır.

Məsələn, 1 bit sıfırdan +12 və ya +15 volt gerilim düşməsi şəklində gəlir. Düzbucaqlı və ya kəskin bir partlayış şəklində olması üçün - zirvəsi mütləq + 5 voltdan az olmayacaq və məsələn, yuxarı həddi tətbiq etmək lazım deyil. Bunun səbəbi, impulsları müəyyən məsafəyə ötürərkən, elektrik siqnallarının zəifləməyə və "yaxmağa" meylli olmasıdır.

Bir ucdan ciddi şəkildə 12 volt göndərilərsə, o zaman 3 volt digərinə çata bilər və bu, qəbuledici sistem tərəfindən sadəcə xəttdəki səs-küy kimi qəbul edilə bilər və ötürülən məlumat itəcəkdir.

İmpulsların mənası da eyni şəkildə başa düşülməlidir. Və impulslar məlumat ola bilər, xidmət, sinxronizasiya. Və ümumiyyətlə, məsələn, impulslar deyil, sadəcə sabit gərginlik. Digər ucunda kiçik bir cihazı gücləndirmək üçün istifadə edilə bilər.

Və ən əvvəldə müzakirə olunan tellərin özləri də eyni şəkildə başa düşülməlidir. Burada dərhal demək lazımdır ki, yalnız bir tel olması heç vaxt baş vermir. Hətta telefonun kabelində iki naqil var, lakin adətən kabeldə dörd olmalıdır. Və məlumat interfeyslərində həmişə bir neçə keçirici var. Onların bəziləri məlumat xarakterli, bəziləri isə xidmət xarakteri daşıyır. Qarşılıqlı əlaqənin hər iki tərəfində eyni dərəcədə tanınmalı olan budur. Və tellər kimi tanınır? Rəngə görə, əgər kabeldədirsə və yerə görə, əgər əlaqə kontaktlarındadırsa.

Port sadə bir sözdür və eyni zamanda tamamilə birmənalı deyil. Ancaq məna oxşardır: bir şeyin bir şeyə yüklənməsi və harasa göndərilməsi. Və ya əksinə, bir şeyi qəbul edən və ondan nəyisə boşaltan bir şey. Məna demək olar ki, aparat-proqram interfeysi ilə eynidir, lakin bir növ daha qısadır. Və daha sərt, donanmada olduğu kimi (“Onlar sənə deyəcəklər - mübahisə etmə... amma biz mübahisə etmirik...”). Yalnız siqnallarımız dənizlə deyil, kabellə yayılır.

COM port konnektorlarının pin çıxışı

Pinoutun heç bir əlaqəsi yoxdurçarmıxa çəkilmə ilə, baxmayaraq ki, bir kabel qabığında sərbəst işləyən naqillər kimi, çarmıxa çəkilməyə bənzər şəkildə ayrılır və sancaqlarına bərk lehimlənir. Pin, ingilis dilində "pin", pin, buna görə də pinout, söz artıq kompüter-kommunikasiya "pro-ingilis dili" jarqonudur. Bu, telləri konnektordakı sancaqlara bağlamaq deməkdir.

Bağlayıcının forması, içindəki naqillərin (pinlərin) sırası, hər bir pin məqsədi, həmçinin gərginlik dərəcələri və hər birindəki siqnalların mənası - bu interfeysin bir hissəsidir. Tipik olaraq, bütün bu məlumatlar port spesifikasiyası adlanan ayrıca bir sənəddə toplanır. Belə sadə və aydın bir səhifəlik işarə. Digər növ interfeyslərdə buna bənzər bir şey “protokol” adlandırıla bilər. Və burada sadəcə "pinout" deyirlər.

Serial COM portları

Kompüterin COM portları kompüter kompleksi arasında uzunmüddətli əlaqədir. Paralel portlardan və "ağır" qurğulara - printerlərə, skanerlərə, Com portlarına "yüngül" qurğuları kompüterə - siçana, modemə bağlayan kabellərdən fərqli olaraq. İlk kompüterdən kompüterə interfeyslər (“null modem” vasitəsilə). Daha, yerli şəbəkələr nə vaxt yayıldı, və siçanlar klaviatura ilə eyni konnektor vasitəsilə birləşdirilməyə başladı - port ps/2 (pe-es-in yarısında) - com portu birtəhər unuduldu.

Canlanma USB serial interfeysinin meydana çıxması ilə gəldi. Beləliklə, bir dairədə bir hərəkət olduğu ortaya çıxdı. İndi USB-də siz flash sürücülərə əlavə olaraq USB siçanları və USB klaviaturaları tapa bilərsiniz. Printerlər, skanerlər, modemlər - bütün periferiyalar artıq USB-dədir, mən artıq qalın və möhkəm paralel LTP kabellərini unutmuşam, hər tərəfdən 2 bolt ilə vidalanmalı idi. Və bu USB-lərdə iki siqnal teli var (əslində, bir kanal, bir birbaşa siqnal, digəri eyni - tərs) və iki - enerji təchizatı və korpus.

Əvvəlki bir neçə seriyalı COM portu var idi. Ən kiçik - və ən populyarƏksər cihazların qoşulduğu 9 pinli port (D9): siçanlar, modemlər, null-modem kabelləri. Kontaktlar iki cərgədə, 5 və 4-cü sıraya düzülmüş, trapezoid yaradırdı. Beləliklə, D9 adı. "Ana" üzərində nömrələmə soldan sağa və yuxarıdan aşağıya doğru getdi:

1 2 3 4 5

COM port naqilləri, port RS232, 9 pin.

Təyinat Növ Təsvir
1 DCD Giriş Modem ortağını daşıyıcı qəbul edərkən modemdən yüksək səviyyə
2 RxD Giriş Daxil olan məlumat impulsları
3 TxD Çıx Gedən məlumat impulsları
4 DTR Çıx Yüksək səviyyə (+12V) kompüterin məlumat qəbul etməyə hazır olduğunu göstərir. Qoşulmuş siçan bu pindən enerji mənbəyi kimi istifadə edirdi
5 GND General Yer
6 DSR Giriş Cihaz məlumat ötürməyə hazırdır
7 RTS Çıx Tərəfdaş cihazın cavab hazırlığı
8 CTS Giriş Tərəfdaşdan məlumat almağa hazır olmaq
9 R.İ. Giriş Rabitə xəttindən modem tərəfindən qəbul edilən daxil olan zəng haqqında kompüterə məlumat verən siqnal

Paralel portla yanaşı, COM portu və ya serial port, ilk fərdi kompüterlərdə istifadə edilən ənənəvi kompüter giriş/çıxış portlarından biridir. COM portunun müasir kompüterlərdə məhdud istifadəsi olsa da, bununla belə, bu barədə məlumat bir çox istifadəçilər üçün faydalı ola bilər.

Serial port, paralel port kimi, IBM PC arxitekturasının fərdi kompüterlərinin meydana çıxmasından çox əvvəl meydana çıxdı. İlk fərdi kompüterlərdə COM portu periferik cihazları birləşdirmək üçün istifadə edilmişdir. Bununla belə, onun tətbiq dairəsi paralel portun əhatə dairəsindən bir qədər fərqli idi. Paralel port əsasən printerləri birləşdirmək üçün istifadə olunurdusa, COM portundan (yeri gəlmişkən, COM prefiksi sadəcə rabitə sözünün abbreviaturasıdır) adətən modemlər kimi telekommunikasiya cihazları ilə işləmək üçün istifadə olunurdu. Bununla belə, porta, məsələn, siçan, eləcə də digər periferik cihazlara qoşula bilərsiniz.

COM portu, əsas tətbiq sahələri:

  1. Bağlantı terminalları
  2. ~ xarici modemlər
  3. ~ printerlər və plotterlər
  4. ~ siçanlar
  5. İki kompüter arasında birbaşa əlaqə

Hal-hazırda, COM portunun əhatə dairəsi daha sürətli və daha yığcam, yeri gəlmişkən, seriyalı, USB interfeysinin tətbiqi sayəsində əhəmiyyətli dərəcədə azalmışdır. Porta qoşulmaq üçün nəzərdə tutulmuş xarici modemlər, eləcə də “COM” siçanları demək olar ki, istifadədən çıxıb. İndi hər kəsin iki kompüteri null modem kabelindən istifadə edərək birləşdirməsi nadirdir.

Bununla belə, bir sıra ixtisaslaşmış qurğular hələ də seriya portundan istifadə edirlər. Bunu bir çox anakartda tapa bilərsiniz. Fakt budur ki, USB ilə müqayisədə COM portunun bir mühüm üstünlüyü var - RS-232 seriyalı məlumat ötürmə standartına görə, o, bir neçə on metr məsafədə olan cihazlarla işləyə bilər, USB kabelin diapazonu isə adətən 5 metrlə məhdudlaşır.

Serial portun işləmə prinsipi və onun paralel portdan fərqi

Paralel (LPT) portdan fərqli olaraq, serial port verilənləri bir anda birdən çox sətirdə deyil, bir sətirdə bit-bit ötürür. Bitlərin ardıcıllığı başlanğıc bitindən başlayaraq dayandırma biti ilə bitən verilənlər seriyasına, həmçinin səhvlərin yoxlanılması üçün istifadə olunan paritet bitlərinə qruplaşdırılır. Serial portu olan başqa bir ingilis adı buradan gəlir - Serial Port.

Serial portunda məlumatların özünün ötürüldüyü iki xətt var - bunlar məlumatları terminaldan (PC) rabitə cihazına və arxaya ötürmək üçün xətlərdir. Bundan əlavə, daha bir neçə nəzarət xətti var. Serial portu 115.000 bada (bayt/s) çatan nisbətən yüksək məlumat ötürmə sürətini dəstəkləməyə qadir olan xüsusi UART çipi ilə xidmət göstərir. Bununla belə, qeyd etmək lazımdır ki, məlumat mübadiləsinin faktiki sürəti hər iki rabitə qurğusundan asılıdır. Bundan əlavə, UART nəzarətçisinin funksiyalarına paralel kodu serial koda və əksinə çevirmək daxildir.

Liman nisbətən yüksək gərginlikli elektrik siqnallarından istifadə edir - +15 V və -15 V-a qədər. Serial portun məntiqi sıfır səviyyəsi +12 V, məntiqi bir səviyyə isə -12 V. Belə böyük bir gərginlik düşməsi bizə imkan verir ötürülən məlumatların yüksək səs-küy toxunulmazlığına zəmanət verir. Digər tərəfdən, Serial portda istifadə olunan yüksək gərginliklər mürəkkəb dövrə həlləri tələb edir. Bu hal da limanın populyarlığının azalmasına səbəb olub.

Serial interfeysi RS-232

PC-də serial port əməliyyatı RS-232 seriyalı cihazlar üçün məlumat ötürülməsi standartına əsaslanır. Bu standart modem kimi telekommunikasiya cihazı və kompüter terminalı arasında məlumat mübadiləsi prosesini təsvir edir. RS-232 standartı siqnalların elektrik xüsusiyyətlərini, təyinatını, müddətini, həmçinin onlar üçün bağlayıcıların və pinoutların ölçülərini müəyyən edir. Bununla belə, RS-232 məlumat ötürmə prosesinin yalnız fiziki qatını təsvir edir və istifadə olunan rabitə avadanlığından və proqram təminatından asılı olaraq dəyişə bilən nəqliyyat protokollarına aidiyyatı yoxdur.

RS-232 standartı 1969-cu ildə yaradılıb və onun son versiyası olan TIA 232 1997-ci ildə buraxılıb. RS-232 hazırda köhnəlmiş hesab edilir, lakin əksər əməliyyat sistemləri hələ də onu dəstəkləyir.

Müasir kompüterlərdə Serial port konnektoru 9 pinli DB-9 kişi konnektorudur, baxmayaraq ki, RS-232 standartı köhnə kompüterlərdə tez-tez istifadə olunan 25 pinli DB-25 konnektorunu da təsvir edir. DB-9 konnektoru adətən PC anakartında yerləşir, baxmayaraq ki, köhnə kompüterlərdə o, genişləndirmə yuvasına daxil edilmiş xüsusi multikartda yerləşdirilə bilər.

Ana platada 9-pin DB-9 yuvası

Porta qoşulmuş cihazın kabelində DB-9 konnektoru

Paralel portdan fərqli olaraq, iki tərəfli serial kabelin hər iki tərəfindəki bağlayıcılar eynidir. Məlumatların özünü ötürmək üçün xətlərə əlavə olaraq, portda terminal (kompüter) və telekommunikasiya cihazı (modem) arasında idarəetmə məlumatının ötürülə biləcəyi bir neçə xidmət xətti var. Baxmayaraq ki, nəzəri cəhətdən serial portun işləməsi üçün cəmi üç kanal - məlumatların qəbulu, məlumatların ötürülməsi və yerləşdirilməsi kifayətdir, təcrübə göstərdi ki, xidmət xətlərinin olması rabitəni daha səmərəli, etibarlı və nəticədə daha sürətli edir.

RS-232-ə uyğun olaraq Serial port DB-9 birləşdirici xətlərinin məqsədi və onların DB-25 konnektorunun kontaktlarına uyğunluğu:

DB-9 ilə əlaqə saxlayın İngilis adı Rus adı DB-25 ilə əlaqə saxlayın
1 Məlumat daşıyıcısının aşkarlanması Operator aşkar edildi 8
2 Məlumatların ötürülməsi Köçürülən məlumatlar 2
3 Məlumat qəbul edin Alınan məlumatlar 3
4 Məlumat Terminalı Hazırdır Terminal hazırlığı 20
5 Yer Yer 7
6 Data Set Hazırdır Transmitter hazırlığı 6
7 Göndərmək üçün Sorğu Məlumat göndərmək üçün sorğu 4
8 Göndərmək üçün Sil Məlumat ötürülməsinə icazə verilir 5
9 Zəng göstəricisi Zəng göstəricisi 22

Konfiqurasiya və fasilələr

Kompüterdə bir neçə ardıcıl port (4-ə qədər) ola biləcəyi üçün sistem onlar üçün iki aparat kəsilməsini - IRQ 3 (COM 2 və 4) və IRQ 4 (COM 1 və 3) və bir neçə BIOS kəsilməsini ayırır. Bir çox rabitə proqramları, eləcə də daxili modemlər öz işi üçün kəsilmələrdən və COM portlarının ünvan məkanından istifadə edirlər. Bu vəziyyətdə, adətən real portlar deyil, əməliyyat sisteminin özü tərəfindən təqlid edilən virtual portlar adlanır.

Bir çox digər anakart komponentlərində olduğu kimi, COM port parametrləri, xüsusən də hardware fasilələrinə uyğun gələn BIOS kəsmə dəyərləri BIOS Setup interfeysi vasitəsilə konfiqurasiya edilə bilər. Bunun üçün COM Port, Onboard Serial Port, Serial Port Address və s. kimi BIOS seçimlərindən istifadə edilir.

Nəticə

PC seriya portu hazırda geniş istifadə olunan giriş/çıxış vasitəsi deyil. Bununla belə, serial portla işləmək üçün nəzərdə tutulmuş, ilk növbədə telekommunikasiya məqsədləri üçün nəzərdə tutulmuş çoxlu avadanlıq olduğundan, həmçinin RS-232 seriyalı məlumat protokolunun bəzi üstünlüklərinə görə, serial interfeysi hələ silinməməlidir. tamamilə köhnəlmiş rudiment fərdi kompüter arxitekturası kimi.

THR - ötürücü aralıq məlumat reyestri(yalnız yazın) Reyestrə yazılan məlumatlar çıxış dəyişmə registrinə ötürüləcək (boş olduqda), aktivləşdirmə siqnalı mövcud olduqda ondan çıxacaq. CTS. Əvvəlcə bit 0 ötürülür (və qəbul edilir). Göndərmə uzunluğu 8 bitdən azdırsa, ən əhəmiyyətli bitlər nəzərə alınmır.
RBR - məlumat bufer reyestrini qəbul edin(yalnız oxumaq üçün) Giriş sürüşmə registrinin qəbul etdiyi məlumatlar registrdə yerləşdirilir RBR, onların prosessor tərəfindən oxuna biləcəyi yerdən. Əgər növbəti simvol alınan zaman əvvəlki simvol reyestrdən oxunmayıbsa, daşqın xətası qeydə alınır. Göndərmə uzunluğu 8 bitdən az olduqda, registrdəki ən əhəmiyyətli bitlər sıfır qiymətə malikdir.
DLL - tezlik bölücü aşağı bayt registr.
DLM - tezlik bölücü yüksək bayt registr. Bölən D=115200/V düsturu ilə müəyyən edilir, burada V ötürmə sürətidir, bit/s. 1.8432 MHz giriş takt tezliyi verilənlərin 16 dəfə sürətini əldə etmək üçün verilmiş faktora bölünür.
IER - reyestri dayandırmaq. Birinin bit dəyəri müvafiq mənbədən kəsilməyə imkan verir.
Bit tapşırıqlarını qeyd edin IER:
* bit =0 - istifadə edilmir;
* bit 3 - Mod_IE- modemin vəziyyətini dəyişdirməklə (hər hansı bir xətt CTS, DSR, RI, DCD);
* bit 2 - RxL_IE- xətlərin kəsilməsi/səhvinə görə;
* bit 1 - TxD_IE- köçürmə başa çatdıqdan sonra;
* bit 0 - RxD_IE- simvol alındıqda (FIFO rejimində - fasilənin kəsilməsi).
IIR - kəsmə identifikasiyası registrini və FIFO rejimi işarəsini(yalnız oxumaq üçün). Proqram təminatının təhlilini sadələşdirmək üçün UART dörd səviyyəli prioritet sistemə uyğun olaraq daxili kəsmə sorğularını təşkil edir. Prioritet sırası (azalan): xətt statusu, simvol qəbulu, ötürücü registrinin buraxılışı, modem statusu. Kəsmə şərtləri baş verdikdə, UART müvafiq əməliyyat tərəfindən təmizlənənə qədər ən yüksək prioritet mənbəyə işarə edir. Yalnız bundan sonra növbəti mənbə göstərilməklə sorğu veriləcək. Qeydiyyat bitlərinin məqsədi aşağıda təsvir edilmişdir: IIR.
* Bitlər - FIFO rejiminin əlaməti:
11 rejimli FIFO 16550A;
10 - FIFO 16550 rejimi;
00 - normal.
* Bitlər - istifadə edilmir.
* Bit 3 - FIFO rejimində fasilə qəbulu (buferdə oxunacaq simvollar var).
* Bitlər - ən yüksək prioritetlə kəsilmənin səbəbi (normal, FIFO rejimində deyil):
11 - xəta/sətir fasiləsi, sıfırlama xəttin vəziyyəti registrinin oxunması ilə həyata keçirilir;
10 - simvol qəbul edildi, sıfırlama məlumatları oxumaqla həyata keçirilir;
01 - ötürülən simvol (qeydiyyat THR boş), sıfırlama məlumatların yazılması ilə həyata keçirilir;
00 - modem vəziyyətinin dəyişməsi; Sıfırlama modemin status reyestrini oxumaqla həyata keçirilir.
* Bit 0 xidmət edilməmiş kəsmə sorğusunun əlamətidir (1 - sorğu yoxdur, 0 - sorğu var).
FIFO rejimində kəsilmənin səbəbi bitlərlə müəyyən edilir.
* O11 - xəta/sətir kəsilməsi. Sıfırlama xəttin status reyestrini oxumaqla həyata keçirilir.
* 010 - simvol qəbul edildi. Sıfırlama qəbuledici məlumat reyestrini oxumaqla həyata keçirilir
* 110 - vaxt aşımı göstəricisi (bir simvolun 4 vaxt intervalı ərzində buferdə ən azı bir simvol olmasına baxmayaraq, heç bir simvol ötürülməmiş və qəbul edilməmişdir). Sıfırlama qəbuledici məlumat reyestrini oxumaqla həyata keçirilir.
* 001 - qeydiyyatdan keçin THR boş Sıfırlama məlumatların yazılması ilə həyata keçirilir.
* 000 - modem vəziyyətinin dəyişməsi ( MDB, DSR, RI və ya DCD). Sıfırlama reyestri oxumaqla həyata keçirilir MSR.
FCR - FİFO nəzarət reyestri(yalnız qeyd üçün). Qeydiyyat bitlərinin məqsədi aşağıda təsvir edilmişdir: FCR:
* Bit - ITL(Interrupt Trigger Level) - kəsilmənin yaradıldığı FIFO buferinin doldurulma səviyyəsi:
00 - 1 bayt (standart);
01 - 4 bayt;
10 - 8 bayt;
11 - 14 bayt.
*Bitlər qorunur.
* Bit 3 - DMA əməliyyatlarını aktivləşdirin.
* Bit 2 - RESETTF(Reset Transmitter FIFO) - FIFO ötürücü sayğacını sıfırlayın (birini yazmaqla; shift registr sıfırlanmayıb).
* Bit 1 - RESETRF(Reset Receiver FIFO) - FIFO qəbuledici sayğacını yenidən qurun (birini yazmaqla; shift reyestri sıfırlanmayıb).
* Bit 0 - TRIFOE(Transmit And Receive FIFO Enable) - ötürücü və qəbuledici üçün FIFO rejimini aktivləşdirin (vahid üzrə). Rejimi dəyişdirərkən, FIFO buferləri avtomatik olaraq təmizlənir.
LCR - xətti nəzarət reyestri(kanal parametrlərinin parametrləri). Qeydiyyat bitlərinin məqsədi aşağıda təsvir edilmişdir: LCR.
* Bit 7 - DLAB(Divisor Latch Access Bit) - tezlik bölücüyə girişi idarə edir.
* Bit 6 - BRCON(Break Control) - BRCON=1 olduqda sətir kəsilməsinin yaradılması (sıfırların göndərilməsi).
* Bit 5 - STICPAR(Yapışqan Paritet) - paritet bitinin məcburi formalaşması:
0 - yoxlama biti çıxış simvolunun paritetinə uyğun olaraq yaradılır;
1 - nəzarət bitinin sabit qiyməti: nə vaxt EVENPAR=1 - sıfır, ilə EVENPAR=0 - tək.
* Bit 4 - EVENPAR(Even Parity Select) - nəzarət növünün seçimi: 0 - tək, 1 - cüt.
* Bit 3 - PAREN(Parity Enable) - bit həllinə nəzarət:
1 - nəzarət biti (paritet və ya sabit) aktivdir;
0 - nəzarət biti söndürüldü.
* Bit 2 - STOPB(Stop Bits) - dayandırma bitlərinin sayı:
0 - 1 dayanma biti;
1 - 2 dayanma biti (5 bitlik kod üçün dayandırma biti 1,5 bit uzunluğunda olacaq).
* Bit - SERIALDB(Serial Data Bits) - məlumat bitlərinin sayı:
00 - 5 bit;
01-6 bit;
10 - 7 bit;
11 - 8 bit.
MCR - modem nəzarət reyestri. Qeydiyyat bitlərinin məqsədi aşağıda təsvir edilmişdir: MCR.
* Bit =0 - qorunur.
* Bit 4 - LME(Loopback Mode Enable) - diaqnostika rejimini aktivləşdirin:
0 - normal rejim;
1 - diaqnostik rejim (aşağıya bax).
* Bit 3 - İ.E.(Interrupt Enable) - xarici çıxışdan istifadə edərək kəsmələri aktivləşdirir OUT2 MSR.7:
0 - fasilələr aradan qaldırıldı;
1 - fasilələr aktivləşdirilib.
* Bit 2 - OUT1C(OUT1 Bit Control) - çıxış siqnalına nəzarət 1 (istifadə edilmir); diaqnostik rejimdə girişə daxil olur MSR.6.
* Bit 1 - RTSC(Nəzarət Göndərmə Sorğu) - çıxış nəzarəti RTS; diaqnostik rejimdə girişə daxil olur MSR.4:
0 - aktiv (-V);
1 - passiv (+V).
* Bit 0 - DTRC(Data Terminal Ready Control) - çıxışa nəzarət DTR; diaqnostik rejimdə girişə daxil olur MSR.5:
0 - aktiv (-V);
1 - passiv (+V).
LSR - xətt statusu reyestri(daha doğrusu, ötürücünün vəziyyəti). LSR registr bitlərinin məqsədi aşağıda təsvir edilmişdir.
* Bit 7 - FİFOE(FIFO Error Status) - FIFO rejimində alınan məlumatda xəta (buferdə format xətası, paritet xətası və ya fasilə ilə qəbul edilmiş ən azı bir simvol var). Qeyri-FIFO rejimində həmişə 0-dır.
* Bit 6 - ALDATMAQ(Transmitter Empty Status) - ötürücü reyestri boşdur (nə keçid registrində, nə də bufer registrlərində ötürmək üçün heç bir məlumat yoxdur. THR və ya FIFO).
* Bit 5 - ÜÇ(Transmitter Holding Register Empty) - ötürücü reyestri ötürmə üçün baytı qəbul etməyə hazırdır. FIFO rejimində, FIFO ötürmə buferində simvolların olmadığını göstərir. Bir fasilə mənbəyi ola bilər.
* Bit 4 - BD(Qırılma aşkarlandı) - sətir kəsilməsi göstəricisi (qəbuledicinin girişi simvolun göndərildiyi vaxtdan az olmayaraq 0 vəziyyətindədir).
* Bit 3 - F.E.(Framing Error) - çərçivə xətası (yanlış dayanma biti).
* Bit 2 - RE(Parity Error) - bit xətasını yoxlayın (paritet və ya sabit).
* Bit 1 - OE(Ovma xətası) - daşqın (xarakterin itirilməsi). Növbəti simvolun qəbulu əvvəlki simvol sürüşmə registrindən bufer registrinə və ya FIFO registrinə boşaldılmadan əvvəl başlayırsa, sürüşmə registrindəki əvvəlki simvol itirilir.
* Bit 0 - D.R.(Receiver Data Ready) - qəbul edilən məlumatlar hazırdır (DHR və ya FIFO buferində). Sıfırla - qəbuledicini oxumaqla.
Səhv göstəriciləri - bitlər reyestri oxuduqdan sonra sıfırlanır LSR. FIFO rejimində səhv bayraqları hər simvolla birlikdə FIFO buferində saxlanılır. Reyestrdə onlar səhvlə alınan simvol FIFO-nun yuxarı hissəsində (oxumaq üçün növbədə olan birinci) olduğu anda təyin olunur (və kəsilməyə səbəb olur). Sətir kəsilməsi halında, FIFO-ya yalnız bir "fasilə" simvolu daxil edilir və UART bərpa və sonrakı başlanğıc bitini gözləyir. MSR- modem statusu qeydiyyatı. Qeydiyyat bitlərinin məqsədi aşağıda təsvir edilmişdir: MSR:
* Bit 7 - DCD(Data Carrier Detect) - xətt statusu DCD:
0 - aktiv (-V);
1 - passiv (+V).
* Bit 6 - R.İ.(Ring Indicator) - xətt statusu R.İ.:
0 - aktiv (-V);
1 - passiv (+V).
* Bit 5 - DSR(Data Set Ready) - xətt statusu DSR:
0 - aktiv (-V);
1 - passiv (+V).
* Bit 4 - CTS(Göndərmək üçün Sil) - xətt statusu CTS:
0 - aktiv (-V);
1 - passiv (+V).
* Bit 3 - DDCD(Delta Data Carrier Detect) - vəziyyət dəyişikliyi DCD.
* Bit 2 - TERI(Trailing Edge Of Ring Indicator) - zərfin çürüməsi R.İ.(zəngi bitir).
* Bit 1 - DDSR(Delta Data Set Ready) - vəziyyət dəyişikliyi DSR.
* Bit 0 - DCTS(Delta Clear To Send) - vəziyyət dəyişikliyi CTS.
Dəyişiklik əlamətləri (bitlər) registr oxunduqda sıfırlanır.
SRC - iş reyestri(8 bit), UART-ın işinə təsir göstərmir, məlumatların müvəqqəti saxlanması üçün nəzərdə tutulub (8250-də mövcud deyil).
IN diaqnostik rejim(saat LME=1) UART daxilində daxili “stub” təşkil edilmişdir:
* ötürücü çıxışı məntiqi bir vəziyyətə keçir;
* qəbuledici girişi söndürülüb; * girişlər DSR, CTS, RIDCD giriş xətləri ilə əlaqəsi kəsilmiş və daxili olaraq bitlər tərəfindən idarə olunur DTRC, RTSC, OUT1C, IE;
* modemin idarəetmə çıxışları passiv vəziyyətə keçir (məntiqi sıfır).
Serial şəklində ötürülən məlumatlar dərhal qəbul edilir ki, bu da portun daxili məlumat kanalını (o cümlədən növbəli registrləri) yoxlamağa və emal prosesini dayandırmağa, həmçinin UART sürətini təyin etməyə imkan verir.

Bu portun digər “seriyalı” texnologiyalarla müqayisədə özəlliyi ondan ibarətdir ki, 2 bayt arasında heç bir vaxt tələbi yoxdur. Yalnız bir baytın bitləri arasında (başlanğıc, dayanma və paritet daxil olmaqla) zamanlama tələbləri var, bir baytın bitləri arasında vaxt fasiləsinin qarşılıqlı olması ötürmə sürəti - ötürmə sürəti adlanır. Həmçinin bu texnologiyada “paket” anlayışı yoxdur.

X.25, USB və ya Ethernet kimi digər “seriyalı” texnologiyalar “paket” konsepsiyasına malikdir və bir paketin bütün bitləri arasında ciddi vaxt tələbləri qoyur.

Bu səbəbdən, Cisco IOS terminologiyasında bu port async adlanırdı - sinxron serialdan fərqli olaraq, yəni. X.25. Eyni səbəbdən, bu port üzərində PPP tətbiq edən Windows modulu AsyncMac.sys adlanır (PPP standartı bu konsepsiyaya malik olmayan serial port üzərində “paket” anlayışından istifadə edən PPP-nin həyata keçirilməsini ayrıca təsvir edir) .

Bəzi sənaye rabitə protokolları serial port baytları arasında ciddi vaxt tələbləri qoyur. Bu cür protokolları real vaxt rejimində zəif dəstəklənən Windows kimi çoxşaxəli əməliyyat sistemlərində həyata keçirmək olduqca çətindir və buna görə də tez-tez idarəetmə kompüterində MS-DOS və demək olar ki, 20 il əvvəl köhnəlmiş proqram təminatı tələb olunur.

Məqsəd

Fərdi kompüterlərin seriya portu üçün ən çox istifadə olunan standart RS-232C-dir. Əvvəllər serial port terminalı, daha sonra modemi və ya siçanı birləşdirmək üçün istifadə olunurdu. İndi o, quraşdırılmış hesablama sistemlərinin, peyk qəbuledicilərinin, nəzarət-kassa aparatlarının, habelə obyektin mühafizə sistemlərinin cihazlarına qoşulmaq, onlarla əlaqə qurmaq üçün istifadə olunur.

COM portundan istifadə edərək, "null modem kabeli" adlanan kabeldən istifadə edərək iki kompüteri birləşdirə bilərsiniz (aşağıya baxın). MS-DOS günlərindən faylları bir kompüterdən digərinə köçürmək üçün, UNIX-də başqa bir maşına terminal girişi üçün və Windows-da (hətta müasir olanlarda) nüvə səviyyəsində sazlayıcı üçün istifadə edilmişdir.

Texnologiyanın üstünlüyü avadanlıqların həddindən artıq sadəliyidir. Dezavantaj aşağı sürət, böyük konnektor ölçüləri, həmçinin OS və sürücünün cavab müddəti üçün tez-tez yüksək tələblər və çox sayda kəsmədir (avadanlıq növbəsinin yarısına bir, yəni 8 bayt).

Bağlayıcılar

Aparıcı istehsalçıların (məsələn, Intel) ana platalarında və ya hazır sistemlərdə (məsələn, IBM, Hewlett-Packard, Fujitsu Siemens Computers) seriya portu üçün aşağıdakı simvol istifadə olunur:

1969-cu ildə standartlaşdırılan ən çox istifadə edilən D formalı bağlayıcılar 9-pin və 25-pinlidir (müvafiq olaraq DB-9 və DB-25). Əvvəllər DB-31 və dairəvi səkkiz pinli DIN-8 də istifadə olunurdu. Portun normal versiyasında maksimal ötürmə sürəti 115.200 bauddur.

Uyğunluq

USB və Bluetooth üzərindən serial portu təqlid etmək üçün standartlar var (bu texnologiya əsasən “simsiz serial port” kimi hazırlanmışdır).

Buna baxmayaraq, bu portun proqram emulyasiyasından bu gün də geniş istifadə olunur. Məsələn, demək olar ki, bütün cib telefonları telefonun GPRS/EGDE/3G avadanlığı vasitəsilə internetə kompüterin qoşulmasını həyata keçirmək üçün klassik COM portunu və modemi öz daxilində təqlid edir. Bu halda, kompüterə fiziki qoşulma üçün USB, Bluetooth və ya Wi-Fi istifadə olunur.

Həmçinin, bu portun proqram təminatının emulyasiyası VMWare və Microsoft Hyper-V virtual maşınlarının “qonaqları”na təqdim edilir ki, onun da əsas məqsədi “qonaq”a Windows nüvəsi səviyyəli saz ayıklayıcısını qoşmaqdır.

Avadanlıq

Bağlayıcı kontaktlara malikdir:

DTR (Data Terminal Ready - məlumatı qəbul etməyə hazır olmaq) - kompüterdə çıxış, modemdə giriş. Kompüterin modemdən istifadə etməyə hazır olduğunu göstərir. Bu xəttin sıfırlanması modemin demək olar ki, tam yenidən işə salınmasına səbəb olur, o cümlədən orijinal vəziyyətinə. asmaq (bəzi nəzarət registrləri belə bir sıfırlamadan xilas olur). UNIX-də bu, bütün proqramların serial port drayverində qapalı faylları olduqda baş verir. Siçan enerji almaq üçün bu naqildən istifadə edir.

DSR (Data Set Ready - verilənlərin ötürülməsinə hazırlıq) - kompüterə daxiletmə, modemdə çıxış. Modemin hazır olduğunu göstərir. Əgər bu xətt sıfırdırsa, o zaman bəzi əməliyyat sistemlərində portu fayl kimi açmaq qeyri-mümkün olur.

RxD (Receive Data) - kompüterdə giriş, modemdə çıxış. Kompüterə daxil olan məlumat axını.

TxD (Transmit Data) - kompüterdə çıxış, modemdə giriş. Kompüterdən gələn məlumat axını.

CTS (Clear to Send - göndərməyə hazırlıq) - kompüterdə giriş, modemdə çıxış. Bu naqil birinə təyin olunana qədər kompüterdən məlumat ötürülməsini dayandırmaq tələb olunur. Modemdə daşmanın qarşısını almaq üçün aparat axınına nəzarət protokolunda istifadə olunur.

RTS (Request to Send - sorğu göndərmək) - kompüterdə çıxış, modemdə giriş. Bu naqil birinə təyin olunana qədər modem məlumat ötürülməsini dayandırmalıdır. Avadanlıq və sürücü daşqınlarının qarşısını almaq üçün aparat axınına nəzarət protokolunda istifadə olunur.

DCD (Carrier Detect - daşıyıcının mövcudluğu) - kompüterdə giriş, modemdə çıxış. Digər tərəfdən modemlə əlaqə qurduqdan sonra modem tərəfindən birini təyin edin, əlaqə pozulduqda sıfıra sıfırlayın. Belə bir hadisə baş verdikdə kompüter avadanlığı fasilə verə bilər.

RI (Ring Indicator - zəng siqnalı) - kompüterdə giriş, modemdə çıxış. Telefon zənginin zəng siqnalını aşkar etdikdən sonra modem tərəfindən birinə təyin edin. Belə bir hadisə baş verdikdə kompüter avadanlığı fasilə verə bilər.

SG (Siqnal Yeri) - portun ümumi siqnal naqili, ümumi torpaq deyil, bir qayda olaraq, kompüter korpusundan və ya modemdən təcrid olunur.

Null modem kabeli iki çarpaz cütdən istifadə edir: TXD/RXD və RTS/CTS.

Standart (orijinal IBM PC olduğundan) port avadanlığı UART 16550 adlanır (hazırda bir sıra digər cihazlarla birlikdə ana platadakı SuperIO çipinə daxildir). IBM PC-nin dövründən bəri, cihaz tərəfindən verilən fasilələrin sayını xeyli azaldan bir bayt növbəsi meydana çıxdı.

COM portuna proqramlı giriş

UNIX

Hər port üçün bir reyestr bölməsi var. Bu bölmələrin aşağıdakı adları var:

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

burada sonuncu dəyər “Serial10000” sistemə əlavə edilən hər yeni COM portu üçün unikal nömrədir, ikincisi üçün – “Serial10001” və s.

Bluetooth-u dəstəkləyən cihazlarla əlaqə yaratmaq üçün bəzi proqramlar (məsələn, belə proqramlara daxildir: əlaqə siyahısını mobil telefonla sinxronlaşdıran proqram; GPS qəbuledicisindən GPS koordinatlarını alan proqram) istifadəçinin kompüterində COM portu tələb olunur.

Birbaşa Microsoft tərəfindən hazırlanmış Bluetooth simsiz texnologiyasından istifadə edərək rabitəni dəstəkləmək üçün COM portlarından istifadə edən proqramlara aşağıdakılar daxildir:

  • HotSync əl kompüterlərində istifadə olunur
  • ActiveSync, cib kompüterlərində istifadə olunur

ƏS/2

Mövcud COM.SYS sürücüsü yalnız 4 COM portunu dəstəkləyir, onların hər birinin öz kəsmə xətti olmalıdır. Ümumi kəsmə xətti ilə COM portlarına xidmət göstərmək üçün SIO sürücüsündən istifadə etməlisiniz.

Boş modem kabeli

Əsas məqalə: Boş modem kabeli

Bəzi hallarda, kabelin sadələşdirilmiş versiyasını istifadə etmək mümkündür, burada yalnız 2, 3 və 5-ci sancaqlar istifadə olunur.

həmçinin bax

  • Serial Port siqnalları

Qeydlər

Bağlantılar

  • POSIX əməliyyat sistemlərində COM port proqramlaşdırma təlimatının tərcüməsi
  • Portun java-da proqramlaşdırılması - Sun-un rəsmi paketlərindən fərqli olaraq Windows-dan işləməyə imkan verir.
  • Windows üçün C++ dilində COM portunun proqramlaşdırılması. Hazır kitabxana, mənbə kodları, nümunə proqramlar.
  • Yaşkardin V.L. Serial port. Windows və MS-DOS-da COM portunun proqramlaşdırılması. SoftElectro (2009). 8 fevral 2012-ci il tarixində orijinaldan arxivləşdirilmişdir.

Beləliklə, COM portuna gəldik. Ancaq onunla hər şey LPT ilə olduğu qədər sadə deyil və onun tam istifadəsi daha çox səy tələb edəcəkdir. Əsas problem həm də onun əsas üstünlüyüdür - serial məlumat ötürülməsi. LPT-də bir bayt məlumat 8 sətir boyunca ötürülürsə, hər bir sətirdə bir bit və hər bir sətrin vəziyyətinə asanlıqla baxmaq mümkündürsə, COM portunda bir bayt məlumat bir xətt boyunca bit-bit ötürülür (yerə nisbətən). , əlbəttə) və orada yalnız LED-lərlə nə ötürüldüyünü görün bunu etməyəcək. Bunu etmək üçün sizə xüsusi bir cihaz lazımdır - serial məlumat axınının paralel birinə çevrilməsi, sözdə. USART (Universal Sinxron/Asinxron Qəbuledici Transmitter). Məsələn, COM portu ilə təchiz edilmiş kompüterin ana platasına və ya daha ciddi mikrokontrollerə daxil edilir.


Ümid edirəm ki, siz hələ də COM portunu mənimsəməkdən çəkinirsiniz. Bütün bunlar əzab və zülmət deyil. Bəzi nəticələr USART olmadan əldə edilə bilər. COM portu ilə işləməyin ilkin mərhələsində həyata keçirəcəyimiz bir tapşırığı tərtib edək:


"Mən COM portu vasitəsilə kompüterə LED-in qoşulmasını istərdim. Proqramı işə salıram. Bu proqramda bəzi hərəkətləri yerinə yetirirəm, LED yanır, başqa bir şey edirəm - LED sönür".


Tapşırıq kifayət qədər spesifikdir (USART-ın istifadə edilmədiyini nəzərə alsaq) və təmiz bir "özünüz edin" tapşırığıdır, lakin olduqca mümkün və işləkdir. Onu həyata keçirməyə başlayaq.


1.COM portu

Yenə də kompüterinizin sistem blokunu götürün və arxa tərəfə baxın. 9 pinli konnektorun olduğunu qeyd edirik - bu COM portudur. Əslində onlardan bir neçəsi ola bilər (4-ə qədər). Mənim kompüterimdə iki COM portu var (şəkilə bax).


2. COM portunun genişləndirilməsi


3. Aparat

LPT portu üçün ilk cihazdan daha mürəkkəb olacağı mənasında biz də aparatla "məşğulluq etməliyik". Fakt budur ki, COM portunda məlumatların mübadiləsi aparıldığı RS-232 protokolu bir az fərqli məntiqi vəziyyət-gərginlik əlaqəsinə malikdir. Əgər adətən bu məntiqi 0 0 V, məntiqi 1 +5 V olarsa, RS-232-də bu əlaqə aşağıdakı kimidir: məntiqi 0 +12 V, məntiqi 1 -12 V.

Məsələn, -12 V qəbul edərək, bu gərginliklə nə edəcəyiniz dərhal aydın deyil. Tipik olaraq, RS-232 səviyyələri TTL-ə (0,5 V) çevrilir. Ən sadə seçim zener diodlarıdır. Ancaq bu çeviriciyi xüsusi bir çipdə etməyi təklif edirəm. MAX232 adlanır.

İndi görək LED-lərdə COM portundan hansı siqnalları görə bilərik? Əslində, COM portunda interfeys cihazlarının tərtibatçısı üçün maraqlı olan 6 müstəqil xətt var. Onlardan ikisi hələ bizim üçün əlçatan deyil - serial data xətləri. Ancaq qalan 4-ü məlumat ötürmə prosesini idarə etmək və göstərmək üçün nəzərdə tutulub və biz onları ehtiyaclarımıza uyğun olaraq “köçürə” bilərik. Onlardan ikisi xarici cihazdan idarə etmək üçün nəzərdə tutulub və hələlik onlara toxunmayacağıq, amma indi qalan iki sətirdən istifadə edəcəyik. Onlara deyilir:

  • RTS- Transfer sorğusu. Kompüterin məlumatları qəbul etməyə hazır olduğunu göstərən qarşılıqlı əlaqə xətti.
  • DTR- Kompüter hazırdır. Kompüterin işə salındığını və ünsiyyətə hazır olduğunu göstərən qarşılıqlı əlaqə xətti.

İndi onların məqsədini bir az köçürür və onlara qoşulmuş LEDlər öz proqramımızdakı hərəkətlərdən asılı olaraq ya sönəcək, ya da yanacaq.

Beləliklə, nəzərdə tutulan hərəkətlərimizi həyata keçirməyə imkan verəcək bir diaqram hazırlayaq.

Və burada onun praktiki həyata keçirilməsidir. Düşünürəm ki, bunu belə axmaq bir çörək lövhəsi versiyasında etdiyimi bağışlayacaqsınız, çünki belə bir "yüksək məhsuldar" dövrə üçün lövhə düzəltmək istəmirəm.


4. Proqram təminatı hissəsi

Burada hər şey daha sadədir. COM port rabitəsinin iki xəttini idarə etmək üçün MFC əsasında Microsoft Visual C++ 6.0-da Windows proqramı yaradaq. Bunu etmək üçün yeni bir MFC layihəsi yaradın və ona bir ad verin, məsələn, TestCOM. Sonra, dialoq əsasında qurma seçimini seçin.

Proqramımızın dialoq pəncərəsinin görünüşünü şəkildəki kimi verin. aşağıda, yəni hər sətir üçün iki olmaqla dörd düymə əlavə edin. Onlardan biri müvafiq olaraq xətti “söndürmək”, digəri isə birinə “qoşmaq” üçün lazımdır.

Sinif CTestCOMDlg: ictimai CDialog ( // İnşaat ictimai: CTestCOMDlg(CWnd* pParent = NULL); // standart konstruktor HANDLE hFile;

Proqramımızın COM portunun xətlərini idarə etməsi üçün əvvəlcə o açılmalıdır. Proqramı yükləyərkən portun açılmasına cavabdeh olan kodu yazaq.

HFile = CreateFile("COM2", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL); if(hFile==INVALID_HANDLE_VALUE) ( MessageBox("Port açıla bilmədi!", "Xəta", MB_ICONERROR); ) else ( MessageBox("Port uğurla açıldı", "Ok", MB_OK); )

Standart Win API funksiyasından istifadə etməklə Fayl yarat() COM portunu açın COM2. Sonra, açılışın müvəffəqiyyətini yoxlayırıq və məlumat mesajı göstəririk. Burada vacib bir qeyd etməliyik: COM2 mənim kompüterimdədir, lakin kompüterinizdə onu başqa COM portuna qoşa bilərsiniz. Müvafiq olaraq, onun adı istifadə etdiyiniz porta dəyişdirilməlidir. Kompüterinizdə hansı port nömrələrinin olduğunu belə görə bilərsiniz: Başlat -> Parametrlər -> İdarəetmə Paneli -> Sistem -> Avadanlıq -> Cihaz meneceri -> Portlar (COM və LPT).

Nəticədə funksiya CTestCOMDlg::OnInitDialog(), faylda yerləşir TestCOMDlg.cpp, dialoq sinifimiz aşağıdakı formada olmalıdır:

BOOL CTestCOMDlg::OnInitDialog() ( CDialog::OnInitDialog(); // Sistem menyusuna "Haqqında..." menyu elementi əlavə edin. // IDM_ABOUTBOX sistem əmr diapazonunda olmalıdır. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); ) ) // Bu dialoq üçün işarəni təyin edin. Çərçivə bunu avtomatik olaraq həyata keçirir // proqramın əsas pəncərəsi dialoq olmadıqda SetIcon(m_hIcon, TRUE); // Böyük piktoqram SetIcon (m_hIcon, FALSE); // Kiçik ikona təyin et // TODO: Burada əlavə başlanğıc əlavə edin. hFile = CreateFile("COM2", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL); if(hFile==INVALID_HANDLE_VALUE) ( MessageBox("Port aça bilmədi!", "Ostbk", OR MB_I); ( MessageBox("Port uğurla açıldı", "Ok", MB_OK); ) TRUE qaytarın // diqqəti nəzarətə təyin etməyincə TRUE qaytarın )

İndi xəttə nəzarət düymələri üçün işləyicilər əlavə edək. Mən onlara uyğun adlar verdim: DTR xəttində birini təyin edən funksiya OnDTR1(), 0 OnDTR0(). RTS xətti üçün də eyni şəkildə. Nəzərinizə çatdırım ki, işləyici düyməni iki dəfə kliklədikdə yaradılır. Nəticədə, bu dörd funksiya aşağıdakı formanı almalıdır:

Ləğv et CTestCOMDlg::OnDTR1() ( // TODO: Nəzarət bildiriş işləyici kodunu bura əlavə edin EscapeCommFunction(hFile, 6); ) void CTestCOMDlg::OnDTR0() ( // TODO: EscapeCommFunction(hFile,) nəzarət bildiriş idarəedici kodunu bura əlavə edin. 5); ) void CTestCOMDlg::OnRTS1() ( // TODO: Nəzarət bildirişi idarəedici kodunu bura əlavə edin EscapeCommFunction(hFile, 4); ) void CTestCOMDlg::OnRTS0() ( // TODO: İdarəetmə bildiriş işləyici kodunu bura əlavə edin EscapeCommFunction(hFile, 3);

Onların necə işlədiyini bir az izah edim. Gördüyünüz kimi, onların içərisində eyni Win API funksiyasına zəng var EscapeCommFunction() iki parametrlə. Bunlardan birincisi açıq porta bir tutacaq (HANDLE), ikincisi tələb olunan xətt vəziyyətinə uyğun gələn xüsusi hərəkət kodudur.

Budur, biz tərtib edirik və işə salırıq. Hər şey qaydasındadırsa, limanın uğurlu açılması haqqında bir mesaj görməlisiniz. Sonra, müvafiq düymələri basaraq, COM portuna qoşulmuş LEDləri yanıb-söndürürük.

© İvanov Dmitri
dekabr 2006