• ベストアンサー

UARTって何ですか?

表題のとおりです。 UARTの機能がわかりません。 どなたかご存知でしたら、教えていただけませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jusarun
  • ベストアンサー率100% (1/1)
回答No.3

参考になれば幸いです。 (機能) コンピュータ内から送られるパラレル信号を、シリアル信号に変換したり、逆にシリアルデバイスから送られるシリアル信号をパラレル信号に変換したりするデバイス。 (実際) 実際にはPCの拡張カードベンダーさん、メーカさんがLSIチップとして購入する形をとります。 BIOSの中にもUART(COM1)、UART2(COM2)とかありますよね。マザーボードベンダーやメーカーPCの場合にはメーカーさんが発注して、使用しています。

hesperia
質問者

お礼

回答、ありがとうございます。 なるほど、大方はシリアル―パラレル変換が主な機能のようですね。 しかし、UARTというのはシリアル―パラレル変換機能を有するものを総称しているだけなんでしょうか。 うーむ...

その他の回答 (3)

  • arika
  • ベストアンサー率9% (18/186)
回答No.4

もう回答がでてますが、PCの場合で考えると、 PCとPCもしくは違うものとの間をシリアルで通信するときにそのシリアルデータを作る(パラシリ変換)石です。 違うものはたとえば、モデムとかがあります。 シリアルでもクロック同期してデータをやりとりするものもありますが、この場合シンク(同期)式といってますが、 このUARTは非同期式で、データのHL(10)でデータのやり取りをします。ただしこの場合、通信する同士でどのくらいの転送レート(速さ)でやるかを決めておかないと うまくいきません。 UART自体はパラシリの一部の機能です。(同期式もあるので) また、わからないようでしたら補足してください。 ちなみにRS232とかはご存知ですか?

hesperia
質問者

補足

回答、ありがとうございます。 返事が遅れてしまって、すみません。 単純にシリアル-パラレル変換機能を行う機能を指してUARTと言うのですね。 しかし、一般には同期式でないとは...てっきり、シンクロナスという単語が入っているので、“シリアルの信号のやり取りの上で入出力端で信号を同期させる機能”=UARTと言うのかと思っていました。 RS232Cは名前だけ知っていますが、内容に至っては全く無知です。 できればホンの紹介程度でいいので内容を教えていただけるとうれしいのですが。 宜しくお願いします。

  • Durandal
  • ベストアンサー率15% (47/297)
回答No.2

簡単に言うとシリアルポートの機能です。

hesperia
質問者

補足

申し訳ありません、あまりに抽象的過ぎて、わたしにはちょっと理解できません。 もう少し詳しく教えていただきたいのですが。 シリアル―パラレル変換機能だけのことを言うのでしょうか。 それとも、レベルシフターなどを含んだ、特定のバッファのことを指すのでしょうか。

noname#211914
noname#211914
回答No.1

1.http://www.tt.rim.or.jp/~hamusic/japanese/jb1/dtm/technical.htm (MIDI 概要) 「UART ( Universal Asynchronous Reciever / Transmitter )という通信用のIC」 ●「汎用非同期送受信装置」 ご参考まで。

hesperia
質問者

お礼

回答、ありがとうございます。 早速見てみましたが、いまいち分かりづらいものでした。 もう少し突っ込んだ内容の説明があると、うれしかったのですが...

