《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA+DSP+ARM的數據傳送總線變換器設計
基于FPGA+DSP+ARM的數據傳送總線變換器設計
來源:微型機與應用2010年第14期
李海峽1,李振峰2
1.凱邁(洛陽)電子有限公司,河南 洛陽471003;2.中色科技股份有限公司,河南 洛陽47103
摘要: 介紹了基于FPGA+DSP+ARM的數據傳送總線變換器的整體設計及ARM、DSP和FPGA的器件選型,詳細描述了ARM與DSP、DSP與FPGA的接口電路設計,給出了系統軟件結構設計,詳細描述了HPI驅動程序的實現過程。
Abstract:
Key words :

摘  要: 介紹了基于FPGA+DSP+ARM數據傳送總線變換器的整體設計及ARM、DSP和FPGA的器件選型,詳細描述了ARM與DSP、DSP與FPGA的接口電路設計,給出了系統軟件結構設計,詳細描述了HPI驅動程序的實現過程。
關鍵詞: 可編程邏輯門陣列;數字信號處理器;ARM;嵌入式系統

    在飛控組件測試時,由于被測系統與上位機有一定距離,如果直接把遙測并行數據傳送到上位機,將會出現數據信號的衰減和信號延時問題,有可能使信號時序錯位,從而達不到系統測試的要求。為此,需要研制一種數據傳送總線變換器,用來完成被測數據無失真的、實時的、遠距離與上位機的通信,并能接收上位機的控制指令,實現工作狀態的遠程交互。
1 數據傳送總線變換器的整體設計
    綜合考慮到測試系統實時性和可靠性的要求,選擇以太網口作為數據傳送總線變換器與上位機的數據轉發接口,以高速串口作為控制口,采用FPGA+DSP+ARM的架構作為實時信息處理平臺。
    數據傳送總線變換器的系統框圖如圖1所示。其中,FPGA作為數據預處理器,完成并行數據到串行數據的轉換等數據預處理任務;DSP讀取FPGA處理后的數據并完成數據壓縮的任務;ARM作為中央處理控制器,主要完成從DSP系統中讀取已經編碼好的數據并通過以太網口完成與上位機的實時通信任務。上位機按照數據傳輸協議、產品的數據遙測協議解調出各類物理變量,記錄并存儲。測試人員通過上位機完成工作狀態的遠程控制與各種信息交互任務。

    在該系統中采用了FPGA+DSP+ARM的高端架構,但是衡量一個系統的整體性能不僅要看所使用的器件和所完成的功能,還要看各個器件之間的接口形式。在FPGA+DSP+ARM的信息處理平臺上,三者之間的接口形式將決定整個系統的性能。為滿足實時的信號處理任務,在選擇DSP芯片時,不僅要考慮DSP芯片的處理速度,還要考慮DSP芯片與FPGA、ARM的接口能力,選擇帶有EMIF和HPI接口的DSP使其與FPGA、ARM無縫連接成為該系統設計的關鍵一環。
2 器件選型
    在該數據傳送總線變換器中,FPGA選用Xilinx公司最新推出的低成本現場可編程門陣列Spartan-3E 系列中的XC3S500E。XC3S500E包含有20個Block RAM,每個RAM塊中的18 KB的模塊存儲器,是完全同步、真正的雙端存儲器。用戶可獨立地從每個端口讀出或向每個端口寫入(但同一地址不能同時進行讀和寫)。另外,每個端口都有一個獨立的時鐘,對每個端口的數據寬度都可以獨立進行配置。
    ARM芯片選用Samsung公司的S3C4510B。S3C4510B是基于以太網應用系統的高性價比16/32 bit RISC微控制器,內含一個由ARM公司設計的16/32 bit ARM7TDMI RISC處理器核。除了ARM7TDMI核以外,S3C4510B還有許多重要的片內外圍功能模塊,其中就有一個以太網控制器,用于S3C4510B系統與其他設備的網絡通信[1]。
    DSP芯片選用TI公司的TMS320C6416。TMS320C6416是TI公司推出的高速定點DSP,它擁有處理能力強大的CPU、高達1 MB的RAM、豐富的外設接口。外設包括CPU訪問外圍設備提供無縫接口的靈活的外部存儲器接口EMIFA和EMIFB,一個使得DSP很容易通過PCI接口無縫連接到一個具有PCI功能的外部主CPU上的PCI接口,一個16/32 bit寬的異步并行接口HPI(和PCI共用相同的引腳),一個提供64 bit數據通道訪問的增強型EDMA等。其高速的處理速度滿足系統的實時性要求,并能實現與多種外設無縫連接。
