基于SOPC的CAN_RS232接口转换器设计

时间:2022-10-05 02:08:58

基于SOPC的CAN_RS232接口转换器设计

摘要:使用Altera公司的Cyclone II系列FPGA,利用SOPC平台下的NIOS II处理器,实现了CAN 2.0和RS232的接口转换器的设计,为实现片上集成其它协议接口转换器的设计奠定了基础。

关键词:fpga;sopc;nios II;can_rs232

中图分类号:TP331文献标识码:A文章编号:1009-3044(2011)13-3169-02

Design of the CAN_RS232 Interface Transform Based on Sopc

WEI Xiao-dong, XIA Yun

(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)

Abstract: CAN_RS232 interface transformer has realized,which using Altera Corporation's Cyclone II series FPGA and using the NIOS II processor under the SOPC platform. This works establish a technique platform for on-chip integration of interface transformer, which can be used to design other interface transformer.

Key words: fpga; sopc; nios II; can_rs232

控制器局域网络CAN(Controller Area Nerwork),属于现场总线的范畴,是一种有效支持分布式控制或者实时控制的串行通信网络。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。因而CAN总线其应用范围已经不再局限于汽车行业,而向自动控制、航空航天、过程控制、机器人及传感器等多个领域发展。但是传统的工业设备的通信很多仍然采用的是RS232接口,但是RS232通信距离短,而且只能进行点到点的通信,不能直接组成多点通信网络。为了更好的解决远距离通信的问题,本设计采用了Altera的Cyclone II系列FPGA,在SOPC平台下利用NIOS II 处理器来实现接口的转换。

1 系统设计方案

SOPC(片上可编程系统 System on a Programmable Chip)是Altera公司提出来的一种灵活、高效的SOC解决方案。它将处理器、存储器、I/O口等系统设计需要的功能模块集成到一个PLD器件(FPGA)上,构成了一个可编程的片上系统。具有灵活的设计方式,可裁剪,可扩充,可升级,比具备软硬件在系统可编程的功能。而且除了系统使用的资源外,可编程器件内还具有足够的可编程逻辑资源,可以实现其它的附加逻辑。

本设计采用了SOPC的设计思想,在FPGA中构建NIOS II软核、JTAG-UART、SDRAM控制器、FLASH控制器以及实现CAN_RS232接口转换的控制接口。由于系统具有很强的灵活性和可配置性,后续可以持续的添加各种新的功能模块,如实现更多的接口转换协议,可以最大程度的升级系统的性能。图1所示为系统的结构框图。

2 NIOS II系统平台的构建

NIOS II处理器是Altera公司以软核形式提供的32位嵌入式处理器,具有200DMIP的性能。由于采用软核的形式,因而具有很大的灵活性和可配置性。在NIOS II中主要完成接口的转换。

Altera公司提供的Quartus II中集成了SOPC Builder,它是一个很直观的图形用户界面,用户只需要通过图形界面来定义系统即可,而不需要编写任何的HDL代码。通过SOPC Builder可以很方便的把处理器、存储器、和其它的外设模块连接起来,自动生成片上总线和总线仲裁等所需的逻辑,并能指定仲裁优先级,从而形成一个完整的系统。

下面直接利用SOPC Builder生成一个NIOS II /f的处理器,一个自定义的RS232控制模块,一个SDRAM控制器模块,一个FLASH控制器模块,一个JTAG-UART模块,一个CAN 控制模块以及控制线PIO模块,最后编译生成所需要的NIOS II 系统硬件平台。

3 外部组件的硬件电路设计

3.1 CAN接口电路设计

CAN控制器采用了Philips公司的SJA1000独立CAN控制器。它具有BasicCAN和PeliCAN两种模式,这里采用的是PeliCAN模式,它能够处理CAN2.0B规范的帧类型,而且提供了一些增强功能使SJA1000的应用于更宽的领域。硬件原理图如图2所示。

总线控制器采用的是Philips公司的PCA82C250芯片,它是CAN控制器和物理总线之间的接口,可以提供对总线的差动发送能力和对CAN控制器的差动接收能力。硬件连接如图3所示。

3.2 RS232接口电路的设计

