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

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

3天内不再提示

Kinoma Create的特定应用操作系统

星星科技指导员 来源:嵌入式计算设计 作者:Igor Serikov 2022-06-29 11:29 次阅读

SynthOS 是一种软件工具,用于创建定制的、优化的应用特定操作系统 (ASOS)。使用项目文件中指定的系统约束和配置信息,SynthOS 分析应用程序和驱动程序代码,并生成包含原始用户代码和运行特定 ASOS 要求所需的所有代码的源代码。

SynthOS 生成的 ASOS 是一个高效的多任务内核,可以从低端系统中引入新功能,尤其是小型 8 位或 16 位低速处理器,并使其能够用于高级物联网设备,同时提供安全性,便携性和低功耗。由此产生的 ASOS 是一种 unikernel 形式,一种占用空间小、单一地址空间的系统,它越来越受欢迎,可以直接在虚拟机管理程序或裸机系统上高效运行。

Kinoma Create,如图 1 所示,是一个用于连接设备和物联网的硬件和软件原型系统,基于 Marvell 的 PXA166 处理器。Kinoma Create 旨在与连接环境中的外部硬件和传感器一起工作。

图 1: Kinoma Create 硬件和接口

poYBAGK7x0uAQCilAAEP_LoFIdE989.png

为了将 Kinoma Create 连接到外部硬件,系统背面有一个 50 针接口;这些引脚专用于固定功能。该系统还在前面有两个相同的 8 引脚接头,如表 1 中定义,每个 8 位由两个 8 位 Microchip PIC 16 MCU 之一控制,这些 8 位 Microchip PIC 16 MCU 作为通用 I/O (GPIO) 处理器运行。使用与这些 GPIO 通信的内置 Front Pin 应用程序将这些引脚的功能动态分配给物理引脚。该项目的目标是为两个 GPIO 开发代码,这些 GPIO 可以同时运行多个 I/O 接口,不会丢失数据,但仍适合 PIC 15 MCU 的 4 KB 闪存和 256 字节 RAM

前面板接口上的任何引脚都可以支持表中所示的功能。

表 1: Kinoma Create Front Pin 功能

poYBAGK7x1WAV-toAAF7YcZmTiw210.png

硬件架构

硬件架构如图 2 所示。PIC16 是一款小巧但功能强大的 MCU,具有复杂的接口和配置设置。Kinoma Create 使用两个 PIC16F1508 微控制器,每个都具有以下特性:

· 中档指令集:48 条指令,16 层堆栈

· 闪存程序存储器:4 KB

· RAM:256字节

· 振荡器:16 MHz

· PWM:四个独立

· ADC转换器:12通道10位

· DAC:5位

· 定时器:2个8位,1个16位

控制器时钟来自内部 16 MHz 时钟。在 4 个周期/命令下,它相当于 4 MIPS。与主处理器的通信通过硬件 I 2 C 接口进行。

图 2: SynthOS-Kinoma 创建项目框图

poYBAGK7x1uATv1OAACV8xQTXBA992.png

软件架构

鉴于 PIC16 处理器在内存空间和处理速度方面的限制,SynthOS 适合该项目。SynthOS 创建的 ASOS 在内存使用、处理器能力和速度方面非常高效。它对于像 Kinoma Create 中使用的 Microchip 设备这样的小型 MCU 也很有用。SynthOS 允许在 C 中编写代码。当一个任务需要调用另一个任务或等待另一个任务完成时,会插入 SynthOS 识别的特殊代码行,称为“原语”。

然后在所有任务代码上运行 SynthOS,将每个任务的适当信号量和标志插入到代码中的适当位置。SynthOS 还创建了任务管理代码来安排任务并管理相关的标志和信号量。SynthOS-Kinoma Create Project 的软件架构如图 3 所示。

图 3: SynthOS-Kinoma Create Project 软件功能框图

poYBAGK7x2GADjK5AAFz-c9XM0E034.png

系统初始化

System Init 模块在上电、复位和任何其他初始化条件时设置系统配置和硬件配置。I 2 C 主机通信模块是系统中的主要任务。它与主机通信,从中获取配置信息和数据,并在响应主机请求时发回数据。它使用 PIC 的集成 I 2 C 机制。来自主机的数据分为两类:没有约束的数据和需要根据一组允许值进行验证的数据。后面的数据被保存到一组影子寄存器中,并在影子寄存器模块中处理。

从主机发送的一些数据会使系统进入不稳定状态或与其他数据发生冲突。此类数据保存在影子寄存器模块中的一组影子寄存器中,并与相应寄存器的允许值进行比较。只有在验证为允许值后才会加载到寄存器中并在系统中生效。如果系统在影子寄存器的数据中检测到错误,它不会将该数据加载到相应的寄存器中,但会指示错误。

模拟输入和 A/D 模块处理模拟输入。该模块使用 PIC 的内部 10 位模数转换器并将数据存储在主机可以通过 I 2 C 接口检索的寄存器中。