3 硬件設計
3.1 ARM與DSP的接口電路
3.1.1 DSP TMS320C6416 HPI描述

    TMS320C6416集成有一個16/32 bit寬主機接口HPI,HPI通過復位時的自舉和器件配置引腳HD5選擇采用HPI16還是HPI32。HPI具有兩條地址線HCNTRL[1:0],負責對HPI的內部寄存器進行尋址。HPI只有3個32 bit內部寄存器,分別是控制寄存器HPIC、地址寄存器HPIA和數據寄存器HPID。用戶只需對上述3個寄存器進行相應的讀寫操作,就能完成對DSP內存空間的訪問[2]。
3.1.2 S3C4510B與TMS320C6416的接口電路
    由于S3C4510B中沒有完全符合TMS320C6416 HPI接口時序的外部接口可以直接使用,因此選用S3C4510B中時序最接近HPI接口時序的外部I/O接口與TMS320-
C6416進行連接。TMS320C6416與S3C4510B接口電路如圖2所示。TMS320C6416與S3C4510B通過單獨的32 bit數據線HD0~HD31和8條控制線進行連接。S3C4510B通過HPI接口訪問DSP內部的RAM以及其他外部資源。在整個ARM微處理器與DSP芯片通過HPI接口通信和數據交換的過程中,除了中斷ARM和清除ARM發過來的中斷需要DSP本身參與外,其他操作DSP都處于被動的地位,幾乎不用進行其他的操作。所以對于ARM來說,DSP系統單元就相當于一片外接的SDRAM。


    在TMS320C6416中,HPI、GP[15:9]、PCI、EEPROM、McBSP2共用了一組引腳,DSP在復位時通過鎖存PCI_EN和McBSP2_EN引腳的值來選擇使用何種外設。在該系統中,將這兩個使能引腳都拉低。
3.2 FPGA與DSP的接口電路
3.2.1 DSP TMS320C6416 EMIF描述

    TMS320C6416對外有2個EMIF總線接口,分別是64 bit的EMIFA和16 bit的EMIFB。EMIFA接口具備與8、16、32、64 bit系統接口的功能,EMIFB接口端口支持8 bit和16 bit系統[3]。EMIFA為64 bit存儲器總線,分成ACE0~ACE3 4個存儲空間,每個存儲空間可以獨立配置,無縫接口具有多種類型的存儲器,如SRAM、Flash RAM和DDR RAM等。
3.2.2 FPGA與TMS320C6416的接口電路
    在該系統中,采用DSP TMS320C6416 EMIFA接口連接到FPGA的方法實現DSP與FPGA Block RAM的無縫連接。FPGA的雙端Block RAM的一端以存儲器模式與DSP通信,另一端與內部FPGA邏輯通信[4]。
    鑒于EMIF具有靈活的時序參數,只需要極少的FPGA邏輯,因此,只需最低限度的設計工作,FPGA就可以用做DSP協處理器。圖3 所示為TMS320C6416與FPGA的接口電路。

4 系統軟件設計
4.1 嵌入式操作系統

    在該數據傳送總線變換器中,實時數據壓縮的任務由DSP完成。ARM S3C4510B完成與PC之間的以太網通信,其軟件實現所要求的實時性、可靠性和復雜性使得選擇一種帶有TCP/IP協議包的嵌入式實時操作系統成為必需,而μCLinux是一個帶有完整的TCP/IP協議的操作系統,在μCLinux中加入實時RT-Linux模塊以滿足對嵌入式操作系統的實時性要求。
4.2 驅動和應用程序的開發
    基于μCLinux操作系統的硬件驅動和應用程序的開發是在交叉編譯環境中進行的,首先在PC機上開發,然后移植到目標機上進行調試并最終固化到目標機上。所開發的硬件驅動有以太網卡控制器驅動、LCD驅動、HPI驅動等驅動程序。系統軟件結構如圖4所示[5]。

    在μClinux操作系統上運行三個任務:讀取壓縮數據、通過以太網發送數據、接收和執行來自遠端PC機的命令。其中讀取DSP壓縮數據任務對實時性有要求,它通過中斷處理程序來實現,而其他的兩個任務則通過用戶進程來實現。以太網發送數據的任務和讀取壓縮數據的任務共享一個緩沖區,通過ioctl函數在其間傳遞緩沖區雙向鏈表的地址。所以需要為數據處理模塊上的通信接口HPI注冊一個驅動程序,注冊驅動程序的函數是:
    result=register_chrdev(HPI_MAJOR,"hpi",&hpi_fops)
    驅動程序的主要結構如下:
    struct file_operations hpi_fops=
      {
      owner: THIS MODULE,
      open: hpi_open,
      read: hpi_read,
      write: hpi_write,
      ioctl: hpi_ioctl,
      mmap:hpi_mmap,
      release:hpi_release,
      };
      HPI驅動程序編寫完成后,將驅動程序源代碼置于../linux-2.4.x/driver/char目錄下,同時修改同級目錄下的Makefile,在../linux-2.4.x/driver/char/Makefile中加入Obj_y +=hpi.o
      同時,為了能夠在?滋Clinux啟動時自動初始化此字符設備,還需要修改 ../linux-2.4.x/driver/char/men.c文件,在其中加入:
      (1)新添加的字符驅動程序初始化函數聲明:extern void  hpi_init(void);
      (2)在字符設備統一初始化函數int _init chr_dev_init(void)中調用新設備的初始化函數,需要在int _init chr_dev_init(void)中加入語句:hpi_init();
    在函數int _init chr_dev_init(void)中,字符設備的初始化函數將被統一調用,并完成字符驅動file_operations數據結構的注冊,初始化之后就可以使用HPI字符設備了。
    本文所設計數據傳送總線變換器,不僅解決了由于傳輸距離遠而引起的信號畸變問題,而且滿足了信息傳遞的實時性要求,同時具有網關功能和嵌入式Web功能,能確保系統安全接入Internet。

