社区导航

 

搜索
查看: 609|回复: 36

[求助] 时钟芯片的问题

  [复制链接]

2339

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2019-6-29 17:30 | 显示全部楼层 |阅读模式

我们是做试验机的,老板说,为了防止客户不给钱,需要在下位机放一个时钟芯片,

用来定时。定时多少天,如果客户不给钱,软件就不能用了,上位机软件弹出一个窗口,

要求注册,要求提供注册码。然后如果客户给了钱,输入注册码,就可以继续使用产品。

现在有个问题,我以前使用过时钟芯片,比如DS1302,可是这种芯片有个问题。

它计时的时候,有时候日期时间会乱。如果乱了就惨了。请问高手有办法吗?谢谢!

此帖出自stm32/stm8论坛
为江山踏坏了乌骓马,为社稷拉断了宝雕弓。


回复

使用道具 举报

6073

TA的帖子

9

TA的资源

版主

Rank: 6Rank: 6

发表于 2019-6-29 18:00 来自手机 | 显示全部楼层
其实计算启动次数和运行时间就可以了 不需要实时时钟

点评

那要是断电重启定时时间不就没了吗?  详情 回复 发表于 2019-7-1 08:07


回复

使用道具 举报

1万

TA的帖子

0

TA的资源

maychang

Rank: 6Rank: 6

发表于 2019-6-29 18:02 | 显示全部楼层

不一定要用时钟芯片吧?

既然有上位机和下位机,下位机烧入程序时在可擦除存储器某一位置写入一个初始码,上位机与下位机通讯时读出此初始码,发现是初始码即命令下位机修改初始码成另一码。下位机程序在上电初始化例程中检查此位置数值,未修改过不计数,已修改成另一码则累计定时器计数值。下位机定时器计数到一定值时通知上位机即可。

点评

谢谢!你说的是用定时器定时。那要是断电重启时间就没有了。  详情 回复 发表于 2019-7-1 08:08


回复

使用道具 举报

8247

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2019-6-29 21:06 | 显示全部楼层

最容易出问题在上下电时,数据总线上有时会有干扰,造成时钟出错。DS1302需要控制好CE,这样就不容易出错,用i2c的RTC芯片就更好一些,不容易出错。

 



回复

使用道具 举报

303

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-7-1 07:56 | 显示全部楼层

既然有上位机,直接上位机做不是更好?

点评

用上位机,就担心客户把电脑的时间改了。  详情 回复 发表于 2019-7-1 08:09


回复

使用道具 举报

2339

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2019-7-1 08:07 | 显示全部楼层
本帖最后由 chenbingjy 于 2019-7-1 08:08 编辑
littleshrimp 发表于 2019-6-29 18:00 其实计算启动次数和运行时间就可以了 不需要实时时钟

谢谢!那要是断电重启定时时间不就没了吗?

点评

每次都写flash保存  详情 回复 发表于 2019-7-1 11:23
为江山踏坏了乌骓马,为社稷拉断了宝雕弓。


回复

使用道具 举报

2339

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2019-7-1 08:08 | 显示全部楼层
maychang 发表于 2019-6-29 18:02 不一定要用时钟芯片吧? 既然有上位机和下位机,下位机烧入程序时在可擦除存储器某一位置写入一个初始码 ...

谢谢!你说的是用定时器定时。那要是断电重启时间就没有了。

点评

每次把已运行时间写入flash保存即可。 每次断电会造成一定时间误差,但这点误差对你们收款没有多大影响。  详情 回复 发表于 2019-7-1 12:23
为江山踏坏了乌骓马,为社稷拉断了宝雕弓。


回复

使用道具 举报

2339

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2019-7-1 08:09 | 显示全部楼层
90houyidai 发表于 2019-7-1 07:56 既然有上位机,直接上位机做不是更好?

用上位机,就担心客户把电脑的时间改了。

点评

计算累计时长,或者联网查时间  详情 回复 发表于 2019-7-4 09:41
为江山踏坏了乌骓马,为社稷拉断了宝雕弓。


回复

使用道具 举报

6073

TA的帖子

9

TA的资源

版主

Rank: 6Rank: 6

发表于 2019-7-1 11:23 来自手机 | 显示全部楼层
chenbingjy 发表于 2019-7-1 08:07
littleshrimp 发表于 2019-6-29 18:00 其实计算启动次数和运行时间就可以了 不需要实时时钟


谢谢! ...

每次都写flash保存


回复

使用道具 举报

1万

TA的帖子

0

TA的资源

maychang

Rank: 6Rank: 6

发表于 2019-7-1 12:23 | 显示全部楼层
chenbingjy 发表于 2019-7-1 08:08 谢谢!你说的是用定时器定时。那要是断电重启时间就没有了。

