|
前言:
大家好,我叫克克,这是本人第一次写这种技术类博客,选择tcp/ip协议这个课题入手,是以为我也不太懂,看了一些关于此方面的书籍资料也是云里雾里,实在是一块难啃的骨头。
首先在这里得感谢互联网,和互联网那一端无私分献自己宝贵经验的小伙伴们,是你们让我踏上了嵌入式这条道路,当初在学校学的东西毕业时就还给老师,所以我完全是从小白开始走上这条道路的,作为一个过来人,我觉得有必要写点什么回馈给大家,帮助后来的小白们,对于我们从事电子的人来说,知识就是财富。接下来的日子里,我会与大家一起学习tcp/ip协议,并分享我的一些心得,分享的过程也是提升自己的过程,让我们共同进步吧,好了,废话不多说了。
一、tcp/ip协议概述
玩过单片机的人都知道,不同的芯片直接交互信息,就需要用的各种各样的协议,所谓协议既是通信双方事先约定的规则,就好比我们跟老外交谈就得用英语,跟他们讲汉语他们是听不懂的,反之亦然。常用的通信协议有RS232,I2C, SPI, 1-wire等等,这些都属于串行类型的协议,就是信息是按bit传输,一个字节需要从高位到低位或者从低位到高位依次发送。每种协议都有各自的优点和不足,这里就不详谈了。
Tcp/ip协议是个协议族,即包含了多种协议,每种协议的完成的任务都不一样,按照功能可分为四层,如下图所示:
看上去是不是很复杂,完全不知其所以然,作为一名底层开发者 ,我们有必要从下往上抽丝拨茧一步步揭开迷雾,所谓软件,其实就是一层一层的封装,从上往下看是看不到全貌的,而且越看越糊涂。
一、链路层之物理通道
我们每天无时无刻不在使用着tcp/ip协议连接别的电脑,我们的话题就从常见的网线开始吧。
网线通常是4对双绞的线芯组成,每一对双绞线都由两条相互绝缘的导线按照一定规格互相缠绕。这四对双绞线的颜色通常为:橙、橙白、绿、绿白、蓝、蓝白、棕、棕白。
而这八根线中有四根是主线(橙、橙白、绿、绿白)起到发送和接收的作用。
另外四根是辅助线(蓝、蓝白、棕、棕白),起到消除干扰的作用。
在连接网络的时候,四根主线是一定要接好的。
那么,问题来了,为什么发送和接收需要4根线。
因为平常我们使用的串口线一般只用2根或三根,例如UART使用TX线发送,RX线接收,当然还有根底线。I2C使用的是SDA数据线和SCL时钟线。
从网线规格资料可知,主线的四根线分别是:
1---输出数据(+)
2---输出数据(-)
3---输入数据(+)
6---输入数据(-)
也就是说TX和RX都使用了两根线。
为什么要是2发2收呢?因为网线传输的是差分信号!!!
关于差分信号我们应该并不陌生,比如常见的RS485、CAN总线。
差分传输是一种信号传输的技术,区别于一根信号线一根地的做法,差分传输是在两个线上都传输信号,两个信号的振幅相等,相位相反,信号接收端通过比较这两个电压的差值来判断发送端发送的是逻辑0还是逻辑1.
关于差分信号的好处就不详述了,只需知道它适合长距离传输,且抗干扰能力强。
今天就暂时写到这里吧,后面怎么写我也还没想好,我自己也是个小白。
后面的内容更多的是分析协议,物理上的东西太复杂都会一带而过,我们的目的是使用它,而不是去搞研究。
晚安!
2017-7-2