歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux操作系統下的串口通信學習筆記

一、什麼是串口通信

串口通信是指計算機主機與外設之間以及主機系統與主機系統之間數據的串行傳送。使用串口通信時,發送和接收到的每一個字符實際上都是一次一位的傳送的,每一位為1或者為0。

 

二、串口通信的分類

串口通信可以分為同步通信和異步通信兩類。同步通信是按照軟件識別同步字符來實現數據的發送和接收,異步通信是一種利用字符的再同步技術的通信方式。

 

2.1同步通信

同步通信是一種連續串行傳送數據的通信方式,一次通信只傳送一幀信息。這裡的信息幀與異步通信中的字符幀不同,通常含有若干個數據字符。如圖:

單同步字符幀結構

+-----+------+-------+------+-----+--------+-------+-------+

|同步|數據 |數據 |數據 | ... |數據 |CRC1|CRC2|

|字符|字符1|字符2|字符3| |字符N| | |

+-----+------+-------+------+-----+--------+-------+-------+

雙同步字符幀結構

+-----+--------+------+-------+---+-------+-------+--------+

|同步 |同步 |數據 |數據 | ... |數據 |CRC1|CRC2|

|字符1|字符2|字符1|字符2| |字符N| | |

+-----+--------+------+-------+---+-------+-------+--------+

它們均由同步字符、數據字符和校驗字符(CRC)組成。其中同步字符位於幀開頭,用於確認數據字符的開始。數據字符在同步字符之後,個數沒有限制,由所需傳輸的數據塊長度來決定;校驗字符有1到2個,用於接收端對接收到的字符序列進行正確性的校驗。

同步通信的缺點是要求發送時鐘和接收時鐘保持嚴格的同步。

 

2.2異步通信

異步通信中,數據通常以字符或者字節為單位組成字符幀傳送。字符幀由發送端逐幀發送,通過傳輸線被接收設備逐幀接收。發送端和接收端可以由各自的時鐘來控制數據的發送和接收,這兩個時鐘源彼此獨立,互不同步。

接收端檢測到傳輸線上發送過來的低電平邏輯"0"(即字符幀起始位)時,確定發送端已開始發送數據,每當接收端收到字符幀中的停止位時,就知道一幀字符已經發送完畢。

在異步通行中有兩個比較重要的指標:字符幀格式和波特率。

(1)字符幀,由起始位、數據位、奇偶校驗位和停止位組成。如圖:

無空閒位字符幀

+--+---+---+---+---+--+--+--+--+--+--+--+---+---+---+--+--+

|D7|0/1| 1 | 0 |D0|D1|D2|D3|D4|D5|D6|D7|0/1| 1 | 0 |D0|D1|

+--+---+---+---+--+--+--+--+--+--+--+--+---+---+---+--+--+

奇偶 停 起 奇偶 停 起

校驗 止 始 校驗 止 始

位 位 位 位

有空閒位字符幀

+---+---+--+--+--+--+--+--+--+--+---+---+---+---+---+---+--+

| 1 | 0 |D0|D1|D2|D3|D4|D5|D6|D7|0/1| 1 | 1 | 1 | 1 | 0 |D0|

+---+---+--+--+--+--+--+--+--+--+---+---+---+---+---+---+--+

空 起 奇偶 停 空 閒 位 起

閒 始 校驗 止 始

位 位 位 位

1.起始位:位於字符幀開頭,占1位,始終為邏輯0電平,用於向接收設備表示發送端開始發送一幀信息。

2.數據位:緊跟在起始位之後,可以設置為5位、6位、7位、8位,低位在前高位在後。

3.奇偶校驗位:位於數據位之後,僅占一位,用於表示串行通信中采用奇校驗還是偶校驗。

(2)波特率,波特率是每秒鐘傳送二進制數碼的位數,單位是b/s。

異步通信的優點是不需要傳送同步脈沖,字符幀長度也不受到限制。缺點是字符幀中因為包含了起始位和停止位,因此降低了有效數據的傳輸速率。

 

三、什麼是RS-232

RS-232-C 接口(又稱 EIA RS-232-C)它是在 1970 年由美國電子工業協會(EISB2.0、網卡接口、Modem接口、VGA接口、擴展塢、IEEE 1394以及六合一讀卡器,常用的端口一應俱全。

HP Ze2022AP

 

Ze2022AP外觀上采用了惠普經典的Pavilion DV1000的模具,模具成熟,外觀無可挑剔。銀白色的主色調,再經過磨砂處理,視覺效果和觸感都相當理想。Ze2202AP外形方方正正,稜角分明,同時惠普還頗費心思地在前後采用了傾斜的切割,整個外形更顯精細動感。

Ze2202AP的端口主要分布在左右兩端,右側有2個USB接口、1個1394接口, SD/MS/MMC多功能存儲卡讀取插槽,還有COMBO光驅,以及S端口。左側從後到前分布電源接口、VGA輸出接口、基座擴展接口、 RJ11/RJ45網絡接口,1個USB接口,以及PCMCIA擴展插槽。除此之外,這款機型同樣配備擴展端口,擴展性無疑是相當強大的。

ThinkPad R50e 1834HC1

IBM的R系列實際上是T系列的經濟版本,有人將其形象地表示為“偷工減料版的T”,外形上依然承襲了IBM“小黑”一貫的酷。這款R50e頂蓋材料采用了ABS工程塑料,但借助不錯的頂蓋框架,強度還是不錯的。

R150e的端口相對齊全,不僅有ThinkPad經典的指定桿,接口上還包括RJ45/11網絡接口、兩個USB接口、PC卡插槽、VGA接口、S視頻端口,但沒有IEEE1394接口,對經常使用數碼產品的消費者無疑是個壞消息。

 

五、全雙工與半雙工

 

1.全雙工,表示機器可以同時發送數據也可以接收數據,有兩個獨立的數據通道(一個用於發送,一個用於接收)

2.半雙工,表示機器不能在發送數據的同時也接收數據。

 

六、流量控制

 

1.使用軟件方法

使用特殊的字符來標記數據流的開始和結束,比如XON,DC1,八進制021來標志開始,用X0FF,DC3,八進制023來標志結束。

2.使用硬件方法

使用RS232的CTS和RTS信號來代替特殊字符控制。當接收方准備接收更多數據時,設置CTS為0,反之設置成1。對應的發送端准備發送數據時,設置RTS為0。

 

 

七、串口的訪問

串口設備在LINUX下與所有設備一樣都是通過設備文件來進行訪問。

 

7.1打開串口

LINUX系統下串口設備是通過open函數來打開的,不過需要注意的是,一般用戶是沒有權限訪問設備文件的,需要將打開的串口設備的訪問權限設置成一般用戶可以訪問的權限。

Copyright © Linux教程網 All Rights Reserved