基于C8051F060的采集存儲系統(tǒng)的設(shè)計(jì)
在寫狀態(tài)時(shí),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)志和時(shí)間信息。具體實(shí)現(xiàn)方法是:先將A/D轉(zhuǎn)換器轉(zhuǎn)換后的數(shù)據(jù)保存到內(nèi)部RAM中,為滿足Flash頁編程的時(shí)間,利用雙RAM實(shí)現(xiàn)乒乓緩存,將內(nèi)部4 KB的XRAM分為2塊,每塊容量為2 048個(gè)字節(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ù)波形圖后通過時(shí)間軸信息可快速定位到需要查找的區(qū)域。
3.3 內(nèi)部XRAM操作
通過定義數(shù)組實(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 定時(shí)器應(yīng)用
單片機(jī)內(nèi)部5個(gè)定時(shí)/計(jì)數(shù)器在該系統(tǒng)分別用于:TO產(chǎn)生1 s的循環(huán)定時(shí);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)換時(shí)鐘。T4產(chǎn)生時(shí)間基準(zhǔn),用于數(shù)據(jù)編幀。
評論