SPORT及IDMA接口在電力系統(tǒng)監(jiān)控產(chǎn)品中的應(yīng)用
摘要:電力系統(tǒng)監(jiān)控產(chǎn)品中,模擬量數(shù)據(jù)流程是影響系統(tǒng)性能的重要因素。文中提出了一種基于ADSP中SPORT及IDMA的模擬量輸入接口。實際應(yīng)用表明,該方法可以簡化數(shù)據(jù)流程,提高系統(tǒng)效率。
關(guān)鍵詞:串行接口AD轉(zhuǎn)換器;SPORT接口;IDMA接口:ADSP芯片
國民經(jīng)濟(jì)的迅猛發(fā)展,對能源尤其是電能的要求也有所提高。因此,電力系統(tǒng)監(jiān)控產(chǎn)品也朝著精度更高,功能更強(qiáng),響應(yīng)更快發(fā)展。
當(dāng)前電力系統(tǒng)監(jiān)控產(chǎn)品如配網(wǎng)自動化控制器、電能質(zhì)量監(jiān)測、故障錄波、繼電保護(hù)等一般都采用DSP+MCU的設(shè)計方案,目的是將DSP的高速數(shù)字信號處理功能和MCU完善的管理、通訊、豐富的接口等功能相結(jié)合,從而使得產(chǎn)品功能更豐富,擴(kuò)展更靈活。
對于電力系統(tǒng)監(jiān)控產(chǎn)品來說,模擬量的獲取是一個非常重要的環(huán)節(jié)。以每周波采樣32點,6路模擬量計,每秒需要讀取的原始數(shù)據(jù)約為9.6 k字。顯然,頻繁的讀取工作非常繁復(fù),不管是對DSP還是MCU。更何況許多產(chǎn)品需要更高的采樣速度和更多的模擬量輸入。而DSF與MCU之間的數(shù)據(jù)交換同樣很繁復(fù)。
文中提出了一種基于ADSP-218X的模擬量數(shù)據(jù)流接口方法,可以避免因為頻繁讀取模擬量相關(guān)數(shù)據(jù)而造成的資源浪費。經(jīng)產(chǎn)品驗證,本方法更靈活,更合理。
1 接口原理
圖1為模擬量接口框圖。其中,ADSP-2185M主要負(fù)責(zé)AD轉(zhuǎn)換器輸入數(shù)據(jù)的收集和實時計算。由Actel公司的FPGA(APA150)實現(xiàn)采樣控制和接口邏輯。ADS8509是TI公司的一款SAR型AD轉(zhuǎn)換器,其精度為16位,采樣速度最高250KSPS,接口為串行接口。圖1也反映了模擬量數(shù)據(jù)流程。ADS8509在FPGA的控制下完成模擬量采集,其數(shù)據(jù)經(jīng)SPORT0口進(jìn)入ADSP-2185M。DSP在完成計算后,其計算結(jié)果經(jīng)IDMA口讀入MCU。
1.1 模擬量轉(zhuǎn)換結(jié)果輸入接口
SPORT口是AD公司獨有的一種同步串行口。在ADSP-218x系列、Blackfin等系列產(chǎn)品中都有提供。SPORT口有5根信號線,其定義為:
SCLK:時鐘信號
RFS:接收幀同步信號
TFS:發(fā)送幀同步信號
DR:串行數(shù)據(jù)接收
DT:串行數(shù)據(jù)發(fā)送
SPORT口有幾個突出的特點,包括:SPORT口是雙向的,具有獨立的雙緩沖發(fā)送或接收數(shù)據(jù)區(qū)即Double-buffered功能;Autobuffering即自動緩沖功能;幀長可變,串行數(shù)據(jù)長度從3到16位可選;時鐘信號可變,而且可以外部輸入,也可以內(nèi)部產(chǎn)生等。
Double-buffered即雙緩沖功能,實際是指發(fā)送和接收均有發(fā)送數(shù)據(jù)寄存器和移位寄存器共兩個寄存器,避免了因響應(yīng)不及時導(dǎo)致的數(shù)據(jù)丟失:Autobuffering即發(fā)送/接收的數(shù)據(jù)可以基于DMA操作自動讀出/寫入環(huán)形緩沖區(qū),而不需要外部干預(yù)。一旦發(fā)送緩沖區(qū)發(fā)完/接收緩沖區(qū)收滿,即可以引發(fā)中斷。如果在中斷服務(wù)程序中將緩沖區(qū)設(shè)為另一個,則可以兩個緩沖區(qū)輪流工作,從而為數(shù)據(jù)處理留出足夠的時間。
文中,SPORT0的時鐘由ADC提供,數(shù)據(jù)位長為16位。設(shè)置方法如下:
1.2 MCU與DSP間接口
IDMA口,即Internal Direct Memory Access口,是ADSP-218x系列產(chǎn)品的一個16位并行DMA接口。由于電力系統(tǒng)監(jiān)控產(chǎn)品中的原始模擬數(shù)據(jù)為12位或16位,IDMA的位寬正好滿足要求。
IDMA接口信號如下:
IS:IDMA接口片選信號
IRD:IDMA接口讀信號。當(dāng)IS和IRD同時有效時,開始一個IDMA讀周期
IWR:IDMA接口寫信號。當(dāng)IS和IWR同時有效時,開始一個IDMA寫周期
IAL:IDMA接口地址鎖存信號。當(dāng)IS和IAL同時有效時,開始一個IDMA地址鎖存序列。此時主機(jī)應(yīng)將訪問IDMA的起臺地址送到IAD0~15上
IACK:IDMA接口允許訪問的確認(rèn)信號
IAD0~15:IDMA接口的16位地址/數(shù)據(jù)總線
通??梢杂玫刂肪€A1接到IAL。此時,實際上對主MCU來說,ADSP-2185M只占用了兩個地址即:
#define IDMA_DSPAddr * ((unsigned short *)(DSPIF_ADDRESS+2))
#define IDMA_DSPData * ((unsigned short *)(DSPIF_ADDRESS))
IACK接到主MCU的IO口PA14,通過查詢該口,即可確定是否可以訪問DSP。
通過IDMA接口,主MCU可以下載DSP程序(Boot Loading through the IDMA Port),讀取數(shù)據(jù),也可以用來交換控制及狀態(tài)信息。
為了能使DSP從IDMA自舉,需對相關(guān)信號加以配置,對于ADSP-2185M,可以將MODE_D:MODE_C:MODE_B:MODE_A設(shè)為0101B。
IDMA接口有一個突出的優(yōu)點,即只需要在開始訪問時設(shè)定一次地址,隨后的讀/寫操作可以不再重設(shè)地址,IDMA會自動將該地址值遞加1,直到主機(jī)通過IAL和IS鎖存新的地址。對于需要實時重復(fù)讀取數(shù)據(jù)的應(yīng)用,如電力系統(tǒng)監(jiān)控產(chǎn)品,這個功能無疑會大量節(jié)省主MCU資源。
下載DSP程序的子程序如下:
2 結(jié)論
相比于ADC直接連接MCU(無論是串行方式還是并行方式)和基于雙口RAM的ADC數(shù)據(jù)接口方案,基于SPORT口的串行ADC數(shù)據(jù)接口方案有許多優(yōu)點。比如,其控制邏輯相對簡單,串行數(shù)據(jù)更有利于進(jìn)行電的隔離,價格更便宜等。在電力系統(tǒng)監(jiān)控產(chǎn)品中使用SPORT口和IDMA口,可以減少因?qū)崟r數(shù)據(jù)讀取及計算結(jié)果傳輸造成的MCU和DSP資源浪費,為數(shù)字信號處理留出足夠的時間,為更復(fù)雜的算法采用提供可能性。隨著產(chǎn)品模擬量數(shù)量的增加以及對實時性要求的提高,該方法的優(yōu)勢更加明顯。該方法已在我公司的多種電力系統(tǒng)監(jiān)控產(chǎn)品中使用,并已有數(shù)千套產(chǎn)品應(yīng)用于工程現(xiàn)場。