0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式Linux上的以太网TSN简介

星星科技指导员 来源:嵌入式计算设计 作者:Brandon Lewis 2022-06-27 11:56 次阅读

本系列文章深入探讨了新兴的确定性以太网标准以太网时间敏感网络 (TSN),以及如何在各种基于 Linux嵌入式系统上有效地实现它。我们将使用一系列低成本、现成的开发板硬件,演示如何为我们的用例配置 Raspberry Pi联发科 LinkIt 智能板,然后使用实时数据包技术在设备之间进行通信,并控制机器人外围设备。

首先,需要对底层组件有基本的了解。在本文中,我们从嵌入式 Linux 开始。

桌面 Linux 与嵌入式 Linux

嵌入式 Linux 是 Linux 内核的改编版,用于嵌入式系统。嵌入式 Linux 最流行的例子是 Android 操作系统

但是,需要大量硬件资源来支持嵌入式 Linux,特别是如果它将部署在实时机器对机器 (M2M) 通信、机器人控制或本系列后面重点介绍的复杂计时应用等用例中. 这些资源至少包括支持以太网和其他基本接口的嵌入式硬件平台(板或片上系统),以及用于容纳操作系统、库、文件系统、应用程序、引导加载程序、等等

就像普通的 Linux 一样,嵌入式 Linux 是开源的、可修改的,并且是用 C 语言编写的。同样就像桌面 Linux 或任何其他操作系统一样,嵌入式 Linux 的作用是将用户和应用程序从底层处理器中抽象出来,内存和其他硬件组件;为各种功能分配和交付系统资源;同时管理多个任务和应用程序,等等。因此,嵌入式 Linux 系统堆栈看起来就像您的典型桌面。

尽管如此,如果您现在还没有注意到,嵌入式 Linux 和传统桌面 Linux 之间存在许多显着差异。其中包括直接从闪存而不是硬盘驱动器启动的能力。

下面提供了一个比较嵌入式和桌面 Linux 之间一些主要差异的图表。

pYYBAGK5KoqAWPfzAALzjnCxN-I165.png

嵌入式 Linux:交叉编译器、库和引导加载程序

由于嵌入式 Linux 是为特定应用程序设计的,因此工程师在开始需要开源操作系统的系统设计时必须使用一些特定的开发工具。下面当然不是一个详尽的列表,但一个很好的起点是使用正确的库、强大的交叉编译器和与 Linux 内核配对的高效引导加载程序。

交叉编译器

对于不熟悉的人,交叉编译器是一种编译器,它执行编写的代码以在编译器所在的机器之外的其他机器上运行。例如,在您的 PC 或笔记本电脑上运行的交叉编译器能够生成为嵌入式系统(如 Android 智能手机)编写的代码。

poYBAGK5KoOAEIj2AABhUkULLxM649.png

嵌入式 Linux 系统需要交叉编译器,因为这些设备通常没有本地编译代码所需的资源,因此必须在其他地方编译代码然后交付给目标。

当涉及到提供诸如大小优化、支持控制处理的特性等特性的交叉编译器时,有几个选项。但是这里列出了一些最常见的交叉编译器:

构建根

Crosstool-NG

约克托

C 库

C 库提供内核和应用程序之间的接口,因此必须是交叉编译过程的一部分。嵌入式 Linux 系统中的任何程序,无论是用 pythonjava 还是其他语言编写的,都必须在运行时调用 C 库,以便通过 Linux 内核访问硬件资源。

pYYBAGK5KnyAUOx6AADC_0NNnn0815.png

以下是一些用于嵌入式 Linux 系统的流行 C 库。

glibc – 标准的 GNU C 库功能丰富,但以占用大量内存为代价。它也没有任何配置选项。

uClibc – “u”表示 uClibc 是一个用于嵌入式系统的小型微控制器 C 库。

musl – musl 也很小,在 RAM 和存储空间有限的系统中是一个不错的选择。

eglibc – eglibc 与 glibc 相同,但经过修改使其更适合在嵌入式设备中使用,例如支持配置。

特定应用程序库

嵌入式 Linux 内核的功能有限,因此需要特定的库。我们当然不能全部列出,但下面列出了一些更受欢迎的。其中一些将在本系列的后面部分使用。

libgpiod——标准命令行并不是当今与 Linux 设备文件交互的唯一方式。libgpiod 用于与 Linux 设备中的 GPIO 硬件进行交互。

