基于C8051F單片機信號發(fā)生器設計與應用
在實際的彈道加速度測試中,需要產生許多波形曲線用來驗證,而能夠產生任意波形的信號發(fā)生器價格昂貴,不適合工程實際的需求.通過設計產生的信號發(fā)牛裝置,不僅成本低,而且功能強大,可以產生滿足各種需要的信號。C8051Fxxx系列單片機是完全集成的混合信號系統(tǒng)級芯片,具有與8051兼容的微控制器內核,與MCS-51指令集完全兼容。除了具有標準8052的數(shù)字外設部件之外,片內還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其它數(shù)字外設及功能部件;內置FLASH程序存儲器、內部RAM,大部分器件內部還有位于外部數(shù)據(jù)存儲器窄間的RAM,即XRAM。數(shù)模混合的高度集成使得該單片機系統(tǒng)IJ以方便實現(xiàn)數(shù)控及簡單信號處理等功能。C8051F121單片機具有片內VDD監(jiān)視器、看門狗定時器和時鐘振蕩器,是真正能獨立工作的片上系統(tǒng)。使用C8051F121單片機設計任意波形信號發(fā)牛器,不僅減少了器件,簡化了電路,節(jié)約了成本,更使得系統(tǒng)穩(wěn)定節(jié)能。方便快捷地輸出多種低頻信號。
2 系統(tǒng)原理與組成
系統(tǒng)以C8051F121單片機為核心,通過串口通信將PC機中的數(shù)據(jù)傳送到單片機中,然后單片機將所接受的數(shù)據(jù)存放到128k的外部存儲器中。系統(tǒng)的控制電路啟動D/A轉換將外部存儲器中的數(shù)據(jù)轉化成模擬信號,生成所需要的波形。波形的幅值、脈寬、頻率、持續(xù)時問等參數(shù)均可以在VB程序下進行調節(jié),可以實現(xiàn)任意波形的信號發(fā)生功能。
系統(tǒng)基本組成如圖1所示,應用模塊可以根據(jù)工程實際中的具體要求,實現(xiàn)不同的目的。本文中應用模塊為加速度測試系統(tǒng),用來實現(xiàn)測試裝置的模擬信號輸入。
圖1系統(tǒng)組成結構圖
3 系統(tǒng)硬件設計與實現(xiàn)
系統(tǒng)實現(xiàn)信號發(fā)生功能設計目標主要包括以下幾個方面:串口通信模塊,電源供電模塊,外部擴展存儲器模塊,外部晶振以及復位模塊。下面詳細介紹一下各單元的硬件電路和實現(xiàn)的功能。
圖2信號發(fā)生器硬件結構圖
3.1電源模塊設計
整個系統(tǒng)采用3.3V供電,考慮到硬件系統(tǒng)對電源要求有穩(wěn)壓功能,另外也考慮到硬件系統(tǒng)的低功耗等特點,電源部分采用AR33將電源的5V電壓轉換成系統(tǒng)需要的3.3V;為了減少輸出電源的高頻噪聲,在單片機、鎖存器,外部擴展存儲器以及電源輸出部分分別應用了0.01uF和luF,0.1uF和4.7uF的配對電容,對電源進行濾波。
3.2 外部擴展存儲器設計
C8051Fl21MCU內部有位于外部數(shù)據(jù)存儲器空間的8K字節(jié)片上RAM,但是對于實際的彈道速度信號發(fā)生器而言存儲空間偏小,因而需要擴展容量更大的外部存儲器。C8051F121提供用于訪問片外存儲器和存儲器映射I/0器件的外部數(shù)據(jù)存儲器接口(EMIF)。設計中采用的是IDT公司的IDT71V124SA芯片,3.3V供電,是高速的CMOS靜態(tài)RAM,采用了高性能,高可靠性的CMOS技術和JEDEC中心電源/接地管腳分布,極大地減少了噪聲,優(yōu)化了系統(tǒng)性能。IDT7IVl24SA芯片提供了128x8存儲容量,很好地滿足了設計系統(tǒng)對數(shù)據(jù)和程序存儲空間的要求。在單片機和外部存儲器之間應用了一個地址鎖存器74VHC573,用來鎖存存儲到IDT71V124SA的數(shù)據(jù)。接口部分采用地址和數(shù)據(jù)總線復用的方式以減少所需要的端口引腳數(shù),這樣配置使得外部存儲器和C805IFl21之間傳輸數(shù)據(jù)時低位地址保持在鎖存器中,不需要再為數(shù)據(jù)傳輸增加8位端口。
3.3 外部晶振設計
對于實際的系統(tǒng)而言,C8051F121單片機的內部時鐘頻率不能滿足要求,因而需要配置較大頻率的外部振蕩器。C8051Fl2x器件包含一個內部振蕩器和一個外部振蕩器驅動電路,可以驅動外部晶體、陶瓷諧振器、電容或RC網(wǎng)絡。設計中采用外部晶體作為外部振蕩器。晶體振蕩器被使能后,幅值檢測電路需要一段穩(wěn)定時間才能達到正確的偏囂。在使能振蕩器下作和檢XTLVLD位之間至少等待1 ms,以防止過早將外部振蕩器切換為系統(tǒng)時鐘。等查詢到XTLVLD=>’1’時,將系統(tǒng)時鐘切換到外部振蕩器。由于晶體振蕩器電路對PCB布局非常敏感。在布局中將晶體盡可能地靠近了器件的XTAL引腳。引線地短并用地平面屏蔽,防止從其它引線引入噪聲或干擾。
3.4DAC設置
C8051F121器件有兩個片內12位電壓方式數(shù)/模轉換器(DAC)。設計中使用了DAC1。并基于定時器溢出更新輸出,這樣在用DAC產生一個固定采樣頻率的波形時,可以消除中斷延遲不同和指令執(zhí)行時間不同對DAC輸出時序的影響。當DACIMD位(DAClCN[4:3])被設置為‘01’、‘10’或‘ll’時,對DAC兩個數(shù)據(jù)寄存器(DAClL和DAClH)的寫操作被保持,直到相應的定時器溢出事件(分別為定時器3、定時器4或定時器2)發(fā)生時DACOH:DACOL的內容才被復制到DAC輸入鎖存器,允許DAC數(shù)據(jù)改變?yōu)樾轮?。設計中在DAC輸出口加入了電壓跟隨器,平穩(wěn)地輸出波形。
4 軟件設計
系統(tǒng)軟件設計部分包括單片機端和人機交互端兩個部分。單片機端主要是通過串口接受來自采集系統(tǒng)的信號,保存到存儲器中,輸出電壓信號;人機交互端主要通過Visual Basic軟件編寫圖形界面,接受和傳送數(shù)據(jù),并且通過改變信號的幅值、脈寬、頻率、持續(xù)時間等來實現(xiàn)對整個系統(tǒng)的控制。
4.1單片機端實現(xiàn)程序
單片機端軟件采用C51編寫,使用KeiluVision集成開發(fā)環(huán)境。主要完成單片機的初始化、串口通信和DAC輸出設置,單片機的初始化主要是單片機的串口中斷打開和系統(tǒng)配置初始化。單片機的串口通信模塊主要完成單片機和上位機的通信,把系統(tǒng)需要的信息交由上位機進行處理。由于C8051F121單片機具有片內的UART,兇而只要設置適當?shù)钠孀衅魇箚纹瑱C工作起來,設計中串口通訊方式使用了效率高的中斷方式接受和發(fā)送數(shù)據(jù)。
評論