《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于DSP+ARM架構(gòu)的協(xié)議轉(zhuǎn)換器設(shè)計(jì)
基于DSP+ARM架構(gòu)的協(xié)議轉(zhuǎn)換器設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2010年第10期
李振峰1,李海峽2
1.中色科技股份有限公司,河南 洛陽(yáng)471039;2.凱邁(洛陽(yáng))電子有限公司,河南 洛陽(yáng)471003
摘要: 介紹基于DSP+ARM架構(gòu)協(xié)議轉(zhuǎn)換器的系統(tǒng)組成及其工作原理,給出了DSP通過(guò)EMIF接口與FPGA無(wú)縫連接的接口實(shí)現(xiàn),DSP通過(guò)HPI接口與ARM高速接口的實(shí)現(xiàn),以及基于ARM的高速以太網(wǎng)接口。簡(jiǎn)要介紹了基于嵌入式操作系統(tǒng)uClinux的網(wǎng)絡(luò)編程,給出了實(shí)驗(yàn)結(jié)果。
中圖分類號(hào): TP391
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2010)10-0022-03
Design of protocol convertor based on DSP and ARM
LI Zhen Feng1,LI Hai Xia2
1.China Nonferrous Metals Processing Technology Co., Ltd.,Luoyang 471039,China;2.CAMA(Luoyang) Electronics Co., Ltd.,Luoyang 471003,China
Abstract: It detailedly describes the constitute and principle of a protocol convertor based on DSP and ARM, and gives the sketch maps of glueless interface between DSP and FPGA, DSP and ARM. It also gives the sketch map of Ethernet interface based on ARM. It briefly introduces the method of program based on ?滋Clinux. Finally it gives the experiment results.
Key words : DSP;ARM;HPI;EMIF;embedded system

    在測(cè)試飛行控制組件時(shí),遙測(cè)接收設(shè)備離信息處理中心較遠(yuǎn),而被測(cè)數(shù)據(jù)量又極大,如果采用傳統(tǒng)的專線傳輸遙測(cè)數(shù)據(jù),則傳輸時(shí)間需幾個(gè)小時(shí),無(wú)法滿足快速處理的要求。因此,需要研制一種協(xié)議轉(zhuǎn)換器,用來(lái)完成被測(cè)數(shù)據(jù)無(wú)損、實(shí)時(shí)、遠(yuǎn)距離地與遠(yuǎn)程上位機(jī)進(jìn)行通信,并能接收上位機(jī)的控制指令,實(shí)現(xiàn)工作狀態(tài)的遠(yuǎn)程交互,而測(cè)試人員通過(guò)上位機(jī)的人機(jī)界面就可以完成所有測(cè)試。
1 系統(tǒng)組成及工作原理
    考慮到系統(tǒng)實(shí)時(shí)性和可靠性的要求,選擇以太網(wǎng)口作為協(xié)議轉(zhuǎn)換器與遠(yuǎn)程上位機(jī)的數(shù)據(jù)轉(zhuǎn)發(fā)接口、以高速串口作為控制口的通信方式,采用DSP+ARM架構(gòu)的硬件解決方案。系統(tǒng)框圖如圖1所示?;竟ぷ髟恚篎PGA作為數(shù)據(jù)預(yù)處理器,完成并行數(shù)據(jù)到串行數(shù)據(jù)的轉(zhuǎn)換等數(shù)據(jù)預(yù)處理任務(wù);DSP讀取FPGA處理后的數(shù)據(jù)并完成數(shù)據(jù)壓縮;ARM作為中央處理控制器,主要從DSP系統(tǒng)中讀取已經(jīng)編碼的數(shù)據(jù)并通過(guò)以太網(wǎng)完成與上位機(jī)實(shí)時(shí)通信的任務(wù)。上位機(jī)按照數(shù)據(jù)傳輸協(xié)議、產(chǎn)品的數(shù)據(jù)遙測(cè)協(xié)議解調(diào)出各類物理變量,記錄并存儲(chǔ)。測(cè)試人員通過(guò)上位機(jī)完成工作狀態(tài)的遠(yuǎn)程設(shè)置與查詢信息交互的任務(wù)。

