關(guān)振明 , 陳 安 ,2
(1.華南理工大學 自動化科學與工程學院,廣東 廣州 510640;2.廣州現(xiàn)代產(chǎn)業(yè)技術(shù)研究 院精密電子制造技術(shù)研發(fā)中心,廣東 廣州 511458)
隨著數(shù)字信號處理技術(shù)的廣泛應用,越來越多的設計者采用DSP芯片進行數(shù)據(jù)處理和系統(tǒng)控制。然而,在某些特定的場合,如圖像處理等,由于數(shù)據(jù)吞吐量大,可能使用單片DSP不能滿足實時性的要求,我們就需要將兩片,甚至多片DSP進行互連,組成雙DSP或多DSP并行處理系統(tǒng),以提高系統(tǒng)的處理能力,降低處理時間[1]。
雙DSP系統(tǒng)[2]設計中,一般采用主從方式,即一個DSP作為主處理器,負責整個系統(tǒng)的任務調(diào)度分配、人機交互等系統(tǒng)工作;一個DSP作為從處理器/協(xié)處理器,分擔主DSP的數(shù)據(jù)處理任務,以減輕主DSP的壓力。在這里,主從DSP就需要進行通信來交換信息,主機需要把相關(guān)處理參數(shù)設置發(fā)送給從機;從機需要把相應的處理結(jié)果返回給主機。因此,在雙DSP系統(tǒng)中,主從通訊就顯得尤為重要了。
主從DSP通訊,主要需解決如下問題:
1)雙向通信問題:因為主從通信的目的就是為了進行信息交換,因此必須滿足雙向通信,才能保證信息在主從機之間交換。
2)可靠性問題:實時數(shù)字信號處理系統(tǒng)必須保證能夠可靠運行,這就要求主從機之間的通信必須可靠,需要有相應的機制,才能保證系統(tǒng)運行正??煽?。
3)任務同步問題:因為實時系統(tǒng)一直在運行,所以要保證主從機處理的是同一次采集的對象信息,不然會造成主從信息錯位,從而引起錯誤。
1)基于串行接口的雙DSP數(shù)據(jù)通訊
通過串行口進行連接是常見的系統(tǒng)內(nèi)、系統(tǒng)間通信方式,常見的串行接口包括UART、IIC、SPI[3]和SPORT口等。
串行通信具有數(shù)據(jù)線少、連接簡單方便等優(yōu)點,但是串行通信的傳輸速度,相對于并行接口和雙口RAM要慢,特別是需要進行大數(shù)據(jù)量通訊時。
2)基于并行接口的雙DSP數(shù)據(jù)通訊
像TI的DSP就具有HPI主機接口,用于進行主從DSP連接。
通過并口方式,能夠在不增加硬件的情況下,更快地進行主從通訊,甚至訪問主從DSP的內(nèi)存;但是相比串口方式,需要更多的連接線。
3)基于雙口RAM的雙DSP數(shù)據(jù)通訊
利用雙口RAM作為主從DSP的共享存儲器,具有傳輸速率高的特點,適用于大量數(shù)據(jù)交換且控制時序松散的場合。但是,該方式需要增加一個雙口RAM芯片,硬件電路和軟件設計都要比前兩種方式要復雜,成本也會增加[4]。
在這里,以雙面圖像處理系統(tǒng)為例,系統(tǒng)需要同時采集通過物體的正反兩面的圖像,并對圖像進行處理,判斷是否存在缺陷。因此,需要同時采集正反兩面的圖像,進行處理并得出結(jié)論。采用雙DSP系統(tǒng),能夠保證系統(tǒng)的實時性要求。我們選用ADI公司的BF531 DSP構(gòu)成主從DSP系統(tǒng),根據(jù)任務特點,工作過程中大多數(shù)情況下只需要從機將處理結(jié)果返回給主機,通信數(shù)據(jù)量不大。因此,我們選用串行方式進行主從通信。下面將對該雙DSP主從通信系統(tǒng)進行詳細介紹。
根據(jù)BF531的特點,我們選用SPORT口作為主從DSP的通信接口。
SPORT口具有以下特點[5]:
1)雙向操作:每個SPORT都有2套獨立的發(fā)送和接收引腳。
2)緩沖的發(fā)送和接收端口:每個端口都有1個數(shù)據(jù)寄存器,用以同其他DSP部件進行雙向數(shù)據(jù)傳輸;多個移位寄存器用于數(shù)據(jù)寄存器內(nèi)數(shù)據(jù)的移入和移出。
3)時鐘:每個發(fā)送/接收端口可用外部串行時鐘,也可用自己產(chǎn)生的時鐘頻率。
4)字長:每個SPORT都支持3~32位長度的串行數(shù)據(jù)字,以最高有效位在前或最低有效位在前的格式傳送。
5)幀:無論數(shù)據(jù)字有無幀同步信號,每個發(fā)送和接收端口都能運行;幀同步信號能夠從內(nèi)部或者外部產(chǎn)生,可以高有效或低有效,要求2個脈沖寬度,可以前幀或后幀同步。
3.1.1 系統(tǒng)總體結(jié)構(gòu)
圖1給出了整個圖像處理系統(tǒng)的結(jié)構(gòu)示意圖。通過圖像接口1和2,系統(tǒng)同時采集對象正反兩面的圖像,分別送到主從DSP進行處理,主從DSP處理過程中通過SPORT口通信交換信息;從機把處理結(jié)果返回給主機,主機進行信息匯總判斷,得出控制動作。
3.1.2 SPORT接口電路設計
接口電路設計如圖2所示。SPORT口是全雙工的,有兩套獨立的發(fā)送和接受引腳,可以同時發(fā)送和接受數(shù)據(jù)。
主DSP的發(fā)送引腳接到從DSP對應的接收引腳,主DSP的接收引腳接到從DSP相應的發(fā)送引腳。 每對接口包括兩個傳輸數(shù)據(jù)引腳DT0PRI和DT0SEC,一個幀同步引腳TFS0和一個時鐘引腳SCLK0。
圖2 雙DSP間SPORT口通信電路Fig.2 The dual DSP SPORT mouth communication circuit
SPORT接口是ADSP-BF531上速度最快的串口,其速度最高可以達到系統(tǒng)時鐘的1/2,可以通過寫寄存器來控制波特率、幀同步和字長。
SPORT用幀同步脈沖標志每個字或包的起始,用位時鐘標志每個數(shù)據(jù)位的起始。
SPORT時鐘和幀同步可以由處理器內(nèi)核產(chǎn)生,也可從外部接收。SPORT可以小尾或大尾格式工作,字長從3Bit到32Bit[6]。
在這里,我們把SPORT口配置成時鐘由發(fā)送方產(chǎn)生,只使用主數(shù)據(jù)通道,32 Bit數(shù)據(jù)字長,DMA自動收發(fā),中斷接受的方式。驅(qū)動代碼如下:
主從DSP遵循相同的幀格式,每個數(shù)據(jù)幀長度為32字節(jié),其中第1個字節(jié)為幀頭,第31個字節(jié)為CRC校驗碼,第32個字節(jié)為幀尾。
幀頭幀尾的作用主要是在調(diào)試過程中,方便檢查通訊的數(shù)據(jù)幀是否出現(xiàn)錯幀、漏數(shù)據(jù)等問題。CRC校驗用于校驗所接收的數(shù)據(jù)是否正確。
系統(tǒng)運行過程中,需要進行3次通信:
1)采圖完成,進入圖像處理時,主機要把是否需要進行圖像處理、要進行哪些圖像處理(例如特征信息有無,OCR字符識別等)的內(nèi)容告訴從機;
2)圖像處理完成時,從機要把處理結(jié)果返回給主機;
3)主機把得到的信息進行整合,要把最后的處理結(jié)果返回給從機。
為了保證主從機同步,不會出現(xiàn)信息錯位,設計了雙向通信機制,每次通信由主機發(fā)起請求或者發(fā)送命令,從機收到之后返回應答,主機收到應答后繼續(xù)往下執(zhí)行。
過程如圖3所示。
經(jīng)過測試,在100張圖像連續(xù)采圖,每85 ms進行一次圖像采集的情況下,整機系統(tǒng)通信正常運行穩(wěn)定,測試100組數(shù)據(jù)均工作正常,說明該通信機制是穩(wěn)定可靠的,符合系統(tǒng)設計要求。
在上述的通信機制里面,每次通信都是主從一來一往,由于主從機代碼的運行并非完全一致,因此常常會出現(xiàn)等待的情況,要么是從機在等待主機發(fā)送命令過來;要么是主機等待從機返回應答。這樣,就總有一部分時間耗費在等待中,雖然在滿足系統(tǒng)性能要求的情況下,并不影響系統(tǒng)運行。但是否有方法能夠進一步提高通信的效率?
進一步研究上述雙向通信機制,我們會發(fā)現(xiàn),其實并不是所有通信數(shù)據(jù)都是有意義的,第一次通信的從機返回應答,第二次通信的主機發(fā)送請求,以及第三次通信的從機返回應答,傳輸?shù)臄?shù)據(jù)都是沒有意義的,是否能夠簡化掉?
因為通信是通過DMA方式直接把數(shù)據(jù)緩沖到Buffer里面的,所以像第一次通信,只要主機把任務要求發(fā)送給從機,主機就可以繼續(xù)往下執(zhí)行任務代碼;從機如果執(zhí)行得比主機慢的話,數(shù)據(jù)已經(jīng)緩沖到Buffer了,直接讀取就行了,已經(jīng)執(zhí)行到了的話,則還是需要等待主機發(fā)送任務要求,也不會錯過數(shù)據(jù)。所以可以進行化簡優(yōu)化。
化簡之后的通信機制,從宏觀上構(gòu)成一次半往返通信,少了很大一塊等待時間,耗費的時間將會比原先的通信機制大大減少。由于主從機的圖圖像采集是同步進行的,考慮上這一因素,主從機還是能夠很好的同步。化簡后的通信機制如圖4所示。
圖4 主從DSP單向通信機制Fig.4 Master-slave DSP unidirectional communication mechanism
經(jīng)測試,簡化后,在100張圖像連續(xù)采圖,每85 ms進行一次圖像采集的情況下,整機系統(tǒng)通信正常,運行穩(wěn)定,測試100組數(shù)據(jù)均工作正常,說明該通信機制也是穩(wěn)定可靠的,符合系統(tǒng)設計要求。
兩個測試機制都經(jīng)過大量的運行測試,每次100張連續(xù)采圖,測試100組,系統(tǒng)均穩(wěn)定可靠運行。說明兩個機制都能夠滿足系統(tǒng)要求。
兩個機制的通信時間測試結(jié)果如下:
通過設計SPORT接口的主從DSP系統(tǒng)數(shù)據(jù)通信,雙DSP系統(tǒng)能夠穩(wěn)定可靠的運行;通過對通信機制進行優(yōu)化,使得系統(tǒng)的實時性得到進一步的保障。雙DSP系統(tǒng)能夠穩(wěn)定運行,保證實時處理同一對象的雙面圖像,并及時得出處理結(jié)果進行控制動作。隨著信號處理數(shù)據(jù)量的不斷增大,雙核或雙處理器的并行處理系統(tǒng)將會越來越多地被應用,該設計提供了有益的嘗試,并取得了不錯的效果。
[1]周濱,謝曉霞,傅其祥,等.基于多DSP的高速通用并行處理系統(tǒng)研究與設計[J].電子設計工程,2012,20(17):175-179.ZHOU Bin,XIE Xiao-xia,F(xiàn)U Qi-xiang,et al.Design of highspeed general parallel processing system based on multi-DSP[J].Electronic Design Engineering,2012,20(17):175-179.
[2]李瑞峰,亢雪英.基于雙DSP的防爆機器人控制器的設計[J].制造業(yè)自動化,2005(7):43-45.LI Rui-feng,KANG Xue-ying.The design of controller of anti-riot robot based on DSP[J].Manufacturing Automation,2005(7):43-45.
[3]毛建權(quán),季曉勇.基于SPI的DSP與MCU雙向通信的設計與實現(xiàn)[J].科學技術(shù)與工程,2007,7(15):3911-3918.MAO Jian-quan,JI Xiao-yong.Design and realization of mutual communication based on SPI between DSP and MCU[J].Science Technology and Engineering,2007,7(15):3911-3918.
[4]杜金榜,鐘小鵬,王躍科多.DSP并行處理系統(tǒng)的設計與開發(fā)[J].計算機測量與控制,2006,14 (5):658-666.DU Jin-bang,ZHONG Xiao-peng,WANG Yue-ke.Design and development of Multi-DSP parallel processing system[J].Computer Measurement&Control,2006,14(5):658-666.
[5]陳峰.基于Blackfin DSP的數(shù)字圖像處理[M].北京:電子工業(yè)出版社,2009.
[6]AnalogDevicesInc.ADSP-BF533 Blackfin?Processor Hardware Reference[EB/OL].(2009-04)[2012-10].http://www.analog.com/static/imported-files/processor_manuals/bf533_hwr_Rev3.4.pdf.