ARM7与FPGA相结合的应用

发布者:Amy啊111111最新更新时间:2008-01-16 来源: www.esic.cn关键字:FPGA  控制端  ARM  故障检测  外部中断  串口通信  异步模式  芯片  全双工通信  外围接口 手机看文章 扫描二维码
随时随地手机看文章

  ARM7与FPGA相结合在工业控制和故障检测中的应用

  工业控制中往往需要完成多通道故障检测及多通道命令控制(这种多任务设置非常普遍),单独的CPU芯片由于其外部控制接口数量有限而难以直接完成多路检控任务,故利用ARM芯片与FPGA相结合来扩展检控通道是一个非常好的选择。这里介绍用Atmel公司ARM7处理器(AT91FR40162)和ALTERA公司的低成本FPGA芯片(cyclone2)结合使用完成多通道检控任务的一种实现方法。

  各部分功能简介

  图1为此系统的结构连接框图。如图所示,ARM芯片与FPGA芯片之间通过数据总线、地址总线及读写控制线相连,而与终端PC则通过串口通信;FPGA与目标设备通过命令控制总线和故障检测总线相连。

  

  

  图1 系统结构框图

  1 故障检测和命令控制部分

  故障检测:检测通道的故障(正常)信号以高(低)电平方式指示,其一旦有故障产生就会保持高电平不变直到故障排除。针对这种特征,在ARM控制器端采用定时中断循环查询方式来判断故障通道的状态。定时中断程序通过对ARM 地址总线在FPGA中进行译码而顺序锁定被检测通道的电平值,然后再经数据总线传回ARM进行判断,最后将判断结果送至远程终端。采用主机查询方式而不采用故障中断方式出于两个原因:一方面是通常控制芯片外部中断源有限(多数为4个外部中断源),对于多目标中断信号检测显然是困难的;另一方面,由于检测通道或设备受到短时干扰而产生电平随机反转,造成故障中断触发,而中断触发后又无法在通道电平恢复正常时撤销故障信号,故而形成虚假报警。

  命令控制:ARM芯片先判断主控端发来的控制命令,然后通过地址总线和数据总线将命令状态发送至经FPGA地址译码锁定的控制通道上。

  2 ARM芯片与远程检测控制终端通信

  由于只存在命令和故障状态信号的收发,所以利用ARM的串口实现与远程PC的通信,通信标准选为RS232标准。不过,在ARM芯片上要先将TTL电平通过MAX232芯片转换为RS232电平标准,对于距离超过15m的全双工通信,在发送接收两端还要各加一对RS232转RS422电平的转换模块,以增加通信距离。

  3 FPGA内部功能模块说明

  FPGA内部检测及控制电路结构关系如图2所示。

  

  

  图2 FPGA内部逻辑结构

  ARM芯片的ADDR2~0位地址线和片选使能信号一同进入译码器decode1进行地址译码后产生8路输出(FPGA内部可设置一个最大输出为256路的译码模块,所以在实际应用中可扩展为更多通道),低4路用于命令发送通道,高4路用于故障检测通道,读写使能信号控制数据总线。

  ARM芯片接收到发送信号编码命令时,立即在串口接收中断服务子程序中并送相应地址(通道编号)和数据(命令状态)到FPGA中。译码器有效输出作为相应通道D触发器的锁存时钟,而数据状态则被触发器锁定后作为所选通道的输出完成相应控制。

  ARM芯片在定时中断产生进入服务程序后对所有检测通道轮流查询,查询到有通道故障时,故障信号结合选中通路信号经与非运算送往数据端口被读取。

  FPGA程序设计注意问题

  1延时的配置

  通过地址总线和数据总线进行命令传输和故障检测时,FPGA是作为ARM芯片的普通外设来使用的。而ARM芯片对外设访问的速度要远低于片内存储器,所以要在ARM中设置访问的正确等待周期。ARM中提供的延时周期为0~7个,通过调试即可找到外设合适的等待周期,此系统的等待周期根据实际测试设置为5个,具体的配置方法见ARM程序说明。

  2 读写使能信号的连接

  从图2中可以看出,写使能信号NWE及读使能信号NRD应作为数据线(DATA0~5)的三态控制信号连接,即使在ARM芯片无其他外设时也不能缺省。因为ARM的上电加载程序时间要长于同一系统上FPGA的程序配置时间,而FPGA的检测及控制通道与ARM芯片的数据总线相连,FPGA加载完成后数据总线会存有相应通道的逻辑电平值(不为三态),这就会导致ARM芯片在对片内Flash芯片烧写程序或上电加载程序时与FPGA冲突(数据被逻辑锁定),造成无法正确定位操作对象而使读写失败。

  

  ARM配置及应用程序说明

  1 处理器的资源分配

  ● 存储器

  AT91FR40162内嵌一个256KB的SRAM,1024K个16位字组成的Flash存储器。SRAM通过内部32位数据总线与ARM核相连,单周期访问,Flash存储器则通过外部总线访问。

  ● 系统外围

  EBI:外部总线控制接口,EBI可寻址64MB的空间,通过8个片选线(NCS0~NCS3独立)和24位地址线访问外设,地址线高4位与片选线(NCS4~7)复用,数据总线可配置成8/16位两种模式与外设接口。

  PIO:并口控制器,PIO控制32根I/O线,多数为复用引脚,可通过编程选择为通用或专用。

  AIC:先进中断控制器,实现片内外围中断及4个外部中断源中断的管理,其外部中断引脚与通用I/O复用。

  ● 用户外围

  USART0~1:串口收发控制器,支持8个数据位的发送,可以进行异步/同步传输选择,其片外引脚与通用I/O复用。

  TC:定时/计数器,可以产生定时中断和计数功能,其片外引脚与通用I/O复用。

  2 存储器地址重映射后的空间分配

  在CPU上电后,都会从地址0开始第一条指令代码的执行,而上电复位后0地址必须映射到NCS0片选所接的器件上,这里必须将NCS0连接到片内Flash上以加载初始化程序和应用程序。由于中断和异常的入口地址是0~20H固定不变,它们的产生都是跳转到0~20H之间相应的地址取程序执行,为了加快中断响应,必须将0~20H地址映射到片内RAM区,所以在初始化的重映射命令执行(EB1_RCR的RCB位置1)后,内部RAM就映射到地址0,所有的中断入口响应和堆栈操作都被映射到在RAM区进行。

  

  

  由于重映射主要是用于Flash和片内RAM的地址空间交换,所以片内外围接口(EBI、USART、TC)对应的存储器编程地址范围在映射前后不发生改变,而访问外设地址为重映射后所分配。重映射后地址分配如表1所示。

  3 应用接口的存储器配置

  EBI存储器:在8个EBI片选存储器(EBI_CSR0~EBI_CSR7)中设置外设访问参数。其中,32位存储器中包括数据总线宽度8(16)设置,等待状态数目1~7个周期设置,等待使能(不是使能)设置,片选使能(不使能)设置。这里将FPGA作为外设,使能NCS3(也可根据实际选择其他空闲片选线),选择总线宽度16,使能等待周期并设周期为5(根据调试选择)。因默认NCS0为加载Flash片选线,而Flash为16位信号、7个等待周期,故需在EBI_CSR0中选择16位总线宽度、7个等待周期并使能NCS0。

  AIC存储器:AIC存储器管理所有内外部中断,对此存储器的正确初始化赋值才会打开相应中断。设定AIC工作参数:应用串口通信模式为异步模式,串口发送的数据位字符长度为8位,通信的波特率9600B/s,串口中断优先级为6(中断优先级由低到高0~7),接收发送通道使能。

  TC存储器:定时中断存储器需要设定定时长度为1s(每1s产生中断进行故障查询),定时通道使能及软件触发模式,定时中断优先级设为1。

  4 应用程序说明

  ① 主程序

  #define AT91C_BASE_EBI ((AT91PS_EBI) 0xFFE00000) //EBI基地址定义

  int main()

  {AT91F_EBI_OpenChipSelect (

  AT91C_BASE_EBI, //地址指针

  0x3, //片NCS3使能

  0x30000000+0x3f39); //片选存储器初始化

  Usart_init();//初始化串口

  timer_init();//初始化定时器

  while(1){} //循环等待

  }

  ARM处理器在完成各寄存器初始化后进入应用主程序,在主程序中首先调用EBI接口使能函数来设置参数:在程序中设置存储器基地址值(0xFFE00000),片选设置0x3(NCS3使能),NCS3的存储器初始化;调用USART控制器函数初始化串口:打开串口,串口收发通道初始化,设定串口通信速率;调用定时中断函数:打开定时中断,设置定时中断时间,设定触发方式为软件触发;最后进入等待循环。

  ② 串口命令接收中断服务程序

  #define USART0_INTERRUPT_LEVEL 6//设置中断优先级为6

  #define AT91C_US_USMODE_NORMAL AT91C_US_CHMODE_NORMAL//*设置通信模式(NORMAL定义为异步模式)*//

  AT91PS_USART COM0=AT91C_BASE_US0;//设置COM0为收发口

  char message[4];

  // 控制端串口中断通信程序 //

  //*----------------------------------------------------------------------------*//

  void Usart0_c_irq_handler(AT91PS_USART USART_pt)//串口中断处理函数

  { volatile unsigned int *conp;unsigned int status;

  int time;

  volatile unsigned int i;

  status = USART_pt->US_CSR &USART_pt->US_IMR;//给状态寄存器赋初值

  if ( status &AT91C_US_RXRDY)//接收通道寄存器判断是否有数据

  {

  AT91F_US_DisableIt(USART_pt,AT91C_US_RXRDY);//关闭接收通道准备好中断

  AT91F_US_EnableIt(USART_pt,AT91C_US_ENDRX);//打开接收结束中断

  AT91F_US_ReceiveFrame(USART_pt,(char*)(message),4);//调用接收数据数接收数据

  }

  if ( status &AT91C_US_ENDRX){

  AT91F_US_DisableIt(USART_pt,AT91C_US_ENDRX); // 关闭接收器传送结束中断

  { if((message[0]^0xff)==message[1])//判断接收代码

  {switch (message[0])

  {case 0x31 : {conp=(volatile unsigned int*)(0x1+0x30000000);//OPE1使能

  *conp=0x2;}; break;//0x31代码送往OPE1端口

  case 0x30 : {conp=(volatile unsigned int*)(0x2+0x30000000);//OPE2使能

  *conp=0x1;}; break; // 0x30代码送往OPE2端口

  case 0x11 : {conp=(volatile unsigned int*)(0x3+0x30000000);//OPE3使能

  *conp=0x2;};break;// 0x11代码则往OPE3端口

  case 0x10 : {conp=(volatile unsigned int*)(0x4+0x30000000);//OPE4使能

  *conp=0x1;};break; //0x10代码送往OPE4端口

  default:break;}

  }

  }

  以上程序为串口中断服务程序,各函数语句说明参见注释。中断级别设置为6(高于定时中断),这样使命令发送优先于故障查询(控制命令随机出现而故障查询总是循环进行);接收缓冲区message[4]数组类型必须设为动态分配,静态数据分配会使处理器开辟数据缓冲区到Flash芯片中,从而引发在一个中断处理程序中由于存取时间过长而导致串口收发超时的错误。因为篇幅有限,其他程序不再一一叙述。

  在ARM应用程序的编写中,应该尽量少的在主函数内使用循环操作,主函数主要完成各接口控制器应用初始化,因为主函数不间断循环操作不但会增加功耗,而且长时间频繁切换于中断服务和主循环之间会造成程序运行的不稳定,所以能用定时中断完成的循环操作尽量用中断完成。

  

  结语

  ARM芯片控制功能结合FPGA灵活的多硬件接口模拟特性在工程上体现出的其独特的优势,已发展为一种流行的硬件架构模式,随着芯片功能的不断强大,这种优势将使其用途更广,对任务处理变得更加灵活高效。

  

关键字:FPGA  控制端  ARM  故障检测  外部中断  串口通信  异步模式  芯片  全双工通信  外围接口 引用地址:ARM7与FPGA相结合的应用

上一篇:基于FPGA的数字式光端机的研究与设计(图)
下一篇:基于FPGA的X射线安检设备控制器设计

推荐阅读最新更新时间:2024-03-30 21:24

美国限售芯片对中国超级计算影响几何?
    “限售对中国是危中有机”。19日,中国计算机学会青年计算机科技论坛(CCF YOCSEF)在北京举办主题为“芯片限售对我国超算的影响”特别论坛,中国计算机专家们如是说。   “限售芯片”早有预谋   4月初,美国商务部以“用于核模拟爆炸,危害美国国家安全和外交利益”为由,拒绝英特尔公司向中国的国家超级计算广州中心、长沙中心、天津中心和中国人民解放军国防科学技术大学出售“至强”芯片用于天河二号系统升级的申请,并将这4所中国机构列入出口管制名单。   天河二号系统主任设计师卢宇彤在论坛上表示,天河二号超级计算中心既是针对民用市场、又完全开放,根本不可能涉核。   外界认为,天河二号近期连续四次问鼎世界超级计算机500强排行榜
[手机便携]
智能语音介面太旺 音效、无线连接芯片急升级
面对智能语音介面及云端服务商机的强势崛起,比起广大的人工智能应用大题目,国内、外芯片供应商反而先回头优化音效芯片、无线传输芯片解决方案的基本功,高通(Qualcomm)在短期内已连续优化好几次音讯解码及蓝牙芯片效能,联发科也以旗下IoT芯片平台与阿里巴巴人工智能实验室开展策略合作,甚至是奥地利微电子(AMS)也宣布以抗噪技术切入无线耳机芯片市场。在语音介面似乎已成为人工智能应用的第一扇窗口后,各家芯片供应商一边强化音效芯片性能,同时也针对无线连结芯片优化,将是2018年市场的重头大戏。   高通指出,面对消费者目前收听串流音乐的新趋势,及无线耳机已占全球耳机市场三分之一强的现况,及时、高清、抗噪音、低功耗的音效及无线连结芯片解决方
[半导体设计/制造]
基于ARM7的无线内窥系统设计
引 言   目前微米、纳米技术的研究非常活跃,使得微小技术、微型机械电子系统(MEMS)技术得到迅速发展,从而大大促进,医用器材的微型化、微观化,出现了医用光电微传感器(如无线内窥镜)。无线内窥镜以微机电系统为基础,由感知外界信息(力、热、光、生、磁、化等)的微型传感器、控制对象的执行器、信号处理和控制电路、通信接口和电源等部件组成,将信息的获取、处理和执行集成在一起,形成一体化的、具有多种功能的微型系统。   当前,医用无线内窥镜已有产品问世。以色列GI公司早在2001年5月即推出其M2A无线内窥镜产品,并获得美国FDA认证。GI公司生产的胶囊型内窥镜长为26 mm,直径为11mm,重3.5g;采用微功耗CMOS图像传
[单片机]
基于<font color='red'>ARM</font>7的无线内窥系统设计
ARM寄存器的总结
1) 31个通用寄存器,包括程序计数器(PC)。这些寄存器都是32位的; 2)6个状态寄存器。这些寄存器也是32位的,但是只使用了其中的12位。 ARM通用寄存器 通用寄存器(R0-R15)可分为三类:不分组寄存器R0~R7;分组寄存器R8~R14;程序计数器PC。 1)不分组寄存器R0~R7 不分组寄存器R0~R7在所有处理器模式下,它们每一个都访问一样的32位寄存器。它们是真正的通用寄存器,没有体系结构所隐含的特殊用途。 2)分组寄存器R8~R14 分组寄存器R8~R14对应的物理寄存器取决于当前的处理器模式。若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。 寄存器R8~R
[单片机]
华为麒麟970芯片大解析,是否达到AI芯片的水准?
华为为了抢这个“世界第一”着实花了不少心思,作为一个以“自研”为骄傲的企业,本次麒麟970上不仅使用的是别家的(寒武纪的)神经网络处理单元(NPU),智东西还独家获悉到,麒麟970在物体识别方面的一整套嵌入式AI解决方案(从算法+Camera Tuning)都来自中科创达。下面就随手机便携小编一起来了解一下相关内容吧。 华为这周末搞了件不大不小的事——发布了“世界首款手机AI芯片”麒麟970——各位科技媒体小编都辛苦了,大周六晚上的不是飞去德国跑会就是在电脑前蹲直播,连约会都要改期,好气哦。 咳,言归正传。 (华为官方推特介绍,“世界上第一款搭载NPU的AI芯片”) 华为为了抢这个“世界第一”着实花了不少心思,作为一个以
[手机便携]
华为麒麟970<font color='red'>芯片</font>大解析,是否达到AI<font color='red'>芯片</font>的水准?
基于FPGA和DSP的高速瞬态信号检测系统
   引 言   目前国内急需一种能够对电火工品的发火过程进行实时无损耗监测的方法和手段,并根据监测结果对火工品的可靠性进行准确的判决和认证,解决科研和生产过程中的具体问题。本系统采用感应式线圈作为非接触式启爆电流的启爆装置,并采用高速A/D、FPGA、DSP等先进的集成电路实现了电火工品的无损耗检测。其主要目的是:第一,解决电火工品可靠性试验中微秒级瞬态信号的检测、处理和存储技术;第二,为可靠性试验提供一种在线的无损耗实时检测系统,以便对电火工品的发火全过程进行监测;第三,为电火工品的发火可靠性认证和评估提供真实的评价依据,减少或杜绝因拒收产品而出现经济方面的风险,同时也可减少或杜绝因错误地接收产品而出现武器装备质量方面的隐患