関連するQ&A

  • UARTの切り替え使用

    UART機能が2つだけ搭載されているマイコンを用いて、3つ以上のUARTを切り替えしながら (同時使用は最大2つまで)使用することは可能でしょうか? その場合、UARTの線を全部のシリアル端末につなげておいて、電気的にこの線と この線というふうに切り替えするということになるのでしょうか?

  • PIC18FのUART通信について

    こんにちは ただいまGPSとSDカードを使ったロガーをPIC18F2550で作成しております。 GPSとSDを使うため、UARTのピンが2つ必要ですがPIC18F2550にはTX/RXは一つずつしかありません。 そこで,ソフトUARTで解決したいのですが, CCS Cコンパイラではソフトウェアシリアル通信の機能があるみたいのですが 現在自分が使っているC18だといくら探しても見つかりませんでした。 C18もソフトUART機能はあるのでしょうか?

  • UARTを直接つないでもよい?

    マイコン(atmega328p Vcc=3.3V)とPCをUSB/UART変換ケーブル(TTL-232R-3V3 http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_TTL-232R_CABLES.pdf) でつなごうとしています。 マイコンのVccは、このUSB/UART変換ケーブルのVccピン(5V)をレギュレータを使って3.3Vに落としてつくろうとしています。 この時、マイコンのUART用のピンと、ケーブルのピンは直接つないでもよいものでしょうか? マイコン側の3.3Vは、ケーブルの5Vから私の作っている回路にのせるレギュレータでつくっていて、 ケーブル側の3.3Vはケーブルに内蔵しているFT232RQを使ってつくっているので、 元の5Vが同じとはいえ微妙に異なる可能性がありますが、 これがどういう問題につながりえるのでしょうか? そして簡単な回路で問題なく通信できるようにするにはどういった回路を入れればよいのでしょうか? 教えてください。

  • PIC12F683のソフトウェアUARTはタイマ割り込みとか使っている?

    PIC12F683で、 http://www.picfun.com/P12F/p12f02.html このサイトにあるように、PIC12F683にはハードウェアUARTモジュール機能がないので、ソフトウェアでこれを実現するために #use RS232(BAUD=9600, XMIT=PIN_A2, PCV=PIN_A3)というのを やればprintf関数でUARTデータを出力できるとのことですが、 この機能を宣言した場合にはPIC12F683のタイマ割り込み機能はどれか1つ占有されたりするのでしょうか? その場合、開けておかなければならないタイマは0,1,2のどれになるのでしょうか?

  • ESP32開発基板のUART1,2信号

    ESP32 Dev Board PINMAPを見ていて思ったのですが、 https://scrapbox.io/hada/ESP32_DEVKIT_%E3%83%94%E3%83%B3%E9%85%8D%E7%BD%AE UART0の信号はPINMAP表では TX0(GPIO1) RX0(GPIO3) にアサインと表示されていますが、 UART1、UART2のアサインが表示されていません。 このESP32開発基板ではUART1、UART2の信号は使用できないということでしょうか? 下記のESP32のデータシートを読んでみたところ、 https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf UARTの信号のPINは”Any GPIO Pins”と表記されているのですが、 何かプログラミングでUART1,UART2の信号を好きなGPIOのPINに割り当てることがかのうということでしょうか? その方法など、ご教示の程よろしくお願い致します。

  • トランジスタ技術8月号:UARTについて

    こんにちは。 トランジスタ技術2007年8月号付録のdsPIC30Fを使って色々といじっているのですが、UARTのところで問題が現れてしまいました。 付録基盤の23・24ピン(dsPIC30F2012の16・17ピン)のURx/UTxを使って、他の組み込みチップと20~30バイトのパケットを通信したいのですが、ボーレートやパリティの設定を正しく行っても送受信ができません。 PCのRS232-Cと組み込みチップを繋げて通信はできているのですが、付録基盤から同じパケットを送信すると不定値が現れてしまいます。 電圧や配線は確かめましたが、特に問題がありそうな場所はありませんでした。 ソースは次のような感じです。助けていただけないでしょうか。 #include <uart.h> #include <p30f2012.h> void init() { unsigned int _U1BRG; // U1BRG register config unsigned int _U1MODE; // U1MODE register config unsigned int _U1STA; // U1STA register config CloseUART1(); ConfigIntUART1( UART_RX_INT_DIS & UART_TX_INT_DIS ); // U1BRG register _U1BRG= ( (7370000*4/19200)/16); // Fcy / BaudRate / 16 // U1MODE register, I/O (U1TX/U1RX), N81 _U1MODE = UART_EN & UART_IDLE_CON & UART_RX_TX & UART_DIS_WAKE & UART_DIS_LOOPBACK & UART_EN_ABAUD & UART_NO_PAR_8BIT & UART_1STOPBIT; // U1STA register _U1STA = UART_INT_TX_BUF_EMPTY & UART_TX_PIN_NORMAL & UART_TX_ENABLE & UART_INT_RX_CHAR & UART_ADR_DETECT_DIS & UART_RX_OVERRUN_CLEAR; // Open UART1 OpenUART1(_U1MODE, _U1STA, _U1BRG); } // end of init() int main(void){ unsigned int packet[] = {パケットデータ} unsigned int result[30]; unsigned int i; // write process for(i=0; i<PACKET_LENGTH; i++) { while(U1STAbits.UTXBF != 0) { ; } U1TXREG = packet[i] & 0xFF; } while(!U1STAbits.TRMT) {;} // read process for(i=0; i<PACKET_LENGTH; i++) { while(U1STAbits.URXDA != 0) {;} result[i] = U1RXREG & 0xFF; } // for(i) while(1) {;} } // end of main()

  • DMAを使ったUARTの受信が一度しかできない

    STM32F3 シリーズにて DMA を利用した UART 通信の受信を行ってます。 通信するデータは 7Byte 1Set の固定データで、連続して送信されます。 デバッグを開始して最初の 7Byte は受信できるのですが、それきり受信が止まってしまいます。 何か考えられる原因はありますか? 該当すると思われる箇所のコードを以下にピックアップします。 UART_HandleTypeDef huart1; DMA_HandleTypeDef hdma_usart1_rx; #define USART1_RX_LEN 7 uint8_t USART1_RXD_Buffer[USART1_RX_LEN]; int main(void) { HAL_Init(); SystemClock_Config(); HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_1); HAL_NVIC_SetPriority(SysTick_IRQn, 0, 1); MX_GPIO_Init(); MX_DMA_Init(); MX_USART1_UART_Init(); HAL_UART_Receive_DMA(&huart1, &USART1_RXD_Buffer[0], USART1_RX_LEN); while (1) { } } ちなみに、最初に 7Byte を正常に受信した後、 huart1.Lock = HAL_UNLOCKED huart1.State = HAL_UART_STATE_READY huart1.ErrorCode = HAL_UART_ERROR_NONE hdma_usart1_rx.Lock = HAL_UNLOCKED hdma_usart1_rx.State = HAL_DMA_STATE_READY となってます。 (この状態で受信も受信による割り込みも発生しない状態になってしまいます。)

  • dspicからpicへのUARTでの信号送信

    現在,dspic33fj32mc202を使用して回路を作成しています。 ピンの都合から、UART機能を利用して、dspicのTXピンから,pic16f690のRXピンに信号を送りたいと考えています。 しかしdspic33fは3.3Vで、pic16f690は5Vです。 上記のようなことは可能なのでしょうか?

  • iアプリでのUART利用

    iアプリにて、UARTを利用してバーコードリーダとのやり取りをすることになり、いろいろ試しているのですがうまくいかず悩んでいます。 DOCOMOのページに"UART接続によるシリアル通信"の技術資料がありましたので、 (http://www.nttdocomo.co.jp/binary/pdf/corporate/technology/document/foma/foma10.pdf) ダウンロードして見てみましたが、サンプル的なものはConnector.open()での接続の仕方だけでした。 実際にこのあとデータを取得したいのですが、何をどういう風に記述していったらいいのかが分からず困っています。 どなたか分かる方いらっしゃれば教えてください。

  • USB-UART シリアル TTL 違いは?

    Aitendoに売っている、USB-UART、シリアルモジュール、USB-TTL、FT232、RS485それぞれの違いは何ですか?