嵌入式機(jī)器視覺系統(tǒng)中ARM與DSP的數(shù)據(jù)通信方法
DSP對(duì)數(shù)字信號(hào)和數(shù)值算法具有強(qiáng)大的運(yùn)算處理能力,因而在信號(hào)采集與處理中被廣泛應(yīng)用,但其在任務(wù)管理、實(shí)時(shí)控制、人機(jī)交互等方面不占優(yōu)勢(shì)。而ARM微控制器則控制功能強(qiáng)大,可以加載嵌入式操作系統(tǒng),且能夠提供良好的人機(jī)交互、任務(wù)管理、網(wǎng)絡(luò)通信等方面功能。因此,發(fā)揮DSP和ARM處理器各自的優(yōu)勢(shì),采用ARM+DSP結(jié)構(gòu)的設(shè)計(jì)方案已成為嵌入式系統(tǒng)的研究熱點(diǎn),倍受關(guān)注。通過嵌入式機(jī)器視覺系統(tǒng)的設(shè)計(jì)實(shí)例,闡述ARM與DSP有機(jī)結(jié)合的設(shè)計(jì)思想,重點(diǎn)研究ARM與DSP之間的數(shù)據(jù)通信。
1 嵌入式機(jī)器視覺系統(tǒng)總體方案
采用ARM+DSP結(jié)構(gòu)的機(jī)器視覺系統(tǒng)總體結(jié)構(gòu)如圖l所示。以三星公司高性能ARM處理器S3C2440作為主控制器,配置并移植Linux操作系統(tǒng),同時(shí)以TI公司的DSP芯片TMS320C5402為圖像處理的協(xié)處理器,通過對(duì)DSP芯片自帶的HPI接口的硬件連接方案和驅(qū)動(dòng)程序設(shè)計(jì),將二者有機(jī)地結(jié)合起來,各自發(fā)揮其獨(dú)特優(yōu)勢(shì),協(xié)調(diào)配合,完成目標(biāo)采集、處理與視覺跟蹤。
首先由智能攝像機(jī)采集現(xiàn)場運(yùn)動(dòng)目標(biāo)的圖像,由ARM控制將數(shù)據(jù)存放在ARM與DSP的公共存儲(chǔ)區(qū)域中,并通知信號(hào)處理模塊DSP調(diào)用各種算法(幀間差分、圖像分割、特征提取、形心計(jì)算等)對(duì)視頻圖像進(jìn)行處理,完成目標(biāo)的識(shí)別與定位,并將結(jié)果信息傳給ARM處理器,由ARM控制步進(jìn)電機(jī),調(diào)整PTZ攝像機(jī)位姿(水平轉(zhuǎn)動(dòng)P-Pan、垂直轉(zhuǎn)動(dòng)T-Tilt、景深伸縮Z-Zoom),使其對(duì)準(zhǔn)運(yùn)動(dòng)目標(biāo),實(shí)現(xiàn)實(shí)時(shí)跟蹤。此外,ARM處理器還負(fù)責(zé)多任務(wù)管理、人機(jī)交互及中斷報(bào)警等。
作為雙核系統(tǒng),雙核各自擁有很好的性能,于是主機(jī)ARM與協(xié)處理器DSP之間能否進(jìn)行快速可靠的數(shù)據(jù)交換,直接決定機(jī)器視覺系統(tǒng)的運(yùn)行效率。在硬件設(shè)計(jì)方面,采用主機(jī)并行接口HPI實(shí)現(xiàn)主機(jī)ARM與協(xié)處理器DSP之間的硬件直連,設(shè)計(jì)簡單方便,時(shí)鐘頻率可達(dá)到DSP時(shí)鐘頻率的1/5,能夠支持DSP與主機(jī)之間的高速數(shù)據(jù)傳輸。在軟件設(shè)計(jì)方面,則移植嵌入式Linux操作系統(tǒng),將HPI看作字符設(shè)備完成了驅(qū)動(dòng)程序的設(shè)計(jì)。
2 雙機(jī)通信硬件設(shè)計(jì)
2.1 HPI接口簡介
主機(jī)接口(HPI)是TI公司C54x系列定點(diǎn)信號(hào)處理器(DSP)內(nèi)部自帶的接口部件,通過它可以方便地實(shí)現(xiàn)DSP與其他主機(jī)連接。C54x中的主機(jī)接口主要有3種類型:標(biāo)準(zhǔn)8位主機(jī)接口HPI-8,增強(qiáng)8位主機(jī)接口HPI-8,增強(qiáng)16位主機(jī)接口HPI-16。增強(qiáng)型的HPI可以允許主機(jī)訪問DSP所有的片上RAM單元,而標(biāo)準(zhǔn)主機(jī)接口只允許訪問固定的2 K片上RAM。本文中用到的TMS320C5402擁有增強(qiáng)HPI-16主機(jī)接口。它由以下5部分組成:
1)HPI存儲(chǔ)器(DARAM) 傳送主機(jī)與DSP之間的數(shù)據(jù),在一個(gè)機(jī)器周期內(nèi)能被訪問2次,可以用作通用的雙導(dǎo)址數(shù)據(jù)RAM或者程序RAM。
2)HPI地址寄存器(HPIA) 只有主機(jī)能對(duì)其進(jìn)行直接訪問。該寄存器中存放著當(dāng)前尋址的HPI存儲(chǔ)單元的地址。
3)HPI控制寄存器(HPIC) 地址002CH,主機(jī)和DSP都能對(duì)他直接訪問,用來保存HPI操作的控制和狀態(tài)位。
4)HPI數(shù)據(jù)鎖存器(HPID) 只有主機(jī)能對(duì)它進(jìn)行直接訪問。如果當(dāng)前進(jìn)行的是讀操作,則HPID中存放的是要從HPI存儲(chǔ)器中讀出的數(shù)據(jù);如果當(dāng)前進(jìn)行寫操作,則HPID中存放的是將要寫到HPI存儲(chǔ)器的數(shù)據(jù)。
5)HPI控制邏輯 處理HPI與主機(jī)之間的接口信號(hào)。
接口電路中使用的引腳及其作用是:HD[15:O]:并行、雙向、三態(tài)的數(shù)據(jù)總線,不傳遞數(shù)據(jù)時(shí)為高阻態(tài);HHWIL:半字定義選擇引腳,用來表示第一或者第二半字。當(dāng)?shù)碗娖綍r(shí)表示第一半字;當(dāng)高電平時(shí)表示第二半字。:讀/寫輸入信號(hào)。高電平表示主機(jī)要讀HPI,低電平表示寫HPI。若主機(jī)沒有讀/寫選通,則可以用一根地址線代替。HCNTL0和HCNTLl控制引腳表示訪問那個(gè)內(nèi)部HPI寄存器和訪問寄存器的類型。表l是具體功能說明。:輸入主要作為HPI的使能信號(hào),而信號(hào)控制HPI數(shù)據(jù)傳遞;它們?nèi)呱蓛?nèi)部選通信號(hào)。就緒信號(hào)引腳,高電平表示HPI已經(jīng)準(zhǔn)備好執(zhí)行1次數(shù)據(jù)傳送;低電平表示HPI正忙。HINT:主機(jī)外部中斷信號(hào),用于HPI向主機(jī)發(fā)出中斷。地址選通信號(hào),僅用于復(fù)用方式。對(duì)于地址/數(shù)據(jù)總線分開的主機(jī),必須把信號(hào)連接到高電平。
2.2 接口電路及其工作原理
S3C2440與TMS320C5402通過HPI連接的接口電路如圖2所示,二者連接簡潔方便,不必使用任何的附加電路。工作時(shí),ARM首先初始化控制寄存器HPIC和地址寄存器HPIA,然后對(duì)HPID進(jìn)行讀寫。初始化HPIC、HPIA時(shí),通過A2、A3、A4、A5對(duì)應(yīng)的地址進(jìn)行操作,設(shè)置寄存器訪問控制HCNTL0、HCNTL1、讀寫控制和半字訪問HHWIL,配置好HPIC,并在HPIA中寫入HPI存儲(chǔ)器的起始地址。因?yàn)锳RM主機(jī)具有獨(dú)立的地址總線和數(shù)據(jù)總線,采用非復(fù)用方式,所以將HAS信號(hào)接高電平(VCC)。S3C2440的nWAIT信號(hào)與HPI的信號(hào)邏輯上反向,之間用反相器連接。 S3C2440通過片選信號(hào)nGCS2、讀使能信號(hào)nOE、寫使能信號(hào)nWE三者生成內(nèi)部選通信號(hào),控制對(duì)HPI的讀寫。
評(píng)論