1 引言 C805lF系列單片機(jī)是Cygnal公司完全集成的混合信號系統(tǒng)級器件(SOC),其CIP一51內(nèi)核運(yùn)行速度高達(dá)25 MI/s,除具有標(biāo)準(zhǔn)805l的數(shù)字外設(shè)外,其內(nèi)部還集成有數(shù)據(jù)采集和控制系統(tǒng)中常用的模數(shù)和數(shù)模轉(zhuǎn)換器等元件,豐富的外設(shè)資源及高速指令運(yùn)算能力大大簡化系統(tǒng)設(shè)計。為此,給出了基于C8051F060單片機(jī)的數(shù)據(jù)采集存儲系統(tǒng)設(shè)計方案,可實現(xiàn)外場試驗中彈載振動傳感器輸出的3路振動信號的采集和存儲,并將存儲的數(shù)據(jù)通過串行接口上傳至地面測試臺,最終上傳到上位機(jī),從而實現(xiàn)現(xiàn)場數(shù)據(jù)的回放和分析。 2 系統(tǒng)硬件設(shè)計 圖1給出系統(tǒng)整體框圖,整個系統(tǒng)是由記錄器,地面測試臺,上位機(jī)及配套軟件組成。其中,記錄器包括電源模塊,信號調(diào)理模塊及采編存儲模塊,而電源模塊可向記錄器的各模塊提供所需電源,信號調(diào)理模塊用于濾波、調(diào)幅3路振動信號,采編存儲模塊用于采集、編幀和存儲3路信號。系統(tǒng)存儲選用SAMSUNG的NAND Flash K9K8G08UOM器件,而主控器件選用C8051F060。該主控器件除指令執(zhí)行速度快,I/0端口配置靈活和在線調(diào)試功能外,還具有以下特點:①內(nèi)部集成10位逐次逼近型A/D轉(zhuǎn)換器,最高采樣率可達(dá)200 KS/s,無需外接專用A/D轉(zhuǎn)換器,降低成本,簡化電路設(shè)計;②UARTI為增強(qiáng)型波特率發(fā)生器,最高波特率達(dá)系統(tǒng)時鐘頻率的1/2,可實現(xiàn)系統(tǒng)數(shù)據(jù)上傳。該系統(tǒng)采用14.745 6MHz的晶體振蕩器,最高通信波特率為7.372 8 Mb/s。③豐富的定時器資源,C805lF060內(nèi)部具有5個定時/計數(shù)器,滿足系統(tǒng)要求。④C805lF060內(nèi)部4 K字節(jié)的XRAM可作為數(shù)據(jù)緩存。圖2給出采編存儲模塊的結(jié)構(gòu)框圖,具體電路連接圖如圖3所示。 地面測試臺主要完成外場試驗環(huán)境各項參數(shù)的模擬生成以及在記錄器回收后數(shù)據(jù)上傳,與記錄器的通信采用串口通信方式。上位機(jī)通過USB接口控制地面測試臺完成對記錄器的測試及記錄器回收讀數(shù)后的數(shù)據(jù)分析。從而該系統(tǒng)設(shè)計可滿足:振動傳感器輸出幅值為0~5 V的3路電壓信號;A/D轉(zhuǎn)換器分辨率為10 bit;采集速率每路為5 KS/s,分時采集,存儲容量為1 G字節(jié);實現(xiàn)循環(huán)記錄方式,系統(tǒng)上電后,當(dāng)接收到一組特定串行數(shù)據(jù)后便開始記錄,掉電后停止記錄,其串行數(shù)據(jù)的波特率為921.6 Kb/s。 3 系統(tǒng)軟件設(shè)計 3.1 開啟采集方式 記錄器上電初始化后,在1 s內(nèi)循環(huán)判斷串口0是否接收到一組數(shù)據(jù),如果接收到數(shù)據(jù),就進(jìn)入寫狀態(tài),否則轉(zhuǎn)去判斷讀信號是否有效。如果有效則進(jìn)入讀狀態(tài),將數(shù)據(jù)從Flash中讀出并通過串口l發(fā)送,否則返回再判斷串口0是否接收到數(shù)據(jù),如此循環(huán)。其總體流程如圖4所示。 在寫狀態(tài)時,A/D轉(zhuǎn)換數(shù)據(jù)的拾取通過中斷函數(shù)完成,系統(tǒng)主程序能夠輪流從兩塊RAM中讀取數(shù)據(jù)并順序?qū)懭隖lash中。為了便于上位機(jī)軟件分析,在存儲前需要對A/D轉(zhuǎn)換器轉(zhuǎn)換后的數(shù)據(jù),加入幀標(biāo)志和時間信息。具體實現(xiàn)方法是:先將A/D轉(zhuǎn)換器轉(zhuǎn)換后的數(shù)據(jù)保存到內(nèi)部RAM中,為滿足Flash頁編程的時間,利用雙RAM實現(xiàn)乒乓緩存,將內(nèi)部4 KB的XRAM分為2塊,每塊容量為2 048個字節(jié),每塊寫滿后分別置滿標(biāo)志,當(dāng)CPU讀取該RAM中所有數(shù)據(jù)并寫入Flash后清除該RAM滿標(biāo)志,2塊RAM交替進(jìn)行,保證數(shù)據(jù)的讀寫操作。在采集狀態(tài)下寫Flash的流程圖如圖5所示。 3.2 編幀 為了快速提取數(shù)據(jù),需在數(shù)據(jù)存儲前對其編幀,3路信號總采樣速率為15 KS/s,具體編幀格式如表1所列。 這樣編幀后方便了上位機(jī)軟件分析,可以方便提取所關(guān)心的信息,在軟件繪出振動數(shù)據(jù)波形圖后通過時間軸信息可快速定位到需要查找的區(qū)域。 3.3 內(nèi)部XRAM操作 通過定義數(shù)組實現(xiàn)內(nèi)部XRAM操作,數(shù)組定義方法為:unsigned char xdata s[4096],xdata標(biāo)識符指定s的存儲區(qū)為外部數(shù)據(jù)存儲區(qū),由于該數(shù)組只需4KB空間且系統(tǒng)中未使用外擴(kuò)XRAM,所以必須設(shè)置存儲器模式為只使用內(nèi)部XRAM,即設(shè)置EMIOCF[3:2]為00。 3.4 定時器應(yīng)用 單片機(jī)內(nèi)部5個定時/計數(shù)器在該系統(tǒng)分別用于:TO產(chǎn)生1 s的循環(huán)定時;T1產(chǎn)生UARTl的波特率(7.372 8 Mb/s);T2產(chǎn)生UARTO的波特率(921.6 Kb/s);T3產(chǎn)生A/D轉(zhuǎn)換器2的轉(zhuǎn)換時鐘。T4產(chǎn)生時間基準(zhǔn),用于數(shù)據(jù)編幀。 以下為A/D轉(zhuǎn)換器2的初始化程序代碼: 值得注意的是:由于C8051F060采用分頁機(jī)制,對每個寄存器操作前必須先將SFRPAGE指向相應(yīng)的特殊功能寄存器頁,否則操作無效,而在中斷發(fā)生時SFR頁會自動切換到中斷標(biāo)志位所在頁,使得軟件無需對SFR頁進(jìn)行保護(hù)操作,降低程序消耗。 4 測試試驗 該記錄器在正式上彈前已經(jīng)過兩次炮擊試驗.炮擊試驗情況如表2所示。 兩次炮擊試驗均是考核整個記錄器的外部結(jié)構(gòu)以及內(nèi)部電路板的抗過載能力,試驗后電路板正常無損壞。而外部晶體振蕩器損壞,因此,該系統(tǒng)采用C8051F系列單片機(jī),由于其內(nèi)部集成可編程內(nèi)部晶體振蕩器,在記錄器回收后讀取數(shù)據(jù)時,系統(tǒng)可自動將時鐘切換至內(nèi)部晶體振蕩器模式,這樣避免回收后重新更換晶體振蕩器。 C8051F系列單片機(jī)可靈活配置系統(tǒng)各功能模塊時鐘,例如:系統(tǒng)使用內(nèi)部晶體振蕩器,定時器和PCA等外部晶體振蕩器,可改變內(nèi)部晶體的頻率,也可禁止,只使用外部晶體振蕩器,只要內(nèi)部晶體振蕩器和外部晶體振蕩器配置正確,系統(tǒng)可在任何時刻在兩者之間迅速切換。值得注意的是:晶體振蕩電路對PCB布局和外部噪聲非常敏感,應(yīng)將晶體振蕩器盡可能地靠近XTAL引腳放置,布線應(yīng)盡可能地短并用地平面屏蔽,以防止其他引線引入噪聲或干擾;每個電源引腳處放置0.1μF和1μF的去耦電容,且盡可能地靠近該單片機(jī)放置,而未使用的模擬輸入應(yīng)接地(模擬地)。 5 結(jié)語 該設(shè)計的采編存儲系統(tǒng)具有體積小、成本低、數(shù)據(jù)傳輸速度快等優(yōu)點,經(jīng)實驗證明:該系統(tǒng)工作穩(wěn)定,可以滿足現(xiàn)場采集分析的要求。 |