摘 要: 針對(duì)遠(yuǎn)程監(jiān)控的實(shí)際需要,介紹了基于title="ARM">ARM微處理器S3C2410A和DSP數(shù)字信號(hào)處理器TMS320C6211雙核結(jié)構(gòu)監(jiān)控系統(tǒng)的設(shè)計(jì)方案,。闡述了該系統(tǒng)的組成結(jié)構(gòu)與軟硬件設(shè)計(jì),,系統(tǒng)主從設(shè)備單元之間通過(guò)I/O口與HPI接口實(shí)現(xiàn)通信。該系統(tǒng)具有性能高,、功耗低,、實(shí)時(shí)性好、可擴(kuò)展性強(qiáng)及工作穩(wěn)定可靠等優(yōu)點(diǎn),。
關(guān)鍵詞: DSP,;ARM;通信
隨著計(jì)算機(jī)技術(shù),、網(wǎng)絡(luò)技術(shù)和大規(guī)模集成電路技術(shù)的發(fā)展,,通過(guò)網(wǎng)絡(luò)方式實(shí)現(xiàn)遠(yuǎn)程實(shí)時(shí)監(jiān)控和檢測(cè)物理環(huán)境逐漸成為現(xiàn)實(shí)和研究的熱點(diǎn)。同時(shí),,嵌入式設(shè)備功耗低,、實(shí)時(shí)性強(qiáng)等特點(diǎn),為需要利用設(shè)備對(duì)現(xiàn)場(chǎng)進(jìn)行數(shù)據(jù)采集和實(shí)時(shí)監(jiān)控等諸多場(chǎng)合提供可靠的支持,。
本文設(shè)計(jì)了基于ARM和DSP的雙核嵌入式監(jiān)控系統(tǒng),,該系統(tǒng)可以實(shí)時(shí)采集物理環(huán)境的數(shù)據(jù)信息并可通過(guò)網(wǎng)絡(luò)傳輸?shù)浇K端以得到即時(shí)處理。系統(tǒng)以ARM芯片為主設(shè)備單元處理器,,完成各種控制和網(wǎng)絡(luò)功能,以DSP芯片作為從設(shè)備單元處理器,,完成數(shù)據(jù)采集和分析處理,,ARM單元和DSP單元構(gòu)成監(jiān)控系統(tǒng)的雙核架構(gòu)。該系統(tǒng)通過(guò)自主運(yùn)行采集和分析處理被監(jiān)控區(qū)域的物理信息,,依據(jù)實(shí)際需求將數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)或做出如報(bào)警,、跳閘等即時(shí)處理,實(shí)現(xiàn)對(duì)被檢測(cè)區(qū)域的物理事件的實(shí)時(shí)監(jiān)控與檢測(cè),。
1 系統(tǒng)的設(shè)計(jì)方案
檢測(cè)被監(jiān)控環(huán)境中物理信息的傳統(tǒng)監(jiān)控設(shè)備,,一般采用單核DSP處理器結(jié)構(gòu),系統(tǒng)設(shè)計(jì)較為復(fù)雜,,穩(wěn)定性不高,。本設(shè)計(jì)采用ARM與DSP雙核結(jié)構(gòu),通過(guò)系統(tǒng)主從兩個(gè)設(shè)備單元的硬件通信接口的設(shè)計(jì)和軟件通信的設(shè)計(jì),,將32位嵌入式微處理器ARM與數(shù)字信號(hào)處理器DSP相結(jié)合,,以充分利用雙核處理器的優(yōu)勢(shì),。ARM系統(tǒng)單元采用經(jīng)過(guò)裁剪的Linux嵌入式實(shí)時(shí)操作系統(tǒng),實(shí)現(xiàn)整個(gè)設(shè)備系統(tǒng)的協(xié)調(diào)控制和網(wǎng)絡(luò)功能等,;DSP單元通過(guò)檢測(cè)算法的移植,,實(shí)現(xiàn)數(shù)據(jù)的采集分析、處理和數(shù)據(jù)傳輸,。
該雙核設(shè)備系統(tǒng)中,,ARM系統(tǒng)作為主設(shè)備單元實(shí)現(xiàn)各控制功能,向DSP單元發(fā)出控制指令,,通過(guò)硬件接口接收DSP采集的數(shù)據(jù),;DSP系統(tǒng)作為從設(shè)備單元,搜集,、分析和處理傳感器或CCD等外設(shè)獲取的物理數(shù)據(jù),,并向主設(shè)備單元發(fā)送有效信息。其中,,ARM和DSP之間數(shù)據(jù)交換的速度決定了整個(gè)系統(tǒng)的運(yùn)行速度和性能,。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 系統(tǒng)整體結(jié)構(gòu)組成
監(jiān)控系統(tǒng)主要由兩部分組成:ARM微處理器主設(shè)備單元和DSP數(shù)據(jù)處理器從設(shè)備單元。系統(tǒng)結(jié)構(gòu)組成如圖1所示,。為提高主從設(shè)備單元之間的數(shù)據(jù)交換速度從而有效提高系統(tǒng)的運(yùn)行性能,,主處理器采用Samsung公司的ARM9內(nèi)核芯片S3C2410A[1],從處理器采用TI公司的TMS320C6211 DSP芯片[2],。
S3C2410A主頻為200 MHz~266 MHz,,數(shù)據(jù)處理速度為1.1 MIPS/MHz,其性能出色,,片內(nèi)外資源豐富,、視頻處理功能優(yōu)秀、功耗低,、外設(shè)接口豐富,,可以滿(mǎn)足多種設(shè)備外接的需求。TMS320C6211工作頻率可達(dá)167 MHz,,數(shù)據(jù)處理速度可達(dá)1 333 MIPS,。TMS320C6211已經(jīng)廣泛應(yīng)用于視頻檢測(cè)卡中,可做到以視頻圖像幀速率檢測(cè)信息[3],,外設(shè)接口豐富,。如圖1所示,ARM處理器選擇通用外部接口GPIO(General purpose I/O)的Port C端口16根數(shù)據(jù)線與DSP的主機(jī)接口HPI(Host Port Interface)相連接,,實(shí)現(xiàn)數(shù)據(jù)交換和信息傳輸,。ARM在接收到數(shù)據(jù)后,根據(jù)需要做出相應(yīng)處理,,如將數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò),、報(bào)警等,;DSP通過(guò)中斷的方式定時(shí)向ARM單元提出數(shù)據(jù)傳輸申請(qǐng),經(jīng)響應(yīng)后將數(shù)據(jù)傳輸給主設(shè)備單元,,進(jìn)而通過(guò)網(wǎng)絡(luò)傳輸?shù)浇K端,。
2.2 主設(shè)備單元設(shè)計(jì)
系統(tǒng)主設(shè)備單元采用ARM處理器為核心實(shí)現(xiàn),主要負(fù)責(zé)系統(tǒng)控制管理和數(shù)據(jù)傳輸?shù)热蝿?wù),,通過(guò)相應(yīng)的外設(shè)可以實(shí)時(shí)顯示或相應(yīng)處理,,如報(bào)警、電路跳閘和網(wǎng)絡(luò)通信等,。S3C2410A處理器采用ARM9內(nèi)核,,具有功耗低、體積小,、集成度高等特點(diǎn),,可通過(guò)GPIO連接多種外設(shè)。其中,,內(nèi)部集成了1片8 M×32 bit的Flash,,1個(gè)16 M×32 bit寬的SDRAM的內(nèi)存,主設(shè)備單元組成如圖2所示,。
主設(shè)備控制單元模塊中,,外接1片8 M×16 bit的Flash,一個(gè)16 M×16 bit寬的SDRAM,,加上處理器自帶的內(nèi)存,,總共構(gòu)成32 MB Flash、96 MB SDRAM,,可充分滿(mǎn)足嵌入式操作系統(tǒng)的移植和數(shù)據(jù)存儲(chǔ)的需求,。控制單元通過(guò)USB口與外設(shè)或上位機(jī)實(shí)現(xiàn)數(shù)據(jù)交換與系統(tǒng)移植,,利用專(zhuān)用的JTAG調(diào)試接口實(shí)現(xiàn)功能調(diào)試,。另外,可以利用GPIO外接多種不同的設(shè)備,,如顯示器、報(bào)警器,,也可以通過(guò)自帶的網(wǎng)口連接到辦公網(wǎng)絡(luò)等,。
2.3 從設(shè)備單元設(shè)計(jì)
從設(shè)備單元以TMS320C6211芯片為核心,該芯片采用的哈佛結(jié)構(gòu)比傳統(tǒng)的馮諾依曼結(jié)構(gòu)具有更高的DSP 指令速度,,且具有分離的數(shù)據(jù)總線和程序總線,,片內(nèi)集成了ROM、RAM 和多個(gè)外設(shè)數(shù)據(jù)處理部分,。
TMS320C6211芯片有兩種方式實(shí)現(xiàn)與ARM控制芯片相連接:(1)利用主機(jī)設(shè)備接口HPI,,主設(shè)備單元直接訪問(wèn)DSP,,DSP作為從設(shè)備使用;(2)利用增強(qiáng)直接存儲(chǔ)器訪問(wèn)控制器EMIF(External Memory Interface),,把ARM控制器映射到EMIF的存儲(chǔ)空間的方式,,使用EMIF控制DSP與ARM的數(shù)據(jù)傳輸,DSP作為主設(shè)備使用[4,,6],。本文選擇DSP作為從設(shè)備的方式,利用HPI和主設(shè)備單元進(jìn)行通信,。
TMS320C6211芯片的主機(jī)接口HPI是1個(gè)16 bit并行端口,,主設(shè)備芯片S3C2410A掌管該接口的主控權(quán),HPI接口允許主設(shè)備芯片通過(guò)HPI的3個(gè)寄存器實(shí)現(xiàn)對(duì)DSP存儲(chǔ)空間的隨機(jī)地址存取和自增地址存取,。DSP芯片的HPI接口3個(gè)寄存器分別是:控制寄存器(HPIC),、數(shù)據(jù)鎖存器(HPID)、地址寄存器(HPIA),。HPI接口信號(hào)及其功能如表1所示,。主設(shè)備芯片S3C2410A和TMS320C6211都可以存取HPI控制寄存器,主設(shè)備還可以存取HPI地址寄存器和HPI數(shù)據(jù)寄存器,,HPI的3個(gè)寄存器都采用存儲(chǔ)器映射方式映射到主設(shè)備的存儲(chǔ)空間[3,,6]。
2.4 主從設(shè)備單元的接口設(shè)計(jì)[4-6]
S3C2401A作為主處理單元的處理器工作在主機(jī)模式下,,TMS320C6211作為信號(hào)采集與處理單元的處理器工作在從機(jī)模式下,。ARM系統(tǒng)單元在系統(tǒng)上電時(shí)對(duì)DSP系統(tǒng)單元進(jìn)行初始化并加載檢測(cè)程序及參數(shù),利用I/O口進(jìn)行數(shù)據(jù)傳輸操作,,通過(guò)HPI接口訪問(wèn)DSP的整個(gè)存儲(chǔ)空間,。ARM給DSP發(fā)送控制信息時(shí),通過(guò)HPI接口將控制數(shù)據(jù)直接寫(xiě)入DSP的某個(gè)存儲(chǔ)區(qū)域內(nèi),,DSP經(jīng)查詢(xún)控制信息后,,到約定好的DSP存儲(chǔ)區(qū)域內(nèi)取數(shù)據(jù)并作相應(yīng)處理,如寫(xiě)數(shù)據(jù)到HPI端口等,。
S3C2401A通過(guò)端口C(Port C)的16根數(shù)據(jù)線和TMS320C6211的HPI接口HD[15:0]連接傳輸數(shù)據(jù),,通過(guò)控制線分別產(chǎn)生不同的硬件控制信號(hào)。S3C2410A的2根地址線ADDR2,、ADDR3分別接到TMS320C6211的HCNTL0,、HCNTL1,以完成對(duì)HPI接口不同寄存器的訪問(wèn),。地址線ADDR4代替HR/W信號(hào)和HPI口的HR/W相接,,用于選擇HPI接口處于寫(xiě)或讀狀態(tài)。地址線ADDR1與DSP 的HHWIL與相連接,,其信號(hào)表明并區(qū)分HD[15:0]上傳輸?shù)氖?2 bit數(shù)據(jù)中的高16 bit還是低16 bit,。TMS320C6211與S3C2401A間所有的數(shù)據(jù)交換是32 bit寬,,而HPI端口為16 bit,所以每次數(shù)據(jù)訪問(wèn)都需要進(jìn)行2次存取,,由HPI自動(dòng)將HD[15:0]上連續(xù)的2個(gè)16 bit數(shù)據(jù)合成32 bit,,也可以用其進(jìn)行反向分解。
S3C2410A的讀/寫(xiě)信號(hào)nOE和nWE分別接到HDS1和HDS2,,HPI口的HDS1和HDS2是數(shù)據(jù)選通信號(hào),,所有的地址線和控制線都在它們的下降沿采樣。從機(jī)HRDY信號(hào)接到主機(jī)的nWAIT(等待信號(hào))上,,HRDY是HPI準(zhǔn)備好端,,低電平表示HPI已準(zhǔn)備好執(zhí)行一次數(shù)據(jù)傳送,高電平表示HPI正忙于完成當(dāng)前事務(wù),。HPI口的中斷信號(hào)HINT連接到主機(jī)上的外部中斷引腳EINT8,,用于產(chǎn)生或偵聽(tīng)中斷信號(hào)。HAS是地址選通信號(hào),,此信號(hào)用于主機(jī)的數(shù)據(jù)線和地址線復(fù)用的情況,,不用時(shí)此信號(hào)應(yīng)接高電平。
把TMS320C6211映射到S3C2410A的存儲(chǔ)空間組BANK2,,將BANK2的片選信號(hào)nGCS2與HPI接口的片選信號(hào)HCS相連接,,只要對(duì)BANK2進(jìn)行操作,就可以產(chǎn)生DSP的片選信號(hào),。將TMS320C6211的引導(dǎo)模式設(shè)置為HPI boot模式,,在復(fù)位后由主機(jī)通過(guò)HPI口對(duì)DSP進(jìn)行初始化操作,包括初始化CPU和EMIF及向DSP加載程序和數(shù)據(jù)等,,主從設(shè)備之間硬件接口連接如圖3所示,。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 系統(tǒng)的初始化
在設(shè)計(jì)好ARM與DSP硬件連接的基礎(chǔ)上,需要通過(guò)正確的初始化和編程才能實(shí)現(xiàn)設(shè)備之間的通信,。對(duì)DSP芯片HPI接口進(jìn)行讀/寫(xiě)操作時(shí),,將HPI接口看作一個(gè)連接到ARM芯片的外部設(shè)備,將完成讀/寫(xiě)操作的程序看成在ARM核Linux系統(tǒng)下面的一個(gè)字符型驅(qū)動(dòng)程序進(jìn)行開(kāi)發(fā),。程序在上位機(jī)開(kāi)發(fā)完畢后,,經(jīng)JTAG口固化到ARM的存儲(chǔ)空間里。S3C2410A與TMS320C6211之間的初始化程序主要由ARM芯片的初始化和HDI接口讀寫(xiě)初始化組成,。
(1)ARM芯片的初始化[1,,4]
ARM處理器先要完成自身工作模式等一系列的初始化,才能正常進(jìn)行HPI接口的讀/寫(xiě),。初始化主要有嵌入式操作系統(tǒng)的移植、GPIO口管腳功能定義,、中斷控制,、代碼啟動(dòng),還有PLL,、時(shí)鐘,、存儲(chǔ)器系統(tǒng)以及堆棧等初始化, I/O及BANK存儲(chǔ)空間初始化的部分代碼如圖4所示,。
(2)HPI接口讀寫(xiě)初始化[2,,4]
系統(tǒng)設(shè)計(jì)中HPI口將占用外部I/O接口BANK2的地址,需要對(duì)TMS320C6211的BANK進(jìn)行配置,,同時(shí)對(duì)HPI接口寄存器的地址進(jìn)行宏定義,。由于使用單獨(dú)的地址線來(lái)模擬HPI16接口的HR/W,因此對(duì)同一個(gè)寄存器分別進(jìn)行讀/寫(xiě)操作時(shí),,看起來(lái)像是對(duì)不同的地址進(jìn)行相應(yīng)的操作,。DSP芯片部分初始化源代碼如圖5所示。
在定義宏后,,ARM通過(guò)HPI驅(qū)動(dòng)程序就可以將DSP中的數(shù)據(jù)通過(guò)HPI口讀出來(lái),,并送到指定的用戶(hù)緩沖區(qū)中,再通過(guò)網(wǎng)絡(luò)發(fā)送到用戶(hù)終端,。
3.2 數(shù)據(jù)傳輸流程
由ARM和DSP雙核構(gòu)建的監(jiān)控系統(tǒng)中,,數(shù)據(jù)傳輸由ARM發(fā)起。ARM單元在啟動(dòng)后,,開(kāi)啟數(shù)據(jù)傳輸進(jìn)程與DSP單元建立通信連接,,周期地查詢(xún)外設(shè)端口是否有DSP數(shù)據(jù)輸入。在接收到DSP數(shù)據(jù)后,,依據(jù)控制單元的程序進(jìn)行分析和處理,,以及依據(jù)需要做出相應(yīng)操作或?qū)?shù)據(jù)上傳至網(wǎng)絡(luò)等。
DSP數(shù)據(jù)采集單元在啟動(dòng)后,,通過(guò)所連接的外設(shè)采集監(jiān)控區(qū)域的物理信息,。應(yīng)用移植到DSP核中的程序算法,對(duì)接收到的數(shù)據(jù)實(shí)現(xiàn)分析和處理,。在接收到主設(shè)備控制單元的數(shù)據(jù)傳輸指令后,,將經(jīng)過(guò)分析處理后的數(shù)據(jù)發(fā)送到ARM控制單元。具體的設(shè)備數(shù)據(jù)傳輸流程如圖6所示,,其中,,ARM控制單元和DSP數(shù)據(jù)處理單元各自并行執(zhí)行相關(guān)操作。
本系統(tǒng)采用了目前先進(jìn)的ARM,、DSP技術(shù),,ARM作為主處理器完成系統(tǒng)管理及網(wǎng)絡(luò)通信,DSP作為協(xié)處理器完成數(shù)據(jù)采集、分析和處理,,整個(gè)系統(tǒng)方案簡(jiǎn)潔高效且具有可重構(gòu)性,。DSP的快速數(shù)據(jù)處理能力和ARM 卓越的控制、通信能力保證了動(dòng)態(tài)信號(hào)采集和分析系統(tǒng)的實(shí)時(shí)性要求,。由于DSP及ARM均是可編程的系統(tǒng)配置,,運(yùn)算靈活,其性?xún)r(jià)比高,、體積小,、功耗低,嵌入式操作系統(tǒng)支持的軟件豐富,,源代碼開(kāi)放裁剪靈活等特點(diǎn),,使本系統(tǒng)設(shè)計(jì)滿(mǎn)足了數(shù)據(jù)采集分析對(duì)易操作、網(wǎng)絡(luò)化和低成本等方面的要求,,適用于不同環(huán)境的檢測(cè)和監(jiān)控,。
參考文獻(xiàn)
[1] Samsung Electronics.S3C2410A-200MHz & 266MHz 32-Bit RISC Microprocessor User′s Manual,Revision1.0[Z].2004.
[2] TI Corp.TMS320C6000 Peripherals Reference Guide[Z].2000.
[3] 楊健,張慧慧.基于DSP和ARM的網(wǎng)絡(luò)化數(shù)據(jù)采集與信號(hào)分析終端[J].計(jì)算機(jī)工程,,2006,,32(8):269-271.
[4] 吳駿,楊兆選.ARM與DSP雙核視頻交通檢測(cè)系統(tǒng)通信接口設(shè)計(jì)[J].計(jì)算機(jī)工程,,2007,,33(5):255-257.
[5] 肖政宏,韓秋風(fēng),,朱麗群.基于ARM和DSP的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),,2006,28(9):53-55.
[6] 江思敏,,劉暢.TMS320C6000 DSP應(yīng)用開(kāi)發(fā)教程[M].北京:機(jī)械工業(yè)出版社,,2005.