摘要:介紹了C8051F020及MXA2500GL的性能特點,并給出了振動信號分布式檢測的架構(gòu)及實現(xiàn)。該檢測方法以PC作為上位機,通過RS-485串行通訊,實現(xiàn)上位機與振動信號分布式檢測系統(tǒng)的控制核心—C8051F020單片機之間的數(shù)據(jù)傳輸,并可以將檢測結(jié)果在上位機上顯示輸出。
關(guān)鍵詞:C8051F020單片機;MXA2500GL傳感器;振動;分布式檢測
引言
由于加速度傳感器及電荷放大器的連接線纜的距離限制,采用集中的數(shù)據(jù)采集和處理系統(tǒng)在空間距離較遠的場合很難實現(xiàn),其可靠性和抗干擾問題很難解決。常采用分布式檢測方法:即設(shè)置多個數(shù)據(jù)采集站點,每個站點采用一套單獨的數(shù)據(jù)采集和處理系統(tǒng),通過網(wǎng)絡(luò)通信將各站點相互連結(jié)起來,然后由一臺系統(tǒng)機進行集中數(shù)據(jù)處理,提取相關(guān)特征信息。
C8051F020單片機性能特點
CYGNAL的C8051F020是集成模擬、數(shù)字信號的混合信號系統(tǒng)級SOC(System On Chip)單片機,與目前常用的51系列單片機指令集完全兼容。采用100腳TQFP封裝,體積小,運算速度快。它采用CYGNAL公司的專利CIP-5l微處理器內(nèi)核。CIP-5l在提升805l速度上采取了新的途徑,即設(shè)法在保持CISC結(jié)構(gòu)及指令系統(tǒng)不變的情況下,對指令運行實行流水作業(yè)。在這種模式中,廢除了機器周期的概念,指令以時鐘周期為運行單位。平均每個時鐘可以執(zhí)行完l條單周期指令,從而大大提高了指令運行速度。
與805l相比,C8051F020在相同時鐘下單周期指令運行速度為原來的12倍,整個指令集平均運行速度為原來805l的9.5倍,使CYGNAL單片機系列進入了8位高速單片機行列。同時,C805lF020單片機延續(xù)了C805lF系列特有的優(yōu)先權(quán)數(shù)字交叉開關(guān)配置技術(shù)。這項技術(shù)的核心就是以硬件方式為內(nèi)部的數(shù)字資源配置端口I/O引腳。與標(biāo)準(zhǔn)復(fù)用數(shù)字I/O不同,這種結(jié)構(gòu)可支持更多的功能組合。PCA、比較器、定時器等按優(yōu)先級別分配到所選擇端口上。使用者也可以只為所用到的數(shù)字資源分配I/O引腳。任何未配置使用的端口I/O被組合在一起,作為GPIO。
MXA2500GL加速度傳感器的性能特點
MXA2500GL是MEMSIC公司專利技術(shù)生產(chǎn)的雙軸式絕對模擬輸出加速度傳感器。它根據(jù)熱對流原理在兩個軸線都可以進行動態(tài)加速度(例如振動)和靜態(tài)加速度(例如重力加速度)的測量,因此廣泛應(yīng)用于汽車穩(wěn)定性控制、安全性控制、接近角控制、血壓監(jiān)視器、電子羅盤傾斜校正、數(shù)碼相機、電梯等領(lǐng)域。與普通壓電式加速度傳感器不同的是,MXA2500GL實際是按照標(biāo)準(zhǔn)CMOS工藝制造的單片集成電路,它的輸出是0.1~4.9V(5V電源的情況)的電壓信號,無需電荷放大器就可以直接與A/D卡相連,因此會使整個測試系統(tǒng)不僅結(jié)構(gòu)緊湊,而且抗干擾性非常強。
基本工作原理是:在硅片中心的空腔中懸掛一個氣體熱源,同時在熱源的4個對角(即2個軸線方向)處,均勻放置鋁/多晶硅溫差電堆(熱電偶)。當(dāng)加速度為零時,熱源的溫度梯度是對稱的,所以4個溫差電堆的溫度相同,因此這2個軸線方向輸出相同的電壓。而任何方向的加速度都會擾亂這種平衡的溫度形式,使熱源的溫度梯度不對稱。根據(jù)熱傳導(dǎo)的自由對流原理,4個溫差電堆的溫度及其輸出信號—電壓都是不同的。但是這些電壓信號與加速度是成比例變化的。這樣通過測量電壓就可以確定加速度的值。在傳感器上有兩個相同加速度信號通道,一個測量X方向,另一個測量Y方向。圖1給出了它的基本結(jié)構(gòu)。
圖1 MXA2500GL加速度傳感器的結(jié)構(gòu)圖
分布式檢測系統(tǒng)的硬件架構(gòu)
系統(tǒng)以C8051F020單片機為從機,PC為主機。由于單片機體積小、功能強、價格低廉,因此性價比非常高。目前主流的PC有2個標(biāo)準(zhǔn)的RS-232串行口,采用的是EIA電平,而C8051F020單片機的TX引腳(發(fā)送數(shù)據(jù))、RX引腳(接收數(shù)據(jù))使用的是TTL電平,兩者之間進行可靠通信必須要用電平轉(zhuǎn)換芯片,系統(tǒng)采用MAX232/MAX485芯片。為了實現(xiàn)資源共享,任務(wù)分擔(dān)的目標(biāo),在分布式計算機系統(tǒng)中關(guān)鍵就是確保主機和各從機之間數(shù)據(jù)通信的準(zhǔn)確可靠。
由于PC機本身并不具備多機通信功能,所以目前普遍采用的通信方式有兩種:一種是利用“橋梁”硬件—多機通信卡。通信卡一般有兩種形式,應(yīng)用最廣的是以51單片機為核心,結(jié)合8255、6116、2716等芯片構(gòu)成的通信卡。該卡可以插在PC的擴展槽中,各從機與通信卡中單片機進行串行通信,而PC通過8255芯片與卡上的單片機進行并行通信。另外一種通信卡僅僅由單片機構(gòu)成(也就是犧牲一個單片機做通信中轉(zhuǎn)),從機與通信卡及PC與通信卡之間都是串行通信;另一種方式是在PC的串口上軟件模擬51系列單片機串口可編程第9位數(shù)據(jù)功能實現(xiàn)多機通信,系統(tǒng)采用的是后一種方式。另外由于遠距離傳輸,系統(tǒng)中使用了MAX485芯片,同時還使用了光電隔離來提高系統(tǒng)的抗干擾能力。圖2給出了整體硬件架構(gòu)。
圖2 分布式檢測系統(tǒng)的硬件架構(gòu)
多機通信協(xié)議
C8051F020單片機具有適于多機通信的特殊功能,即方式2(3)。在這2個方式里,接收的第9位進入RB8,然后為停止位。串行口可程控為:當(dāng)接收到停止位,只有當(dāng)RB8=1時才產(chǎn)生串行口中斷。這個特性可由置位SCON中的SM2控制。多機通信中使用這種特性的方法是:當(dāng)主機要發(fā)送一個數(shù)據(jù)塊給幾個從機之一時,它先發(fā)送一個目標(biāo)從機的地址字節(jié),地址字節(jié)第9位為1而數(shù)據(jù)字節(jié)第9位為0。當(dāng)SM2=1時,數(shù)據(jù)字節(jié)不會中斷任何從機,然而,地址字節(jié)會中斷所有從機,這樣每一個從機可檢查接收到的地址,看是否為尋址自己。被尋址的從機將SM2位清0,準(zhǔn)備接收傳送過來的數(shù)據(jù)字節(jié),沒被尋址的從機保持SM2為置位狀態(tài),繼續(xù)處理其它工作。C8051F020單片機方式3下的信息楨格式見圖3。
圖3 C8051F020單片機在方式3下的信息楨格式
PC機的異步串行通信口是采用通用異步接收發(fā)送器(簡稱UART)為核心構(gòu)成的。UART的產(chǎn)品型號很多,大多采用Ins8250芯片。對UART的編程實際上是對其內(nèi)部寄存器的操作。UART內(nèi)部寄存器共有10個。編程時首先要確定串行通信的數(shù)據(jù)格式,這是通過將選定的數(shù)據(jù)格式參數(shù)寫入到線路控制寄存器LCR來完成的,接下來需要將波特率因子寫入到波特率因子寄存器來確定雙方傳輸波特率,再通過讀線路狀態(tài)寄存器LSR來判斷芯片是否就緒或有錯等。通信線路控制寄存器LCR的格式如圖4所示。
圖4 通信線路控制寄存器LCR
通過將參數(shù)字節(jié)寫入到線路控制寄存器,可以將UART編程為這樣的串行通信數(shù)據(jù)格式:1位起始位,8位數(shù)據(jù)位,1位奇偶校驗位,1位停止位,1幀共11位。既然能夠在PC機上實現(xiàn)1幀11位的數(shù)據(jù)格式,并且改變線路控制寄存器的D5、D4、D3位的值能將奇偶位設(shè)定為“恒1”或“恒0”,則若在發(fā)送地址幀時將奇偶位設(shè)定為“恒1”,在發(fā)送數(shù)據(jù)位時將奇偶位設(shè)定為“恒0”,便可以在PC機上模擬51系列單片機的多機通信持點,從而直接利用這種特點實現(xiàn)它們之間的主從分布式多機通信。
主機和從機遵循主從原則,主機用呼叫方式選擇從機,數(shù)據(jù)在主機和從機之間雙向傳遞,各從機之間的相互通信需通過主機作為中介。主從機之間還應(yīng)傳送一些供它們識別的命令和狀態(tài)字,如以00H表示主機發(fā)送從機接收命令,以01H表示從機發(fā)送主機接收命令等。
PC主機通信程序的實現(xiàn)方法
對PC機UART的編程是主機通信程序的核心。一般可以通過兩種方式實現(xiàn)對UART的操作。一種是直接訪問底層地址實現(xiàn)對LCR、LSR、波特率因子寄存器的操作,這種方法只適用于Windows9X.在WindowsNT環(huán)境下系統(tǒng)禁止用戶程序直接訪問硬件和物理地址,因此該方法不可取。具體過程是通過調(diào)用標(biāo)準(zhǔn)通信函數(shù)inp()、outp()實現(xiàn)的。另一種方式是通過通信控件或WindowsAPI函數(shù)間接對LCR、LSR、波特率因子寄存器進行相關(guān)操作。因此本系統(tǒng)也使用MSComm控件,而WindowsAPI函數(shù)更適合在多現(xiàn)程領(lǐng)域應(yīng)用。
結(jié)束語
實踐證明基于C8051F020單片機與MXA2500GL傳感器的振動信號分布式檢測系統(tǒng)性能可靠,大大的節(jié)約了成本,因此該系統(tǒng)在汽車整車及零部件的測試與診斷過程極具推廣價值。