基于FPGA与ARM进行遥测数据网络转发的流程剖析

2020-07-29来源: elecfans关键字:FPGA  ARM  遥测数据网络转发

以太网接口通信速度快,传输可靠,使用和配置方便,对于20 Mb/s以下的码速率,100 Mb/s的网卡可以进行不丢包转发,采用TCP包格式还可使设备小型化,便于数据的转发,因此有必要扩展设备的以太网功能。


1 整体模块设计

1.1 系统设计

系统设计框图如图1所示。其中,采编器或接收机解调输出的PCM信号及时钟输入到FPGA中进行帧同步,IRIG—B码信息也送到FPGA中进行解调,得到时间信息。数据与时间一起存入SRAM乒乓缓冲区中,达到一定大小后,FPGA向ARM处理器发器中断,ARM中运行的Linux系统,将数据取走,进行TCP/IP打包,发送给接收计算机。

基于FPGA与ARM进行遥测数据网络转发的流程剖析

在设备开始工作前,需要在计算机端进行参数设置,计算机TCP/IP包将参数发送给ARM处理器,由ARM处理器转发给FPGA。帧同步器的设计中,码速率为100b/s~10Mb/s,帧长为4~4 096Word,帧同步码组为4~32,ARM网卡为100Mb/s。


1.2 硬件实现

PCB采用6层结构,相邻布线层,水平垂直交叉,电路层与电源层单独分开,提供良好的电磁兼容特性。


1.2.1 FPGA

FPGA选择EP1C12,为实现乒乓缓冲结构,采用SRAM为IS61LV25616。输入信号使用SMA线缆连接,在传输过程中会引入衰减,信号输入输出易出现阻抗不匹配的情况,选用AD8556构成射随器,对输入信号进行匹配,同时也增大模拟源的输出能力。


1.2.2 ARM

在此采用S3C2440,内核为ARM920T,最高频率为400 MHz,带MMU支持操作系统。内存采用2×32 MB的SDRAM,存储采用128 MB NAND FLASH,网卡采用DM9000A。


1.2.3 ARM与FPGA的接口连接

这里采用总线接口,将FPGA作为一个存储设备挂在ARM的存储器总线上,如图2所示。

基于FPGA与ARM进行遥测数据网络转发的流程剖析

FPGA在ARM中起始地址为0x18000000,以4 B对齐,占用0x80个地址,地址范围为0x18000000~Ox1800007C,中断为EINT0。


在FPGA内部采用读/写指针来模拟FIFO,用一个地址来读取FPGA数据,其余地址用于配置帧同步器与模拟源的参数。


2 帧同步与B码解调

FPGA完成PCM数据的帧同步和解调B码,写入到乒乓SRAM缓冲区中,实现如图3所示。

基于FPGA与ARM进行遥测数据网络转发的流程剖析

2.1 帧同步模块

帧同步器根据帧同步码组的相关性和周期性,经过相关运算将同步码从PCM串行流中识别出来,原理框图如图4所示。

基于FPGA与ARM进行遥测数据网络转发的流程剖析

PCM数据按时钟进行串/并转换,与本地帧同步码进行同或运算后再与上屏蔽位,由全加网络将相关运算结果按位相加统计结果中1的个数,大于门限值则表示可能接收到了帧同步码。


为避免虚警和漏检,使帧同步器稳定可靠工作,采用搜索、校核、锁定三态逻辑。

系统开始时处于搜索态,符合相关器输出,由搜索态转入校核态。在预期检测窗口内没有帧码,从校核返回到搜索态。连续通过校核数α,进入锁定态。为避免帧同步码的漏检,连续漏检超过保护帧数β,帧同步才返回搜索态,否则保持在锁定态,帧脉冲由本地产生。


2.2 IRIG—B码解调

IRIG时间序列码是一种串行码,共有3种码元,如图5所示。

基于FPGA与ARM进行遥测数据网络转发的流程剖析

P码元是位置码元,连续2个P码为一帧的开始,第1个P码元定义为P0,第2个P码元为秒脉冲pps,上升沿为该秒的准时刻,时间信息以BCD码依次分布在其后的码元中。解调时先进行pps的提取,再进行秒、分、时、天的信息提取,其流程如图6所示。

基于FPGA与ARM进行遥测数据网络转发的流程剖析

时钟频率为1 MHz,用计数器对输入信号的脉宽进行计数。8 ms,5 ms,2 ms脉宽计数为8 000,5 000,2 000。输入B码的脉宽会混有干扰,晶振时钟也存在一定的误差,计数器的计时判别应浮动一个范围,设置门限为脉宽的85%~115%,当满足一定范围的数值时,分别输出P码,0码,1码信号。


FPGA中的时码产生“天:时:分:秒:毫秒:微秒”信息。解调出B码时,FPGA更新内部时间,B码中不含毫秒与微秒信息,由FPGA根据秒脉冲信息的准时刻来生成。


