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

    文章

    20158

    浏览量

    247645
  • 寄存器
    +关注

    关注

    31

    文章

    5590

    浏览量

    129156
  • 定时器
    +关注

    关注

    23

    文章

    3361

    浏览量

    121834
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    龙蜥操作系统装机量突破1000万

    11月17日,以“生态共融·智驱未来”为主题的2025龙蜥操作系统大会(OpenAnolis Conference)在北京成功举办。千余位全球技术大咖、业界精英和行业开发者齐聚一堂,深入探讨AI时代下操作系统产业发展的新趋势、新挑战与新路径,共话龙蜥社区引领
    的头像 发表于 11-20 11:40 552次阅读

    EV10AS180A模数转换器支持哪些操作系统

    应用。EV10AS180A转换器本身并不直接依赖或支持特定操作系统,其核心功能是完成模拟信号到数字信号的转换,属于硬件层面的数据处理设备。硬件独立性:EV10AS180A作为一款高性能ADC,其工作原理
    发表于 11-18 09:18

    单片机的操作系统

    单片机操作系统主要分为实时操作系统(RTOS)和嵌入式操作系统两类,以下是常见选择: 实时操作系统(RTOS) ‌ FreeRTOS ‌:轻量级开源内核(最小内核约6 KB RAM)
    发表于 11-14 06:18

    嵌入式实时操作系统的特点

    实时嵌入式操作系统(Real-Time Embedded Operating System)是专门设计用于嵌入式系统的实时操作系统。嵌入式系统是一种特殊的计算机
    发表于 11-13 06:30

    如何选择合适的实时操作系统

    选择合适的实时操作系统(RTOS,Real-Time Operating System)可能会影响你在不同行业的职业发展路径。
    的头像 发表于 09-09 14:47 837次阅读

    树莓派操作系统:版本、特性及设置完整指南!

    树莓派操作系统是什么?树莓派操作系统是由树莓派基金会专为树莓派开发的官方操作系统。它基于DebianLinux发行版,并针对树莓派的ARM架构进行了专门优化。树莓派操作系统有多个版本,
    的头像 发表于 07-28 18:26 859次阅读
    树莓派<b class='flag-5'>操作系统</b>:版本、特性及设置完整指南!

    鸿道Intewell操作系统:人形机器人底层操作系统

    操作系统的实时性赋能东土科技的鸿道(Intewell)工业操作系统作为国内唯一通过汽车、工业控制、医疗、轨道交通四项功能安全认证的系统,为标准体系中的技术层架构提供了底层支持。其微内核虚拟化架构可将人形机器人电子架构成本降低50
    的头像 发表于 05-16 14:44 564次阅读

    理想汽车智驾操作系统解读

    [首发于智驾最前沿微信公众号]在智能网联与生成式AI技术深度融合的浪潮下,汽车操作系统已经从最初的简单资源管理平台,演化为承载感知决策、执行控制与安全防护的智能化中枢。理想汽车自主研发的星环OS
    的头像 发表于 05-13 10:54 934次阅读
    理想汽车智驾<b class='flag-5'>操作系统</b>解读

    KaihongOS操作系统:ArkTS语言基础

    ArkTS语言基础 KaihongOS是面向全场景的万物智联技术底座,在OpenHarmony基础上技术创新和系统能力增强的跨设备的操作系统,它支持多种设备类型。ArkTS是KaihongOS
    发表于 04-23 06:31

    实时操作系统RTOS选型指南及实例分析

    鸿道Intewell操作系统是由科东软件自主研发的新型工业操作系统,历经30多年研发积累,采用微内核架构和自主研发的Hypervisor虚拟化技术,保证系统高实时性、高可靠性。鸿道Intewell
    的头像 发表于 02-27 15:21 1045次阅读

    鸿道Intewell操作系统的Linux实时拓展方案

    鸿道Intewell操作系统是科东软件自主研发的新型工业实时操作系统,历经30多年研发积累,采用业界领先的微内核架构,具备高实时、高安全及强扩展的特性,是目前国内唯一通过汽车、工业控制、医疗仪器、轨道交通四项功能安全认证的操作系统
    的头像 发表于 02-27 10:08 633次阅读
    鸿道Intewell<b class='flag-5'>操作系统</b>的Linux实时拓展方案

    国产银河麒麟操作系统V10和星光麒麟V1.0操作系统如何选择?

    国产银河麒麟操作系统和星光麒麟操作系统都是由中国电子旗下科技企业麒麟软件有限公司(简称“麒麟软件”)开发的国产自主可控的操作系统。麒麟软件介绍:麒麟软件以安全可信操作系统技术为核心,面
    的头像 发表于 01-24 09:14 4316次阅读
    国产银河麒麟<b class='flag-5'>操作系统</b>V10和星光麒麟V1.0<b class='flag-5'>操作系统</b>如何选择?

    云服务器选择什么操作系统好?

    云服务器选择什么操作系统好?选择云服务器操作系统需考虑业务需求、兼容性、安全性、易用性及成本。Linux系统如CentOS、Ubuntu和Debian因稳定、免费且社区支持强大而受欢迎;WindowsServer适合运行
    的头像 发表于 01-21 10:56 769次阅读

    VxWorks操作系统调节CPU的频率

    最近遇到一个问题,芯片发热,想调节CPU的频率,使用的芯片是ls1046a,如何用VxWorks操作系统调节CPU的主频
    发表于 12-26 20:04

    deepin操作系统介绍

    希望从自己的能力和对桌面操作系统的理解,能给 Linux 的用户与开发者更多的选择。我们也相信 deepin 能够得到更多用户的认可与喜爱,成为开源世界的最佳选择。  一、 deepin 操作系统 先说 Linux 操作系统,它
    的头像 发表于 12-23 09:08 3260次阅读
    deepin<b class='flag-5'>操作系统</b>介绍