当前位置:首页 > EDA > 电子设计自动化
[导读]摘要 以MPC8313E芯片为平台,介绍了一个基于嵌入式Linux探作系统的双口RAM设备驱动。通过该设备驱动搭建Linux服务器,利用缓存技术实时读取FPGA双口RAM数据,最终实现将海量图像数据高速上传至PC端。 关键词 嵌入式

摘要 以MPC8313E芯片为平台,介绍了一个基于嵌入式Linux探作系统的双口RAM设备驱动。通过该设备驱动搭建Linux服务器,利用缓存技术实时读取FPGA双口RAM数据,最终实现将海量图像数据高速上传至PC端。
关键词 嵌入式系统;Linux设备驱动;双口RAM

    在众多操作系统中,Linux操作系统以其独有开放性和灵活性成为重要的系统之一,因而开发Linux设备驱动具有重要意义。Linux设备驱动是在Linux内核下硬件设备和上层应用程序的纽带,使得应用程序只需调用系统软件的应用程序编程接口(API)就可以完成对硬件设备的操作。作为一个桥梁,其在实现具体功能的过程中发挥着重要的作用,接口丰富的驱动,设备程序对工程的开发有着重要的意义。Linux对所有连接在系统上的设备都会使用一个设备驱动程序,这个基本设备驱动指令成为了内核的一部分。通过使用设备驱动程序文件,设备对系统来说变成了一个可以寻址、重定向并通过管道符导向的普通文件。

1 双口RAM读写设备驱动的开发背景
   
在基于MPC8313E的大容量视频存储系统中,系统需要实现通过千兆以太网接口与上位机进行通信,按上位机发送的命令解析后送给FPGA,进而通过FPGA发出的曝光脉冲控制高速相机MC1362工作。当存储任务完成后,FPGA将存储阵列中的数据读入双口RAM并传至MPC8313E中,Linux端服务器利用千兆以太网接口将数据上传到上位机中,由上位机完成图像还原。
    在构造大容量高速上传通道的过程中,系统采用飞思卡尔MPC8313E芯片,该芯片有两个增强型三速(10/100/1 000 Mbit·s-1)以太网控制器,支持IEEES02.3协议,同时该芯片还支持16/32位的DDR SDRAM数据接口,最高支持333 MHz的数据频率,512 MB可寻址空间以及4个直接存储器访问(DMA)通道,可以满足系统设计要求。该驱动设备主要实现从FPGA双口RAM中乒乓读取图像数据信息,利用挂载在MPC8313E总线上的FPGA完成数据上传,同时也需要解析上位机命令后传递给FPGA

2 Linux驱动模块的程序设计基础
   
在Linux/μClinux的框架结构中,和设备相关的处理可以分为两个层次:文件系统层和设备驱动层。设备驱动层屏蔽具体设备细节,文件系统层则向用户提供一组统一、规范的用户接口。这种设备管理方法可以很好地做到“设备无关性”,使Linux可以根据硬件外设的发展进行扩展。


    Linux系统允许内核以模块的方式加载设备,这大幅提高了Linux设备结构的多样性,同时可以通过裁剪内核减少系统不必要的开支,提高工作效率。一般情况下,Linux内核的驱动模块通常只实现一个驱动程序,因此它可以分类,在Linux操作系统中有3类主要的设备文件系统:块设备、字符设备和网络设备。
    字符设备:可以像文件一样访问字符设备,这样的驱动程序通常会实现如open、close、read和write系统调用。
    块设备:是文件系统的宿主。Linux允许像字符设备一样读取块设备,允许一次传输任意数量的字节。结果块设备与字符设备只在荫核内部的管理上有所区别,即在内核/驱动的软件接口上有所区别。
    网络设备:任何网络设备都是通过接口实现的,既可以和其他宿主交换数据设备。通常情况下,接口是一个硬件设备,但也可以像look back(回路)接口一样是软件工具。网络设备面向网络协议而不是文件系统层。

3 双口RAM读写设备驱动设计
   
