connectivity-usb-can
USB and CAN connectivity for Zephyr RTOS. Covers USB device stack configuration (CDC ACM, HID, MSC), CAN controller integration, and professional USB-to-CAN adapter patterns including buffering and protocol packetization. Trigger when adding USB interfaces, implementing CAN bus communication, or building hardware diagnostic tools.
适合你,如果在 Zephyr RTOS 上开发 USB 或 CAN 通信功能
npx oh-my-skill add beriberikix/zephyr-agent-skills/connectivity-usb-cancurl -fsSL https://oh-my-skill.com/install.sh | bash -s -- beriberikix/zephyr-agent-skills/connectivity-usb-cannpx oh-my-skill verify beriberikix/zephyr-agent-skills/connectivity-usb-can怎么用
商店整理自技能原文 · 版本 ed63cdf · 表述以原文为准这个技能使Claude能够帮助你配置Zephyr RTOS的USB和CAN功能。它可以添加USB接口(如CDC ACM、HID、MSC),集成CAN控制器,并设计USB转CAN适配器模式,包括缓冲和协议分包。
当你需要添加USB接口、实现CAN总线通信或构建硬件诊断工具时,Claude会触发此技能提供配置和代码示例。
技能原文 SKILL.md
Zephyr Connectivity: USB & CAN
Build versatile hardware interfaces using Zephyr's modular USB device stack and robust CAN controller support.
Core Workflows
1. USB Device Stack
Configure and enable standard USB classes for host communication.
- Reference: [usb_device_stack.md](references/usb_device_stack.md)
- Key Tools:
CONFIG_USB_DEVICE_STACK,usb_enable(), CDC ACM, HID.
2. USB-to-CAN Integration
Implement high-performance bridge patterns for CAN bus diagnostics and adapters.
- Reference: [usb_to_can.md](references/usb_to_can.md)
- Key Tools:
can_send(),k_msgq, binary packetization, CAN filtering.
Quick Start (USB CDC ACM)
# prj.conf CONFIG_USB_DEVICE_STACK=y CONFIG_USB_CDC_ACM=y
#include <zephyr/usb/usb_device.h>
void main(void) {
usb_enable(NULL);
}
Professional Patterns (Adapter Design)
- Binary Protocols: Use established protocols like
gs_usbfor robust data transfer over the USB-to-CAN bridge. - Hardware Filtering: Rely on the CAN controller's hardware filters to minimize CPU overhead from irrelevant bus traffic.
- Thread Safety: Use Zephyr's kernel IPCs (
k_msgq,k_fifo) to safely move data between high-priority CAN interrupts and the USB processing thread.
Automation Tools
- [can_filter_lint.py](scripts/can_filter_lint.py): Validate CAN filter ID/mask tables from CSV.
Examples & Templates
- [can_filters_template.csv](assets/can_filters_template.csv): Starter CAN filter table for adapter firmware.
Validation Checklist
- [ ] USB enumeration succeeds and the host sees the expected class interface.
- [ ] CAN frames can be transmitted and received on a known-good test bus.
- [ ] Bridge buffering prevents frame loss under burst traffic conditions.
- [ ] Protocol framing between USB endpoint and CAN payload is decoded consistently on both sides.
Resources
- [References](references/):
usb_device_stack.md: Configuring USB classes and descriptors.usb_to_can.md: Adapter patterns and buffering strategies.- [Scripts](scripts/):
can_filter_lint.py: CAN filter table consistency checker.- [Assets](assets/):
can_filters_template.csv: Sample filter definitions.