自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (14)
  • 收藏
  • 关注

原创 高精度时间同步模块 - 支持外部触发时间戳

一些工业场景的数据采集要求高精度的时间戳,并且不同设备的时间基准也要严格同步。这往往是通用处理器或者嵌入式处理器无法做到的。SyncTimer时间同步模块满足纳秒级高精度时间戳的要求,支持3路外部触发信号,并且可以与时间源锁定保持+/-200ns范围内的时间同步。

2024-04-19 09:40:30 254

原创 IRIG-B的编码和实现

IRIG-B码是授时信号的一种,可以通过在一根信号上的编码实现准确的时间信息传递。IRIG的标准文档可以从这里下载。

2024-04-05 22:36:24 1128

原创 使用STM32 MCU模拟实现PPS+TOD授时信号

PPS+TOD是授时信号的一种,用来传递准确的时间信息。PPS,Pulse Per Second,是每秒一次的脉冲信号,其上升沿表示整秒的时刻。TOD,Time of Day,是时间信息。是跟随在每个PPS信号后的由串口发出的一句报文,报文内容包含UTC时间。通常在PPS信号后的几百个毫秒内发送完成。

2024-03-31 16:48:23 2117

原创 Linux命令行控制小米电源开关

最近有需求通过命令控制局域网内小米电源开关,以便于写脚本对产品进行反复上电的启动测试。参考了这篇文章:https://blog.csdn.net/2301_77209380/article/details/129797846。飞灵科技产品 flyelf-tech.com,flyelf.taobao.com。

2023-12-18 17:33:38 654

原创 windows安装wsl ubuntu

电脑是windows10专业版,需要一个ubuntu环境,所以按下面步骤安装了下。飞灵科技产品 flyelf-tech.com,flyelf.taobao.com。

2023-12-18 16:48:02 661

原创 PTP同步中的TAI和UTC时间

欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线。PTP主时钟一般采用GNSS卫星授时,然后向网络中的PTP从时钟进行同步。这其中涉及一些时间域的概念:GNSS卫星授时的报文中包含的是UTC时间PTP主时钟使用高精度PTP时钟和网络硬件时间戳,使用的PTP时间域实际上是TAI时间。PTP从时钟如果不支持网络硬件时间戳,而使用系统软件时间戳的话,其使用的是系统时间,也是UTC时间。这种情况下,同步的过程如下图。...

2022-02-18 21:31:28 5331 8

原创 NMEA协议中的RMC和ZDA语句

欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线。GNSS接收机输出的报文遵循NMEA0183协议,从GNSS接收机中获取时间信息,通常是通过RMC语句或ZDA语句。NMEA数据格式RMC语句参数说明ZDA语句...

2022-01-23 17:10:31 4755

原创 TSync时钟同步开发板开发指南

欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线。本文介绍在TSync时钟同步开发板上如何进行二次开发。开发板环境硬件环境:处理器i.MX6ULL:ARM Cortex-A7 800MHz内存:512MBeMMC:8GB外设:百兆双网口,USB host,SD,miniUSB串口,GNSS接口,PPS输出,其他扩展信号软件环境:Linux 5.4.3Ubuntu 18.04.5 LTS二次开发指南开发板用户手册见:https://flyelf-tech.gitee.io/d.

2021-12-26 13:30:58 2323

原创 通过PPS信号验证PTP同步

欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线。IEEE 1588硬件辅助可以使网络设备通过PTP协议实现高精度的时间同步。以TSync时钟同步开发板为例,它的网络MAC硬件支持高精度的PTP时钟,用于向报文提供硬件时间戳。两块开发板作为主时钟和从时钟同步之后,他们的PTP时钟时间是同步的,由PTP时钟产生的PPS秒脉冲信号应该是相位对齐的。示波器测量PPS信号主时钟接收GNSS的PPS和时间信息,同步到PTP主时钟上。再通过PTP网络协议,把时间信息同步给从时钟。所以实际用示波器测量主时钟上的GN.

2021-12-10 21:44:15 7476 3

原创 linuxptp的接口函数列举

欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线。之前的博文IEEE 1588/802.1AS标准、硬件,Linux软件学习建议中有一段介绍了1588整体的软硬件系统。我搬到这里作为第1章,而这篇文章简单列举下linuxptp软件和内核空间的接口函数。系统框图我们通过一个系统框图对1588软硬件系统进行整体的认识。这个系统框图是基于Linux操作系统的,纯FPGA的1588实现就不介绍了。硬件层:硬件层就是带有1588硬件辅助的网络控制器,由硬件PTP时钟向网络报文提供时间戳,时间戳的捕获是在M.

