關(guān)振明 , 陳 安 ,2
(1.華南理工大學(xué) 自動(dòng)化科學(xué)與工程學(xué)院,廣東 廣州 510640;2.廣州現(xiàn)代產(chǎn)業(yè)技術(shù)研究 院精密電子制造技術(shù)研發(fā)中心,廣東 廣州 511458)
隨著數(shù)字信號(hào)處理技術(shù)的廣泛應(yīng)用,越來(lái)越多的設(shè)計(jì)者采用DSP芯片進(jìn)行數(shù)據(jù)處理和系統(tǒng)控制。然而,在某些特定的場(chǎng)合,如圖像處理等,由于數(shù)據(jù)吞吐量大,可能使用單片DSP不能滿足實(shí)時(shí)性的要求,我們就需要將兩片,甚至多片DSP進(jìn)行互連,組成雙DSP或多DSP并行處理系統(tǒng),以提高系統(tǒng)的處理能力,降低處理時(shí)間[1]。
雙DSP系統(tǒng)[2]設(shè)計(jì)中,一般采用主從方式,即一個(gè)DSP作為主處理器,負(fù)責(zé)整個(gè)系統(tǒng)的任務(wù)調(diào)度分配、人機(jī)交互等系統(tǒng)工作;一個(gè)DSP作為從處理器/協(xié)處理器,分擔(dān)主DSP的數(shù)據(jù)處理任務(wù),以減輕主DSP的壓力。在這里,主從DSP就需要進(jìn)行通信來(lái)交換信息,主機(jī)需要把相關(guān)處理參數(shù)設(shè)置發(fā)送給從機(jī);從機(jī)需要把相應(yīng)的處理結(jié)果返回給主機(jī)。因此,在雙DSP系統(tǒng)中,主從通訊就顯得尤為重要了。
主從DSP通訊,主要需解決如下問(wèn)題:
1)雙向通信問(wèn)題:因?yàn)橹鲝耐ㄐ诺哪康木褪菫榱诉M(jìn)行信息交換,因此必須滿足雙向通信,才能保證信息在主從機(jī)之間交換。
2)可靠性問(wèn)題:實(shí)時(shí)數(shù)字信號(hào)處理系統(tǒng)必須保證能夠可靠運(yùn)行,這就要求主從機(jī)之間的通信必須可靠,需要有相應(yīng)的機(jī)制,才能保證系統(tǒng)運(yùn)行正常可靠。
3)任務(wù)同步問(wèn)題:因?yàn)閷?shí)時(shí)系統(tǒng)一直在運(yùn)行,所以要保證主從機(jī)處理的是同一次采集的對(duì)象信息,不然會(huì)造成主從信息錯(cuò)位,從而引起錯(cuò)誤。
1)基于串行接口的雙DSP數(shù)據(jù)通訊
通過(guò)串行口進(jìn)行連接是常見(jiàn)的系統(tǒng)內(nèi)、系統(tǒng)間通信方式,常見(jiàn)的串行接口包括UART、IIC、SPI[3]和SPORT口等。
串行通信具有數(shù)據(jù)線少、連接簡(jiǎn)單方便等優(yōu)點(diǎn),但是串行通信的傳輸速度,相對(duì)于并行接口和雙口RAM要慢,特別是需要進(jìn)行大數(shù)據(jù)量通訊時(shí)。
2)基于并行接口的雙DSP數(shù)據(jù)通訊
像TI的DSP就具有HPI主機(jī)接口,用于進(jìn)行主從DSP連接。
通過(guò)并口方式,能夠在不增加硬件的情況下,更快地進(jìn)行主從通訊,甚至訪問(wèn)主從DSP的內(nèi)存;但是相比串口方式,需要更多的連接線。
3)基于雙口RAM的雙DSP數(shù)據(jù)通訊
利用雙口RAM作為主從DSP的共享存儲(chǔ)器,具有傳輸速率高的特點(diǎn),適用于大量數(shù)據(jù)交換且控制時(shí)序松散的場(chǎng)合。但是,該方式需要增加一個(gè)雙口RAM芯片,硬件電路和軟件設(shè)計(jì)都要比前兩種方式要復(fù)雜,成本也會(huì)增加[4]。
在這里,以雙面圖像處理系統(tǒng)為例,系統(tǒng)需要同時(shí)采集通過(guò)物體的正反兩面的圖像,并對(duì)圖像進(jìn)行處理,判斷是否存在缺陷。因此,需要同時(shí)采集正反兩面的圖像,進(jìn)行處理并得出結(jié)論。采用雙DSP系統(tǒng),能夠保證系統(tǒng)的實(shí)時(shí)性要求。我們選用ADI公司的BF531 DSP構(gòu)成主從DSP系統(tǒng),根據(jù)任務(wù)特點(diǎn),工作過(guò)程中大多數(shù)情況下只需要從機(jī)將處理結(jié)果返回給主機(jī),通信數(shù)據(jù)量不大。因此,我們選用串行方式進(jìn)行主從通信。下面將對(duì)該雙DSP主從通信系統(tǒng)進(jìn)行詳細(xì)介紹。
根據(jù)BF531的特點(diǎn),我們選用SPORT口作為主從DSP的通信接口。
SPORT口具有以下特點(diǎn)[5]:
1)雙向操作:每個(gè)SPORT都有2套獨(dú)立的發(fā)送和接收引腳。
2)緩沖的發(fā)送和接收端口:每個(gè)端口都有1個(gè)數(shù)據(jù)寄存器,用以同其他DSP部件進(jìn)行雙向數(shù)據(jù)傳輸;多個(gè)移位寄存器用于數(shù)據(jù)寄存器內(nèi)數(shù)據(jù)的移入和移出。
3)時(shí)鐘:每個(gè)發(fā)送/接收端口可用外部串行時(shí)鐘,也可用自己產(chǎn)生的時(shí)鐘頻率。
4)字長(zhǎng):每個(gè)SPORT都支持3~32位長(zhǎng)度的串行數(shù)據(jù)字,以最高有效位在前或最低有效位在前的格式傳送。
5)幀:無(wú)論數(shù)據(jù)字有無(wú)幀同步信號(hào),每個(gè)發(fā)送和接收端口都能運(yùn)行;幀同步信號(hào)能夠從內(nèi)部或者外部產(chǎn)生,可以高有效或低有效,要求2個(gè)脈沖寬度,可以前幀或后幀同步。
3.1.1 系統(tǒng)總體結(jié)構(gòu)
圖1給出了整個(gè)圖像處理系統(tǒng)的結(jié)構(gòu)示意圖。通過(guò)圖像接口1和2,系統(tǒng)同時(shí)采集對(duì)象正反兩面的圖像,分別送到主從DSP進(jìn)行處理,主從DSP處理過(guò)程中通過(guò)SPORT口通信交換信息;從機(jī)把處理結(jié)果返回給主機(jī),主機(jī)進(jìn)行信息匯總判斷,得出控制動(dòng)作。
3.1.2 SPORT接口電路設(shè)計(jì)
接口電路設(shè)計(jì)如圖2所示。SPORT口是全雙工的,有兩套獨(dú)立的發(fā)送和接受引腳,可以同時(shí)發(fā)送和接受數(shù)據(jù)。
主DSP的發(fā)送引腳接到從DSP對(duì)應(yīng)的接收引腳,主DSP的接收引腳接到從DSP相應(yīng)的發(fā)送引腳。 每對(duì)接口包括兩個(gè)傳輸數(shù)據(jù)引腳DT0PRI和DT0SEC,一個(gè)幀同步引腳TFS0和一個(gè)時(shí)鐘引腳SCLK0。
圖2 雙DSP間SPORT口通信電路Fig.2 The dual DSP SPORT mouth communication circuit
SPORT接口是ADSP-BF531上速度最快的串口,其速度最高可以達(dá)到系統(tǒng)時(shí)鐘的1/2,可以通過(guò)寫(xiě)寄存器來(lái)控制波特率、幀同步和字長(zhǎng)。
SPORT用幀同步脈沖標(biāo)志每個(gè)字或包的起始,用位時(shí)鐘標(biāo)志每個(gè)數(shù)據(jù)位的起始。
SPORT時(shí)鐘和幀同步可以由處理器內(nèi)核產(chǎn)生,也可從外部接收。SPORT可以小尾或大尾格式工作,字長(zhǎng)從3Bit到32Bit[6]。
在這里,我們把SPORT口配置成時(shí)鐘由發(fā)送方產(chǎn)生,只使用主數(shù)據(jù)通道,32 Bit數(shù)據(jù)字長(zhǎng),DMA自動(dòng)收發(fā),中斷接受的方式。驅(qū)動(dòng)代碼如下:
主從DSP遵循相同的幀格式,每個(gè)數(shù)據(jù)幀長(zhǎng)度為32字節(jié),其中第1個(gè)字節(jié)為幀頭,第31個(gè)字節(jié)為CRC校驗(yàn)碼,第32個(gè)字節(jié)為幀尾。
幀頭幀尾的作用主要是在調(diào)試過(guò)程中,方便檢查通訊的數(shù)據(jù)幀是否出現(xiàn)錯(cuò)幀、漏數(shù)據(jù)等問(wèn)題。CRC校驗(yàn)用于校驗(yàn)所接收的數(shù)據(jù)是否正確。
系統(tǒng)運(yùn)行過(guò)程中,需要進(jìn)行3次通信:
1)采圖完成,進(jìn)入圖像處理時(shí),主機(jī)要把是否需要進(jìn)行圖像處理、要進(jìn)行哪些圖像處理(例如特征信息有無(wú),OCR字符識(shí)別等)的內(nèi)容告訴從機(jī);
2)圖像處理完成時(shí),從機(jī)要把處理結(jié)果返回給主機(jī);
3)主機(jī)把得到的信息進(jìn)行整合,要把最后的處理結(jié)果返回給從機(jī)。
為了保證主從機(jī)同步,不會(huì)出現(xiàn)信息錯(cuò)位,設(shè)計(jì)了雙向通信機(jī)制,每次通信由主機(jī)發(fā)起請(qǐng)求或者發(fā)送命令,從機(jī)收到之后返回應(yīng)答,主機(jī)收到應(yīng)答后繼續(xù)往下執(zhí)行。
過(guò)程如圖3所示。
經(jīng)過(guò)測(cè)試,在100張圖像連續(xù)采圖,每85 ms進(jìn)行一次圖像采集的情況下,整機(jī)系統(tǒng)通信正常運(yùn)行穩(wěn)定,測(cè)試100組數(shù)據(jù)均工作正常,說(shuō)明該通信機(jī)制是穩(wěn)定可靠的,符合系統(tǒng)設(shè)計(jì)要求。
在上述的通信機(jī)制里面,每次通信都是主從一來(lái)一往,由于主從機(jī)代碼的運(yùn)行并非完全一致,因此常常會(huì)出現(xiàn)等待的情況,要么是從機(jī)在等待主機(jī)發(fā)送命令過(guò)來(lái);要么是主機(jī)等待從機(jī)返回應(yīng)答。這樣,就總有一部分時(shí)間耗費(fèi)在等待中,雖然在滿足系統(tǒng)性能要求的情況下,并不影響系統(tǒng)運(yùn)行。但是否有方法能夠進(jìn)一步提高通信的效率?
進(jìn)一步研究上述雙向通信機(jī)制,我們會(huì)發(fā)現(xiàn),其實(shí)并不是所有通信數(shù)據(jù)都是有意義的,第一次通信的從機(jī)返回應(yīng)答,第二次通信的主機(jī)發(fā)送請(qǐng)求,以及第三次通信的從機(jī)返回應(yīng)答,傳輸?shù)臄?shù)據(jù)都是沒(méi)有意義的,是否能夠簡(jiǎn)化掉?
因?yàn)橥ㄐ攀峭ㄟ^(guò)DMA方式直接把數(shù)據(jù)緩沖到Buffer里面的,所以像第一次通信,只要主機(jī)把任務(wù)要求發(fā)送給從機(jī),主機(jī)就可以繼續(xù)往下執(zhí)行任務(wù)代碼;從機(jī)如果執(zhí)行得比主機(jī)慢的話,數(shù)據(jù)已經(jīng)緩沖到Buffer了,直接讀取就行了,已經(jīng)執(zhí)行到了的話,則還是需要等待主機(jī)發(fā)送任務(wù)要求,也不會(huì)錯(cuò)過(guò)數(shù)據(jù)。所以可以進(jìn)行化簡(jiǎn)優(yōu)化。
化簡(jiǎn)之后的通信機(jī)制,從宏觀上構(gòu)成一次半往返通信,少了很大一塊等待時(shí)間,耗費(fèi)的時(shí)間將會(huì)比原先的通信機(jī)制大大減少。由于主從機(jī)的圖圖像采集是同步進(jìn)行的,考慮上這一因素,主從機(jī)還是能夠很好的同步。化簡(jiǎn)后的通信機(jī)制如圖4所示。
圖4 主從DSP單向通信機(jī)制Fig.4 Master-slave DSP unidirectional communication mechanism
經(jīng)測(cè)試,簡(jiǎn)化后,在100張圖像連續(xù)采圖,每85 ms進(jìn)行一次圖像采集的情況下,整機(jī)系統(tǒng)通信正常,運(yùn)行穩(wěn)定,測(cè)試100組數(shù)據(jù)均工作正常,說(shuō)明該通信機(jī)制也是穩(wěn)定可靠的,符合系統(tǒng)設(shè)計(jì)要求。
兩個(gè)測(cè)試機(jī)制都經(jīng)過(guò)大量的運(yùn)行測(cè)試,每次100張連續(xù)采圖,測(cè)試100組,系統(tǒng)均穩(wěn)定可靠運(yùn)行。說(shuō)明兩個(gè)機(jī)制都能夠滿足系統(tǒng)要求。
兩個(gè)機(jī)制的通信時(shí)間測(cè)試結(jié)果如下:
通過(guò)設(shè)計(jì)SPORT接口的主從DSP系統(tǒng)數(shù)據(jù)通信,雙DSP系統(tǒng)能夠穩(wěn)定可靠的運(yùn)行;通過(guò)對(duì)通信機(jī)制進(jìn)行優(yōu)化,使得系統(tǒng)的實(shí)時(shí)性得到進(jìn)一步的保障。雙DSP系統(tǒng)能夠穩(wěn)定運(yùn)行,保證實(shí)時(shí)處理同一對(duì)象的雙面圖像,并及時(shí)得出處理結(jié)果進(jìn)行控制動(dòng)作。隨著信號(hào)處理數(shù)據(jù)量的不斷增大,雙核或雙處理器的并行處理系統(tǒng)將會(huì)越來(lái)越多地被應(yīng)用,該設(shè)計(jì)提供了有益的嘗試,并取得了不錯(cuò)的效果。
[1]周濱,謝曉霞,傅其祥,等.基于多DSP的高速通用并行處理系統(tǒng)研究與設(shè)計(jì)[J].電子設(shè)計(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ī)器人控制器的設(shè)計(jì)[J].制造業(yè)自動(dòng)化,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雙向通信的設(shè)計(jì)與實(shí)現(xiàn)[J].科學(xué)技術(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)的設(shè)計(jì)與開(kāi)發(fā)[J].計(jì)算機(jī)測(cè)量與控制,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.