基于NiosⅡ的多串口转发通信处理机设计

更新时间:2024-01-01 作者:用户投稿原创标记本站原创 点赞:19184 浏览:84100

(西南交通大学 电气工程学院, 四川 成都610031)

摘 要 :针对工业控制领域中对多串口通信的需求,采用SOPC技术并利用FPGA的可编程性,给出了一个基于Nios Ⅱ的30路串口数据转发通信处理机的设计方法,同时定义了相应的数据通信协议,从而实现了30路下位机与上位机的串口通信.实验结果表明,该系统具有相对较高的可靠性和稳定性,并可以根据实际需求灵活改变串口个数,具有良好的可移植性、易实现性和灵活性.

关 键 词 :多串口通信; SOPC; FPGA; Nios Ⅱ

中图分类号:TN955文献标识码:A

文章编号:20951302(2011)04004403

Design of Communication Processor for Multiserial Ports Data Traner Based on Nios Ⅱ

HU Zhixiong, HUA Zexi

(Institute of Electrical Engineering, Southwest Jiaotong University, Chengdu 610031, China)

Abstract: In the field of industrial control serial munication needs, using SOPC technology and use of FPGA′s programmability, gives a Nios Ⅱbased 30way serial data munication processor design forward, and it defines the corresponding Data munication protocol, down the road in order to achieve a 30 bit machine with the host puter′s serial port munications. Experimental results show that the system has relatively high reliability and stability, and flexibility to change according to the serial number of the actual demand, with good portability, easy to implement and flexibility.

Keywords: serial munication, SOPC, FPGA, Nios Ⅱ

收稿日期:20110321

0引言

随着电子技术的飞速发展,接口技术显得越来越重要[1],而且所要监控的工业环境也变的越来越复杂,对多串口通信的需求也随之增加.在多串口应用方面,目前虽然有一种通过PCI扩展主机串口的数量的多串口卡,但其高昂,在系统维护、性能、布线等方面存在很大缺陷,且可扩展串口数量也有限;另外,还有一种通过多串口芯片来扩展串口数量的方案,其可扩展的串口数则更有限,而且电路板体积大,功耗高,也高.

基于以上原因,本文利用SOPC技术,基于Nios Ⅱ设计了一个30路串口数据转发通信处理机.该设计方案具有集成度高、体积小、功耗低和速度快等优点,而且还具有用户可编程的特点,可方便实现其功能重构[2].同时,该方案还可根据实际需求灵活改变串口个数,而且有着相对较好的移植性、易实现性和灵活性,具有潜在推广价值.

1Nios Ⅱ 软核处理器串行接口

1.1Nios Ⅱ软核处理器的特性

本系统是以Nios Ⅱ软核处理器为核心设计的片上系统,处理器采用Altera公司的第二代用户可配置的通用32位RISC软核处理器,它是Altera公司特有的基于通用FPGA架构的软CUP内核[3],设计者可以利用其开发工具SOPC Builder设计构造以Nios Ⅱ处理器为基础的系统, 而且可以根据需要来调整嵌入式系统的特性、性能以及成本,扩展产品的生命周期,避免由于处理器的更新换代带来的损失[4].

1.2UART内核

SOPC Builder中提供了具有Avalon接口的UART的IP核,可实现基于FPGA的嵌入式系统与外部器件之间的串行符号流通信.通过UART核可实现RS 232协议,并可提供可调的波特率、校验、停止、数据位以及可选的RTS/CTS控制信号,可根据需要配置UART[5].图1所示为UART内核框图,它有两个用户可视部分:寄存器文件和RS 232信号.[KH-2]

图1UART内核框图

2通信处理机硬件设计 

该设计运用了Altera 的Nios Ⅱ软核处理器,借助SOPC Builder和Quartus II 工具,可在EP2C8T144芯片上实现30路串口转发通信处理机的设计.图2所示为30路串口转发通信处理机的硬件设计框图,包括内嵌Nios Ⅱ软核处理器系统、31个串行接口模块(其中一个串口作为母串口与PC机连接,其他30个串口为子串口与下位机连接)、JTAG调试模块等,通过SOPC Builder可以根据设计者的需要来配置CPU及各功能模块的参数.

图2串口转发处理机硬件结构框图

2.1FPGA内嵌Nios Ⅱ处理器系统设计

由于Nios Ⅱ是一个内嵌在FPGA中的软核处理器,其外设写作也就显得比较方便,在Quartus II工具中提供的SOPC Builder环境下,其写作逻辑的结构框图如图2所示的硬件设计框图中的Nios Ⅱ处理器系统.该系统写作了31个UART内核,且只用TXD和RXD这两个信号,而没有写作RTS和CTS控制信号.本设计把串口UART0作为母串口,其他串口作为子串口,有1位起始位,8位数据位,1位停止位,无奇偶校验位,串口波特率可以通过编程确定.

