嵌入式FPGA熱門培訓內容之基于fpga和8051單片機ip核的多功能頻率計的設計與實現

時間:2018-12-12 17:14:03

頻率是電信號中重要的物理量,在電子、通信系統中,信號的頻率穩定度決定了整個系統的性能,準確測量信號的頻率是系統設計的重要內容。

單片機廣泛地應用于電子系統設計,其性價比高,大量的外圍接口電路,使基于單片機的電子系統設計方便,周期縮短。然而,單片機的串行工作特點決定了它的低速性和程序跑飛,另外還存在抗干擾能力不強等缺點。eda(electronic design automation)技術以計算機為工具,在quartus ii軟件平臺上,對以硬件描述語言verilog hdl/vhdl為系統邏輯描述手段完成的設計文件,自動地完成邏輯編譯、化簡、綜合及優化、邏輯仿真,直至對特定目標芯片的適配、編譯、邏輯映射和編程下載等工作,fpga是純硬件結構,具有較強的抗干擾能力。

文中在fpga芯片中嵌入mc8051 ip core,作為控制核心,利用verilog hdl語言進行編程,設計了以mc8051 ipcore為核心的控制模塊、計數模塊、鎖存模塊和lcd顯示模塊等模塊電路,采用等精度測量法,實現了頻率的自動測量,測量范圍為0.1 hz~50 mhz,測量誤差小于0.01%。

1 8051ip(intelligent property)軟核

8051單片機是以由vqm原碼(verilog quartus mapping file)表達的,在quartusii環境下能與vhdl、verilog hdl等其他硬件描述語言混合編譯綜合,并在單片fpga中實現全部硬件系統。

mc8051單片機核含有8位復雜指令cpu,存儲器采用哈佛結構。

mc8051的指令系統與8051/2、8031/2等完全兼容,硬件部分也基本相同,例如可接64kb外部存儲器,可接256字節內部數據ram,含兩個16位定時/計數器,全雙工串口,含節省功耗工作模式,中斷響應結構等。不同之處主要有:

1)mc8051是以網表文件的方式存在的,只有通過編譯綜合,并載入fpga中才以硬件的方式工作,而普通8051總是以硬件方式存在的;

2)mc8051無內部rom和ram,所有程序rom和內部ram都必須外接。

3)以軟核方式存在能進行硬件修改和編輯;能對其進行仿真和嵌入式邏輯分析儀實現實時時序測試;能根據設計者的意愿將cpu、ram、rom、硬件功能模塊和接口模塊等實現于同一片fpga中(即soc)。

4)與普通8051不同,mc8051的4個i/o口是分開的。

mc8051核在接上了rom和ram后就成為一個完整的8051或8052單片機了,mc8051核實用系統的最基本構建頂層原理圖如圖2所示,主要由4個部件構成。

1)mc8051核。cpu_core即mc8051單片機核如圖3所示,由vqm原碼表述:cpu_core.vqm,可以直接凋用。該元件可以與其他不同語言表述的元件一同綜合與編譯。

2)嵌入式鎖相環pll50。其輸入頻率設置為50 mhz,mc8051能接受的工作時鐘頻率上限取決于fpca的速度級別。

3)程序rom,lpm_rom。采用rom容量的大小也取決于fpga所含的嵌入ram的大小。設置的rom容量是4k字節。此rom可以加載hex格式文件作為單片機的程序代碼。hex程序代碼可以直接使用普通8051單片機程序編譯器生成。

4)數據ram,lpm_ram。本系統設置的lpm_ram容量是256字節。高128字節須用間接尋址方式訪問。

2 等精度測頻原理及fpga設計

等精度測量的一個最大特點是測量的實際門控時間不是一個固定值,而是一個與被測信號有關的值,剛好是被測信號的整數倍,即與被測信號同步。這樣就達到了在整個測試頻段的等精度測量。等精度測頻的核心思想就是通過閘門的信號與被測信號同步,將閘門時間τ控制為被測信號周期長度的整數倍。測量時,先打開預置閘門,當檢測到被測信號脈沖沿到達時,標準信號時鐘開始計數。預置閘門關閉時,到達時才停止,完成被測信號整數個周期的測量。測量的實際閘門時間與預置閘門時間可能不完全相同,但最大差值不超過被測信號的一個周期。設實際閘門時間為τ,被測信號周期數為nx,標準信號頻率為fs、計數值為ns,則被測信號的頻率測量值為:

