您的当前位置:首页基于NIOSⅡ系统多串口通讯模块的设计与实现

基于NIOSⅡ系统多串口通讯模块的设计与实现

2020-02-05 来源:飒榕旅游知识分享网
维普资讯 http://www.cqvip.com

2OO7年3月 南昌航空工业学院学报(自然科学版) Mar.。2OO7 第21卷第1期 Journal ofNanchang Institute ofAeronautical Technology(Natural Science) V01.21 No.1 基于NIOS II系统多串口通讯模块的设计与实现 曹木云,邬冠华 (南昌航空工业学院,江西南昌330063) [关键词】Niosll;现场可编程逻辑阵列;多串口通讯;嵌入式系统 [摘要】介绍了基于NioslI嵌入式系统多串口通讯模块的设计方案,阐述了多串口通讯模块的设计思路及实现的体系结 构.从硬件和软件两方面论述了具体设计与实现过程。 [中图分类号】TN91 [文献标识码】A [文章编号11o01—4926(20o7)ol—O064—04 The design and realization of multiple serise p0rt communication on NiosH system CA0 Mu—yun.wu Guan—hua (NanchangInstitute ofAeronaug ̄Technology,Nanchang,Jian ̄i 330063,Ch/na) l word ̄:Nisell;FPGA;multiple series port communication;end ̄xtded system AI : design p ̄ojcet 0fthe multiple esrise oprt communication based onthe NiseII e ̄ded system is introduced.rI11e desi method 0fthe multiple series port communiaction and realization ofits ̄ystematical construction is speciifed.Finally,the desing and realizing process 0fthe mulitr ̄e series port communiaction is described in the aspects of hardware and software. 串口是模块和主板问的最常规、最容易接人的一种接口,如安全模块、微型打印机、传感器、密码键盘等 外设常采用串口与主板相接。在数据通信、工业控制、仪器仪表、智能家电、家庭安防、商业POS机、税控机、 GPS卫星定位、导航等系统中,串口被广泛应用。在一个可能有多个子模块的系统中,对于控制多个串口的 需求较为明显。 在嵌入式系统、工控领域中,常常需要控制各种外部设备。为了加快产品研发速度、降低研发成本和系 统整体成本,逐渐流行分散设计方式,即采用系统拆分、模块外包等方式,由各个智能模块完成特定的子功 能。这样使产品研发逐渐走向系统集成,以搭积木的方式进行产品开发。 1通用串口扩展方案 目前比较通用的串口扩展方案有两种,一是用硬件实现, 使用多串口单片机或专用串口扩展芯片,可供选择的串口扩展 芯片有,n等公司开发的16C554系列串口扩展芯片,该系列芯 片实现的功能是通过并行口扩展串行口,功能比较强大、通讯 速度高,但控制复杂,同时价格较高。另一种串口扩展方案就 是用软件实现,软件模拟串口存在的缺点有:一是采样次数低, 数据的正确性就难以保证;二是不能实现高波特率通讯,软件 模拟串口一般不能实现高于4800 bps的波特率。 图1 GM8125串口扩展 GM8123/25系列串口扩展芯片全硬件实现串口扩展,保证了芯片工作的稳定性,设计的最高波特率完全 能满足一般系统需求,通讯格式可设置,与标准串口通讯格式兼容,利用该系列芯片实现串口扩展是性价比 较高的串口扩展方案(如图1所示)。 [收稿日期】20o7—02—21 [作者简介】曹木云(1982一),男,江西南昌人,硕士研究生。研究方向:测试计量技术及仪器。 维普资讯 http://www.cqvip.com

第l期 黄华、张立东:一种基于冗余分配的网格计算任务调度方法的研究 65 但在X86架构的系统中,若使用该类芯片,除了需额外编写驱动外,由于缺少子串口选择的专用I/O引 脚资源,还需额外增加一个双串1:3单片机进行管理和数据转发。因此,若这种扩展方式用于X86的系统或 模块化较高的系统,有一定难度。 该芯片不足之处在于:不满足超低功耗要求;多通道模式下,所有子串口工作波特率只能设置成统一值, 不适用于各从机工作波特率不一致、又要求同时工作的系统。 2基于NiosII系统实现多串口通讯 2.1 NiosII介绍 Ahem NiosII处理器所具有的完全可定制特性、性能、较低的产品和实施成本、易用性、适应性和不会过 时等优势使其在每次设计中,都能够实现完美的配合。 NiosII系列32位RISC嵌入式处理器具有超过200DMIP的性能,在FPGA中实现成本只有35美分。由于 处理器是软核形式,具有很大的灵活性,可以在多种系统设置组合中进行选择,达到性能、特性和成本目标。 采用NioslI处理器进行设计,可以有助将产品迅速推向市场,延长产品生命周期,防止出现处理器逐渐过时。 2.1.1可定制特性集 采用Nios II处理器,将不会局限于预先制造的处理器技术,而是根据自己的标准定制处理器,按照需要 选择合适的外设、存储器和接口。 2.1.2配置系统性能 所选的处理器应该能够满足当前和今后的设计性能需求。由于今后发展具有不确定性,因此,NioslI设 计人员必须能够更改其设计,加人多个NiosII CPU、定制指令集、硬件加速器,以达到新的性能目标。 2.1.3低成本实现 在选择处理器时,为了实现需要的功能,可能要购买比实际所需数量多的处理器,采用NiosII处理器,可 以根据需要,设置功能。在单个FPGA中实现处理器、外设、存储器和I/O接口,可以降低系统总体成本。 2.1.4产品生存周期管理 为实现一个成功的产品,将其尽快推向市场,增强其功能特性以延长使用时间,避免出现处理器逐渐过 时。在短时间内,将NiosII嵌入式处理器由最初概念设想转为系统实现。 2.2采用NiosII实现多串口通讯 ’ 怎样实现多串口通讯能达到较好性价比,且能满足既适用于X86架构又适用于高低端嵌入式系统,在 此提出一种较好的串口通讯方案,采用软、硬件结合的方式来实现多串口通讯。 在硬件设计上,本设计采用Cyclone核心: EP1C12Q240C8、8Mbyte的SDRAM、2Mbyte的 lfash,FPGA的配置芯片EPCS4。以FPGA芯片 FpCA TxD 丹毒口 TXD1- fⅨD CPU核 RAM 串口1 RXD1 TxD2. 作为硬件基础,具有更大的灵活性和较高的可 靠性在FPGA内部设计一个CPU,可选择各种 外围接口,如普通I/0口、并行总线、串行接口、 以太网接口等。使用Ahera的NiosII相关工具 可以方便地在自己设计的CPU系统上进行编 程,如果需要还可以将Iinux操作系统移植进去。 CLK—+ 串口2 IⅨD2 ⅨDn 串口3 RXDn —' 图2基于Niosll多串口硬件架构 图2为采用Cyclone的EP1C12实现多串口的硬件架构。采用Altera的QuartusII版设计软件的工具,在 FPGA芯片上添加一个最简单的32位处理器NiosII内核,再添加多个UART模块,这样能够支持扩展8个以 上子串口。图2为在SOPC下建立的片上系统所添加的组件。SOPC能够方便地添加各种外设接口,包括 SDRAM、PCI总线等复杂地接口。在图2的列出了这些组件,通过avalon总线由CPU一0进行控制,同时为每个 组件分配了地址空间,为各个串口分配了中断号,软件设计时将引用这些信息。 如果还需要扩展更多子串口,则可以将该芯片更换为Pin到Pin兼容的高端芯片,增加不多的成本即可 维普资讯 http://www.cqvip.com

扩展更多子串口,将产生更好的开发及应用价值。 3软件设计 软件结构可分为二个结构层次.最底层为硬件抽象层,主要由NiosII软核外设驱动程序中断服务程序以 及板级初始化程序组成,外设驱动程序包括UART控制器、PIO控制器、SDRAM、FLASH控制器(如图3所示), 生成顶层文件(如图4所示),最高层为应用软件层,完成所有的应用功能。 图3 Niosll软核建立 UART是通用异步收发器,是嵌入式系统上很常用的一个串行接口。由于其方便、简单、易用等特性,在 嵌入式系统中依然扮演着十分重要的角色。 . UART作为一个连接NioslI和其相关外设的IP放在SOPC Builder里面供用户直接使用。 图4 Niosll软核生成的顶层文件 NiosII的开发都是在HAL(Hardware Abstraction Layer)的基础上进行的。HAL系统库是一个轻量级的运行 环境,提供简单的硬件通讯的设备驱动程序。 HAL API集成了ANSI C标准库,这些API允许你用标准的c函数(prinff,fopen,fwrite等等)去存取设备。 由于SOPC Builder和NioslI 1DE紧密的集成,在SOPC Builder生成硬件系统以后,NioslI IDE能够自动生 成对应的客户HAL系统库。更新硬件系统设置后,NioslI IDE能自动更新HAL的驱动设备。在创建软件项 目的时候,NioslI IDE自动生成并管理HAL系统库。 写初始化程序是比较复杂的,需要用到大量的函数,但其基本结构却相对简单,包括下面3个过程: 维普资讯 http://www.cqvip.com

第1期 黄华、张立东:一种基于冗余分配的网格计算任务调度方法的研究 67 a)初始化,包括处理器和外围电路的初始化; b)主函数,包括完成符合设备特定要求的代码; c)中断处理,包括处理各种中断的程序代码。 如图5所示:程序开始,程序打开所有串口,读取4个串口中断,其中优先级为串口1大于串口2大于串 口3大于串口4,根据各个设备的重要程度,可以改变其优先级。其中串口1为PC串口,进行下位机指令和 数据的传输,当串口1有数据的时候,模块读取到高电平,然后进行上位机到下位机指令和数据的传输,分别 进行串口2、3、4的写操作,达到控制的目的,当串口2、3、4有数据返回时输出时,则执行中断程序,把数据或 指令通过串口1返回PC,达到数据的传输目的。 图5多串口通讯程序框图 图5多串口通讯程序框图 当下位机串口设备直接有数据返回时,执行中断程序,模块把数据或指令通过串口1返回PC,用户进行 计算、分析或控制。该设计已经制作成电路板,并调试通过,系统能够正常运行,多串口通讯效果良好。 4结束语 可以看出,采用FPGA进行嵌入式系统设计有两个突出的特点。首先,降低了硬件设计的难度,缩短了 硬件开发周期,提高了设计的可靠性。CPU本身是以软核的方式实现,其功能可根据需要进行定制,相当的 灵活、快速。其次,软件开发容易,由于SOPC Builder开发环境的完备功能,可以把注意力集中在系统整体构 架和功能上来,而无需过多地考虑细节性的电路设计,同时还可以得到比较好的系统稳定性和可靠性。 该设计为嵌入式系统设计提供了一条新思路,体现了FPGA的灵活性、高集成性等特性,大大降低了成 本,缩短了开发时间。 [参考文献] [1]彭澄廉.挑战S0Ic一基于NIOS的SOPC设计与实践[M].北京:清华大学出版社,2004. [2]潘松,黄继业.EDA技术与VHDL[M].jE京:清华大学出版社,2005. [3]赵曙光,郭万有,杨颂华.可编程逻辑器件原理、开发与应用[M].西安:西安电子科技大学出版社,2001 [4]王田苗.嵌入式系统设计与实例开发[M].北京:清华大学出版社,2003. [5]Niosll Software Developer’s Handlx ̄ [6]李博.直序扩频接收机数字中频模块的FPGA实现.北京航空航天大学硕士论文2006 [7]姚廷燕.SOP(2技术在软件无线电平台中的应用[J].遥控遥测2005.7 

因篇幅问题不能全部显示,请点此查看更多更全内容