2021-11-03 18:02:08 3154

原创 GNSS模块的PPS和ToD

欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线。GNSS模块使用ATGM332D模组默认波特率是9600,在此波特率下接收到的ToD的信息并非正确,而是和UTC时间有几秒的偏差,PPS和ToD的时序有时也是乱的。将波特率提高到115200,可得到正确的PPS和ToD。在TSync时钟同步开发板上,可以使用如下Linux命令配置ATGM332D的波特率。1. 配置Linux串口参数:波特率9600,8位数据位,1位停止位,无校验位# stty -F /dev/ttymxc1 speed 9600 c.

2021-09-04 22:24:30 3243

原创 IEEE 1588/802.1AS标准、硬件,Linux软件学习建议

欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线。想学习IEEE 1588/802.1AS时钟同步技术?看完这篇文章,你就知道从哪里入手学习了。IEEE 1588/802.1AS首先它是IEEE制定的标准,虽然标准是不变的东西,而这两个标准应用于实际工程项目时,可能会碰到各种各样的芯片方案,不同芯片厂商在网络控制器上实现自家的1588硬件辅助不同的PHY芯片厂商直接在PHY上实现自家的1588硬件辅助或者直接在FPGA上实现1588也可能碰到各种各样的PTP软件协议栈开源的有linuxpt.

2021-05-08 18:06:05 5579 2

原创 linuxptp/ptp4l PTP时钟同步配置选项

欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线。匆忙翻译了一下linuxptp ptp4l的帮助手册,不尽准确,不尽详细,仅供参考。欢迎留言讨论相关问题。1 名称ptp4l - PTP普通时钟/边界时钟/透明时钟协议栈2 描述ptp4l是一个Linux上PTP协议(IEEE 1588)的实现,支持普通时钟,边界时钟和透明时钟。3 配置选项配置选项描述-A自动选择延迟测量机制,运行时使用E2E,但接收到peer delay request报文后自动切换到P2P。-E.

2021-04-24 11:58:17 26555 7

原创 ubuntu开机启动网络配置 - systemd-networkd或netplan

欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线。手头的开发板有两个网口,网口eth0做IEEE 1588时钟同步,eth1做管理网口。所以期望对这两个网口的开机启动配置是,eth0只要up起来,不用配置IPeth1动态获取IP netplan当前开发板的ubuntu版本是18.04.5 LTS,我们使用netplan配置开机启动的网络配置。在安装netplan之前,因为觉得默认的ubuntu软件源下载速度太慢,所以提前替换成清华的ubuntu软件源。可以参考之前的文章“国内ubuntu软件.

2021-03-28 18:10:09 9921

原创 国内ubuntu软件源

为了调高ubuntu软件下载安装的速度,可以将默认的ubuntu软件源修改成国内的ubuntu软件源。清华ubuntu软件源:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/科大ubuntu软件源:https://mirrors.ustc.edu.cn/help/ubuntu.html...

2021-03-28 16:32:30 316

原创 Linux下调试1588单步时间戳报文

这几天在为一个网络控制器实现IEEE 1588单步时间戳的驱动,几经调试终于完工了。顺便分享一下调试方法,当然如果你想玩1588的单步时间戳,首先得有支持这个功能的硬件平台。如果对1588报文单步时间戳不了解,可以查看我之前的文章“IEEE 1588 Sync报文单步时间戳”。平台和工具我用的平台就不透露了,测试使用两块板子,网口直连。用到的软件包括,Linux:这是我板子的OS,包含我要验证的驱动。tcpdump:抓包工具,位于板子的文件系统。linuxptp:开源PTP软件,位于板子的文件系

2021-03-25 18:15:08 3474

原创 IEEE 1588和IEEE 802.1AS的版本和关系

概念IEEE 1588英文全称是IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems。简称是PTP,即Precision Time Protocol。IEEE 802.1AS英文全称是IEEE Standard for Local and metropolitan area networks - Timing and Synchronizatio

2021-03-15 13:24:46 4314 3

原创 ubuntu linux用户和用户组操作

