精华内容
下载资源
问答
  • 摘 要:本文介绍了一种基于嵌入式微控制器MSP430构建的嵌入式同步时钟系统的设计与实现方案,在实现了网络时钟同步的基础上又提供了方便易用的网络管理接口。关键词:同步时钟;MSP430单片机;数字锁相环;CPLD ...
  • 本文给出了嵌入式同步时钟系统的...在设计中采用嵌入式设计的方法把同步定时时钟部分和网络通信部分嵌入到同一块电路板上,使系统既降低了成本又方便了在线维护,可用作诸如路由器、交换机等同步网络设备中的时钟模块。
  • 本文详细介绍了利用嵌入式微控制器MSP430单片机和数字锁相环(DPLL)来实现嵌入式同步时钟系统的方案和设计实例。  系统总体结构  同步设备的同步时钟系统要求能达到3级时钟标准,可使用从SDH网络...
  • 嵌入式Linux下时钟同步系统的分析与实现.pdf
  • 利用IEEE 1588和 Blackfin 嵌入式处理器实现设备时钟同步
  • 测试与测量、电信和多媒体流处理等许多不同应用,都开始首选这种时钟同步方法。这种标准化时钟同步法成本效益高,支持异构系统,并可提供纳秒级同步精度。  本文介绍原版IEEE 1588-2002标准以及更新版本IEEE 1588-...
  • 本文介绍原版IEEE1588-2002标准以及更新版本IEEE1588-2008中的改进内容。由于IEEE1588在一些目标应用中越来越重要,...本文将概要介绍其功能,并通过一个示例来展示利用ADSP-BF518处理器解决方案获得的时钟同步性能结果
  • 为解决工业以太网中嵌入式设备之间时钟同步能力不足的问题,提出了IEEE1588协议在嵌入式设备中的应用方案。基于STM32F207IG处理器和ucos-II操作系统软硬件平台,首先移植并修改LwIP协议使其兼容IEEE 1588协议,然后...
  • 在介绍IEEE1588精确时钟协议基本原理的基础上,提出了使用具有IEEE1588协议硬件支持功能的DP83640以太网物理层收发器在基于ARM-WinCE的嵌入式系统平台上实现时钟同步的设计方案,给出了硬件设计的接口电路和软件设计...
  • 嵌入式Linux设备的高精度IEEE 1588时钟同步实现.pdf
  • NTP是网络时间协议(Network Time Protocol)的简称,它是用来同步网络中各个计算机设备的时间的协议。目前有第三方的代码可以支持NTP,本文讲诉ntpclient的用法。</p> ntpclient is an N...
                <p>因为ARM板断电重启问题,为保证能获取到准确的实时时间,所以需要实现自动从网络上获取时间,这就需要用到NTP。NTP是网络时间协议(Network Time Protocol)的简称,它是用来同步网络中各个计算机设备的时间的协议。目前有第三方的代码可以支持NTP,本文讲诉ntpclient的用法。</p>
    

    ntpclient is an NTP (RFC-1305) client for unix-alike computers. Its functionality is a small subset of xntpd, but IMHO performs better (or at least has the potential to function better) within that limited scope. Since it is much smaller than xntpd, it is also more relevant for embedded computers.
    ntpclient is Copyright (C) 1997-2015 Larry Doolittle, and may be freely copied and modified according to the terms of the GNU General Public License, version 2.

    ntpclient的下载地址是:http://doolittle.icarus.com/ntpclient/

    下载好后,解压,进入解压后的目录进行交叉编译

    1.修改Makefile

    
     
    1. # To cross-compile
    2. CC = arm-none-linux-gnueabi-gcc

    2.交叉编译

    make
     

    3.拷贝编译得到的ntpclient文件至目标板/sbin/目录下,并加可执行权限chmod  +x   ntpclient

    然后我们需要一个网络授时服务器网址

    http://www.ntp.org.cn/

    这个是授时中心网页,在这个上面可以找到需要的授时中心网址

    然后我们在开发板上运行程序

     ntpclient -s -d -c 1 -i 5 -h 202.108.6.95
     

    设备会返回如下

    
     
    1. [root@iTOP -4412] # ntpclient -s -d -c 1 -i 5 -h 202.108.6.95
    2. Configuration:
    3. -c probe_count 1
    4. -d (debug) 1
    5. -g goodness 0
    6. -h hostname 202.108 .6 .95
    7. -i interval 5
    8. -l live 0
    9. -p local_port 0
    10. -q min_delay 800.000000
    11. -s set_clock 1
    12. -x cross_check 1
    13. Listening...
    14. Sending ...
    15. packet of length 48 received
    16. Source: INET Port 123 host 202.108 .6 .95
    17. LI= 0 VN= 3 Mode= 4 Stratum= 2 Poll= 4 Precision= -23
    18. Delay= 961.3 Dispersion= 40679.9 Refid= 10.69 .2 .34
    19. Reference 3750052005.779027
    20. (sent) 3590806877.094690
    21. Originate 3590806877.094690
    22. Receive 3750052666.964639
    23. Transmit 3750052666.964667
    24. Our recv 3590806877.137947
    25. Total elapsed: 43425.00
    26. Server stall: 27.02
    27. Slop: 43397.98
    28. Skew: 159245789848483.56
    29. Frequency: 0
    30. day second elapsed stall skew dispersion freq
    31. set time to 1541063866.964667000
    32. 41560 22877.138 43425.0 27.0 159245789848483.6 40679.9 0

    其中那些参数可以阅读解压后的目录下的README文件,里面有详细的说明,需要提示的是-g不能使用,可能是嵌入式设备不支持。

    使用date来查看一下系统时间:

    Thu Nov  1 17:44:25 CST 2018
     

    如果时区不是中国东八区,可设置环境变量

    export TZ=CST-8
    设置后就可以显示中国时间了。

     

    接下来是将前面命令加入开发板启动脚本,从而实现上电自动同步网络时间。

    1.在开机脚本(我的是/etc/init.d/rcS)中修改下面几句话:

           #date -s "2018-10-31 11:20:35"     (注释掉这一行)

           ntpclient -s -d -c 1 -i 5 -h 202.108.6.95 >/dev/null &   (加入这一行,需加在获取网络命令行之后,确保先有网)

    2.然后是添加系统环境变量,让开机后自动使用东八区(若之前已修改过系统硬件时钟配置文件,已改为东八区,则无需此步操作)

    开发板文件系统/etc/profile中添加

    export TZ=CST-8

    然后就可以当开发板上电自动同步时间了。

     

     

    展开全文
  • 网络化是指利用通信技术和计算机技术,把分布在不同地点的计算机及各类电子终端设备互联起来,按照一定的网络协议相互通信,以达到所有用户都可以共享软件、硬件和数据资源... 目前基于以太网的时钟同步技术已经比较普
  • 网络资源一大抄,抄来抄去瞎胡闹。贱人一堆。 使用settimeofday设置时间后, 重启系统时间并没有设置成功是因为settimeofday,紧紧能设置系统时间并不能设置硬件时间, 开机时linux会从硬件的rtc的时钟芯片中获取一...


    使用settimeofday设置时间后, 重启系统时间并没有设置成功是因为settimeofday,紧紧能设置系统时间并不能设置硬件时间,

    开机时linux会从硬件的rtc的时钟芯片中获取一次硬件时间,然后以此为基础来运行系统时间。
    settimeofday  相当于date shell命令,紧紧能设置系统时间。

    如果想设置硬件时间,需要一个hwclock -w shell原理的函数来写硬件的rtc。

    扒一扒 busybox的  hwclock.c源码(http://www.codeforge.cn/read/97203/hwclock.c__html)

    可以知道这么抄写功能源码:

    static void write_rtc(time_t t, int utc)                                                                                                                  
    {
    	int rtc;
    	struct tm tm;
    
    	if (( rtc = open ( "/dev/rtc", O_WRONLY )) < 0 )
    	{
    		if (( rtc = open ( "/dev/misc/rtc", O_WRONLY )) < 0 )
    		bb_perror_msg_and_die ( "Could not access RTC" );
    	}
    	tm = *( utc ? gmtime ( &t ) : localtime ( &t ));
    	tm. tm_isdst = 0;
    
    	if ( ioctl ( rtc, RTC_SET_TIME, &tm ) < 0 )
    	bb_perror_msg_and_die ( "Could not set the RTC time" );
    
    	close ( rtc );
    }




    也可执行system系统调用。


    展开全文
  • 嵌入式设备时间同步管理

    千次阅读 2015-09-07 23:15:22
    嵌入式设备中我们可以使用两种方式来设置当前系统时间;一个是通过date这个指令来设置,另一个则是使用远端NTP服务器来获取网络时间。当然使用date -s “format_string_time” 来设置本地时间就再简单不过了,但是...

    今天在做设备WEB时间管理的时候发现了一些很有兴趣的问题;在嵌入式设备中我们可以使用两种方式来设置当前系统时间;一个是通过date这个指令来设置,另一个则是使用远端NTP服务器来获取网络时间。

    当然使用date -s “format_string_time” 来设置本地时间就再简单不过了,但是很搞的是当我用date -s “2015-09-07 23:02”来设置设备的时候发现他会报无效的时间参数,原因是嵌入式设备中指令集大多都会使用busybox来处理,但是busybox的date -s 参数时间格式很逆天,他的格式是 “月-日-时-分-年”;例如:date -s “090723022015”;然后就成功了;可以使用date来查看当前系统时间;发现设置 OK;

    下面就要说使用NTP协议来设置当前系统时间了,理论上来说ntp协议需要本地发送一个ntp的请求报送到指定的NTP服务器上,然后获取时间并设置到本地系统时间上来;这里Linux使用了一个指令ntpd来操作以上步骤;
    ntpd -u ntpServer_ip_addr;
    例如:
    首先将ntp服务端口写到/etc/services中,添加两行
    ntp 123/tcp
    ntp 123/udp
    然后执行
    ntpd -u 202.112.10.60
    操作完成之后,date一下,看看系统时间对不对;

    展开全文
  • PHASE LOCKED LOOPPLL S3C6410有三个PLL分别为APLLMPLLEPLL通过设置它们将输入时钟同步输出达到操作CPU的工作频率如图1-1描述了时钟产生逻辑单元 ?图1-1 时钟产生逻辑单元 APLL产生ACLK为ARM core提供工作时钟 MPLL...
  • 在介绍IEEE1588精确时钟协议基本原理的基础上,提出了使用具有IEEE1588协议硬件支持功能的DP83640以太网物理层收发器在基于ARM-WinCE的嵌入式系统平台上实现时钟同步的设计方案,给出了硬件设计的接口电路和软件设计...
  • 嵌入式设备ntp同步时间的一些笔记

    千次阅读 2013-10-20 11:33:55
    本文主要记录平常积累的关于ntp...测试中用的是202.120.2.101,它是上海交通大学网络中心NTP服务器地址。ntp客户端使用的是ntpclient,使用方法如下: $ ntpclient -s -t -i 10 -h 202.120.2.101 一、ntp同步时间测试

    本文主要记录平常积累的关于ntp的东东。
    为了连接ntp服务器,设备必须连外网,设置方法不尽相同,此处从略。

    ntp服务器有很多,但有些是用不了的。测试中用的是202.120.2.101,它是上海交通大学网络中心NTP服务器地址。ntp客户端使用的是ntpclient,使用方法如下:
    $ ntpclient  -s -t -i 10 -h 202.120.2.101

    一、ntp同步时间测试
    随意设置一个时间:
    $ date 09120013
    Thu Sep 12 00:13:00 GMT-8 2013
    同步时间:
    $ ntpclient  -s -t -i 10 -h 202.120.2.101
    41526 58384.802  121782.0     24.6  -2172899597099.9  37323.0         0
    查看时间:
    $ date
    Sat Aug 17 20:38:07 GMT-8 2013

    写到RTC中
    $hwclock -uw

    在测试中,发现设备重启后,时区老是不对,一个很牛的但现在已经离职的同事告诉我是有个地方没设置。
    修改/etc/default/rcS,将UTC打开,设置为yes。
    # Set UTC=yes if your system clock is set to UTC (GMT), and UTC=no if not.
    UTC=yes
    注:原来是注释掉的。

    修改后,再次同步时间:
    $ ntpclient  -s -t -i 10 -h 202.120.2.101
    41506 84272.529   61186.0     20.2  28896829196.1  28976.4         0
    $ date
    Fri Aug 23 15:26:10 GMT-8 2013
    $ hwclock -uw
    $ hwclock -r
    Fri Aug 23 07:26:19 2013  0.000000 seconds
    时间没问题,时钟芯片比系统少8个小时。

    重启设备

    内核启动信息:
    setting system clock to 2013-08-23 07:26:32 UTC (1377242792)

    登陆后查看时间:
    $ date
    Fri Aug 23 15:26:46 GMT-8 2013

    这次没问题了。


    二、时区在程序的使用。
    linux系统的时区文件在/usr/share/zoneinfo目录中。
    可以对时区进行一个小小的测试。
    $ date
    Thu May  9 17:42:24 CST 2013

    复制时区文件
    $ pwd
    /usr/share/zoneinfo/Asia
    $ cp Tokyo /etc/localtime
    $ date
    Thu May  9 18:43:36 JST 2013
    (东京时间比北京时间快一个小时)

    很多上位机可以进行时区的选择,那么,在程序如何响应这个选择呢?
    可以将每一个时区文件整合到一个数组当中,这里指的是每一个时区中的一个文件,比如东8区,可以使用Asia目录的Shanghai、Chongqing、Taipei中任意一个即可。
    数组示例如下,当然,这个数组肯定要根据实际情况修改的。
    static char* timezone_files[] =
    {
        "GMT+12",
        "GMT+11",
        ...
        "GMT-12",
    };

    上位机发送时区索引值到下位机中,通过查找时区文件数组,得到对应的时区文件,然后拷贝为/etc/localtime(软链接方式也可以)即可。从上面的测试可知,当/etc/localtime更改时,系统时间会马上跟着更改。这样便完成时区的设置了。

     

    后记:计算机时间不会骗人,这个文章中设置的各种时间与文章编写时间都差很远(测试的时间有5月初的,有8月底的,现在是10月底),因为这些是在日常中慢慢积累出来的。从文章中的时间以及文章中某一句话,可以得知此期间发生了一些事,如今物是人非,不回忆也罢。

    迟,记于2013年10月20日。

    展开全文
  • 无线时钟同步 这是 Naums Mogers 于 2014 年 11 月至 12 月为约克大学“嵌入式系统设计和实施”模块的开放评估而制作的源代码。 评估由三项任务组成。 所有任务都需要 4 到 10 个无线真实或模拟设备在 60 秒内通过...
  • ( 1 ) 时钟脉冲信号 ( 概念 : 电压幅度 时间间隔 形成脉冲 | 作用 : 时序逻辑基础 间隔固定 根据脉冲数量可计算出时间 ) ( 2 ) 时钟脉冲频率 ( 概念 : 单位时间内产生的脉冲个数 ) (3) 时钟源 ( 产生来源 : ① 晶振 ...
  • 蓝桥杯对RTC主要考察他的时钟功能,具体可以参考嵌入式第九届的省赛题。 需要记住的是RTC和普通定时器不一样的地方:RTC模块和时钟配置系统是在后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变...
  • IEEE1588时钟同步实现方式研究,对于RTP协议的研究非常有帮助,可以精确到微妙级别,欢迎研发人员借鉴
  • 嵌入式Linux内核时钟初始化问题 首先搞清楚RTC在kernel内的作用: linux系统有两个时钟:一个是由主板电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当操作系统关机的时候,用这个来记录时间,...
  •  一般的计算机和嵌入式设备在时钟度方面没有明确的指标要求, 时钟精度只有10-4~10-5,每天可能误差达十几秒或更多,如果不及时校正,其累积时间误差不可忽视。许多工业控制过程需要高准确度时间,如:电力系统内...
  • 对应于嵌入式设备有一个RTC模块。硬件时钟即RTC时钟。 3、使用命令对时钟进行查看与修改。 查看当前系统时钟 wangmj@wangmj:~$ date 2020年 11月 27日 星期五 09:50:25 CST 查看硬件时钟 wangmj@wangmj:~$
  • 当使用包含IEEE1588功能器件、边 界时钟和透明时钟网络时,利用非常简单的时钟伺服算法 来确定速率调整和时间校正,可以获得非常高的精度。不需 要复杂处理,只需要对协议测量进行简单平均或滤波即可。 当网路由不...
  •  操作系统时钟是操作系统软件维护的时钟系统,操作系统通过读取实时时钟来初始化系 统时钟,此后二者一直保持同步,共同维持着系统的时间。这里的同步,是指操作系统在运行 过程中,每隔一个固定的时间就会刷新或...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,801
精华内容 5,520
关键字:

嵌入式网络时钟同步