雙余度DSP數(shù)據(jù)采集裝置在某型控制器中的應(yīng)用
摘要:針對某型控制器設(shè)計的雙余度DSP數(shù)據(jù)采集裝置,采用以雙端口RAM方式進(jìn)行數(shù)據(jù)交換。結(jié)果表明,此數(shù)據(jù)采集裝置既能快速完成模擬數(shù)據(jù)的采樣,又能快速地在DSP間進(jìn)行高速數(shù)據(jù)交換,同時,還能夠滿足基于DSP數(shù)據(jù)采集裝置的高精度與小型化要求。
關(guān)鍵詞:雙端口RAM;DSP處理器;數(shù)據(jù)采集;控制器
0 引言
任何一種自動控制系統(tǒng)都離不開數(shù)據(jù)采集裝置,它的性能直接影響整體系統(tǒng)的工作性能。數(shù)據(jù)采集裝置向著高速、實時方向發(fā)展,對數(shù)據(jù)的傳輸和控制速度也提出了較高要求。DSP(數(shù)字信號處理器)是一種適合于實現(xiàn)各種數(shù)字信號處理運算的微處理器,具有哈佛結(jié)構(gòu)、支持流水線處理、快速的指令周期等優(yōu)點,因而在嵌入式系統(tǒng)中得到廣泛的應(yīng)用。事實上,以DSP為核心來構(gòu)建數(shù)據(jù)采集裝置也已經(jīng)成為一種常用的有效方法。
在多任務(wù)信號處理系統(tǒng)中,考慮到設(shè)計系統(tǒng)的復(fù)雜性,經(jīng)常需要使用雙DSP協(xié)同工作來構(gòu)成系統(tǒng)。雙DSP系統(tǒng)的優(yōu)點在于,可以通過計算能力的均勻分布,使系統(tǒng)具有較好的冗余能力、更快的處理速度、模塊化的體系結(jié)構(gòu)。正因為雙DSP系統(tǒng)的應(yīng)用越來越廣泛,如何解決好雙DSP間的數(shù)據(jù)共享也變得越來越重要。如果需要進(jìn)行大量數(shù)據(jù)的高速交換,依靠控制器自帶的串口實現(xiàn)數(shù)據(jù)的串行傳輸已很難滿足需求,必須尋求一種能進(jìn)行高速數(shù)據(jù)通信的方法。而采用雙端口RAM是解決雙DSP之間高速數(shù)據(jù)通信的有效辦法,該方法能夠方便地構(gòu)成各種工作方式下的高速數(shù)據(jù)傳送介質(zhì),很好地解決因數(shù)據(jù)傳輸速度低所引起的瓶頸問題。
某型控制器要求采用雙余度數(shù)據(jù)采集通道,每個通道都需要對多達(dá)16路模擬信號進(jìn)行模數(shù)采樣。為此,本文給出了用雙DSP來構(gòu)建的具體方法,每個DSP負(fù)責(zé)一個通道的數(shù)據(jù)采樣,并在兩個DSP之間用雙端口RAM來構(gòu)建一個高速的數(shù)據(jù)通道,以交換各自的采樣數(shù)據(jù)和其它數(shù)據(jù)。
1 雙余度DSP數(shù)據(jù)采集裝置的總體設(shè)計
某型控制器要求采用雙余度數(shù)據(jù)采集通道。以DSP為核心構(gòu)建數(shù)據(jù)采集裝置,該裝置既可以進(jìn)行高速采樣,還可以對數(shù)據(jù)進(jìn)行后處理。采用兩個DSP,各自負(fù)責(zé)一路數(shù)據(jù)采樣,采樣數(shù)據(jù)和其它數(shù)據(jù)可在兩個DSP之間共享。數(shù)據(jù)采集裝置由數(shù)據(jù)采集模塊、DSP處理器和數(shù)據(jù)交換模塊組成。圖1給出了系統(tǒng)中雙余度DSP數(shù)據(jù)采集裝置的結(jié)構(gòu)框圖。
數(shù)據(jù)采集模塊主要在DSP的控制下,各通道分時對16路模擬信號進(jìn)行采樣,并將采集的數(shù)據(jù)發(fā)給DSP;DSP負(fù)責(zé)輸出數(shù)據(jù)采集所需要的時序,對采樣進(jìn)行控制,并根據(jù)需要,通過訪問數(shù)據(jù)交換模塊來對采集的數(shù)據(jù)和狀態(tài)信息等其它數(shù)據(jù)進(jìn)行交換;數(shù)據(jù)交換模塊則在DSP的控制下,使兩個DSP能夠不沖突地對任一存儲單元進(jìn)行訪問,從而達(dá)到數(shù)據(jù)交換的目的。
2 數(shù)據(jù)采集模塊的設(shè)計
本模塊的主要功能是在DSP的控制下,由通道對16路指令和反饋信號進(jìn)行采樣,并將采集的數(shù)據(jù)發(fā)給DSE。因為采樣的信號較多,故采用16選1電子開關(guān)。DSP輸出電子開關(guān)控制信號,以將16路信號分時送入A/D采樣芯片;同時,DSP還要輸出A/D轉(zhuǎn)換控制信號,以將選通的模擬信號轉(zhuǎn)換為數(shù)字量后讀入DSP。
單通道DSP數(shù)據(jù)采集模塊的框圖如圖2所示。
本裝置中兩個通道的采樣電路相同,通道1的采樣電路如圖3所示。
該電路首先將模擬信號通過集成電路AD7892轉(zhuǎn)換為DSP所需要的數(shù)字量,然后由16選1電子開關(guān)DG406(5N1)依次選通各路模擬信號,再經(jīng)過運算放大器F353進(jìn)行信號隔離后,分時送給12位模數(shù)轉(zhuǎn)換器AD7892(5N3)進(jìn)行轉(zhuǎn)換處理。通道1中的電子開關(guān)DG406的數(shù)據(jù)采樣通道見表1所列。
A/D采樣芯片AD7892具有±5 V或±10 V可選輸入范圍,最快轉(zhuǎn)換時間為1.47 μs,片內(nèi)含采樣保持電路和高速串并接口,單電源供電(+5 V),轉(zhuǎn)換數(shù)據(jù)為12位,而且與DSP處理器的接口比較簡單。
引腳接高電平時,電路處于正常工作模式;引腳REF OUT/IN通過電容接AGND,代表參考電源使用芯片內(nèi)部的參考電壓源;引腳VIN2接AGND,表示模擬輸入電壓的范圍為-10~+10 V;引腳MODE接高電平表示系統(tǒng)處于并行接口模式;引腳VIN1接采樣模擬信號;引腳接采樣啟動脈沖ADKSZH,引腳接脈沖ADRD,這兩個脈沖來自DSP,使DSP能夠?qū)δ?shù)轉(zhuǎn)換進(jìn)行控制。轉(zhuǎn)換結(jié)束后,AD7892引腳輸出低電平,DSP將12位轉(zhuǎn)換結(jié)果DB0~DB11以并行數(shù)據(jù)模式讀入。當(dāng)輸入范圍為-10~+10 V時,A/D采樣的分辨率為20 V/212=4.88 mV。
DSP是本數(shù)據(jù)采集裝置的核心器件,它的主要作用是對A/D采樣進(jìn)行控制,并能進(jìn)行高速數(shù)據(jù)交換。要具有較強(qiáng)的控制能力,經(jīng)過綜合考慮,本設(shè)計選擇TI公司的DSP器件SMJ320F240。這是一種16位的定點數(shù)字信號處理器,采用哈佛結(jié)構(gòu),具有獨立的數(shù)據(jù)總線和地址總線,處理器指令和數(shù)據(jù)并行可大大提高處理效率,而且片內(nèi)集成了16 KB的閃速存儲器Flash、16位通用定時器、異步串行通信接口SCI等,非常適合用于自動控制系統(tǒng)。
3 數(shù)據(jù)交換模塊的設(shè)計
3.1 雙DSP通信方式
實現(xiàn)雙DSP通信的常用方式有以下幾種:
(1)串行通信方式。利用處理器本身提供的串行口或用軟件模擬一個串行口實現(xiàn)雙機(jī)通信。這種方式硬件連接簡單,軟件開發(fā)比較容易,但數(shù)據(jù)傳輸速率往往不高,適合于雙機(jī)通信數(shù)據(jù)量不大的應(yīng)用場合。
(2)并行通信方式。利用處理器的I/O功能來實現(xiàn)雙機(jī)通信。這種方式實現(xiàn)起來也比較簡單,與串行方式相比,數(shù)據(jù)傳輸速率更高,但實現(xiàn)時要注意時序的配合。
(3)直接存儲器方式(DMA)。這是一種完全由硬件執(zhí)行數(shù)據(jù)交換的工作方式,DMA控制器從CPU完全接管對總線的控制權(quán),數(shù)據(jù)交換不經(jīng)過CPU,而直接在內(nèi)存與設(shè)備之間進(jìn)行。這種方式一般用于高速傳送成組數(shù)據(jù),但是兩個處理器不能同時訪問存儲器。
(4)雙端口RAM方式。利用雙端口RAM作為兩個DSP的共享存儲器來實現(xiàn)處理器間的數(shù)據(jù)交換。兩個DSP都把雙端口RAM映射成自己存儲器的一部分,它們可以同時訪問雙端口RAM(當(dāng)然不能同時訪問同一個地址單元),這樣可以降低數(shù)據(jù)交換占用CPU的時間。這種方式數(shù)據(jù)吞吐量大,幾乎能實現(xiàn)無等待的數(shù)據(jù)交換。
如果需要實時傳輸大量數(shù)據(jù),采用雙端口RAM是一種比較好的實現(xiàn)方式。
3.2 雙端口RAM芯片IDT7133
雙端口RAM的最大特點是存儲數(shù)據(jù)共享。設(shè)計時可選用IDT公司的IDT7133,這是一種高速2K×16位雙端口靜態(tài)RAM,具有高速存取、低功耗等特點。工業(yè)級芯片的最快訪問時間只需25ns。通過片選的控制,IDT7133可以工作在省電模式下。通過使用IDT公司先進(jìn)的CMOS技術(shù),在典型的工作條件下,它的功耗僅為1 150 mW,而且還可以通過連接電池達(dá)到數(shù)據(jù)保護(hù)的目的,電池的電壓僅為2V。
3.2.1 IDT7133的邏輯結(jié)構(gòu)
IDT7133是一種特殊的RAM芯片,具有左、右兩個獨立的端口,它們各自均有一套獨立的數(shù)據(jù)總線、地址總線和控制總線,并且都有控制、尋址和I/O引腳,允許兩個端口獨立地對存儲器中的任何單元進(jìn)行存取操作。它既可以作為16位雙端口RAM單獨使用,也可以與IDT7143組成主從系統(tǒng),以將數(shù)據(jù)線擴(kuò)展到32位甚至更寬。這樣組成的雙端口RAM可以全速運行,而且無需任何額外的附加邏輯。IDT7133的功能框圖如圖4所示。
IDT7133的引腳功能如表2所列。為了區(qū)分左、右端口,表中分別加有下標(biāo)L(Left)和R(Right)。
3.2.2 IDT7133的訪問沖突控制
使用雙口RAM的關(guān)鍵是需要對其進(jìn)行邏輯仲裁,否則可能會導(dǎo)致數(shù)據(jù)訪問沖突。當(dāng)控制器同時讀寫雙端口RAM IDT7133時,可能存在以下兩種情況:
(1)無沖突的訪問控制
當(dāng)兩個端口的地址不相同時,在兩個端口上進(jìn)行讀寫操作一般不會發(fā)生沖突。此時任一端口被選中,就可對整個存儲器進(jìn)行存取,每一個端口都有自己的片選控制和輸出控制。IDT7133無沖突的讀寫控制真值表如表3所列。其中,L表示邏輯低;H表示邏輯高;X表示無關(guān)。
(2)有沖突的訪問控制
當(dāng)從兩個端口同時存取存儲器同一存儲單元時,便會發(fā)生讀寫沖突。為解決此問題,IDT7133采用了BUSY邏輯控制,也稱硬件地址仲裁邏輯。芯片左、右端口都設(shè)計有忙信號引腳:,由片上的仲裁邏輯決定對哪個端口優(yōu)先進(jìn)行操作,而另一個端口暫時被延遲訪問。一般BUSY信號為高電平的端口可以正常訪問RAM,BUSY為低的端口暫不能訪問RAM。
圖5所示是通過信號控制的BUSY仲裁時序圖。
避免訪問沖突的原理為:當(dāng)左右端口不對同一地址單元訪問時,BUSYL為高,BUSYR為高,此時兩端口都可正常訪問雙端口RAM;而當(dāng)左右端口對同一地址單元存取時,必有一端口BUSY信號被置低。哪一個端口可以進(jìn)行訪問由片上仲裁決定,存取請求信號出現(xiàn)在前的端口的BUSY信號為高,存取請求信號出現(xiàn)在后的端口的BUSY信號被置低。需要注意的是,兩端口的存取請求信號出現(xiàn)時間要相差5 ns以上,否則仲裁邏輯無法判定存取請求信號的先后。而當(dāng)無法判定時,控制引腳也只有一個輸出低電平,不會同時輸出低電平,從而保證至少有一個端口能進(jìn)行正常訪問。其判斷方式有以下兩種:
第一種是判斷:如果地址匹配并且在信號之前有效,片上的控制邏輯在和之間進(jìn)行判斷來選擇端口;
第二種是地址有效判斷:如果信號在地址匹配之前有效,片上的控制邏輯在左、右地址間進(jìn)行判斷來選擇端口。
3.3 數(shù)據(jù)交換模塊的設(shè)計
本控制器DSP間的數(shù)據(jù)通信采用雙端口RAM的通信方式的電路框圖如圖6所示。該電路通過兩個譯碼電路分別產(chǎn)生左側(cè)端口的控制信號R/WLUB、R/WLUB、、和右側(cè)端口的控制信號R/WRUB、R/WRUB、、,并采用BUSY信號來防止產(chǎn)生訪問沖突。在這些信號的控制下,兩個DSP就可以高速交換數(shù)據(jù)信息。
4 軟件設(shè)計
采樣芯片AD7892在并行模式下的采樣時序圖如圖7所示。由軟件通過DSP的I/O口輸出DAS0~DAS3信號來控制電子開關(guān)DG406選通某一輸入通道。
轉(zhuǎn)換采用定時觸發(fā),由DSP的I/O口輸出采樣的啟動信號在啟動信號的上升沿開始轉(zhuǎn)換。轉(zhuǎn)換結(jié)果采用查詢方式讀取,當(dāng)查詢到EOC引腳輸出低電平時,DSP發(fā)出讀信號將數(shù)據(jù)讀入。此時該通道的A/D采樣完成,下一個周期進(jìn)行另一個通道的采樣,直到所有通道的采樣完成為止。
圖8所示是其模數(shù)采樣程序流程圖。
5 結(jié)語
本文針對某型控制器的需求,分別設(shè)計了以DSP為核心的數(shù)據(jù)采集模塊,并采用雙端口RAM方式構(gòu)建了數(shù)據(jù)交換模塊,從而很好地解決了因數(shù)據(jù)傳輸速度低所引起的瓶頸問題,文中同時給出了模數(shù)采樣程序流程圖。經(jīng)驗證,本系統(tǒng)可以達(dá)到預(yù)定功能,具有一定參考價值。