当前位置:首页 > 工业控制 > 电子设计自动化

摘要:介绍了一种智能信号转换模块的设计方法。这种智能模块采用了基于FPGA嵌入式软核系统,是基于NiosII软核处理器的架构,可以在模块上完全实现外部总线信号之间相互转换,无需驱动程序或操作系统的干预。同时对用户逻辑设计、用户逻辑集成、固件设计技术等内容进行了详细的介绍。

关键词:现场可编程门阵列;软核;智能

0 引言
在工业控制等领域的计算机系统中广泛涉及到信号转换等,信号转换模块在系统中承担着在多种信号之间进行翻译转换的任务。随着应用环境复杂性、计算机系统集成度的提高,信号转换模块上需容纳的信号通道的种类与数量也越来越多。频繁、大量的信号转换必然会占用较多的系统资源。随着微电子技术的发展,国外的一些生产厂商如Altera已推出在FPGA上以软核(soft core)方式实现的嵌入式系统。这种嵌入式系统基于NIOS II嵌入式软核处理器,其外设可以灵活选择增删,并允许自定制外设。本文介绍了一种基于NIOSⅡ软核系统的智能429-422信号转换模块的设计。

1 设计原理
传统的非智能设计的转换模块,在工作时需要有驱动程序的控制,通过与操作系统或用户软件的交互,来实现信号转换的功能,亦即需要接入PCI Bus等系统总线,通过中断提请等方式工作,在转换通道数量多时,必然会影响系统的性能。采用智能设计的信号转换模块一般不需要操作系统的干预,接收到的外部总线信号经过本模块上NIOS II软核系统转换后,即可将数据信号输出。信号转换的工作全部由模块的硬件完成,因而可以实现对整个计算机系统资源的零占用。采用非智能设计与智能设计模块的结构示意框图如图1所示。



2 硬件设计
429或422总线适配电路已有大量成熟的设计,本文不再赘述,仅重点介绍FPGA内部总线控制逻辑设计以及NiosⅡ软核系统的配置。

2.1 FPGA控制逻辑设计
集成于FAPGA内部的Nios II CPU需要通过外部总线控制逻辑才能与外部总线进行通信,而Avalon总线是Nios II CPU与外部总线控制逻辑、片外FLASH、SRAM之间交换数据信号的枢纽。Avalon总线是一种协议较为简单的片内总线,在NiosⅡ系统中,外设都是通过Avalon总线与Nios II CPU相接的。Avalon总线接口可以分成两类:Slave和Master,Slave和Master主要区别是对于Avalon总线控制权的掌握。Master接口具有与之相接的Avalon总线的控制权,而Slave接口是被动的。Avalon总线支持自定制外设,用户可将自己的逻辑设计挂接到Avalon总线上。基于NIOSⅡ软核系统的智能429-422信号转换模块设计的详细系统结构框图如图2所示。

关键字:FPGA 智能429-422信号转换

2.1.1 串行总线控制逻辑设计
为了将用户自定制的串行总线控制逻辑接入NiosⅡ系统,必须将其挂入Avalon总线。串行总线控制逻辑在设计上必须实现两类端口:一类为Avalon总线端口,Avalon总线时序由NiosⅡ系统实现,用户在逻辑设计时可暂不作考虑;另一类为串行总线控制端口。串行总线读操作时序如图3所示,图中给出了操作时各信号的时序保持关系。

读时序在设计上可以抽象为一个有限状态机,如图4所示。其工作流程为:无数据传输时,状态机停留在空闲状态;若有数据操作请求时,进入“地址有效”的状态;再进入“读信号有效”状态,依次完成“数据读取”、“操作安全间隔”状态(FPGA片外器件要求的两次操作之间的最小间隔)。考虑到异常产生后状态机的稳定性,每个状态都可以在异常产生时返回到默认的“空闲”状态。同时,有些状态作了些等待延时,是为了让控制逻辑与FPGA外部较慢速的器件进行时序匹配。串行总线写操作时序与读操作时序相类似。


2.1.2 429总线控制逻辑设计
429总线控制逻辑设计和串行总线控制逻辑设计方法与上文所述类似,这里不再重复。

关键字:FPGA 智能429-422信号转换

2.2 NiosIICPU的配置
需要将自定制外设集成进嵌入式系统。本设计所使用的FPGA是Altera公司的EP2C35,可在Altera公司推出的开发软件Quartus II里对NiosⅡCPU进行配置。操作步骤为:在System contents中新建一个组件,在弹出的Component Editor窗口中的HDL Files栏中导入用户设计好的422接口控制逻辑设计的verilog文件;Signals一栏中,Component Editor已自动解析出导入的verilog文件所包含的端口Name,但用户还需对端口的类型进行指定,串行总线方向的端口须指定为export(相对于Avalon Slave端口而言)类型,Avalon总线方向的端口分别指定为标准的address、write、read、writedata、readdata等信号,如图5所示。


设置完成后的自定制器件出现在Custom Devices中,可以将自定制的器件加入到Nios Ⅱ系统中,由Nios Ⅱ系统为其自动批定内存地址等资源。编译无误后即可完成NiosII CPU的设置。

3 软件设计
Nios II嵌入式系统使用Altera公司提供的开发环境Nios Ⅱ IDE,Nios II IDE使用标准的C/C++语言作为编程语言,因此开发入门门槛不高。软件设计时,除了包含指定的system.h,alt_main.h等头文件,用户应针对被集成进入系统的自定制器件编写相应的头件,即将Al-tera提供的基本命令重新封装成用户自定义的软件命令,以使用户的程序更加直观、更具有可读性。


软件流程图如图6示。在每次上电复位后,智能模块应对整个系统进行重新初始化,包括外设控制字的配置以及缓存初始化等工作。初始化完成后,应首先检查有无接收请求,如有请求,则开始接收、转换数据,并写入发送缓存,然后再判断一次有无接收请求,如无,才转入发送流程。发送完一次数据后,再次检查接收请求。这种做法提高了数据接收事件的优先权,可以保证接收数据不丢失。

4 结束语
基于NIOSⅡ软核系统的智能429-422信号转换模块采用了智能化的设计技术,对比于非智能信号转换模块,具有零系统资源占用、可配置性强、转换速度快等特点,同时由于无须开发驱动软件,因而明显缩短了研发周期,在工业控制等计算机系统中将会有广泛的应用。

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