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插型不再分正反。[1] 

 

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產品的設計。[2] 

 

(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

TTLTransistor-Transistor Logic 三極管結構。
Vcc5VVOH>=2.4VVOL<=0.5VVIH>=2VVIL<=0.8V
因為2.4V5V之間還有很大空閑,對改善噪聲容限並沒什么好處,又會白白增大系統功耗,還會影響速度。所以后來就把一部分掉了。也就是后面的LVTTL
LVTTL又分3.3V2.5V以及更低電壓的LVTTL(Low Voltage TTL)

3.3V LVTTL
Vcc3.3VVOH>=2.4VVOL<=0.4VVIH>=2VVIL<=0.8V

2.5V LVTTL
Vcc2.5VVOH>=2.0VVOL<=0.2VVIH>=1.7VVIL<=0.7V
更低的LVTTL不常用就先不講了。多用在處理器等高速芯片,使用時查看芯片手冊就OK了。

TTL使用注意:TTL電平一般過沖都會比較嚴重,可能在始端串22歐或33歐電阻;              

 TTL電平輸入腳懸空時是內部認為是高電平。要下拉的話應用1k以下電阻下拉。TTL輸出不能驅動CMOS輸入。

(2)CMOS

CMOSComplementary Metal Oxide Semiconductor  PMOS+NMOS

Vcc5VVOH>=4.45VVOL<=0.5VVIH>=3.5VVIL<=1.5V
相對TTL有了更大的噪聲容限,輸入阻抗遠大於TTL輸入阻抗。對應3.3V LVTTL,出現了LVCMOS,可以與3.3VLVTTL直接相互驅動。

3.3V LVCMOS
Vcc3.3VVOH>=3.2VVOL<=0.1VVIH>=2.0VVIL<=0.7V

2.5V LVCMOS
Vcc2.5VVOH>=2VVOL<=0.1VVIH>=1.7VVIL<=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數據線原理:信號線直連,導線作用
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM