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

LP/吉田 email@hidden
2011年 3月 31日 (木) 15:48:40 JST


吉田です。

竹之下様 田口様

64kByteとはかなり大きなバッファですね。
Windowsでも標準は確か4Kbyteか8Kbyte程度だったような気がします。
(PCは高速に動くことができるのでバッファが少なくて良いのかもしれませんが)

原因は不明なのですが、230.4kbpsで通信させているシリアルデータを数分~数10分に一度落として
しまうという現象が出ており、UARTのバッファはどのくらい余裕があるのかと調査してたのですが、
十分余裕がありますね。

以上、ご回答ありがとうございました

-----Original Message----- 
From: Takenoshita Koyo
Sent: Thursday, March 31, 2011 12:04 PM
To: Armadillo series general discussion list
Subject: [Armadillo:06930] Re: 420のUARTドライバ受信バッファについて

竹之下です。

[MSK製品開発G]H.Taguchi さんは書きました:
> 田口と申します。
> 横から失礼いたします。
>
> 230.4kbpsだと、秒間23.04kByte(UARTは通常8ビットの転送に10ビット使います)ですので、64KByteに対して3秒弱ですね。
そもそも、思いっきり計算間違いしてますね。38分なわけが無い。
申し訳ありません。
訂正ありがとうございます。

>
>
> 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 mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>


-- 
Koyo Takenoshita

_______________________________________________
armadillo mailing list
email@hidden
http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo 




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