2 硬件設(shè)計(jì)
2.1 TMS320C6416及其外圍電路設(shè)計(jì)

    DSP芯片選用TI公司的TMS320C6416。這是TI公司推出的高速定點(diǎn)DSP,它擁有處理能力強(qiáng)大的CPU、高達(dá)1 MB的RAM及豐富的外設(shè)接口。外設(shè)包括為CPU訪問(wèn)外圍設(shè)備提供無(wú)縫接口的靈活的外部存儲(chǔ)器接口EMIFA和EMIFB,一個(gè)使得DSP很容易通過(guò)PCI接口無(wú)縫連接到具有PCI功能的外部主CPU上的PCI接口,一個(gè)16/32 bit寬的異步并行接口HPI(和PCI共用相同的引腳),一個(gè)提供64 bit數(shù)據(jù)通道訪問(wèn)的增強(qiáng)型EDMA等。TMS320C6416采用3.3 V和1.4 V電源供電,其中I/O采用3.3 V電源供電,內(nèi)核采用1.4 V電源供電。TMS320C6416有符合IEEE1149.1標(biāo)準(zhǔn)的JTAG標(biāo)準(zhǔn)測(cè)試接口及相應(yīng)的控制器,從而可以通過(guò)仿真器把DSP系統(tǒng)與PC機(jī)相連,進(jìn)行在線調(diào)試[1]。
2.1.1 DSP與SDRAM、Flash的接口電路
    DSP處理器TMS320C6416對(duì)外有2個(gè)EMIF總線接口,分別是寬64 bit的EMIFA和寬16 bit的EMIFB。EMIFA接口具備與8、16、32、64 bit系統(tǒng)接口的功能,EMIFB接口端口支持8 bit和16 bit系統(tǒng)。EMIFA分成ACE0~ACE3四個(gè)存儲(chǔ)空間,每個(gè)存儲(chǔ)空間可以獨(dú)立配置,無(wú)縫連接多種類型的存儲(chǔ)器(如SRAM、Flash RAM、DDR RAM)。
    為了提高系統(tǒng)運(yùn)行速度,外擴(kuò)兩片SDRAM芯片作為程序的運(yùn)行空間、數(shù)據(jù)及堆棧區(qū)。SDRAM 芯片選用同步存儲(chǔ)器MT48LC2M32B2TG,其容量為2 M×32 bit。TMS320C6416通過(guò)EMIFA接口實(shí)現(xiàn)與兩片SDRAM芯片的無(wú)縫連接。
    TMS320C6416內(nèi)部沒(méi)有Flash存儲(chǔ)器,為了形成獨(dú)立的系統(tǒng),采用外部擴(kuò)展Flash存儲(chǔ)器AM29LV400B存儲(chǔ)程序。系統(tǒng)復(fù)位時(shí),從Flash中加載程序。TMS320C6416通過(guò)EMIFB接口實(shí)現(xiàn)與Flash芯片的無(wú)縫連接。
