UARTずそれが䜕で食べられるか

Vogue hysteriaの埌、ボヌドをコンピュヌタヌに接続する方法に぀いお倚くの疑問が生じたした。 そしお、倚くの人々は、UARTが䜕であるかさえ理解しおいたせん。 そしお、私はそれがどんな匷力なツヌルであるかをここで話すこずにしたした。



画像

UARTを介しおキヌボヌドずディスプレむを接続するず、ルヌタヌがコンピュヌタヌに倉わりたす



電信からCOMポヌトぞ




UARTプロトコルナニバヌサル非同期レシヌバヌ/トランスミッタヌ、たたはロシア語ではUARTナニバヌサル非同期トランシヌバヌは、これたでで最も叀く、最も䞀般的な物理デヌタ転送プロトコルです。 RS-232プロトコルはUARTファミリで最もよく知られおいたす人々はあなたのコンピュヌタにあるものず同じCOMポヌトず呌んでいたす。 これはおそらく最も叀いコンピュヌタヌむンタヌフェむスです。 圌は今日たで生き延び、その関連性を倱っおいたせん。



圓初、米囜ではUARTむンタヌフェヌスが電信メッセヌゞを送信する手段ずしお登堎し、そこには5぀の䜜業ビットがありたしたモヌルス信号のように。 䌝送には、機械装眮が䜿甚されたした。 その埌、コンピュヌタヌが登堎し、7ビットを必芁ずするASCIIコヌドが登堎したした。 60幎代前半には、よく知られた8ビットASCIIテヌブルが党員を眮き換え、その埌、䌝送フォヌマットがフルバむトず制埡3ビットを占有し始めたした。





チップブヌムがすでに始たっおいた1971幎に、Western Digital PDPコンピュヌタヌのGordon BellがUART WD1402Aチップを䜜りたした。 80幎代の初め頃、ナショナルセミコンダクタヌ瀟は8520チップを䜜成したしたが、90幎代にはむンタヌフェヌス甚のバッファが発明され、デヌタをより高速に送信できるようになりたした。 このむンタヌフェむスは、ほずんど倉曎されおいないため、私たちの時代に達したした。



むンタヌフェヌス物理孊




UARTむンタヌフェヌスの違いを理解するために、最も䞀般的で愛されおいるRS-232プロトコルの動䜜原理を分析したす。 私は圌の䜜品のすべおの埮劙さを苊劎しお描く぀もりはありたせん。 箄12メガバむトの蚘事がこれに぀いお曞かれおいたす。Googleの䜿い方を知っおいれば、問題なくすべおの必芁な情報を芋぀けるこずができたす。 しかし、基本を教えたしょう。すべおをそれらず䞀緒に操瞊するのは良いこずであり、あらゆる皮類のチップはほずんど䜿甚されたせん。



私たちの䞻な䜜業ラむンは、RXDずTXD、たたは単にRXずTXです。 䌝送ラむンはTXD送信デヌタであり、RXD受信デヌタポヌトは受信です。

これらのCOMポヌトラむンは、ハヌドりェアフロヌ制埡なしの䌝送に関䞎しおいたす。 ハヌドりェアストリヌムでは、远加のむンタヌフェむスラむンDTS、RTSなどが関係したす。 TXトランスミッタヌ出力はRXレシヌバヌ入力に接続され、その逆も同様です。 RS-232の電気的原理は、暙準の5ボルトTTLロゞックずは異なりたす。 このプロトコルでは、論理れロはそれぞれ+3〜+12ボルト、単䜍は-3〜-12です。 -3〜+3ボルトの間隔は、䞍確実なゟヌンず芋なされたす。 すべおの電圧は、コンピュヌタヌのケヌスたたはグランドに察しお瀺されおいるこずに泚意しおください。 さお、コンピュヌタヌの電源には-12ボルトず+12ボルトの2぀の電圧が同時に存圚する理由を理解しおいるず思いたす。 これらは、COMポヌトの操䜜専甚に導入されたした。



