串列通訊口COM1、COM2 --學習筆記
一、串口通訊的基本原理.
序列埠的本質功能是作為CPU和串列裝置間的編碼轉換器。當資料從CPU經過序列埠發送出去時,位元組資料轉換為串列的位。在接收資料時,串列的位被轉換為位元組資料。 在Windows環境(Windows NT、Win98、Windows2000)下,串口是系統資源的一部分。 應用程式要使用串口進行通訊,必須在使用之前向作業系統提出資源申請要求(開啟串口),通訊完成後必須釋放資源(關閉串口)。
二、串口訊號線的接法.
一個完整的RS-232C介面有22根線,採用標準的25芯插頭座(或者9芯插頭座)。25芯和9芯的主要訊號線相同。以下的介紹是以25芯的RS-232C為例。 1、主要訊號線定義:引腳 1:保護地;引腳2:發送資料TXD; 引腳3:接收資料RXD; 引腳4:請求發送RTS;引腳5:清除發送CTS;引腳6:資料裝置就緒DSR;引腳 7:訊號地;引腳 8:資料偵測載波DCD;引腳20:資料終端機就緒DTR;2、電氣特性:資料轉送速率最大可到20K bps,最大距離僅15m。註:看了微軟的MSDN 6.0,其Windows API中關於串列通訊裝置(不一定都是串口RS-232C或RS-422或RS-449)速率的設定,最大可支援到RS_256000,即256K bps! 也不知道到底是什麼串列通訊裝置?但不管怎樣,一般主機和單片機的串口通訊大多都在9600 bps,可以滿足通訊需求。3、介面的典型應用:大多數電腦應用系統與智能單元之間只需使用3到5根訊號線即可工作。這時,除了TXD、RXD以外,還需使用RTS、CTS、DCD、DTR、DSR等訊號線。(當然,在程式中也需要對相應的訊號線進行設定。)在設計程式時,直接進行資料的接收和發送就可以了,不需要對訊號線的狀態進行判斷或設定。(如果應用的場合需要使用握手訊號等,需要對相應的訊號線的狀態進行監測或設定。)
並行通訊是把一個字元的各數位用幾條線同時進行傳輸,傳輸速度快,資訊率高。但它比串列通訊所用的電纜多,故常用在傳輸距離較短(幾米至幾十米)、資料轉送率較高的場合。 實現並行通訊的介面就是並行介面。 並行介面可設計為只作為輸入/輸出介面,也可設計為既作為輸入又作為輸出的介面。它可以用兩種方法實現,一種是利用同一個介面中的兩個通路,一個作輸入通路,一個作輸出通路;另一種使用同一個雙向通路,既作為輸入又作為輸出。 串連裝置介面有PS/2,PATA,LPT等 串列通訊是指資料一位一位地依次傳輸,每一位元據佔據一個固定的時間長度。其只要少數幾條線就可以在系統間交換資訊,特別適用於電腦與電腦、電腦與外設之間的遠距離通訊, 串連裝置介面有SATA,USB等
所謂串列通訊是指外設和電腦間使用一根資料訊號線一位一位地傳輸資料,每一位元據都佔據一個固定的時間長度。“串列”是指外設與介面電路之間的資訊傳送方式,CPU與介面之間仍按並行方式工作。串列資料在傳輸過程中,由於幹擾可能引起資訊的出錯。如何發現傳輸中的錯誤,叫檢錯;發現錯誤後,如何消除錯誤,叫錯誤修正。
(1) 串列資料轉送方式
1) 全雙工系統方式通訊雙方能同時進行發送和接收操作
2) 半雙工方式只有1根資料線傳送資料訊號,要求通訊雙方的發送和接收由電子開關切換。由於只有一條通道,所以資料不能同時在兩個方向上傳送。
3) 單工方式只允許資料按照一個固定的方向傳送。
(2) 串列通訊可以分為兩種類型:同步通訊和非同步通訊
非同步通訊:一個字元一個字元地傳輸,每個字元一位一位地傳輸,傳輸一個字元時,以起始位開始,然後傳輸字元本身的各位,接著傳輸校正位,最後以停止位結束該字元的傳輸。一次傳輸的起始位、字元各位、校正位、停止位構成一組完整的資訊,稱為幀(Frame-)。幀與幀之間可有任意個空閑位。起始位之後是資料的最低位。