基于SPI總線的多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:文中采用高精度AD芯片AD7891與C8051F040單片機(jī)組成高速數(shù)據(jù)采集系統(tǒng),通過(guò)SPI總線,將AD7891與C8051F040直接連接,方便的實(shí)現(xiàn)了8路模擬量的高速采集和傳輸,并給出了SPI總線的接口電路及軟件設(shè)計(jì)。
關(guān)鍵詞:高精度;單片機(jī);SPI;高速采集
隨著微處理器的發(fā)展及其在各領(lǐng)域的廣泛應(yīng)用,人們對(duì)電子測(cè)量技術(shù)和電子儀器系統(tǒng)提出越來(lái)越高的要求,對(duì)測(cè)試速度和精確度的要求也與日俱增。測(cè)試系統(tǒng)主要包括對(duì)實(shí)時(shí)數(shù)據(jù)的高速采集、現(xiàn)場(chǎng)顯示和分析處理3部分,其中最重要的一環(huán)就是實(shí)時(shí)數(shù)據(jù)高速采集,因?yàn)樗P(guān)系到能否真實(shí)反映被測(cè)對(duì)象的狀態(tài)和性能。根據(jù)實(shí)際項(xiàng)目需要,文中基于80C51F040單片機(jī)的SPI總線和AD7891芯片,設(shè)計(jì)實(shí)現(xiàn)了多路數(shù)據(jù)的高速采集。文中給出了系統(tǒng)的主要硬件電路和對(duì)時(shí)序控制的軟件編程。
1 系統(tǒng)的硬件實(shí)現(xiàn)
本數(shù)據(jù)采集系統(tǒng)功能是能對(duì)多路電壓和電流進(jìn)行高速采集和分析處理,其要求精度高,線性度好,采集電壓要求以1 mV為單位,模擬信號(hào)輸入范圍為-10~+10 V。系統(tǒng)處理芯片采用Silicon Laboratories公司出品的C8051F040單片機(jī)是完全集成的混合信號(hào)系統(tǒng)級(jí)芯片(SOC),具有與MCS-51完全兼容的指令內(nèi)核,該系列單片機(jī)采用流水線處理(pipeline)技術(shù)不再區(qū)分時(shí)鐘周期和機(jī)器周期,能在執(zhí)行指令期間預(yù)處理下一條指令,提高指令執(zhí)行效率。而且大部分C8051F040單片機(jī)具備控制系統(tǒng)所需要的模擬和數(shù)字外設(shè),包括看門狗、ADC、DAC、電壓比較器、電壓基準(zhǔn)輸出、定時(shí)器、PWM、定時(shí)器捕捉和方波輸出等,并具備多種總線接口,包括UART、SPI、SMBUS(與IC兼容)總線以及CAN總線。 C8051F系類單片機(jī)采用Flash ROM技術(shù),集成JTAG,支持在線編程。C8051F系列單片機(jī)諸多特點(diǎn)和優(yōu)越性,使其廣受單片機(jī)系統(tǒng)設(shè)計(jì)工程師青昧,成為很多測(cè)控系統(tǒng)設(shè)計(jì)的首選機(jī)型。雖然C8051F040內(nèi)部提供A/D轉(zhuǎn)換器,但在實(shí)時(shí)高速采集中易受干擾,性噪比比較低,A/D轉(zhuǎn)換速度不能滿足高速數(shù)據(jù)采集系統(tǒng)的要求,為了滿足系統(tǒng)的指標(biāo)、提高數(shù)據(jù)的精確性采樣和系統(tǒng)的抗干擾能力,本數(shù)據(jù)采集系統(tǒng)根據(jù)實(shí)際情況采用外擴(kuò)的A/D轉(zhuǎn)換芯片。
本數(shù)據(jù)采集系統(tǒng)采用的A/D芯片是美國(guó)ADI公司推出的一種AD7891 12位數(shù)據(jù)采集系統(tǒng)(DAS),它具有并行和串行兩種工作模式,適合各種微處理器、控制器以及數(shù)字信號(hào)處理機(jī)接口。AD7891內(nèi)含有多路轉(zhuǎn)換器、采樣保持放大器、12位高速ADC、+2.5 V基準(zhǔn)電壓源和高速接口電路,并有8個(gè)具有過(guò)壓保護(hù)的模擬信號(hào)通道,AD7891-1可承受的過(guò)壓為±17 V。AD7891的模數(shù)轉(zhuǎn)換時(shí)間是1.6μs,采樣時(shí)間為1.4μs。當(dāng)只對(duì)一個(gè)通道信號(hào)采樣時(shí),采樣率為500 kSPS;當(dāng)對(duì)8個(gè)通道信號(hào)逐個(gè)采樣時(shí),采樣率為62.5 kSPS,AD7891-1使用硬件或軟件方法控制轉(zhuǎn)換開始得數(shù)據(jù)采樣時(shí)間分別為0.6μs和0.7μs,相應(yīng)的數(shù)據(jù)采集率分別為454.5 kSPS和435 kSPS。AD7891采用單電源工作,功耗低,可選擇輸入信號(hào)的范圍,也可并行或串行工作,非常適合用于數(shù)據(jù)采集系統(tǒng)、電機(jī)控制、移動(dòng)通信系統(tǒng)和測(cè)試設(shè)備等方面的應(yīng)用。AD7891管腳功能說(shuō)明如表1所示。
通常在高速數(shù)據(jù)采集系統(tǒng)中,AD7891和單片機(jī)之間的接口有串行和并行兩種方式,采用軟件控制數(shù)據(jù)線的方式來(lái)滿足系統(tǒng)所要求得采集速度。由于C80C51F040單片機(jī)具有SPI總線接口功能,所以本數(shù)據(jù)采集系統(tǒng)采用串行工作方式,數(shù)據(jù)的讀取通過(guò)單片機(jī)的SPI總線來(lái)傳輸,不僅能夠滿足采集系統(tǒng)的快速性要求,在硬件上也較易實(shí)現(xiàn)闈。圖1是AD7891與80C51F040單片機(jī)的接口電路。
2 系統(tǒng)的軟件實(shí)現(xiàn)
為了實(shí)現(xiàn)對(duì)模擬量的高速采樣,首先要對(duì)AD7891的時(shí)序進(jìn)行分析,圖2為AD7891的串行讀操作時(shí)序圖,圖3為AD7891的串行寫操作時(shí)序圖。
圖2為AD7891的串行讀操作時(shí)序圖,從圖2中可以看出,當(dāng)單片機(jī)要從AD7891中讀取數(shù)據(jù)時(shí),必須先將置低,串行數(shù)據(jù)時(shí)一位一位的接收的。在整個(gè)數(shù)據(jù)傳輸過(guò)程中,必須一直保持低電平。傳輸?shù)臄?shù)據(jù)格式是一次傳輸16位數(shù)據(jù),數(shù)據(jù)的傳輸是以FORMAT位開始的,緊接著是3位地址位,接下來(lái)是12位數(shù)據(jù)位,存放的是12位AD轉(zhuǎn)換的值,每一位數(shù)據(jù)都是在時(shí)鐘的上升沿開始發(fā)送的,16位數(shù)據(jù)發(fā)送完成后,DATA OUT線一直保持高阻態(tài)直到和SCLK其中任意一個(gè)有一個(gè)上升沿的脈沖出現(xiàn)。
圖3為AD7891的串行寫操作時(shí)序圖,從圖3中可以看出,當(dāng)單片機(jī)向AD7591中寫數(shù)據(jù)時(shí),必須先將置低,AD7891的控制寄存器只接收前6位數(shù)據(jù),前三位A0、A1、A2用于配置AD采樣通道,在接收完前6位數(shù)據(jù)之后不再接收數(shù)據(jù),數(shù)據(jù)的接收都是在時(shí)鐘的下降沿進(jìn)行的。下面給出通道1采集的主要程序代碼(C語(yǔ)言)
3 結(jié)束語(yǔ)
文中基于串行SPI通信方式,設(shè)計(jì)了一個(gè)高速數(shù)據(jù)采集系統(tǒng),用SPI總線來(lái)實(shí)現(xiàn)數(shù)據(jù)的讀取,能夠滿足數(shù)據(jù)采集系統(tǒng)的要求,具有硬件結(jié)構(gòu)簡(jiǎn)單,軟件編程容易的特點(diǎn)。