隨著計算機和自動化測量技術的日益發展,測量儀器和計算機的關系日益密切。計算機的很多成果很快就應用到測量和儀器領域,與計算機相結合已經成為測量儀器和自動測試系統發展的必然趨勢。高度集成的現場可編程門陣列(FPGA)是超大規模集成電路和計算機輔助設計技術發展的結果,由于FPGA器件具備集成度高、體積小、可以利用基于計算機的開發平臺,用編寫軟件的方法來實現專門硬件的功能等優點,大大推動了數字系統設計的單片化、自動化,縮短了單片數字系統的設計周期、提高了設計的靈活性和可靠性。 本文研究基于網絡的高速數據采集系統的設計與實現問題。論文完成了以FPGA結構為系統硬件平臺,uClinux為核心的系統的軟件平臺設計,進行信號的采集和遠程網絡監測的功能。 論文從軟硬件兩方面入手,闡述了基于FPGA器件進行數據采集的硬件系統設計方法,以及基于uClinux操作系統的設備驅動程序設計和應用程序設計。 硬件方面,FPGA采用Xilinx公司Spartan系列的XC3S500芯片,用verilog HDL硬件描述語言在Xilinx公司提供的ISE輔助設計軟件中實現FPGA編程。將微處理器MicroBlaze、數據存儲器、程序存儲器、以太網控制器、數模轉換控制器等數字邏輯電路通過CoreConnect技術用OPB總線集成在同一個FPGA內部,形成一個可編程的片上系統(SOPC)。采用基于FPGA的SOPC設計的突出優點是不必更換芯片就可以實現設計的改進和升級,同時也可以降低成本和提高可靠性。 軟件方面,為了更好更有效地管理和拓展系統功能,移植了uClinux到MicroBlaze軟處理器上,設計實現了平臺上的ADC設備驅動程序和數據采集應用程序。并通過修訂內核,實現了利用以太網TCP/IP協議來訪問數據采集程序獲得的數據。
上傳時間: 2013-05-23
上傳用戶:晴天666
本課題完成了基于FPGA的數據采集器以及IIC總線的模數轉換器部分、通訊部分的電路設計。其中FPGA采用Xilinx公司Spartan-Ⅱ系列的XC2S100芯片,在芯片中嵌入32位軟處理器MicroBlaze;ⅡC總線的模數轉換采用Microchip公司的MCP3221芯片,通訊部分則在FPGA片內用VHDL語言實現。通過上述設計實現了“準單片化”的模擬量和數字量的數據采集和處理。 所設計的數據采集器可以和結構類似的上位機通訊,本課題完成了在上位機中用VHDL語言實現的通信電路模塊。通過上述兩部分工作,將微處理器、數據存儲器、程序存儲器等數字邏輯電路均集成在同一個FPGA內部,形成一個可編程的片上系統。FPGA片外僅為模擬器件和開關量驅動芯片。FPGA內部的硬件電路采用VHDL語言編寫;MCU軟核工作所需要的程序采用C語言編寫。多臺數據采集器與服務器構成數據采集系統。服務器端軟件用VB開發,既可以將實時采集的數據以數字方式顯示,也可以用更加直觀的曲線方式顯示。 由于數據采集器是所有自控類系統所必需的電路模塊,所以一個通用的片上系統設計可以解決各類系統的應用問題,達到“設計復用”(DesignReuse)的目的。采用基于FPGA的SOPC設計的更加突出的優點是不必更換芯片就可以實現設計的改進和升級,同時也可以降低成本和提高可靠性。
上傳時間: 2013-07-12
上傳用戶:a155166
隨著電子技術的發展,當前數字系統的設計正朝著速度快、容量大、體積小、重量輕的方向發展.FPGA以其功能強大,開發過程投資少、周期短,可反復修改,保密性能好,開發工具智能化等特點成為當今硬件設計的首選方式之一.由于Intel公司的MCS-51系列單片機被公認為8位機的工業標準,因此,使用FPGA模擬實現8051單片機及其外設的功能便成為大規模復雜數字系統設計中的重要課題.該文首先介紹了FPGA及Xilinx公司關于硬件設計開發的工具ISE系統,繼而用VHDL語言編寫了8051單片機功能實現的源代碼,然后為其設計了與部分外設連接的接口模塊,包括8255并行接口、SCI串行接口和KBC鍵盤接口模塊.并將它們封裝到一塊FPGA之中,最終實現了8051單片機的大部分功能.
上傳時間: 2013-07-28
上傳用戶:erkuizhang
FPGA技巧Xilinx
上傳時間: 2013-11-09
上傳用戶:hxy200501
特點: 精確度0.1%滿刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT類比輸出功能 輸入與輸出絕緣耐壓2仟伏特/1分鐘(input/output/power) 寬范圍交直流兩用電源設計 尺寸小,穩定性高
上傳時間: 2014-12-23
上傳用戶:ydd3625
特點(FEATURES) 精確度0.1%滿刻度 (Accuracy 0.1%F.S.) 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 類比輸出功能(16 bit DAC isolating analog output function) 輸入/輸出1/輸出2絕緣耐壓2仟伏特/1分鐘(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 寬范圍交直流兩用電源設計(Wide input range for auxiliary power) 尺寸小,穩定性高(Dimension small and High stability)
上傳時間: 2013-11-24
上傳用戶:541657925
/*--------- 8051內核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序狀態字寄存器 sbit CY = PSW^7; //進位標志位 sbit AC = PSW^6; //輔助進位標志位 sbit F0 = PSW^5; //用戶標志位0 sbit RS1 = PSW^4; //工作寄存器組選擇控制位 sbit RS0 = PSW^3; //工作寄存器組選擇控制位 sbit OV = PSW^2; //溢出標志位 sbit F1 = PSW^1; //用戶標志位1 sbit P = PSW^0; //奇偶標志位 sfr SP = 0x81; //堆棧指針寄存器 sfr DPL = 0x82; //數據指針0低字節 sfr DPH = 0x83; //數據指針0高字節 /*------------ 系統管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //電源控制寄存器 sfr AUXR = 0x8E; //輔助寄存器 sfr AUXR1 = 0xA2; //輔助寄存器1 sfr WAKE_CLKO = 0x8F; //時鐘輸出和喚醒控制寄存器 sfr CLK_DIV = 0x97; //時鐘分頻控制寄存器 sfr BUS_SPEED = 0xA1; //總線速度控制寄存器 /*----------- 中斷控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中斷允許寄存器 sbit EA = IE^7; //總中斷允許位 sbit ELVD = IE^6; //低電壓檢測中斷控制位 8051
上傳時間: 2013-10-30
上傳用戶:yxgi5
TLC2543是TI公司的12位串行模數轉換器,使用開關電容逐次逼近技術完成A/D轉換過程。由于是串行輸入結構,能夠節省51系列單片機I/O資源;且價格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應用。 TLC2543的特點 (1)12位分辯率A/D轉換器; (2)在工作溫度范圍內10μs轉換時間; (3)11個模擬輸入通道; (4)3路內置自測試方式; (5)采樣率為66kbps; (6)線性誤差±1LSBmax; (7)有轉換結束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導; (10)可編程輸出數據長度。 TLC2543的引腳排列及說明 TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1 TLC2543電路圖和程序欣賞 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上傳時間: 2013-11-19
上傳用戶:shen1230
#include<iom16v.h> #include<macros.h> #define uint unsigned int #define uchar unsigned char uint a,b,c,d=0; void delay(c) { for for(a=0;a<c;a++) for(b=0;b<12;b++); }; uchar tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
上傳時間: 2013-10-21
上傳用戶:13788529953
題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。 1.程序分析:(a>b)?a:b這是條件運算符的基本例子。
上傳時間: 2015-01-08
上傳用戶:lifangyuan12