硬件协议栈那点事儿 (续集)

Home / 博客 / 硬件协议栈那点事儿 (续集)

上一次我们同事写了一篇名叫“硬件协议栈那点事儿”的文章,受到很多朋友的欢迎,这次我延续它的主心骨,换一个不同的思路,给大家讲讲看我理解中的全硬件tcp/ip。

——WIZnet员工Alex培训笔记

培训一开始,首先Jerry帮我解决了上次培训中我还未完全弄懂的几个盲点,接下来就是对截然不同的两个以太网解决方案做了一对一的性能对比,让我对硬件协议栈这个东西产生了极大的兴趣。

 

刚开始jerry给我讲了串口相关的器件,类似SPI, RS232, UART这些,培训完后,我又百科了一下他们的属性:SPI是“接口”,UART是“芯片”,RS232是“接口”(标准)。具体来讲,SPI(Serial Peripheral Interface–串行外设接口)是单片机与一切外围器件的总线接口,SPI只有四条线,能很好地节约总线资源;,UART能将计算机内部的并行数据转换为串行数据来传输。而RS232(或RS422/485)只是连接UART的一个接口,并规定与之对应的电平协议标准。通常来讲,当一个微控制器中的UART连接外部设备时,通常需要一个RS232驱动器来转换电平。且RS232通常以9个引脚(DB-9)或25个引脚(DB-25)的硬件形态出现。

 

上面我也有提到,除了帮我解决了接口方面的混淆,Jerry也给我讲了下WIZnet硬件协议栈和软件协议栈的对比性能。虽然硬件协议栈在相关协议增减的灵活性上不如软件协议栈,但硬件协议栈在稳定性,速率等方面的优势是相当明显的,并且事实上,TCP/IP系统中传输层和网络层所需的网络协议已经比较固定和成熟,用在WIZnet全硬件协议栈中的网络协议足够用户需要,并且也不会显得冗余。另外Jerry也提到,从理论上讲,如果硬件资源足够,使用软件协议栈运行Socket口的数目是无限制的,而由于硬件协议栈的硬件资源已经规划成型,其Socket口往往是固定数目(一般是4个或8个)的。然而,实际情况是,在软件协议栈的方案中,由于单片机负载过多,即使Socket能到一定数目,它的运行、稳定性都成了问题,在数据处理和传输的速率上肯定不如相似条件下的硬件协议栈的,并且,一般来讲,硬件协议栈中的4个Socket口已经足以满足它的应用领域范围:无操作系统支持、所需资源少、控制简单的8位低端单片机的联网需求。另外,关于成本的问题,Jerry也提到 WIZnet在Ethernet整体方案上有着很好的成本控制优势,但是不少工程师会走入单纯的将其与PHY芯片比较的误区。而且,随着WIZnet市场发展,也逐渐会推出更具市场竞争力的产品。

关于更多全硬件协议栈的信息,您可以在百科一下,或者访问我们的官网, 谢谢关注。