摘要:本文首先介紹串行通訊的基礎知識,然後結合示例剖析在VB平台下的串口通訊的編程技巧。
隨著計算機系統的普及與外圍設備技術的發展,計算機與外圍設備之間的通訊就顯得越來越重要了。由於串行通信是在一根傳輸線上一位一位的傳送信息,所用的傳輸線少,並且可以借助現成的電話網進行信息傳送,因此,特別適合於遠距離傳輸。對於那些與計算機相距不遠的人-機交換設備和串行存儲的外部設備如終端、打印機、邏輯分析儀、磁盤等,采用串行方式交換數據也很普遍。在實時控制和管理方面,采用多台微機處理機組成分級分布控制系統中,各CPU之間的通信一般都是串行方式。所以串行接口是微機應用系統常用的接口,而相應的應用程序也成為今年來研究的熱點。本文旨在闡述一般的穿口通訊的原理及其程序設計,希望借此能夠拋磚引玉,為更深入的研究打下一定的基礎。
一、串行通訊的基本原理
所謂"串行通信"是指外設和計算機間使用一根數據信號線,數據在一根數據信號線上按位進行傳輸,每一位數據都占據一個固定的時間長度。這種通信方式使用的數據線少,在遠距離通信中可以節約通信成本,當然,其傳輸速度比並行傳輸慢。相比之下,由於高速率的要求,處於計算機內部的CPU與串口之間的通訊仍然采用並行的通訊方式,所以串行口的本質就是實現CPU與外圍數據設備的數據格式轉換(或者稱為串並轉換器),即當數據從外圍設備輸入計算機時,數據格式由位(bit)轉化為字節數據;反之,當計算機發送下行數據到外圍設備時,串口又將字節數據轉化為位數據。
二、串口通訊的程序設計原理
前面介紹了串行通訊的基本原理,那麼如何在程序設計中實現它呢?事實上,這個過程並不復雜,一般有兩種實現途徑:其一就是使用MSCOMM控件,此控件提供很多方便操作的屬性和方法,利用它們可以很方便地實現你的目的;另外一種途徑就是使用Windows API,微軟為開發者提供了很多相關的串行操作的編程接口,使用這些接口,可以很完成更為強大的功能。限於篇幅以及本文的宗旨,這裡著重介紹第一種方法,第二種方法實際思路與第一種方法一樣,不同的是它利用API函數代替了控件。
無論使用哪一種途徑,其基本的操作步驟大致一樣的:首先初始化串口,比如端口號,波特率等屬性,然後打開端口,通過接受緩沖區讀上行數據,通過發送緩沖區來寫下行數據。最後通過事件驅動來反映數據的到達與發送過程,另外在通訊過程中的錯誤的產生也可以通過CommEvent屬性來管理。