用户创建和删除sudo useradd <user_name> -m-m: 在/home下创建用户目录sudo userdel <user_name> -r-r: 同时删除/home下的用户目录添加和移出用户组查看用户所在的组groups <user_name>添加用户到用户组sudo usermod -aG <groups_list> <user_name>-a: 追加-G: 组列表,将用户加到这些组中,例如<

2021-02-20 16:01:12 438

原创 用ReadtheDocs构建软件技术文档

ReadtheDocs像Linux、U-boot等开源软件,都在使用ReadtheDocs构建专业的软件技术文档。ReadtheDocs提供文档的自动化编译,版本管理以及托管服务。之前自己在ubuntu里尝试构建了一下,现在回忆一下步骤。Ubuntu安装包以root权限安装相关的包。apt install npmnpm install pip3pip3 install sphinxpip3 install sphinx_rtd_theme安装完上面这些包,应该创建文档了。在文档目录do

2021-02-04 17:46:13 261

原创 Linux stty设置串口终端行列数

之前在linux命令行输入命令过长时,总是碰到不能自动换行,并且还会覆盖当前行的情况。像下面这样,root@TSync:~#dddd@TSync:~# dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd后来终于通过stty命令解决了。查看行列书,并将列数从80改为160,搞定。root@TSync:~# stty size24 80root@TSync:~# stty cols 160root@TSync:~#

2021-01-23 22:16:42 1669 1

原创 u-boot下mac地址的配置

