新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于51單片機(jī)應(yīng)用系統(tǒng)的串行通信設(shè)計(jì)

基于51單片機(jī)應(yīng)用系統(tǒng)的串行通信設(shè)計(jì)

作者: 時(shí)間:2011-10-21 來(lái)源:網(wǎng)絡(luò) 收藏

在紅外成像技術(shù)的電力設(shè)備狀態(tài)檢測(cè)系統(tǒng)中,基于AT89C的應(yīng)用系統(tǒng),采用美國(guó)雷態(tài)公司的型號(hào)為3iLRL3的非接觸式紅外測(cè)溫儀.該測(cè)溫儀采用的是RS232C標(biāo)準(zhǔn)接口,該接口在很多通信設(shè)備中通用,目前與PC機(jī)的直接也是RS 232C接口。盡管RS232C性能指標(biāo)并非很好,但還是有廣泛的市場(chǎng)支持。技術(shù)在測(cè)控系統(tǒng)中占有很重要的地位,只用三根線(xiàn).就可以方便的在2個(gè)數(shù)字設(shè)備之間進(jìn)行信息的交換,實(shí)現(xiàn)全雙工的傳送數(shù)據(jù),硬件成本低.而且通用性好。

2 串行通信的硬件設(shè)計(jì)

在所開(kāi)發(fā)的系統(tǒng)中.紅外測(cè)溫儀將檢測(cè)電力沒(méi)備的工作和環(huán)境溫度,通過(guò)RS 232C串口傳給單片機(jī),同時(shí)由單片機(jī)控制檢測(cè)裝置的在線(xiàn)工作組態(tài),紅外檢測(cè)裝置的工作組態(tài)的制訂和選擇是由上位PC機(jī)來(lái)完成的,這樣,以單片機(jī)為核心組成的控制電路是數(shù)據(jù)的中轉(zhuǎn)站,上位PC機(jī)下傳紅外測(cè)溫儀的在線(xiàn)工作組態(tài).上傳紅外測(cè)溫儀的檢測(cè)的電力設(shè)備的在線(xiàn)工作溫度.以診斷電力設(shè)備的工作狀態(tài)。在這里單片機(jī)與PC機(jī)的串行通信接口還是RS 232C的標(biāo)準(zhǔn)通信。AT89C僅有一個(gè)串口,這就要解決另一個(gè)串口外擴(kuò)問(wèn)題,系統(tǒng)利用的通用串行通信接口芯片8251A來(lái)擴(kuò)展。該系統(tǒng)的串行通信的硬件電路如圖1所示。

RS-232是EIA(Electronics Industries Association)電平.信號(hào)電平采用負(fù)邏輯,邏輯"1"=一12V,邏輯"0"=+12 V。這與單片機(jī)的TTL信號(hào)電平不兼容,所以RS232C與89C的串口RXD(串行接收口)和TXD(串行發(fā)送口)不能直接連接,需要跨接一個(gè)轉(zhuǎn)換器在RS232C與TTL電路之間進(jìn)行電平轉(zhuǎn)換。市場(chǎng)上電平轉(zhuǎn)換的芯片很多,如早期廣泛使用MCl488和MCl489,MC1488是接收TTL電平.輸出RS 232C電平.MC1489是接收RS 232C電平,輸出TTL電平,該電平轉(zhuǎn)換接口的不便之處是需要±12 V工作電壓,并且功耗較大.不適用于低功耗的系統(tǒng)。

所以系統(tǒng)利用了MAXIM公司生產(chǎn)的MAX232實(shí)現(xiàn)2種電平之間的轉(zhuǎn)換.其主要優(yōu)點(diǎn)有:芯片內(nèi)部有一個(gè)電壓轉(zhuǎn)換器,可以把輸入的+5 V工作電壓轉(zhuǎn)換為RS 232C接口所需的±l 2 V電壓;同時(shí)可以實(shí)現(xiàn)2路2種電平的雙向轉(zhuǎn)換.在該系統(tǒng)中可代替2片MCl488和2片MCl489,外接1個(gè)5 V的電源,而不需像MCl488和MCl489那樣外接±12 V電源,所以電路簡(jiǎn)單,提高性能。

在系統(tǒng)中,紅外測(cè)溫儀與PC機(jī)2個(gè)串行口,而89C51只有1個(gè)串口,利用可編程通用串行接口芯片8251A實(shí)現(xiàn)與上位Pc機(jī)通信,由于8251A串口芯片的片選端CS接到74LS138譯碼器的Y2.因此8251A的口地址為OA000H,RXCLK和TXCLK接收和發(fā)送時(shí)鐘都連接51的T1口,利用T1作為波特率發(fā)生器[1]。