2.1.2 DSP與FPGA的接口電路
    由于DSP處理器TMS320C6416的采樣速度及存儲(chǔ)空間受到自身約束限制,所以數(shù)據(jù)的采集、流向控制和數(shù)據(jù)預(yù)處理等任務(wù)由FPGA完成。FPGA芯片選用Xilinx公司低成本現(xiàn)場(chǎng)可編程門陣列Spartan-3E系列中的XC3S500E。XC3S500E芯片集成有20個(gè)Block RAM,每個(gè)RAM塊中的18 Kbit的模塊存儲(chǔ)器是完全同步、真正的雙端存儲(chǔ)器。用戶可獨(dú)立地從每個(gè)端口讀出或向每個(gè)端口寫入(但同一地址不能同時(shí)進(jìn)行讀和寫)。另外,每個(gè)端口都有一個(gè)獨(dú)立的時(shí)鐘,并且對(duì)每個(gè)端口的數(shù)據(jù)寬度都可以獨(dú)立進(jìn)行配置。
    在該協(xié)議轉(zhuǎn)換器中,DSP通過(guò)EMIFA接口連接到FPGA,實(shí)現(xiàn)DSP與FPGA Block RAM的無(wú)縫連接,從而使得DSP與FPGA之間的通信問(wèn)題轉(zhuǎn)化為DSP對(duì)其EMIFA外設(shè)的訪問(wèn),達(dá)到了提高系統(tǒng)實(shí)時(shí)性的目的。為了保持FPGA與DSP之間的同步,F(xiàn)PGA的時(shí)鐘直接由DSP內(nèi)部的鎖相環(huán)提供。DSP處理器TMS320C6416與FPGA的接口示意圖如圖2所示[2]。

2.2 S3C4510B及其外圍電路設(shè)計(jì)
    ARM芯片選用Samsung公司的S3C4510B。S3C4510B是基于以太網(wǎng)應(yīng)用的高性價(jià)比16/32 bit RISC微控制器,內(nèi)含一個(gè)由ARM公司設(shè)計(jì)的16/32 bit ARM7TDMI RISC處理器核。S3C4510B 提供了一套比較完整的通用的外圍設(shè)備,從而使得整個(gè)系統(tǒng)消耗最小。正是因?yàn)樗哂泻芏喑S玫墓δ苣K,所以也免去了添加配置附加設(shè)備的麻煩。芯片上集成的功能主要包括以下幾個(gè)方面[3]:3.3 V ARM內(nèi)核和3.3 V外部I/O,具有50 MHz時(shí)鐘頻率的微處理器;8 KB的Cache/SRAM;一個(gè)10/100 Mb/s以太網(wǎng)控制器,MII接口;2個(gè)HDLC通道,每個(gè)通道可支持10 Mb/s;2個(gè)UART通道,2個(gè)DMA通道,2個(gè)32 bit定時(shí)/計(jì)數(shù)器;1個(gè)通道IIC接口,18個(gè)可編程I/O口;中斷控制器,支持21個(gè)中斷源,包括4個(gè)外部中斷;支持SDRAM、SRAM、Flash等;具有擴(kuò)展外部總線和JTAG接口,支持軟件開(kāi)發(fā)及硬件調(diào)試。
    本設(shè)計(jì)選用ARM微控制器S3C4510B是因其集成有以太網(wǎng)控制器和極強(qiáng)的外圍擴(kuò)展能力。S3C4510B以及其外圍芯片F(xiàn)lash、SDRAM組成了整個(gè)系統(tǒng)的核心,負(fù)責(zé)控制和協(xié)調(diào)各模塊工作,并實(shí)現(xiàn)與遠(yuǎn)程上位機(jī)的以太網(wǎng)通信。本設(shè)計(jì)對(duì)S3C4510B內(nèi)部SDRAM和ROM進(jìn)行了擴(kuò)充。采用兩片SDRAM芯片HY57V641620并聯(lián)構(gòu)建32 bit的SDRAM存儲(chǔ)系統(tǒng);采用一片F(xiàn)lash芯片HY29LV160構(gòu)建16 bit的Flash存儲(chǔ)器系統(tǒng)。
