基于51單片機應用系統的串行通信設計
在紅外成像技術(shù)的電力設備狀態(tài)檢測系統中,基于A(yíng)T89C51單片機的應用系統,采用美國雷態(tài)公司的型號為3iLRL3的非接觸式紅外測溫儀.該測溫儀采用的是RS232C串行通信標準接口,該接口在很多通信設備中通用,目前與PC機的直接串行通信也是RS 232C接口。盡管RS232C性能指標并非很好,但還是有廣泛的市場(chǎng)支持。串行通信技術(shù)在測控系統中占有很重要的地位,只用三根線(xiàn).就可以方便的在2個(gè)數字設備之間進(jìn)行信息的交換,實(shí)現全雙工的傳送數據,硬件成本低.而且通用性好。
2 串行通信的硬件設計
在所開(kāi)發(fā)的系統中.紅外測溫儀將檢測電力沒(méi)備的工作和環(huán)境溫度,通過(guò)RS 232C串口傳給單片機,同時(shí)由單片機控制檢測裝置的在線(xiàn)工作組態(tài),紅外檢測裝置的工作組態(tài)的制訂和選擇是由上位PC機來(lái)完成的,這樣,以單片機為核心組成的控制電路是數據的中轉站,上位PC機下傳紅外測溫儀的在線(xiàn)工作組態(tài).上傳紅外測溫儀的檢測的電力設備的在線(xiàn)工作溫度.以診斷電力設備的工作狀態(tài)。在這里單片機與PC機的串行通信接口還是RS 232C的標準通信。AT89C51單片機僅有一個(gè)串口,這就要解決另一個(gè)串口外擴問(wèn)題,系統利用的通用串行通信接口芯片8251A來(lái)擴展。該系統的串行通信的硬件電路如圖1所示。
RS-232是EIA(Electronics Industries Association)電平.信號電平采用負邏輯,邏輯"1"=一12V,邏輯"0"=+12 V。這與單片機的TTL信號電平不兼容,所以RS232C與89C51單片機的串口RXD(串行接收口)和TXD(串行發(fā)送口)不能直接連接,需要跨接一個(gè)轉換器在RS232C與TTL電路之間進(jìn)行電平轉換。市場(chǎng)上電平轉換的芯片很多,如早期廣泛使用MCl488和MCl489,MC1488是接收TTL電平.輸出RS 232C電平.MC1489是接收RS 232C電平,輸出TTL電平,該電平轉換接口的不便之處是需要±12 V工作電壓,并且功耗較大.不適用于低功耗的系統。
所以系統利用了MAXIM公司生產(chǎn)的MAX232實(shí)現2種電平之間的轉換.其主要優(yōu)點(diǎn)有:芯片內部有一個(gè)電壓轉換器,可以把輸入的+5 V工作電壓轉換為RS 232C接口所需的±l 2 V電壓;同時(shí)可以實(shí)現2路2種電平的雙向轉換.在該系統中可代替2片MCl488和2片MCl489,外接1個(gè)5 V的電源,而不需像MCl488和MCl489那樣外接±12 V電源,所以電路簡(jiǎn)單,提高性能。
在系統中,紅外測溫儀與PC機2個(gè)串行口,而89C51只有1個(gè)串口,利用可編程通用串行接口芯片8251A實(shí)現與上位Pc機通信,由于8251A串口芯片的片選端CS接到74LS138譯碼器的Y2.因此8251A的口地址為OA000H,RXCLK和TXCLK接收和發(fā)送時(shí)鐘都連接51的T1口,利用T1作為波特率發(fā)生器[1]。
3 軟件設計
紅外測溫儀的串口通過(guò)MAX232直接與89C15連接,所以紅外掃描傳感頭按給定的掃描策略?huà)呙桦娏υO備,讀入溫度掃描信號,做最大值、最小值、平均值及異常剔除處理,單片機記錄掃描時(shí)間和溫度值,等待PC機命令.向PC機發(fā)送數據,發(fā)送數據流程如圖2所示。紅外傳感器通過(guò)Pc機下傳的在線(xiàn)工作組態(tài)控制檢測電力設備的狀態(tài),其接收數據的流程如圖3所示。單片機與PC機之間的串行通信通過(guò)825lA,所以在通信程序中首先對825lA進(jìn)行初始化編程,設置串口通信方式,確定通信協(xié)議。這些是通信程序設計的關(guān)鍵點(diǎn)。
(1)串口的工作方式設置
通過(guò)對單片機的串口控制寄存器(SCON)的設置來(lái)完成,由于采用一幀11位的數據格式,所以89C51的串口的工作方式只能設置成方式2和方式3,數據傳輸的波特率有定時(shí)器控制,本系統采用方式3,單片機的串行接收的l幀數據中,奇偶校驗位由SCON的TB8和RB8(第9位數據)來(lái)完成校驗功能。
(2)串口波特率的設定

通過(guò)此公式的計算可以進(jìn)一步驗證在設計系統選用的晶振的頻率為11.0592 MHz時(shí)計算出來(lái)的T1初值沒(méi)有誤差。
(3)握手信號的規定
請求信號定為FFH、應答信號定為FEH、錯誤信號定為FDH、結束信號定為FCH。
(4)數據傳送方式
利用RS 232C的2根傳輸線(xiàn)實(shí)現全雙工的發(fā)送和接收數據。
(5)通信方式
異步通信方式,以字為單位傳送數據,由于發(fā)送與接收雙方使用各自的時(shí)鐘,所以在異步通信中嚴格規定數據幀的格式。
(6)數據幀的格式
一幀數據為11位,包括起始位、數據位、奇偶檢驗位、停止位,數據格式如下[2]:
所以8251A初始化方式控制字為7DH。

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