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