首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >创龙 瑞芯微 RK3562 国产 2GHz 四核A53 工业开发板—IRIG-B码对时案例

创龙 瑞芯微 RK3562 国产 2GHz 四核A53 工业开发板—IRIG-B码对时案例

原创
作者头像
创龙科技Tronlong
发布2025-07-08 16:24:43
发布2025-07-08 16:24:43
1800
举报

开发板简介

创龙科技 TL3562-EVM-B 是一款基于瑞芯微 RK3562J/RK3562 处理器设计的四核 ARMCortex-A53 +单核 ARM Cortex-M0 国产工业评估板,主频高达 2.0GHz。评估板由核心板和评估底板组成,核心板 CPU、ROM、RAM、电源、晶振、连接器等所有元器件均采用国产工业级方案,国产化率 100%。评估底板大部分元器件亦采用国产工业级方案,国产化率约 99%(按元器件数量占比,数据仅供参考)。核心板经过专业的PCBLayout 和高低温测试验证,质量稳定可靠,可满足各种工业应用环境要求。

评估板硬件资源图解1
评估板硬件资源图解1
评估板硬件资源图解2
评估板硬件资源图解2

前 言

本指导文档主要基于TL3562-EVM评估板演示IRIG-B码对时案例,适用开发环境如下。

Windows开发环境:Windows 7 64bit、Windows 10 64bit

虚拟机:VMware16.2.5

开发环境:Ubuntu20.04.6 64bit

U-Boot:U-Boot-2017.09

Kernel:Linux-5.10.209、Linux-RT-5.10.209

LinuxSDK:rk3562-buildroot-2021.11-sdk-[版本号](基于rk3562_linux_release_v1.2.0_20240620)

本文配套案例为“4-软件资料\Demo\amp-demos\irig_b_decode\”,其中案例bin目录存放镜像文件,dts目录存放配套的设备树文件,project目录存放工程源码,具体如下。

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
图 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
图 2

案例说明

本案例主要基于TL3562-EVM评估板的Cortex-M0(MCU)核心实现IRIG-B码信号解析功能。即Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统,通过rpmsg接收解析的时间信息并打印时间信息;Cortex-M0(MCU)核心运行RT-Thread(即m0_rtos)或Baremetal(即m0_baremetal)程序,解析IRIG-B码时序并提取时间信息,通过rpmsg发送至Cortex-A53核心。

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

图 3
图 3
图 4
图 4

案例测试

本案例需在开阔场地进行测试,请确保卫星时钟同步装置的RUN指示灯处于常亮状态(表示设备工作正常),否则请检查GPS天线连接是否正常。

请使用Type-C线将评估板USB TO UART0串口连接至PC机,使用RS232交叉串口母母线、USB转RS232公头串口线将评估板RS232 UART2串口连接至PC机。将卫星时钟同步装置的ANT接口连接至GPS天线模块,将卫星时钟同步装置OUT1/OUT2接口的“+端子”连接至评估板的RS485 UART3接口“A1端子”、OUT1/OUT2接口的“-端子”连接至评估板的RS485 UART3接口“B1端子”,硬件连接如下图所示。

备注:RS232 UART2调试串口的波特率为115200。

图 5
图 5

请参考《基于Linux + RT-Thread、Baremetal的AMP开发案例》文档的“工程编译与固化”章节将位于案例目录下"m0_baremetal\bin\amp.img"或"m0_rtos\bin\amp.img"镜像固化至评估板。

为了使Linux端的rpmsg正常运行,需按如下步骤替换评估板系统内核镜像。请将案例"dts\bin\"目录下的内核镜像boot.img和案例"host_linux\bin\"目录下的irig_b_decode可执行文件拷贝至评估板文件系统,执行如下命令将其固化至Linux系统启动卡。

备注:如需固化至eMMC,请将设备节点修改为"/dev/mmcblk0p3"。

Target# dd if=boot.img of=/dev/mmcblk1p3 conv=fsync

Target# sync

Target# reboot

图 6
图 6

评估板上电,执行如下命令,可看到串口终端打印当前日期,打印的时间信息是连续的10秒钟。

Target# ./irig_b_decode

图 7
图 7

RS232 UART2串口终端打印信息如下:

图 8 m0_baremetal
图 8 m0_baremetal
图 9 m0_rtos
图 9 m0_rtos

案例编译

应用程序编译

请将产品资料“4-软件资料\Demo\amp-demos\irig_b_decode\host_linux\”案例源码拷贝至Ubuntu工作目录。进入案例源码目录,执行如下命令加载编译环境并编译,LinuxSDK所在路径修改为实际路径,编译完成将会在当前目录下生成可执行程序。

Host# source /home/tronlong/RK3562/rk3562-buildroot-2021.11-sdk-v1.0/buildroot/output/rockchip_rk3562/host/environment-setup

Host# make

图 10
图 10

内核编译

为了避免Linux内核占用案例的外设资源,需替换或修改设备树文件。

我司已提供配置修改好的设备树文件,位于案例目录下"dts\src\tl3562-evm-irig-b-decode-mcu.dts",可直接使用。如需重新编译本案例内核镜像,请将tl3562-evm-irig-b-decode-mcu.dts设备树文件拷贝至内核源码"arch/arm64/boot/dts/rockchip/"目录下,然后参考《Linux系统使用手册》文档“编译设备树文件”章节重新编译生成内核镜像即可。

其中,tl3562-evm-irig-b-decode-mcu.dts设备树文件是基于内核源码"arch/arm64/boot/dts/rockchip/"目录下的tl3562-evm.dts设备树文件修改配置的。

修改内容如下:

修改设备树文件关闭设备树uart2、uart3节点。

图 11
图 11

配置rockchip_amp节点。

由于修改了设备树文件关闭了UART2节点,系统启动时默认关闭UART2时钟及配置UART2 pinctrl,因此需在rockchip_amp节点配置UART2时钟及配置UART2 pinctrl,保证系统启动后UART2功能正常,并加入UART2中断配置,使Cortex-A53(CPU3)正常响应UART2中断。

修改内容如下:

&rockchip_amp {

compatible = "rockchip,amp";

clocks = <&cru FCLK_BUS_CM0_CORE>, <&cru CLK_BUS_CM0_RTC>,

<&cru PCLK_MAILBOX>, <&cru PCLK_INTC>,

<&cru PCLK_TIMER>, <&cru CLK_TIMER4>, <&cru CLK_TIMER5>,

&cru SCLK_UART2>, <&cru PCLK_UART2>;

pinctrl-names = "default";

pinctrl-0 = <&uart2m1_xfer>;

amp-cpu-aff-maskbits = /bits/ 64 <0x0 0x1 0x1 0x2 0x2 0x4 0x3 0x8>;

};

图 12
图 12

配置rpmsg远程核心为Cortex-M0(MCU)。

图 13
图 13

Baremetal、RT-Thread程序编译

请参考《基于Linux + RT-Thread、Baremetal的AMP开发案例》文档的“工程编译与固化”章节将案例m0_baremetal、m0_rtos目录下的程序源码进行编译。

由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开发板简介
  • 前 言
  • 案例说明
  • 案例测试
  • 案例编译
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档