3 軟件設(shè)計(jì)

紅外測(cè)溫儀的串口通過(guò)MAX232直接與89C15連接,所以紅外掃描傳感頭按給定的掃描策略?huà)呙桦娏υO(shè)備,讀入溫度掃描信號(hào),做最大值、最小值、平均值及異常剔除處理,單片機(jī)記錄掃描時(shí)間和溫度值,等待PC機(jī)命令.向PC機(jī)發(fā)送數(shù)據(jù),發(fā)送數(shù)據(jù)流程如圖2所示。紅外傳感器通過(guò)Pc機(jī)下傳的在線(xiàn)工作組態(tài)控制檢測(cè)電力設(shè)備的狀態(tài),其接收數(shù)據(jù)的流程如圖3所示。單片機(jī)與PC機(jī)之間的串行通信通過(guò)825lA,所以在通信程序中首先對(duì)825lA進(jìn)行初始化編程,設(shè)置串口通信方式,確定通信協(xié)議。這些是通信程序設(shè)計(jì)的關(guān)鍵點(diǎn)。


(1)串口的工作方式設(shè)置

通過(guò)對(duì)單片機(jī)的串口控制寄存器(SCON)的設(shè)置來(lái)完成,由于采用一幀11位的數(shù)據(jù)格式,所以89C51的串口的工作方式只能設(shè)置成方式2和方式3,數(shù)據(jù)傳輸?shù)牟ㄌ芈视卸〞r(shí)器控制,本系統(tǒng)采用方式3,單片機(jī)的串行接收的l幀數(shù)據(jù)中,奇偶校驗(yàn)位由SCON的TB8和RB8(第9位數(shù)據(jù))來(lái)完成校驗(yàn)功能。

(2)串口波特率的設(shè)定


通過(guò)此公式的計(jì)算可以進(jìn)一步驗(yàn)證在設(shè)計(jì)系統(tǒng)選用的晶振的頻率為11.0592 MHz時(shí)計(jì)算出來(lái)的T1初值沒(méi)有誤差。

(3)握手信號(hào)的規(guī)定

請(qǐng)求信號(hào)定為FFH、應(yīng)答信號(hào)定為FEH、錯(cuò)誤信號(hào)定為FDH、結(jié)束信號(hào)定為FCH。

(4)數(shù)據(jù)傳送方式

利用RS 232C的2根傳輸線(xiàn)實(shí)現(xiàn)全雙工的發(fā)送和接收數(shù)據(jù)。

(5)通信方式

異步通信方式,以字為單位傳送數(shù)據(jù),由于發(fā)送與接收雙方使用各自的時(shí)鐘,所以在異步通信中嚴(yán)格規(guī)定數(shù)據(jù)幀的格式。

(6)數(shù)據(jù)幀的格式

一幀數(shù)據(jù)為11位,包括起始位、數(shù)據(jù)位、奇偶檢驗(yàn)位、停止位,數(shù)據(jù)格式如下[2]:

所以8251A初始化方式控制字為7DH。

PC機(jī)采用Visual basic編程,VB支持面向?qū)ο蟮某绦蛟O(shè)計(jì),具有結(jié)構(gòu)化的事件驅(qū)動(dòng)編程模式并可以使用無(wú)限擴(kuò)增的控件,而且可以十分簡(jiǎn)便地做出良好的人機(jī)界面。在標(biāo)準(zhǔn)的串口通信方面,VB提供了具有強(qiáng)大的通信控件MSCOMM,文件名為MSCOMM.VBX。該控件可設(shè)置串行 通信的數(shù)據(jù)發(fā)送和接收,對(duì)串口狀態(tài)及串行通信的信息格式和協(xié)議進(jìn)行設(shè)置。在發(fā)送或接收數(shù)據(jù)的過(guò)程中觸發(fā)onComm事件,通過(guò)編程訪(fǎng)問(wèn)CommEvent屬性了解通信事件的類(lèi)型,分別各自的處理。VB串行初始化通信軟件如下[3]:

4 結(jié) 語(yǔ)

串行通信技術(shù)目前在很多測(cè)控系統(tǒng)中廣泛被使用,而且遠(yuǎn)距離的通信使用的更為突出,本系統(tǒng)的RS 232C只是用于近距離的通信,在改進(jìn)的系統(tǒng)中使用RS 485可以擴(kuò)大傳輸距離,并是系統(tǒng)穩(wěn)定性增強(qiáng)。


關(guān)鍵詞: 51單片機(jī) 串行通信

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