首页 > 其他分享 >B码对时方案,基于TI AM62x异构多核工业处理器实现!

B码对时方案,基于TI AM62x异构多核工业处理器实现!

时间:2024-03-07 16:33:18浏览次数:38  
标签:码元 Target 核心 AM62x Cortex TI M4F 核工业 IRIG

什么是IRIG-B码对时

IRIG-B(inter-range instrumentationgroup-B)码是一种时间同步标准,通常用于精确的时间测量和数据同步,广泛应用于电力、通信、航空等领域。

 

IRIG-B码为每秒一帧的时间串码,一帧串码中包含100个码元,频率为1KHz,即每个码元占用10ms时间。IRIG-B码基本的码元为"0"码元、"1"码元和"P"码元,"0"码元和"1"码元对应的脉冲宽度为2ms和5ms,"P"码元为位置码元,对应的脉冲宽度为8ms,IRIG-B码信息的基本码元的示意图如下所示。

 

 

图1

下图为一帧的IRIG-B码脉冲序列结构示意图。连续两个"P"码元表示整秒的开始,第二个"P"码元的脉冲前沿为“准时”参考点,定义其为"Pr"。每10个码元有一个位置码元,共有10个,定义其为P1,P2,…,P9,P0。IRIG-B码时间格式的时序为秒、分、时、天,所占信息位分别为:秒7位、分7位、时6位、天10位,其位置在P0 ~ P5之间。

 

通常,从"Pr"开始对码元进行编号,分别定义为第0,1,2,…,99码元,则“秒”信息位于第1、2、3、4、6、7、8码元,“分”信息位于第10、11、12、13、15、16,17码元,“时”信息位于第20、21、22、23、25、26码元,“天”信息位于第30、31、32、33、35、36、37、38、40、41码元。

 

 

图2

IRIG-B码对时应用场景

IRIG-B码对时可应用于继电保护装置、电力RTU、电力录波器、通讯管理机、电能质量在线监测等领域。创龙科技已基于TI AM62x异构多核处理器实现IRIG-B码对时方案,降低了终端用户的开发难度,缩减了研发时间,可快速进行产品方案评估与技术预研。

 

 

图3

 

常见IRIG-B码对时实现方案

IRIG-B码对时的实现常见方案一般基于FPGA或MCU实现,具体方案实现方式如下。

 

(1)基于FPGA实现

 

为达到IRIG-B码与时间信号输入、输出的精确同步,采用现代化靶场的IRIG-B码编码和解码的原理,从工程的角度出发,提出了使用现场可编程门阵列(FPGA)来实现IRIG-B码编码和解码的设计方案和体系结构,设计中会涉及到几个不同的时钟频率,FPGA对时钟的同步性具有灵活性、效率高、且功耗低,抗干扰性好的特点。结果表明,FPGA能够确保为从设备提供同源的时钟基准,使时钟与信号的延迟控制在200ns以内,从而得到了IRIG-B码与时间精确同步的效果。

但是,基于FPGA实现IRIG-B码开发难度较大,时间投入较多,开发成本将会较高,不利于产品的快速上市。

 

(2)基于MCU实现

 

MCU(Micro Control Unit)即微控制单元,通过MCU核心可实现解析IRIG-B码时序并提取时间信息,再将时间信息同步至其他核心。

基于MCU实现IRIG-B码开发方案结构简单、开发成本较低、同步精度较高,可满足多种工业应用场景要求。

 

AM62x IRIG-B码对时方案

本章节主要描述创龙科技基于TI AM62x的MCU(Cortex-M4F)核心实现IRIG-B码信号解析功能。

 

AM62x内部集成Cortex-A53 + Cortex-M4F核心,可使用Cortex-M4F实现IRIG-B码对时功能,无需增加额外的MCU成本。并且,通过内部MCU实现IRIG-B码对时功能方案,硬件设计简单,有利于快速开发产品。

 

