千問(wèn)千答——串口通信
? ? ?

? 串行接口簡(jiǎn)稱串口,是采用串行通信方式的擴(kuò)展接口,與通用串行總線Universal Serial Bus(USB)不同。大多數(shù)計(jì)算機(jī)包含基于RS232的串口。串口是儀器儀表設(shè)備通用的通信協(xié)議,可以用于獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù)。
? ? ? ??串口通信的概念非常簡(jiǎn)單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。
? ? ? ??IEEE488定義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總常不得超過(guò)20米,并且任意兩個(gè)設(shè)備間的長(zhǎng)度不得超過(guò)2米;而對(duì)于串口而言,長(zhǎng)度可達(dá)1200米。
? ? ? ??例如:在工業(yè)網(wǎng)關(guān)上,串口通信是異步的。常用于ASCII碼字符的傳輸,用3根線完成通信:(1)地線,(2)發(fā)送,(3)接收。端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù),其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。對(duì)于兩個(gè)進(jìn)行通行的端口,這些參數(shù)必須匹配。

? ? ? ? ? ? ? ? a。 波特率:這是一個(gè)衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個(gè)數(shù)。當(dāng)我們提到時(shí)鐘周期時(shí),我們就是指波特率。例如如果協(xié)議需要9600波特率,那么時(shí)鐘是9600Hz。這意味著串口通信在數(shù)據(jù)線上的采樣率為9600Hz。通常串口通信的波特率為9600或11520。?
? ? ? ??? ? ? ??b。 數(shù)據(jù)位:這是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包,實(shí)際的數(shù)據(jù)不會(huì)是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)置取決于你想傳送的信息。比如,標(biāo)準(zhǔn)的ASCII碼是0~127(7位)。擴(kuò)展的ASCII碼是0~255(8位)。如果數(shù)據(jù)使用簡(jiǎn)單的文本(標(biāo)準(zhǔn) ASCII碼),那么每個(gè)數(shù)據(jù)包使用7位數(shù)據(jù)。每個(gè)包是指一個(gè)字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。由于實(shí)際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語(yǔ)“包”指任何通信的情況。
? ? ? ??? ? ? ?? ? ? ??? ? ? ???c。 停止位:用于表示單個(gè)包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。適用于停止位的位數(shù)越多,不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時(shí)也越慢。
? ? ? ??? ? ? ??? ? ? ??? ? ? ??d。 奇偶校驗(yàn)位:在串口通信中一種簡(jiǎn)單的檢錯(cuò)方式。根據(jù)被傳輸?shù)囊唤M二進(jìn)制代碼的數(shù)位中“1”的個(gè)數(shù)是奇數(shù)或偶數(shù)來(lái)進(jìn)行校驗(yàn),只能檢錯(cuò),不能糾錯(cuò),適用于檢查測(cè)隨機(jī)錯(cuò)誤。一般在同步傳輸方式中采用奇校驗(yàn),而在異步傳輸方式中常采用偶校驗(yàn)。
