FPGA--串口通信基础知识
FPGA–串口通信基礎(chǔ)知識
首先,明確以下內(nèi)容:
一、串口、并口、USB接口
1、串口叫做串行通信接口,它是指數(shù)據(jù)一位一位的順序傳輸,最少只需要一根傳輸線即可完成,成本低但傳輸速度慢。串行通訊的距離可以從幾米到幾千米;根據(jù)信息的傳送方向,串行通信可以進(jìn)一步分為單工、半雙工和全雙工三種。串口的出現(xiàn)是在1980年前后,最初是用來連接鼠標(biāo)等設(shè)備,也可用于兩臺計(jì)算機(jī)之間的互連及數(shù)據(jù)傳輸。由于串口不支持熱插拔及傳輸速率低,目前電腦的主板已經(jīng)開始不再使用串口,多用于工控和測量設(shè)備以及部分通信設(shè)備中。
2、并口又稱為并行接口。目前,并行接口主要作為打印機(jī)端口,采用的是25 針D 形接頭。所謂“并行”,是指8 位數(shù)據(jù)同時通過并行線進(jìn)行傳送,這樣數(shù)據(jù)傳送速度大大提高,但并行傳送的線路長度受到限制,因?yàn)殚L度增加,干擾就會增加,數(shù)據(jù)也就容易出錯。目前計(jì)算機(jī)基本上都配有并口。
3、USB(Universal Serial Bus),一般稱為通用串行總線,從廣義上來說也是串口的一種。它是為了解決接口設(shè)備各自為政的連接方式與易于使用而設(shè)計(jì)。許多的計(jì)算機(jī)使用者在計(jì)算機(jī)前面使用可能沒有什么問題,因?yàn)檠鄄灰姙閮?#xff0c;最多只看到與鍵盤連接線。但是一旦到了計(jì)算機(jī)的背后,看到那么多種線可能就傻眼了,最少有電源線、顯示訊號線、印表機(jī)連接線、調(diào)制解調(diào)器與喇叭等,除了連接時需要花點(diǎn)時間去辨別外,將計(jì)算機(jī)背后的這些雜七雜八的線整理起來也是相當(dāng)累人,不管怎么整理,看起來還是很難看,有時就會想,若只有電源線就好了,全部改用無線方式那該有多好!當(dāng)然那是未來最好的情況,目前最好的方式,便是將所有連接線加以簡化,讓使用者能夠輕松使用。
USB最初設(shè)計(jì)的目的,只是要連接各種不同的接口設(shè)備,并且針對中、低速的接口設(shè)備,所以 USB 的傳輸速度并不高。USB有二種傳輸速率,第一種是全速模式,最高的傳輸率可達(dá)到12Mbps,第二種則是低速模式,傳輸速率有 1.5Mbps。低速模式只有少數(shù)的周邊會使用,而它唯一的好處是電磁干擾(EMI) 較低。所以 USB全速的傳輸速度比起現(xiàn)有的串行埠 (標(biāo)準(zhǔn)是115200bps)可算是相當(dāng)?shù)母?#xff0c;不過當(dāng)周邊連接很多時,整體的效能可能會下降。另外,USB在使用上還有一點(diǎn)很方便,就是支持熱插拔,若操作系統(tǒng)已經(jīng)安裝過裝置的驅(qū)動程序,就可以在系統(tǒng)運(yùn)行時,直接安裝或移除,不像許多設(shè)備必須將系統(tǒng)電源關(guān)閉,或是操作系統(tǒng)重開才能使用,讓使用方便性增加不少。
二、幾種串行接口:
(1)RS232接口:https://baike.baidu.com/item/RS-232/2022036?fr=aladdin&fromid=3555506&fromtitle=rs232
個人計(jì)算機(jī)上的通訊接口之一,由電子工業(yè)協(xié)會(Electronic Industries Association,EIA) 所制定的異步傳輸標(biāo)準(zhǔn)接口。通常 RS-232 接口以9個引腳 (DB-9) 或是25個引腳 (DB-25) 的型態(tài)出現(xiàn),一般個人計(jì)算機(jī)上會有兩組 RS-232 接口,分別稱為 COM1 和 COM2。
RS-232C 標(biāo)準(zhǔn)(協(xié)議)的全稱是 EIA-RS-232C 標(biāo)準(zhǔn),其中EIA (Electronic Industry Association)代表美國電子工業(yè)協(xié)會,RS(recommended standard)代表推薦標(biāo)準(zhǔn),232是標(biāo)識號,C代表RS232的最新一次修改(1969),在這之前,有RS232B、RS232A。它規(guī)定連接電纜和機(jī)械、電氣特性、信號功能及傳送過程。常用物理標(biāo)準(zhǔn)還有EIARS-422A、EIA RS-423A、EIARS-485。這里只介紹EIA RS-232C(簡稱232,RS232)。例如,目前在IBM PC機(jī)上的COM1、COM2接口,就是RS-232C接口。
①接口電平標(biāo)準(zhǔn):
EIA-RS-232C對電氣特性、邏輯電平和各種信號線功能都作了規(guī)定。
在TxD和RxD上:
邏輯1(MARK)=-3V~-15V
邏輯0(SPACE)=+3~+15V
在RTS、CTS、DSR、DTR和DCD等控制線上:
信號有效(接通,ON狀態(tài),正電壓)=+3V~+15V
信號無效(斷開,OFF狀態(tài),負(fù)電壓)=-3V~-15V
②連接器的機(jī)械特性:
連接器:由于RS-232C并未定義連接器的物理特性,因此,出現(xiàn)了DB-25、DB-15和DB-9各種類型的連接器,其引腳的定義也各不相同。下面分別介紹兩種連接器。
a、DB-25:PC和XT機(jī)采用DB-25型連接器。DB-25連接器定義了25根信號線,分為4組:
①異步通信的9個電壓信號(含信號地SG)2,3,4,5,6,7,8,20,22
②20mA電流環(huán)信號 9個(12,13,14,15,16,17,19,23,24)
③空6個(9,10,11,18,21,25)
④保護(hù)地(PE)1個,作為設(shè)備接地端(1腳)
注意,20mA電流環(huán)信號僅IBM PC和IBM PC/XT機(jī)提供,至AT機(jī)及以后,已不支持。
b、DB-9:
在AT機(jī)及以后,不支持20mA電流環(huán)接口,使用DB-9連接器,作為提供多功能I/O卡或主板上COM1和COM2兩個串行接口的連接器。它只提供異步通信的9個信號。DB-9型連接器的引腳分配與DB-25型引腳信號完全不同。因此,若與配接DB-25型連接器的DCE設(shè)備連接,必須使用專門的電纜線。
電纜長度:在通信速率低于20kb/s時,RS-232C 所直接連接的最大物理距離為15m(50英尺)。
最大直接傳輸距離說明:RS-232C標(biāo)準(zhǔn)規(guī)定,若不使用MODEM,在碼元畸變小于4%的情況下,DTE和DCE之間最大傳輸距離為15m(50英尺)。可見這個最大的距離是在碼元畸變小于4%的前提下給出的。為了保證碼元畸變小于4%的要求,接口標(biāo)準(zhǔn)在電氣特性中規(guī)定,驅(qū)動器的負(fù)載電容應(yīng)小于2500pF
③ RS-232C 與TTL轉(zhuǎn)換:
EIA RS-232C 是用正負(fù)電壓來表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計(jì)算機(jī)接口或終端的TTL器件連接,必須在EIA RS-232C 與TTL電路之間進(jìn)行電平和邏輯關(guān)系的變換。實(shí)現(xiàn)這種變換的方法可用分立元件,也可用集成電路芯片。目前較為廣泛地使用集成電路轉(zhuǎn)換器件,如MC1488、SN75150芯片可完成TTL電平到EIA電平的轉(zhuǎn)換,而MC1489、SN75154可實(shí)現(xiàn)EIA電平到TTL電平的轉(zhuǎn)換。MAX232芯片可完成TTL←→EIA雙向電平轉(zhuǎn)換。
(2)USB接口:https://baike.baidu.com/item/USB%E6%8E%A5%E5%8F%A3/493294?fr=aladdin
通用串行總線(英語:Universal Serial Bus,縮寫:USB)是連接計(jì)算機(jī)系統(tǒng)與外部設(shè)備的一種串口總線標(biāo)準(zhǔn),也是一種輸入輸出接口的技術(shù)規(guī)范,被廣泛地應(yīng)用于個人電腦和移動設(shè)備等信息通訊產(chǎn)品,并擴(kuò)展至攝影器材、數(shù)字電視(機(jī)頂盒)、游戲機(jī)等其它相關(guān)領(lǐng)域。最新一代是USB 3.1,傳輸速度為10Gbit/s,三段式電壓5V/12V/20V,最大供電100W ,新型Type C插型不再分正反。
USB是一個外部總線標(biāo)準(zhǔn),用于規(guī)范電腦與外部設(shè)備的連接和通訊。USB接口即插即用和熱插拔功能。USB接口可連接127種外設(shè),如鼠標(biāo)和鍵盤等。USB是在1994年底由英特爾等多家公司聯(lián)合在1996年推出后,已成功替代串口和并口,已成為當(dāng)今電腦與大量智能設(shè)備的必配接口。USB版本經(jīng)歷了多年的發(fā)展,到如今已經(jīng)發(fā)展為3.0版本。[2] 對于大多數(shù)工程師來說,開發(fā)USB2.0 接口產(chǎn)品主要障礙在于:要面對復(fù)雜的USB2.0協(xié)議、自己編寫USB設(shè)備的驅(qū)動程序、熟悉單片機(jī)的編程。這不僅要求有相當(dāng)?shù)腣C編程經(jīng)驗(yàn)、還能夠編寫USB接口的硬件(固件)程序。所以大多數(shù)人放棄了自己開發(fā)USB產(chǎn)品。為了將復(fù)雜的問題簡單化,西安達(dá)泰電子特別設(shè)計(jì)了USB2.0協(xié)議轉(zhuǎn)換模塊。USB20D模塊可以被看作是一個USB2.0協(xié)議的轉(zhuǎn)換器,將電腦的USB2.0接口轉(zhuǎn)換為一個透明的并行總線,就象單片機(jī)總線一樣。從而幾天之內(nèi)就可以完成USB2.0產(chǎn)品的設(shè)計(jì)。
(3)RS232 與USB的特點(diǎn)和比較
RS-232與USB都是串行通信,但無論是底層信號、電平定義、機(jī)械連接方式,還是數(shù)據(jù)格式、通信協(xié)議等,兩者完全不同。 RS-232是一個流行的接口。在MS-DOS中,四個串行接口稱為COM1、COM2、COM3和COM4,而絕大部分windows應(yīng)用程序最多可以有4個外設(shè),但是如果用戶要擴(kuò)充更多外設(shè)時,就必須要用插入式串行卡或者外部開關(guān)盒實(shí)現(xiàn)。 RS-232點(diǎn)對點(diǎn)連接,一個串口只能連接一個外設(shè)。
而USB是一種多點(diǎn)、高速的連接方式,采用集線器能實(shí)現(xiàn)更多的連接。USB接口的基本部分是串行接口引擎SIE,SIE從USB收發(fā)器中接收數(shù)據(jù)位,轉(zhuǎn)化為有效字節(jié)傳送給SIE接口;反之,SIE接口也可以接收字節(jié)轉(zhuǎn)化為串行位送到總線。由于PC機(jī)串口的最高速率僅為115.2kbps,會形成一個速度瓶頸。RS-232系統(tǒng)包括2個串行信號路徑,其方向相反,分別用于傳輸命令和數(shù)據(jù),而命令和狀態(tài)必須與數(shù)據(jù)交織在一起;而USB支持分離的命令和數(shù)據(jù)通道并允許獨(dú)立的狀態(tài)報(bào)告。 USB是一種方便、靈活、簡單、高速的總線結(jié)構(gòu),與傳統(tǒng)的RS-232接口相比,主要有以下特點(diǎn):
(1) USB采用單一形式的連接頭和連接電纜,實(shí)現(xiàn)了單一的數(shù)據(jù)通用接口。USB統(tǒng)一的4針插頭,取代了PC機(jī)箱后種類繁多的串/并插頭,實(shí)現(xiàn)了將計(jì)算機(jī)常規(guī)I/O設(shè)備、多媒體設(shè)備(部分)、通信設(shè)備(電話、網(wǎng)絡(luò))以及家用電器統(tǒng)一為一種接口的愿望。
(2) USB采用的是一種易于擴(kuò)展的樹狀結(jié)構(gòu),通過使用USB Hub擴(kuò)展,可連接多達(dá)127個外設(shè)。USB免除所有系統(tǒng)資源的要求,避免了安裝硬件時發(fā)生端口沖突的問題,為其它設(shè)備空出硬件資源。
(3) USB外設(shè)能自動進(jìn)行設(shè)置,支持即插即用與熱插拔。
(4) 靈活供電。USB電纜具有傳送電源的功能,支持節(jié)約能源模式,耗電低。USB總線可以提供電壓+5v、最大電流500mA的電源,供低功耗的設(shè)備作電源使用,不需要額外的電源。
(5) USB可以支持四種傳輸模式:控制傳輸、同步傳輸、中斷傳輸、批量傳輸,可以適用于很多類型的外設(shè)。
(6)通信速度快。USB支持三種總線速度,低速1.5Mbps、全速12Mbps和高速480Mbps。
(7)數(shù)據(jù)傳送的可靠性。USB采用差分傳輸方式,且具有檢錯和糾錯功能,保證了數(shù)據(jù)的正確傳輸。
(8)低成本。USB簡化了外設(shè)的連接和配置的方法,有效地減少了系統(tǒng)的總體成本,是一種廉價(jià)的簡單實(shí)用的解決方案,具有較高的性能價(jià)格比。
RS-232應(yīng)用范圍廣泛、價(jià)格便宜、編程容易并且可以比其它接口使用更長的導(dǎo)線,隨著USB端口的越來越普遍,將會出現(xiàn)更多的把USB轉(zhuǎn)換成RS-232或其它接口的轉(zhuǎn)換裝置。但是RS-232和類似的接口仍將在諸如監(jiān)視和控制系統(tǒng)這樣的應(yīng)用中得到普遍的應(yīng)用。對習(xí)慣使用RS-232的開發(fā)者和產(chǎn)品可以考慮設(shè)計(jì)USB/RS-232轉(zhuǎn)換器,通過USB總線傳輸RS-232數(shù)據(jù),即PC端的應(yīng)用軟件依然是針對RS-232串行端口編程的,外設(shè)也是以RS-232為數(shù)據(jù)通信通道,但從PC到外設(shè)之間的物理連接卻是USB總線,其上的數(shù)據(jù)通信也是USB數(shù)據(jù)格式。采用這種方式的好處在于:一方面保護(hù)原有的軟件開發(fā)投入,已開發(fā)成功的針對RS-232外設(shè)的應(yīng)用軟件可以不加修改地繼續(xù)使用;另一方面充分利用了USB總線的優(yōu)點(diǎn),通過USB接口可連接更多的RS-232設(shè)備,不僅可獲得更高的傳輸速度,實(shí)現(xiàn)真正的即插即用,同時解決了USB接口不能遠(yuǎn)距離傳輸?shù)娜秉c(diǎn)(USB通訊距離在5米內(nèi)。
三、幾種電平標(biāo)準(zhǔn):
(1)TTL
TTL:Transistor-Transistor Logic 三極管結(jié)構(gòu)。
Vcc:5V;VOH>=2.4V;VOL<=0.5V;VIH>=2V;VIL<=0.8V。
因?yàn)?.4V與5V之間還有很大空閑,對改善噪聲容限并沒什么好處,又會白白增大系統(tǒng)功耗,還會影響速度。所以后來就把一部分“砍”掉了。也就是后面的LVTTL。
LVTTL又分3.3V、2.5V以及更低電壓的LVTTL(Low Voltage TTL)。
3.3V LVTTL:
Vcc:3.3V;VOH>=2.4V;VOL<=0.4V;VIH>=2V;VIL<=0.8V。
2.5V LVTTL:
Vcc:2.5V;VOH>=2.0V;VOL<=0.2V;VIH>=1.7V;VIL<=0.7V。
更低的LVTTL不常用就先不講了。多用在處理器等高速芯片,使用時查看芯片手冊就OK了。
TTL使用注意:TTL電平一般過沖都會比較嚴(yán)重,可能在始端串22歐或33歐電阻;
TTL電平輸入腳懸空時是內(nèi)部認(rèn)為是高電平。要下拉的話應(yīng)用1k以下電阻下拉。TTL輸出不能驅(qū)動CMOS輸入。
(2)CMOS
CMOS:Complementary Metal Oxide Semiconductor PMOS+NMOS。
Vcc:5V;VOH>=4.45V;VOL<=0.5V;VIH>=3.5V;VIL<=1.5V。
相對TTL有了更大的噪聲容限,輸入阻抗遠(yuǎn)大于TTL輸入阻抗。對應(yīng)3.3V LVTTL,出現(xiàn)了LVCMOS,可以與3.3V的LVTTL直接相互驅(qū)動。
3.3V LVCMOS:
Vcc:3.3V;VOH>=3.2V;VOL<=0.1V;VIH>=2.0V;VIL<=0.7V。
2.5V LVCMOS:
Vcc:2.5V;VOH>=2V;VOL<=0.1V;VIH>=1.7V;VIL<=0.7V。
CMOS使用注意:CMOS結(jié)構(gòu)內(nèi)部寄生有可控硅結(jié)構(gòu),當(dāng)輸入或輸入管腳高于VCC一定值(比如一些芯片是0.7V)時,電流足夠大的話,可能引起閂鎖效應(yīng),導(dǎo)致芯片的燒毀。
(3)USB
對于USB2.0,除去屏蔽層,有4根線,分別是VCC、GND和D+、D-兩根信號線。
5V是USB的電源電壓,給USB device供電用的。
信號線對于USB2.0,D+比D-大200mV時為1,D-比D+大200mV時為0,屬差分信號,與TTL電平不兼容,信號傳輸時需要電平轉(zhuǎn)換電路。
(4)RS232
EIA-RS-232C對電氣特性、邏輯電平和各種信號線功能都作了規(guī)定。
在TxD和RxD上:
邏輯1(MARK)=-3V~-15V
邏輯0(SPACE)=+3~+15V
在RTS、CTS、DSR、DTR和DCD等控制線上:
信號有效(接通,ON狀態(tài),正電壓)=+3V~+15V
信號無效(斷開,OFF狀態(tài),負(fù)電壓)=-3V~-15V
四、幾種電平之間的轉(zhuǎn)換
單片機(jī)的TXD、RXD是TTL電平,所以你得萬變不離其宗的將其它信號轉(zhuǎn)成TTL電平,只有這樣給單片機(jī)下載程序才有可能成功!
其中CP2102、CH340、PL2303等芯片是直接將USB信號轉(zhuǎn)換為TTL電平或者TTL電平轉(zhuǎn)換為USB信號,而MAX232等芯片是將TTL轉(zhuǎn)換為RS232信號或者將RS232信號轉(zhuǎn)換為TTL.
計(jì)算機(jī)和MCU通信:
①PC機(jī)(RS232)<–>交叉串口線<–>MAX232芯片<–>MCU(TTL)
②PC機(jī)(USB)<–>USB數(shù)據(jù)線<–>PL2303或CH340或CP2102<–>MCU(TTL)
③PC機(jī)(USB)<–>USB轉(zhuǎn)串口線(得到RS232)<–>MAX232芯片<–>MCU(TTL)
(1)交叉串口線原理:信號線交叉,導(dǎo)線作用
(2)USB轉(zhuǎn)串口線原理:USB接口<–>PL2303或CH340或CP2102<–>MAX232<–>RS232接口
(3)USB數(shù)據(jù)線原理:信號線直連,導(dǎo)線作用
原作者寫的很好,轉(zhuǎn)載與大家分享。如有侵權(quán),請聯(lián)系刪帖,請大家尊重原創(chuàng),轉(zhuǎn)載鏈接如下:
https://www.cnblogs.com/pdf000/p/7745799.html
總結(jié)
以上是生活随笔為你收集整理的FPGA--串口通信基础知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: W4_python_decorator_
- 下一篇: docker centos ssh