[工业控制]
英伟达CEO黄仁勋:监管机构将很快批准ARM收购案
黄仁勋表示:“通过将 ARM 收入麾下,我们将增加客户选择,增加市场创新。我们的评估显示,监管机构很快就会批准这笔交易。” 腾讯科技讯 11 月 22 日,芯片巨头 英伟达 又结束了一个喜人的季度。该公司此前发布了截至 10 月 25 日的第三财季财报,显示营收达 47.3 亿美元,同比增长 57%,实现两年半以来最强劲的增长。同时,净利润达 13.36 亿美元,同比增长 49%。 在财报发布几天后,英伟达首席执行官黄仁勋接受专访,讨论了上述财务业绩,同时也谈到了其他问题,比如当前的反垄断大环境。苹果、谷歌、亚马逊)和 Facebook 等科技巨头最近都面临着更多的反垄断审查,这是否会影响英伟达,特别是在其试图斥资
[嵌入式]
英伟达CEO黄仁勋:监管机构将很快批准<font color='red'>ARM</font>收购案
展讯推出增强GSM/GPRS多媒体基带芯片SC6600H
展讯通信(Nasdaq: SPRD)推出了增强GSM/GPRS多媒体基带芯片SC6600H。SC6600H专门针对手机音乐做了优化,可以提供CD音质的高质量音乐回放功能。   消费者对于手机多媒体功能的需求越来越强烈,高保真音乐回放已经不再是高端选项,而已经成为主流手机用户必须拥有的功能。因此,手机用户对于手机音乐回放的质量越来越关注。但是,当前大多数手机的声音效果还无法达到基本MP3的水平,其中尤其以入门级手机最为明显。通过采用先进的音频处理技术,SC6600H可以让手机成为CD音质、立体声效果的音乐播放器。   SC6600H主要面向以音乐为导向的手机市场,支持多种音质和优化功能。展讯通信已经从今年第三季度开始生产S
[手机便携]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved