微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在PIC18FxxQ43中通过硬件高效快速地计算Modbus CRC16

如何解决在PIC18FxxQ43中通过硬件高效快速地计算Modbus CRC16

我已经成功地将 freemodbus (freemodbus) 移植到任何微控制器的从属和主控模式,在 dsPIC33E 和 STM32 中,我可以非常有效地通过硬件和 DMA 传输解决 CRC。 PIC18F27Q43 的问题是最后的反转必须由软件完成,我看不到硬件解决方法。你能帮我完成这部分吗?非常感谢。 结合freemodbus通过查找表计算CRC的例程非常有效,例如计算9个8位元素的数组的CRC,需要29 us。如果我可以完全用硬件解决 CRC,则需要 18 个我们。看起来差别不大,但在这个 PIC18 中有很多指令(每条指令 62.5 ns)。但是不得不通过软件解决最终的 CRC 反转,我最终使用了 26 个 us。我在使用PIC18F27Q43硬件模块时只节省了3个us。我将使用 MPLAB CODE CONfigURATOR 为 CRC 进行的配置、freemodbus 例程和我所做的实现留给您。 MPLAB CODE CONFIGURATOR

freemodbus CRC routine,very efficient and fast,29 us in 9 elements array at 8-bit

CRC by hardware only saved 3 us

如果您可以进行最终的硬件逆向操作,则节省的费用将非常可观。

非常感谢支持!!!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?