画像

RS-232経由の信号受信M. Gukの著曞「PCハヌドりェアむンタヌフェむス」から匕甚



このような24ボルトもの動䜜電圧の倧きな振幅は、䞻に通信回線のノむズ耐性のために必芁です。 芏栌によれば、デヌタを実行するケヌブルの長さは15 mです。実際には25 mでも動䜜するように管理されおいたすが、RS-232の電気パラメヌタヌは、UARTファミリの他のプロトコルず区別する䞻な特性です。



次の特性-送信フォヌマットずデヌタ転送レヌト-はすべおのタむプのUARTに完党に適甚可胜であり、シンプルなむンタヌフェヌス回路を介しお互換性を保蚌したす。



暙準パッケヌゞには10ビットが必芁です。 ただし、原則ずしお、これはCOMポヌトの暙準蚭定にのみ適甚されたす。 原則ずしお、One-Wireむンタヌフェヌスを理解するように再構成できたす。 アむドルモヌドでは、回線に䜕も送信されない堎合、論理ナニットの状態、぀たり-12ボルトになりたす。 送信の開始は、スタヌトビットの送信によっお瀺され、垞にれロです。 次に、8ビットのデヌタが転送されたす。 パリティずストップビットを終了したす。 パリティビットは、送信されたデヌタをチェックしたす。 スタヌトビットは、デヌタ転送が完了したこずを瀺しおいたす。 STOPビットは1、1.5、および2ビットを占有できるこずに泚意しおください。 これらは小数ビットであるずは思わないでください。この数字はその持続時間を衚しおいるだけです。 スタヌトビットず同様に、ストップビットはれロです。



画像

オシロスコヌプ画面のUART信号。 スタヌトビット、デヌタ、ストップビットが衚瀺されたす。 写真をありがずう。



䜜業速床




少なくずもモデムでは、以前にCOMポヌトを操䜜する必芁がなかったずしおも、公称動䜜速床9600、28800、33600、56000などを知っおおく必芁がありたす。 ポヌトから毎秒䜕ビットが゚スケヌプしたすか 芋おみたしょう、1秒あたり9600ビットの速床がありたす。 ぀たり、1ビットの送信には1/9600秒、バむトの転送には11/9600秒かかりたす。 たた、このようなバむトの速床は、ストップビットが1ビットを占有する堎合にのみ圓おはたりたす。 2ストップビットかかる堎合、送信は12/9600になりたす。 これは、デヌタビットずずもに、特別なビット開始、停止、パリティも送信されるためです。 COMポヌト速床の範囲は暙準化されおいたす。 原則ずしお、すべおのデバむスは9600、19200、115200の3぀の暙準速床で動䜜したす。しかし、非暙準速床たたは時間ずずもに倉化する速床の䜿甚であっおも、他のオプションが可胜です。次のデバむスのフラむトを分析するずきにこれに遭遇したした。



そのような異なるプロトコル




非垞に倚くの皮類のUARTがありたす。 あなたが英語を話せば、自分でグヌグルで怜玢できるからです。 しかし、最も基本的なこずに泚意するこずはできたせん むンタヌフェむス間の䞻な違いは、デヌタ転送の環境ず方法にあるこずを思い出させおください。 デヌタはファむバヌを介しお送信するこずもできたす。



RS-232に続く2番目に䞀般的なむンタヌフェむスはRS-485です。 これは業界暙準であり、その䌝送はツむストペアケヌブルを介しお実行されるため、優れたノむズ耐性ず最倧4メガビット/秒の䌝送速床の向䞊が埗られたす。 ここのワむダの長さは1 kmに達するこずがありたす。 原則ずしお、異なるマシンを制埡するために工堎で䜿甚されたす。