libusb ——libusb 是一个 C 库,它为来自单一平台的所有通用 USB 设备提供驱动程序。

套接字——套接字库连接网络上的节点。

serdisplib – 这个库可以驱动多个显示器,如 OLED、USB 显示器或带有内置控制器的显示器。

Pigpio – Pigpio 库可用于控制 Raspberry Pi GPIO。

opc-ua – opc-ua 协议是一种适用于时间敏感网络的协议。

lockdev - 锁定和解锁设备

libxls - 该库用于读取和转换 excel 文件。

libstroke – 用于识别鼠标笔划和手势的库。

libserialport – 在编写使用串行端口的软件时提取特定于操作系统的详细信息

hidapi – 用于与 USB 和蓝牙 HID 设备通信的库。血红蛋白

mjpg_streamer – 用于从一个或多个输入中捕获 JPEG 帧并通过 IP 网络流式传输它们

奶酪– 奶酪可以帮助您使用网络摄像头拍摄视频、照片等。

Elisa – 这是一个简单的音乐播放器,因此您可以播放任何音频

引导加载程序

引导加载程序是系统上电后运行的第一个代码,它处理基本的硬件初始化,并从嵌入式 Linux 系统中的硬盘驱动器或 SD 卡或闪存等可引导设备加载操作系统。一旦引导加载程序为 Linux 内核设置了可执行环境并且内核开始执行,就不再需要引导加载程序。

引导加载程序有各种形状和大小,可以根据用户或系统需要进行定制。事实上,一些嵌入式电路板带有引导加载程序。

这里有一些常用的引导加载程序和它们支持的处理器架构。

这些是您可能每天都在使用的各种基于 Linux 的嵌入式系统背后的关键构建块,甚至可能不知道它们运行 Linux,例如智能电视、无线路由器和网络附加存储设备。

既然这些基础知识已经解决,在第 2 部分中,我们将仔细研究嵌入式硬件目标的来龙去脉,我们将在其上运行嵌入式 Linux,稍后将支持我们的以太网 TSN 堆栈。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18274

    浏览量

    288358
  • Linux
    +关注

    关注

    87

    文章

    10988

    浏览量

    206725
  • 路由器
    +关注

    关注

    22

    文章

    3495

    浏览量

    111331
收藏 人收藏

    评论

    相关推荐

    TSN时间敏感网络四大板块介绍#TSN #时间敏感网络 #车载以太网

    车载以太网TSN
    北汇信息POLELINK
    发布于 :2024年04月23日 16:21:30

    什么是嵌入式Linux

    Linux到底是什么呢? 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统
    发表于 10-11 13:47

    基于S3C44B0X和μcLinux的嵌入式以太网设计与分析

    电子发烧友网站提供《基于S3C44B0X和μcLinux的嵌入式以太网设计与分析.pdf》资料免费下载
    发表于 10-11 10:04 0次下载
    基于S3C44B0X和μcLinux的<b class='flag-5'>嵌入式</b><b class='flag-5'>以太网</b>设计与分析

    基于dsp嵌入式uiptcp_ip协议栈的应用研究

    系统接入网络实现音频传输的功能。 本文首先搭建了一个基于DSP嵌入式系统的以太网接入硬件平台,具体阐述了便携通信开发板的组成模块,并根据该系统中主要模块的硬件实现框图对各组成部分的特性一一展开论述
    发表于 09-25 07:11

    车载以太网基础视频——应用层#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月22日 09:05:01

    车载以太网总线基础培训——传输层#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月21日 10:57:36

    车载以太网基础培训——网络层#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月20日 08:51:32

    车载以太网基础培训——车载以太网的链路层#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月19日 16:25:21

    车载以太网基础培训——物理层简介#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月18日 16:37:56

    车载以太网测试系统测试实例介绍#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月12日 17:27:48

    车载以太网测试系统组成#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月05日 16:47:18

    车载以太网快速入门#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月01日 17:54:31

    69 67_以太网简介 - 第4节

    以太网
    充八万
    发布于 :2023年08月19日 22:08:14

    69 67_以太网简介 - 第1节

    以太网
    充八万
    发布于 :2023年08月19日 22:05:42

    如何在Toradex i.MX8QXP SOM启用第二个以太网接口?

    我正在尝试在 Toradex i.MX8QXPSOM 启用第二个以太网接口。我以前从未这样做过并发布到 Toradex 论坛寻求帮助。从那以后我运气不太好,我在这里发帖。我附上了我当前的 dts
    发表于 05-30 08:28