介于以上第二部分的分析,双口RAM设备选择为块设备,以便传输任意数量的数据。同时该驱动设备基于Linux2.6.23内核开发,以模块的方式加载至内核中,其结构如图2所示。


    代码编写好后在正式编译前还要准备好内核头文件和库函数,这需要先编译一遍相应的内核,在2.6. 23内核源代码中将MPC8313RDB的配置文件用作默认配置,编译内核。完成后书写驱动的Makefile,然后连接目标扳,在NFS下调试设备驱动和应用程序。用户可以使用通过交叉编译得到的.ko文件通过insmod动态加载至内核中,也可以通过修改启动脚本文件,加电后自启动将驱动加载到内核中。

4 处理结果
   
经过打包处理的图像数据通过MPC8313E的服务器上传至上位机后,按照图像格式进行拼图,每包数据含有42 240 Byte数据,每帧图像数据总量为1 280×1 024 Byte的图像像素点信息和附加区信息,共接收35包数据后就可还原一幅完整的图像。上位机在拼图时裁剪掉一部分数据,最终合成1 024×1 024 Byte的图像,如图3所示。



5 结束语
   
双口RAM驱动程序是整个存储系统的核心模块,它对存储数据的上传速度和准确提取图像信息有重要的影响,通过对MPC8313E寄存器的配置和读写以及中断函数对硬件的控制来实现对RAM的读写,利用MPC8313E现有的接口和传输算法,最终实现图像信息的高速上传,验证得出上传数据最快可达104 Mbit·s-1,满足设计要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

业内消息,此前有消息称华为将发布一款擎云 W515x “PC 新品”,该机将首发 8 核 12 线程麒麟 9000C 处理器,目前相关产品具体规格信息已经现身华为官网。

关键字: 华为 PC 麒麟9000C 处理器

Bourns® TLVR1005T 和 TLVR1105T 系列采用双绕组结构和低感值设计,可提供快速瞬态响应,并可依据 CPU、FPGA 和 ASIC 负载要求进行延展

关键字: 数据驱动 电感器 FPGA

上海2024年5月15日 /美通社/ -- 由生成式人工智能(AI)驱动的临床阶段生物医药科技公司英矽智能宣布,与复星医药(600196.SH;02196.HK)合作开发的潜在"全球首创"候选药物IS...

关键字: ISM BSP PC 人工智能

对于大规模数据处理,最佳性能不仅取决于原始计算能力,还取决于高存储器带宽。 因此,全新 AMD Alveo™ V80 计算加速卡专为具有大型数据集的内存受限型应用而设计,这些应用需要 FPGA 硬件灵活应变能力以实现工作...

关键字: 自适应计算 FPGA

8b10b编码作为数字通信领域中的一项重要线路编码方案,其核心理念在于将每8位数据映射到10位编码中。这个映射过程严格按照特定规则进行,旨在保证编码中的电平转换足够,以维持信号的直流平衡,并提供足够的时钟信息,使接收端能...

关键字: FPGA 8b/10b编码 IC设计

在FPGA和IC设计领域,经常会面临一个挑战:多个端口同时竞争一个端口的数据。在这种情况下,采用RR调度策略可能是一种解决方案。

关键字: FPGA 嵌入式系统 IC设计

2024 年5月13日 – 专注于推动行业创新的知名新品引入 (NPI) 代理商™贸泽电子 (Mouser Electronics) 是英特尔®产品的全球授权代理商。英特尔®宣布正式成立Altera™,作为其独立运营的全...

关键字: FPGA 人工智能 以太网

加利福尼亚州圣克拉拉市—2024年4月30日―AMD(NASDAQ: AMD)今日公布2024年第一季度营业额达55亿美元,毛利率为47%,经营收入3600万美元,净收入1.23亿美元,摊薄后每股收益为0.07美元。基于...

关键字: 嵌入式 PC 人工智能

2024年4月18日,国民技术第四代可信计算芯片NS350 v32/v33系列产品正式发布并开始量产供货。NS350 v32/v33是一款高安全、高性能、超值可信密码模块2.0 (TCM 2.0)安全芯片,适用于PC、服...

关键字: PC 服务器平台 嵌入式系统
关闭
关闭