隨著單片微型計算機技術的發(fā)展,人們經常采用單片機對自動化系統(tǒng)的參數(如溫度、壓力和速度等)進行檢測和控制。單片機之所以被廣泛使用,是因為它具有靈活快速的控制能力,而PC機則具有強大的管理和監(jiān)控功能;因此,PC機與外部設備進行串行通信在許多測控系統(tǒng)中得到廣泛應用。鑒于此,利用MAX芯片制作串行接口實現PC機與單片機之間的信息交換方法具有十分重要的意義。
1、硬件電路的制作
1.1、串行通信
串行通信是指用1條數據線,將數據依次傳輸,每一位數據占據1個固定的時間長度。串行通信只需要少數幾條線就可以在系統(tǒng)間交換信息,特別適合在計算機與計算機、計算機與外設之間進行通信,具有使用線路少和成本低的優(yōu)點,特別是在遠程傳輸時,避免了多條線路特性的不一致。串行通信可以分為2種方式:同步串行通信和異步串行通信。同步串行通信一般用在傳輸速度較快的場合,但對硬件的要求也相對較高;而異步串行通信常用在傳輸速率50~115200B/S,對硬件的要求相對較低,是應用最為廣泛的串行通信方式。異步通信在傳輸數據時是逐幀傳輸的,而每一幀的數據格式分為四部分:1位起始位,5~8位的數據位,1位奇偶校驗位和1、1.5或2位停止位。當然,在數據傳輸過程中,收發(fā)雙方要約定好數據格式以及數據的傳輸速率(波特率)。
1.2、MAX232芯片
MAX232芯片是美信公司專門為RS-232標準串口設計的接口電路,使用5V電源供電。內部結構基本可分為下述3個部分。
1)電荷泵電路。由1、2、3、4、5、6腳和4只電容構成。功能是產生+12V和-12V2個電源,提供給RS-232串口電平的需要。
2)數據轉換通道。由7、8、9、10、11、12、13、14腳構成2個數據通道。13腳(R1in)、12腳(R1OUT)、11腳(T1in)和14腳(T1OUT)為第1數據通道。8腳(R2in)、9腳(R2OUT)、10腳(T2in)和7腳(T2OUT)為第2數據通道。
TTL/CMOS數據從T1in、T2in輸入,轉換成RS-232數據,從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數據從R1in、R2in輸入,轉換成TTL/CMOS數據后,從R1OUT、R2OUT輸出。
3)電源部分。由15腳GND和16腳VCC(+5V)構成。
1.3、RS-232C標準
RS-232C總線標準設有25條信號線,包括1個主通道和1個輔助通道。在多數情況下主要使用主通道,對于一般雙工通信,僅需幾條信號線就可實現,如1條發(fā)送線、1條接收線及1條地線。RS-232C標準規(guī)定的數據傳輸速率為50、75、100、150、300、600、1200、2400、4800、9600、19200、38400和115200B/S。
1.4、串行接口電路
利用MAX232芯片制作的硬件接口電路,該電路不需要驅動芯片,因為MAX232本身就具有驅動能力,所以不必再外加驅動電路。接口電路如圖1所示。
圖1 ?RS-232接口電路
MAX232芯片有2路數據通道,本文只用1路接受/發(fā)射讓PC機與單片機進行數據通信。單片機的TD(發(fā)射)與MCU_TXD1連接,單片機的RD(接收)與MCU_TXD1連接;PC機的接收與T1OUT相連,發(fā)射與R1in相連,接口J1與芯片MAX232的連接。J1口通過連接線與PC機的RS-232串口相連。一般情況下,這樣的連接方式即可滿足普通通信的要求。
1.5、RS-232交叉串口線
通常進行串口數據通信,需要使用到RS-232交叉串口線,如圖2所示,其中2腳和3腳是交叉互聯(lián)的,這很容易理解,因為一個設備的發(fā)送線必須連接到另外一臺設備的接收線上,反之亦然。另外,232信號的有效通信距離是15M。
圖2 ?RS-232交叉串口線的內部連線
2、通信協(xié)議的制定
通信協(xié)議是指雙方實體完成通信或服務所必須遵循的規(guī)則和約定。協(xié)議定義了數據單元使用的格式,還有串行通信最重要的參數:比特率、數據位、奇偶校驗位和停止位。對于2個進行通信的實體,這些參數必須相匹配,從而確保數據順利地傳送到確定的地方。通信協(xié)議如下:1)串行通信的波特率設為15200B/S;2)幀格式為1位起始位,8位數據位,2位停止位;3)無奇偶校驗位;4)PC機采用COM1口進行通信。
3、PC機與單片機的通信過程
PC機與單片機通信之前,首先要做的就是搭建硬件電路,即PC機通過COM1與上面設計的接口電路收/發(fā)口相連,接口電路的發(fā)/收口與單片機[4]的串行口相連,它們之間的連接是通過RS-232串口交叉線相連?,F在單片機地址為1006里面存放的數據為04,可以通過編寫相應程序將單片機地址1006里面的數據讀取。最后通過串口將它們讀到PC機上。讀取結果如圖3所示。
圖3 調試助手顯示串口數據
為了驗證PC機上顯示數據的正確性,再通過示波器將串口波形(見圖4)輸出,然后對波形進行分析。波形的周期是88US,即每傳輸1幀數據用時88US。由通信協(xié)議可知,1幀數據由1位起始位、8位數據位、2位停止位共11位組成,每位用時約8S。進一步對波形進行分析,第1位起始位為低電平,隨后是數據位,其數據值為01111111,即十六進制7F,數據位的第1位是0,為低電平;另外7位數據位是1,為高電平,最后2位是停止位,為高電平。其中,數據位與PC機接收數據7F相同,因此讀取的數據正確。
圖4 ?示波器顯示串口數據波形
4、結語
串行通信方式使用線路少、成本低和適合遠程傳輸,大多數RS-232C技術規(guī)范的目標在于提供必要的電壓電平以驅動損耗較大的線路,如MC1488和MC1489組成RS-232接口,則需要±12V和+5V電源供電,以實現TTL和CMOS邏輯轉換匹配。而MAX232芯片不僅可以實現RS-232C的技術指標,而且芯片的供電電源只需要+5V,這樣不僅使串行通信的性能更加可靠,而且價格低廉。該通信接口電路已經在帶有串口的模塊、芯片和外圍設備等通信系統(tǒng)中得到了廣泛的應用,而且優(yōu)點非常突出。
評論