数字 I/O 端口管理器

数字 I/O 端口管理器模块处理数字 I/O 端口状态和 I/O。此功能在此模块和其他一些模块之间划分。在验证设置之间没有冲突(例如,同时定义为电源和接地的引脚)之后,在影子寄存器模块中将引脚设置为电源、接地或 NC。

PWM 端口管理器模块控制脉宽调制 (PWM) 输出,并在中断服务程序 (ISR) 中执行。PWM 使用两个寄存器定义,第一个定义周期时间,第二个定义周期时间内信号为高电平的时间段。PWM 机制依靠定时器中断来生成所需的波形。由于 PIC 的功能有限,系统仅限于三个 PWM 输出。

在带外围设备的 I 2 C 模块中,PIC 是 I 2 C 网络上的主设备。时钟和数据由 PIC 通过旋转引脚上的位来模拟 I 2 C 协议生成。如果需要,系统可以发送单字节数据消息或进行缓冲区传输。

中断服务程序 (ISR)

PIC 的有限功能和中断支持架构需要偏离标准的带有 SynthOS 的 ISR 实现。PIC 实际上只有一个中断向量,所有中断都指向同一个地址。检测活动中断并做出响应是固件的责任。该架构要求固件在退出 ISR 和重置中断标志之前支持中断。出于这个原因,该系统在 ISR 中执行主机 I 2 C 和 PWM 以最小化代码大小并最大化性能。

ASOS 管理系统的不同任务并让它们并行运行,从而实现更高的效率。SynthOS 将任务定义为 Init Task、Loop Task、Call Task 或 ISR,并且必须在项目文件中指定系统中的每种任务类型。我们创建了一个项目文件来指定每个任务的类型及其属性,例如任务的优先级和频率,所有这些都显示在清单中。

图 4:显示 SynthOS-Kinoma Create 项目文件的清单。

poYBAGK7x2mAB8E0AAHHh81IMVo924.png

接下来,我们将描述 SynthOS-Kinoma 创建项目的任务。初始化任务在软件初始化期间执行一次。由于这个实现相对简单,并且由于内存限制,我们将所有系统初始化都移到了一个任务中。该任务包括系统配置、中断设置和变量初始化。

循环任务

循环任务由 ASOS 使用 SynthOS 项目文件中选择的调度程序定义的算法定期执行。由于 PIC 的内存有限,我们在这个项目中只使用 Loop Tasks,这也简化了配置文件和 SynthOS 生成的调度程序。

I 2 C Master 任务管理与主机在 I2C 总线上的通信。影子任务通过使用影子寄存器验证来自主机处理器的信息,并且只有在影子寄存器中的数据被验证后才更新系统配置和数据。

模拟输入任务在后台运行,从主机指定的端口读取模拟输入并将其保存在共享内存中。调用任务是不执行的,除非它是由正在执行的任务专门启动的。在这个实现中,我们没有使用任何调用任务。

中断服务程序在中断发生时执行,就像在典型的嵌入式系统中一样。系统中的 ISR 或者是用于 PWM 的定时器中断,它根据主机处理器定义的占空比管理 PWM 时序,或者是管理与主机处理器通信的 I 2 C 主机中断。

使用 SynthOS 实现系统后,GPIO 可以按预期工作,允许多个 I/O 同时运行而不会丢失任何数据,支持多个 A/D 和数字 I/O、多达四个 PWM,以及一个 I 2 C 接口八个引脚,仅由一个 PIC MCU 支持。考虑到功能,系统内存利用率在 3360 字节闪存(82% 利用率)和 198 字节 RAM(77% 利用率)下非常高效。

审核编辑:郭婷

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

    关注

    68

    文章

    19134

    浏览量

    228914
  • 寄存器
    +关注

    关注

    31

    文章

    5304

    浏览量

    119903
  • 定时器
    +关注

    关注

    23

    文章

    3235

    浏览量

    114378
