引 言
串行外圍設(shè)備接口(Serial Peripheral Interface,,SPI)總線技術(shù)是Motorola公司推出的一種高速同步串行輸入/輸出接口,,近年來(lái)廣泛應(yīng)用于外部移位寄存器,、D/A轉(zhuǎn)換器、 A/D轉(zhuǎn)換器,、串行EEPROM,、LED顯示器等外部設(shè)備的拓展。SPI總線是一種三線同步總線(CLK,、SI-MO,、SOMI),可以共享,,便于組成帶多個(gè)SPI接口的控制系統(tǒng),。其傳輸速率可編程,連接線少,,具有良好的拓展性,。
ADS1178" title="ADS1178">ADS1178是一款典型的具有SPI接口的A/D轉(zhuǎn)換器,它可以方便地與帶有SPI接口的處理器或控制器相連接,。OMAP" title="OMAP">OMAP-L137是一款處理能力強(qiáng),、外接存儲(chǔ)空間大、集成度高,、外設(shè)管理方便的新型工控芯片,。
目前,ADS1178與OMAP-L137的數(shù)據(jù)通信" title="數(shù)據(jù)通信">數(shù)據(jù)通信主要通過(guò)SPI接口直接連接實(shí)現(xiàn),。通過(guò)配置,,使OMAP-L137工作在主模式,ADS1178工作在從模式,,由OMAP-L137提供用來(lái)進(jìn)行數(shù)據(jù)傳輸?shù)臅r(shí)鐘,。但是,采用此模式結(jié)合EDMA進(jìn)行數(shù)據(jù)接收時(shí),,每接收一組采樣數(shù)據(jù)都需要通過(guò)中斷來(lái)改變接收數(shù)據(jù)的存放地址,,即完成N組數(shù)據(jù)的接收需要N個(gè)中斷來(lái)完成,這會(huì)給系統(tǒng)的資源管理帶來(lái)很大的麻煩,。
本設(shè)計(jì)使OMAP-L137,、ADS1178的SPI接口工作在從模式,由CPLD" title="CPLD">CPLD作主片來(lái)提供進(jìn)行數(shù)據(jù)傳輸?shù)臅r(shí)鐘,。在準(zhǔn)確,、快速完成數(shù)據(jù)傳輸?shù)耐瑫r(shí),節(jié)省了處理器資源,,方便了系統(tǒng)資源的管理,。
1 硬件設(shè)計(jì)
1.1 芯片概述
ADS1178是TI公司于2008年9月推出的一款A(yù)/D控制芯片,它采用△-∑模/數(shù)轉(zhuǎn)換器結(jié)構(gòu),,可以達(dá)到16位的數(shù)據(jù)采集精度,,并且擁有良好的交流特性,。其帶寬達(dá)25 kHz,具有97 dB的信噪比和-105 dB的總諧波失真,。在正常工作時(shí)每通道的功耗只有31 mW,,支持8路通道同時(shí)采樣,并將數(shù)據(jù)依次連續(xù)地送上數(shù)據(jù)總線,;在滿足實(shí)時(shí)同步采樣的同時(shí),,還具有52 ksps的轉(zhuǎn)換速率。該芯片主要應(yīng)用于三相交流電的實(shí)時(shí)監(jiān)測(cè),、心電圖監(jiān)視器,、質(zhì)量流量計(jì),、振動(dòng)系統(tǒng)的模態(tài)分析實(shí)驗(yàn)設(shè)計(jì),,同時(shí)還支持SPI和幀同步兩種數(shù)據(jù)傳輸格式,并支持A/D間的級(jí)聯(lián),。
OMAP-L137是TI司推出的針對(duì)工業(yè)控制領(lǐng)域的雙核處理器,,它綜合了ARM和DSP兩個(gè)處理器各自在實(shí)時(shí)性和計(jì)算精度上的優(yōu)勢(shì)。兩個(gè)處理器的主頻均達(dá)到300MFHz(DSP的處理速度高達(dá)2 400MIPS/1 800MFLOPS),??梢酝饨?個(gè)存儲(chǔ)空間EMIFA和EMIFB,并且在片上有著非常豐富的外設(shè)資源,,主要針對(duì)工業(yè)應(yīng)用環(huán)境的控制提供了EHRPWM,、ECAP、EQEP,、 EMAC等模塊,,并在各控制模塊和各接口之間采用EDMA3模塊進(jìn)行數(shù)據(jù)傳遞。這大大減輕了雙核處理器的負(fù)擔(dān),,占用很少的處理器資源,,同時(shí)在兩個(gè)處理器之間開辟了一塊128 KB的共享存儲(chǔ)空間,可以使數(shù)據(jù)在雙核之間快速地進(jìn)行交換,。
1.2 硬件原理
在SPI從模式下,,設(shè)計(jì)使OMAP-L137、ADS1178作從片,,CPLD作主片來(lái)提供進(jìn)行數(shù)據(jù)傳輸?shù)臅r(shí)鐘,。OMAP-L137的SPI接口支持3針、4針,、5針三種傳輸模式,,這里采用3針模式(即CLK、SIMO,、SOMI),。OMAP- L137引出一個(gè)GPIO口作同步信號(hào)線SYCN,,ADS1178的READY信號(hào)線送給CPLD用來(lái)產(chǎn)生采樣時(shí)鐘,硬件連接如圖1所示,。CLK用來(lái)傳遞接收和發(fā)送數(shù)據(jù)時(shí)的同步時(shí)鐘信號(hào),,SIMO在OMAP-L137作主片時(shí)為輸出數(shù)據(jù)線,在OMAP-L137作從片時(shí)為輸人數(shù)據(jù)線,。SOMI在此模式下不被采用,。
OMAP-L137的SPI接口工作在從模式的配置如下:SPIGCR1寄存器的低2位配置為00,選擇SPI工作在從模式,;通過(guò)配置SPIPC0和 SPIPC1寄存器來(lái)選擇采用的針模式和引腳的信號(hào)方向,,這里選擇使能CLK、SIMO,、SOMI三根信號(hào)線,,并分別配置為輸入、輸入和輸出,;配置 SPIFMT0寄存器先輸出每組數(shù)據(jù)的“大端MSB”,,根據(jù)ADS1178手冊(cè)中對(duì)數(shù)據(jù)輸出時(shí)序的要求,配置數(shù)據(jù)在CLK信號(hào)的下降沿輸出,,使CLK信號(hào)工作在13MHz,,同時(shí)配置現(xiàn)在的數(shù)據(jù)總線為16位。SPI的參考配置如表1所列,。
在采樣數(shù)據(jù)送到OMAP-L137的SPI接口時(shí),,可以啟動(dòng)EDMA模塊來(lái)對(duì)采樣數(shù)據(jù)進(jìn)行搬移。EDMA的觸發(fā)事件為SPI的每一通道數(shù)據(jù)(16位)的接收中斷,,相當(dāng)于完成一組(8通道)數(shù)據(jù)的傳輸需要8個(gè)觸發(fā)事件,。EDMA的參數(shù)相關(guān)配置如圖2所示。其中,,OPT,、DSTCINT、SRCCIND和 CCNT都需要根據(jù)應(yīng)用情況來(lái)進(jìn)行參數(shù)配置,。
2 軟件設(shè)計(jì)
2.1 CPLD程序設(shè)計(jì)
CPLD中主要實(shí)現(xiàn)ADS1178對(duì)數(shù)據(jù)格式的要求,。在檢測(cè)到READY信號(hào)的電平變化后,以外部時(shí)鐘ECLK為時(shí)鐘基準(zhǔn),,產(chǎn)生128個(gè)時(shí)鐘周期 (CLK)分別送給OMAP-L137和ADS1178,,來(lái)完成8通道的數(shù)據(jù)傳輸。圖3為等效原理圖,,CPLD程序流程如圖4所示,。
2.2 采樣程序設(shè)計(jì)
代碼調(diào)試中的主要工作是測(cè)試同步采樣A/D的8路通道。SPI和EDMA的參考配置及使能在上面已經(jīng)完成。當(dāng)ADS1178開始數(shù)據(jù)采集時(shí),,通過(guò)GPIO口由OMAP-L137先向ADS1178發(fā)送一個(gè)由低變高的同步信號(hào)來(lái)通知 ADS1178開始工作,。當(dāng)ADS1178完成了數(shù)據(jù)轉(zhuǎn)換時(shí),向OMAP-L137發(fā)送一個(gè)由高到低的READ-Y信號(hào),,通知OMAP-L137數(shù)據(jù)已經(jīng)準(zhǔn)備就緒,,等待主芯片的時(shí)鐘將數(shù)據(jù)送到數(shù)據(jù)線上;并在CPLD送出采樣時(shí)鐘后,,等待EDMA的數(shù)據(jù)接收中斷,,當(dāng)中斷到來(lái)時(shí)完成數(shù)據(jù)的采集工作。采樣程序流程如圖5所示,。
3 系統(tǒng)測(cè)試
通過(guò)示波器可以觀測(cè)到CLK(圖6中上面的曲線)和SIMO(圖6中下面的曲線)引腳的波形圖,。采樣結(jié)果放在數(shù)組Adresult中,如圖7所示,。
從圖6和圖7中可以看出,,采用SPI從模式的數(shù)據(jù)傳輸方法,可以通過(guò)CPLD上的程序設(shè)計(jì)得到128個(gè)連續(xù)的采樣時(shí)鐘,,數(shù)據(jù)傳遞的連續(xù)性好,,每組時(shí)鐘之間不存在時(shí)鐘間隔。在程序處理的后續(xù)階段,,通過(guò)配置EDMA的接收事件就可以連續(xù)接收多組數(shù)據(jù),在數(shù)據(jù)全部接收到OMAP-L137中時(shí)觸發(fā)一次中斷便可完成接收工作,,從而節(jié)省了處理器資源,。
4 結(jié) 論
在OMAP-L137與ADS1178的實(shí)時(shí)采集數(shù)據(jù)傳遞問(wèn)題上,采用SPI主模式進(jìn)行數(shù)據(jù)接收時(shí),,每接收一組數(shù)據(jù)后都需要通過(guò)中斷資源來(lái)變更接收地址,。而本文通過(guò)SPI從模式進(jìn)行數(shù)據(jù)接收,可以在接收完多組數(shù)據(jù)后僅用一次接收中斷便結(jié)束工作,,節(jié)約了處理器資源,,并且實(shí)際測(cè)試表明,傳輸數(shù)據(jù)的連續(xù)性和實(shí)時(shí)性較好,。由此看出,,采用SPI從模式配合CPLD來(lái)處理OMAP-L137與ADS1178數(shù)據(jù)通信問(wèn)題無(wú)疑是一種很好的解決方案。