嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解 📅 2026/7/3 14:39:57 目录一、移位相关问题1.1 类型提升规则1.2 移位运算注意事项1.3 N位编码满量程值二、简称和符号含义2.1 通信协议相关**FDCAN****HSE****PLL****PCLK**2.2 CANopen 相关术语**PDO****SDO****PDO vs SDO 对比表****cob_id****CoE****BRS**2.3 数学符号三、交流与反馈欢迎大家有问题评论交流 (* ^ ω ^)一、移位相关问题1.1 类型提升规则C语言中的类型提升当对小于int的类型如uint8_t、uint16_t进行算术运算时它们会先被提升为int类型32位然后再执行运算。1.2 移位运算注意事项左右移位差异移位时左边的0不影响计算右边的0影响计算。例如0x01 1二进制0000 00010x10 16二进制0001 00001.3 N位编码满量程值公式正确性N位数字编码的满量程值是2^N - 1不是 2^N。原因分析N位二进制能表示的数值范围是0 到 2^N - 1共有 2^N 个离散状态。当编码值为最大值 2^N - 1 时应输出物理量的满量程值。映射公式的分母必须是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 给外设供 PCLKPCLK1 / PCLK22.2 CANopen 相关术语PDO全称Process Data Object中文过程数据对象SDO全称Service Data Object中文服务数据对象PDO vs SDO 对比表特性PDOSDO用途实时控制数据高频、周期性交换非实时参数配置低频、按需访问传输方式广播或周期轮询无需确认点对点请求/响应需确认实时性微秒级延迟严格同步毫秒级延迟异步数据量小数据块如1 字节 I/O 状态大数据块如配置文件、参数表可靠性无重传机制丢包需下一周期补偿支持重传确保数据完整典型场景电机位置控制、传感器读取修改伺服参数、上传日志cob_id全称Communication Object ID中文CANopen中的CAN IDCoE全称CANopen over EtherCAT说明速度提升1Mbps → 100Mbps通信周期从毫秒级提升至250μs级。CoE优点⚡同步软件抖动 → 硬件分布式时钟多轴同步误差从微秒级压缩至亚微秒级1μs。接线手拉手菊花链加终端电阻 → 普通网线任意拓扑单站掉线不影响整体通信。大文件SDO 8字节低速分段传输 → 邮箱大包瞬间传输固件升级极快。✅组网手动拨码设节点 → ESI自动扫描即插即用免去繁琐的节点地址分配。BRS全称BitRateSwitch中文FDCAN比特率切换2.3 数学符号Π这是希腊字母π圆周率三、交流与反馈欢迎大家有问题评论交流 (* ^ ω ^)如果您在阅读过程中有任何疑问或建议欢迎在评论区留言讨论