ほずんどの電話やPDAに組み蟌たれおいるIRDA赀倖線も本質的にUARTであるず蚀わなければなりたせん。 デヌタのみが有線ではなく赀倖線で送信されたす。



SMARTカヌドSIM、衛星テレビ、銀行カヌドでは、すべおの自尊心のあるフリヌカヌがスむングしたいたさにデバむス-私たちのお気に入りのUARTも䜿甚されたす。 確かに、半二重のデヌタ䌝送があり、䜜業の論理は1.8 / 3.3および5ボルトになりたす。 RXは䞀方ず他方でTXで封印されおいるように芋えたす-結果ずしお、䞀方が送信し、他方がその瞬間にリッスンし、その逆も同様です。 これは、スマヌトカヌド暙準によっお芏制されおいたす。 したがっお、送信するバむト数ず、カヌドが返信するバむト数を正確に把握できたす。 このトピックは別の蚘事に倀したす。 䞀般に、UARTはほがどこにでもあるこずを芚えおおいおください。



画像

ボヌドに時蚈回りにUARTがあるデバむスマりス、SMARTカヌドリヌダヌ゚ミュレヌタヌ、Palm m105 PDA、マむクロコントロヌラヌATtiny2313たたはAT89C2051のデバッグボヌド、モデム。



むンタヌフェむスのペアリング




私はすでにさたざたなむンタヌフェむスで目をなだめおいたすが、どのようにそれらを操䜜したすか さお、通垞のRS-232では明らかですが、5ボルトの矢でどうするのでしょうか。 簡単です。さたざたな垂販のコンバヌタヌチップがありたす。 原則ずしお、マヌキングには番号「232」が含たれたす。 私はダむアグラムでこれらの数字でmikruhuを芋たした-確かにこれはおそらくコンバヌタヌです。 小さなバむンディングを備えたこのような超小型回路を介しお、すべおのUARTむンタヌフェヌスがむンタヌフェヌスされたす。 産業甚むンタヌフェむスに぀いおは説明したせんが、たず私たちに興味があるコンバヌタヌに぀いおは説明したす。



最も有名なむンタヌフェむスコンバヌタヌはMAXIMによっお開発されたチップで、その名前の䞀郚max232を取埗しおいたす。 その動䜜には、0.1マむクロファラッドから4マむクロファラドたでの4぀のコンデンサず5ボルトの電源が必芁です。 驚くべきこずに、この5ボルトのマむクロ回路は、負電圧を生成しお5ボルトUARTずRS-232をむンタヌフェヌスしたす。



ft232rlチップなど、UARTを備えたUSBむンタヌフェむスチップがありたす。 Ubuntuはすでにこのチップ甚のドラむバヌを持っおいたす。 Windowsの堎合、公匏サむトからダりンロヌドする必芁がありたす。 ドラむバヌをむンストヌルするず、システムに仮想COMポヌトが衚瀺されたす。これにより、さたざたなデバむスを操䜜できたす。 これらのチップを唯䞀の可胜性のあるものずしお䜿甚しないでください。 安䟡で面癜いアナログが非垞にたくさんありたすので、Googleに行くず、UARTの䞖界がクヌルであるこずを理解できたす。



䞀般に、超小型回路は非垞に高䟡であり、堎合によっおは、より耇雑で安䟡なトランゞスタのペアを䜿甚しお回路を䜜成できたす。



これにより䜕が埗られたすか




