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





