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