任 琳 殷 彤 刘庆山 万 娜 王 亘
(北京无线电计量测试研究所,北京 100039)
当今电子技术和工业控制技术快速发展,计算机控制系统已成为电子设备中的最重要的组成部分。现代化电子设备市场需求日益复杂和多样化,正朝着高速、高集成度、低功耗的系统集成方向发展。相应地对计算机控制系统的信号处理能力、数据传输性能和设备集成度也提出了更高的需求。传统的控制系统实现技术,已经越来越难以满足系统对实时性、可扩展性等苛刻要求。
近年来集成电路制造工艺水平大幅度提高,可编程逻辑器件FPGA在逻辑单元、芯片速度等方面的性能不断提升,同时还成功降低了器件功耗,其逻辑规模已完全能满足电路设计者将处理器、嵌入式外设以及复杂的逻辑电路整合到一片芯片上的需求,以此构成性能强大、接口丰富、高效灵活的片上系统,即SOPC(System on Programmable Chip)技术。它结合了SOC集成度高、设计成本低和FPGA设计周期短、灵活性大的优点[1,2]。设计师可以很快的将硬件系统(包括处理器、存储器、外设接口和用户逻辑电路)与常规软件集成在单一可编程的芯片中。FPGA器件强劲的硬件性能,搭配Vxworks嵌入式实时操作系统的运用,使得SOPC系统设计周期更短,成本更低,更易于重构和升级维护,能充分满足控制应用领域对实时性的要求[3]。
SOPC结合了SOC和可编程逻辑器件各自的优点,一般具备以下基本特征[4,5]:至少包含一个嵌入式处理器内核;具有小容量片内高速RAM资源;丰富的IP核资源可供选择;足够的片上可编程逻辑资源:处理器调试接口和FPGA编程接口;可能包含部分可编程模拟电路;单芯片、低功耗、微封装。
为了满足目前面向分布式、小型化方面的设计需求,本文提出一种基于SOPC的计算机控制系统,以实现控制、信号采集及数据记录等功能,本系统体积小、集成度高、通用化强、扩展性强,可靠性高。
计算机系统由计算机控制模块和底板组成,如图1所示。计算机控制系统可以实现如下功能。
1)具有信息处理的功能;
2)具有储存程序及数据的功能;
3)具有在计算机系统不加电时,通过上位机进行数据提取的功能;
4)具 有 可 配 置 RS422 同 步/异 步 、1553B、FlexRay、CAN、以太网等通信接口,与外部设备进行相应的信息交换的功能;
5)具有可配置IO输入输出接口功能,可输出相应的控制信号及检测相应的输入信号;
6)具有可配置AD模数转换接口功能,可采集相应的电压及电流信号。
计算机控制模块由SOPC、FPGA、接口芯片、电源芯片等组成,具有丰富的外围接口,为系统提供控制平台。底板主要实现数字量输入输出光电隔离、RS422通讯收发隔离、CAN通讯隔离、AD接口信号调理和信号隔离、FlexRay信号隔离滤波和终端匹配。
计算机控制系统具有丰富的接口,可实现4路RS422同步/异步通讯接口、1路1553B通讯接口、1路FlexRay接口、2路CAN通讯接口、1路RS422调试串口、120路数字量I/O接口(输入输出可配置)、16路AD接口、2路10M/100M自适应以太网接口。只需要更改底板中相应的信号隔离电路便可满足不同的系统设计需求,使得系统集成更加快速方便,提高计算机系统系统通用性。
计算机控制模块由SOPC、FPGA、接口芯片、电源芯片等组成。原理框图如图2所示。
处理器选用深圳国微电子第二代32位RISC高性能嵌入式SOPC芯片SM9A025,SOPC芯片遵循ARM体系架构,片上集成16KB指令Cache和16KB数据Cache;拥有与CPU同频的256KB高速程序存储器和64KB高速数据存储器;采用两条独立的32位AHB总线分别作为控制总线和数据总线。SOPC片上集成1553B、429、UART、LVDS、SPI、I2C、CAN、GPIO等丰富的外设控制接口;拥有timer、wdt、rtc、中断控制器、浮点加速器等系统资源。
计算机控制模块以SOPC芯片为控制核心,配合外围时钟、复位、SDRAM、FLASH、调试网口和调试串口等,为整个计算机控制系统提供控制平台。采用256MB SDRAM作为SOPC的大容量外扩内存,使CPU能满足程序运行和数据的运算处理。SOPC内集成2MB SPI FLASH,用来存储系统的Boot启动程序、用户程序、SOPC内置FPGA配置程序,并使用8MB SPI FLASH外扩用户程序空间。数据存储器由1GB NAND FLASH芯片构成,主要用来存储系统的用户数据。为实现计算机系统掉电时能通过上位机读取数据的功能,采用赛普拉斯的CY7C68013实现上位机通过USB接口访问NAND FLASH。
使用FPGA来实现4路HDLC协议的同步/异步串口通讯。SOPC外扩2片ADC实现16通道AD采样。SOPC内置1路1553B协议收发器经过1553B耦合变压采用直接或间接耦合方式,实现1路1553B通讯。120路数字量IO由FPGA来实现,输入输出属性可以通过烧写FPGA程序调整。采用FlexRay协议芯片MFR4310通过AMI接口连接到FPGA上的方式实现1路FlexRay通讯接口,并预留FPGA IP核实现方式,后期可进行IP核开发。SOPC内部自带2路CAN协议处理器,底板中只需增加CAN收发器就可以实现2路CAN总线接口。SOPC内部自带UART0,再通过RS422电平转换芯片构成调试串口,主要用于调试时与上位机串口进行通讯,并进行程序升级。
3.2.1 数字量IO接口设计
计算机控制模块中数字量I/O由FPGA来实现,通过烧写FPGA程序可以改变IO的输入输出属性,共可实现120路。底板中根据具体需要实现输入输出的光电隔离。I/O从上电到配置程序完成前一直处于高阻态。配置完成后,如果没有接到任何命令,输出IO一直保持高阻态,并在FPGA的数字量I/O输出寄存器实现禁止输出全“1”功能。
3.2.2 RS422通讯接口设计
计算机控制模块采用外置600万门FPGA来实现串口HDLC的协议,同步异步模式可配置,同时使用8片RS422收发器实现4路串口,底板设计有RS422隔离驱动电路,可以根据系统的要求来选择是否需要隔离设计。RS422通讯接口设计如图3所示。
FPGA用于缓存RS-422通信数据,FIFO容量设置为256字节,通信速率采用115.2kbps,并可根据上层软件设置调整波特率为38.4kbps或115.2kbps或 921.6kbps,通信误码率能够实现不大于10-7。
3.2.3 CAN通讯接口设计
计算机控制模块的SOPC内部集成2路CAN协议控制器,通过上层软件配置成两路冗余的CAN总线通信功能,实现双总线冗余设计,能够兼容CAN2.0B和CAN2.0A标准,传输速率可通过编程设置,且最高为1MBps。底板中设有CAN收发器,型号选用美国ADI公司生产的LTM2889,LTM2889为电流隔离型收发器,该器件支持灵活数据速率,最高支持4MBps,可通过内部隔离电路实现控制器和驱动器之间的隔离,该芯片自带ESD防护,能够在收发器接口上承受瞬时25kV的电压,并不会发生闭锁或受损现象,达到隔离保护的目的。CAN通讯接口设计如图4所示。
3.2.4 FlexRay通讯接口设计
FlexRay接口实现方案为采用NXP的FlexRay协议控制器MFR4310和收发器TJA1080来实现,协议控制器MFR4310通过AMI(Asynchronous Memory Interface)总线与FPGA连接,FPGA实现MFR4310与SOPC的接口转换。
计算机控制模块只实现FlexRay通讯协议部分,信号隔离、总线收发器、信号滤波、终端匹配都在底板实现,整体实现如图5所示。
计算机控制系统的软件分为三部分,分别为Boot启动软件、VxWorks应用软件、上位机数据导出软件。软件组成图如图6所示。Boot软件的功能是实现SOPC启动配置、初始化SOPC接口、VxWorks镜像升级及加载、片内FPGA代码升级及加载。Vx-Works软件的功能是实现VxWorks启动配置、接口驱动以及USB数据导出功能,包括:SDRAM、UART、FLASH、ADC、1553B、以太网、CAN、FlexRay以及离散量输入输出IO。上位机数据导出软件的功能是在计算机系统不加电的情况下,通过USB接口与上位机进行通讯,将存储的数据导出至上位机。通用计算机控制系统运行VxWorks6.8系统,开发采用Workbench3.2集成开发环境,支持代码编辑、编译以及调试功能。软件通过RS422调试串口进行升级。
介绍了一种基于SOPC的计算机控制系统的设计方法。通过以SOPC芯片为处理核心的嵌入式设计方案使整个计算机系统的集成度、通用性和可扩展性进一步得到提高。经过调试,系统各模块技术指标均符合设计要求,整个系统运行稳定。采用基于SOPC的计算机控制系统与传统的控制系统相比具有更强大的数据处理能力、更丰富的通讯接口以及较高的灵活性。为小型化、高性能计算机控制系统的研制奠定了基础。
[1] 柏玉娴.基于SOPC技术的嵌入式控制系统研究与设计[D].南京理工大学,2012.
[2] 孙辰.基于SOPC架构的IP核设计研究[D].电子科技大学,2014.
[3] 李广深,任德志.基于SOPC技术的运动控制器设计[J].仪器仪表用户,2007(4).
[4] 贺今朝.一种堆于FPGA的模糊控制器的研究[D].大连理工大学,2002.
[5] 严璐.SOPC技术在雷达处理系统中的应用[D].南京理工大学,2009.