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