新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于單片機應用系統的串行通信設計

        基于單片機應用系統的串行通信設計

        作者: 時間:2012-07-20 來源:網絡 收藏

        標簽: 紅外成像

        本文引用地址:http://www.104case.com/article/154345.htm

        1 引 言

        在紅外成像技術的電力設備狀態檢測系統中,AT89C51,采用美國雷態公司的型號為3iLRL3的非接觸式紅外測溫儀。該測溫儀采用的是RS232C標準接口,該接口在很多設備中通用,目前與PC機的直接通信也是RS 232C接口。盡管RS232C性能指標并非很好,但還是有廣泛的市場支持。就可以方便的在2個數字設備之間進行信息的交換,實現全雙工的傳送數據,硬件成本低。而且通用性好。

        2 串行通信的硬件

        串行通信是指 使用一條數據線,將數據一位一位地依次傳輸,每一位數據占據一個固定的時間長度。其只需要少數幾條線就可以在系統間交換信息,特別使用于計算機與計算機、計算機與外設之間的遠距離通信。

        在所開發的系統中。紅外測溫儀將檢測電力沒備的工作和環境溫度,通過RS 232C串口傳給,同時由控制檢測裝置的在線工作組態,紅外檢測裝置的工作組態的制訂和選擇是由上位PC機來完成的,這樣,以單片機為核心組成的控制電路是數據的中轉站,上位PC機下傳紅外測溫儀的在線工作組態。在這里單片機與PC機的串行通信接口還是RS 232C的標準通信。AT89C51單片機僅有一個串口,這就要解決另一個串口外擴問題,系統利用的通用串行通信接口芯片8251A來擴展。該系統的串行通信的硬件電路如圖1所示。

        串行通信接口電路圖

        RS-232是EIA(Electronics Industries Association)電平。信號電平采用負邏輯,邏輯1=一12V,邏輯0=+12V。這與單片機的TTL信號電平不兼容,所以RS232C與89C51單片機的串口RXD(串行接收口)和TXD(串行發送口)不能直接連接,需要跨接一個轉換器在RS232C與TTL電路之間進行電平轉換。輸出RS 232C電平。MC1489是接收RS 232C電平,輸出TTL電平,該電平轉換接口的不便之處是需要±12V工作電壓,并且功耗較大。不適用于低功耗的系統。

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

        3 軟件

        AT89C51是一種帶4K字節FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。

        主要特性:

        ·與MCS-51 兼

        128×8位內部RAM

        ·32可編程I/O線

        ·兩個16位定時器/計數器

        ·5個中斷源

        ·可編程串行通道

        ·低功耗的閑置和掉電模式

        ·片內振蕩器和時鐘電路

        紅外測溫儀的串口通過MAX232直接與89C15連接,所以紅外掃描傳感頭按給定的掃描策略掃描電力設備,讀入溫度掃描信號,做最大值、最小值、平均值及異常剔除處理,單片機記錄掃描時間和溫度值,等待PC機命令。向PC機發送數據,發送數據流程如圖2所示。紅外傳感器通過Pc機下傳的在線工作組態控制檢測電力設備的狀態,其接收數據的流程如圖3所示。單片機與PC機之間的串行通信通過825lA,所以在通信程序中首先對825lA進行初始化編程,設置串口通信方式,確定通信協議。這些是通信程序的關鍵點。

        發送數據流程

        單片機向PC機發送數據流程圖

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

        通過對單片機的串口控制寄存器(SCON)的設置來完成,由于采用一幀11位的數據格式,所以89C51的串口的工作方式只能設置成方式2和方式3,數據傳輸的波特率有定時器控制,本系統采用方式3,單片機的串行接收的l幀數據中,奇偶校驗位由SCON的TB8和RB8(第9位數據)來完成校驗功能。

        (2)串口波特率的設定

        通過此公式的計算可以進一步驗證在設計系統選用的晶振的頻率為11.0592MHz時計算出來的T1初值沒有誤差。

        (3)握手信號的規定

        請求信號定為FFH、應答信號定為FEH、錯誤信號定為FDH、結束信號定為FCH。

        (4)數據傳送方式

        利用RS 232C的2根傳輸線實現全雙工的發送和接收數據。

        (5)通信方式

        異步通信方式,以字為單位傳送數據,由于發送與接收雙方使用各自的時鐘,所以在異步通信中嚴格規定數據幀的格式。

        (6)數據幀的格式

        一幀數據為11位,包括起始位、數據位、奇偶檢驗位、停止位,數據格式如下[2]:

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

        PC機采用Visual basic編程,VB支持面向對象的程序設計,具有結構化的事件驅動編程模式并可以使用無限擴增的控件,而且可以十分簡便地做出良好的人機界面。在標準的串口通信方面,在發送或接收數據的過程中觸發onComm事件,通過編程訪問CommEvent屬性了解通信事件的類型,分別各自的處理。VB串行初始化通信軟件如下[3]:


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 准格尔旗| 岫岩| 寿光市| 青州市| 正镶白旗| 阳朔县| 城市| 万州区| 开远市| 塔河县| 乐至县| 志丹县| 崇礼县| 辽源市| 玉环县| 雅江县| 桂阳县| 澄迈县| 资阳市| 灵山县| 泌阳县| 庆云县| 潮安县| 中江县| 浦东新区| 铁力市| 西贡区| 海丰县| 苏尼特右旗| 宜阳县| 合水县| 宜昌市| 沙湾县| 民县| 日喀则市| 奉新县| 余庆县| 香格里拉县| 南乐县| 宝丰县| 孝感市|