李 寧,宋俊杰,黃元峰,雷元林
(1.武漢工程大學 電氣信息學院 湖北 武漢 430205;2.漢江丹江口鋁業(yè)有限公司 湖北 丹江口 442700)
隨著微處理器的發(fā)展及其在各領域的廣泛應用,人們對電子測量技術和電子儀器系統(tǒng)提出越來越高的要求,對測試速度和精確度的要求也與日俱增。測試系統(tǒng)主要包括對實時數(shù)據(jù)的高速采集、現(xiàn)場顯示和分析處理3部分,其中最重要的一環(huán)就是實時數(shù)據(jù)高速采集,因為它關系到能否真實反映被測對象的狀態(tài)和性能。根據(jù)實際項目需要,文中基于80C51F040單片機的SPI總線和AD7891芯片,設計實現(xiàn)了多路數(shù)據(jù)的高速采集。文中給出了系統(tǒng)的主要硬件電路和對時序控制的軟件編程。
本數(shù)據(jù)采集系統(tǒng)功能是能對多路電壓和電流進行高速采集和分析處理,其要求精度高,線性度好,采集電壓要求以1 mV為單位,模擬信號輸入范圍為-10~+10 V。系統(tǒng)處理芯片采用Silicon Laboratories公司出品的C8051F040單片機是完全集成的混合信號系統(tǒng)級芯片(SOC),具有與MCS-51完全兼容的指令內(nèi)核,該系列單片機采用流水線處理(pipe line)技術不再區(qū)分時鐘周期和機器周期,能在執(zhí)行指令期間預處理下一條指令,提高指令執(zhí)行效率。而且大部分C8051F040單片機具備控制系統(tǒng)所需要的模擬和數(shù)字外設,包括看門狗、ADC、DAC、電壓比較器、電壓基準輸出、定時器、PWM、定時器捕捉和方波輸出等,并具備多種總線接口,包括UART、SPI、SMBUS(與 IC 兼容)總線以及 CAN 總線。 C8051F系類單片機采用Flash ROM技術,集成JTAG,支持在線編程。C8051F系列單片機諸多特點和優(yōu)越性,使其廣受單片機系統(tǒng)設計工程師青昧,成為很多測控系統(tǒng)設計的首選機型[1]。雖然C8051F040內(nèi)部提供A/D轉換器,但在實時高速采集中易受干擾,性噪比比較低,A/D轉換速度不能滿足高速數(shù)據(jù)采集系統(tǒng)的要求,為了滿足系統(tǒng)的指標、提高數(shù)據(jù)的精確性采樣和系統(tǒng)的抗干擾能力,本數(shù)據(jù)采集系統(tǒng)根據(jù)實際情況采用外擴的A/D轉換芯片[2]。
本數(shù)據(jù)采集系統(tǒng)采用的A/D芯片是美國ADI公司推出的一種AD7891 12位數(shù)據(jù)采集系統(tǒng)(DAS),它具有并行和串行兩種工作模式,適合各種微處理器、控制器以及數(shù)字信號處理機接口。AD7891內(nèi)含有多路轉換器、采樣保持放大器、12位高速ADC、+2.5 V基準電壓源和高速接口電路,并有8個具有過壓保護的模擬信號通道,AD7891-1可承受的過壓為±17 V。AD7891的模數(shù)轉換時間是1.6 μs,采樣時間為1.4 μs。當只對一個通道信號采樣時,采樣率為500 kSPS;當對8個通道信號逐個采樣時,采樣率為62.5 kSPS,AD7891-1使用硬件或軟件方法控制轉換開始得數(shù)據(jù)采樣時間分別為0.6 μs和 0.7 μs,相應的數(shù)據(jù)采集率分別為 454.5 kSPS和435 kSPS。AD7891采用單電源工作,功耗低,可選擇輸入信號的范圍,也可并行或串行工作,非常適合用于數(shù)據(jù)采集系統(tǒng)、電機控制、移動通信系統(tǒng)和測試設備等方面的應用[3]。AD7891管腳功能說明如表1所示。
通常在高速數(shù)據(jù)采集系統(tǒng)中,AD7891和單片機之間的接口有串行和并行兩種方式,采用軟件控制數(shù)據(jù)線的方式來滿足系統(tǒng)所要求得采集速度。由于C80C51F040單片機具有SPI總線接口功能,所以本數(shù)據(jù)采集系統(tǒng)采用串行工作方式,數(shù)據(jù)的讀取通過單片機的SPI總線來傳輸,不僅能夠滿足采集系統(tǒng)的快速性要求,在硬件上也較易實現(xiàn)[4]。圖1是AD7891與80C51F040單片機的接口電路。

