基于 RK3399+fpga 的 VME 总线控制器设计(一)总体设计

2024-03-06 10:10

本文主要是介绍基于 RK3399+fpga 的 VME 总线控制器设计(一)总体设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2.1 需求分析及技术指标
2.1.1 需求分析
VME 总线控制器需要实现数据传输、中断处理、测量显示等功能。同时还需
要具有操作系统、底层驱动程序以及功能接口等,以方便用户进行上层应用软件开
发及使用。
本课题需要实现 VME 控制器的国产化开发,因此需要选择一款国产处理器作
为主控单元。 VME 控制器需要有视频接口、 USB 接口、网口等用来接外设,还需
要有 PCI PCIE 或者其他总线接口和 FPGA 进行通信。
国产 CPU 厂家主要有飞腾、龙芯、申威和瑞芯微等。飞腾 FT-2000A/2 采用
ARMv8 架构,但是其技术支持和开源资料较少,并且相关的开发板很少。龙芯
2K1000 处理器具有 PCIE GMAC USB 等接口,符合控制器接口需求,但是其架
构兼容 MIPS ,并且朝着龙芯自主指令架构 LoongArch 的方向发展,不如 ARM
构流行,并且对 linux 生态兼容性不够好,设计难度可能会比较大。申威 421 处理
器采用 Alpha 架构,支持 PCIE 接口,但是缺少其他通用外设接口,并且技术资料
较少。瑞芯微处理器采用 ARM 架构,功耗低且性能良好,接口丰富,开发资料完
善,在市场上比较流行,满足控制器需求。
因此经过综合考虑,本课题选择使用瑞芯微 RK3399 处理器。 RK3399 使用大
小核架构,即两个 Cortex-A72 大核和四个 Cortex-A53 小核。在性能上, RK3399
频最高为 1.8GHz DDR 接口 DDR3/LPDDR3 最高工作频率支持到 800MHz ,满足
嵌入式控制器的需求;在功能接口上, RK3399 具有以太网控制器、 PCIE 控制器、
USB 控制器、 HDMI 控制器等,为控制器板卡的设计提供了极大的方便。
在软件方面,本课题使用 Linux 操作系统作为控制器的操作系统。 Linux 系统
自诞生到现在,得益于全世界开发者的不断努力,其系统功能越来越强大,稳定性
等方面更加完善。 Linux 系统具有开源免费、稳定性好的优点,得到许多领域的公
司和工作人员的青睐和使用。因此使用 Linux 操作系统完全满足本课题的需求。
2.1.2 技术指标
根据 VME 总线控制器的实际使用环境和设计需求,提出 VME 控制器的技术
指标如下:
1 )遵循 VME 总线规范,尺寸为标准 3U ,双槽宽度;
2 CPU :使用 ARM V8 架构处理器,主频最高 1.8GHz
3 )内存: 2GB 板级 LPDDR3 内存;
4 )外存: 16GB 板级 eMMC FLASH
5 )网口:一路千兆以太网;
6 )串口: RS232 串口一个;
7 USB :两个 USB2.0 接口;
8 )视频: HDMI 接口。
2.2 硬件总体方案
根据本课题的技术指标和需求,基于 RK3399 处理器的 VME 总线控制器硬件
总体框图如图 2-1 所示。整个嵌入式控制器以 RK3399 处理器为核心,同时有搭配
处理器的外围电路和接口电路。

 

