《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于DSP+ARM架構的協(xié)議轉換器設計
基于DSP+ARM架構的協(xié)議轉換器設計
來源:電子技術應用2010年第10期
李振峰1,,李海峽2
1.中色科技股份有限公司,河南 洛陽471039,;2.凱邁(洛陽)電子有限公司,,河南 洛陽471003
摘要: 介紹基于DSP+ARM架構協(xié)議轉換器的系統(tǒng)組成及其工作原理,,給出了DSP通過EMIF接口與FPGA無縫連接的接口實現(xiàn),DSP通過HPI接口與ARM高速接口的實現(xiàn),,以及基于ARM的高速以太網(wǎng)接口,。簡要介紹了基于嵌入式操作系統(tǒng)uClinux的網(wǎng)絡編程,給出了實驗結果,。
中圖分類號: TP391
文獻標識碼: 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ù)據(jù)量又極大,如果采用傳統(tǒng)的專線傳輸遙測數(shù)據(jù),,則傳輸時間需幾個小時,,無法滿足快速處理的要求。因此,,需要研制一種協(xié)議轉換器,用來完成被測數(shù)據(jù)無損,、實時,、遠距離地與遠程上位機進行通信,并能接收上位機的控制指令,實現(xiàn)工作狀態(tài)的遠程交互,,而測試人員通過上位機的人機界面就可以完成所有測試,。
1 系統(tǒng)組成及工作原理
    考慮到系統(tǒng)實時性和可靠性的要求,選擇以太網(wǎng)口作為協(xié)議轉換器與遠程上位機的數(shù)據(jù)轉發(fā)接口,、以高速串口作為控制口的通信方式,,采用DSP+ARM架構的硬件解決方案。系統(tǒng)框圖如圖1所示,?;竟ぷ髟恚篎PGA作為數(shù)據(jù)預處理器,完成并行數(shù)據(jù)到串行數(shù)據(jù)的轉換等數(shù)據(jù)預處理任務,;DSP讀取FPGA處理后的數(shù)據(jù)并完成數(shù)據(jù)壓縮,;ARM作為中央處理控制器,主要從DSP系統(tǒng)中讀取已經(jīng)編碼的數(shù)據(jù)并通過以太網(wǎng)完成與上位機實時通信的任務,。上位機按照數(shù)據(jù)傳輸協(xié)議,、產(chǎn)品的數(shù)據(jù)遙測協(xié)議解調出各類物理變量,記錄并存儲,。測試人員通過上位機完成工作狀態(tài)的遠程設置與查詢信息交互的任務,。

2 硬件設計
2.1 TMS320C6416及其外圍電路設計

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

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


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

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

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