收藏 人收藏

    评论

    相关推荐

    linux操作系统安装步骤 linux操作系统的特点及组成

    Linux操作系统安装步骤 Linux操作系统是一种开源的操作系统,它以其稳定性、安全性和灵活性而闻名。以下是安装Linux操作系统的一般步骤,以Ubuntu为例: 1. 准备工作 在
    的头像 发表于 10-21 11:24 431次阅读

    工控机支持什么操作系统

    工控机,全称工业控制计算机(Industrial Personal Computer, IPC),支持多种操作系统以满足不同行业和应用场景的需求。具体来说,工控机常见的操作系统包括:
    的头像 发表于 09-11 09:24 320次阅读

    简单认识RTOS实时操作系统

    RTOS(Real Time Operating System,实时操作系统)是一种专门设计用于在严格时间限制内处理任务的操作系统。它以其高实时性、多任务处理能力和资源管理能力在工业自动化、医疗设备、航空航天、汽车电子等众多领域得到广泛应用。以下是对RTOS实时
    的头像 发表于 08-20 11:20 2291次阅读

    Windows操作系统是什么?它有哪些特点?

    Windows操作系统是由美国微软公司(Microsoft Corporation)开发和推出的一种计算机操作系统。自1985年Windows 1.0版本发布以来,Windows系统经历了多次重大
    的头像 发表于 08-07 16:30 1470次阅读

    嵌入式实时操作系统:Intewell操作系统与VxWorks操作系统有啥区别

    Intewell操作系统和VxWorks操作系统都是工业领域常用的操作系统,它们各有特点和优势。以下是它们之间的一些主要区别:
    的头像 发表于 07-08 14:16 349次阅读
    嵌入式实时<b class='flag-5'>操作系统</b>:Intewell<b class='flag-5'>操作系统</b>与VxWorks<b class='flag-5'>操作系统</b>有啥区别

    微内核实时操作系统的介绍

    微内核实时操作系统(Microkernel Real-Time Operating System, μRTOS)是一种专为实时设计的操作系统。它采用微内核架构,以提高系统的可靠性、安全性和可扩展性。以下是关于微内核实时
    的头像 发表于 05-11 17:13 460次阅读

    如何根据需求选择合适的新加坡VPS操作系统?

    选择合适的新加坡VPS操作系统您需要考虑哪些因素,如何根据需求选择合适的新加坡VPS操作系统?rak部落小编为您整理发布选择合适的新加坡VPS操作系统需要考虑哪些因素。
    的头像 发表于 05-10 11:14 390次阅读
    如何根据需求选择合适的新加坡VPS<b class='flag-5'>操作系统</b>?

    基于鸿道(Intewell®)操作系统研发的农业机器人操作系统

    江苏大学与科东软件联合研发“农业机器人操作系统”,并成立“农业机器人操作系统”联合实验室,奋力推进农业智能化,推动农业科技创新。“农业机器人操作系统”的技术革新,对提高农业生产效率、保护环境、应对农业劳动力短缺及促进智慧农业发展
    的头像 发表于 04-30 11:09 378次阅读

    带你认识实时操作系统(rtos)

    实时操作系统(RTOS)是为嵌入式系统和实时应用提供一个稳定、可预测和高效运行环境的操作系统。实时操作系统确保了系统能够在严格的时间限制内响
    的头像 发表于 04-16 16:30 1116次阅读
    带你认识实时<b class='flag-5'>操作系统</b>(rtos)

    深度解析全球操作系统格局

    操作系统是负责协调、管理和控制计算机硬件与软件资源的程序,是整个计算机的核心系统软件。 按照操作系统面向的设备类型,通用操作系统主要包括桌面操作系统
    的头像 发表于 01-18 15:00 1028次阅读
    深度解析全球<b class='flag-5'>操作系统</b>格局

    详解实时操作系统和非实时操作系统

    实时操作系统,当外界事件和数据产生时,系统能以足够快的速度予以处理,其处理结果能在规定的时间内控制生产结果或对系统做出响应,并控制所有实时任务协调一致运行的操作系统
    的头像 发表于 12-26 09:54 4410次阅读
    详解实时<b class='flag-5'>操作系统</b>和非实时<b class='flag-5'>操作系统</b>

    单片机操作系统有哪些

    单片机操作系统(RTOS)是一种专门设计用于单片机的操作系统,它可以提供任务调度、内存管理、设备驱动等功能,帮助程序员更高效地开发嵌入式系统。在本文中,我们将详细介绍几种常见的单片机操作系统
    的头像 发表于 12-08 16:18 4836次阅读

    LabVIEW在不同操作系统上使VI、可执行文件或安装程序

    时,LabVIEW检测到VI来自另一个平台,并重新编译以正确运行。 然而,如果VI包含特定于平台的功能,例如.NET或ActiveX,你不能在不同平台之间移动它。有关阻止你在操作系统之间移动VI的平台特定
    发表于 12-02 21:47

    什么是实时操作系统(RTOS)

    实时操作系统(RTOS)是一种专为实时应用程序设计的操作系统。实时应用程序需要在特定时间内做出预测的响应,因此 RTOS 专注于提供对时间约束的强调,以确保系统能够满足实时性能要求。
    的头像 发表于 11-23 17:14 5513次阅读

    从芯片到操作系统,手机厂商的操作系统混战卷到了智能手表

     电子发烧友网报道(文/莫婷婷)继华为推出鸿蒙操作系统之后,不少手机厂商都推出自研操作系统,小米推出小米澎湃OS替代MIUI,vivo也推出蓝河操作系统。霎时间,自研操作系统似乎成了手
    的头像 发表于 11-22 01:09 1787次阅读
    从芯片到<b class='flag-5'>操作系统</b>,手机厂商的<b class='flag-5'>操作系统</b>混战卷到了智能手表