嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解

目录

一、移位相关问题

1.1 类型提升规则

  • C语言中的类型提升 :当对小于 int 的类型(如 uint8_tuint16_t)进行算术运算时,它们会先被提升为 int 类型(32位),然后再执行运算。

1.2 移位运算注意事项

  • 左右移位差异 :移位时左边的0不影响计算,右边的0影响计算。例如:
    • 0x01 = 1(二进制 0000 0001
    • 0x10 = 16(二进制 0001 0000

1.3 N位编码满量程值

  • 公式正确性 :N位数字编码的满量程值是 2^N - 1,不是 2^N。
  • 原因分析
    1. N位二进制能表示的数值范围是 0 到 2^N - 1,共有 2^N 个离散状态。
    2. 当编码值为最大值 2^N - 1 时,应输出物理量的满量程值。
    3. 映射公式的分母必须是 2^N - 1,而不是 2^N------否则永远达不到满量程输出。
  • 实用提示:记得换算的时候多少位就是除以多少,不要照搬公式。

二、简称和符号含义

2.1 通信协议相关

FDCAN
  • 全称:Flexible Data-rate Controller Area Network
  • 中文:灵活数据速率控制器局域网络
  • 说明:传统 CAN 协议的升级版,最主要的区别是波特率可以更高,单帧能携带的数据更多。
HSE
  • 全称:High-Speed External
  • 中文:高速外部时钟
  • 说明 :即板载晶振(如8MHz),是系统高精度基准源。 注意:确保CAN/EtherCAT波特率稳定的前提是必须启用HSE,而非内部RC振荡器。
PLL
  • 全称:Phase-Locked Loop
  • 中文:锁相环
  • 说明:负责将HSE低频倍频至芯片主频(如72M~600MHz),直接决定 MCU 的运算速度。
PCLK
  • 全称:Peripheral Clock
  • 中文:外设时钟
  • 说明:由系统主频分频后供给各种外设(如CAN、定时器、串口等),直接决定通信波特率和电机脉冲计数精度。
  • 一句话总结:HSE 起振 → PLL 倍频出 SYSCLK(系统主频) → MCU 内核与 AHB 总线跑 SYSCLK → AHB 分频出 APB1/APB2 总线时钟 → APB 给外设供 PCLK(PCLK1 / PCLK2)

2.2 CANopen 相关术语

PDO
  • 全称:Process Data Object
  • 中文:过程数据对象
SDO
  • 全称:Service Data Object
  • 中文:服务数据对象
PDO vs SDO 对比表
特性 PDO SDO
用途 实时控制数据(高频、周期性交换) 非实时参数配置(低频、按需访问)
传输方式 广播或周期轮询(无需确认) 点对点请求/响应(需确认)
实时性 微秒级延迟(严格同步) 毫秒级延迟(异步)
数据量 小数据块(如:1 字节 I/O 状态) 大数据块(如:配置文件、参数表)
可靠性 无重传机制(丢包需下一周期补偿) 支持重传(确保数据完整)
典型场景 电机位置控制、传感器读取 修改伺服参数、上传日志
cob_id
  • 全称:Communication Object ID
  • 中文:CANopen中的CAN ID
CoE
  • 全称:CANopen over EtherCAT
  • 说明
    • 速度提升:1Mbps → 100Mbps,通信周期从毫秒级提升至250μs级。
    • CoE优点
      • 同步:软件抖动 → 硬件分布式时钟,多轴同步误差从微秒级压缩至亚微秒级(<1μs)。
      • 🔌 接线:手拉手菊花链加终端电阻 → 普通网线任意拓扑,单站掉线不影响整体通信。
      • 📁 大文件:SDO 8字节低速分段传输 → 邮箱大包瞬间传输,固件升级极快。
      • 组网:手动拨码设节点 → ESI自动扫描即插即用,免去繁琐的节点地址分配。
BRS
  • 全称:BitRateSwitch
  • 中文:FDCAN比特率切换

2.3 数学符号

  • Π:这是希腊字母π(圆周率)

三、交流与反馈

欢迎大家有问题评论交流 (* ^ ω ^)

如果您在阅读过程中有任何疑问或建议,欢迎在评论区留言讨论!

相关推荐
Zevalin爱灰灰1 小时前
能源与电源管理电路——防倒灌电路
单片机·嵌入式硬件·电源管理
可爱系程序猿2 小时前
Windows 打印链路诊断:从设备枚举、TCP/IP 端口到 Spooler 服务恢复
网络·网络协议·tcp/ip
天国梦3 小时前
2026英语教学系统选型实战:AI如何让备课效率提升42%?天学网技术落地全解析
人工智能·学习
维克兜率天3 小时前
【维克】大数定律与中心极限定理:为什么长期均值终将回归?
经验分享·学习·金融·概率论
中微极客4 小时前
降维算法75倍加速:从PCA到稀疏字典学习的工程实践
人工智能·学习·算法
无垠的广袤4 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
深念Y4 小时前
P2P组网选型与折腾记录
网络·网络协议·p2p·局域网·远程·组网
jjjava2.05 小时前
系统日志:从入门到精通的完整指南
网络·数据库
嵌入式-老费5 小时前
esp32开发与应用(添加数据分区)
单片机·嵌入式硬件
吃好睡好便好5 小时前
MATLAB中图像的读取、写入和显示
开发语言·图像处理·学习·计算机视觉·matlab