今天浩道跟大家分享近期維護的一個關(guān)于門禁系統(tǒng)的踩到的一些坑。同時也希望給大家今后接觸類似項目的小伙伴一個方向吧。同時也會跟大家說一說該項目中用到的串口通信相關(guān)知識點,一起看看!
浩道最近收到用戶反饋說,門禁刷卡,門不開,沒有上送門禁事件等。。。經(jīng)過一番溝通,用戶現(xiàn)場門禁刷卡器與門禁控制器采用485接口通信,并且接入了幾個485刷卡器,最最重要的是,485的線長達數(shù)幾十米,每一個刷卡器都是經(jīng)過一根數(shù)幾十米的信號線匯總并接到了門禁控制器的485接口。 經(jīng)過對485口進行數(shù)據(jù)抓包分析,發(fā)現(xiàn)串口數(shù)據(jù)存在亂碼,最后查閱資料發(fā)現(xiàn)485串口通信采用這種星行組網(wǎng),會存在數(shù)據(jù)干擾。數(shù)據(jù)干擾是導(dǎo)致門禁刷卡數(shù)據(jù)異常的根本原因,之前做方案沒有考慮到這些細節(jié),導(dǎo)致踩到了一個大坑了??赡芤彩菍Υ谕ㄐ艣]有更深的認識吧。在此借此機會,跟大家聊一聊串口通信相關(guān)知識,希望以后可以幫助到大家避坑!
一、串行通訊與并行通訊
在通信和計算機科學(xué)中,串行通信(Serial Communication)是一個通用概念,泛指所有的串行的通信協(xié)議,如RS232、RS422、RS485、USB、I2C、SPI等。 串行通訊是指僅用一根接收線和一根發(fā)送線就能將數(shù)據(jù)以位進行傳輸?shù)囊环N通訊方式。盡管串行通訊的比按字節(jié)傳輸?shù)牟⑿型ㄐ怕谴诳梢栽趦H僅使用兩根線的情況下就能實現(xiàn)數(shù)據(jù)的傳輸。
圖1 串行通信與并行通信
二、串口通訊模式
串口通訊模式包括單工、半雙工和全雙工,其中單工模式數(shù)據(jù)傳輸只支持數(shù)據(jù)在一個方向上傳輸。半雙工模式允許數(shù)據(jù)在兩個方向上傳輸,但某一時刻只允許數(shù)據(jù)在一個方向上傳輸,實際上是一種切換方向的單工通信,不需要獨立的接收端和發(fā)送端,兩者可合并為一個端口。詳見下圖:
圖2 (a)單工、(b)半雙工、(c)全雙工
三、串口通訊協(xié)議
最初數(shù)據(jù)是模擬信號輸出簡單過程量,后來儀表接口出現(xiàn)了RS232接口,這種接口可以實現(xiàn)點對點的通信方式,但這種方式不能實現(xiàn)聯(lián)網(wǎng)功能,這就促生了RS422和RS485。 我們知道串口通信的數(shù)據(jù)傳輸都是0和1,在單總線、I2C、UART中都是通過一根線的高低電平來判斷邏輯1或者邏輯0,但這種信號線的GND再與其他設(shè)備形成共地模式的通信,這種共地模式傳輸容易產(chǎn)生干擾,并且抗干擾性能也比較弱。所以差分通信、支持多機通信、抗干擾強的RS422和RS485就被廣泛的使用了。 RS422和RS485通信最大特點就是傳輸速度最大可以達到10Mb/s以上,最大傳輸距離超過1000米。大家需要注意的是雖然485最大速度和最大傳輸距離都很大,但是傳輸?shù)乃俣仁菚S距離的增加而變慢的,所以兩者是不可以兼得的。
四、RS232詳細介紹
1.RS232的基本特性
RS-232是串行數(shù)據(jù)接口標準,是由電子工業(yè)協(xié)會(EIA: Electronic Industries Alliance)制訂并發(fā)布的工業(yè)標準,以保證不同廠家產(chǎn)品之間的兼容。特性如下:
圖3 RS232基本特性
2.RS232的物理特性
在RS232的通訊方式中,兩個通訊設(shè)備的"DB9接口"之間通過串口信號線建立起連接,串口信號線中使用"RS-232標準"傳輸數(shù)據(jù)信號。D型或D-subminiature(D形狀超小型)連接器的原始編號系統(tǒng)使用D作為前綴(將其名稱命名為系列),然后根據(jù)外殼尺寸選擇A,B,C,D或E,末尾數(shù)字表示引腳數(shù)量。詳見下圖:
圖4 RS232物理特性
3.RS232的通信協(xié)議
RS232一般使用DB9接口,由于兩個通訊設(shè)備之間的收發(fā)信號(RXD與TXD)應(yīng)交叉相連,所以調(diào)制調(diào)解器端的DB9母頭的收發(fā)信號接法一般與公頭的相反。DB9公頭、母頭以及引腳說明詳見下方圖和表。
圖5 DB9公頭與母頭
表1 DB9引腳說明
4.RS232的波特率
在信道中,攜帶數(shù)據(jù)信息的信號單元叫碼元,單位時間內(nèi)通過信道傳輸?shù)拇a元數(shù)稱為碼元傳輸速率,簡稱波特率(Baud Rate),其單位是波特(Baud,symbol/s),波特率是傳輸通道頻寬的指標。RS232典型的“波特率”是
300/1200/2400/9600/19200/38400/115200 /230400等。 表2 不同BAUD Rate對應(yīng)的RS232通信距離
5.RS232的數(shù)據(jù)結(jié)構(gòu)
一個完整的串行數(shù)據(jù),也就是一個數(shù)據(jù)幀(Data frame),或者一個字符幀,包括起始位、數(shù)據(jù)位、停止位、奇偶校驗位。數(shù)據(jù)位前后即幀頭和幀尾,包含一些必要的控制信息。其中,MSB(Most Significant Bit)是指低地址存放最高有效字節(jié),LSB(Least Significant Bit)則是低地址存放最低有效字節(jié)。
圖6 RS232數(shù)據(jù)結(jié)構(gòu)
起始位:起始位必須是持續(xù)一個比特時間的邏輯0電平,標志傳輸一個字符的開始,接收方可用起始位使自己的接收時鐘與發(fā)送方的數(shù)據(jù)同步。 數(shù)據(jù)位:數(shù)據(jù)位緊跟在起始位之后,是通信中的真正有效信息。數(shù)據(jù)位的位數(shù)可以由通信雙方共同約定。傳輸數(shù)據(jù)時先傳送字符的低位,后傳送字符的高位。 奇偶校驗位:奇偶校驗位僅占一位,用于進行奇校驗或偶校驗,奇偶檢驗位不是必須有的。如果是奇校驗,需要保證傳輸?shù)臄?shù)據(jù)總共有奇數(shù)個邏輯高位;如果是偶校驗,需要保證傳輸?shù)臄?shù)據(jù)總共有偶數(shù)個邏輯高位。 停止位:停止位可以是是1位、1.5位或2位,可以由軟件設(shè)定。它一定是邏輯1電平,標志著傳輸一個字符的結(jié)束。 空閑位:空閑位是指從一個字符的停止位結(jié)束到下一個字符的起始位開始,表示線路處于空閑狀態(tài),必須由高電平來填充。
6.RS232與RS232(TTL)
RS-232電平標準的信號不能直接被控制器直接識別,所以這些信號會經(jīng)過一個"電平轉(zhuǎn)換芯片"轉(zhuǎn)換成控制器能識別的"TTL校準"的電平信號,才能實現(xiàn)通訊。 TTL全名是晶體管-晶體管邏輯集成電(Transistor-Transistor Logic),這種串行通信,對應(yīng)的物理電平,始終是在0V和Vcc之間,其中常見的Vcc是5V或3.3V。TTL 高電平1是>=2.4V,低電平0是<=0.5V(對于5V或3.3V電源電壓),這里是正邏輯。
RS-232電平標準的信號不能直接被控制器直接識別,所以這些信號會經(jīng)過一個"電平轉(zhuǎn)換芯片"轉(zhuǎn)換成控制器能識別的"TTL"的電平信號,才能實現(xiàn)通訊。
圖8 RS232 電平信號轉(zhuǎn)換
轉(zhuǎn)換電路圖如下所示:
圖9 RS232 電平信號轉(zhuǎn)換電路圖
五、RS422簡介
RS-422 的總線標準規(guī)定了總線接口的電氣特性標準,發(fā)送端:正電平在+2V~+6V之間,表示邏輯狀態(tài)“1”;負電平在-2V~-6V之間,則表示邏輯狀態(tài)“0”;接收器:(V+) - (V-) ≥0.2V,表示信號“0”;(V+) - (V-) ≤0.2V,表示信號“1”)。 RS-422 采用全雙工通訊方式,有4根信號線,收與發(fā)是分開的,可以同時收和發(fā)。適用于兩個站之間通信,如星型網(wǎng)、環(huán)網(wǎng)等,不可用于總線網(wǎng)。
圖10 RS-422全雙工(點對點)接線方式
六、RS485簡介
RS-485的電氣特性與RS-422基本一樣。它采用半雙工通訊方式,有2根信號線,在半雙工模式下工作,常用于總線網(wǎng)。其具體接線方式如下圖所示:
圖11 RS485(點對多點)接線方式
七、網(wǎng)絡(luò)電臺串口
以我司機載網(wǎng)絡(luò)電臺為例,綜合接口為J30J-25。其中涉及RS232/RS422/RS485接口引腳說明如下: 表3 機載網(wǎng)絡(luò)電臺綜合接口 J30J-25ZKP
?
編輯:黃飛
?
評論
查看更多