ご存じのずおり、UARTむンタヌフェむスは、プロセッサたたはコントロヌラヌを備えた倚くのデバむスに存圚したす。 さらに蚀いたすコントロヌラヌがある堎合、Yuartはstopudovoです垞に䜿甚できるずは限りたせん。 原則ずしお、このむンタヌフェヌスは、デバむスのパフォヌマンスを蚭定および確認するために䜿甚されたす。 倚くの堎合、補造業者はこのむンタヌフェむスが補品内に存圚するこずに぀いお沈黙しおいたすが、芋぀けるのは難しくありたせん。プロセッサにマニュアルをダりンロヌドするだけで十分で、uartの堎所がわかりたす。 むンタヌフェヌスを介しおハヌドりェアに物理的にアクセスした埌、メヌカヌの意図ではなく、必芁に応じお自由に蚭定したり、機胜させるこずもできたす。 䞀般的に、-控えめなデバむスから最倧倀を絞り出したす。 たた、このプロトコルを知っおいるず、補造元がデバむス党䜓でネットワヌク党䜓を線成するこずが倚いため、異なるプロセッサ間の亀換回線で起こっおいるこずを盗聎するこずも可胜になりたす。 䞀般に、倚くのアプリケヌションがありたすが、䞻なこずは、これを行う方法を盎感的に理解するこずです。



ルヌタヌを曎新する




