計算機控制系統(tǒng)中經(jīng)常采用多機系統(tǒng)進行通信,在由PC機和單片機構成的分布式控制系統(tǒng)中,往往以PC機為上位機完成較為復雜的數(shù)據(jù)處理和對前沿機的監(jiān)督管理,以及對下位機進行多機協(xié)調(diào),單片機主要執(zhí)行上位機的命令,對來自微機串行口的命令進行操作,完成對被控對象的直接控制,并把被控對象的信息上報給上位機,異步串行通信是一種常用的多機通信手段,本文介紹一種將RS232,RS485,及紅外接口集成在一起的PC機--單片機多功能通訊實驗板,用于實現(xiàn)PC機與單片機間的串口通信、紅外通信及PC機與PC機間的通訊實驗。
2 實驗板的組成原理與設計
2.1 串行通信
串行通信是指通信的發(fā)送方和接收方之間數(shù)據(jù)信息的傳輸是在單根數(shù)據(jù)線
2.2 AT89C51微控制器
AT89C51單片機系統(tǒng)具有設計簡單、性能可靠、功耗低等優(yōu)點,它為用戶預留下足夠的軟硬件資源,可供用戶進行再開發(fā)應用,該系統(tǒng)除內(nèi)部已有的4K FLASH存儲器外,還可以擴展選址64K ROM區(qū)和64K RAM區(qū),供用戶使用,用戶在系統(tǒng)開發(fā)時,可以將自己的數(shù)據(jù)塊和程序段、數(shù)據(jù)表,以若干控制子程序、數(shù)據(jù)塊形式存放于AT89C51單片機的擴展ROM或RAM區(qū)中,以便系統(tǒng)工作時重復使用和反復調(diào)用。
2.3 RS232C通信接口
RS232C是一種電壓型總線標準,可用于設計計算機接口與終端或外設之間的連接,以不同的極性的電壓表示邏輯值。-3~-25V表示邏輯"1"。+3~+25V表示邏輯"0"。其電平與TTL和CMOS電平是不同的,所以在通信時必須進行電平轉(zhuǎn)換。
2.4 MAX232芯片
MAXIM公司的MAX232/MAX232A接收/發(fā)送器是MAXIM公司特別為滿足EIA/TEA2232E的標準而設計的,他們在EIA/TIA2232E標準串行通信接口中日益得到廣泛的應用,他們具有功耗低、工作電源為單電源、外接電容僅為0.1μF或1μF,采用雙列直插封裝形式、接收器輸出為三態(tài)TTL/CMOS等優(yōu)越性,為雙組RS 232接收發(fā)送器,工作電源為+5V,波特率高,僅需外接0.1μF或1μF的電容,其價格低,可在一般需要串行通信的系統(tǒng)中使用,MAX232外圍需要4個電解電容,是內(nèi)部電源轉(zhuǎn)換所需電容,其取值均為1μF/25V宜選用鉭電容并且應盡量靠近芯片。如圖1所示。
2.5 紅外發(fā)送、接收電路
紅外通訊以紅外線作為通訊載體,通過紅外光在空中的傳播來傳輸數(shù)據(jù),他由紅外發(fā)射器和紅外接收器來完成,在發(fā)射端,發(fā)送的數(shù)字信號經(jīng)過適當?shù)恼{(diào)制編碼后,送入電光變換電路,經(jīng)紅外發(fā)射管轉(zhuǎn)變?yōu)榧t外脈沖發(fā)射到空中;在接收端,紅外接收器對接收到的紅外光脈沖進行光電變換,解調(diào)譯碼后恢復出原信號。
紅外發(fā)送電路中采用的紅外發(fā)射器件是塑封的TSAL6200紅外發(fā)射二極管,他將周期的電信號轉(zhuǎn)變成一定頻率的紅外光信號,他是一種時斷時續(xù)的高頻紅外脈沖信號,但脈沖串時間長度是恒定的,根據(jù)脈沖串之間的間隔大小,表示傳輸?shù)氖菙?shù)據(jù)"0"還是"1"。紅外接收器對接收到的紅外光脈沖進行光電變換,解調(diào)譯碼后恢復出原信號。紅外載波為頻率38KHz的方波,采用脈寬調(diào)制PWM方式發(fā)送,通過待發(fā)送二進制數(shù)據(jù)的"0"或"1"控制兩個脈沖串之間的時間間隔,即PWM的占空比。
紅外載波可以使用單片機內(nèi)部的定時器的PWM功能實現(xiàn),也可以通過外圍硬件電路實現(xiàn),紅外接收采用HS0038B紅外接收器,當接收收到38KHz的載波信號時,HS0038B接收器會輸出低電平,否則輸出高電平,從而可以將"時斷時續(xù)"的紅外光信號解調(diào)成一定周期的連續(xù)方波信號,經(jīng)單片機處理,便可以恢復出原數(shù)據(jù)信號。
2.6 設計思路
本實驗板選用的ATMEL公司的AT89C51單片機為核心,RS232C接口選用9芯接頭,電平轉(zhuǎn)換芯片選用MAX232A,用來實現(xiàn)232電平與TTL電平的轉(zhuǎn)換,RS485接口芯片選用65LBC184,他使用單一電源,電壓在+3
紅外接收芯片HS0038B是能夠接收紅外信號的小型化接收器,通過外圍的自激振蕩電路產(chǎn)生38KHz的載波頻率。為了及時顯示各接口發(fā)送、接收數(shù)據(jù)的狀態(tài),在實驗板上還設置了狀態(tài)顯示電路,由接口信號通過放大電路驅(qū)動相應發(fā)光二極管,例如,當232芯片接收到PC機的數(shù)據(jù)時,232芯片的接收端會使相應的二極管閃爍,紅外發(fā)送電路在發(fā)送數(shù)據(jù)時,其相應的發(fā)光管也會及時閃爍,而PC機上的串口通信程序使用一個叫做串口助手的程序,他可以設置串口,波特率,并發(fā)送/接收串口數(shù)據(jù),故本文只介紹單片機部分的通信程序。
2.7 單片機軟件設計
在實驗板上還集成了51單片機來組成最小控制系統(tǒng),所選用的AT51單片機的串口有4種工作方式,用于多機異步通信時選用方式2或方式3,數(shù)據(jù)幀格式為:1位起始位,8位數(shù)據(jù)位,1位停止位,進行串行通信前要對串口進行初始化,設置波特率和串行口工作模式,設定單片機的地址碼為F1H1,在傳送數(shù)據(jù)前先聯(lián)絡地址碼,如地址碼正確則傳送數(shù)據(jù),否則繼續(xù)聯(lián)絡地址碼,數(shù)據(jù)的通信采用累加和校驗的方法,即每傳送一組數(shù)據(jù)(個數(shù)自定,設為100個),校驗一次累加和是否正確,正確則回送00H,否則回送FFH1,通信可以由中斷傳送方式和查詢方式,本文采用查詢方式,選擇波特率為1200b/s,定時器T1作為波特率發(fā)生器,選用晶振為12MHz,定時器T1工作于模式2,定時器初值為0E6H,AT89C51單片機的通信程序框圖如圖2。
2.8 通訊實驗示例
實驗1 利用RS232接口及MAX232電平轉(zhuǎn)換芯片來實現(xiàn)PC機與單片機的串口通信。
|
實驗2 首先通過RS232接口將PC機1與實驗板1連接,將232電平轉(zhuǎn)換為TTL電平,然后通過RS485接口把TTL電平轉(zhuǎn)換為485電平并連接到實驗板2上,再通過RS232實現(xiàn)與PC機2的串口通信。
實驗3 通過RS232接口將PC機1與實驗板1連接,將232電平轉(zhuǎn)換為TTL電平,然后通過紅外發(fā)送電路將信號無線傳送到實驗板2上,再通過安裝在實驗板2上的RS232接口與PC機2完成通信。
3 結(jié)語
本文利用RS232,RS485接口芯片,紅外發(fā)送/接收電路設計了PC機與單片機及PC機之間的通訊實驗板,該系統(tǒng)硬件結(jié)構簡單,功能可靠,硬件與軟件均調(diào)試通過,在實際現(xiàn)場的應用中具有一定的實用價值,對于為了解并掌握多機間串行通信,紅外通信的初學者是一個理想的實驗工具。