基于VerilogHDL的背景噪聲扣除電路設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞:VerilogHDL 背景噪聲 扣除
Abstract: A design of circuit which can deduct background noise based on VerilogHDL is introduced in this paper. Compared with the circuit used chips of the forward and backward counters , its interface with MCU is more simple and operation of software is more easy .
Key Word: VerilogHDL, background noise, deduction
1 引言
在微弱信號(hào)檢測(cè)方法中,常需要使直流量經(jīng)光電調(diào)制后轉(zhuǎn)變?yōu)榻涣餍盘?hào)進(jìn)行測(cè)量,以扣除背景噪聲來提高系統(tǒng)信噪比。星載紫外遙感儀器同樣采用了壓頻轉(zhuǎn)換和調(diào)制解調(diào)實(shí)時(shí)扣除背景噪聲、零點(diǎn)飄移的方案,但其原有實(shí)現(xiàn)背景噪聲扣除功能的單元在與MCU接口及軟件控制上稍顯繁瑣,而且布線面積較大。如能將背景噪聲扣除功能設(shè)計(jì)成為具有通用接口和易操作的專用集成電路,對(duì)該儀器的升級(jí)換代有積極的意義。
硬件描述語言VerilogHDL 提供了是一種在廣泛的抽象層次上描述數(shù)字系統(tǒng)的方式,以其C語言風(fēng)格,容易掌握等特點(diǎn)贏得了眾多硬件設(shè)計(jì)師的青睞。通過軟件編程來實(shí)現(xiàn)硬件功能后,下載到FPGA或CPLD大規(guī)??删幊踢壿嬈骷軐㈦娐钒寮?jí)產(chǎn)品集成為芯片級(jí)產(chǎn)品。
為此,本文使用VerilogHDL進(jìn)行編程,采用自頂向下的設(shè)計(jì)方法,經(jīng)仿真驗(yàn)證和綜合后,得到了具有通用接口和軟件易于操作的背景噪聲電路,彌補(bǔ)了原有單元的不足,取得了較好結(jié)果。
2 背景噪聲扣除電路原理
紫外光譜遙感儀器電控部分由斬光器,精密高壓電源及光電倍增管,單片機(jī)控制單元,同步累加解調(diào)單元,前置低噪聲放大器,壓頻轉(zhuǎn)換組成。其中斬光器將空間輻射光斬切成為交替的“信號(hào)+背景”和“背景”的光信號(hào),使得光電倍增管輸出的信號(hào)如圖1所示。調(diào)制后的信號(hào)放大后,經(jīng)壓頻轉(zhuǎn)化后變?yōu)轭l率信號(hào),通過同步累加單元的處理。同步累加解調(diào)單元采用四片四位二進(jìn)制加減計(jì)數(shù)器SN54HC193進(jìn)位位相連組成16位加減計(jì)數(shù)器,并配以邏輯門電路組成實(shí)現(xiàn)的。背景噪聲的扣除功能是依靠16位加減計(jì)數(shù)器由時(shí)序控制,在通光狀態(tài)下加計(jì)數(shù),在遮光狀態(tài)下減計(jì)數(shù),經(jīng)多周期計(jì)數(shù)實(shí)現(xiàn)。
圖1經(jīng)斬光器調(diào)制后由光電倍增管輸出的信號(hào)
背景噪聲扣除原理簡單,但時(shí)序控制較繁瑣。原有電路因布線面積和硬件芯片不易過多等諸多考慮,計(jì)數(shù)周期及啟停控制采用軟件兩次中斷設(shè)置來實(shí)現(xiàn)。如圖2所示第一次為中斷
本文課題來源于國家自然科學(xué)基金資助項(xiàng)目
項(xiàng)目批準(zhǔn)號(hào):60538020
為啟動(dòng)計(jì)數(shù),查詢到斬光器信號(hào)第一個(gè)上升沿時(shí)進(jìn)入,設(shè)置好計(jì)數(shù)周期后再次啟動(dòng)MCU片內(nèi)計(jì)數(shù)器,以保證準(zhǔn)確的查詢到第一個(gè)上升沿時(shí)啟動(dòng)計(jì)數(shù)器。第二次為停止中斷,采集計(jì)數(shù)周期溢出后停止計(jì)數(shù)。
圖2 軟件控制采集計(jì)數(shù)啟停流程圖
易見原背景噪聲扣除功能單元需要與MCU接口的數(shù)據(jù)線較多,需16條,且因不同微處理器片內(nèi)資源不同,軟件操作可能會(huì)更繁瑣,可移植性不強(qiáng)。
綜上,如果將背景噪聲扣除功能單元設(shè)計(jì)成一個(gè)8位數(shù)據(jù)總線接口,高低字節(jié)分時(shí)復(fù)用,能對(duì)16位二進(jìn)制數(shù)預(yù)置數(shù)和計(jì)數(shù)周期進(jìn)行設(shè)置,操作上僅由MCU給出啟動(dòng)信號(hào)后,等查詢完成信號(hào)便可讀取計(jì)數(shù)結(jié)果的電路,則可大大減少線路板面積,使接口更簡單,提高可操作性和移植性。
3 背景噪聲扣除電路的VerilgHDL設(shè)計(jì)
依據(jù)自頂向下設(shè)計(jì)思想和自底向上的實(shí)現(xiàn)方法,背景噪聲扣除電路的可劃分為主模塊(backnoise_deduct),16位二進(jìn)制加減計(jì)數(shù)模塊(bit16addsub),采集控制模塊(Ctrol),讀寫接口模塊(Addselec)四個(gè)模塊。
主模塊負(fù)責(zé)調(diào)用其它三個(gè)模塊,并將輸入輸出接口進(jìn)行連接。16位二進(jìn)制加減計(jì)數(shù)模塊負(fù)責(zé)在信號(hào)脈沖到來時(shí),對(duì)給定的預(yù)置數(shù)在調(diào)制周期的高電平時(shí)加計(jì)數(shù),在低電平時(shí)減計(jì)數(shù)。采集控制模塊負(fù)責(zé)當(dāng)MCU給出允許計(jì)數(shù)命令后,自動(dòng)查詢調(diào)制頻率的第一個(gè)上升沿啟動(dòng)計(jì)數(shù),在計(jì)數(shù)周期達(dá)到后停止計(jì)數(shù),完成計(jì)數(shù)后通知MCU。讀寫接口模塊負(fù)責(zé)與MCU接口,接收儲(chǔ)存計(jì)數(shù)周期(斬光器信號(hào)或調(diào)制信號(hào)的周期數(shù))和16位的預(yù)置數(shù),并將最后計(jì)數(shù)結(jié)果返回MCU。
主模塊的外部接口如圖3所示。FREQU1, FREQU2為采樣頻率輸入1和2;CHOP_IN斬光器或調(diào)制頻率輸入,CLR為清零信號(hào),高電平有效;cpu_alw為MCU發(fā)出的允許信號(hào),高電平有效;stopsign是采集完成信號(hào),高電平為完成;WD,RD,CS為是寫、讀、片選信號(hào);DB為8位雙向數(shù)據(jù)總線;a2_0為3線片內(nèi)寄存器地址譯碼選擇接口。
圖3 背景噪聲扣除主模塊綜合生成原理圖的外部接口
16位二進(jìn)制加減計(jì)數(shù)模塊(bit16addsub)是背景扣除電路的具體實(shí)現(xiàn)單元,代碼如下所示。
module bit16addsub(
input wire FREQU,//采樣頻率輸入
input wire CHOP_IN,//斬光器輸入
input EN,//啟??刂?/P>
input wire CLR,//請(qǐng)零
input wire [15:0] STA_NUM,//初始數(shù)值
output reg[15:0] result_num //計(jì)數(shù)結(jié)果輸出
);
always @(posedge FREQU or posedge CLR)//對(duì)采集信號(hào)和清零信號(hào)敏感
begin
if(CLR==1)//清零
result_num<=STA_NUM;//重新讀入預(yù)置數(shù)
else if(EN==1&&CHOP_IN==1&&FREQU==1)
result_num<=result_num+1;//在使能的狀態(tài)下調(diào)制的信號(hào)高電平時(shí)加計(jì)數(shù)
else if(CHOP_IN==0&&EN==1&&FREQU==1)
result_num<=result_num-1;//在使能的狀態(tài)下調(diào)制信號(hào)的低電平時(shí)減計(jì)數(shù)
end
endmodule
采集控制模塊(Ctrol)是整個(gè)設(shè)計(jì)的時(shí)序控制核心,它輸出的ctrol與16位二進(jìn)制加減計(jì)數(shù)模塊(bit16addsub)的EN向連接便可實(shí)現(xiàn)自動(dòng)控制計(jì)數(shù)的啟動(dòng),待計(jì)數(shù)周期溢出時(shí)停止,計(jì)數(shù)完成后由stopsign后給出高電平信號(hào)通知MCU。其完整代碼如下:
module Ctrol(input wire reset, //復(fù)位信號(hào)
input wire cpu_alw, //MCU允許信號(hào)
input wire chop_in, //斬光器輸入計(jì)數(shù)
input wire [16:0] status_in, //計(jì)數(shù)周期數(shù)值
output reg ctrol, //加減計(jì)數(shù)器的啟停控制信號(hào)
output reg stopsign //計(jì)數(shù)完成信號(hào)
);
reg [16:0]num_count;//內(nèi)部計(jì)數(shù)周期寄存器
always @(posedge reset or posedge chop_in)
begin
if(reset)//復(fù)位
begin
num_count<=status_in; //讀入計(jì)數(shù)周期
ctrol<=0; //停止計(jì)數(shù)
stopsign<=0; //沒有完成計(jì)數(shù)
end
else if(chop_in==1&&cpu_alw==1)//允許計(jì)數(shù)
begin
if(num_count>0) //采集未完成
begin
ctrol<=1; //16加減計(jì)數(shù)器使能
num_count<=num_count-1;//計(jì)數(shù)周期減一
end
else
begin
ctrol<=0; //計(jì)數(shù)停止
stopsign<=1; //通知MCU
end
end
end
endmodule
讀寫接口模塊(Addselec)在編程時(shí)采用通用的雙向數(shù)據(jù)總線輸入輸出方法,經(jīng)過a2_0的3線譯碼選擇寄存器地址,可對(duì)計(jì)數(shù)周期和預(yù)置數(shù)進(jìn)行賦值,并可讀出最后計(jì)數(shù)結(jié)果。表1給出了譯碼對(duì)應(yīng)的寄存器地址。
表1 a2_0譯碼選擇真值表
a2_0[2:0] |
片內(nèi)寄存器 |
000 |
計(jì)數(shù)1結(jié)果低8位 |
001 |
計(jì)數(shù)1結(jié)果高8位 |
010 |
計(jì)數(shù)2結(jié)果低8位 |
011 |
計(jì)數(shù)2結(jié)果高8位 |
100 |
計(jì)數(shù)周期低8位 |
101 |
計(jì)數(shù)周期高8位 |
110 |
預(yù)置數(shù)低8位 |
111 |
預(yù)置數(shù)高8位 |
圖4給出了使用ModelSim 軟件對(duì)寫信號(hào)有效的仿真波形,顯示最后計(jì)數(shù)周期低、高8位寫入的數(shù)值為00000101、00000000,預(yù)置數(shù)低、高8位數(shù)值為00000011、00000000。
圖4 計(jì)數(shù)周期和預(yù)置數(shù)在總線寫入時(shí)的波形仿真結(jié)果
4背景噪聲扣除電路與MCU接口及軟件操作
圖5背景噪聲扣除電路的軟件操作流程
采用上述設(shè)計(jì)的集成背景噪聲扣除電路在與MCU接口時(shí)十分方便。以MCS51系列單片機(jī)8051為例,最簡單的連接方式為采用P1口與CLR、cpu_alw、stop_sign相連接,址線與CS、a2_0連接(可據(jù)電路規(guī)模設(shè)置片選方式),數(shù)據(jù)線、讀寫正常連接即可。軟件操作不需要中斷,操作流程如圖5所示。更簡單的做法是在系統(tǒng)初始化時(shí)將預(yù)置數(shù)和計(jì)數(shù)周期賦值為固定值即可。
5 結(jié)束語
本文介紹了采用計(jì)數(shù)器與門電路組成的背景噪聲扣除電路的實(shí)現(xiàn)原理和工作方式,并分析了其局限性,然后提出了一種基于VerilogHDL 語言的背景噪聲扣除電路的設(shè)計(jì),使電路接口更為簡單,軟件更易操作,增強(qiáng)了移植性。該設(shè)計(jì)已經(jīng)應(yīng)用于在研的紫外遙感儀器中,為儀器的更新?lián)Q代提供了技術(shù)支持。本文以通用性和簡便性出發(fā)設(shè)計(jì)的背景噪聲扣除電路的設(shè)計(jì),將適用于以光電調(diào)制微弱直流量轉(zhuǎn)換為交流信號(hào)測(cè)量的方案。
本文作者創(chuàng)新點(diǎn):針對(duì)原有背景噪聲扣除功能單元的局限性,用VerilogHDL語言設(shè)計(jì)出了接口方便、易操作的背景噪聲扣除電路,使其有具備了較強(qiáng)的通用性和適用性。
參考文獻(xiàn)
[1]汪龍祺等. 基于單片機(jī)控制的增益自動(dòng)轉(zhuǎn)換設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007.8
[2]李俊一等. 基于Verilog HDL設(shè)計(jì)的多功能數(shù)字鐘[J].微計(jì)算機(jī)信息,2006,04-2:79-81
[3]宋克非. 一種用于空間輻射測(cè)量的信號(hào)檢測(cè)方法[J].光學(xué)精密工程,1999.7-3
[4]曾慶勇. 微弱信號(hào)檢測(cè)[M] .浙江大學(xué)出版社1994.1
[5]王冠等. Verilog HDL與數(shù)字電路設(shè)計(jì)[M]. 機(jī)械工業(yè)出版社 2006.1