工業(yè)RS-232接口總線(xiàn)原理與應用方案
RS-232接口符合美國電子工業(yè)聯(lián)盟(EIA)制定的串行數據通信的接口標準,原始編號全稱(chēng)是EIA-RS-232(簡(jiǎn)稱(chēng)232,RS232)。它被廣泛用于計算機串行接口外設連接。
本文引用地址:http://dyxdggzs.com/article/201710/365857.htmRS-232是現在主流的串行通信接口之一。由于RS232接口標準出現較早,難免有不足之處,主要有以下四點(diǎn):
?。?)接口的信號電平值較高,易損壞接口電路的芯片。RS232接口任何一條信號線(xiàn)的電壓均為負邏輯關(guān)系。即:邏輯“1”為-3- -15V;邏輯“0”:+3- +15V ,噪聲容限為2V。即要求接收器能識別高于+3V的信號作為邏輯“0”,低于-3V的信號作為邏輯“1”,TTL電平為5V為邏輯正,0為邏輯負 。與TTL電平不兼容故需使用電平轉換電路方能與TTL電路連接。
?。?)傳輸速率較低,在異步傳輸時(shí),波特率為20Kbps
?。?)接口使用一根信號線(xiàn)和一根信號返回線(xiàn)而構成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。
?。?)傳輸距離有限,最大傳輸距離標準值為50英尺,實(shí)際上也只能用在15米左右。
串口232有兩種,第一種:DB9;第二種:DB25;下面分別介紹。
DB9接口接線(xiàn)說(shuō)明:
1 DCD 載波檢測
2 RXD 接收數據
3 TXD 發(fā)送數據
4 DTR 數據終端準備好
5 SGND信號地線(xiàn)
6 DSR數據準備好
7 RTS 請求發(fā)送
8 CTS 清除發(fā)送
9 RI 振鈴提示
DB25接口接線(xiàn)說(shuō)明:
1 屏蔽地線(xiàn)
2 TXD 發(fā)送數據
3 RXD 接收數據
4 RTS 請求發(fā)送
5 CTS 允許發(fā)送
6 DSR 數據準備好
7 SG 信號地
8 DCD 載波檢測
9 發(fā)送返回(+)
10 未定義
11 數據發(fā)送(-)
12~17 未定義
18 數據接收(+)
19 未定義
20 數據終端準備好 DTR
21 未定義
22 振鈴 RI
23~24 未定義
25 接收返回
實(shí)際應用中使用最多的是DB9接口,如果遇到DB25接口后可以通過(guò)更改接線(xiàn)方法來(lái)轉換。DB25轉DB9的接線(xiàn)方法。
在RS-232標準中,字符是以一串行的比特串來(lái)一個(gè)接一個(gè)的串行(serial)方式傳輸,優(yōu)點(diǎn)是傳輸線(xiàn)少,配線(xiàn)簡(jiǎn)單,傳送距離可以較遠。最常用的編碼格式是異步起停(asynchronous start-stop)格式,它使用一個(gè)起始比特后面緊跟7或8 個(gè)數據比特(bit),然后是可選的奇偶校驗比特,最后是一或兩個(gè)停止比特。所以發(fā)送一個(gè)字符至少需要10比特,帶來(lái)的一個(gè)好的效果是使全部的傳輸速率,發(fā)送信號的速率以10劃分。一個(gè)最平常的代替異步起停方式的是使用高級數據鏈路控制協(xié)議(HDLC)。
在RS-232標準中定義了邏輯1和邏輯0電壓級數,以及標準的傳輸速率和連接器類(lèi)型。信號大小在正的和負的3-15v之間。RS-232規定接近0的電平是無(wú)效的,邏輯1規定為負電平,有效負電平的信號狀態(tài)稱(chēng)為傳號marking,它的功能意義為OFF,邏輯0規定為正電平,有效正電平的信號狀態(tài)稱(chēng)為空號spacing,它的功能意義為ON。根據設備供電電源的不同,±5、±10、±12和±15這樣的電平都是可能的。
RS-232設計之初是用來(lái)連接調制解調器做傳輸之用,也因此它的腳位意義通常也和調制解調器傳輸有關(guān)。RS-232的設備可以分為數據終端設備(DTE,Data Terminal Equipment, For example, PC)和數據通信設備(DCE,Data CommunicaTIon Equipment)兩類(lèi),這種分類(lèi)定義了不同的線(xiàn)路用來(lái)發(fā)送和接受信號。一般來(lái)說(shuō),計算機和終端設備有DTE連接器,調制解調器和打印機有DCE連接器。但是這么說(shuō)并不是總是嚴格正確的,用配線(xiàn)分接器測試連接,或者用試誤法來(lái)判斷電纜是否工作,常常需要參考相關(guān)的文件說(shuō)明。
串行通信在軟件設置里需要做多項設置,最常見(jiàn)的設置包括波特率(Baud Rate)、奇偶校驗(Parity Check)和停止位(Stop Bit)。
波特率(又稱(chēng)鮑率):是指從一設備發(fā)到另一設備的波特率,即每秒鐘多少比特bits per second (bit/s)。典型的波特率是300, 1200, 2400, 9600, 15200, 19200等bit/s。一般通信兩端設備都要設為相同的波特率,但有些設備也可以設置為自動(dòng)檢測波特率。
奇偶校驗(Parity:是用來(lái)驗證數據的正確性。奇偶校驗一般不使用,如果使用,那么既可以做奇校驗(Odd Parity)也可以做偶校驗(Even Parity)。奇偶校驗是通過(guò)修改每一發(fā)送字節(也可以限制發(fā)送的字節)來(lái)工作的。如果不作奇偶校驗,那么數據是不會(huì )被改變的。在偶校驗中,因為奇偶校驗位會(huì )被相應的置1或0(一般是最高位或最低位),所以數據會(huì )被改變以使得所有傳送的數位(含字符的各數位和校驗位)中“1”的個(gè)數為偶數;在奇校驗中,所有傳送的數位(含字符的各數位和校驗位)中“1”的個(gè)數為奇數。奇偶校驗可以用于接受方檢查傳輸是否發(fā)送生錯誤--如果某一字節中“1”的個(gè)數發(fā)生了錯誤,那么這個(gè)字節在傳輸中一定有錯誤發(fā)生。如果奇偶校驗是正確的,那么要么沒(méi)有發(fā)生錯誤要么發(fā)生了偶數個(gè)的錯誤。如果用戶(hù)選擇數據長(cháng)度為8位,則因為沒(méi)有多余的比特可被用來(lái)作為同比特,因此就叫做“無(wú)位元(Non Parity)”。
停止位:是在每個(gè)字節傳輸之后發(fā)送的,它用來(lái)幫助接受信號方硬件重同步。
RS232讀寫(xiě)時(shí)序圖:
下面列舉一下編程實(shí)例。因為RS232編程使用51單片機的歷程太多了,所以我給大家分享一個(gè)由DSP編寫(xiě)的RS232通信例程。DSP由于庫文件和頭文件比較大,所以我只是把通信部分程序分享出來(lái)。如果需要完整項目,可以發(fā)送信息到公眾號里。我們看到后會(huì )盡快回復并發(fā)送到你的郵箱里。
程序簡(jiǎn)要說(shuō)明:開(kāi)發(fā)環(huán)境CCS4.2,芯片TMS320F2812,模式:中斷方式讀寫(xiě)
使用模塊:SCIA模塊
DSP串口通信與單片機串口通信是有很大區別的,但是基本的通信流程相同。首先是配置GPIO(因模式較多所以需要配置,普通單片機不需要配置),配置完成后是通信參數設置,參數設置完成后就可以利用中斷來(lái)發(fā)送和接收了。(發(fā)送也可以不使用中斷,我只是寫(xiě)了一個(gè)歷程,實(shí)際使用中要根據功能來(lái)寫(xiě),我寫(xiě)的發(fā)送是一直在發(fā)數據),下面是程序。
評論