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