一種基于多DSP協(xié)同工作的控制系統(tǒng)
盡管數(shù)字信號處理器(DSP)的性能越來越強,基于DSP嵌入式系統(tǒng)的功能也越來越多,但對于實時性、容錯性、可靠性要求很高的多任務(wù)信號處理及多路過程控制方面的應(yīng)用,單個DSP嵌入式系統(tǒng)的處理能力是不夠的。分布式系統(tǒng)處理能力強、可靠性高,采用多個DSP嵌入式子系統(tǒng)構(gòu)成分布式系統(tǒng),利用分布式系統(tǒng)的并發(fā)性實現(xiàn)多個DSP的并行處理,滿足多任務(wù)、實時性的要求。同時,通過硬件和軟件冗余設(shè)計,保證了系統(tǒng)的可靠性。
本文引用地址:http://butianyuan.cn/article/84427.htm本文采用TMS320F2812 DSP實現(xiàn)了三個同構(gòu)的、具有多種實時信號處理和多個過程控制功能的嵌入式子系統(tǒng)A、B、C,以CAN總線為通信網(wǎng)絡(luò)構(gòu)成分布式系統(tǒng)。該系統(tǒng)能夠與外部測控中心實時交互,同時完成23路模擬信號的實時采集/預(yù)處理、16路數(shù)字信號處理、16路數(shù)字信號的輸出、1路脈沖信號處理、多路過程控制參數(shù)的實時計算、各種狀態(tài)及參數(shù)的實時記錄等。三個子系統(tǒng)的硬件設(shè)計完全相同,通過CAN總線與RS422串口交換信息,通過軟件配置為各子系統(tǒng)分配資源、動態(tài)分配任務(wù),有效地均衡了各處理機的負(fù)載。三個子系統(tǒng)資源共享、互為備份,提高了整個系統(tǒng)的可靠性。
在實時系統(tǒng)中,如果系統(tǒng)的運行不能滿足響應(yīng)時間的要求,將會導(dǎo)致整個系統(tǒng)的崩潰。因此,分布式系統(tǒng)各組件之間的通信和協(xié)調(diào)工作是實現(xiàn)系統(tǒng)各組件并發(fā)處理、系統(tǒng)資源共享、均衡系統(tǒng)各組件的負(fù)載、提高整個系統(tǒng)的吞吐量、保證系統(tǒng)可靠工作的關(guān)鍵。
本文重點討論了各子系統(tǒng)之間的通信方式、系統(tǒng)的任務(wù)分配和系統(tǒng)的協(xié)調(diào)工作機制。
1 系統(tǒng)的構(gòu)成
1.1 CAN總線
CAN(Controller Area Network)屬于總線式串行通信網(wǎng)絡(luò)。CAN總線有效地支持安全可靠的分布式實時控制系統(tǒng),通信方式靈活、抗干擾能力強、可靠性高,直接通信距離最遠(yuǎn)可達10km(傳輸率5kbps以下),通信速率最高達1Mbps(通信距離40m以內(nèi)),網(wǎng)上節(jié)點數(shù)可達110個。CAN總線為多主工作方式,可以方便地構(gòu)成多機備份系統(tǒng)[4]。
1.2 數(shù)字信號處理器
TMS320F2812 DSP是工業(yè)控制領(lǐng)域的一種高端產(chǎn)品,具有速度快、功耗低、接口方便靈活、易于開發(fā)、精度高、兼容性好、資源豐富等特點。F2812采用哈佛總線結(jié)構(gòu),具有32位高性能的CPU,時鐘頻率為150MHz并支持動態(tài)改變鎖相環(huán)的頻率,擁有Flash等多種類型存儲器、PIE中斷模塊、A/D轉(zhuǎn)換模塊、事件管理器、SCI口、SPI口、eCAN總線和McBSP通信模塊等豐富的外圍設(shè)備,可以滿足各種應(yīng)用的需求。
1.3 基于DSP的嵌入式子系統(tǒng)的硬件構(gòu)成
基于TMSF2812 DSP的嵌入式子系統(tǒng)(見圖1)是為滿足實時多任務(wù)而設(shè)計的,硬件、軟件可根據(jù)需要進行裁剪,可靠性高、響應(yīng)速度快、自動化程度高。
三個子系統(tǒng)的硬件設(shè)計完全相同,除DSP片上資源外,每個子系統(tǒng)都擴展了非易失性存儲器(E2PROM或鐵電隨機存儲器)、SRAM、四路RS422接口(兩路RS232可選)、實時時鐘等輔助模塊。
1.4 系統(tǒng)的體系結(jié)構(gòu)
該系統(tǒng)是由三個基于F2812 DSP的嵌入式子系統(tǒng)A、B、C通過CAN總線構(gòu)成同構(gòu)異步的分布式系統(tǒng)(見圖2)。三個子系統(tǒng)沒有主從關(guān)系,各子系統(tǒng)的功能根據(jù)系統(tǒng)狀態(tài),通過任務(wù)分配策略,用軟件配置。三個子系統(tǒng)與硬件、軟件互為備份,提高了系統(tǒng)的可靠性。
三個子系統(tǒng)之間主要通過CAN總線進行信息交換,變化較慢的數(shù)據(jù)也可以通過UART串口進行交換。每個子系統(tǒng)都能夠同時接收信號,也能夠輸出控制信號。通過特殊的硬件設(shè)計,每個子系統(tǒng)都具有故障隔離的功能,可以防止因為一個子系統(tǒng)出現(xiàn)故障而影響整個系統(tǒng)的工作。
2 分布式系統(tǒng)的協(xié)同工作
分布式系統(tǒng)的資源位于不同的位置,系統(tǒng)需要不斷監(jiān)視各組件的狀態(tài),檢查資源的使用情況。當(dāng)一個處理器出現(xiàn)故障時,系統(tǒng)應(yīng)該立即響應(yīng),重新調(diào)配資源,規(guī)劃任務(wù)分配方案,確定任務(wù)分配策略,重構(gòu)系統(tǒng),必要時犧牲系統(tǒng)的某些性能,以保證系統(tǒng)正常工作。
2.1 系統(tǒng)狀態(tài)監(jiān)視
系統(tǒng)狀態(tài)包括每個子系統(tǒng)各個模塊的工作狀態(tài)(CPU、UART的工作狀態(tài)、片上存儲器(SDRAM、FLASH等)和片外存儲器(SRAM)、非易失性存儲器的分配情況)、每個子系統(tǒng)之間的通信狀態(tài)等。
分布式系統(tǒng)中,各子系統(tǒng)難以確定系統(tǒng)的狀態(tài)。為此,網(wǎng)絡(luò)上的每個子系統(tǒng)應(yīng)定時向其他子系統(tǒng)廣播,將各自的狀態(tài)通知其他子系統(tǒng)(見圖3)。如果在規(guī)定的時間內(nèi)沒有收到某個子系統(tǒng)的消息,則認(rèn)為該子系統(tǒng)出現(xiàn)故障,系統(tǒng)應(yīng)重新配置系統(tǒng)資源、重新分配任務(wù),重構(gòu)系統(tǒng)。
圖3中:SCAB表示子系統(tǒng)A到B通信的情況。通過A、B、C之間的相互通信,確定系統(tǒng)的狀態(tài)。
不失一般性,令三個子系統(tǒng)的狀態(tài)的集合為SA、SB、SC,則系統(tǒng)狀態(tài)SS為:
SS=ρ(SA∪SB∪SC)={Si|0≤i≤N} (1)
其中:ρ(A)表示A的冪集,N=|SS|
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論