基于C8051F020單片機(jī)的實(shí)時(shí)測(cè)控裝置設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為了實(shí)現(xiàn)某型電子裝備研制中對(duì)于時(shí)序控制和多路數(shù)據(jù)采集的實(shí)時(shí)性要求,設(shè)計(jì)了一種基于C8051F020單片機(jī)的實(shí)時(shí)測(cè)控裝置。采用多單片機(jī)系統(tǒng)實(shí)現(xiàn)了多路模數(shù)混合信號(hào)的實(shí)時(shí)采集,完成復(fù)雜的時(shí)序控制,準(zhǔn)確地輸出各種控制信號(hào)。將采集的數(shù)據(jù)進(jìn)行綜合分析計(jì)算,利用硬件邏輯判決電路對(duì)單片機(jī)的計(jì)算結(jié)果和傳感器的參考信號(hào)進(jìn)行優(yōu)先級(jí)判斷,最終輸出系統(tǒng)所需的觸發(fā)信號(hào)。該裝置采用多個(gè)單片機(jī)和功能模塊,構(gòu)建了多數(shù)入多輸出的數(shù)據(jù)采集和控制系統(tǒng),利用RS 485協(xié)議實(shí)現(xiàn)多機(jī)串行通信,完成了系統(tǒng)預(yù)定功能。
關(guān)鍵詞:C8051F020;測(cè)控裝置;數(shù)據(jù)采集;時(shí)序控制
0 引言
C8051Fxxx單片機(jī)是美國(guó)Silabs公司推出的完全集成的混合信號(hào)系統(tǒng)級(jí)芯片,具有與8051指令集完全兼容的CIP-51內(nèi)核。在項(xiàng)目研制中采用C8051F020單片機(jī),對(duì)于熟悉掌握51單片機(jī)的技術(shù)人員來(lái)說(shuō),在硬件設(shè)計(jì)及軟件編程上大大提高了研制效率和裝備可維護(hù)性。測(cè)控裝置是某型電子裝備的實(shí)時(shí)控制裝置,是整個(gè)系統(tǒng)最重要的組成部分之一,是系統(tǒng)運(yùn)行過(guò)程中的指揮控制中心。該裝置通過(guò)構(gòu)建多單片機(jī)系統(tǒng),實(shí)現(xiàn)了復(fù)雜時(shí)序的實(shí)時(shí)控制以及多路數(shù)據(jù)采集,可以提供系統(tǒng)正常工作所需的多路輸出控制信號(hào);通過(guò)硬件設(shè)計(jì)和軟件編程實(shí)現(xiàn)了單片機(jī)與單片機(jī)、單片機(jī)與上位機(jī)之間的實(shí)時(shí)通信,各子系統(tǒng)之間的效據(jù)交換和復(fù)雜邏輯關(guān)系的處理,系統(tǒng)在規(guī)定時(shí)間可靠輸出多路控制信號(hào)等功能。
1 測(cè)控裝置的硬件設(shè)計(jì)
1.1 總體設(shè)計(jì)
測(cè)控裝置主要完成裝備運(yùn)行過(guò)程中的參數(shù)設(shè)置、時(shí)序控制、數(shù)據(jù)采集、輸出控制、串口通信等任務(wù),其硬件設(shè)計(jì)采用了“核心模塊+數(shù)據(jù)采集模塊+輸出控制模塊+數(shù)字邏輯模塊”的模塊化設(shè)計(jì)思想。其中核心模塊包含單片機(jī)系統(tǒng)的基本功能,其他三個(gè)模塊分別完成系統(tǒng)特定功能。這種設(shè)計(jì)思想既簡(jiǎn)化了系統(tǒng)硬件設(shè)計(jì),又縮短了系統(tǒng)研制周期。測(cè)控裝置的總體設(shè)計(jì)框圖如圖1所示。
(1)核心模塊
核心模塊由Cygnal單片機(jī)(C8051F020)、UT62L1024SRAM、SPI串行方式8 Mb的FLASH存儲(chǔ)器AT45DB081、日歷時(shí)鐘S-3530A、10M以太網(wǎng)芯片8019等組成。全部芯片和電路組合在42.5 mmx53.8 mm的PCB板上,由2 mm腳距的40P雙排插針與數(shù)據(jù)采集模塊相連接,核心模塊在使用時(shí)相當(dāng)于一個(gè)“大芯片”。C8051F020單片機(jī)實(shí)時(shí)采集各種數(shù)據(jù),根據(jù)預(yù)先設(shè)定在單片機(jī)中的參數(shù),對(duì)接收數(shù)據(jù)進(jìn)行綜合處理和分析計(jì)算,輸出滿足要求的各種控制信號(hào)。
(2)數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊上設(shè)計(jì)有腳距2 mm的40P雙排插孔,可以很方便地實(shí)現(xiàn)核心模塊的轉(zhuǎn)接。每個(gè)模塊還設(shè)計(jì)有3個(gè)8位數(shù)字I/O端口(P1,P2,P3)和一個(gè)8通道模擬輸入端口(AIN),另外還有RS 485通信端口和電源模塊。
通過(guò)這些端口單片機(jī)可以很方便地對(duì)外部傳感器輸入的信號(hào)進(jìn)行實(shí)時(shí)采集,并通過(guò)RS 485通信與系統(tǒng)其他組件實(shí)現(xiàn)數(shù)據(jù)交換。
(3)輸出控制模塊
測(cè)控裝置工作過(guò)程中根據(jù)時(shí)序?qū)ν獠拷M件進(jìn)行供電和控制,需要3 V,5 V,12 V和27 V等多種工作電壓,以及多路輸出控制信號(hào),為此設(shè)計(jì)了輸出控制模塊,通過(guò)單片機(jī)的可編程數(shù)字I/O端口對(duì)相關(guān)繼電器進(jìn)行實(shí)時(shí)控制,從而實(shí)現(xiàn)多路電壓和控制信號(hào)的穩(wěn)定輸出。
(4)數(shù)字邏輯模塊
數(shù)字邏輯模塊將單片機(jī)輸出的部分?jǐn)?shù)字信號(hào)進(jìn)行轉(zhuǎn)換,提供給需要的外部組件,同時(shí)也可以接收其他單片機(jī)和外部組件的數(shù)字信號(hào),進(jìn)行硬件邏輯判決,從而實(shí)現(xiàn)在預(yù)定時(shí)機(jī)可靠地輸出系統(tǒng)觸發(fā)信號(hào),最終完成觸發(fā)外部執(zhí)行裝置的功能。
1.2 傳感器數(shù)據(jù)采集
傳感器是能感受規(guī)定的被測(cè)量并轉(zhuǎn)換成可用輸出信號(hào)的器件,本系統(tǒng)使用的傳感器作為某型電子裝備的重要組成部分,根據(jù)各自的功能“感知”外界環(huán)境變化,完成將各種物理量轉(zhuǎn)化為單片機(jī)可以處理的模擬或數(shù)字信號(hào),并由單片機(jī)對(duì)這些信號(hào)進(jìn)行采集和處理。
本系統(tǒng)使用的傳感器主要分為兩大類,一類是無(wú)線電傳感器,用來(lái)測(cè)量系統(tǒng)距目標(biāo)的距離;另一類是慣性傳感器,用來(lái)監(jiān)測(cè)系統(tǒng)運(yùn)行過(guò)程中的實(shí)時(shí)加速度值。其中慣性傳感器既有高精度大量程的電子式傳感器,又有穩(wěn)定可靠的機(jī)械式傳感器。
對(duì)于傳感器輸出的模擬信號(hào),C8051F020單片機(jī)擁有專用的模擬輸入引腳(AIN),通過(guò)12位ADC對(duì)輸入的模擬信號(hào)進(jìn)行采集轉(zhuǎn)換,并利用ADC轉(zhuǎn)換結(jié)束引起中斷響應(yīng),將轉(zhuǎn)換得到的數(shù)據(jù)進(jìn)行分析處理。而對(duì)于傳感器輸出的數(shù)字信號(hào),經(jīng)電平轉(zhuǎn)換后即可由數(shù)字I/O端口(P1,P2,P3)進(jìn)行采集,單片機(jī)根據(jù)采集到的信號(hào)分析判斷系統(tǒng)當(dāng)前狀態(tài),為適時(shí)輸出控制信號(hào)和系統(tǒng)觸發(fā)信號(hào)提供依據(jù)。
2 測(cè)控裝置的軟件設(shè)計(jì)
單片機(jī)采用C語(yǔ)言編程,相對(duì)于匯編語(yǔ)言來(lái)說(shuō),程序的可讀性大大提高,采用模塊化設(shè)計(jì)思想也為系統(tǒng)調(diào)試和維護(hù)帶來(lái)極大的方便。
測(cè)控裝置軟件采用采用模塊化設(shè)計(jì),主要包括數(shù)據(jù)采集模塊、串口通信模塊,時(shí)序控制模塊和信號(hào)處理模塊。數(shù)據(jù)采集模塊又包含ADC數(shù)據(jù)轉(zhuǎn)換和數(shù)字信號(hào)采集兩個(gè)子模塊,主要是通過(guò)單片機(jī)的中斷系統(tǒng)實(shí)時(shí)采集外部模擬和數(shù)字信號(hào);串口通信模塊主要實(shí)現(xiàn)單片機(jī)與外部組件間的RS 485通信,接收其他測(cè)控設(shè)備的控制命令,反饋單片機(jī)實(shí)時(shí)采集的各種數(shù)據(jù);時(shí)序控制模塊利用單片機(jī)的定時(shí)器精確計(jì)時(shí),并根據(jù)預(yù)先設(shè)定的參數(shù),按照系統(tǒng)要求的時(shí)序及時(shí)準(zhǔn)確地發(fā)出各種控制信號(hào);信號(hào)處理模塊對(duì)各類傳感器發(fā)出的信號(hào)進(jìn)行中斷處理和分析計(jì)算,最終輸出所需的系統(tǒng)觸發(fā)信號(hào)。
2.1 主程序設(shè)計(jì)
測(cè)控裝置通過(guò)串口接收上位機(jī)的指令,并存儲(chǔ)由上位機(jī)發(fā)送的系統(tǒng)參數(shù),在運(yùn)行過(guò)程中,通過(guò)傳感器A和傳感器B的動(dòng)作情況判斷測(cè)控裝置當(dāng)前所處狀態(tài),根據(jù)不同的狀態(tài)輸出滿足系統(tǒng)需要的各種控制信號(hào)。測(cè)控裝置通過(guò)預(yù)先設(shè)定的參數(shù)和從傳感器C接收的實(shí)時(shí)數(shù)據(jù),進(jìn)行分析處理,并結(jié)合傳感器D發(fā)出的各種標(biāo)志信號(hào)進(jìn)行綜合計(jì)算,從而確定輸出系統(tǒng)觸發(fā)信號(hào)的時(shí)機(jī)。另外傳感器E的信號(hào)具有排他性,可以直接導(dǎo)致測(cè)控裝置輸出系統(tǒng)觸發(fā)信號(hào)。測(cè)控裝置的主程序流程圖如圖2所示。
2.2 串口通信程序設(shè)計(jì)
在以單片機(jī)為核心構(gòu)成的數(shù)據(jù)采集系統(tǒng)中,往往需要實(shí)現(xiàn)PC機(jī)與單_片機(jī)之間的數(shù)據(jù)交換。傳統(tǒng)的基于RS 232協(xié)議的串口通信存在傳輸距離短、速度慢、信號(hào)易受干擾等不足,其應(yīng)用局限性日益突出,而利用RS 485串行通信,可以實(shí)現(xiàn)快速、穩(wěn)定、遠(yuǎn)距離地傳送數(shù)據(jù)。
測(cè)控裝置的串口通信模塊實(shí)現(xiàn)單片機(jī)與其他單片機(jī)以及上位機(jī)之間的信息交互,根據(jù)自定義的通信協(xié)議發(fā)送或接收數(shù)據(jù),并通過(guò)UART中斷服務(wù)程序?qū)邮盏臄?shù)據(jù)進(jìn)行分析判斷。串口通信模塊分為數(shù)據(jù)發(fā)送和數(shù)據(jù)接收兩個(gè)子模塊。數(shù)據(jù)發(fā)送子模塊實(shí)現(xiàn)單片機(jī)對(duì)外傳輸數(shù)據(jù),這些數(shù)據(jù)主要包括單片機(jī)采集的各類傳感器數(shù)據(jù)、主程序執(zhí)行過(guò)程中需要向其他單片機(jī)發(fā)送的指令和單片機(jī)進(jìn)行數(shù)據(jù)處理、綜合計(jì)算產(chǎn)生盼數(shù)據(jù)。數(shù)據(jù)接收子模塊主要負(fù)責(zé)接收來(lái)自其他單片機(jī)和上位機(jī)的指令,接收上位機(jī)發(fā)送的各種參數(shù)。測(cè)控裝置的串口通信程序流程圖如圖3所示。
3 結(jié)語(yǔ)
在實(shí)時(shí)測(cè)控裝置研制中采用了多個(gè)C8051F020單片機(jī),以22.118 4 MHz的晶體振蕩器作為系統(tǒng)時(shí)鐘,整個(gè)系統(tǒng)運(yùn)行速度得到了很大的提高。較硬件均采用模塊化設(shè)計(jì),為設(shè)備調(diào)試和后期維護(hù)提供了便利。通過(guò)單機(jī)調(diào)試和系統(tǒng)聯(lián)調(diào),24路控制信號(hào)輸出準(zhǔn)確無(wú)誤,外部傳感器的48路數(shù)據(jù)采集及時(shí)高效,系統(tǒng)工作性能穩(wěn)定可靠,較好地完成了實(shí)時(shí)數(shù)據(jù)采集、復(fù)雜時(shí)序控制、多機(jī)串行通信等任務(wù),達(dá)到了設(shè)計(jì)要求。