首页>>科技 >>内容

通信接口与通信协议,嵌入式常用接口协议

发布时间:2023-09-27 12:48:23编辑:温柔的背包来源:

很多朋友对通信接口与通信协议,嵌入式常用接口协议不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

通信接口与通信协议,嵌入式常用接口协议

接口协议是指需要交换信息的接口之间需要遵循的通信方法和要求。接口协议有很多种。接口协议不仅要规定物理层的通信,还要规定语法层和语义层的要求。

嵌入式系统设备通常由嵌入式计算机系统和执行设备组成。嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行设备,也称为受控对象,可以接受嵌入式计算机系统发送的控制命令,并执行指定的操作或任务。

致动器可以很简单,比如手机上的微型电机,在手机处于接收振动状态时开启;也可以非常复杂,比如索尼智能机器狗,它集成了多个微型控制电机和多种传感器,使其能够进行各种复杂的动作,感受各种状态信息。

硬件层包括嵌入式微处理器、存储器(SDRAM、ROM、Flash等)。)、通用设备接口和I/O接口(A/D、D/A、I/O等。).在嵌入式处理器上增加电源电路、时钟电路和存储电路,构成嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。嵌入式通用接口协议1、BSD TCP/IP协议栈。

BSD栈是历史上其他商业栈的起点,绝大多数专业的TCP/IP栈(VxWorks中的嵌入式TCP/IP栈)都是从BSD栈派生出来的。这是因为BSD栈在BSD许可协议下提供了这些专业栈的雏形,BSD许可允许BSD栈以修改或未修改的形式组合这些专业栈的代码,而无需向创作者支付版税。同时,BSD也是TCP/IP协议中许多创新的起点,比如广域网中的拥塞控制和避免。2、uC/IP

UC/IP是Guy Lancaster编写的一套基于uC/OS的开源TCP/IP协议栈,也可以移植到其他操作系统上。这是一个用于研究的完全免费的TCP/IP协议栈。uC/IP的大部分源代码都是从开源的BSD发布站点和KA9Q(一个基于DOS单任务环境运行的TCP/IP协议栈)移植过来的。

UC/IP有以下特点:支持认证和头压缩的PPP协议,优化的单次请求/回复交互流程,支持IP/TCP/UDP协议,可以实现的网络功能比较强大,可以缩减。UCIP协议栈被设计为一个网络模块,具有最小的用户界面和适用的串行链路。根据CPU、编译器和系统所需的协议数量,协议栈所需的代码容量空间在30到60 KB之间。http://ucip.sourceforge.net

3、LwIP

LwIP是由瑞士计算机科学研究所的Adam Dunkels开发的用于嵌入式系统的开源TCP/IP协议栈。LwIP表示轻量级IP协议,与uip相对。LwIP可以移植到操作系统,也可以在没有操作系统的情况下独立运行。

LwIP TCP/IP的实现侧重于在保持TCP协议主要功能的同时减少对RAM的占用。一般只需要几十K的RAM和40K的ROM即可运行,这使得LwIP协议栈适用于低端嵌入式系统。

LwIP的特点是:支持多网络接口下的IP转发,支持ICMP协议,包括实验性的扩展UDP(用户数据报协议),包括阻塞控制、RTT估计和TCP(传输控制协议)进行快速恢复和快速转发,提供专门的内部回调接口(Raw API)提高应用性能,提供可选的Berkeley接口API。http://www.sics.se/~adam/lwip/还是http://savannah.nongnu.org/projects/lwip/.

4、uIPuIP是一个非常小的TCP/IP堆栈,专门为8位和16位控制器设计。完全是用C写的,所以可以移植到各种结构和操作系统上。编译后的堆栈可以在几KB的ROM或几百字节的RAM中运行。UIP还包括HTTP服务器作为服务内容。许可证:BSD许可证http://www.sics.se/~adam/uip/5、微型TCP

TinyTcp stack是一个非常小而简单的TCP/IP实现,它包括一个FTP客户端。TinyTcp是为烧录到ROM中而设计的,现在似乎对大端结构有用(最初的目标是68000个芯片)。TinyTcp还包括一个用于3COM多总线卡http://ftp.ecs.soton.ac.uk/pub/elks/utils/tiny-tcp.txt.的简单以太网驱动程序

选择开源协议栈可以从四个方面考虑:一是是否提供易用的底层硬件API,即独立于硬件平台;一个是操作系统的内核API。协议栈需要调用的系统函数接口是否容易构造,另外就是应用支持的程度。

最重要的是占用的系统资源是否在可接受的范围内,是否有减少和优化的空间。其中BSD栈可以完全实现TCP/IP协议,但是代码庞大,从70 KB到150 KB不等,很难裁剪和优化。uIP和TinyTcp码容量小,功能简化,限制了在一些要求苛刻的场合,如便携性和大容量数据传输中的应用。

LwIP和uC/IP是同一级别的两个开源协议栈,代码容量和实现功能都差不多。LwIP不是特定于操作系统的。它抽象了与协议栈和平台相关的代码。如果用户想将其移植到自己的系统中,则需要完成这部分代码的封装,并提供可选的API接口用于网络应用支持。

UC/IP协议最初是为uC/OS设计的。为了方便用户的移植,还抽象了协议栈和平台的相关代码。但协议栈需要调用的系统函数大多参考了uC/OS内核函数的原型设计,并提供了协议栈的测试函数供用户参考。其缺点在于缺乏对网络应用的支持。

根据上面的分析,从应用和发展的角度来看,LWIP似乎受到了很多网友的青睐。UC/IP在文档支持和软件升级管理方面有很多缺点,但它最初是为UC/OS设计的。如果选择UC/OS作为软件基础,在系统功能构建上有优势。当然,如果选择其他操作系统,可以参考OS_NULL文件夹中的文件进行修改。

据我所知,UC/OS的母公司推出UC/OS-TCP/IP用了6个人*2年的时间,国内一家公司以LWIP为参照,测试优化协议用了4-5个人*2年的时间,所以商用TCP/IP栈贵也就不足为奇了。作为广大学习爱好者,如果只是运行原型,实验效果,以上几个开源协议栈提供测试实例,应该是不错的选择。

个人观点:可以优先考虑LWIP,至少网上有很多人一起学习。

以上知识分享希望能够帮助到大家!