在SOPC Builder中已经提供了UART的组件,它实现了RS232协议的同时,也提供可调的波特率、奇偶校验位、停止位和数据位,以及可选的RTS/CTS流控制信号。在使用SOPC Builder产生NIOS II系统的硬件平台时已经添加了该组件。为了保证电气的相容性,本设计使用Maxim公司的MAX232来实现UART口的电平转换。硬件电路如图4所示。

4 系统软件设计

4.1 CAN部分的收发程序设计

CAN通信部分主要是对SJA1000进行操作,主要由三个功能环节组成:初始化、发送帧和接收帧。本设计使用的是CAN的PeliCAN模式,因此这里仅介绍PeliCAN模式的软件实现步骤。

4.1.1 初始化

SJA1000要完成正常的CAN通信,需要先进行必要的初始化参数设置。这些参数设置包括中断系统设置、通信速率设置、验收滤波器设置以及输出方式等。这些设置实际上就是对SJA1000内部的寄存器的写操作。SJA1000先进入复位模式,然后进行初始化工作;初始化完成后,退出复位模式,进入工作模式。初始化的流程如图5所示。

4.1.2 发送帧

发送过程是把要发送的数据按照CAN协议规定的帧格式组成数据帧,存入SJA1000的发送缓冲区,然后写发送命令。在把数据存入到发送缓冲区前,要判断当前的状态是否允许信息发送。发送一个数据帧的过程如图6所示。

4.1.3 接收帧

SJA1000接收报文有两种响应的方式:查询接收方式和中断接收方式。在实时性要求高的通信系统中可以采用中断方式来接收报文,其它情况可采用查询方式。本设计采用的是中断的接收方式,接收的流程如图7所示。

4.2 RS232的收发程序设计

Altera提供了HAL系统库的驱动程序,可以使用ANSI C标准库函数来访问UART内核。NIOS II编程将UART内核当成一个字符模式设备处理,使用ANSI C标准函数进行发送和接收数据。驱动程序支持CTS/RTS控制信号。

在编写驱动程序时首先要建立一个文件指针,即FILE *类型,这样通过标准C库函数fwrite、fread、fprintf、fget等来进行读/写的操作。本设计使用fp = fopen(“/dev/RS232”, “r+”)就可以打开UART设备。这样就可以实现UART数据的收发操作。

5 功能验证

通过UART数据线将计算机的UART接口与CAN_RS232转换器的UART口连接,将CAN的CAN_H和CAN_L与另外一块CAN的板子连接。打开串口调试助手,设置如下:串口设置为COM1,波特率设置为115200,校验位为NONE,数据位为8,停止位为1。设置完成后,在串口调试助手中手动发送数据,数据通过CAN_RS232转换器,经过CAN总线发送到另外一块CAN节点上,该节点在接收到数据后在数码管上实时的显示出接收的数据。经过不同的数据测试,系统均能正常的实现CAN_RS232的数据转换。

6 结论

本设计利用了SOPC平台下的NIOS II计数,采用了软硬件结合的方式实现了CAN_RS232的数据转换,能够通过UART接口向现有的CAN节点发送和接收数据。而且FPAG资源丰富,可以在SOPC平台上实现更多的接口转换,在复杂的系统中还可以运用FPGA的多余的逻辑资源实现其它的功能,实现系统的高度集成。

参考文献:

[1] 杨春杰.CAN总线技术[M].北京:北京航空航天大学出版社,2010.

[2] 王黎明.CAN现场总线系统的设计与应用[M].北京:电子工业出版社,2008.

[3] 周立功.SOPC嵌入式系统基础教程.北京[M].北京:北京航空航天大学出版社,2006.

[4] Altera Corporation.n2cpu_Embedded Peripherals.pdf[Z].2008.

[5] 杜尚丰,曹晓钟,徐津,等.CAN总线测控技术及其应用[M].北京:电子工业出版社,2007.

[6] 侯建军,郭勇.SOPC技术基础教程[M].北京:清华大学出版社,2008.

[7] 饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2004.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:结肠癌基因表达谱中的特征基因提取方法 下一篇:基于农业本体的用户兴趣模型研究