当前位置:首页 > EDA > 电子设计自动化
[导读] 摘 要: 介绍了基于FPGA+DSP+ARM的数据传送总线变换器的整体设计及ARM、DSP和FPGA的器件选型,详细描述了ARM与DSP、DSP与FPGA的接口电路设计,给出了系统软件结构设计,详细描述了HPI驱动程序的实现过程。  在

     摘  要: 介绍了基于FPGA+DSP+ARM的数据传送总线变换器的整体设计及ARM、DSP和FPGA的器件选型,详细描述了ARM与DSP、DSP与FPGA的接口电路设计,给出了系统软件结构设计,详细描述了HPI驱动程序的实现过程。

  在飞控组件测试时,由于被测系统与上位机有一定距离,如果直接把遥测并行数据传送到上位机,将会出现数据信号的衰减和信号延时问题,有可能使信号时序错位,从而达不到系统测试的要求。为此,需要研制一种数据传送总线变换器,用来完成被测数据无失真的、实时的、远距离与上位机的通信,并能接收上位机的控制指令,实现工作状态的远程交互。

  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系统与其他设备的网络通信。

  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内存空间的访问。

  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系统。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逻辑通信。

  鉴于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所示。


  在μ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。

 

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2022年10月19日 /美通社/ -- 随着云计算、大数据的普及发展,过去的"云"是服务于大企业的计算模型,而十多年过去了,越来越多的应用及业务走上"云端",对计算核心数需求...

关键字: ARM 大数据 云游戏 CPU

无线连接已成为许多产品的必备功能,但往往会增加系统设计的成本和复杂性,因为它通常必须作为更大应用的附加功能。Microchip Technology Inc.(美国微芯科技公司)今日推出首款基于Arm Cortex®-M...

关键字: Microchip ARM PIC

物联网正在扩大规模并加速发展,进而驱动着全新的经济。而Arm生态系统正是这一巨大机遇背后的推动力。

关键字: ARM 物联网

ARM公司是一家知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片,而是通过转让设计方案,由合作伙伴生产出各具特色的芯片。

关键字: ARM

2018年10月26日,深圳星河丽思卡尔顿酒店,ARM中国CEO吴雄昂在ARM年度技术论坛上对记者如是说,彼时的吴坚定,温雅,意气风发。时隔两年,ARM中国CEO吴雄昂再次回到媒体视线,这一次,ARM中国与来自投资方和剑...

关键字: ARM 芯片 集成电路

最近为什么越来越多的研究开始利用FPGA作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

喜欢折腾主机的小伙伴一定都知道X86和ARM架构的区别,前者在PC领域已经统治了几十年;后者则主要应用于移动领域,尤其是近几年,ARM的产品在终端应用特别是手持终端应用飞速发展。

关键字: 国产 ARM 主机

科技公司们认为,收购将使英伟达控制一个重要的供应商,该供应商向苹果、英特尔、三星电子、亚马逊和华为等公司授权基本的芯片技术,同时也向不计其数的中小技术企业提供授权。总部位于英国的ARM公司将芯片设计和相关软件代码授权给所...

关键字: 英伟达 ARM 半导体公司

在去年九月,英伟达宣布以400亿美金收购ARM时,就注定这场收购不会太顺利。因为一旦ARM成功被英伟达收购,这将使ARM改变在全球半导体市场中的中立立场,因为ARM的很多客户,都是英伟达的直接或者间接的对手。除此之外,还...

关键字: 英伟达 ARM 半导体

电子设计自动化

21191 篇文章

关注

发布文章

编辑精选

技术子站

关闭