《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于DSP+ARM架構(gòu)的協(xié)議轉(zhuǎn)換器設(shè)計(jì)
基于DSP+ARM架構(gòu)的協(xié)議轉(zhuǎn)換器設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2010年第10期
李振峰1,李海峽2
1.中色科技股份有限公司,河南 洛陽471039;2.凱邁(洛陽)電子有限公司,河南 洛陽471003
摘要: 介紹基于DSP+ARM架構(gòu)協(xié)議轉(zhuǎn)換器的系統(tǒng)組成及其工作原理,給出了DSP通過EMIF接口與FPGA無縫連接的接口實(shí)現(xiàn),DSP通過HPI接口與ARM高速接口的實(shí)現(xiàn),以及基于ARM的高速以太網(wǎng)接口。簡要介紹了基于嵌入式操作系統(tǒng)uClinux的網(wǎng)絡(luò)編程,給出了實(shí)驗(yàn)結(jié)果。
中圖分類號: TP391
文獻(xiàn)標(biāo)識碼: B
文章編號: 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

    在測試飛行控制組件時,遙測接收設(shè)備離信息處理中心較遠(yuǎn),而被測數(shù)據(jù)量又極大,如果采用傳統(tǒng)的專線傳輸遙測數(shù)據(jù),則傳輸時間需幾個小時,無法滿足快速處理的要求。因此,需要研制一種協(xié)議轉(zhuǎn)換器,用來完成被測數(shù)據(jù)無損、實(shí)時、遠(yuǎn)距離地與遠(yuǎn)程上位機(jī)進(jìn)行通信,并能接收上位機(jī)的控制指令,實(shí)現(xiàn)工作狀態(tài)的遠(yuǎn)程交互,而測試人員通過上位機(jī)的人機(jī)界面就可以完成所有測試。
1 系統(tǒng)組成及工作原理
    考慮到系統(tǒng)實(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ù)并通過以太網(wǎng)完成與上位機(jī)實(shí)時通信的任務(wù)。上位機(jī)按照數(shù)據(jù)傳輸協(xié)議、產(chǎn)品的數(shù)據(jù)遙測協(xié)議解調(diào)出各類物理變量,記錄并存儲。測試人員通過上位機(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訪問外圍設(shè)備提供無縫接口的靈活的外部存儲器接口EMIFA和EMIFB,一個使得DSP很容易通過PCI接口無縫連接到具有PCI功能的外部主CPU上的PCI接口,一個16/32 bit寬的異步并行接口HPI(和PCI共用相同的引腳),一個提供64 bit數(shù)據(jù)通道訪問的增強(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)測試接口及相應(yīng)的控制器,從而可以通過仿真器把DSP系統(tǒng)與PC機(jī)相連,進(jìn)行在線調(diào)試[1]。
2.1.1 DSP與SDRAM、Flash的接口電路
    DSP處理器TMS320C6416對外有2個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四個存儲空間,每個存儲空間可以獨(dú)立配置,無縫連接多種類型的存儲器(如SRAM、Flash RAM、DDR RAM)。
    為了提高系統(tǒng)運(yùn)行速度,外擴(kuò)兩片SDRAM芯片作為程序的運(yùn)行空間、數(shù)據(jù)及堆棧區(qū)。SDRAM 芯片選用同步存儲器MT48LC2M32B2TG,其容量為2 M×32 bit。TMS320C6416通過EMIFA接口實(shí)現(xiàn)與兩片SDRAM芯片的無縫連接。
    TMS320C6416內(nèi)部沒有Flash存儲器,為了形成獨(dú)立的系統(tǒng),采用外部擴(kuò)展Flash存儲器AM29LV400B存儲程序。系統(tǒng)復(fù)位時,從Flash中加載程序。TMS320C6416通過EMIFB接口實(shí)現(xiàn)與Flash芯片的無縫連接。
2.1.2 DSP與FPGA的接口電路
    由于DSP處理器TMS320C6416的采樣速度及存儲空間受到自身約束限制,所以數(shù)據(jù)的采集、流向控制和數(shù)據(jù)預(yù)處理等任務(wù)由FPGA完成。FPGA芯片選用Xilinx公司低成本現(xiàn)場可編程門陣列Spartan-3E系列中的XC3S500E。XC3S500E芯片集成有20個Block RAM,每個RAM塊中的18 Kbit的模塊存儲器是完全同步、真正的雙端存儲器。用戶可獨(dú)立地從每個端口讀出或向每個端口寫入(但同一地址不能同時進(jìn)行讀和寫)。另外,每個端口都有一個獨(dú)立的時鐘,并且對每個端口的數(shù)據(jù)寬度都可以獨(dú)立進(jìn)行配置。
    在該協(xié)議轉(zhuǎn)換器中,DSP通過EMIFA接口連接到FPGA,實(shí)現(xiàn)DSP與FPGA Block RAM的無縫連接,從而使得DSP與FPGA之間的通信問題轉(zhuǎn)化為DSP對其EMIFA外設(shè)的訪問,達(dá)到了提高系統(tǒng)實(shí)時性的目的。為了保持FPGA與DSP之間的同步,F(xiàn)PGA的時鐘直接由DSP內(nèi)部的鎖相環(huán)提供。DSP處理器TMS320C6416與FPGA的接口示意圖如圖2所示[2]。

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


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

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

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