2.2.1 ARM與DSP的接口電路
    由于ARM微控制器要實(shí)現(xiàn)整個(gè)系統(tǒng)的協(xié)調(diào)控制和網(wǎng)絡(luò)功能,DSP處理器要執(zhí)行復(fù)雜計(jì)算,因此需要實(shí)現(xiàn)ARM和DSP之間的數(shù)據(jù)交換。從某種程度上來(lái)說(shuō),ARM和DSP之間數(shù)據(jù)交換的速度決定了整個(gè)系統(tǒng)的運(yùn)行速度和性能。
    DSP處理器TMS320C6416集成了一個(gè)16/32 bit寬的主機(jī)接口HPI,HPI通過(guò)復(fù)位時(shí)的自舉和器件配置引腳HD5選擇采用HPI16或HPI32。HPI具有兩條地址線HCNTRL[1:0],負(fù)責(zé)對(duì)HPI的內(nèi)部寄存器尋址。HPI只有三個(gè)32 bit內(nèi)部寄存器,分別是控制寄存器HPIC、地址寄存器HPIA和數(shù)據(jù)寄存器HPID。只需對(duì)上述三個(gè)寄存器進(jìn)行相應(yīng)的讀寫操作,就能完成對(duì)DSP內(nèi)存空間的訪問(wèn)。
    由于ARM微控制器S3C4510B中沒(méi)有完全符合DSP處理器TMS320C6416 HPI接口時(shí)序的外部接口可以直接使用,因此選用S3C4510B中時(shí)序最接近HPI接口時(shí)序的外部I/O接口與TMS320C6416進(jìn)行連接。TMS320C6416與S3C4510B的接口示意圖如圖3所示。由圖3可知,TMS320C6416與S3C4510B通過(guò)單獨(dú)的32 bit數(shù)據(jù)線HD0~HD31和8條控制線進(jìn)行連接。S3C4510B通過(guò)HPI訪問(wèn)DSP內(nèi)部的RAM以及其他一些外部資源。在整個(gè)ARM與DSP通過(guò)HPI進(jìn)行通信和數(shù)據(jù)交換的過(guò)程中,除了中斷ARM和清除ARM發(fā)過(guò)來(lái)的中斷需要DSP本身參與外,其他操作中DSP都處于被動(dòng)地位。所以對(duì)于ARM來(lái)說(shuō),DSP就相當(dāng)于一片外接的SDRAM。


2.2.2 以太網(wǎng)接口電路
    ARM微控制器S3C4510B內(nèi)嵌一個(gè)以太網(wǎng)控制器,支持媒體獨(dú)立接口MII(Media Independent Interface)和帶緩沖DMA接口(Buffered DMA Interface)??稍诎腚p工或全雙工模式下提供10 /100 Mb/s的以太網(wǎng)接入。在半雙工模式下,控制器支持CSMA/CD協(xié)議,在全雙工模式下支持IEEE802.3 MAC控制層協(xié)議。因此,S3C4510B內(nèi)部實(shí)際上已包含了以太網(wǎng)MAC控制,但并未提供物理層接口,所以采用RTL8201作為以太網(wǎng)的物理層接口。信號(hào)的發(fā)送和接收端TPRX+、TPRX-、TPTX+、TPTX-應(yīng)通過(guò)網(wǎng)絡(luò)隔離變壓器和RJ45接口接入傳輸媒體[4]。以太網(wǎng)接口示意圖如圖4所示。

