你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32的串口无FIFO真是一大败笔  

[复制链接]
aqua-375372 提问时间:2017-1-10 09:55 /
阅读主题, 点击返回1楼
收藏 1 评论29 发布时间:2017-1-10 09:55
29个回答
ts2000 回答时间:2017-1-12 10:52:54
串口不需要传输很多数据吧?加不加无所谓。
moyanming2013 回答时间:2017-1-12 11:49:17
morecool 发表于 2017-1-12 09:29
雖然可以使用DMA實現,但是如有DMA被高級別的用戶佔用總線的話,可能會導致數據接收不可靠。
如果有自己的 ...

一次串口通信时往往采用中断+查询方式,即使对于FIFO来说“中断+查询”都是最快的方式可能。这可能就削弱了FIFO的优点了。
此时也会有总线占用的问题。
morecool 回答时间:2017-1-12 13:11:58
moyanming2013 发表于 2017-1-12 11:49
一次串口通信时往往采用中断+查询方式,即使对于FIFO来说“中断+查询”都是最快的方式可能。这可能就削弱 ...

頻繁的中斷對於資源的開銷是比較大的,特別是高波特率和數據量較大的情況下更為突出。
FIFO模塊存在于串口模塊中,接收到的數據并不通過APB總線傳輸到FIFO中,而是直接由串口模塊傳輸,如果需要設計成通過APB總線傳輸,那與DMA傳輸方式一樣了,FIFO功能也就沒有了存在的必要。
morecool 回答时间:2017-1-12 13:16:56
本帖最后由 morecool 于 2017-1-12 13:19 编辑
ts2000 发表于 2017-1-12 10:52
串口不需要传输很多数据吧?加不加无所谓。

如果系統存在多個需要實時響應的中斷時,FIFO的存在可以減輕系統負擔和提高通訊的可靠性。
要說因為STM32沒有FIFO模塊就成為了敗筆,那有點言過其實了。如果真的出現上面說的那種情況,只能通過優化程式或選擇更高主頻的處理器來解決問題了。
wolfgang2015 回答时间:2017-1-12 13:43:09
增加FIFO增加了硬件及控制,还是DMA通用些~~~~~。
不要什么都往弹片机里装,硬件、代码都要重写,无形中增加了使用成本
moyanming2013 回答时间:2017-1-12 15:17:41
morecool 发表于 2017-1-12 13:11
頻繁的中斷對於資源的開銷是比較大的,特別是高波特率和數據量較大的情況下更為突出。
FIFO模塊存在于串 ...

FIFO下的“中断+查询”或进入中断后的接收数据,为了避免事故或保证数据完整性,可能会关闭其它中断,此时就是在占用总线--串口的速率还是非常低效的而占用了高效的总线。
FIFO总是需要中断的,高频中断下FIFO也会显得“力不从心”,此时DMA自然是最好的选择。
FIFO有些显得“高不成低不就”,如鸡肋,干脆去掉了。

点评

DMA虽然可以解决这个问题,但是DMA用起来麻烦多了  发表于 2017-1-14 13:44
FIFO在于当系统不能及时处理串口中断的时候缓存数据,波特率高的时候几十微秒就会来一个字节的数据,如果系统此时有不能被打断的任务在运行则会  发表于 2017-1-14 13:43
lzts 回答时间:2017-1-13 19:29:14
我就不投票了.有也可,没有也行(反正软件也可解决).远远达不到败笔的程度
zbber 回答时间:2017-1-13 20:19:22
我觉得芯片只是个工具,既然你选择了这样的工具,就要去灵活应用它
五哥1 回答时间:2017-1-14 14:22:24
我看木有必要
cldym 回答时间:2017-1-15 13:10:09
多一个fifo会更好,使用更方便;
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版