咨询热线:400-010-1233在线销售咨询
不方便打电话?让科腾联系您:

首页 > 公司动态 亚洲城

基于SoC+FPGA平台快速动态加载驱动开发及实现

  :以TI公司的OMAP-L138型号双核处理器单片系统(SoC)与ALTERA公司 EP3C80F484型号FPGA为核心的嵌入式硬件平台,介绍了SoC与FPGA通过高速SPI接口实现固件动态加载的方法,以及基于Linux的SoC对FPGA快速动态加载驱动程序开发的原理及步骤。实际测试基于高速SPI接口的FPGA固件动态加载功能快速稳定,对同类型嵌入式平台的FPGA固件动态加载驱动开发具有借鉴意义。

  摘要:以TI公司的OMAP-L138型号双核处理器单片系统(SoC)与ALTERA公司 EP3C80F484型号FPGA为核心的嵌入式硬件平台,介绍了SoCFPGA通过高速SPI接口实现固件动态加载的方法,以及基于Linux的SoCFPGA快速动态加载驱动程序开发的原理及步骤。实际测试基于高速SPI接口的FPGA固件动态加载功能快速稳定,对同类型嵌入式平台的FPGA固件动态加载驱动开发具有借鉴意义。

  OMAP-L138双核处理器是TI公司推出的新一代低功耗单片系统(SoC),广泛应用于通信、工业、医疗诊断和音视频嵌入式设备,其内部集成的ARM核与DSP核协同工作,既能满足基于嵌入式操作系统的通用应用程序开发,又能满足专属复杂算法的高效实时运行,再加上大容量FPGA芯片做数字信号的前端处理,可作为较高速率的综合通信数据业务处理通用数字平台。实现对FPGA芯片的固件动态加载,既可以去掉FPGA芯片外挂用于存储其固件的FLASH芯片以降低成本,又可以满足动态改变FPGA运行程序以实现多种应用场合快速灵活的切换要求。

  采用OMAP-L138与EP3C80F484为核心的嵌入式平台,能为宽带通信设备提供完美的平台解决方案。OMAP-L138的特点[1]如下:

  (3)高效的缓存机制。其中ARM核内部有16KB的L1程序Cache和16KB的数据Cache,以及8KB中断向量表存储RAM;DSP核采用二级缓存结构,包括32KB 的L1程序Cache、32KB 的数据Cache和高达256KB可灵活配置的L2 Cache,L2可以被ARM核访问;此外在两核之间还有128KB的片内SHARE RAM,可用于ARM核和DSP核高速交换数据,而不影响各自的运行;

  2)提供容量为5000至200000个逻辑单元、0.5MB至8MB片内RAM的系列芯片选择,其低功耗设计更易于满足设计预算,其中EP3C80F484内部集成81264个逻辑单元,2810880 比特内部RAM,484个管脚;

  5)支持32位Nios II嵌入式处理器,可在单片上集成Nios II软核、片上外设及内存、片外内存接口[3],提供低成本可定制的嵌入式处理解决方案;

  SPI控制器包含收发移位寄存器、缓存以及控制逻辑,数据在传输开始时写入发送移位寄存器,在数据传输结束时读取接收缓存。SPI控制器可工作在主模式和从模式,工作在主模式时由SPI控制器发起传输并驱动SPIx_CLK管脚产生时钟。支持多种数据格式配置,四种相位及极性配置选项[4]。

  动态加载驱动本质上属于字符设备驱动,动态加载的驱动开发主要包含两个部分: (1)根据EP3C80F484的动态加载时序要求配置OMAP-L138的SPI0及其它控制逻辑GPIO,实现固件程序的比特流正确灌入EP3C80F484的配置口;(2)实现EP3C80F484的.rbf格式固件加载文件的读取及解析,并传递给底层SPI控制驱动程序实现比特流的传输,完成字符设备各个操作函数的具体实现,并编译成可动态加载的模块驱动文件。

  动态加载字符设备的操作函数中的函数实现成为了驱动程序开发的关键,file_operations[5]定义如下:

  驱动模块的初始化函数load_fpga_init除完成字符设备的设备号及内存申请和设备注册外,还要完成SPI0控制器的所有初始化配置及GPIO管脚配置;load_fpga_write函数实现存放于文件系统的.rbf固件加载文件从用户空间到内核空间的数据拷贝,并将基于SPI的动态加载驱动实现封装成功能函数spi_down_load供load_fpga_write函数调用;load_fpga_ioctl函数提供SPI通信速率等相关配置。spi_down_load函数流程图如图5所示。

  EP3C80F484配置口DCLK最大支持133MHz的比特流,将OMAP-L138的SPI0_CLK配置成50MHz的时钟频率,加上操作系统、文件处理及控制逻辑等开销,对于2MB左右的.rbf固件程序实测动态加载完成耗时小于1.2秒。测试应用程序与驱动程序交互流程如图6所示。

  本文详细介绍了在Linux下,采用型号为OMAP-L138的SOC的SPI接口及逻辑GPIO实现对EP3C80F484的快速动态加载的驱动程序开发的具体方法。该方法可靠、快速且稳定,比纯粹使用GPIO模拟加载时序快一个数量级以上,并在苛刻的使用条件下仍然表现出良好的稳定性。可用于手持终端、车载、船载系统等通信和工业领域,对动态加载嵌入式系统开发具有重要意义。

  本文来源于中国科技期刊《电子产品世界》2016年第5期第40页,欢迎您写论文时引用,并注明出处。

<< 返回

         

亚洲城

  • 联系电话:   400-010-1233
  • 地 址:       广州市天河区黄埔大道西平云路163号 广电科技大厦803-804、12楼
  • 传 真:     (8620)3835 2000
关于亚洲城 | 联系亚洲城 | 责任申明 | 网站地图 | 人才招聘 | 友情链接
Copyright © 2010 Guangzhou Ke Teng Information Technology Co. Ltd.All Rights Reserved.鄂ICP备16007204号-1