由于實際閘門時間τ為被測信號周期的整數倍,因此nx是精確的,而標準信號時鐘的計數值ns則存在誤差△ns(|△ns|≤1),即標準信號計數的真實值應ns+△ns。

由此可知被測信號的頻率真實值為:

可以看出,相對誤差與被測信號本身的頻率特性無關,即對整個測量頻率域而言,測量精度相等,因而稱之為“等精度測量”。標準信號的計數值ns越大,則測量相對誤差越小,即提高門限時間τ和標準信號頻率fs可以提高測量精度。在精度不變的情況下,提高標準信號頻率可以縮短門限時間,提高測量速度。在計數允許時間內,同時對標準信號和被測信號進行計數,再通過數學公式推導得到被測信號的頻率。由于門控信號是被測信號的整數倍,就消除了對被測信號產生的±1誤差,但是會產生對標準信號±1的誤差。

系統中,采用了標準信號源的精度很高,可以達到一個很高的測量精度,本系統采用晶體作為標準信號源,因此可以達到很高的精度。

3 fpag設計模塊

本系統以verilog hdl硬件描述語言為工具,在傳統的等精度測量原理基礎上進行了改進和優化。增加了測量占空比的功能,同時由fpga內部產生清零信號,節省了資源。fpga核心模塊如圖5所示。fpga部分主要由門控信號產生模塊、計數器控制模塊、計數器模塊、鎖存器、中斷輸出、數據選擇輸出、頂層模塊組成。

門控信號:時鐘信號源產生頻率很高的時鐘信號,經過分頻以后,得到頻率為1 hz、1 khz、1 mhz和50 mhz 4種時鐘信號,這些信號作為時基電路輸入信測量開始,tw為1s,計數器對被測信號fsin進行計數,如果計數超過規定值9999,產生溢出信號overflow,在其作用下,量程轉換電路輸出信號sw狀態發生變化,自動完成一次量程的換擋,同時將tw調整為0.1s,計數器重新計數。如果還有溢出信號,繼續量程換擋,調整tw,直到不再有溢出信號為止。其中74160接成了一個同步四進制加法計數器,如圖6所示。它的時鐘輸入端clk與計數器輸出端overflow(溢出)連接,在溢出信號作用下,量程轉換電路輸出端s1、s0依次輸出00、01、10和11 4個編碼,實現自動換擋。

計數器控制模塊:門控信號啟動(上升沿)后,在被測信號的上升沿啟動計數允許模塊,允許計數器計數;門控信號關閉(下降沿)后,在被測信號的下一個上升沿關閉計數允許模塊,停止計數,從而保證了門控信號是被測信號的整數倍,達到了等精度的目的。

計數器模塊:在設計計數器的過程中需要注意計數器的寬度設置,系統中采用的最大門控時間為10 s,標準信號源的頻率為50 mhz,則在計數的允許時間內計數的最大值為:10 50 000 000=500 000 000《229=536 870 912,為了方便數據傳輸,系統中采用了32位位寬的計數。

鎖存器模塊:在門控信號關閉的同時,停止計數,同時啟動鎖存模塊,把測量的數據鎖存起來,以便傳輸。

中斷輸出:鎖存數據的同時,給單片機一個低電平的中斷信號,通知單片機讀取數據。該模塊用于鎖存計數器輸出計數值,供51ip軟核讀取,進行處理顯示。計數器模塊在門控信號關閉(下降沿)的同時,停止計數,同時啟動鎖存模塊,把測量的數據鎖存起來,以便傳輸。

數據選擇輸出:系統中采用了2個32位的計數器,由于單片機采用的是51系列單片機,只有8位的數據總線,所以一次通信只能傳輸8位數據,所以設計了一個數據輸出控制模塊

頂層模塊:實例化所有的底層模塊。

4 mc8051 ip core軟件設計流程

5 結論

文中采用altera的cyclone ii系列的ep2c8q208c8這款fpga芯片。設計中使用了verilog語言對各個模塊的描述設計。文中提出的數字頻率計設計方案采用等精度的測量算法,以先進的fpga可編程邏輯器件作為核心控制及運算電路單元可達到很高的測量精度要求,8051 ip core嵌入到fpga芯片系統,與測頻模塊共用同一個fpga芯片,和傳統的頻率計相比大大減小了電路板的尺寸,同時增加了系統的可靠性、設計靈活性和可更改性。實現了數字系統的軟件化。加入lcd液晶顯示,使測量效果更加直觀。

? 江苏快3号码表