串口通信常見問題
出處:面包板 發(fā)布于:2020-02-06 11:44:32
講一講串口通信的一些基本概念,術(shù)語。如果對串口通信比較熟悉的,就當(dāng)復(fù)習(xí)復(fù)習(xí),如果哪里講錯或不到位,也可以及時(shí)指出,當(dāng)作一塊交流交流。
在這里羅列了一些問題,待會對這些問題講一講,看是否有類似的情況,也許可以一起交流分享。
1 電腦使用USB轉(zhuǎn)串口可以和設(shè)備通信上,換成屏與設(shè)備就通信不上了。
2 這A家的屏可以和設(shè)備通信,換成B家的屏就通信不上了。
3 以前不接地線可以通信,換個設(shè)備為什么需要接地線了。
4 一個設(shè)備是232,另一個設(shè)備是422,沒有轉(zhuǎn)換設(shè)備,怎么辦。(232與422互轉(zhuǎn)的簡單方法)
5 用232通信沒問題,用485通信沒問題,使用232轉(zhuǎn)485之后就通信不穩(wěn)定。
6 485單獨(dú)接每個設(shè)備都通信正常,多個從站接一塊通信就不穩(wěn)定。
7 要想實(shí)現(xiàn)兩個屏或兩個主站通過485訪問modbus設(shè)備,有什么好的辦法。
8 針對串口通信的弱點(diǎn),在使用上應(yīng)該要注意哪些地方。
當(dāng)然有可能實(shí)際遇到的還不只是這些問題,可能還有一些意想不到的問題,如果你還遇到過什么奇葩奇怪的問題,也可以留言,一塊交流探討,一定會知無不言,言而無盡。
要回答和解決以上這些問題,還需要先了解一下什么是串口通信,232,485,422等。
什么是串口通信
常見的串口通信一般是指異步串行通信。
這里就要說一下同步和異步的區(qū)別了。
算了,還是先講一下串行通信的概念。那么,與串行通信相對的是什么呢。
與串行通信相對的是并行通信。數(shù)據(jù)傳輸一般都是以字節(jié)傳輸?shù)?,一個字節(jié)8個位。拿一個并行通信舉例來說,也就是會有8根線,每一根線代表一個位。傳輸就可以傳一個字節(jié),而串口通信,就是傳數(shù)據(jù)只有一根線傳輸,只能傳一個位,要傳一個字節(jié)就需要傳8次。就像小虎隊(duì)那首歌一樣,把你的心,我的心,串一串,再烤一烤。。串口通信就是把數(shù)據(jù)串在一根線上傳輸,所以就叫串口吧。
那么,在很多設(shè)備上,不方便接太多線,比如接8根數(shù)據(jù)線,也不方便接同步時(shí)鐘信號(這個后面再說),于是一種異步串行通信就誕生了。
相對來說,異步串口通信,就只需要一根線就可以發(fā)送數(shù)據(jù)了。在對速率要求不高的情況,使用一根線發(fā)送數(shù)據(jù)是帶來大大的方便和實(shí)用價(jià)值的。
那么問題來了,怎么樣才能保證一根線就能發(fā)送正常的數(shù)據(jù)呢。也就說發(fā)送方發(fā)送的數(shù)據(jù),接收方是怎么知道是什么數(shù)據(jù)呢。
為了能正常發(fā)送數(shù)據(jù)和接收正確的數(shù)據(jù),那異步串口通信就需要滿足以下幾個條件:
也許當(dāng)時(shí)發(fā)送這個通信的小組是這樣討論的。
經(jīng)理:我要用一根線就能傳輸數(shù)據(jù),你來給我定個標(biāo)準(zhǔn)。
研發(fā):好。
經(jīng)理:只有一根線,我怎么知道數(shù)據(jù)什么時(shí)候開始呢。
研發(fā):就一根線,默認(rèn)是高電平,那就有一個起始位吧。當(dāng)檢測到有低電平的時(shí)候,就是開始有一個字節(jié)的數(shù)據(jù)發(fā)送了,起始位之后,先是字節(jié)的位,傳送一個字節(jié)。
經(jīng)理:可是,就一根線,過來的數(shù)據(jù)會不會有干擾,容易出錯呀。
研發(fā):行呀,那就在字節(jié)數(shù)據(jù)后再加一個校驗(yàn)位??梢宰髌嫘r?yàn),偶校驗(yàn),1校驗(yàn),0校驗(yàn),無校驗(yàn)。
經(jīng)理:嗯 ,很不錯。有起始位就應(yīng)該有停止位,那我們就再加個停止位在后面吧。
研發(fā):。。。。。。。。。
經(jīng)理:傳輸一串?dāng)?shù)據(jù),對方要怎么知道數(shù)據(jù)的拆分呢,怎么按時(shí)間或頻率去解讀數(shù)據(jù)位,校驗(yàn)位呢。
研發(fā):這樣吧,雙方約定一個波特率吧,定義一個每個位占用多長的時(shí)間,這樣雙方按這個波特率就可以處理了。
經(jīng)理:這個比特率呀。。。
研發(fā):老板,是波特率。
經(jīng)理:我知道,是比特率嘛。
研發(fā):這個波特率呢,是指1S鐘可以傳輸多個位,也就知道一個位占用多長時(shí)間。這樣就解決傳輸?shù)膯栴}了。
經(jīng)理:那萬一傳輸過程,數(shù)據(jù)快太,判斷失誤停不下來怎么辦。
研發(fā):那就把停止位可以調(diào)節(jié)為1個停止位或者2個停止位。這樣就可以停下來了。
經(jīng)理:嗯,聽著不錯。就這樣辦吧。
于是,串口通信就這樣出來了。
在串口的通信參數(shù)上,就有了波特率,數(shù)據(jù)位,停止位,校驗(yàn)位這幾個參數(shù)來確保串口通信的正確性和穩(wěn)定上。當(dāng)然,這只是某個方面保證串口通信的正確性和穩(wěn)定性,不代表設(shè)備間通信的正確性和穩(wěn)定性。
串口通信主要為分232,485,422 通信三種方式。
這三種有什么區(qū)別呢。
232:
RX與TX,TX接RX,GND接GND。這樣還是比較好理解吧。因?yàn)榘l(fā)送和接收分別是由不同的線處理的,也就是能同時(shí)發(fā)送數(shù)據(jù)和接收數(shù)據(jù),這就是所謂的全雙工。
在這里擴(kuò)展一下,串口通信還有一個功能叫做全功能串口通信,也叫標(biāo)準(zhǔn)串口。因?yàn)樵趦蓚€設(shè)備間進(jìn)行數(shù)據(jù)傳輸,有些設(shè)備處理速度比較快,有些數(shù)據(jù)比較慢。為了保證數(shù)據(jù)能正常傳輸,在RX,TX的基礎(chǔ)上,還增加了幾個控制引腳,本來好端端就R,T,G,三根線,湊著就湊齊了9個引腳,召喚出了DB9這個東西。
在后來的設(shè)備,很多控制器,人機(jī)界面,PLC等使用串口通信中,基本上就不使用標(biāo)準(zhǔn)串口,而是就直接使用RX,TX,GND三根線來通信了。
但是這里為什么要提到這個呢。因?yàn)橹皇呛芏嘣O(shè)備這樣用,也就是還存在少數(shù)設(shè)備還保留了標(biāo)準(zhǔn)串口的功能。這就是為什么會遇到明明電腦通信是好的,換成觸摸屏通信就不行了。因?yàn)楹芏嘤|摸屏只使用了RX,TX,GND通信,遇到一些還保留標(biāo)準(zhǔn)串口功能的就比較討厭了。
485:
485是為了解決232通信距離的問題。原理什么之類的就不多講了。反正232通信距離就是不長。485主要是以一種差分信號進(jìn)行傳輸,只需要兩根線,+,-兩根線,或者也叫A,B兩根線。A,B兩根線的差分電平信號就是作為數(shù)據(jù)信號傳輸。那么問題來了,那是不是就沒有RX和TX的概念了。是的,發(fā)送和接收就不能分開了。發(fā)送和接收都是靠這兩根的來傳輸,也就是每次只能作發(fā)送或者只能作接收,這就是半雙工的概念了,這在效率上就比232弱很多了。就像對講機(jī)一樣,經(jīng)常是某個人講完之后,都要說一個over,確保當(dāng)前說完了,等待對方回復(fù)。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- USB-C接口全解析:協(xié)議兼容、快充原理與常見問題排查2025/12/16 9:50:42
- 簡述計(jì)算機(jī)總線的分類2025/9/4 17:12:23
- 深度剖析三進(jìn)線兩母聯(lián)供電系統(tǒng)設(shè)計(jì)方案2025/9/3 10:37:39
- 匯流排是什么匯流排好還是線接好2025/8/28 17:13:00
- 安森美 USB - C 電池充電器解決方案2025/8/28 15:45:10









