亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        數(shù)字電壓表的VHDL程序設計與硬件實現(xiàn)

        2014-02-27 07:37:06李亞峻徐世超黃建民
        天津科技大學學報 2014年1期
        關鍵詞:電壓表器件編程

        李亞峻,徐世超,黃建民,王 潔,馬 強

        (天津科技大學電子信息與自動化學院,天津 300222)

        數(shù)字電壓表的VHDL程序設計與硬件實現(xiàn)

        李亞峻,徐世超,黃建民,王 潔,馬 強

        (天津科技大學電子信息與自動化學院,天津 300222)

        將FPGA與模數(shù)轉換器TLV571相結合設計了數(shù)字電壓表.用VHDL語言編程實現(xiàn)了模擬電壓的測量、模數(shù)轉換、計算與讀取,用狀態(tài)機完成了FPGA對TLV571的控制.將數(shù)字電壓、模擬電壓的BCD碼與ROM地址、數(shù)據(jù)一一對應,用查找表的方式從相應的ROM地址中取出高4位和低4位BCD碼,對二者進行BCD碼加法運算即可獲得模擬電壓值.通過實驗平臺測試驗證了數(shù)字電壓表設計的正確性.

        現(xiàn)場可編程門陣列;VHDL語言;模數(shù)轉換;BCD碼

        目前的數(shù)字電壓表主要以單片機[1–2]和現(xiàn)場可編程門陣列(FPGA)[3–4]作為系統(tǒng)的控制核心.基于單片機設計的優(yōu)點是技術成熟、設計成本較低、編程靈活.但是,單片機系統(tǒng)的外圍電路由許多獨立元件連接而成,所以系統(tǒng)的復雜度高、抗干擾能力差、可靠性較低、功耗高.基于FPGA設計的優(yōu)點是測量精度高、速度快、讀數(shù)方便、抗干擾能力強、可擴展性強.另外,F(xiàn)PGA由可編程門陣列和可編程邏輯器件二者演變而來,它既有前者的高集成度和通用性,又有后者的用戶可編程性[4].FPGA控制器的硬件功能完全由軟件編程實現(xiàn),調試方便,不需改變硬件電路即可實現(xiàn)系統(tǒng)更新,克服了基于單片機設計系統(tǒng)的缺點[5].

        文獻[4]采用了基于FPGA的設計方法,但是在其VHDL程序設計中存在明顯不足:該程序用多個if嵌套語句編程實現(xiàn),隨著數(shù)據(jù)的有效位數(shù)增加,編程復雜度將增加,使程序的可讀性變差;而且,此方法對高4位和低4位BCD碼相加后進行BCD碼調整,只考慮了求和后每一位十六進制數(shù)大于9且小于等于15的情況,沒有考慮大于15、小于等于18的情況.

        本文基于FPGA器件、用VHDL語言編程實現(xiàn)數(shù)字電壓表的設計,介紹數(shù)字電壓、模擬電壓BCD碼與存儲器(ROM)地址、數(shù)據(jù)的關系,詳細闡述了BCD碼加法運算的原理.

        1 數(shù)字電壓表的總體架構

        1.1 數(shù)字電壓表的VHDL模塊化設計

        圖1中虛線框內為采用VHDL語言編程實現(xiàn)的FPGA控制器adc_volmeter3V3.設計中采用了模塊化設計思想,每個模塊實現(xiàn)某種特定功能.時鐘分頻模塊clkdiv為其他模塊提供時鐘信號,模數(shù)轉換控制器ad_ctrl控制外部的并行模數(shù)轉換器TLV571正常工作,ROM adcrom的地址和存儲數(shù)據(jù)分別對應于數(shù)字電壓和模擬電壓值的BCD碼,BCD碼運算控制器conv_bcd實現(xiàn)BCD碼的加法運算,數(shù)碼管顯示控制模塊seg7實現(xiàn)被測電壓在4個數(shù)碼管上的動態(tài)顯示.

        圖1中各模塊輸入輸出端口連線上的標識符表明該連線為FPGA控制器的內部信號線,用于各模塊之間的連接,如clkdiv模塊為seg7模塊提供時鐘信號clk_seg7,ad_ctrl模塊輸出的數(shù)字電壓d_adc為adcrom模塊提供存儲模擬電壓值的地址addr.

        1.2 FPGA器件與外設的連接

        圖1中也顯示了FPGA器件與外設的連接關系.各模塊輸入輸出端口連線左右兩側的標識符表示FPGA器件相應引腳將與實驗平臺上的外設進行硬件連接.圖1右上角為FPGA器件與TLV571的連接關系,tube_n和dp_gtoa分別接數(shù)碼管的位選和段選端,clk_100,M接100MHz的外部晶振,rst接按鈕用于復位.

        clkdiv模塊和seg7模塊有大量的VHDL源程序可供參考,這里不作介紹.下面重點介紹TLV571的工作原理與實現(xiàn)、數(shù)字電壓和模擬電壓值與ROM地址和數(shù)據(jù)的對應關系、BCD碼的加法運算.

        2 AD轉換器TLV571的工作時序與FPGA控制

        2.1 TLV571的工作時序

        TLV571是8位并行AD轉換器,每次轉換需要16個時鐘周期.為了使其正常工作,需要先配置內部的控制寄存器CR0、CR1.該芯片共有24個引腳,其中,A1/D7、A0/D6、D5~D0為數(shù)據(jù)輸入/輸出端,用于輸入對CR0(A1A0=00時)和CR1(A1A0=01時)的配置信息、輸出AD轉換后的8位數(shù)字電壓;片選、寫、讀、轉換完成標志均低電平有效;待測電壓由AIN端輸入.

        CR0、CR1配置不同則AD轉換器的工作時序有所不同[6].在本設計中CR0寄存器被配置為00,101,000(16進制數(shù)為28,H),CR1寄存器被配置為01,000,000(16進制數(shù)為40,H),即選擇由外部時鐘控制、用軟件方式啟動、當變?yōu)榈碗娖綍r表示AD轉換已完成、輸出8位二進制數(shù),其工作時序如圖2所示.

        圖2 TLV571工作時序圖(軟件啟動)Fig. 2 Timing chart of TLV571(software start)

        2.2 TLV571的FPGA控制

        圖1中的ad_ctrl模塊是TLV571的控制模塊,其VHDL語言編程采用了狀態(tài)機的方式.如圖3所示,共有8個狀態(tài)s0—s7,每個狀態(tài)下的片選信號nCS、寫信號nWR、讀信號nRD和AD轉換完成標志nINT嚴格按照圖2的工作時序進行設置.

        圖3 TLV571狀態(tài)轉換圖Fig. 3 Diagram of TLV571 state transition

        3 模擬電壓BCD碼的存儲

        已知FPGA實驗平臺上的TLV571參考電壓為3.3V,因此數(shù)字電壓表的可測量范圍為0~3.3V.TLV571為8位并行輸出,可知其電壓最小分辨率為3.3V/256≈0.013V,即AD輸出數(shù)字電壓d_adc為00,000,001時所對應的模擬電壓值為0.013V,據(jù)此可求出任意8位數(shù)字電壓所對應的模擬電壓值.

        為了簡化運算,事先將數(shù)字電壓的高4位和低4位所對應的模擬電壓值存儲在ROM中,如表1第2、4、6、8列所示,其中第2列d_adch和第6列d_adcl分別為d_adc的高4位和低4位.根據(jù)AD輸出的實際數(shù)字電壓,查表1后將d_adch和d_adcl所對應的模擬電壓值相加即可得到待測模擬電壓值.例如當d_adc為10,111,111時,其高4位1,011和低4位1,111對應的模擬電壓值分別為2.288V和0.195V,所以可得待測模擬電壓值為2.288+0.195=2.483V.

        存儲器只能存儲二進制數(shù),所以實際存儲在ROM中的數(shù)據(jù)是模擬電壓值的BCD碼,即用十六進制表示的十進制數(shù).ROM中存儲的數(shù)據(jù)與模擬電壓值對應,ROM地址與AD輸出的數(shù)字電壓d_adc對應.由表1可知,每個模擬電壓值所對應的BCD碼由4位十六進制數(shù)組成,ROM中的每個存儲單元可存放2位十六進制數(shù),所以每個BCD碼占用2個存儲單元,32個BCD碼共占用64個存儲單元.由此可令ROM的低端地址00,H~1F,H存儲電壓值對應的高4位BCD碼d_bcdh,ROM的高端地址20,H~3F,H存儲電壓值對應的低4位BCD碼d_bcdl.而ROM地址與d_adch和d_adcl的對應關系為:用d_adch乘以2作為ROM地址addr_h1,用d_adcl乘以2再加上偏移量20,H作為ROM地址addr_l1.

        計算ROM地址的VHDL程序如下:

        表1 數(shù)字電壓、模擬電壓與ROM地址、ROM數(shù)據(jù)的對應關系Tab. 1 Correspondence among digital voltage,analog voltage,ROM address and ROM data

        4 BCD碼加法運算原理

        2個十進制數(shù)相加逢十進一,2個十六進制數(shù)相加逢十六進一,為了使2個與電壓值對應的BCD碼在進行加法運算時能夠逢十進一,需要對運算規(guī)則進行調整:設1個16位的中間變量tmp用于存儲調整值,設最低位的進位位co=0.按照從低位到高位的順序,將2個BCD碼相同位之和與co相加.當結果大于1,001(9)時,tmp與之相同位賦值0,110(6),并使相鄰高位的co=1;當結果小于等于1,001(9)時,tmp與之相同位賦值0,000,并使相鄰高位的co=0.循環(huán)4次后將2個BCD碼之和與tmp按二進制數(shù)相加,所得結果的十六進制數(shù)表示即為2個BCD碼之和.VHDL程序段如下:

        ——大于9時需加6,且向高位有進位

        以模擬電壓2.483V為例,經由AD轉換后得到數(shù)字電壓d_adc為10,111,111,查表1可知,高4位1,011對應的ROM地址addr_h1為16,H、addr_h2為17,H,其中存放的數(shù)據(jù)d_bcdh為2,288,H;低4位1,111對應的ROM地址addr_l1為3E,H、addr_l2為3F,H,其中存放的數(shù)據(jù)d_bcdl為0,195,H.對這2個BCD碼進行加法運算,最終得到BCD碼2,483,H與模擬電壓值完全一致,只是在最高位后面缺小數(shù)點,這個問題只需在數(shù)碼管顯示控制模塊seg7中不僅點亮相應數(shù)字的段,而且點亮最高位數(shù)碼管的點即可解決.

        5 硬件測試

        數(shù)字電壓表的硬件測試在合眾達SEED-XDTK FPGA教學實驗平臺上進行,所用FPGA器件為Xilinx公司的XC4VSX25.在Xilinx集成開發(fā)環(huán)境ISE10.1中對工程進行綜合、實現(xiàn)、產生可編程文件后下載(配置目標器件)到實驗平臺上.用萬用表(倍思特數(shù)字萬用表DT–9205,20V檔,精確到小數(shù)點后2位)和本設計實現(xiàn)的數(shù)字電壓表(精確到小數(shù)點后3位)檢測并顯示實驗平臺上6個測試點的電壓值,結果見表2.測量的相對誤差小于3%.

        VHDL Programming and Hardware Realization of the Digital Voltmeter

        LI Yajun,XU Shichao,HUANG Jianmin,WANG Jie,MA Qiang
        (College of Electronic Information and Automation,Tianjin University of Science & Technology,Tianjin 300222,China)

        Combining FPGA with ADC TLV571,a digital voltmeter was designed. The analog voltage measurement,analog-digital conversion,computing and reading were realized with VHDL language. TLV571,was controlled by FPGA with a state machine. The digital voltage and BCD codes of analog voltage are in one-to-one correspondence with the ROM address and data. Using the look-up tables,the highest four bit BCD codes and the lowest four bit BCD codes can be read from corresponding ROM addresses and then the analog voltage can be computed through the addition operation of the two BCD codes. Experiments with experimental platform confirmed the validity of the digital voltmeter’s design.

        FPGA;VHDL;ADC;BCD code

        TP332.1

        A

        1672-6510(2014)01-0065-04

        10.13364/j.issn.1672-6510.2014.01.013

        2013–08–21;

        2013–11–04

        天津市教育科學“十二五”規(guī)劃課題(HEYP6021);天津科技大學實驗室開放基金資助項目(1202A301)

        李亞峻(1973—),女,內蒙古包頭人,講師,lyj_2872@sohu.com.

        猜你喜歡
        電壓表器件編程
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        如何判斷電壓表的測量對象
        判斷電壓表測量對象有妙招
        電壓表的妙用
        再探電壓表內阻的測量方法
        旋涂-蒸鍍工藝制備紅光量子點器件
        面向高速應用的GaN基HEMT器件
        国产91一区二这在线播放| 国产md视频一区二区三区| 亚洲av无码国产精品色午夜洪| 亚洲AV色无码乱码在线观看| 国产伦码精品一区二区| 亚洲综合一区二区三区在线观看| 亚洲日韩精品a∨片无码加勒比| 男女下面进入的视频| 亚洲欧洲国产成人综合在线| 久久精品人妻无码一区二区三区| 免费特级毛片| 丰满多毛少妇做爰视频| 国产精品亚洲A∨天堂| 人妻少妇精品视频中文字幕国语| 免费观看在线视频播放| 中字乱码视频| 久久99精品国产99久久6尤物| 久久精品国产6699国产精| 日本不卡一区二区三区在线观看| 国语自产精品视频在线看| 欧美最猛黑人xxxx黑人表情| 久久精品国产亚洲av大全相关| 一本色道加勒比精品一区二区| 免费乱理伦片在线观看| 亚洲精品无码高潮喷水在线 | 成人免费无遮挡在线播放| 欧美做受视频播放| 黑人免费一区二区三区| 人成综合视频在线播放| 欧美又粗又长又爽做受| 国产精品一区二区 尿失禁| 国产精品一区二区av白丝在线| 亚洲精品国产av成拍| 精品国产一区二区三区av| 全部孕妇毛片丰满孕妇孕交| 亚洲天天综合色制服丝袜在线| 国产91极品身材白皙| 四虎影视成人永久免费观看视频| 麻豆亚洲av永久无码精品久久| 国内精品视频成人一区二区| 日本在线观看一区二区视频|