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

这篇具有很好参考价值的文章主要介绍了基于 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+fpga 的 VME 总线控制器设计(一)总体设计,瑞芯微,RK+FPGA,fpga开发,RK3399+FPGA,VME

 

硬件总体包括 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 速率传输。
基于 RK3399+fpga 的 VME 总线控制器设计(一)总体设计,瑞芯微,RK+FPGA,fpga开发,RK3399+FPGA,VME
考虑到设计的方便性以及国产化的需求,本设计采用裕太微电子的以太网
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。 基于 RK3399+fpga 的 VME 总线控制器设计(一)总体设计,瑞芯微,RK+FPGA,fpga开发,RK3399+FPGA,VME
嵌入式 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解决方案。文章来源地址https://www.toymoban.com/news/detail-626894.html

到了这里,关于基于 RK3399+fpga 的 VME 总线控制器设计(一)总体设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于 STM32+FPGA 的通用工业控制器设计(一)系统方案设计

    本章首先介绍了现有 PLC 系统的概况,然后提出了本文设计的通用工业控制器的 整体方案架构,分析了硬件和软件上需要实现的功能,最后对各部分功能进行分析并提 出具体的实现方案。 2.1 PLC 系统简介 可编程逻辑控制器( Programmable Logic Controller , PLC )是以微处理器为基

    2024年02月15日
    浏览(66)
  • 基于ARM+FPGA的驱控一体机器人控制器设计

    目前市场上工业机器人,数控机床等多轴运动控制系统普遍采用运动控制器加 伺服驱动器的分布式控制方式。在这种控制方式中,控制器一方面完成人机交互,另 一方面进行 NC 代码的解释执行,插补运算,继而将计算出来的位置指令通过轴组模 块下发给各个伺服驱动器。下

    2024年02月14日
    浏览(51)
  • 基于FPGA和Verilog实现的9层电梯控制器仿真设计

    资源下载地址:https://download.csdn.net/download/sheziqiong/85628810 资源下载地址:https://download.csdn.net/download/sheziqiong/85628810 电梯最少可以往返于0—9层楼。 乘客要去的楼层数A可手动输入并显示,按取消键可清除本次输入。 可自动显示电梯运行的楼层数B 当AB时,电梯上升; 当AB时,

    2024年02月02日
    浏览(69)
  • 基于EDA的电烤箱控制器设计Verilog代码Quartus 新起点FPGA开发板

    名称:基于EDA的电烤箱控制器设计Verilog代码Quartus  新起点FPGA开发板(文末获取) 软件:Quartus 语言:Verilog 代码功能: 基于EDA的电烤箱控制器设计 主要研究内容 设计一个电烤箱控制器电路,要求具有三档加热功能,分别表示烧烤加热为低火、中火、高火。具有复位开关、启动

    2024年02月01日
    浏览(45)
  • 【毕业设计】42基于FPGA的LCD1602控制器设计仿真与实现(原理图+仿真+源代码+论文)

    包含此题目毕业设计全套资料: 原理图工程文件 仿真工程文件 源代码 仿真截图 低重复率论文,字数:19964 基于altera 公司cyclone4代芯片的fpga以及quartusII软件设计一款屏幕显示系统,显示装置可以选择点阵或字符型液晶,最终实现滚动显示、可控制滚动方向、暂停、清屏等功能

    2024年02月04日
    浏览(94)
  • 项目三 电梯控制器设计(FPGA综合应用设计)

    (一个很简陋的电梯控制器设计,但是应该可以过关了吧?😶‍🌫️) 通过实验,巩固有限状态机设计方法,并设计实现一个电梯控制器。 利用 BASYS 开发板资源设计一个 5 层楼的电梯控制器系统,并能在开发板上 模拟电梯运行状态,具体要求如下: 利用开发板的 5 个按键作

    2024年02月03日
    浏览(47)
  • 基于FPGA 的SDRAM控制器

    4X16X4=256(Mbit),注意不是MByte sdram包含两个部分:sdram_ctrl、fifo_ctrl。 sdram_ctrl:其顶层为SDRAM的控制模块内部实例化了5个模块,有初始化、自刷新、写和读模块,还有一个仲裁模块对这四个不同操作进行分配; fifo_ctrl:其顶层为SDRAM的数据输入输出,内部实例化了两个用于连

    2024年02月08日
    浏览(64)
  • 【进口控制器替代】基于Zynq-7020 FPGA的NI 8槽CompactRIO控制器

    667 MHz双核CPU,512 MB DRAM,1 GB存储容量,Zynq-7020 FPGA,更宽工作温度范围,8槽CompactRIO控制器 cRIO-9068是一款坚固耐用的无风扇嵌入式控制器,可用于高级控制和监测应用。这款软件设计控制器搭载FPGA、运行NI Linux Real-Time操作系统的实时处理器以及嵌入式用户界面功能。cRIO-906

    2024年01月25日
    浏览(62)
  • FPGA实验四:交通灯控制器设计

    目录 一、实验目的 二、设计要求 三、实验代码 1.design source文件代码

    2024年02月13日
    浏览(52)
  • FPGA智能交通灯控制器系统系统设计

    把由5OM的有源晶振产生的现场可编程逻辑器件FPGA 的系统时钟输入到分频模块,经分频模块分频产生频率为1Hz的时钟脉冲,作为控制定时模块、控制模块、紧急模块、计数模块的时钟信号,然后再由定时模块来控制紧急模块和控制模块,按照交通管理规则控制交通工作状态的

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包