【发布时间】:2012-09-28 21:52:15
【问题描述】:
我想知道我的数学是否正确。如果我的波特率为 9600,那么这意味着每秒发送 9600 位,对吗?如果是,那么:
9600 bit/sec <=> 1000 ms/ 9600 bit = 0.1042 ms/bit
所以,发送 32KB 应该花费:
32,000*(8+2) bits = 320,000 bits -- (8+2) because 8 data bits + 1 start bit + 1 stop bit
320,000 bits*0.1042 ms/bit = 33344 ms = 33.344 sec
对吗?
【问题讨论】:
-
32KB = 32 * 1024 = 32768 字节。除此之外,假设没有握手延迟或发射器落后于驱动程序,是的。
-
您的问题不完整,因为您只指定了“串行”连接。串行连接可以是同步的或异步的。更常见的“串行”连接当然是 EIA-232(又名 RS-232)异步。对于异步串行连接,波特率仅指定字符帧中位的比特率。 asynchronous 属性意味着字符帧之间的时间是未指定的。因此,通过异步串行连接的“发送时间”只能得出最短时间,而最长时间是无限的。
-
从技术上讲,波特率指定每秒符号的数量;而不是比特。如果我没记错的话,电话线调制解调器的峰值为 9600 波特,但通过对每个符号编码更多位,我们能够达到 14.4kbps 到 57.6kbps。否则,我认为你的数学是正确的,忽略纠错等任何其他因素。
-
对于所有的传统主义者来说,在什么情况下“kilo”意味着1024,其中1000意味着:停止这个。请。 Kilo 表示 1000 倍。 Kibi的意思是1024×。 Period.
标签: embedded serial-port baud-rate