在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.JdbcOdbc...