[Armadillo:06929] Re: 420のUARTドライバ受信バッファについて

"[MSK製品開発G]H.Taguchi" email@hidden
2011年 3月 31日 (木) 11:45:39 JST


田口と申します。
横から失礼いたします。

230.4kbpsだと、秒間23.04kByte(UARTは通常8ビットの転送に10ビット使います)ですので、64KByteに対して3秒弱ですね。


On Thu, 31 Mar 2011 10:46:20 +0900
Takenoshita Koyo <email@hidden> wrote:

> 竹之下です。
> 
> > 230.4kbpsでどの位の時間とUARTへデータを取りに行かなくても取りこぼさなく 
> > て済むか
> 
> > UARTの受信処理について詳細知っている方おられましたらご教授願えないでしょ 
> > うか。
> UART(シリアル通信)のバッファ処理は色々な箇所で行われています。
> 
> まず、i.MX25のUARTコントローラが内部に32バイトのRx/TxFIFOを持っています。この
> FIFOに溜まったデータをカーネルが読み出して、カーネル空間のバッファに溜めます。
> 
> カーネルでのバッファリングは、mxc_uart.cの中ではなく、ttyレイヤで行っています[*1]。
> ttyレイヤでは、最大64kByte(65536byte)のバッファリングを行います[*2]。
> 
> ですので、アプリからみて「どの位の時間データを取りにいかなくても取りこぼさないか?」
> という問いに対する回答としては、
> 64kByte / (230.4kbps/8) = 2275.55...sec = 約38分
> となります。
> 
> 思っていたよりも、かなり大きなバッファが用意されているのですね。
> 
> *1: Linux カーネルのシリアル通信に関する階層構造は、以下のページのFigure 3が参考になると
>     思います。
>     http://www.linux.it/~rubini/docs/serial/serial.html
> *2: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=01da5fd83d6b2c5e36b77539f6cbdd8f49849225
> 
> -- 
> Koyo Takenoshita
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo





armadillo メーリングリストの案内