Nios Ⅱ处理器系统的生成除了Nios Ⅱ软核、片内及片外外设的写作外,还需要对各外设进行基址和中断号的分配、系统复位和异常地址设置.设计中可通过自动分配系统基地址和系统中断向量,来手动分配CPU复位地址为外设EPCS16、CPU溢出地址为片上RAM、CPU调试断点地址为JTAG调试地址,从而由系统报告得知系统是否写作成功,图3所示为Nios Ⅱ系统写作图.

图3Nios Ⅱ系统写作图

2.2FPGA电路设计

在该系统中,电路主要包括复位电路、串行接口电路、串行配置电路和存储电路等.限于篇幅,本文主要简单阐述其串行配置电路和串行接口电路.

由于Cylone II系列FPGA芯片主要采用SRAM单元保存配置数据,而SRAM是掉电易失性的,因而每次上电时,FPGA芯片都要重新下载配置数据.该系统采用串行配置器件EPCS16并通过主动串行模式来对FPGA芯片进行配置,其剩余的存储空间用来存储用户程序.EPCS16芯片与FPGA芯片相连的4个引脚分别是DATA、ASDI、nCS和DCLK.

为了与RS 232的电压相匹配,在FPGA的I/O引脚和RS 232连接器之间需要加电平转换芯片MAX3232,其连接也比较简单,只有两个引脚需要连接.MAX3232的T1IN和R1ONT引脚分别与UART核的TXD和RXD信号相连,R1IN和T1ONT引脚连接到RS 232连接器.为了显示通信状态,TXD和RXD信号都将在连接一个发光二极管后通过一个上拉电阻接3.3 V电源.

3系统软件设计

3.1通信协议设计

在进行数据通信时,为了确保通信双方能够建立可靠、有效的数据通信,必须先定义好相应的数据通信协议.本文根据系统实际需求来定义与下位机的握手通信协议,其协议帧格式如表1所列.

表1数据通信协议帧格式

帧头地址命令类型传输数据校验字

1个字节(0x7E)1个字节(串口地址编号)1个字节4个字节1个字节

该数据帧有8个字节,传输数据段长度可根据实际需求而定,校验字段为除帧头外的6个字节相加对256取余.需要说明的是,数据帧格式并不惟一,用户可以根据实际需求设计出不同的数据帧格式.

串口通信是按位传送、按字节来接收的[6],按照表1中定义的数据帧格式的接收过程如下:

(1) 判断当前接收的数据段,如果是一帧开始,则对相关参数进行初始化.接着开始读,直到读到帧起始符0x7E或者读完为止;若没有,则丢掉所读数据.

(2) 如果读到了帧起始符0x7E,系统将设置读状态,该阶段字节数为7,分别对应地址、命令类型、传输数据、校验字;该阶段的处理就是读取7个字节数据.

利用数据帧进行数据传输时,只要将所读取的字节跟定义的数据通信格式比较,就可得到一帧完整的数据.

3.2串口通信实现程序

系统软件设计是在非操作系统环境下利用软件集成开发工具IDE所提供的硬件抽象层HAL的库函数支持来编写的.系统上电复位后,FPGA芯片从串行配置芯片中加载配置数据,并初始化各串口参数,之后就可进行串口数据的收发.母串口通常以广播的形式给每个子串口发送数据,由下位机来判断是否接收数据;母串口以轮询的方式接收子串口数据.图4所示为母串口数据收发流程图.

图4母串口数据收发流程图

4实验结果

通过上位机的串口调试工具,可对所设计的多串口通信处理机进行测试.测试时由下位机发送数据,经过处理机接收后再转发给PC机,然后对比下位机发送和PC机接收的数据.实验证明多次测试均未见错误,其结果如表2所列.由此可见,基于Nios Ⅱ设计的30路串口数据转发通信处理机具有高度的可靠性和稳定性.

表2串口通信测试结果

单次发送字节数重复发送次数出错率

160000

260000

450000

840000

5结语

基于Nios Ⅱ设计的多路串口数据转发通信处理机适用于工业环境复杂的多单元数据采集监测系统,可作为一个集中器应用于复杂数据采集系统中.与多串口卡、通过多串口芯片扩展串口方案相比,新的多串口数据转发通信处理机具有稳定性好、实时性强、功耗低、灵活性好、成本低等优点.

6]卞小林,王瑛剑,杨智.基于Delphi的PC与Nios Ⅱ的串行通信[J].海军工程大学学报,2008,20(5):7578.

[7]梁光胜,许钊,陈静,等.基于Nios的GDM12864A显示模块控制\[J\].现代电子技术,2008,31(23):171173.

[8]白璘,孙肖子,白玉霞.基于Nios Ⅱ的嵌入式Web怎么写作器\[J\].现代电子技术,2005,28(12):3839.


相关论文范文