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

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

3天内不再提示

英创信息技术Linux的系统实时性测试介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-17 09:03 次阅读

工业控制领域,很多时候对系统实时性的要求较高,下面就通过英创公司的EM9160(内核为Linux-2.6)和EM9280(内核为Linux-3.9)工控主板,对Linux的不同版本2.6和3.9进行实时性的探究,对它们分别测试,得出测试结果,通过实验数据说明Linux-2.6和Linux-3.9在实时性方面的差别。

实时性的一个重要参数就是任务的响应延迟时间,它包含了其它几个重要的实时性参数(中断潜伏期时间,调度潜伏期时间等),任务响应延迟时间越短,说明任务对外部事件的响应速度越快,实时性也就越好。

本次测试就是针对任务的响应延迟时间进行的,使用串口接收整包数据然后解包得到数据,再对数据打包回发。测量出串口接收端RX接收数据完毕到发出端TX开始发送数据的时间间隔,并对EM9160和EM9280的测试结果进行比较。

测试中,使用一块工控主板通过串口向测试使用的EM9160和EM9280每秒发送一个9字节的整包数据。

测试中通讯数据包定义如下:

0x55 0xaa DestAddr SourceAddr DatLen Dat0 Datn checksum

测试得出的时间间隔包括两段,串口RX端接受数据完毕至系统响应数据的延迟时间和处理数据的时间。这里的处理数据非常简单,读取数据解包,再打包回发,所用时间仅为10us不到。所以,测量出的时间间隔主要是系统响应串口接收数据的延迟时间。

由于测量任务的响应延迟时间不同于一般的时间参数测量,它要求很高的时间测量精度(至少微秒级)。所以,测试中采用示波器作为测试工具,分别测出在接受处理数据时串口RX端和TX端的波形,观察波形之间的时间间隔,就能精确的测量出串口收发数据的时间间隔。

根据上面所阐述的,在EM9160和EM9280工控主板上分别进行Linux系统对任务响应延迟的测量。

测试所用程序的一些主要部分;

首先配置并打开串口:
rc = m_Serial.OpenPort( 2, 115200, '8', '1', 'N');

这里为打开ttyS2,波特率115200,8位字符长度掩码,1位停止位,无奇偶校验。

数据的接收采用建立一个单独线程的方式,在线程中调用select()函数等待数据,当接受到数据以后,对数据处理,要进行相应解包,检验和的验证,并且回发:
pthread_create(&m_thread,&attr,(void *(*) (void *))&ReceiveThreadFunc, (void*)this );

串口发送数据需要经过打包处理:
int CSerial::WritePort(unsigned char *Buf, int len ,int fd)

对该例程感兴趣的客户可以点此下载该例程完整代码。

在EM9160和EM9280上面都使用同样的程序进行测试。

基于EM9160平台,对Linux-2.6的测试结果:

橙色线CH1的波形是串口接收端RX的波形,蓝色线CH2的波形是串口发送端TX的波形,波形横轴每一格的单位为2.5ms。测试波形的截图如下。

通过对以上四张图波形的观察,可以发现,EM9160工控主板在Linux-2.6的环境下,系统等任务的响应延迟是一个范围值,最短时间在1ms左右,最长时间已经超过了10ms。

下面来看基于EM9280平台,对Linux-3.9的测试结果:

橙色线CH1的波形是串口接收端RX的波形,蓝色线CH2的波形是串口发送端TX的波形。波形横轴每一格的单位为250us,测试波形的截图如下。

通过对这三张图中波形的分析,可以看出,在EM9280工控主板在Linux-3.9的环境下波形很稳定,系统对任务的响应延迟时间在1MS以内。能够满足对实时性的较高要求。

分析实验数据,可以发现,Linux-3.9对任务的响应延迟时间能够保持在1ms之内,而Linux-2.6对任务的响应延迟时间最短时间在1ms左右,但是最长时间却达到了10ms左右。通过对比,可以得出Linux-3.9相对于Linux-2.6在实时性上有相对较大的提升。

