姓名:宋艷玲? 學號:17011223216
嵌牛導讀:? 測控系統(tǒng)常常需要處理所采集到的各種數(shù)字量信號初澎。通常測控系統(tǒng)采用通用MCU完成系統(tǒng)任務。但當系統(tǒng)中采集信號量較多時,僅依靠MCU則難以完成系統(tǒng)任務碑宴。針對這一問題软啼,提出一種基于FPGA技術的多路數(shù)字量采集模塊。利用FPGA的I/O端口數(shù)多且可編程設置的特點延柠,配以VHDL編寫祸挪。
嵌牛鼻子:FPGA,數(shù)據(jù)采集贞间,電路設計贿条。
嵌牛提問:當測控系統(tǒng)需要采集信號量較多時,電路要怎么設計?
嵌牛正文: 測控系統(tǒng)常常需要處理所采集到的各種數(shù)字量信號增热。通常測控系統(tǒng)采用通用MCU完成系統(tǒng)任務整以。但當系統(tǒng)中采集信號量較多時,僅依靠MCU則難以完成系統(tǒng)任務峻仇。針對這一問題公黑,提出一種基于FPGA技術的多路數(shù)字量采集模塊。利用FPGA的I/O端口數(shù)多且可編程設置的特點摄咆,配以VHDL編寫的 FPGA內(nèi)部邏輯凡蚜,實現(xiàn)采集多路數(shù)字量信號。
? 該數(shù)字量采集模塊主要功能是采集輸入的36路數(shù)字及脈沖信號吭从,并將編幀后的信號數(shù)據(jù)上傳給上位機朝蜘,上位機經(jīng)解包處理后顯示信號相應的狀態(tài)進行判斷。根據(jù)設計要求涩金,所測量的36路數(shù)字信號中谱醇,有15路正脈沖信號。它們均由一個同步脈沖信號觸發(fā)鸭廷,因此需要測量這些正脈沖的寬度和相對于同步信號脈沖的延時枣抱。要求采集步長不能大于10 ns,即采集頻率高于100 MHz辆床。而其他數(shù)字信號需要顯示高低電平狀態(tài)佳晶,其中一路信號是固定頻率信號,需測量其頻率值讼载。
FPGA內(nèi)部邏輯功能強大轿秧,外圍電路設計基于簡單、可靠的原則咨堤。該模塊由FIFO菇篡、USB2.0單片機、光電隔離器等部分組成一喘。36路數(shù)字信號經(jīng)光電隔離器進入FPGA主控單元驱还,以供采集;FPGA處理采集到的信號嗜暴,轉換成數(shù)據(jù)進行編幀,然后寫入FIFO议蟆。USB單片機提取FIFO中的數(shù)據(jù)闷沥,通過USB電纜傳送給上位機,上位機將傳送來的數(shù)據(jù)解幀咐容,然后顯示所有信號狀態(tài)舆逃。模塊通過電源接口向各個部分供電。
FPGA是采用XILINX公司的Spantan-II系列XC2S100E戳粒,該系列器件的內(nèi)核采用2.5 V供電路狮,工作頻率高達200 MHz;I/O端口供電電壓為3.3 V,可承受5 V的輸入高電平蔚约。Spartan-II系列的FPGA具有豐富的I/O端口資源奄妨。其I/O端口輸出緩沖器接收高達24 mA源出電流和48 mA灌入電流。
由于FPGA基于RAM工藝技術炊琉,掉電后不能保存信息展蒂,因此需要一個外置存儲器來保存信息。采用一次可編程的PROM(高有效或低有效)XCF01SV020苔咪,其復位引腳的極性可編程設置锰悼,供電電壓為3.3 V。XCF01SVO20的DONE团赏、INIT箕般、CCLK信號來自于FPGA XC2S100E。系統(tǒng)上電后舔清,首先FPGA初始化丝里,INIT、DONE置低体谒。INIT置低后復位PROM杯聚,此時由于PROM的CE為低,因此選取 PROM抒痒,從而可將數(shù)據(jù)流從DATA引腳輸入到FPGA的DIN引腳幌绍。配置完成后,F(xiàn)PGA將DONE接高故响,PROM處于低功耗的待機模式傀广,并將DATA 引腳置為高阻態(tài)。
采用高速光電耦合器HCPL-2631彩届,其開關頻率高達10 MHz伪冰,而輸人數(shù)字信號頻率為120 kHz,完全滿足要求樟蠕。由于光電耦合器件以光為媒介傳輸信息贮聂,可使輸入輸出隔離靠柑,由于光電耦合器的輸入回路為發(fā)光二極管,其輸入阻抗很小寂汇,而干擾源的內(nèi)阻較大病往,根據(jù)分壓原理可知,饋送到光電耦合器輸入端的噪聲干擾電壓變得很小骄瓣,從而能有效抑制尖峰脈沖及各種噪聲干擾,具有較強的抗干擾性能;另外由于光電隔離器的兩端采用不同的接地方式耍攘,因此數(shù)字信號地和模塊地被完全隔離榕栏。
FIFO電路
FIFO電路采用IDT公司的IDT72V17190器件,該器件采用3.3 V電壓供電蕾各,16位64 KB容量的FIFO扒磁,工作時鐘高達100 MHz。如圖4所示式曲,F(xiàn)IFO的數(shù)據(jù)輸入D0~D15及PAF妨托、WCLK、WEN均與FPGA相連吝羞。數(shù)據(jù)輸出Q0~Q15及REN兰伤、RCLK、OE钧排、 EF敦腔、MRS、HF恨溜、FF均與USB2.0單片機相連符衔。讀FIFO狀態(tài)時,USB2.0單片機給出FIFO復位信號MRS和使能信號OE糟袁,然后判斷 FIFO的狀態(tài)信號EF(空)和HF(半滿)判族。當FIFO半滿且非空,即EF為高项戴,HF為低時形帮,給出FIFO讀使能信號REN和讀時鐘RCLK,從 FIFO中讀出數(shù)據(jù);寫FIFO時肯尺,F(xiàn)PGA判斷FIFO的PAF(幾乎滿)信號沃缘,如果該信號無效,則給出寫使能WEN和寫時鐘WCLK则吟,將數(shù)據(jù)寫入 FIFO槐臀。
FPGA內(nèi)部邏輯設計
FPGA內(nèi)部邏輯主要分為數(shù)字信號采集、數(shù)據(jù)緩存和數(shù)據(jù)讀取氓仲、FIFO控制水慨。根據(jù)要求得糜,信號采集又分為頻率信號采集、20路數(shù)字信號采集和 15路脈沖信號采集晰洒。系統(tǒng)同時采集三組信號朝抖,再送入外部FIFO中緩存。由于脈沖信號的數(shù)據(jù)量較大谍珊,時序不匹配治宣,因此在信號采集完后數(shù)據(jù)還應緩存,然后再經(jīng)數(shù)據(jù)編幀送至外部FIFO砌滞。內(nèi)部緩存利用VHDL編寫模塊侮邀,但是更簡易的方法是利用FPGA內(nèi)部的雙口RAM。
因此贝润,F(xiàn)PGA選用Xilinx公司的 XCF2S-100E绊茧,其內(nèi)部集成5 KB容量的RAM,足夠內(nèi)部緩存使用打掘。數(shù)據(jù)經(jīng)信號采集后送人緩存华畏,然后由讀取模塊讀出再送入外部FIFO,整個模塊采用120 MHz的時鐘尊蚁,可以滿足要求大于100 MHz的時鐘頻率亡笑。采集20路數(shù)字信號的方法是當信號變化時,就將當前所有數(shù)字信號的電平狀態(tài)都送入緩存枝誊,而對于頻率信號和脈沖信號的采集則采用如下方法况芒。
數(shù)據(jù)的編幀和解幀
在數(shù)據(jù)采集部分中,當同步信號的上升沿到來時叶撒,將3個幀標志分別寫入3個緩存绝骚,頻率信號數(shù)據(jù)的幀標志為EB90;20路數(shù)字信號的幀標志為 2個EB91;15路脈沖信號數(shù)據(jù)的幀標志為3個EB92。
讀取數(shù)據(jù)模塊中祠够,當同步信號的下降沿到來時压汪,開始讀取緩存的數(shù)據(jù)送至外部FIFO,并判斷當讀取一個EB90后古瓤,開始讀取緩存的數(shù)據(jù)止剖,并送入外部FIFO;當讀到兩個EB91后,讀取緩存的數(shù)據(jù)落君,并送入外部FIFO;當讀到3個EB92后表明一幀數(shù)據(jù)讀取完畢穿香,等待下一個同步信號的下降沿后再開始讀取下一幀數(shù)據(jù)。由于外部FIFO是16位,所以數(shù)據(jù)中不滿16位的都用0將數(shù)據(jù)補充完整,完整的數(shù)據(jù)
上位機收到一幀數(shù)據(jù)后進行解幀處理惫企,對于頻率信號數(shù)據(jù)庄拇,將這些T值相加并求平均得出T’,再乘以2蝇闭,由于系統(tǒng)時鐘是120 MHz蕴侣,所以2T’/120為頻率信號周期(μs級)泊交,然后求倒數(shù)即可得出該信號的頻率值雁歌。20路數(shù)字量信號數(shù)據(jù)直接顯示其電平狀態(tài)宏浩。脈沖信號數(shù)據(jù)則先判斷哪一路(多路)脈沖信號發(fā)生變化,再判斷該信號(幾路信號)的電平狀態(tài)靠瞎。
若為高電平比庄,則對應的時間應為TBa;若為低電平,則對應的時間應為TBb乏盐。TBa即為該脈沖信號相對于同步信號的延遲印蔗,而TBb-TBa的值即為該脈沖信號的正脈沖脈寬。