基于AT89C51單片機(jī)的RS 232串行數(shù)據(jù)截取器設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為了實(shí)現(xiàn)對(duì)RS 232串行通信數(shù)據(jù)的截取,給出了基于AT89C51單片機(jī)的設(shè)計(jì)方案。系統(tǒng)利用GM8123芯片將單片機(jī)的1個(gè)串口擴(kuò)展成為3個(gè)串口,采用MAX232芯片實(shí)現(xiàn)RS 232電平與TTL電平之間的相互轉(zhuǎn)換,單片機(jī)通過(guò)串行口截取通信數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行處理,處理后的數(shù)據(jù)再通過(guò)串行口發(fā)送到上位機(jī)進(jìn)行顯示。該系統(tǒng)具有兩種工作模式,模式1實(shí)現(xiàn)對(duì)通信數(shù)據(jù)的實(shí)時(shí)截取,模式2是采用存儲(chǔ)轉(zhuǎn)發(fā)原理,截取器可以脫離上位機(jī)而工作。
關(guān)鍵詞:數(shù)據(jù)截取器;波特率;AT89C51;GM8123;MAX232
0 引言
目前,我國(guó)的裝備技術(shù)水平和發(fā)達(dá)國(guó)家相比還有一定的差距,對(duì)于國(guó)外引進(jìn)的先進(jìn)設(shè)備,如何才能在沒有任何技術(shù)資料的情況下破解其技術(shù)瓶頸,實(shí)現(xiàn)裝備技術(shù)水平的跨越式發(fā)展是我國(guó)普遍面臨的技術(shù)難題。為此作者認(rèn)為獲取設(shè)備與控制計(jì)算機(jī)之間的通信數(shù)據(jù),分析其通信協(xié)議是解決這個(gè)難題的基礎(chǔ)?;诖?,本文設(shè)計(jì)了數(shù)據(jù)截取器。
很多設(shè)備和其控制計(jì)算機(jī)之間采用的是RS 232標(biāo)準(zhǔn)串行接口進(jìn)行通信,本文設(shè)計(jì)和實(shí)現(xiàn)了RS 232串行通信數(shù)據(jù)截取器,能有效地截取設(shè)備與其控制計(jì)算機(jī)之間的通信數(shù)據(jù)。
1 截取器硬件部分設(shè)計(jì)
1.1 總體框圖及原理
系統(tǒng)原理框圖如圖1所示。
原理分析:具體設(shè)備與其控制計(jì)算機(jī)之間的通信線路通過(guò)電平轉(zhuǎn)換分兩路。一路是直接相連,保證截取器加入后不會(huì)影響它們之間的正常通信。另一路經(jīng)過(guò)擴(kuò)展的串口1和2,同單片機(jī)相連,保證了它們之間的通信數(shù)據(jù)能夠被單片機(jī)捕獲,這些數(shù)據(jù)經(jīng)過(guò)單片機(jī)處理以后通過(guò)另一個(gè)擴(kuò)展串口傳輸?shù)缴衔粰C(jī),實(shí)現(xiàn)對(duì)通信數(shù)據(jù)的截取。
1.2 器件選擇
系統(tǒng)以常用的AT89C51單片機(jī)為處理核心,選取成都國(guó)騰公司生產(chǎn)的GM8123芯片將AT89C51單片機(jī)的1個(gè)全雙工異步串行通信接口擴(kuò)展成為3個(gè)全雙工異步串行通信接口,采用MAX232芯片實(shí)現(xiàn)RS 232電平與TTL電平之間的相互轉(zhuǎn)換。
1.3 硬件電路
系統(tǒng)完整的電路原理圖如圖2所示。系統(tǒng)電路包括三個(gè)部分:?jiǎn)纹瑱C(jī)最小系統(tǒng)、串口擴(kuò)展電路和電平轉(zhuǎn)換電路。
單片機(jī)最小系統(tǒng),包括電源電路、時(shí)鐘電路和復(fù)位電路,S1,S2做波特率控制開關(guān),分別控制P0.0,P0.1的值從00~11,對(duì)應(yīng)波特率為1 200~9 600 b/s。
串口擴(kuò)展電路由GM8123構(gòu)成,其時(shí)鐘電路采用12 MHz的石英晶體振蕩器構(gòu)成內(nèi)部時(shí)鐘方式。GM8123的母串口接收引腳RXD0和發(fā)送引腳TXD0分別同單片機(jī)串口的發(fā)送引腳TXD和接收引腳RXD相連接。GM8123的復(fù)位引腳同單片機(jī)P3.6腳相連接,由P3.6控制GM8123系統(tǒng)復(fù)位,它的模式控制引腳MS同P3.7相連接,由P3.7進(jìn)行模式選擇。GM8123的發(fā)送地址線引腳STADD0,STADD1,接收地址引腳SRADD0,SRADD1依次同單片機(jī)P1口的P1.0~P1.3相連接,由單片機(jī)P1口判斷是哪個(gè)子串口接收數(shù)據(jù)和選取某個(gè)子串口發(fā)送數(shù)據(jù)。
電平轉(zhuǎn)換電路由兩片MAX232芯片完成,實(shí)現(xiàn)J1,J2,J3的RS 232電平與TTL電平之間的相互轉(zhuǎn)換。
2 軟件設(shè)計(jì)
系統(tǒng)軟件有兩種工作模式,模式1的軟件設(shè)計(jì)是實(shí)現(xiàn)截取數(shù)據(jù)的實(shí)時(shí)發(fā)送,截取器工作時(shí)不能脫離上位機(jī)。模式2的軟件設(shè)計(jì)是實(shí)現(xiàn)截取數(shù)據(jù)的存儲(chǔ)轉(zhuǎn)發(fā),截取器可以脫離上位機(jī)工作。
2.1 主程序流程設(shè)計(jì)
模式1和模式2的主程序基本相同,其主要功能有:對(duì)單片機(jī)串行中斷相關(guān)寄存器的配置,對(duì)串口收發(fā)數(shù)據(jù)波特率設(shè)定及相關(guān)定時(shí)器的配置,對(duì)GM8123芯片的復(fù)位操作和工作方式的相關(guān)配置。主程序流程圖如圖3所示。
其中由S1,S2,控制波特率設(shè)置的程序流程圖如圖4所示。
2.2 中斷服務(wù)程序
模式1的中斷服務(wù)程序完成的功能是接收具體設(shè)備(J1)和其控制計(jì)算機(jī)(J2)發(fā)送的數(shù)據(jù),并把數(shù)據(jù)實(shí)時(shí)地發(fā)送到上位計(jì)算機(jī)(J3)上顯示。模式1中斷服務(wù)程序流程圖如圖5所示。
模式2中斷服務(wù)程序主要完成的功能是接收具體設(shè)備(J1)和其控制計(jì)算機(jī)(J2)發(fā)送的數(shù)據(jù),并把接收到的數(shù)據(jù)存儲(chǔ)到單片機(jī)的RAM中,當(dāng)接收到上位機(jī)(J3)的發(fā)送數(shù)據(jù)命令時(shí),向上位計(jì)算機(jī)發(fā)送存儲(chǔ)的數(shù)據(jù)。其流程圖如圖6所示。
3 功能測(cè)試
借助串口調(diào)試助手軟件在不同的波特率下對(duì)截取器進(jìn)行功能測(cè)試,如圖7是在波特率為9 600 b/s,模式2下的測(cè)試結(jié)果。其中COM1,COM2和COM4分別對(duì)應(yīng)具體設(shè)備、控制計(jì)算機(jī)和上位機(jī)。上位機(jī)接收數(shù)據(jù)中“s:”標(biāo)號(hào)后的數(shù)據(jù)是設(shè)備發(fā)送的,“k:”標(biāo)號(hào)后的數(shù)據(jù)是控制計(jì)算機(jī)發(fā)送的,這些數(shù)據(jù)是按照時(shí)間的先后順序被截取器所截取。利用截取器對(duì)某一具體設(shè)備和其控制計(jì)算機(jī)之間的實(shí)際通信數(shù)據(jù)進(jìn)行截取時(shí),就可以通過(guò)分析截取的數(shù)據(jù),找出它們之間通信數(shù)據(jù)的對(duì)應(yīng)關(guān)系,從而分析其通信協(xié)議。
4 結(jié)語(yǔ)
本文討論了RS 232串行數(shù)據(jù)截取器的設(shè)計(jì)方案,并做出了產(chǎn)品,進(jìn)行了實(shí)驗(yàn)。系統(tǒng)穩(wěn)定、可靠,可以有效地截取串行通信數(shù)據(jù)。該系統(tǒng)可以為有相關(guān)需求的人員提供幫助。