【发布时间】:2013-07-31 17:53:21
【问题描述】:
我们有一个定制的微控制器卡(ST32 / ARM Cortex M3),它连接了一个摄像头。相机以 1280x1024 分辨率捕捉 10 位灰度。我们需要通过串行将该图像数据发送回 PC 主机。这是相当大的数据块;假设一切顺利,在 115200 波特传输将是 3 分钟。我为确保稳健性而实施的任何操作似乎都会减慢该过程(例如,拆分为块,校验和块,如果损坏则要求重新发送)。所以想知道人们如何在速度和完整性之间做出良好的折衷。
我们目前看到的实际传输时间约为 6 分钟。我们不得不将 UART 波特率设置为一个奇怪的值 - 1036800 - 因为在 115200 存在问题(PC 在 115200 运行)。我更多的是软件而不是硬件,所以任何关于为什么会发生这种情况的想法都会有所帮助!
【问题讨论】:
-
您的波特率计算偏离了 9 倍。也许您有一个使用 8 MHz 时钟的 x9 PLL 的 72 MHz 部件,并且您的计算中的常数基于假设 PLL 处于活动状态,但实际上在没有 PLL 的情况下运行(或至少为外设提供时钟),比您的计算假设慢 9 倍。或者,也许您在外设时钟上激活了预分频器
标签: serial-port embedded