书上有这么一段:
串行线路吐吐量计算
如果线路速率是 9600 b/s, 而一个字节有 8 bit, 加上一个起始比特和一个停止比特, 那么线路的速率就是 960 B/s (字节 /秒).
1
Osk 2017-04-23 18:15:12 +08:00
开始 /结束位一共 2bit (其实这里用 bit 我觉得不太合适) + 1Byte = 10b
9600b/s ÷ 10 = 960b/s 好像这两位在串行通信中用于同步,相当于告诉对方:我开始发送数据了,准备接收吧;我发完了,你处理下吧 具体细节记不清楚了,可能不对哈 |
2
billlee 2017-04-23 19:23:28 +08:00
UART 每个字节都需要起始位和停止位。不是 SLIP 的问题。
|
3
pagxir 2017-04-23 21:50:06 +08:00
因为没传输时钟信号,所以必须每个字节带停止位 /开始位吧,这个相当于告诉对方同步时间。
|
4
silenceeeee OP @Osk 为啥书上写的是 SLIP 的帧格式的一头一尾各有一个 END (0xc0) 的特殊字符啊. 两个 END 的中间就是 IP 数据报, 并且每个 END 字符占一个字节
你这里的意思听起来是: 每个字节的前后都加一个位 (开始位 /结束位) ? 或是我哪里理解有误? |
5
pagxir 2017-04-23 23:41:18 +08:00
没毛病呀,帧头帧尾是必须的,而传输字节的起止位也是必须的,这是两个不同的概念。搞通信的估计很清楚。
|
6
pagxir 2017-04-23 23:57:32 +08:00
其实 SLIP 通常是用 RS-232 来承载的,而 RS-232 是用 UART 来传输数据, UART 又定义了起止位。
总的来说 SLIP 的帧个是的头尾跟起止位不是一码事, 就如 TCP/IP 网络是分层的: RS-232 相当于数据链路层,比如以太网。 SLIP 相当于网络层。 所以以太网中定义了报文的源地址 /目标地址 (源目 MAC) 而网络层也定义了报文的源地址 /目标地址 (源目 IP) 其实串口线传输的数据是一个流,必须加入分割符号才能知道那些事 IP 报文。 |
7
silenceeeee OP @pagxir 然而书上只讲了帧, 没有讲起止位, 然后我就看到了问题描述中的那一段关于速率的计算. 这种书有点不知道怎么看.
谢谢各位了. 如果有关于如何更好的学习这本书的方法推荐就更好了 |
8
silenceeeee OP @pagxir 我是写后端的, 其实不懂 RS-232 和 UART -_-
|