APP下载

软核处理器MicroBlaze的CAN总线接口电路设计

2017-03-31

单片机与嵌入式系统应用 2017年3期
关键词:收发器缓冲器寄存器

唐 明

(中国西南电子技术研究所,成都 610036)

软核处理器MicroBlaze的CAN总线接口电路设计

唐 明

(中国西南电子技术研究所,成都 610036)

针对某综合化通信导航识别设备,提出了一种以Xilinx公司的FPGA代替传统单片机和外围扩展芯片实现CAN总线接口电路的设计方法,通过MicroBlaze软核处理器实现了CAN总线通信节点的SoC片上系统设计,并给出了详细的软件设计流程。这些方法和技术已在实际工程中成功应用。

MicroBlaze软核处理器;CAN总线;SJA1000

引 言

CAN(Controller Area Network)——控制器局域网络,属于工业现场总线的一种,与一般的串行通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。具体表现在:CAN总线(2.0B规范)允许高达1 Mbps的通信速率,支持多主通信模式,有高抗电磁干扰性,而且能够检测出通信过程中产生的任何错误,已被广泛应用到自动化控制系统中[1]。

在某综合化通信导航识别设备中,由于设备集成度较高,要求以最小的体积和功耗实现多达33个CAN总线节点电路[2]。传统的单片机或微处理器加上独立的CAN控制器的电路设计已不能满足上述要求,因此本文设计了一种基于FPGA的SoC片上系统,一方面减少了电路的复杂程度,节省了节点电路的体积和功耗;另一方面,FPGA丰富的逻辑资源、超高的性能和可编程性极大地提高了整个设备的可靠性、灵活性和可扩展性。

1 MicroBlaze简介

“嵌入式开发工具”是指用来产生、编辑、编译、链接、加载和调试高级编程语言代码的工具。Xilinx Embedded Development Kit(Xilinx嵌入式开发套件,简称EDK)是Xilinx FPGA嵌入式开发工具,支持IBM PowerPC硬核处理器和MicroBlaze软核处理器。

MicroBlaze是一款由Xilinx公司开发的嵌入式软核处理器,采用32位RISC优化结构,用于开发基于Xilinx系列FPGA的嵌入式工程。它符合IBM CoreConnect标准,能够与PPC405系统无缝连接[3]。在FPGA内部可以集成多个MicroBlaze处理器,极大地增加了FPGA开发的灵活性。MicroBlaze处理器的优势主要有:用户可以根据不同的需要灵活定制系统特性和外设;减小系统复杂性、降低功耗和成本;占用FPGA资源比较少。

2 系统软硬件设计

2.1 CAN总线节点的组成

通常情况下,每个CAN总线节点电路都可以被划分为3个不同的功能块[4],如图1所示。CAN总线收发器实现CAN协议控制器到物理总线之间的接口,将CAN控制器输入/输出的单端信号转换为物理总线上的差分信号,其性能直接决定了总线接口的性能、系统总线长度和系统节点数,是决定整个CAN总线网络通信性能的关键因素之一。

图1 CAN总线节点的组成

CAN协议控制器执行CAN总线规范里规定的总线通信协议,通常用于协议解析、报文数据缓存和验收滤波,对外与主控制器和CAN总线收发器均有接口。主控制器通过对CAN协议控制器编程,控制总线的工作方式与工作状态,执行数据的对外发送和接收,从而实现具体的功能应用,如读取传感器数据、控制传动装置和处理人机接口等。

2.2 系统硬件设计

如图1所示,本文所设计的CAN总线接口电路的主控制器选用MicroBlaze处理器,CAN协议控制器选用SJA1000,总线收发器选用SN65HVD230QD,其中,MicroBlaze处理器和SJA1000均以软核的形式嵌入到一片FPGA芯片内,该FPGA选用Xilinx公司的Spartan3A芯

片,主要实现总线数据的收发、内部协议的解析处理和传感器的控制,是整个CAN总线接口电路的核心器件。

基于MicroBlaze软核处理器的CAN总线接口电路基本组成如图2所示。其中,MicroBlaze处理器、存储控制单元(Memory Controller)、离散量输入/输出(GPIO)、中断控制器(Interrupt Controller)等均可在EDK套件的XPS集成开发环境下以通用软核调用的方式直接连接在相应内部总线上[5]。SJA1000软核使用Verilog语言编写,并利用XPS开发环境连接在PLB/OPB总线上。至此,CAN总线接口电路的FPGA内部逻辑设计已完成。

具有两路冗余能力的CAN总线收发器部分电路如图3所示。

