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