3 FPGA驱动程序开发

在Linux中,所有的硬件设备都像常规文件一样进行打开、关闭和读/写。把FPGA当作字符设备进行设计,驱动由设备加载与卸载,以及文件操作file_operation结构体中成员函数组成。


3.1 加载与卸栽设备驱动

FPGA设备驱动程序初始化流程为动态获得主设备号、字符设备注册和申请中断;卸载流程为注销设备,释放设备编号。


定义一个设备结构体来表示FPGA,如下:

基于FPGA与ARM进行遥测数据网络转发的流程剖析

当用户程序读FPGA设备时,数据还未准备好,此时驱动程序应该阻塞该进程,将其置入睡眠状态直到条件满足。此时需要初始化一个等待队列头,对读进程的休眠和唤醒时使用:

在卸载函数中,删除一个cdev,完成字符设备的注销,然后释放设备编号:

3.2 文件接口操作

Linux为所有的设备文件都提供了统一的操作函数,FPGA设备驱动。file_operaTIons包含打开函fpga_open、读函数fpga_read、设置参数函数fpga_ioctl和关闭设备函数fpga_release。


3.2.1 打开与关闭FPGA设备

在打开设备与关闭设备时会调用open函数与release函数,在open函数中,要对设备进行I/O内存资源映射及中断申请。


设备驱动程序中,需通过内存管理单元MMU将设备的虚拟地址映射到物理地址。根据FPGA在S3C2440中的物理地址,定义如下宏:

基于FPGA与ARM进行遥测数据网络转发的流程剖析

使用ioremap()对FPGA的I/O内存资源进行映射,把物理内存地址映射为一个内核指针:

基于FPGA与ARM进行遥测数据网络转发的流程剖析

数据交换采用中断,需先设置硬件中断方式,然后向系统注册中断函数,实现如下:

基于FPGA与ARM进行遥测数据网络转发的流程剖析

FPGA连接在ARM的EINT0上,isr_fpga为中断处理函数指针。当关闭FPGA设备时,需释放I/O内存,释放中断:


3.2.2 驱动程序控制接口Ioctl

Ioctl用来设置FPGA中帧同步器和模拟源的参数,部分设置命令如表1所示。

基于FPGA与ARM进行遥测数据网络转发的流程剖析

在此,采用统一的命令码方式,包含幻数、序数、传输方向、数据长度,使用宏_IO(),_IOR(),_IOW()和IOWR()辅助生成,如命令0设置如下:

基于FPGA与ARM进行遥测数据网络转发的流程剖析

在Ioctl中,采用switeh(cmd)来实现对FPGA参数的设置及FPGA状态的读取。


3.2.3 中断函数及读函数

当FPGA产生中断时,根据缓冲区的大小,中断函数循环对FPGA映射后的地址读取数据。ARM与FPGA接口为16位,使用inw读取,数据存放在驱动程序的缓冲区中:

基于FPGA与ARM进行遥测数据网络转发的流程剖析

应用程序读取数据时,调用read函数,参数buffer为用户空间缓冲区的指针,利用copy_to_user函数将数据从内核空间拷贝到用户空间,当设备中暂时没有数据时,读进程应当被休眠:

flag为一个标志位,当flag被中断函数设置为1时表示设备中有数据,此时读进程可被换醒。


3.2.4 用户程序及测试

设备驱动实现后,需编写相应的用户程序来进行测试驱动程序和实现数据的网络转发。在用户程序中,读/写FPGA设备使用与普通文件一样的操作函数。移植Linux时配置好网卡的地址,然后使用Socket编程实现数据的TCP/IP转发,用遥测软件接收到的数据测试如图7所示。

基于FPGA与ARM进行遥测数据网络转发的流程剖析

通过测试可以看到,同步码FDB18450被正确识别,IRIG-B解码为当前时间。


4 结语

在此,基于FPGA与ARM进行遥测数据的帧同步遥测数据的网络转发,充分地利用了FPGA与ARM各自的特点,它可使FPGA+ARM在数据接收处理中得到广泛应用。

关键字:FPGA  ARM  遥测数据网络转发 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic504728.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于ARM的rfid如何设计成嵌入式的
下一篇:ARM架构常用术语解析

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

