1 引言 在實(shí)際的彈道加速度測(cè)試中,需要產(chǎn)生許多波形曲線用來(lái)驗(yàn)證,而能夠產(chǎn)生任意波形的信號(hào)發(fā)生器價(jià)格昂貴,不適合工程實(shí)際的需求.通過(guò)設(shè)計(jì)產(chǎn)生的信號(hào)發(fā)牛裝置,不僅成本低,而且功能強(qiáng)大,可以產(chǎn)生滿足各種需要的信號(hào)。C8051Fxxx系列單片機(jī)是完全集成的混合信號(hào)系統(tǒng)級(jí)芯片,具有與8051兼容的微控制器內(nèi)核,與MCS-51指令集完全兼容。除了具有標(biāo)準(zhǔn)8052的數(shù)字外設(shè)部件之外,片內(nèi)還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其它數(shù)字外設(shè)及功能部件;內(nèi)置FLASH程序存儲(chǔ)器、內(nèi)部RAM,大部分器件內(nèi)部還有位于外部數(shù)據(jù)存儲(chǔ)器窄間的RAM,即XRAM。數(shù)模混合的高度集成使得該單片機(jī)系統(tǒng)IJ以方便實(shí)現(xiàn)數(shù)控及簡(jiǎn)單信號(hào)處理等功能。C8051F121單片機(jī)具有片內(nèi)VDD監(jiān)視器、看門(mén)狗定時(shí)器和時(shí)鐘振蕩器,是真正能獨(dú)立工作的片上系統(tǒng)。使用C8051F121單片機(jī)設(shè)計(jì)任意波形信號(hào)發(fā)牛器,不僅減少了器件,簡(jiǎn)化了電路,節(jié)約了成本,更使得系統(tǒng)穩(wěn)定節(jié)能。方便快捷地輸出多種低頻信號(hào)。 2 系統(tǒng)原理與組成 系統(tǒng)以C8051F121單片機(jī)為核心,通過(guò)串口通信將PC機(jī)中的數(shù)據(jù)傳送到單片機(jī)中,然后單片機(jī)將所接受的數(shù)據(jù)存放到128k的外部存儲(chǔ)器中。系統(tǒng)的控制電路啟動(dòng)D/A轉(zhuǎn)換將外部存儲(chǔ)器中的數(shù)據(jù)轉(zhuǎn)化成模擬信號(hào),生成所需要的波形。波形的幅值、脈寬、頻率、持續(xù)時(shí)問(wèn)等參數(shù)均可以在VB程序下進(jìn)行調(diào)節(jié),可以實(shí)現(xiàn)任意波形的信號(hào)發(fā)生功能。 系統(tǒng)基本組成如圖1所示,應(yīng)用模塊可以根據(jù)工程實(shí)際中的具體要求,實(shí)現(xiàn)不同的目的。本文中應(yīng)用模塊為加速度測(cè)試系統(tǒng),用來(lái)實(shí)現(xiàn)測(cè)試裝置的模擬信號(hào)輸入。 圖1系統(tǒng)組成結(jié)構(gòu)圖 3 系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn) 系統(tǒng)實(shí)現(xiàn)信號(hào)發(fā)生功能設(shè)計(jì)目標(biāo)主要包括以下幾個(gè)方面:串口通信模塊,電源供電模塊,外部擴(kuò)展存儲(chǔ)器模塊,外部晶振以及復(fù)位模塊。下面詳細(xì)介紹一下各單元的硬件電路和實(shí)現(xiàn)的功能。 圖2信號(hào)發(fā)生器硬件結(jié)構(gòu)圖 3.1 電源模塊設(shè)計(jì) 整個(gè)系統(tǒng)采用3.3V供電,考慮到硬件系統(tǒng)對(duì)電源要求有穩(wěn)壓功能,另外也考慮到硬件系統(tǒng)的低功耗等特點(diǎn),電源部分采用AR33將電源的5V電壓轉(zhuǎn)換成系統(tǒng)需要的3.3V;為了減少輸出電源的高頻噪聲,在單片機(jī)、鎖存器,外部擴(kuò)展存儲(chǔ)器以及電源輸出部分分別應(yīng)用了0.01uF和luF,0.1uF和4.7uF的配對(duì)電容,對(duì)電源進(jìn)行濾波。 3.2 外部擴(kuò)展存儲(chǔ)器設(shè)計(jì) C8051Fl21 MCU內(nèi)部有位于外部數(shù)據(jù)存儲(chǔ)器空間的8K字節(jié)片上RAM,但是對(duì)于實(shí)際的彈道速度信號(hào)發(fā)生器而言存儲(chǔ)空間偏小,因而需要擴(kuò)展容量更大的外部存儲(chǔ)器。C8051F121提供用于訪問(wèn)片外存儲(chǔ)器和存儲(chǔ)器映射I/0器件的外部數(shù)據(jù)存儲(chǔ)器接口(EMIF)。設(shè)計(jì)中采用的是IDT公司的IDT71V124SA芯片,3.3V供電,是高速的CMOS靜態(tài)RAM,采用了高性能,高可靠性的CMOS技術(shù)和JEDEC中心電源/接地管腳分布,極大地減少了噪聲,優(yōu)化了系統(tǒng)性能。IDT7IVl24SA芯片提供了128x8存儲(chǔ)容量,很好地滿足了設(shè)計(jì)系統(tǒng)對(duì)數(shù)據(jù)和程序存儲(chǔ)空間的要求。在單片機(jī)和外部存儲(chǔ)器之間應(yīng)用了一個(gè)地址鎖存器74VHC573,用來(lái)鎖存存儲(chǔ)到IDT71V124SA的數(shù)據(jù)。接口部分采用地址和數(shù)據(jù)總線復(fù)用的方式以減少所需要的端口引腳數(shù),這樣配置使得外部存儲(chǔ)器和C805IFl21之間傳輸數(shù)據(jù)時(shí)低位地址保持在鎖存器中,不需要再為數(shù)據(jù)傳輸增加8位端口。 3.3 外部晶振設(shè)計(jì) 對(duì)于實(shí)際的系統(tǒng)而言,C8051F121單片機(jī)的內(nèi)部時(shí)鐘頻率不能滿足要求,因而需要配置較大頻率的外部振蕩器。C8051Fl2x器件包含一個(gè)內(nèi)部振蕩器和一個(gè)外部振蕩器驅(qū)動(dòng)電路,可以驅(qū)動(dòng)外部晶體、陶瓷諧振器、電容或RC網(wǎng)絡(luò)。設(shè)計(jì)中采用外部晶體作為外部振蕩器。晶體振蕩器被使能后,幅值檢測(cè)電路需要一段穩(wěn)定時(shí)間才能達(dá)到正確的偏囂。在使能振蕩器下作和檢XTLVLD位之間至少等待1 ms,以防止過(guò)早將外部振蕩器切換為系統(tǒng)時(shí)鐘。等查詢到XTLVLD=>’1’時(shí),將系統(tǒng)時(shí)鐘切換到外部振蕩器。由于晶體振蕩器電路對(duì)PCB布局非常敏感。在布局中將晶體盡可能地靠近了器件的XTAL引腳。引線地短并用地平面屏蔽,防止從其它引線引入噪聲或干擾。 3.4 DAC設(shè)置 C8051F121器件有兩個(gè)片內(nèi)12位電壓方式數(shù)/模轉(zhuǎn)換器(DAC)。設(shè)計(jì)中使用了DAC1。并基于定時(shí)器溢出更新輸出,這樣在用DAC產(chǎn)生一個(gè)固定采樣頻率的波形時(shí),可以消除中斷延遲不同和指令執(zhí)行時(shí)間不同對(duì)DAC輸出時(shí)序的影響。當(dāng)DACIMD位(DAClCN[4:3])被設(shè)置為‘01’、‘10’或‘ll’時(shí),對(duì)DAC兩個(gè)數(shù)據(jù)寄存器(DAClL和DAClH)的寫(xiě)操作被保持,直到相應(yīng)的定時(shí)器溢出事件(分別為定時(shí)器3、定時(shí)器4或定時(shí)器2)發(fā)生時(shí)DACOH:DACOL的內(nèi)容才被復(fù)制到DAC輸入鎖存器,允許DAC數(shù)據(jù)改變?yōu)樾轮怠TO(shè)計(jì)中在DAC輸出口加入了電壓跟隨器,平穩(wěn)地輸出波形。 4 軟件設(shè)計(jì) 系統(tǒng)軟件設(shè)計(jì)部分包括單片機(jī)端和人機(jī)交互端兩個(gè)部分。單片機(jī)端主要是通過(guò)串口接受來(lái)自采集系統(tǒng)的信號(hào),保存到存儲(chǔ)器中,輸出電壓信號(hào);人機(jī)交互端主要通過(guò)Visual Basic軟件編寫(xiě)圖形界面,接受和傳送數(shù)據(jù),并且通過(guò)改變信號(hào)的幅值、脈寬、頻率、持續(xù)時(shí)間等來(lái)實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)的控制。 4.1單片機(jī)端實(shí)現(xiàn)程序 單片機(jī)端軟件采用C51編寫(xiě),使用Keil uVision集成開(kāi)發(fā)環(huán)境。主要完成單片機(jī)的初始化、串口通信和DAC輸出設(shè)置,單片機(jī)的初始化主要是單片機(jī)的串口中斷打開(kāi)和系統(tǒng)配置初始化。單片機(jī)的串口通信模塊主要完成單片機(jī)和上位機(jī)的通信,把系統(tǒng)需要的信息交由上位機(jī)進(jìn)行處理。由于C8051F121單片機(jī)具有片內(nèi)的UART,兇而只要設(shè)置適當(dāng)?shù)钠孀衅魇箚纹瑱C(jī)工作起來(lái),設(shè)計(jì)中串口通訊方式使用了效率高的中斷方式接受和發(fā)送數(shù)據(jù)。 程序由一個(gè)主程序和三個(gè)中斷服務(wù)程序組成,如圖4所示。三個(gè)中斷程序包括T0中斷服務(wù)程序、外部中斷服務(wù)程序和串口中斷服務(wù)程序。 圖3單片機(jī)端軟件操作流程圖 4.2人機(jī)交互界面 應(yīng)用Visual Basic軟件的通信控件MSComm,實(shí)現(xiàn)了與單片機(jī)系統(tǒng)的串行通信。VB提供了具有強(qiáng)大功能的通信控件MSComm,該控件可設(shè)置串行通信的數(shù)據(jù)發(fā)送和接收,對(duì)串口狀態(tài)及串口通信的信息格式和協(xié)議進(jìn)行設(shè)置。該串口是一個(gè)標(biāo)準(zhǔn)的十位串口通信,包括8位標(biāo)準(zhǔn)數(shù)據(jù)和數(shù)據(jù)的起始位和停止位。這些串口在Pc和單片機(jī)之間充當(dāng)解釋器的角色。當(dāng)數(shù)據(jù)從PC傳送給單片機(jī)時(shí),字符數(shù)據(jù)會(huì)被轉(zhuǎn)換成串行比特流;而當(dāng)接收數(shù)據(jù)時(shí),比特流數(shù)據(jù)會(huì)轉(zhuǎn)換成字符數(shù)據(jù)傳遞到PC機(jī)。 采用VB6.0編程可以實(shí)現(xiàn)便于操作的可視化界面,并且對(duì)整個(gè)系統(tǒng)進(jìn)行實(shí)時(shí)的控制.交互界面如圖4(a)所示。 圖4 VB交互界面 工具欄中文件下拉菜單中設(shè)置了讀取數(shù)據(jù),保存數(shù)據(jù),新建及頁(yè)面設(shè)置等一些基本的交互功能選項(xiàng);工具下拉菜單中有測(cè)量獲取數(shù)據(jù)和繪圖設(shè)置的選項(xiàng),通過(guò)這個(gè)選項(xiàng)可以準(zhǔn)備的獲得曲線上某一點(diǎn)的準(zhǔn)確值,繪圖設(shè)置中可以選擇繪圖方式、繪圖色彩及捕捉網(wǎng)格的大小設(shè)置,如圖4佑1所示。 圖5信號(hào)發(fā)生器采集的彈道侵徹過(guò)載曲線 DSP中可以選擇對(duì)彈道曲線的濾波方式,軟件給出了低通濾波等三種濾波方式,通過(guò)濾波可以得到更加光滑無(wú)毛刺的曲線。以低通濾波為例,軟件設(shè)計(jì)了三種濾波器的選擇,包括切比雪夫I型、切比雪夫II型和巴特沃茲型。可以通過(guò)調(diào)整濾波器的參數(shù)如階數(shù)、歸一化頻率和阻帶衰減值,得到需要的過(guò)載曲線。 圖5給出了實(shí)際侵徹過(guò)程中測(cè)到的兩條過(guò)載曲線,其中下圖是某條曲線中的一段,并且經(jīng)過(guò)濾波處理過(guò)。 5 結(jié)束語(yǔ) 本文利用C8051F121單片機(jī)具有的片內(nèi)12位電壓方式數(shù)/模轉(zhuǎn)換器和內(nèi)部集成化的數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其它數(shù)字外設(shè)及功能部件,設(shè)計(jì)了可以獲取任意波形的信號(hào)發(fā)生器。采用了串口通信和D/A轉(zhuǎn)換,在Visual Basic可視化操作界面下方便地讀取和保存數(shù)據(jù)、編輯曲線,并且可以進(jìn)行一些必要的信號(hào)處理和優(yōu)化。而且電路簡(jiǎn)單清晰,功能明確。 本文作者創(chuàng)新點(diǎn):針對(duì)整體項(xiàng)目的實(shí)際要求,以較低的成本實(shí)現(xiàn)了彈道存儲(chǔ)測(cè)試需要的各種信號(hào),經(jīng)過(guò)仿真和電路測(cè)試,完全達(dá)到了設(shè)計(jì)的要求。設(shè)計(jì)的人機(jī)交互平臺(tái)功能強(qiáng)大,使用方便,具有很好的推廣和使用價(jià)值。 項(xiàng)目經(jīng)濟(jì)效益:預(yù)計(jì)可產(chǎn)生經(jīng)濟(jì)效益110萬(wàn)。 作者:王世虎,劉明杰,李曉峰 來(lái)源:《微計(jì)算機(jī)信息》(嵌入式與SOC)2009年第3-2期 |