(引腳定義,電氣特性,傳輸格式,接收過(guò)程,單片機(jī)晶振,RS485,RS422) 2009-09-17 22:18 串口是計(jì)算機(jī)上一種非常通用的設(shè)備通信協(xié)議,。
--------------------------------- 串口的引腳定義:
9芯 | 信號(hào)方向來(lái)自 | 縮寫 | 描述 | 1 | 調(diào)制解調(diào)器 | CD | 載波檢測(cè) | 2 | 調(diào)制解調(diào)器 | RXD | 接收數(shù)據(jù) | 3 | PC | TXD | 發(fā)送數(shù)據(jù) | 4 | PC | DTR | 數(shù)據(jù)終端準(zhǔn)備好 | 5 |
| GND | 信號(hào)地 | 6 | 調(diào)制解調(diào)器 | DSR | 通訊設(shè)備準(zhǔn)備好 | 7 | PC | RTS | 請(qǐng)求發(fā)送 | 8 | 調(diào)制解調(diào)器 | CTS | 允許發(fā)送 | 9 | 調(diào)制解調(diào)器 | RI | 響鈴指示器 |
兩個(gè)串口連接時(shí),接收數(shù)據(jù)針腳與發(fā)送數(shù)據(jù)針腳相連,,彼此交叉,,信號(hào)地對(duì)應(yīng)相接即可。 ---------------------------------串口的電氣特性: 1)RS-232串口通信最遠(yuǎn)距離是50英尺 2)RS232可做到雙向傳輸,,全雙工通訊,,最高傳輸速率20kbps 3)RS-232C上傳送的數(shù)字量采用負(fù)邏輯,,且與地對(duì)稱 邏輯1:-3 ~-15V 邏輯0:+3~+15V 所以與單片機(jī)連接時(shí)常常需要加入電平轉(zhuǎn)換芯片:
---------------------------------串口通信參數(shù): a)波特率:RS-232-C標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)傳輸速率為每秒50、75,、 100,、150、300,、600,、1200、2400,、4800,、9600、19200波特,。 b)數(shù)據(jù)位:標(biāo)準(zhǔn)的值是5,、7和8位,如何設(shè)置取決于你想傳送的信息,。比如,,標(biāo)準(zhǔn)的ASCII碼是0~127(7位);擴(kuò)展的ASCII碼是0~255(8位),。 c)停止位:用于表示單個(gè)包的最后一位,,典型的值為1,1.5和2位,。由于數(shù)是在傳輸線上定時(shí)的,,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步,。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。 d)奇偶校驗(yàn)位:在串口通信中一種簡(jiǎn)單的檢錯(cuò)方式,。對(duì)于偶和奇校驗(yàn)的情況,,串口會(huì)設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一位),用一個(gè)值確保傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位,。例如,,如果數(shù)據(jù)是011,那么對(duì)于偶校驗(yàn),,校驗(yàn)位為0,,保證邏輯高的位數(shù)是偶數(shù)個(gè)。如果是奇校驗(yàn),,校驗(yàn)位位1,,這樣就有3個(gè)邏輯高位。
---------------------------------串口通信的傳輸格式: 串行通信中,,線路空閑時(shí),,線路的TTL電平總是高,,經(jīng)反向RS232的電平總是低。一個(gè)數(shù)據(jù)的開始RS232線路為高電平,,結(jié)束時(shí)Rs232為低電平。數(shù)據(jù)總是從低位向高位一位一位的傳輸,。示波器讀數(shù)時(shí),,左邊是數(shù)據(jù)的高位。
例如,,對(duì)于16進(jìn)制數(shù)據(jù)55aaH,,當(dāng)采用8位數(shù)據(jù)位、1位停止位傳輸時(shí),,它在信號(hào)線上的波形如圖1(TTL電平)和圖2(RS-232電平)所示,。 55H=01010101B,取反后10101010B,,加入一個(gè)起始位1,,一個(gè)停止位0,55H的數(shù)據(jù)格式為1010101010B,; aaH=10101010B,,取反后01010101B,加入一個(gè)起始位1,,一個(gè)停止位0,,55H的數(shù)據(jù)格式為1101010100B;
---------------------------------串口通信的接收過(guò)程: (異步通信:接收器和發(fā)送器有各自的時(shí)鐘,;同步通信:發(fā)送器和接收器由同一個(gè)時(shí)鐘源控制,。RS232是異步通信) (1)開始通信時(shí),信號(hào)線為空閑(邏輯1),當(dāng)檢測(cè)到由1到0的跳變時(shí),,開始對(duì)“接收時(shí)鐘”計(jì)數(shù),。 (2)當(dāng)計(jì)到8個(gè)時(shí)鐘時(shí),,對(duì)輸入信號(hào)進(jìn)行檢測(cè),,若仍為低電平,則確認(rèn)這是“起始位”,,而不是干擾信號(hào),。 (3)接收端檢測(cè)到起始位后,隔16個(gè)接收時(shí)鐘,,對(duì)輸入信號(hào)檢測(cè)一次,,把對(duì)應(yīng)的值作為D0位數(shù)據(jù)。若為邏輯1, 作為數(shù)據(jù)位1,;若為邏輯0,,作為數(shù)據(jù)位0,。 (4)再隔16個(gè)接收時(shí)鐘,對(duì)輸入信號(hào)檢測(cè)一次,,把對(duì)應(yīng)的值作為D1位數(shù)據(jù),。….,,直到全部數(shù)據(jù)位都輸入,。 (5)檢測(cè)校驗(yàn)位P(如果有的話)。 (6)接收到規(guī)定的數(shù)據(jù)位個(gè)數(shù)和校驗(yàn)位后,通信接口電路希望收到停止位S(邏輯1),,若此時(shí)未收到邏輯1,,說(shuō)明出現(xiàn)了錯(cuò)誤,在狀態(tài)寄存器中置“幀錯(cuò)誤”標(biāo)志,。若沒有錯(cuò)誤,,對(duì)全部數(shù)據(jù)位進(jìn)行奇偶校驗(yàn),無(wú)校驗(yàn)錯(cuò)時(shí),,把數(shù)據(jù)位從移位寄存器中送數(shù)據(jù)輸入寄存器,。若校驗(yàn)錯(cuò),在狀態(tài)寄存器中置奇偶錯(cuò)標(biāo)志,。 (7)本幀信息全部接收完,,把線路上出現(xiàn)的高電平作為空閑位。 (8)當(dāng)信號(hào)再次變?yōu)榈蜁r(shí),,開始進(jìn)入下一幀的檢測(cè),。
---------------------------------單片機(jī)常用11.0592M的的晶振,這個(gè)奇怪?jǐn)?shù)字是有來(lái)歷的: 波特率為9600BPS每位位寬t1=1/9600s 晶振周期t2=1/11.0592/1000000S 單片機(jī)機(jī)器周期t3=12*t2 t1/t3=96 即對(duì)于9600BPS的串口,,單片機(jī)對(duì)其以96倍的速率進(jìn)行采樣,。 如果單片機(jī)晶振用的不正確,會(huì)對(duì)串口接受產(chǎn)生誤碼,。 關(guān)于單片機(jī)晶振的選擇和寄存器設(shè)置詳見: www./embedded/51danpianji/danpianji06_chuankou.html --------------------------------- RS485和RS422RS485總線,在要求通信距離為幾十米到上千米時(shí),,廣泛采用RS-485 串行總線標(biāo)準(zhǔn)。RS485采用平衡發(fā)送和差分接收,,因此具有抑制共模干擾的能力,。加上總線收發(fā)器具有高靈敏度,能檢測(cè)低至200mV的電壓,,故傳輸信號(hào)能在千米以外得到恢復(fù),。RS485采用半雙工工作方式,任何時(shí)候只能有一點(diǎn)處于發(fā)送狀態(tài),,因此,,發(fā)送電路須由使能信號(hào)加以控制。RS485用于多點(diǎn)互連時(shí)非常方便,可以省掉許多信號(hào)線,。應(yīng)用RS485可以聯(lián)網(wǎng)構(gòu)成分布式系統(tǒng),,其允許最多并聯(lián)32臺(tái)驅(qū)動(dòng)器和32臺(tái)接收器。
RS422總線,RS485和RS422電路原理基本相同,,都是以差動(dòng)方式發(fā)送和接受,,不需要數(shù)字地線。差動(dòng)工作是同速率條件下傳輸距離遠(yuǎn)的根本原因,,這正是二者與RS232的根本區(qū)別,,因?yàn)镽S232是單端輸入輸出,雙工工作時(shí)至少需要數(shù)字地線發(fā)送線和接受線三條線(異步傳輸),,還可以加其它控制線完成同步等功能。RS422通過(guò)兩對(duì)雙絞線可以全雙工工作收發(fā)互不影響,,而RS485只能半雙工工作,,發(fā)收不能同時(shí)進(jìn)行,但它只需要一對(duì)雙絞線,。RS422和RS485在19kpbs下能傳輸1200米,。用新型收發(fā)器線路上可連接臺(tái)設(shè)備。
三者的區(qū)別 ① RS232是全雙工的,,RS485是半雙工的,,RS422是全雙工的。 ② RS485與RS232僅僅是通訊的物理協(xié)議(即接口標(biāo)準(zhǔn))有區(qū)別,,RS485是差分傳輸方式,,RS232是單端傳輸方式,但通訊程序沒有太多的差別,。 PC機(jī)上已經(jīng)配備有RS232,,直接使用就行了,若使用RS485通訊,,只要在RS232端口上配接一個(gè)RS232轉(zhuǎn)RS485的轉(zhuǎn)換頭就可以了,,不需要修改程序。
關(guān)于RS485轉(zhuǎn)接頭的接法可以參考: www./Article/Control/84741.html http://www./jishu/pipei.htm www./webpage/solutions/200806/2008060409053600001.htm |
|