找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2247|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

USB轉(zhuǎn)RS232線(xiàn)通信時(shí),接收超過(guò)64字節(jié)數(shù)據(jù)時(shí),空閑中斷在64字節(jié)就會(huì)觸發(fā)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
請(qǐng)教一個(gè)問(wèn)題,串口助手用USB轉(zhuǎn)232線(xiàn)(圖2)進(jìn)行通訊時(shí),115200波特率可以發(fā)送不限長(zhǎng)度的數(shù)據(jù),STM32的空閑中斷都能當(dāng)成一幀數(shù)據(jù)。但是用256000/460800等更高波特率時(shí),一旦超過(guò)64字節(jié),就會(huì)在接收到64字節(jié)時(shí)就發(fā)生空閑中斷,導(dǎo)致接收錯(cuò)誤。我用圖1 所示的設(shè)備,則可以進(jìn)行超過(guò)115200波特率的通信。是因?yàn)?32芯片本身的緩存空間是64字節(jié)嗎

e1f534ad0ec194dc7aa019ff133b46b.jpg (546.16 KB, 下載次數(shù): 72)

圖1

圖1

1d988f33cd0af44aee5c2ce06f2014a.jpg (223.06 KB, 下載次數(shù): 70)

圖2

圖2
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 2023-8-10 23:07 | 只看該作者
STM32一側(cè)的緩存長(zhǎng)度是你自己定義的,問(wèn)大家干什么?
回復(fù)

使用道具 舉報(bào)

板凳
ID:744809 發(fā)表于 2023-8-11 09:04 | 只看該作者
Hephaestus 發(fā)表于 2023-8-10 23:07
STM32一側(cè)的緩存長(zhǎng)度是你自己定義的,問(wèn)大家干什么?

不是STM32緩存長(zhǎng)度的問(wèn)題,我同樣的程序,用DMA接收不定長(zhǎng)的數(shù)據(jù),115200波特率可正常接收超過(guò)64字節(jié)的數(shù)據(jù),用460800,只能接收到64字節(jié)就觸發(fā)空閑中斷了。我懷疑是這個(gè)232芯片內(nèi)部緩存只有64字節(jié),發(fā)完64字節(jié)后要等待一會(huì)才會(huì)發(fā)后面的內(nèi)容。導(dǎo)致接收到的數(shù)據(jù)不完整。我用圖2所示的線(xiàn)就會(huì)出現(xiàn)這個(gè)問(wèn)題,用圖1所示的器件就沒(méi)這個(gè)問(wèn)題。問(wèn)題只可能出現(xiàn)在那根線(xiàn)上,后面我又買(mǎi)了一根其他店的usb轉(zhuǎn)232線(xiàn),也有這個(gè)問(wèn)題
回復(fù)

使用道具 舉報(bào)

地板
ID:123289 發(fā)表于 2023-8-11 10:18 | 只看該作者
USB與323通訊速率不同,中間必有一個(gè)差速器【中轉(zhuǎn)站】,站內(nèi)也必有一個(gè)【倉(cāng)】,流通慢時(shí),【倉(cāng)】夠用,看不出問(wèn)題;流通快時(shí),速差的積累就體現(xiàn)出來(lái)了,會(huì)滿(mǎn)【倉(cāng)】。
樓主:您的猜想我贊同。
不過(guò)【倉(cāng)】未必是64字節(jié),但至少不低于64。只不過(guò),發(fā)生擠【倉(cāng)】時(shí),它保證出【倉(cāng)】的64個(gè)是正確的,因擠【倉(cāng)】發(fā)生丟失的部分不再續(xù)發(fā),或報(bào)警。
只要是通訊的雙方存在速率差異,用緩沖【倉(cāng)】進(jìn)行通訊【同步】的通訊,就總存在一個(gè)【倉(cāng)】量,以及擠【倉(cāng)】的時(shí)機(jī)。
回復(fù)

使用道具 舉報(bào)

5#
ID:744809 發(fā)表于 2023-8-11 10:31 | 只看該作者
yzwzfyz 發(fā)表于 2023-8-11 10:18
USB與323通訊速率不同,中間必有一個(gè)差速器【中轉(zhuǎn)站】,站內(nèi)也必有一個(gè)【倉(cāng)】,流通慢時(shí),【倉(cāng)】夠用,看不 ...

有點(diǎn)奇怪,圖1的器件進(jìn)行通信就沒(méi)有問(wèn)題,用圖2的線(xiàn)才會(huì)出現(xiàn)這個(gè)問(wèn)題。兩個(gè)都是usb轉(zhuǎn)232芯片
回復(fù)

使用道具 舉報(bào)

6#
ID:1088185 發(fā)表于 2023-8-11 10:55 | 只看該作者
本來(lái)就不應(yīng)該以空閑中斷來(lái)判斷幀的結(jié)束,這在很多應(yīng)用都會(huì)出問(wèn)題的。
回復(fù)

使用道具 舉報(bào)

7#
ID:41656 發(fā)表于 2023-8-11 16:28 | 只看該作者
可能是轉(zhuǎn)換器的問(wèn)題 USB轉(zhuǎn)232通信方式不一樣 數(shù)據(jù)可能是打包一下過(guò)去的 你用不同方案的轉(zhuǎn)換器通信效果有差別  我就碰到過(guò)CH340轉(zhuǎn)485的線(xiàn)和我做的ModbusRTU模塊通信就問(wèn)題多  用別的就好了 單片機(jī)一樣的程序
回復(fù)

使用道具 舉報(bào)

8#
ID:123289 發(fā)表于 2023-8-12 08:17 | 只看該作者
123156fsadf 發(fā)表于 2023-8-11 10:31
有點(diǎn)奇怪,圖1的器件進(jìn)行通信就沒(méi)有問(wèn)題,用圖2的線(xiàn)才會(huì)出現(xiàn)這個(gè)問(wèn)題。兩個(gè)都是usb轉(zhuǎn)232芯片

或許這時(shí)走在【爆倉(cāng)】的邊界內(nèi)側(cè),短時(shí)間內(nèi)不一定能發(fā)現(xiàn);蛟S偶爾會(huì)發(fā)產(chǎn)一次。
不過(guò)你已知道大致的通訊頻率邊界,多留一點(diǎn)富裕量,安全一點(diǎn)。
因?yàn)椋褂铆h(huán)境的不同,溫度,電磁場(chǎng),線(xiàn)路的阻抗……會(huì)有所不同,包括通訊對(duì)象的內(nèi)部時(shí)間基準(zhǔn)誤差,都會(huì)產(chǎn)生脈沖信號(hào)的邊沿誤差(上下邊沿決定上限頻率)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表