基于PPP的TMS320C6x嵌入式网络接口设计
引 言:
随着嵌入式应用的普及,嵌入式系统的联网问题日益引人关注。在信息化进程中,如何实现资源共享已经是几乎所有电气设备必须回答的问题,嵌入式系统也不例外。
在传统的工控领域,大量以单片机为代表的嵌入式设备,如仪器仪表、数据采集和显示设备、过程控制设备等,面临更紧迫的联网需求。因为在工业化进程中,信息化正在发挥越来越重要的作用,而网络则是信息共享的基础。在工业自动化领域,由于应用环境千差万别,如何实现设备联网也见仁见智,方案之间差异很大。由于近几年电子技术的发展,以TCP/IP为代表的通用网络技术和标准在工业环境和生产现场的应用日益增多,开始逐渐被人们接受。但是,TCP/IP协议的真正优势在上层,它适合于大范围的信息共享。如何将品种繁多的现场设备联网并非TCP/IP所长,为了解决这个难题,人们想到了PPP(Point to Point Protocol)。
在TCP/IP协议族中,PPP本来是用来实现远程联结的,其特点是适应多种传输介质和可靠性高。在工业生产现场,这是两个被非常看重的优点,所以采用PPP作为嵌入式系统的联网协议已经引起广泛的关注[1]。为了利用PPP的优点,一些系统甚至在已经具备以太网的环境中仍然采用PPP,这就是所谓的以太网承载PPP技术(PPPoE)[2]。
1 TMS320C6x网络开发环境对PPP的支持
为了加速其高档DSP的网络化进程,TI结合其C6000系列推出了TCP/IP NDK (Network Developer’s Kit)。该开发包采用紧凑的设计方法,实现了用较少的资源耗费支持TCP/IP。从实用效果看,NDK仅用200~250K程序空间和95K数据空间即可支持常规的TCP/IP服务,包括应用层的telnet、DHCP、HTTP等。所以,NDK很适合目前嵌入式系统的硬件环境,是实现DSP上网的重要支撑工具。
与常规的TCP/IP应用环境不同,为了最大限度地减少资源消耗,TI为其NDK采用了许多特殊技巧,重要的有:
① UDP socket和RAW socket不使用发送或接收缓冲区;
② TCP socket使用发送缓冲区,接收缓冲区依配置文件而定;
③ 低层驱动程序与协议栈之间通过指针传递数据,不对包进行复制拷贝;
④ 设置专门的线程清除存储器中的碎片和检查存储器泄露。
要特别注意“低层驱动程序与协议栈之间的通信”。因为在嵌入式系统中,低层驱动程序和应用程序一样均需要开发者自行设计。也就是说,在以NDK为基础的开发中,开发人员需要分别设计低层驱动程序和应用程序,这两部分程序通过NDK提供的TCP/IP包发生关联。程序的执行过程是:应用程序调用TCP/IP包,TCP/IP包再调用低层的驱动程序。
相关文章
- 2024-09-04二等标准酒精计组的不确定度评定
- 2024-06-17APC技术在石化装置中的应用
- 2024-03-11用于模态和NVH试验的三维数字化坐标仪
- 2024-02-02随机共振在水声信号检测中的应用
- 2024-09-02便携式自调心小型圆度仪控制系统设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。