序列程式設計/前言
序列程式設計: 簡介和OSI網路模型 -- RS-232接線和連線 -- 典型的RS232硬體配置 -- 8250 UART -- DOS -- MAX232驅動器/接收器系列 -- Windows中的TAPI通訊 -- Linux和Unix -- Java -- Hayes相容調變解調器和AT命令 -- 通用序列匯流排(USB) -- 形成資料包 -- 糾錯方法 -- 雙向通訊 -- 資料包恢復方法 -- 序列資料網路 -- 實際應用開發 -- 序列連線上的IP
本系列文章面向那些有興趣深入瞭解序列資料通訊系統“內部”的人。這些內容很少在大學課程中教授,並且可能很難在“工作中學習”。
與任何軟體開發一樣,各個主題都很簡單,但將它們全部結合起來可能會非常複雜。為了避免使新手不知所措,本文采用分層的方法來介紹主題。第一章介紹了裸銅線及其處理方式。後續章節將新增協議層。
典型的序列通訊幾乎可以在任何級別進行。某些應用程式直接從電線中提取“原始”資料,而另一些應用程式則在多臺計算機上使用完整的分組網路。有關更多資訊,請參閱介紹中的“為什麼進行序列程式設計?”
序列程式設計離不開程式設計知識和系統訪問知識。本書假設您至少精通一種計算機程式語言。瞭解至少一種支援低階作業系統訪問的軟體工具也有助於您。
本系列針對x86平臺的CPU編寫,但其中大部分資訊可以應用於其他環境,包括自定義嵌入式系統或其他CPU系統。如果您使用其他CPU系統以這種方式進行操作,則必須從相應的CPU架構中獲取I/O控制的詳細資訊。如果您瞭解此主題,特別是如果您熟悉其中一些替代軟體系統或CPU架構,請隨時補充這些文章。
如果您還沒有被嚇跑,請記住本書是為計算機相對新手編寫的。編寫低階軟體/驅動程式例程可能很嚇人。即使您使用API庫,這種軟體開發也可能與典型的“Hello World”應用程式有很大不同。雖然您可能能夠用大多數軟體語言中不到十行程式碼編寫“Hello World”,但透過序列連線傳輸“Hello World”可能需要相當多的程式碼,並且需要了解所有軟體設定及其位置。將提供具體示例,同時解釋“為什麼”和“如何”。
除了編譯器工具外,訪問一個好的終端模擬器應用程式也將非常有用。在Windows或Linux等多工系統中,這可以作為與您正在開發的應用程式獨立的任務執行。在這種情況下,如果您的計算機至少有兩個序列資料通訊埠,並且您可以訪問一個“零調變解調器”電纜,那麼這將非常有用,至少從一開始是這樣。有一些軟體技巧可以避免此要求,但如果您能夠看到實際的通訊發生,將會更有成就感。訪問第二臺計算機可以使這個概念更加深入人心,特別是在介紹資料檔案傳輸時。 RS-232連線描述了幾個額外的硬體(例如,分線盒或協議分析儀),它們是簡單和高階版本,在進行序列程式設計時很有用。
在本書中,“RS-232”一詞以一種寬鬆的意義使用,因為它在計算領域已變得司空見慣,而不是嚴格按照某個RS-232標準的意義。實際的RS-232標準有許多不同的名稱和版本。根據版本,標準甚至沒有定義所有與“RS-232”通訊通常相關聯的方面(例如,起始/停止位幀)。
需要標準精度的讀者請參考一個或多個RS-232標準。有興趣實際程式設計類似RS-232的介面和裝置的讀者應該會在這本書中找到有用的資訊。