U-boot源码中的文档doc/README.enetaddr对mac地址的存储有详细的介绍。通常有三种情况:MAC地址存储在EEPROM中U-boot下可以用mac命令用来查看,EEPROM的MAC地址在U-boot启动时会被写入到环境变量。=> help macmac - display and program the system ID and MAC addresses in EEPROMUsage:mac [read|save|id|num|errata|date|ports|

2021-01-15 14:23:25 2221

原创 fio测试eMMC性能

注意事项想用fio测出eMMC最好的读写性能要注意以下几点。eMMC性能受限于eMMC芯片本身,所以可从datasheet上查看性能数据作为参考。eMMC的速度模式和始终频率决定传输速度,目前eMMC 5.1最高的速度模式是HS400, 8-bit数据总线,200MHz模式。顺序读写性能相对会高。eMMC厂商可能在eMMC芯片中实现了buffer,比如200MB的buffer。如果传输文件大小小于buffer,那么传输速度是非常快的。但是datasheet可能并不会告诉你它的存在。所以测试时,可

2021-01-07 10:58:47 4982

原创 IEEE 1588 Sync报文单步时间戳

在IEEE 1588中,报文的单步时间戳应用于Sync报文和Pdelay_resp报文。这两种报文的单步时间戳的实现有着不同的定义。本文介绍的是Sync报文的单步时间戳,这是单步时间戳最常见的应用,而支持Pdelay_resp报文的单步时间戳的网络硬件非常少见,目前的linux内核中,都没有一种硬件设备支持它。什么是单步时间戳什么叫两步时间戳,什么叫单步时间戳?我们结合Sync报文的发送来看一下。Master在发送Sync报文时,记录发送时间戳t1,紧接着通过发送一个Follow_up报文,把t1告

2020-09-22 19:08:49 6532

原创 QEMU用户模式ARM仿真 - qemu-arm-static

qemu-arm-static嵌入式开发有时会在ARM设备上使用ubuntu文件系统。开发者常常会面临这样一个问题,想预先交叉编译并安装一些应用程序,但是交叉编译的环境配置以及依赖包的安装十分繁琐,并且容易出错。想直接在目标板上进行编译和安装,但是ARM的资源和处理能力有限,会非常耗费时间。在这里给大家推荐一个ubuntu下好用的工具qemu-arm-static,这是QEMU用户模式下的ARM仿真器。通过qemu-arm-static,我们在x86的ubuntu PC机上,可以模拟ARM处理器,就像运

2020-09-14 00:30:41 10059 4

原创 认识Buildroot

Buildroot是什么如果你是一个嵌入式软件工程师,那你有必要要知道buildroot是什么。我们知道,通常一个嵌入式设备上运行的软件包括bootloader,linux和rootfs。我们可以独立去开发各个部分,在使用的时候分别去交叉编译,烧写这些软件组件。但是buildroot这个工具提供了一种更加高效的管理方法,它把bootloader,linux和rootfs集成在一起,可以非常方便的去定制,管理,编译和组装一个自己需要的,针对自己的设备的一个完整的软件系统。我们可以利用buildroot针对自

2020-09-11 00:13:24 20862 1

原创 1588 P2P链路延迟测量机制

E2E和P2P上一篇文章介绍了1588的E2E链路延迟测量机制,本文顺带把P2P的链路延迟测量机制也一起介绍一下,这也便于以后介绍E2E透明时钟和P2P透明时钟。E2E就是End-to-End,它是由Slave clock发起的测量链路延迟的机制,而P2P(Peer-to-Peer)则是把每一个clock看作是对等的,每一个clock都会发起的链路延迟测量机制。说白了就是E2E的机制下,只有slave clock测量链路延迟,而P2P的机制下,每个clock都会测量链路延迟。P2P链路延迟测量机制P2

2020-09-06 00:05:47 4920

原创 1588的E2E链路延迟测量机制

无用的前言做1588已经很多年了,现在才开始想起来写一些技术文章。这是第一篇,希望能坚持写下去。1588标准的内容其实很多、很细,但终究是做网络时钟同步,所有方法和机制最终都是为计算出slave clock和master clock的时间偏差。所以想最快,最直观的了解1588是怎么同步网络中的时钟,那就应该看标准中最基本的E2E链路延迟测量机制,了解slave clock是如何通过该机制同步。E2E链路延迟测量机制直接上图,这是1588标准中,E2E链路延迟测量机制的原理图。E2E链路延迟测量机制也叫

2020-09-01 00:58:45 3693 2

STM32F103C8最小系统资料

STM32F103C8最小系统资料,包含硬件资料,测试源码,和手册。

2024-03-30

mdio访问PHY寄存器的应用程序

Linux下使用gcc编译 gcc mdio.c -o mdio 使用方法 usage: mdio <port> <reg> mdio read mdio <port> <reg> <val> mdio write example: mdio eth0 0x1

2024-03-25

IRIG STANDARD 200-04,IRIG标准,IRIG-B码标准,2004版

IRIG STANDARD 200-04,IRIG标准,IRIG-B码标准,2004版

2023-12-07

TCP/IP和UDP的socket网络编程源码和文档

实验平台:mini2440开发板和ubuntu tcp/ip网络编程:client.c server.c udp网络编程:listener.c talker.c

2013-05-29

mini2440通过触摸屏绘制轨迹程序(裸机)

mini2440开发板x35 240*320 TFT LCD显示屏。 先进行触摸屏校准,然后可以描绘轨迹。 存在问题是轨迹点不连续。

2013-05-09

mini2440开发板LCD显示控制程序(裸机)

mini2440 x35 240*320 TFT显示屏裸机程序 实现绘点、直线、矩形和圆形的功能。 mini2440 x35 240*320 TFT显示屏裸机程序 实现绘点、直线、矩形和圆形的功能。 mini2440 x35 240*320 TFT显示屏裸机程序 实现绘点、直线、矩形和圆形的功能。

2013-05-09

交叉编译和交叉调试环境搭建及使用-摘自网络

交叉编译和交叉调试环境搭建及使用-摘自网络

2013-05-04

建立gdb-gdbserver交叉调试环境的文档和gdb源码包

建立gdb-gdbserver交叉调试环境的文档和gdb源码包

2013-05-04

mini2440触摸屏校准和手势识别源码和文档(裸机)

mini2440触摸屏校准和手势识别源码和文档(裸机)

2013-04-27

mini2440存储器测试源码和手册sdram、nor flash和eeprom

mini2440存储器测试源码和手册sdram、nor flash和eeprom

2013-04-25

mini2440的nandflash读写源码和手册

mini2440的nandflash读写源码和手册

2013-04-25

使用crosstool制作ARM-Linux交叉编译工具链

使用crosstool制作ARM-Linux交叉编译工具链

2013-04-14

编写linux2.6系统调用

修改linux2.6.32.2内核源码,编写一个新的系统调用。

2013-04-12

linux3.8.4内核编译和安装

详细说明ubuntu12.04下编译linux3.8.4内核并安装的过程。

2013-04-10

跟我一起写Makefile.pdf

详细并完整介绍了Makefile及编写规则,很好的Makefile学习资料。

2013-04-09

三星S3C2440A手册(英文)

三星S3C2440A手册(英文)

2013-04-09

S3C2440A手册(英文)

三星的S3C2440A手册(英文)

2013-04-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除