莱迪思全新CrossLinkPlus FPGA问市,内含片上闪存,超快启动
不同的显示要求。 2016年,随着CrossLinkTM系列FPGA的推出,莱迪思半导体成为这一领域的领先供应商。这是一款可编程的视频桥接器件,支持连接移动图像传感器和显示屏的各类协议和接口。为了满足嵌入式视频市场不断增长的需求,莱迪思又推出了CrossLink的增强版本——CrossLinkPlusTM。CrossLinkPlus新增了2Mbit的嵌入式闪存作为配置存储器,满足用户对显示屏无缝启动的需求。有了片上闪存,CrossLinkPlus能够在10ms内瞬时启动,而人脑一般无法在15ms内感知图像,因此不会产生伪像干扰用户体验。片上闪存可支持现场重新编程。  图1:莱迪思半导体
发表于 2020-07-21
莱迪思全新CrossLinkPlus <font color='red'>FPGA</font>问市,内含片上闪存,超快启动
Efinix推出全新一代Trion Titanium系列FPGA
Efinix日前宣布推出Trion Titanium系列FPGA,受Efinix第一代Trion FPGA基础量子结构的启发,量子(Quantum)计算结构在其可交换逻辑和路由(XLR)单元中增加了额外的计算和路由能力。Trion Titanium FPGA的特点是增强的计算能力,16nm工艺可提供多达3倍时钟频率提升。据该公司称,这使得Efinix的FPGA成为计算加速应用的理想选择,同时路由灵活性提高了产品计算效率。随着16nm工艺节点和量子计算结构,达到2倍效率的提高,Titanium系列FPGA可将封装尺寸缩小至四分之一。据该公司称,16nm节点的低功耗意味着Titanium系列功耗相当于Trion器件的三分之一,并解决
发表于 2020-07-17
易灵思 Trion® Titanium FPGA 系列问市, 实现3 倍性能提升
Trion Titanium FPGA 是基于16纳米工艺节点,并采用易灵思的 “Quantum™ 计算架构”。“Quantum 计算架构”是受到了易灵思第一代 Trion FPGA 之基础“Quantum 架构”的启发,在其可交换逻辑和路由的“随变单元” (XLR) 中增添了额外的计算和路由功能。增强的计算能力,加上利用16纳米工艺实现的 3 倍性能(Fmax)的提升,使得 Trion Titanium FPGA 非常适合计算加速的应用,而路由灵活性的增加则提供了前所未有的资源利用率。 凭借16纳米工艺节点
发表于 2020-07-16
FPGA作为下一代汽车电子设计的灵活及低成本解决方案需要考虑的问题
其技术极限,而且随着汽车电子的复杂性呈指数级增长,其可靠性也引起人们的关注。为了解决这些问题,许多设计人员开始转向 FPGA,将其作为下一代汽车电子设计的灵活及低成本解决方案。为了确保现代汽车中各种系统的功能运转正常,必须对元件提出可靠性数据的要求。虽然人们已掌握元件可靠性的大部分要素,但是在选择可编程逻辑器件如 FPGA 的过程中,还得考虑一些特殊的问题。了解宇宙射线的破坏作用具体点说,技术决策人必须预见到影响可编程逻辑系统的故障源。来自太空 (宇宙射线) 的中子轰击,这听起来有点像电影《星际旅行》中的某个情节,但事实上中子导致的错误对许多类型的电子设备都有危害。中子导致的固件错误 (firm error) 已经从纯粹的麻烦事
发表于 2020-07-08
将<font color='red'>FPGA</font>作为下一代汽车电子设计的灵活及低成本解决方案需要考虑的问题
莱迪思推出第二代FD-SOI技术的Certus-NX
莱迪思半导体公司日前宣布推出全新Lattice Certus-NX系列FPGA。该系列器件在通用FPGA市场上拥有领先的IO密度,每平方毫米的IO密度最高可达同类FPGA竞品的两倍。Certus-NX FPGA拥有卓越的低功耗、小尺寸、高可靠性和瞬时启动等特性,支持高速PCI Express(PCIe)和千兆以太网接口,可实现数据协同处理、信号桥接和系统控制。Certus-NX FPGA面向从自动化工业设备中的数据处理到通信基础设施中的系统管理等一系列应用。Lattice Nexus?是业界首个基于28 nm FD-SOI工艺的低功耗FPGA技术平台,而Certus-NX器件是在该平台上开发的第二款FPGA系列产品。Certus
发表于 2020-07-01
莱迪思推出第二代FD-SOI技术的Certus-NX
低功耗、小尺寸、高可靠,Lattice Certus™-NX系列问市
莱迪思半导体公司(NASDAQ:LSCC),低功耗可编程器件的供应商宣布推出全新Lattice Certus™-NX系列FPGA。该系列器件在通用FPGA市场上拥有领先的IO密度,每平方毫米的IO密度最高可达同类FPGA竞品的两倍。Certus-NX FPGA拥有卓越的低功耗、小尺寸、高可靠性和瞬时启动等特性,支持高速PCI Express(PCIe)和千兆以太网接口,可实现数据协同处理、信号桥接和系统控制。Certus-NX FPGA面向从自动化工业设备中的数据处理到通信基础设施中的系统管理等一系列应用。Lattice Nexus™是业界首个基于28 nm FD-SOI工艺的低功耗FPGA技术平台,而Certus-NX器件
发表于 2020-06-29
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved