当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于FPGA与ARM的遥测数据网络化采集

摘要:现有的遥测接收机为PCI接口,需安装在工控机上使用,为实现设备小型化、便携化,设计实现了小型网络接口遥测解调模块,可配合带有网口的计算机使用。采用FPGA进行遥测数据的帧同步与IRIG—B时码解调,将接收到的遥测数据添加时码后发送给ARM处理器中的Linux系统,并编写Linux 2.6下的FPGA驱动程序,实现FPGA数据的读取,然后通过网卡以TCP/IP格式发给主机,主机实现数据存储与显示。
关键词:FPGA;帧同步;ARM;遥测数据;网络化;Linux

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

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


    在设备开始工作前,需要在计算机端进行参数设置,计算机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中起始地址为0x18000000,以4 B对齐,占用0x80个地址,地址范围为0x18000000~Ox1800007C,中断为EINT0。
    在FPGA内部采用读/写指针来模拟FIFO,用一个地址来读取FPGA数据,其余地址用于配置帧同步器与模拟源的参数。

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

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


    PCM数据按时钟进行串/并转换,与本地帧同步码进行同或运算后再与上屏蔽位,由全加网络将相关运算结果按位相加统计结果中1的个数,大于门限值则表示可能接收到了帧同步码。
    为避免虚警和漏检,使帧同步器稳定可靠工作,采用搜索、校核、锁定三态逻辑。
    系统开始时处于搜索态,符合相关器输出,由搜索态转入校核态。在预期检测窗口内没有帧码,从校核返回到搜索态。连续通过校核数α,进入锁定态。为避免帧同步码的漏检,连续漏检超过保护帧数β,帧同步才返回搜索态,否则保持在锁定态,帧脉冲由本地产生。
2.2 IRIG—B码解调
    IRIG时间序列码是一种串行码,共有3种码元,如图5所示。


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


    时钟频率为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,如下:   
[!--empirenews.page--]
    当用户程序读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中的物理地址,定义如下宏:
   
    使用ioremap()对FPGA的I/O内存资源进行映射,把物理内存地址映射为一个内核指针:

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

    FPGA连接在ARM的EINT0上,isr_fpga为中断处理函数指针。当关闭FPGA设备时,需释放I/O内存,释放中断:
   
3.2.2 驱动程序控制接口Ioctl
    Ioctl用来设置FPGA中帧同步器和模拟源的参数,部分设置命令如表1所示。


    在此,采用统一的命令码方式,包含幻数、序数、传输方向、数据长度,使用宏_IO(),_IOR(),_IOW()和IOWR()辅助生成,如命令0设置如下:
   
    在Ioctl中,采用switeh(cmd)来实现对FPGA参数的设置及FPGA状态的读取。
3.2.3 中断函数及读函数
    当FPGA产生中断时,根据缓冲区的大小,中断函数循环对FPGA映射后的地址读取数据。ARM与FPGA接口为16位,使用inw读取,数据存放在驱动程序的缓冲区中:
   
    应用程序读取数据时,调用read函数,参数buffer为用户空间缓冲区的指针,利用copy_to_user函数将数据从内核空间拷贝到用户空间,当设备中暂时没有数据时,读进程应当被休眠:
    
    flag为一个标志位,当flag被中断函数设置为1时表示设备中有数据,此时读进程可被换醒。
3.2.4 用户程序及测试
    设备驱动实现后,需编写相应的用户程序来进行测试驱动程序和实现数据的网络转发。在用户程序中,读/写FPGA设备使用与普通文件一样的操作函数。移植Linux时配置好网卡的地址,然后使用Socket编程实现数据的TCP/IP转发,用遥测软件接收到的数据测试如图7所示。


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

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

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