论文部分内容阅读
随着嵌入式系统在工业控制领域的广泛应用和发展,以及控制系统的网络化发展趋势,嵌入式系统的网络特性越来越受到重视。 目前已有TCP/IP协议栈多数是面向32位微处理器的,但是32位微处理器在工业控制领域增长缓慢,8位和16位的嵌入式系统在工业控制领域仍占据着垄断地位,有着极为广泛的应用。 本论文在P89C51单片机上设计并实现了eIP协议栈,提出了系统的整体架构和具体实现方案,并重点讨论了ARP协议、IP协议、ICMP协议、UDP协议、TCP协议和RTL8019AS驱动程序的设计和实现。 本论文深入研究了嵌入式TCP/IP协议栈的可配置性问题。将TCP/IP协议栈的功能高度模块化,对各功能模块进行耦合度分析,使各功能模块之间为松耦合关系,做到细粒度可配置,即在每个协议内部,各功能模块的可配置,而不是协议的可配置。用户通过编译开关对eIP协议栈进行裁减、配置。eIP协议栈在设计时充分考虑了系统的可移植性,我们通过系统抽象层屏蔽掉了硬件体系结构、网络驱动芯片、编译器等的差异,并严格按照RFC标准用ANSI C实现。 本论文深入研究了嵌入式TCP/IP协议栈的内存管理问题。在对动态分区内存管理算法、固定大小内存管理算法分析比较的基础上,针对eIP协议栈设计实现了pbuf缓冲区管理机制,使用循环首次适应算法分配pbuf缓冲区,同时支持在SRAM中存储动态数据,在FLASH中存储静态数据,实现了数据的零复制,有效提高了系统性能。 在实验室条件下,我们对RTL8019AS的驱动程序、IP协议、TCP协议、UDP协议进行了正确性测试和功能测试。并且在TCP协议的基础上,测试和分析了网络负载与网络传输速率之间的关系,缓冲区大小、eIP协议栈的调度时间间隔对系统的稳定性、可靠性以及网络传输速率的影响。实验得出缓冲区大小为10K左右,eIP协议栈的调度时间间隔为50ms—250ms时,网络传输速率可以达到420kb/s,同时系统具有良好的稳定性和可靠性。