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