在這一課里,我們一起來學習RS-232C串行通信相關標準及單片機和電腦的RS-232C串行通信接口技術簡介,為學習和開發單片機串口通信應用系統打好基礎,希望大家在看完這篇文章后對串行通信有初步的認識。
【通信基本概念】
什么是通信?簡單地說,不同的系統經由線路相互交換數據,就是通信。通信的主要目的是將數據從一端傳送到另一端,達到數據交換的目的。例如,從人與人之間的對話、計算機與設備之間的數據交換到計算機與計算機間的數據傳送,乃至于廣播或衛星都是通信的一種,一個完整的通信系統包括發送端、接收端、轉換數據的接口及傳送數據的實際信道。
【通信的種類】
按照通信的形式可以分為兩種,其中一種為并行傳輸的通信,即并行通信(Parallel Communication),另一種則為串行通信(Serisl Communication)。這兩種通信方式的區別是,并行通信一次的傳輸數據量為8位(1個字節);而串行通信則一次只能傳輸1位,傳輸1字節數據(8位)數據就需要8次才能傳出去,因此,它們兩者之間的數據傳輸速度就相差8倍。看到這里,估計有些朋友會問,既然并行通信的速度是串行通信的8倍,是不是串行通信就不好了?!其實不能這么認為,兩種通信方式各有特點,串行通信之所以存活了這么長時間,自然有它的長處。
串行通信一次只傳輸1位,相對來說,要處理的數據電壓只有一個,因此比較不容易漏失數據,通信時候再加上一些校驗防范措施后,串行通信的出錯就更不容易了,串行通信端口(Serisl Communication Port)在系統控制的范疇中一直占有極其重要的角色,不僅沒有因為時代的進步而被淘汰,反而失在規格上愈來愈向其極限挑戰,下面我們重點來介紹RS-232C串行通信。
并行通信雖然可以在一次的數據傳輸中傳送8位,但是數據電壓在傳送的過程中,容易因為線路及干擾因素使得電壓準電位發生變化(主要為電壓衰減和信號間相互干擾問題),因而使得傳輸數據發生錯誤,通信距離越長,問題越明顯,因此并行通信主要用于傳輸距離較短的場合,如電腦主板的并口LPT1,主要和并行打印機通信。
【RS-232串行通信】
一、RS-232C標準介紹
RS-232C是由美國電子工業協會(EIA)正式公布的,在異步串行通信中應用最廣泛的標準總線。RS-232C 標準(協議)的全稱是EIA-RS-232C 標準,其中EIA(Electronic Industry Association)代表美國電子工業協會,其中RS是Recommended Standard的縮寫,代表推贈標準,232是標識符,C代表RS-232的最新一次修改(1969年),在這之前,有過RS-232A、RS-232B標準,它規定連接電纜和機械、電氣特性、信號功能及傳送過程。現在,計算機上的串行通信端口(RS-232)是標準配置端口,已經得到廣泛應用,計算機上一般都有1~2個標準RS-232C串口,即通道COM1和COM2。下圖為計算機主板上的兩個RS-232通信端口圖片及端口屬性,我們一般可以從計算機后面查看到本機的通信端口。
二、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 標準對邏輯電平的定義。對于數據(信息碼):邏輯“1”的傳輸的電平為-3V~-15V,邏輯“0”傳輸的電平為+3V~+15V;對于控制信號;接通狀態(ON)即信號有效的電平為+3V~+15V,斷開狀態(OFF)即信號無效的電平為-3V~-15V,也就是當傳輸電平的絕對值大于3V 時,電路可以有效地檢查出來;而介于-3~+3V之間的電壓即處于模糊區電位,此部分電壓將使得計算機無法準確判斷傳輸信號的意義,可能會得到0,也可能會得到1,如此得到的結果是不可信的,在通信時候體現的是會出現大量誤碼,造成通信失敗。因此,實際工作時,應保證傳輸的電平在±(3~15)V 之間。
三、RS-232C機械連接器及引腳定義
目前,大部分計算機的RS-232C通信接口都使用了DB9連接器,如上面圖中所示,主板的接口連接器有9根針輸出(RS-232公頭),也有些比較舊的計算機使用DB25連接器輸出,下面我們來介紹DB9和DB25輸出接口的引腳定義。
RS-232C串口引腳定義表 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
四、RS-232C的通信距離和速度
RS-232規定最大的負載電容為2500pF,這個電容限制了傳輸距離和傳輸速率,由于RS-232C的發送器和接收器之間具有公共信號地(GND),屬于非平衡電壓型傳輸電路,不使用差分信號傳輸,因此不具備抗共模干擾的能力,共模噪聲會耦合到信號中,在不使用調制解調器(MODEM)時,RS-232能夠可靠進行數據傳輸的最大通信距離為15米,對于RS232遠程通信,必須通過調制解調器進行遠程通信連接。
現在個人計算機所提供的串行端口的傳輸速度一般都可以達到115200bps甚至更高,標準串口能夠提供的傳輸速度主要有以下波特率:1200bps、2400bps、4800bps、9600bps、19200bps、38400bps、57600bps、115200bps等,在儀器儀表或工業控制場合,9600bps是最常見的傳輸速度,在傳輸距離較近時,使用最高傳輸速度也是可以的。傳輸距離與傳輸速度的關系成反比,適當地降低傳輸速度,可以延長RS-232的傳輸距離,提高通信的穩定性。
五、RS-232電平轉換芯片及電路
RS-232C 規定的邏輯電平與一般微處理器、單片機的邏輯電平是不同的,例如:RS-232的邏輯“1”是以-3~-15V來表示的,而單片機的邏輯“1”是以+5V來表示的,兩者完全不同。因此,單片機系統要和電腦的RS-232接口進行通信,就必須把單片機的信號電平(TTL電平)轉換成計算機的RS-232C電平,或者把計算機的RS-232C電平轉換成單片機的TTL電平,通信時候必須對兩種電平進行轉換。實現這種轉換的方法可以使用分立元件,也可以使用專用RS-232電平轉換芯片。目前較為廣泛地使用專用電平轉換芯片,如MC1488、MC1489、MAX232等電平轉換芯片來實現EIA到TTL電平的轉換。下面來介紹MAXIM公司的單電源電平轉換芯片MAX232及接口電路。
如下面圖中所示,MAX232是單電源雙RS-232發送/接收芯片,采用單一 +5V電源供電,外接只需4個電容,便可以構成標準的RS-232通信接口,硬件接口簡單,所以被廣泛采用, 其主要特性如下:
主要特點:
1、符合所有的RS-232C技術規范
2、只要單一 +5V電源供電
3、片載電荷泵,具有升壓、電壓極性反轉能力,能夠產生 +10V 和 -10V電壓V+、V-
4、低功耗,典型供電電流5mA
5、內部集成2個RS-232C驅動器
6、內部集成2個RS-232C接收器
MAX232CPE 引腳結構 |
||
單片機和計算機RS-232接口電路如下圖所示,圖中的C1、C2、C3、C4是電荷泵升壓及電壓反轉部分電路,產生V+、V-電源供EIA電平轉換使用,C5是VCC對地去耦電容,其值為0.1UF,電容C1~C5安裝時必須盡量靠近MAX232芯片引腳,以提高抗干擾能力。
采用MAX232CPE 芯片的PC機與MCS-51單片機串行通信接口電路 |
||
![]() |
|
|
下圖是一個采用分立元件構成的簡易RS-232串行通信接口電路,使用三極管進行電平轉換,能夠由于簡單的通信,對于通信穩定性要求較高的應用,不建議使用分立元件,分立元件電路的穩定性,誤碼率較高,不能完全滿足RS-232C的全部技術指標。優點是成本低廉,網上也可以看到部分網站產品使用分立元件構成。
采用分立元件的簡易RS-232C通信接口電路 |
||
![]() |
|
|
通過對前面的學習,我們對RS-232C串行通信標準已經有了初步的了解,同時也掌握了單電源雙RS-232發送/接收芯片MAX232CPE的應用。有了這些基礎,我們開發單片機和電腦RS232串口通信系統的接口設計也就簡單了。只要給我們單片機實驗板增加RS232電平轉換電路,即可實現與計算機的串行通信,下面是采用MAX232CPE專用串口電平轉換芯片的S51增強型單片機實驗板和電腦通信的圖片。
S51增強型單片機實驗板與電腦串口實現RS232通信 |
||
![]() |
|
|