表1 AD7891管腳功能說明Tab.1 AD7891 pin functions description
為了實現(xiàn)對模擬量的高速采樣,首先要對AD7891的時序進行分析,圖2為AD7891的串行讀操作時序圖,圖3為AD7891的串行寫操作時序圖。

圖1 AD7891與C8051F040單片機接口電路Fig.1 AD7891 and C8051F040 MCU interface circuit

圖2 AD7891的串行讀操作時序圖Fig.2 AD7891 serial read operation sequence diagram
圖2為AD7891的串行讀操作時序圖,從圖2中可以看出,當單片機要從AD7891中讀取數(shù)據(jù)時,必須先將置低,串行數(shù)據(jù)時一位一位的接收的。在整個數(shù)據(jù)傳輸過程中,必須一直保持低電平。傳輸?shù)臄?shù)據(jù)格式是一次傳輸16位數(shù)據(jù),數(shù)據(jù)的傳輸是以FORMAT位開始的,緊接著是3位地址位,接下來是12位數(shù)據(jù)位,存放的是12位AD轉換的值,每一位數(shù)據(jù)都是在時鐘的上升沿開始發(fā)送的,16位數(shù)據(jù)發(fā)送完成后,DATA OUT線一直保持高阻態(tài)直到和SCLK其中任意一個有一個上升沿的脈沖出現(xiàn)[5]。

圖3 AD7891的串行寫操作時序圖Fig.3 AD7891 serial write operation sequence diagram
圖3為AD7891的串行寫操作時序圖,從圖3中可以看出,當單片機向AD7891中寫數(shù)據(jù)時,必須先將置低,AD7891的控制寄存器只接收前6位數(shù)據(jù),前三位A0、A1、A2用于配置AD采樣通道,在接收完前6位數(shù)據(jù)之后不再接收數(shù)據(jù),數(shù)據(jù)的接收都是在時鐘的下降沿進行的[6]。下面給出通道1采集的主要程序代碼(C語言)


文中基于串行SPI通信方式,設計了一個高速數(shù)據(jù)采集系統(tǒng),用SPI總線來實現(xiàn)數(shù)據(jù)的讀取,能夠滿足數(shù)據(jù)采集系統(tǒng)的要求,具有硬件結構簡單,軟件編程容易的特點。
[1]童長飛.C8051F系列單片機開發(fā)與C語言編程[M].北京航空航天大學出版社,2005.
[2]潘琢金.C8051F040/1/2/3/4/5/6/7混合信號ISP FLASH處理器數(shù)據(jù)手冊[Z].新華龍電子有限公司.
[3]徐愛均,彭秀華.單片機高級語言C51 Windows環(huán)境編程與應用[M].北京:電子工業(yè)出版社,2003.
[4]陳勁超.利用增強型并口設計12位數(shù)據(jù)采集系統(tǒng)[J].電子工程師,2001,27(7):1-3.CHEN Jing-chao.Use of enhanced parallel port design of 12 bit data acquisition system[J].Electronic Engineer,2001,27(7):1-3.
[5]劉春生,游志剛,李曉波.AD7891高速數(shù)據(jù)采集系統(tǒng)的原理與應用[J].電子工程師,2001(3):6-9.
LIU Chun-sheng,YOU Zhi-gang,LI Xiao-bo.AD7891 high speed data acquisition system principle and Application[J].Electronic Engineer,2001(3):6-9.
[6]張迎新,雷文,姚靜波.C8051F系列SOC單片機原理及其應用[M].北京:國防工業(yè)出版社,2005.