本次测试采用的波特率是115200,这样可以尽可能的减少数据传输时间和接收与发送超时的影响,与系统的响应时间对比,能够显现出实时性的特点。对于较慢的波特率,比如9600,4800等,数据传输本身较慢,等待数据传输和超时的时间也较长,可能一次数据传输完成的时间和系统响应的时间已经相差不大或者超过系统响应时间,这种情况下,Linux-2.6已经能够满足实时性的要求。但是当客户的传输速率较快而且对实时性的要求较高时,建议选用内核为Linux-3.9的工控主板进行相关开发,能够满足需求。

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

    关注

    87

    文章

    11294

    浏览量

    209341
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35297
收藏 人收藏

    评论

    相关推荐

    电力驱动测试系统技术原理和应用

    正朝着高精度、高效率、高自动化和智能化的方向发展。未来,电力驱动测试系统将更加注重测试数据的准确和可靠,提高
    发表于 12-19 14:54

    水稳拌合站管理系统助力公路信息技术管理

    在现代公路建设中,水稳拌合站管理系统的作用愈发重要。作为一种新型的信息化管理工具,它通过先进的质量管理信息技术,为公路工程的高效、准确和安全实施提供了强有力的支持。本文将深入探讨水稳拌合站管理
    的头像 发表于 11-20 08:45 100次阅读
    水稳拌合站管理<b class='flag-5'>系统</b>助力公路<b class='flag-5'>信息技术</b>管理

    国产实时操作系统:和RT-Linux,Zephyr的实时对比

    RT-Thread在工业领域、高安全高可靠领域,实时操作系统在其中发挥着重要的作用,从毫秒级,微秒级实时响应,决定着装置系统能满足何种严苛
    的头像 发表于 11-12 01:07 666次阅读
    国产<b class='flag-5'>实时</b>操作<b class='flag-5'>系统</b>:和RT-<b class='flag-5'>Linux</b>,Zephyr的<b class='flag-5'>实时</b><b class='flag-5'>性</b>对比

    linux实时系统还是分时操作系统

    系统就难以满足实时性需求,但是目前linux社区已经增加了较多版本的实时补丁,给linux内核
    的头像 发表于 11-11 11:43 427次阅读

    工控重磅|望获实时Linux适配AnyControl,大大提升高级控制+实时

    操作系统+软件PLC的解决方案得到了广泛关注。    望获实时Linux是一款嵌入式实时操作系统,针对工业控制场景进行了定制优化,提升操作
    的头像 发表于 11-08 10:30 286次阅读
    工控重磅|望获<b class='flag-5'>实时</b><b class='flag-5'>Linux</b>适配AnyControl,大大提升高级控制+<b class='flag-5'>实时</b><b class='flag-5'>性</b>

    一致测试系统技术原理和也应用场景

    一致测试系统是用来检测零部件或系统实现是否符合相关标准或规范的测试流程,其技术原理和应用场景具
    发表于 11-01 15:35

    中科达荣获2024年软件和信息技术服务优秀企业

    及前百家企业”名单。中科达凭借非凡的技术实力与持续的创新能力,成功入选“2024年度软件和信息技术服务竞争力百强企业”以及“2024年软件和信息技术服务优秀企业”。
    的头像 发表于 10-30 11:44 462次阅读

    航电实时测试系统解决方案

    航电实时测试系统主要应用于航空座舱的实时测试。座舱测试过程中,输入和输出信号的
    的头像 发表于 10-23 15:34 260次阅读
    航电<b class='flag-5'>实时</b><b class='flag-5'>测试</b><b class='flag-5'>系统</b>解决方案

    延时仅33us,Linux-RT实时性能测试分享—基于瑞芯微RK3562J国产平台

    本文主要介绍瑞芯微RK3562J的实时测试,开发环境如下:U-Boot:U-Boot-2017.09Kernel:Linux-RT-5.1
    发表于 08-22 13:51

    Linux内核测试技术

    。内核测试技术是实现这一目标的关键手段。本文将详细介绍 Linux 内核测试的各种技术,包括单元
    的头像 发表于 08-13 13:42 484次阅读
    <b class='flag-5'>Linux</b>内核<b class='flag-5'>测试</b><b class='flag-5'>技术</b>

    实时Linux:解锁高效能和可靠的关键

    组合使得部署和管理复杂的实时应用变得更加高效,同时也提高了系统的整体性能和安全。因此,实时Linux和容器
    的头像 发表于 08-08 11:21 277次阅读
    <b class='flag-5'>实时</b><b class='flag-5'>Linux</b>:解锁高效能和可靠<b class='flag-5'>性</b>的关键

    实测14us,Linux-RT实时性能及开发案例分享—基于全志T507-H国产平台

    ,以提供有关系统的延迟信息。它可测量由硬件、固件和操作系统引起的实时系统的延迟。 使用Cyclictest
    发表于 07-25 15:58

    基于全志T507-H的Linux-RT实时测试案例分享

    的POSIX API等),实现产品快速上市的期望。 Linux-RT实时测试(Cyclictest工具) Cyclictest常用于实时
    发表于 06-03 09:50

    实测14us,Linux-RT实时性能及开发案例分享—基于全志T507-H国产平台

    通过反复测量并精确统计线程的实际唤醒时间,以提供有关系统的延迟信息。它可测量由硬件、固件和操作系统引起的实时系统的延迟。 使用Cyclict
    发表于 04-18 10:21

    EtherCAT主站控制器系统实时测试

    EtherCAT作为高效的现场总线网络技术,其实时性能需依赖高实时操作系统才能充分展现。本文以ZMC600E为例,测试
    的头像 发表于 03-26 08:23 750次阅读
    EtherCAT主站控制器<b class='flag-5'>系统</b><b class='flag-5'>实时</b><b class='flag-5'>性</b><b class='flag-5'>测试</b>