每次把已运行时间写入flash保存即可。

每次断电会造成一定时间误差,但这点误差对你们收款没有多大影响。



回复

使用道具 举报

2339

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2019-7-1 13:45 | 显示全部楼层

断电的时候存吗?那如何判断掉电呢?

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。


回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2019-7-1 14:14 | 显示全部楼层
chenbingjy 发表于 2019-7-1 13:45 断电的时候存吗?那如何判断掉电呢?

如果主控单片机内有EEPROM或FLASH的话,可以每隔一个固定的时间计数一次(比如1小时),并写入进去,达到上限后要求输入注册码。如果单片机内没有的话,需要外挂一颗EEPROM(比如24C02系列的)。不过一般都会有掉电保持的存储空间,不然没地方保存配置数据啊。DS1302在备用电池掉电后,日期应该会被清零的,可能不合适用啊。

点评

谢谢!你说的这个可以。  详情 回复 发表于 2019-7-1 16:54


回复

使用道具 举报

669

TA的帖子

2

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2019-7-1 14:53 | 显示全部楼层

多数芯片都有掉电检测,可以在单片机将要掉电时中断单片机,就可以检测到啦。不知道你的设备是不是允许断电。只要在设备中加电池,程序中不断的增量保存进时钟芯片的RAM中,断电检测到了把当时的时间点保存到RAM中。

点评

谢谢!还没用过STM32的掉电检测,我查查资料。  详情 回复 发表于 2019-7-1 16:55


回复

使用道具 举报

3424

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2019-7-1 16:40 | 显示全部楼层

写flash或eeprom可以的,开一块存储,出厂前擦除,每分钟写一位,存储块全0不允许再用.不需要掉电什么的.ds1302也可以,不过毕竟在芯片外面,容易被绕过去.

点评

谢谢!你说的有道理。  详情 回复 发表于 2019-7-1 16:55


回复

使用道具 举报

2339

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2019-7-1 16:54 | 显示全部楼层
java_bm 发表于 2019-7-1 14:14 如果主控单片机内有EEPROM或FLASH的话,可以每隔一个固定的时间计数一次(比如1小时),并写入进去,达到 ...

谢谢!你说的这个可以。

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。


回复

使用道具 举报

2339

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2019-7-1 16:55 | 显示全部楼层
bigbat 发表于 2019-7-1 14:53 多数芯片都有掉电检测,可以在单片机将要掉电时中断单片机,就可以检测到啦。不知道你的设备是不是允许断电 ...

谢谢!还没用过STM32的掉电检测,我查查资料。

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。


回复

使用道具 举报

2339

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2019-7-1 16:55 | 显示全部楼层
huo_hu 发表于 2019-7-1 16:40 写flash或eeprom可以的,开一块存储,出厂前擦除,每分钟写一位,存储块全0不允许再用.不需要掉电什么的.ds1302 ...

谢谢!你说的有道理。

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。


回复

使用道具 举报

1万

TA的帖子

143

TA的资源

版主

Rank: 6Rank: 6

技术导师勋章

发表于 2019-7-1 23:08 | 显示全部楼层

这里的“时钟”可未必是实时时钟,也没必要用实时时钟,除非系统本身的功能有这方面的要求。如果有上位软件,其实完全基于上位软件实现最佳,这样不影响硬件成本。

点评

我不明白,怎么能用上位机实现呢?如果客户修改了系统时间如何是好?  详情 回复 发表于 2019-7-2 08:03
上传了一些书籍资料,也许有你想要的:http://download.eeworld.com.cn/user/chunyang


回复

使用道具 举报

2339

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2019-7-2 08:03 | 显示全部楼层
chunyang 发表于 2019-7-1 23:08 这里的“时钟”可未必是实时时钟,也没必要用实时时钟,除非系统本身的功能有这方面的要求。如果 ...

我不明白,怎么能用上位机实现呢?如果客户修改了系统时间如何是好?

点评

方法多了去了,联网机器可以自动更新时间,也可以用服务器实现远程管理授权。非联网机器的话,如果离不开时常更新的数据库,可以利用数据库写入进行时间排序,系统时间乱了数据库就乱了,即使非数据库类应用,一样可  详情 回复 发表于 2019-7-2 15:36
为江山踏坏了乌骓马,为社稷拉断了宝雕弓。


回复

使用道具 举报

1

TA的帖子

1

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2019-7-2 13:44 | 显示全部楼层

下面跟上位机通信,获取上位机时间不就行了?

点评

不行啊。如果客户把上位机的时间改了,那时间就不准了。  详情 回复 发表于 2019-7-2 14:23


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /1 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-7-18 22:00 , Processed in 0.519224 second(s), 16 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表