paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Jacdac: Service-Based Prototyping of Embedded Systems

Jacdac:基于服务的嵌入式系统原型开发
PLDI 8(PLDI)2024匹配度 2/10 · 论文属于嵌入式系统与领域特定语言/开发者工具,提出服务化抽象和单线总线,与用户关注的静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析均无直接交集;仅在 PL/DSL 与工程实现层面有弱相关。引用 7 inbox
Thomas Ball, Peli de Halleux, James Devine, Steve Hodges, Michał Moskal
dblp: 2026-09-10crossref: 2026-09-10

AI 速览

一句话:提出并实现 Jacdac,用服务规格语言与单线总线将传感器/执行器抽象为可发现服务,便于嵌入式原型开发。

传统嵌入式编程是单体式的:固件同时包含应用代码与传感器/执行器驱动,并使用 I2C、SPI、RS232 等底层协议;而云计算已转向服务化开发与运维。本文提出、设计、实现并评估 Jacdac,一种面向嵌入式系统原型开发的服务化方法。Jacdac 定义专为嵌入式系统设计的服务规格语言及多种传感器/执行器规格;每个传感器或执行器与低成本微控制器配对,通过高效低成本单线总线广播其服务,另一微控制器运行用户应用并作为服务客户端。评估表明,Jacdac 以低成本、可接受性能提供传感器/执行器服务抽象,支持自动发现、同服务设备替换、高层编程、监控与调试,并报告了经由第三方制造商实现商业可用的经验。

问题
传统嵌入式系统开发是单体式固件,应用逻辑与底层传感器/执行器驱动及 I2C、SPI、RS232 等协议耦合,难以像云服务那样独立发现、替换与更新;本文希望为嵌入式原型开发提供类似云服务的抽象。
方法
提出 Jacdac:定义面向嵌入式系统的服务规格语言和传感器/执行器规格;每个硬件与低成本微控制器配对,经单线总线广播服务,用户应用运行在另一微控制器上并作为服务客户端。
评估
通过实现与评估展示低成本、可接受性能的服务抽象,并验证自动发现、同服务设备替换、高层编程、监控与调试等原型开发优势;还报告了经由第三方制造商实现商业可用的经验。
原文摘要(Abstract)

The traditional approach to programming embedded systems is monolithic: firmware on a microcontroller contains both application code and the drivers needed to communicate with sensors and actuators, using low-level protocols such as I2C, SPI, and RS232. In comparison, software development for the cloud has moved to a service-based development and operation paradigm: a service provides a discrete unit of functionality that can be accessed remotely by an application, or other service, but is independently managed and updated. We propose, design, implement, and evaluate a service-based approach to prototyping embedded systems called Jacdac. Jacdac defines a service specification language, designed especially for embedded systems, along with a host of specifications for a variety of sensors and actuators. With Jacdac, each sensor/actuator in a system is paired with a low-cost microcontroller that advertises the services that represent the functionality of the underlying hardware over an efficient and low-cost single-wire bus protocol. A separate microcontroller executes the user's application program, which is a client of the Jacdac services on the bus. Our evaluation shows that Jacdac supports a service-based abstraction for sensors/actuators at low cost and reasonable performance, with many benefits for prototyping: ease of use via the automated discovery of devices and their capabilities, substitution of same-service devices for each other, as well as high-level programming, monitoring, and debugging. We also report on the experience of bringing Jacdac to commercial availability via third-party manufacturers.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@article{BallHDHM24,
  title = {Jacdac: Service-Based Prototyping of Embedded Systems},
  author = {Thomas Ball and Peli de Halleux and James Devine and Steve Hodges and Michał Moskal},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {8},
  number = {PLDI},
  year = {2024},
  doi = {10.1145/3656405}
}