(1)案例说明

 

卫星时钟同步装置(厂家:南京诺煌电气科技有限公司,型号:YS-DN-100)通过GPS天线模块获取标准时间信息并输出IRIG-B码信号,经评估板板载RS485芯片转换成电平信号后传输至Cortex-M4F核心,Cortex-M4F核心通过读取GPIO引脚电平,解析IRIG-B码时序并提取时间信息,再通过TI-RPMsg机制将时间信息发送至Cortex-A53核心打印时间信息。系统框图如下所示。

 

 

 

图4
(2)案例测试

本案例需在开阔场地进行测试,请确保卫星时钟同步装置的RUN指示灯处于常亮状态(表示设备工作正常),否则请检查GPS天线连接是否正常。
由于评估底板RS485_2 UART5为Cortex-A53核心的外设,因此请通过飞线的方式将RS485芯片(U30)的pin3引脚连接至EXPROT接口(J11)的pin4引脚(即Cortex-M4F核心GPIO)。卫星时钟同步装置输出的IRIG-B码信号经评估底板RS485_2 UART5接口后,再经过EXPROT接口(J11)的pin4引脚输入至Cortex-M4F核心。

 

图5  

 

图6

 

请将卫星时钟同步装置的ANT接口连接至GPS天线模块,将卫星时钟同步装置OUT1接口的“+端子”连接至评估板的RS485_2 UART5接口“A2端子”、OUT1接口的“-端子”连接至评估板的RS485_2 UART5接口“B2端子”,硬件连接如下图所示。

 

 

图7

 

请将本案例"dts\bin\"目录下的tl62x-evm.dtb设备树文件拷贝至Linux系统启动卡"/boot/"目录下,替换原有的tl62x-evm.dtb设备树文件。然后将案例bin目录下的am62-mcu-m4f0_0-fw文件、irig_b_decode可执行程序拷贝至Linux系统启动卡文件系统"/home/root/"目录下。

 

 

图8

评估板上电,从Linux系统启动卡启动,依次执行如下命令,更新Cortex-M4F核心固件,并重启评估板。

 

Target#rm /lib/firmware/am62-mcu-m4f0_0-fw

Target#cd /lib/firmware/

Target#ln -sf /home/root/am62-mcu-m4f0_0-fw am62-mcu-m4f0_0-fw

Target#sync

Target#reboot

 

 

图9

 

执行如下命令,查询Cortex-M4F核心与remoteproc对应关系。

备注:Cortex-M4F核心对应的RemoteProc Name为5000000.m4fss。

 

Target#head /sys/class/remoteproc/remoteproc*/name

 

 

图10

根据查询结果,执行如下命令查看Cortex-M4F核心程序运行日志,确认Cortex-M4F核心运行状态。

 

Target#cat /sys/kernel/debug/remoteproc/remoteproc0/trace0

 

 

图11

 

执行如下命令,查看程序运行参数。

 

Target#./irig_b_decode -h

 

备注:rproc_id:核心ID。Cortex-M4F核心ID为9,默认ID为0。

 

 

图12

 

执行如下命令,解析IRIG-B码时序并提取时间信息,可看到串口终端打印当前日期如下图所示。

 

Target#./irig_b_decode -r 9

 

 

13

标签:码元,Target,核心,AM62x,Cortex,TI,M4F,核工业,IRIG
From: https://www.cnblogs.com/Tronlong818/p/18059222