參考文獻
[1] 李駒光.ARM應用系統開發詳解——基于S3C4510B的系統設計(第二版)[M].北京:清華大學出版社,2006.
[2] TMS320C6416 datasheet[EB/OL].(2001-02).http://www.TI.com.
[3] TMS320C6000 DSP External Memory Interface(EMIF) Reference Guide[EB/OL].(2008-04).http://www.TI.com.
[4] 使用EMIF將Xilinx FPGA與TI DSP平臺接口應用指南[EB/OL].(2007-01-29).http:www.xilinx.com.cn.
[5] DAVID A.Linux編程白皮書[M].朱珂,譯.北京:機械工業出版社,2000.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品久久久久久久app| 国产一区二区三区高清| 久久精品91| 亚洲一本视频| 亚洲视频专区在线| 亚洲精品中文字幕有码专区| 久久精品国产精品亚洲| 欧美亚洲一区| 西西人体一区二区| 亚洲欧美久久久| 亚洲欧美一区二区三区久久 | 午夜精品视频网站| 亚洲一区在线看| 亚洲制服av| 亚洲欧美日韩国产综合在线| 亚洲自拍偷拍麻豆| 亚洲欧美文学| 欧美一区二区三区免费观看视频| 亚洲欧美日韩高清| 欧美亚洲免费高清在线观看| 欧美一区二区三区视频在线| 欧美一区二区在线免费观看| 欧美一区午夜视频在线观看| 久久精品噜噜噜成人av农村| 久久久国产精品一区| 久久亚洲电影| 欧美va亚洲va香蕉在线| 欧美精品一区二区久久婷婷| 欧美日韩视频在线一区二区观看视频| 欧美日韩精品欧美日韩精品一 | 欧美三日本三级少妇三2023| 国产精品白丝av嫩草影院| 国产精品成av人在线视午夜片| 国产精品第十页| 国产精品无码永久免费888| 国产欧美一区二区三区视频| 国产主播一区二区三区四区| 激情亚洲网站| 亚洲国产精品久久久久秋霞影院| 亚洲日本在线观看| 一区二区三区四区五区在线| 亚洲视频图片小说| 欧美亚洲网站| 亚洲国产精品一区二区www在线| 亚洲精品久久7777| 亚洲一区日本| 久久久www成人免费精品| 蜜桃av一区二区三区| 欧美日韩精选| 国产欧美一区二区色老头| 在线观看欧美黄色| 99成人精品| 亚洲欧美综合| 亚洲毛片一区| 欧美一级黄色网| 久久综合久久综合久久综合| 欧美日韩激情网| 国产伦精品一区二区三区| 伊人狠狠色丁香综合尤物| 亚洲麻豆一区| 欧美怡红院视频一区二区三区| 亚洲精品久久久久久下一站| 亚洲在线国产日韩欧美| 久久男人av资源网站| 欧美日韩国产小视频在线观看| 国产精品亚洲欧美| 亚洲激情在线观看视频免费| 亚洲一区二三| 亚洲全黄一级网站| 亚洲欧美在线免费| 欧美99在线视频观看| 国产精品大全| 亚洲国产专区校园欧美| 午夜精品国产| 亚洲视频精选在线| 久久久噜噜噜久久久| 欧美日韩午夜在线视频| 国内视频一区| 亚洲在线电影| 日韩视频免费| 久久欧美肥婆一二区| 欧美午夜宅男影院在线观看| 亚洲国产高清高潮精品美女| 亚洲欧美日韩国产综合在线| 日韩午夜中文字幕| 久久深夜福利免费观看| 欧美性感一类影片在线播放| 在线色欧美三级视频| 午夜精彩视频在线观看不卡| 一区二区高清在线观看| 美女主播精品视频一二三四| 国产热re99久久6国产精品| 99成人在线| 亚洲伦理久久| 老鸭窝毛片一区二区三区| 国产精品亚洲成人| 一区二区激情视频| 亚洲精品一区二区在线| 久久久久免费| 国产日韩欧美中文在线播放| 在线视频精品| 一区二区三区黄色| 男女激情视频一区| 红桃av永久久久| 欧美一级播放| 欧美一区二区在线免费观看| 国产精品久久久久久久浪潮网站| 亚洲电影免费观看高清完整版在线观看 | 欧美视频一区二区三区在线观看 | 最新成人在线| 久久九九免费视频| 国产精品色午夜在线观看| 亚洲美女黄色片| 亚洲蜜桃精久久久久久久 | 久久夜色精品亚洲噜噜国产mv| 国产精品一区二区三区久久久 | 免费观看日韩av| 黑人一区二区| 久久国产精品久久久| 久久大逼视频| 国产女人水真多18毛片18精品视频| 亚洲伦理中文字幕| 一区二区三区 在线观看视| 欧美国产一区二区在线观看| 在线播放日韩欧美| 亚洲国产精品成人一区二区| 久久一区二区三区国产精品| 国内精品久久久久国产盗摄免费观看完整版| 亚洲砖区区免费| 午夜精品福利一区二区三区av | 亚洲欧美欧美一区二区三区| 国产精品超碰97尤物18| 一区二区三区精品久久久| 亚洲一级特黄| 国产精品一区二区男女羞羞无遮挡 | 久久精品夜色噜噜亚洲aⅴ| 国产精品r级在线| 一区二区三区不卡视频在线观看| 亚洲三级网站| 欧美久久九九| 亚洲美女在线视频| 亚洲永久在线| 国产精品久久久久久户外露出| 亚洲视频中文字幕| 亚洲欧美综合v| 国产精品网站视频| 欧美一区二区三区视频| 久久深夜福利| 亚洲黄色天堂| 一区二区三区视频在线| 国产精品成人v| 亚洲欧美日韩一区二区| 久久久成人精品| 1000部国产精品成人观看| 日韩亚洲国产欧美| 欧美日韩亚洲激情| 亚洲影院免费观看| 久久精品主播| 亚洲高清毛片| 亚洲午夜羞羞片| 国产揄拍国内精品对白| 亚洲激情电影中文字幕| 欧美精品一区二区三区在线看午夜 | 欧美日韩另类国产亚洲欧美一级| 亚洲国产精品视频| 一区二区三区国产在线| 国产精品男人爽免费视频1| 欧美一区二区啪啪| 欧美国产一区在线| 在线视频欧美一区| 久久久久国产精品一区三寸| 亚洲成人在线| 亚洲自啪免费| 激情一区二区三区| 亚洲综合三区| 极品日韩久久| 一本在线高清不卡dvd| 国产乱码精品一区二区三区av | 午夜精彩视频在线观看不卡| 国内久久精品| 中日韩视频在线观看| 国产亚洲在线观看| 99成人在线| 国产欧美一区二区三区久久人妖 | 久久精品99国产精品| 亚洲日韩欧美视频一区| 亚久久调教视频| 最新69国产成人精品视频免费| 欧美亚洲午夜视频在线观看| 樱桃成人精品视频在线播放| 亚洲午夜精品一区二区| 国产一区二区三区自拍| 亚洲午夜精品久久| 激情久久久久久久久久久久久久久久| 在线视频精品一区| 国产一在线精品一区在线观看| 正在播放欧美视频| 精品999成人| 亚洲欧美日韩国产综合精品二区| 亚洲国产一区二区三区在线播|