图3 CAN总线收发器电路图

FPGA与总线收发器之间采用光耦器件HCPL063L作隔离,这样做的好处有两个:一是增强CAN总线接口电路的抗干扰能力,提高了数据收发的可靠性,有利于系统达到最大的通信速率或距离;二是当外部信号出错造成器件烧毁时,可保证FPGA相应引脚不被烧毁。需要注意的是,光耦器件两侧的电源应独立设计,否则达不到完全隔离的效果。CAN总线收发器SN65HVD230QD的RS脚为工作模式选择,可通过串接电阻R13将芯片设定为斜率控制模式,选择1 kΩ的电阻表示CAN总线工作于高速模式,此时总线的抗射频干扰能力较弱,需选用屏蔽双绞线作为物理总线。

2.3 系统软件设计

使用MicroBlaze软核处理器对CAN总线通信模块的软件控制流程主要包括节点初始化、数据报文的发送和接收。由于设备对各个节点的数据实时性要求较高,因此CAN总线数据的接收采用中断方式。

2.3.1 节点初始化

系统上电后,首先对MicroBlaze处理器和SJA1000进行初始化,以确定总线速率、工作模式、滤波方式等。MicroBlaze处理器的初始化主要包括使能内部Cache、使能内部中断、初始化GPIO等。SJA1000的初始化主要包括设置总线工作方式、节点验收滤波方式、验收代码寄存器(ACR)、验收屏蔽寄存器(AMR)、波特率参数、输出控制寄存器(OCR)、中断使能寄存器(IER)等。对SJA1000的初始化需注意,所有设置只能在复位模式下才能进行,设置完成后,须回到正常工作状态,方可进行正常的数据通信。

2.3.2 报文发送

发送报文时,MicroBlaze处理器将要发送的信息按要求组帧,传送到SJA1000的发送缓冲器,然后将命令寄存器里的“发送请求”标志置位,即可完成一次报文发送。当SJA1000正在发送报文时,发送缓冲器被写锁定,因此,每发送一次报文到发送缓冲器之前,必须检查状态寄存器中的“发送缓冲器状态”标志是否释放。MicroBlaze处理器向CAN总线发送报文的流程如图4所示。

2.3.3 报文接收

接收报文时,MicroBlaze处理器收到SJA1000产生的接收中断后,即开始取出接收缓冲器里的数据,然后通过对命令寄存器的相应标志位发送一个释放接收缓冲器的命令,之后再检查状态寄存器中的“接收缓冲器状态”标志,从而保证所有数据均被取出。MicroBlaze处理器从CAN总线接收报文的流程如图5所示。接收流程需注意,在处理接收报文的过程中需同时对总线关闭、接收溢出、错误报警等异常情况进行处理,只有在总线完全正常的情况下,才开始进行数据接收操作。

3 仿真、验证结果

系统调试验证时,上位机选用周立功公司的USBCAN II,其调试界面为ZLGCANTest,如图6所示,可以看到,本文设计的CAN总线节点与上位机的数据通信正常,可正常接收上位机的数据,亦可发送数据至上位机,使其正常解析出发送数据。

图4 报文发送流程图

图5 报文接收流程图

图6 上位机数据收发调试界面

结 语

[1] 饶云涛.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2007.

[2] 杨斌,李阜东.CAN总线在航空模块化综合系统中

CAN Bus Interface Based on MicroBlaze Soft-core Processor

Tang Ming

(Southwest China Institute of Electronic Technology,Chengdu 610036,China)

A design method of CAN bus interface circuit is proposed in the integrated communication navigation and identification avionics,which is based on FPGA instead of the traditional single chip microcomputer and peripheral expansion chip Xilinx.MicroBlaze soft-core processors is used to implement the CAN communication note,and its detailed software design is listed.These methods have been used in the practical projects.

MicroBlaze soft-core processor;CAN bus;SJA1000

TN919.5

A

猜你喜欢

收发器缓冲器寄存器
更正
重载货车用缓冲器选型的研究及分析
Lite寄存器模型的设计与实现
Virtex5 FPGA GTP_DUAL硬核两个收发器独立使用的实现
面向TIA和缓冲器应用的毫微微安偏置电流运放可实现500MHz增益带宽
富士通半导体推出收发器家族全新LTE优化多频单芯片MB86L13A
ADI多点LVDS收发器提供最高ESD保护
车辆缓冲器故障及选型
——以冶金企业为例
高速数模转换器AD9779/AD9788的应用
一种可重构线性反馈移位寄存器设计