硬件总体包括 RK3399 处理器最小系统(信迈RK3399核心板)、控制器接口、 VME 总线接口三个部 分。RK3399 最小系统主要包括电源、时钟、复位以及存储电路。控制器接口主要
有网口、串口、 USB 接口以及 HDMI 接口。 RK3399 处理器通过 PCIE 总线连接外
部设备 FPGA ,在 FPGA 内部实现 PCIE 总线到 VME 总线的接口逻辑转换。
其中, FPGA 选用紫光同创的 logos2 系列的 PG2L100H,该芯片具有丰富的逻
辑资源,并且带有 HSST 收发器,可以支持 PCIE GEN1/GEN2 ,并且支持在线调试
工具,非常符合本课题的设计需求。
2.2.1 处理器最小系统方案
RK3399 处理器最小系统由处理器、电源、时钟、复位和存储电路组成,是处
理器正常工作的最小单元。以下主要介绍 RK3399 最小系统的电源设计方案、时钟
和复位设计方案以及存储器设计方案。
1 )电源设计方案
为了满足低功耗的要求, RK3399 中设计了一个电源管理单元 PMU 来控制电
源资源, PMU 用于管理整个芯片的电源。
RK3399 包括 6 个电压域,同一模块的上电顺序为低压先上、高压后上,并且
遵循相同的电压一起上电原则,不同模块之间没有上电顺序的要求。
为使电源设计更加可靠,本次电源设计采用电压管理芯片 RK808-D 和几个分
立的电源芯片相结合的方法。使用瑞芯微推出的集成电源芯片 RK808-D ,它能很
好的支持 RK3399 处理器,同时使用多块分立的 DC-DC 电压转换器,共同完成整
个系统的电源设计。 RK808-D 是一颗专为便携式系统设计的,高度集成的电源管
理芯片。该芯片包括 4 个开关电源通道( DC/DC Switch Regulator ), 8 个高性能线
性稳压源( LDO ), 2 个低导通内阻的开关( Switch )以及一个实时时钟( RTC )。
该芯片相对于传统的系统电源设计,提高了性能,降低了外围元件数量和尺寸,成
本更低。
2 )时钟和复位设计方案
时钟电路主要包括 24MHz 的系统时钟和 32.768KHz RTC 实时时钟。
RK3399
在正常工作的情况下使用 24M 系统时钟,在待机时会使用 32.768KHz 的时钟,这
样可以降低系统功耗。
RTC 时钟能够为控制器系统提供准确的时间基准。使用无源晶振先接到
RK808-D 内部集成的 RTC ,然后输出给 RK3399
复位电路的功能是使系统上电之后从确定的状态运行,并且在系统运行出错
常时,通过手动复位强制系统回到正常工作状态。 RK3399 内部集成 POR(Power on
Reset) 电路,低电平有效,为保证芯片稳定和正常工作,所需的最短复位时间为 100
24MHz 主时钟周期,即至少 4us 以上。 RK808-D 电源芯片在上电完成之后,会
输出一个复位信号,可以将此复位信号作为 RK3399 的系统复位信号。
3 )存储器设计方案
RK3399 的存储器包括内存 DDR 和外存 flash ,内存是 CPU 可以直接访问的
空间, DDR 内存掉电后数据会丢失,优点是读写速度快,适合程序运行。外部存
储用来存储程序代码和重要数据。 RK3399 处理器的 DDR 控制器接口支持 DDR3
DDR3L LPDDR3 LPDDR4 SDRAM 标准接口, DDR3 LPDDR3 最高工作频率
支持到 800MHz 。支持两个通道,每个通道数据宽度 16 位或 32 位。综合考虑成本
和性能后,本设计采用两片 32 LPDDR3 内存颗粒作为控制器的板级内存,满足
控制器的设计需求。
RK3399 处理器的系统启动引导顺序优先级从高到低依次为: SPI FALSH
eMMC FLASH (内嵌式多媒体存储卡)、 SDMMC CARD 。其中, SPI Flash 启动主
要应用在 Netbook 中。 eMMC 是一种嵌入式非易失性存储器系统,由 Nand flash
Nand flash 控制器组成,以 BGA 方式封装在一个芯片上。由于 SD 卡启动方式相
对比较复杂,故本次设计使用 eMMC FLASH 引导系统启动。
2.2.2 VME 总线接口方案
VME 总线接口主要有两种设计方案:一种是使用现成的 VME 接口芯片;二
是采用 FPGA 逻辑设计并且配合驱动电路来实现。
常用的 VME 接口芯片有 VIC64 SCV64 等,使用 VME 接口芯片需要通过
接口转接与 RK3399 处理器连接,并且会被专用芯片的接口所限制,设计上不够灵
活且可移植性较差。
使用 FPGA 设计 VME 接口逻辑需要对 VME 总线规范和时序等比较熟悉,设
计起来比较灵活,可以根据自身的需求进行相应的设计,修改起来也比较方便。而
且采用 verilog 逻辑语言实现 VME 接口,不会受制于国外的专用芯片,逻辑移植
也比较方便。本设计采用第二种方案,使用国产紫光同创的 FPGA 来设计 VME
口逻辑。
VME 接口逻辑主要包括读写控制逻辑、总线定时逻辑、中断管理逻辑和系统
时钟驱动逻辑等。由于 RK3399 处理器内部没有 VME 总线控制器,所以将 RK3399
上的 PCIE 接口连接到 FPGA 上, RK3399 通过 PCIE 总线对 FPGA 设备进行控制,
从而实现对 VME 总线的控制。由于 FPGA IO 电压为 3.3V ,而 VME 总线信号
电平为 5V ,因而还需要通过驱动电路进行电平转换。
2.2.3 控制器接口方案
VME 总线控制器需要提供 HDMI 视频、以太网、 USB 、串口等外部接口。
RK3399 内部集成多种外设控制器,如 UART 控制器, GMAC 控制器、 HDMI 控制
器、 USB 控制器和 PCIE 控制器等,使用这些控制器极大的方便了接口设计。控制
器外设接口方案如图 2-2
RK3399 芯片内有一个 GMAC 控制器,用来连接芯片外部的以太网 PHY ,实
现网络传输功能。 RK3399 处理器的 GMAC 支持 RMII RGMII 接口,其中, RMII
接口支持 10/100Mbps 的速率传输, RGMII 接口 10/100/1000Mbps 速率传输。
考虑到设计的方便性以及国产化的需求,本设计采用裕太微电子的以太网
PHY 芯片 YT8511H ,裕太微电子定位于一家具有完全自主知识产权的以太网 PHY
芯片供应商,主要服务有线通信领域包括数通、安防、车载、工业和特种行业等,
产品主要应用于汽车、消费、工业等行业的以太网 PHY 芯片。 YT8511H 是一款三
10/100/1000BASE-T 千兆以太网物理层收发器( PHY ),完全符合 RGMII 接口
规范,从而与标准的以太网媒体访问控制器( MAC )和交换控制器兼容,它使用
标准的数字 CMOS 工艺制造,非常适合广泛的工业应用。
RK3399 的视频接口主要有 eDP MIPI HDMI 三种。 eDP 接口是一种基于
DisplayPort 架构和协议的内置视频接口,主要适用于平板电脑和笔记本等; HDMI
是一种外置视频接口,可以同时传输视频和音频,常用于外接显示器, HDMI 接口
体积较小、传输速度快; MIPI DSI 接口主要用于连接 MIPI 显示屏。
考虑到 HDMI 接口使用较为广泛,而且设计起来比较简单,本设计使用 HDMI
视频接口。 RK3399 HDMI 接口兼容 HDMI 1.4a 2.0a 协议,由一个 HMDI
射控制器和一个发射器 PHY 组成。需要注意的是, RK3399 I2C 总线不支持 5V
电平,因此需要通过电平转换电路将 I2C 总线的电平转为 5V ,再接到 HDMI 连接
器上。
2.3 软件总体方案
软件程序是整个嵌入式控制器的灵魂,它在整个嵌入式系统中发挥着极其重
要的作用。 VME 控制器的软件系统主要包括引导程序移植、嵌入式 Linux 内核裁
剪和驱动程序设计三大部分。软件方案的设计框图见下图 2-3。
嵌入式 Linux 操作系统处于整个软件系统的底层,它可以屏蔽底层硬件的差
异,为应用程序的开发提供统一且可靠的平台。
引导程序 Bootloader 是系统上电之后运行的第一段程序,操作系统运行之前,
需要通过引导程序进行引导。引导程序主要完成对 CPU 以及目标电路板的初始化,
包括串口初始化、 DDR 初始化、系统时钟及电源初始化等等。完成上述的初始化
之后,将外部 eMMC Flash 中的程序代码搬运到 DDR 内存中,之后即可以启动操
作系统的运行。
驱动程序主要实现对具体设备的控制,涉及到对底层寄存器的读写等操作。应
用程序一般不能直接对硬件设备进行操作,需要通过驱动程序提供的函数接口来
访问设备。所以,驱动程序的作用就是向应用程序提供合适的编程接口,为应用程
序屏蔽底层的具体硬件操作 [33]
2.3.1 引导程序和操作系统方案
嵌入式控制器的系统移植主要包括引导程序移植和 Linux 系统移植两个部分。
引导程序移植是为 Linux 系统移植做铺垫准备,两者不可缺一。接下来介绍引导程
序和 Linux 系统移植的方案。
针对不同的 CPU 架构和不同的操作系统,有多种类型的引导程序。针对 ARM
架构的引导程序有 vivi ARMboot 等,针对 PowerPC 架构的有 ppcboot ,还有支持
多种架构的 U-Boot 。还有专门启动 WinCE 系统的 eboot 、基于 eCos 系统的 Redboot
等等。
U-Boot 引导程序是对大众开源的,它支持 ARM X86 MIPS RISC-V 等架
构的处理器,支持 Linux VxWorks Android 等多种操作系统。 U-Boot 使用非常
广泛,并且它非常适用于 ARM 处理器 [34] ,所以本次设计使用通用的 U-Boot 作为
引导程序,从而减小开发难度。
在嵌入式领域中比较流行的操作系统主要有 winCE Linux VxWorks 。其中,
VxWorks 系统具有较高的可靠性和实时性,主要用于军事、航空、航天、飞机导航
等领域 [35] [36] winCE Windows CE ,是微软开发的基于掌上电脑等设备的操作系
统。由于本课题对实时性要求不高,考虑到 Linux 系统免费开源且功能强大,所以
选择 Linux 系统进行开发。
Linux 系统具有诸多优势。 Linux 系统内核精简,并且稳定性高;由于源码是
开放的,所以得到许多开发者的支持; Linux 系统的移植性较好,并且提供图形化
配置工具; Linux 支持多种 CPU 结构,几乎所有的主流芯片都支持 [37]
Linux 系统移植主要包括内核移植和根文件系统制作。内核移植需要根据硬件
设备信息修改设备树,并根据实际需求对驱动程序进行删减和增加,删减掉不需要
的驱动,提高启动速度 [38]
2.3.2 设备驱动程序方案
Linux 系统的逻辑结构可划分为四层,包括应用层、操作系统层、驱动层和硬
件层。其中,驱动程序属于驱动层,是应用程序、操作系统和底层硬件之间的桥梁。
驱动程序为上层程序屏蔽掉不同设备的差异性,使得应用程序可以通过相应的函
数接口来控制硬件设备 [39]
此外, Linux 系统将程序的运行分为内核态和用户态,或者叫内核空间和用户
空间。内核态的程序权限较高,系统和驱动运行在内核空间,可以控制内存映射、
访问外设空间、控制中断等。用户态为应用程序的活动空间,运行在用户态的程序
权限相对较低,只能执行应用程序。
VME 控制器需要提供一些基本的功能接口,从而实现与外部设备之间的交互。
一些设计简单且比较通用的外设如 USB UART HDMI 等接口已经有通用的驱动
程序不用修改即可使用。但是特定的设备如 PCIE 、以太网设备需要自己开发对应
的驱动程序。
本课题需要自行开发 PCIE 设备驱动程序,以完成对 PCIE 设备的访问和控制。
PCIE 设备驱动首先需要注册设备驱动,并根据设备 ID 等信息进行匹配,之后进
行初始化等工作,申请 IO 和内存资源并完成 BAR 地址映射。之后利用
file_operations 结构体中的读写操作等函数,实现对 PCIE 设备的访问和控制。
PCIE 设备驱动需要实现对 PCIE 设备的 BAR0 BAR1 存储空间的读写访问,
进而实现对 VME 总线的读写操作。 PCIE 驱动还需要使能 PCIE MSI 中断,并将接
收到的中断以信号的方式传递到应用程序。

 信迈提供RK3399+FPGA解决方案。

这篇关于基于 RK3399+fpga 的 VME 总线控制器设计(一)总体设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779713

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

分布式文件系统设计

分布式文件系统是分布式领域的一个基础应用,其中最著名的毫无疑问是 HDFS/GFS。如今该领域已经趋向于成熟,但了解它的设计要点和思想,对我们将来面临类似场景 / 问题时,具有借鉴意义。并且,分布式文件系统并非只有 HDFS/GFS 这一种形态,在它之外,还有其他形态各异、各有千秋的产品形态,对它们的了解,也对扩展我们的视野有所俾益。本文试图分析和思考,在分布式文件系统领域,我们要解决哪些问题、有

(入门篇)JavaScript 网页设计案例浅析-简单的交互式图片轮播

网页设计已经成为了每个前端开发者的必备技能,而 JavaScript 作为前端三大基础之一,更是为网页赋予了互动性和动态效果。本篇文章将通过一个简单的 JavaScript 案例,带你了解网页设计中的一些常见技巧和技术原理。今天就说一说一个常见的图片轮播效果。相信大家在各类电商网站、个人博客或者展示页面中,都看到过这种轮播图。它的核心功能是展示多张图片,并且用户可以通过点击按钮,左右切换图片。