[求助] 时钟芯片的问题

chenbingjy   2019-6-29 17:30 楼主

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

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

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

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

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

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

回复评论 (36)

其实计算启动次数和运行时间就可以了 不需要实时时钟
点赞  2019-6-29 18:00

不一定要用时钟芯片吧?

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

点赞  2019-6-29 18:02

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

 

点赞  2019-6-29 21:06

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

点赞  2019-7-1 07:56
littleshrimp 发表于 2019-6-29 18:00 其实计算启动次数和运行时间就可以了 不需要实时时钟

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

本帖最后由 chenbingjy 于 2019-7-1 08:08 编辑
为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2019-7-1 08:07
引用: maychang 发表于 2019-6-29 18:02 不一定要用时钟芯片吧? 既然有上位机和下位机,下位机烧入程序时在可擦除存储器某一位置写入一个初始码 ...

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

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2019-7-1 08:08
引用: 90houyidai 发表于 2019-7-1 07:56 既然有上位机,直接上位机做不是更好?

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

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2019-7-1 08:09
引用: chenbingjy 发表于 2019-7-1 08:07
littleshrimp 发表于 2019-6-29 18:00 其实计算启动次数和运行时间就可以了 不需要实时时钟


谢谢! ...

每次都写flash保存
点赞  2019-7-1 11:23
引用: chenbingjy 发表于 2019-7-1 08:08 谢谢!你说的是用定时器定时。那要是断电重启时间就没有了。

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

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

点赞  2019-7-1 12:23

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

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2019-7-1 13:45
引用: chenbingjy 发表于 2019-7-1 13:45 断电的时候存吗?那如何判断掉电呢?

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

点赞  2019-7-1 14:14

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

点赞  2019-7-1 14:53

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

点赞  2019-7-1 16:40
引用: java_bm 发表于 2019-7-1 14:14 如果主控单片机内有EEPROM或FLASH的话,可以每隔一个固定的时间计数一次(比如1小时),并写入进去,达到 ...

谢谢!你说的这个可以。

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2019-7-1 16:54
引用: bigbat 发表于 2019-7-1 14:53 多数芯片都有掉电检测,可以在单片机将要掉电时中断单片机,就可以检测到啦。不知道你的设备是不是允许断电 ...

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

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2019-7-1 16:55
引用: huo_hu 发表于 2019-7-1 16:40 写flash或eeprom可以的,开一块存储,出厂前擦除,每分钟写一位,存储块全0不允许再用.不需要掉电什么的.ds1302 ...

谢谢!你说的有道理。

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2019-7-1 16:55

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

上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
点赞  2019-7-1 23:08
引用: chunyang 发表于 2019-7-1 23:08 这里的“时钟”可未必是实时时钟,也没必要用实时时钟,除非系统本身的功能有这方面的要求。如果 ...

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

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2019-7-2 08:03

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

点赞  2019-7-2 13:44
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复