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