3 系統(tǒng)軟件設(shè)計(jì)
    由于需要ARM微控制器S3C4510B實(shí)現(xiàn)整個(gè)系統(tǒng)的協(xié)調(diào)控制和網(wǎng)絡(luò)功能,因此在S3C4510B上移植了嵌入式操作系統(tǒng)μClinux。μCLinux是一個(gè)帶有完整TCP/IP協(xié)議的操作系統(tǒng),在μCLinux中加入實(shí)時(shí)RT-Linux模塊以滿足對(duì)嵌入式操作系統(tǒng)的實(shí)時(shí)性要求,并根據(jù)需要對(duì)μCLinux系統(tǒng)進(jìn)行了裁剪。
    在網(wǎng)絡(luò)通信中,基于TCP/IP協(xié)議的通信方式有很多,本文選用Socket實(shí)現(xiàn)服務(wù)器端和客戶端的數(shù)據(jù)通信。Socket是建立在傳輸層協(xié)議上的一種套接字規(guī)范,它定義了兩臺(tái)計(jì)算機(jī)間進(jìn)行通信的規(guī)范。套接字屏蔽了底層通信軟件和具體操作系統(tǒng)的差異,使得任何兩臺(tái)安裝了TCP協(xié)議軟件和實(shí)現(xiàn)了套接字規(guī)范的計(jì)算機(jī)之間的通信成為可能。在開(kāi)發(fā)?滋CLinux系統(tǒng)下的套接字程序時(shí),采用了TCP套接字,因?yàn)樗峁┝艘环N可靠的面向連接的數(shù)據(jù)傳輸方法,有檢錯(cuò)和糾錯(cuò)機(jī)制,并且不管對(duì)單個(gè)數(shù)據(jù)報(bào)還是數(shù)據(jù)包,它都提供一種流式數(shù)據(jù)傳輸方式。服務(wù)器首先啟動(dòng)并進(jìn)行初始化操作,通過(guò)調(diào)用函數(shù)socket()創(chuàng)建一個(gè)套接字,然后調(diào)用函數(shù)bind()將該套接字和本地網(wǎng)絡(luò)地址綁定在一起,再調(diào)用函數(shù)listen()將該套接字轉(zhuǎn)換成傾聽(tīng)套接字,之后調(diào)用函數(shù)accept()來(lái)等待接收客戶的請(qǐng)求。客戶在調(diào)用函數(shù)socket()建立套接字后就可以調(diào)用函數(shù)connect()與服務(wù)器建立連接。連接一旦建立,客戶端和服務(wù)器端之間就可以通過(guò)調(diào)用函數(shù)read()和write()進(jìn)行通信,待數(shù)據(jù)傳送結(jié)束以后,雙方調(diào)用函數(shù)close()關(guān)閉套接字[5]。
    通過(guò)對(duì)系統(tǒng)進(jìn)行聯(lián)合調(diào)試,實(shí)現(xiàn)了被測(cè)數(shù)據(jù)無(wú)損、實(shí)時(shí)、遠(yuǎn)距離與遠(yuǎn)程上位機(jī)進(jìn)行通信并能接收上位機(jī)的控制指令,實(shí)現(xiàn)工作狀態(tài)遠(yuǎn)程交互的任務(wù)。測(cè)試人員通過(guò)上位機(jī)可以對(duì)遙測(cè)數(shù)據(jù)進(jìn)行編輯,并隨時(shí)可以查看接收數(shù)據(jù)的正確與否。
    本文詳細(xì)介紹了基于DSP+ARM架構(gòu)的協(xié)議轉(zhuǎn)換器的設(shè)計(jì)實(shí)現(xiàn)。提供了詳細(xì)的硬件平臺(tái)結(jié)構(gòu)設(shè)計(jì)方案,闡述了基于嵌入式系統(tǒng)的網(wǎng)絡(luò)編程的實(shí)現(xiàn)方法。根據(jù)本方案實(shí)現(xiàn)的協(xié)議轉(zhuǎn)換器具有低成本、低功耗、通用性好、功能可升級(jí)擴(kuò)展等優(yōu)點(diǎn)。
參考文獻(xiàn)
[1] TI.TMS320C6416 datasheet[EB/OL].http://www.TI.com,2001.
[2] 賽靈思公司.使用EMIF將Xilinx FPGA與TI DSP平臺(tái)接口應(yīng)用指南[EB/OL].www.xilinx.com.cn,2007.
[3] 李駒光.ARM應(yīng)用系統(tǒng)開(kāi)發(fā)詳解[M].北京:清華大學(xué)出版社,2004.
[4] Realtek.RTL8201 Datasheet[EB/OL].http://www.realtek.com.
[5] 孫天澤,袁文菊,張海峰.嵌入式設(shè)計(jì)及Linux驅(qū)動(dòng)開(kāi)發(fā)指南[M].北京:電子工業(yè)出版社,2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。