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