相关文章

  • mybatis
    mybatis特殊查询#占位符,&拼接模糊查询,动态删除$模糊查询,会被解析成字符串1.不适用#使用$第二种方案,mysql字符串拼接likeconcat("%",#{username},"%")第三种方式like"%"#{usernam}"%"intdeleteMore批量删除只能用$符号动态设置表名/*查询指定表的数据只能用$动态设置表名添加......
  • AppleScript成功实现FaceTime语音,FaceTime视频,FaceTime蓝号检测,检测数据是否开通Fa
    FaceTime是苹果公司iOS和macOS(以前称MacOSX或OSX)内置的一款视频通话软件,通过Wi-Fi或者蜂窝数据接入互联网,在两个装有FaceTime的设备之间实现视频通话。其要求通话双方均具有装有FaceTime的苹果设备,苹果ID以及可接入互联网的3G/4G/5G或者Wi-Fi网络。 一、Windows电脑上部署......
  • 对于core-js相关的报错 core-js/modules/es.array.push.js in ./node_modules/.store
    Thesedependencieswerenotfound:*core-js/modules/es.array.push.jsin./node_modules/.store/@babel+runtime@7.24.0/node_modules/@babel/runtime/helpers/construct.js,./node_modules/.store/@babel+runtime@7.24.0/node_modules/@babel/runtime/helpers/esm/obj......
  • Blazor笔记-Directives
    更新记录注意:非教程。纯笔记,日常查询用的。需要教程的小伙伴找几本书看看即可哈哈,有Vue基础的话非常快,概念都是通的。非工作需要不建议深入学习Blazor,深入Vue吧,用的多,哈哈。完整目录地址:https://www.cnblogs.com/cqpanda/p/17596348.html点击查看2024年3月7日发布。2023......
  • Blazor笔记-Navigating
    更新记录注意:非教程。纯笔记,日常查询用的。需要教程的小伙伴找几本书看看即可哈哈,有Vue基础的话非常快,概念都是通的。非工作需要不建议深入学习Blazor,深入Vue吧,用的多,哈哈。完整目录地址:https://www.cnblogs.com/cqpanda/p/17596348.html点击查看2024年3月7日发布。2023......
  • golang 时间比对时,time.Now()与time.Parse()的使用注意
    在11:28时执行以下代码nowTime:=time.Now()t1,err:=time.Parse("2006-01-0215:04","2024-03-0708:00:00")result:=nowTime.Before(t1)本以为result应该是false,结果竟然是true。  调试下看看两者的区别发现:time.Parse()是UTC时间,无时区信息,如:time.Time(2024-0......
  • static关键字
    静态变量静态变量也称为类变量,这个变量是属于类的,类的所有实例都共享静态变量,可以通过类名来访问他们。静态变量在内存中只存在一份。实例变量:每创建一个实例就产生一个实例变量,与实例同时产生,同时销毁。/***@authorPickle*@versionV1.0*@date2024/3/511:27*/......
  • AT_abc338_f [ABC338F] Negative Traveling Salesman 题解
    分析考虑状压。定义状态函数\(f_{i,j}\)表示在经过点的情况为\(i\)且最后停在点\(j\)的最小花费。那有:\(f_{i,j}=\min\{f_{i',k}+w_{k\toj}|k\toj\}\)。然后就过不了样例一。根据样例一,可以发现\(f_{3,2}=f_{2,2}+w_{2\to1}+w_{1\to2}\)。也就是说我们在原本已经走......
  • static修饰静态成员变量and静态成员函数
    在成员变量和成员函数之前加上static关键词,称为静态成员静态成员分为:(1)静态成员变量所有对象都共享同一份数据编译阶段就分配内存类内生命,类外进行初始化操作(2)静态成员函数程序共享一个函数静态成员函数只能访问静态成员变量实例代码1(静态成员变量):#include<iostrea......
  • AT_abc283_f [ABC283F] Permutation Distance 题解
    分析分类讨论。对\(|p_i-p_j|+|i-j|\)分类讨论,有:\((p_i+i)-(p_j+j)\),\(p_i>p_j\landi>j\)。\(-(p_i-i)+(p_j-j)\),\(p_i<p_j\landi>j\)。\((p_i-i)-(p_j-j)\),\(p_i>p_j\landi<j\)。\(-(p_i+i)+(p_j+j)\),\(p_i<p_j\landi<j......