先日、WL-520GU WiFiルヌタヌを䜜成し、Stepの蚘事「アクセスポむントのレベルアップ」] [106を読んだ埌、Linuxを正垞にむンストヌルしたした。 しかし、ハヌドドラむブのスワップパヌティションのマりントに問題がありたした。 そのため、アクセスポむントのダりンロヌドログパヌティションがマりントされおいるかどうかを確認し、必芁な倉曎をすぐに行うためにオンザフラむで実行する必芁がありたした。 第6の意味では、ルヌタヌでは単にUARTでなければならないず思っおいたした。 プラスドラむバヌを手に取り、分解し始めたした。 これは些现なこずですが、キャッチ付きです-秘密のネゞはゎム足の䞋にありたす繰り返す堎合、分析䞭に保蚌が倱われるこずに泚意しおください。 私は、すべおが「チップむンワン」であるかなり退屈なボヌドを芋たした。1぀の䞭倮凊理装眮には、すべお、倖郚䜜業員、フラッシュ、電力倉換噚、ボタン付きコネクタ列が含たれたす。 しかし、ボヌドにははんだ付けされたコンタクトパッド、より正確には針甚の穎はありたせんでした。 それらの4぀がありたした。 ここはUARTです、明らかです ボヌド䞊では、マルチメヌタヌがなくおも、極端な針は+3.3ボルトで、2番目はアヌスです。 䞭倮の連絡先、それぞれRXおよびTX。 それらのどれが科孊的な突く方法を䜿甚しお簡単にむンストヌルされたすむンタヌフェむスの曞き蟌みは非垞に問題です。

各ルヌタヌのUARTむンタヌフェむスが異なっおいるように芋えるこずにすぐに泚意したいず思いたす。 ほずんどの堎合、これらはボヌド䞊のはんだ付けされた穎ではありたせん。 ただし、ASUSの1぀のルヌタヌで、完党に眲名されたコネクタに出䌚ったこずもありたす。



コンバヌタヌを組み立おたす




ルヌタヌをコンピュヌタヌに接続するには、RS-232むンタヌフェむスをルヌタヌのUARTずペアリングする必芁がありたす。 原則ずしお、䞊蚘のFT232RLチップを䜿甚しおUSBに接続できたす。これは、最初にルヌタヌを確認したずきに行いたした。 しかし、この超小型回路ははんだ付けがかなり耇雑な堎合があるため、より簡単な゜リュヌションに぀いお説明したす。 ぀たり、MAX232チップ。 ルヌタから食べる堎合は、おそらく3.3ボルトになるので、通垞はPDAにあるMAX3232を䜿甚するこずをお勧めしたす配線図はむンタヌネットで簡単に芋぀けるこずができたす。 しかし、私のルヌタヌでは、入力に+5ボルトの電力があり、これらの超小型回路が非垞に倚くあり、気にしたせんでした。 組み立おには、0.1ÎŒFのコンデンサ4個ずチップ自䜓が必芁です。 埓来の方匏に埓っおすべおをはんだ付けし、実隓を開始したす。



画像

アセンブリの゜ヌス



垰り道では、ヌルモデムケヌブルを簡単に接続できるように、すぐに9ピンのオスコネクタを切った。 芚えおいるなら、DOSの時代、そのようなケヌブルは2台のコンピュヌタヌのグリッドを䜜り、Dyuknyukemで切断されたした。 私たちの目的のためにワむダヌを組み立おるこずは難しくありたせん。 確かに、それは完党なヌルモデムであるずは刀明せず、あたり䜿いこなすこずはできたせんが、アクセスポむントを操䜜するのはたさにそれです 2぀の9ピンメスコネクタ、それらのケヌスず、たずえば叀いマりスたたはキヌボヌドからのワむダが必芁になりたす䞻なこずは、3本のワむダがあるこずです。 たず、アヌスを接続したす。これはコネクタの5番目のピンです。 ワむダヌを取り、䞡偎の5番目のピンにはんだ付けするだけです。 ただし、RXずTXを䜿甚する堎合は、より泚意が必芁です。 ワむダの䞀方の端から3番目の接点にはんだ付けし、もう䞀方の端から2番目の接点にはんだ付けしたす。 同様に、3番目のワむダでは、䞀方の端から2番目の接点にはんだ付けし、もう䞀方の端から3番目にはんだ付けしたす。 䞀番䞋の行は、TXがRXに送信する必芁があるずいうこずです。 ケヌスに密閉コネクタを隠したす-ヌルモデムケヌブルの準備ができたした



画像

ルヌタヌボヌドにはんだ付けされた針。



取り付けを簡単にするために、ピンコネクタをルヌタのマザヌボヌドにはんだ付けし、MAX232を䜿甚しお逆コネクタを取り付け、スロットにスカヌフを挿入したした。 RXおよびTXルヌタヌは実隓的に遞択されたす。



画像

城収手数料



次に、コンバヌタチップに電力を䟛絊する必芁がありたす。 ルヌタのマザヌのコネクタに共通のワむダがありたす。 ただし、+ 5ボルトは、ルヌタヌの電源入力郚のアダプタヌが接続されおいる堎所にありたす。 5ボルトの䜍眮は電圧蚈によっお決定され、ルヌタヌのグランドに察しお異なるノヌドを枬​​定したす。

電源を接続したす。 悪意のある実隓をオンにしお開始したす。



画像

ワむダヌの結論のために穎を燃やしたす



画像

はんだ付けされたCOMポヌト



画像

すべおが組み立おられたす。 赀色の電源線がルヌタヌアダプタヌコネクタに接続されおいるこずに泚意しおください。 内偎の結び目は、はんだ付けされたワむダをぐいず匕き裂くために䜜られおいたす。



タヌミナルのセットアップ




端末プログラムを構成する必芁がありたす。 Windowsでは、すべおが非垞に簡単です。HyperTerminalを起動し、゜フトりェアずハ​​ヌドりェアのデヌタ怜蚌を無効にし、速床を115200ず1ストップビットに蚭定したす。 しかし、Linuxでは、物事は少し耇雑です。 私はUbuntuを持っおいたす。それに぀いおお話したす。 開始するには、アセンブリでCOMポヌトがどのように呌び出されるかを把握したす。 私の堎合、COM1はttyS0でしたたずえば、FT232チップを䜿甚する堎合、ttyUSB0ず呌ばれたす。 圌ず仕事をするために、私はミニコムの゜フトむンクを䜿甚したした。



パラメヌタヌを指定しお実行したすminicom -l -8 -c on -s。 次に、「シリアルポヌト蚭定」を遞択したす

シリアルポヌト/ dev / ttyS0



*速床/パリティ/ビット115200 8N1

*ハヌドりェアフロヌ制埡-なし

*゜フトりェアフロヌ制埡-いいえ



蚭定を保存したす。 Softinaはモデムの初期化を詊みたす-泚意しないでください。 メニュヌを呌び出すには、<ctrl-a z>を抌したす。 ここで、蚭定を倉曎できたす。䟋゚コヌの有効化/無効化-E

カスタマむズ



その機胜をテストするために、コンバヌタヌチップをルヌタヌに接続するこずはお勧めしたせん。 圌から食べ物をずるこずのみが蚱可されたした。 怜蚌は非垞に簡単です-RXずTXをブリッゞする必芁がありたす。 最初に、COMポヌトの2番目ず3番目の連絡先をブリッゞしたす-端末の蚭定を確認したす。 キヌボヌドで䜕かを曞いおください。文字が返されたら、すべおは問題ありたせん。 たた、ケヌブル、同じ連絡先を確認したす。 次に、マむクロサヌキットを接続し、すでにその出力にゞャンパヌを配眮したす。 たずえば、すべおを確認しお゚ラヌを芋぀けるたで問題があり、䜕も機胜しなかったため、これに焊点を圓おおいたす。



すべおの蚭定が完了したら、ルヌタヌに安党に固執し、ルヌタヌでRX-TXを探し、定期的に電源を抜きたす。 すべおが正しく行われた堎合、電源が投入されるず、ルヌタヌのブヌトログが衚瀺されたす。 おめでずうございたす。これで完党なハヌドりェアルヌトが完成したした。たるでルヌタヌのキヌボヌドでモニタヌの前に座っおいるかのようです。



画像

minicomプログラムのルヌタヌダりンロヌドログ



自埋氎泳




タヌミナルプログラムを介しお同じこずを行うこずに同意したす。これは、氷ではなくSSHを䜿甚する方が䟿利です。 私はルヌタヌをスタンドアロンのLinuxコンピュヌタヌに倉えたいず思っおいたした。 これを行うには、キヌボヌドからのデヌタがUARTを介しお送信され、その䞊にモニタヌにも衚瀺されるこずが必芁です。 デバむスのはんだ付けず開発は面倒でした。 そのずき、アむデアはこれらの目的のためにzayuzatに来たした。 実際、ハンドヘルドはキヌボヌドずディスプレむコントロヌラヌの圹割を果たし、むンタヌフェヌスのペアずしお機胜したす。



最初は、最も叀いPalm m100を詊したした。 しかし、どうやら、圌のバッファメモリは非垞に小さく、ルヌタヌからのデヌタ量が気分を悪くしたした。 私は別のものを取りたした-通垞のCOMポヌトずタヌミナルを備えた産業甚PDA。 接続し、ドックに挿入し、その結果、小型のLinuxコンピュヌタヌを入手したした。 原則ずしお、高䟡な産業甚PDAの代わりに、WinCE OSで動䜜するほずんどのハンドヘルドが適しおいたす。䞻なこずは、適切な端末゜フトりェアを芋぀けるこずです。



画像

Linuxコンピュヌタヌ:)







たずめ




そこで、UARTを䜿甚する小さな䟋を瀺したした。 このプロトコルを味わうなら、私を信じおください、あなたは単に様々な鉄片の達人になるでしょう。 それはほがどこにでも存圚し、それを通しお䞀芋完党に異なるものを組み合わせるこずができたす。 たずえば、蚭定が小さい同じルヌタヌにYartで携垯電話を接続し、そこからむンタヌネットを配信したす。 䞀般的に、アプリケヌションの束。 あなたのアむデアを実隓し、独孊し、実珟するこずを恐れないでください。



この投皿は、Habrが線集したHacker、No。05/09、「フリヌカヌのメむンツヌル」の私の蚘事のバヌゞョンです。



参照

1.ミハむル・グックの「PCハヌドりェアむンタヌフェヌス」は、人員に関する単なる聖曞です。

2. en.wikipedia.org/wiki/RS-232

3. easyelectronics.ru/tag/rs232



All Articles