一线研发之声 之 软硬交互“自学习匹配”的秘密
来源:互联网 发布:阿达帕林对黑头知乎 编辑:程序博客网 时间:2024/04/27 22:19
一个产品推出三四年,功能常常越加越多,外围器件也难免更新换代。
这个时候,如何让新程序兼容老客户手上的旧机器,就是一件很值得研究的事情。
最常用的,莫过于让软件去识别出硬件版本,据此作出不同的反应,做到兼容。
不仅利于生产也利于售后维护,其节约的硬件成本和管理成本,难以估量。
简单介绍常用的几种方法吧。
如果您有其他的方法,也不妨分享一下让我开开眼界。
通常的做法是,一个IO,上拉电阻,下拉电阻,就识别两种机型。
问题是,如果生产是电阻漏上怎么办?
所以软件的识别写法要利用mcu的IO机制,利用上下拉输入各读几次交叉验证。
这个时候,你突然发现,这种机制可以使软件利用一个IO识别三种机型。
2个IO就九种方案哦,三个IO就27种哦,绝对够用了。
三种状态:上拉/下拉和浮空,你懂了吗?
2. 分压法,一个IO,接上不同的分压电阻,那么不同的电压刻度表示不同的硬件版本。
注意:电阻会老化衰减,分压刻度的间距要足够开,给老化留下空间。
3. 电容充电法。
IO上串个电容,给它充电,看放电时间来决定。
注意:老化,衰减,同上。
4. 外围设备的器件ID。
如果不同的硬件版本上的外围设备ID有异,那自然也可以用来识别硬件版本。
5. 其他的组合方案
按理说,上述几种方案的组合已经足够穷尽想象力了。
但有的时候吧,穷到连一根识别IO都挤不出来的,外设也都是廉价到没有ID让你读的。
这是时候就需要展现个人价值的时候了,我讲一个自己的事儿来说说吧。
我做过一个案子,新版本换了颗无线解码IC的型号,更廉价距离更远。
坑爹的是,两颗IC的片选线的有效电平相斥,硬件为节约成本,也不做兼容,也不给识别机制,
而且因为通信协议兼容的关系,要求软件必须同一套。
各种抗拒抵触不可能啊,那个抓耳挠腮啊,
天可怜见,我在示波器上发现,在片选有效时这些IC的data脚会疯狂的输出散乱杂波,无效时io如水平淡,顿时灵光一闪:最终,我在上电时周期翻转那根片选线,我扫描计数data的电平变化次数,timeout时间后判断识别结果。
最后,还是发生了一些小概率事故,有些ic,在片选有效时,也不会有波形,尤其是在生产的抗屏蔽房里面装机时。未能识别正确的片选有效电平,导致仓储的时候电池狂漏电。
于是最后打了个补丁,上电后进入识别流程,没识别出来之前软关机时我就哔哔惨叫:“要死啦要死啦,IC未识别不能睡啊,会睡死掉的”。
再加一个工艺流程:用无线发送设备加速触发自学习。
0 0
- 一线研发之声 之 软硬交互“自学习匹配”的秘密
- 管理界面的建立(自学习之二)
- 软硬之道
- linux之软硬链接
- 华为研发的秘密
- 技术之路(三)----软硬方向的体会
- Linux 命令之软硬连接的创建-ln
- 财富的秘密之工具
- 影评之《宝贵的秘密》
- 操作系统之存储的秘密
- linux:shell命令之软硬链接
- ATL布幔下的秘密之窗口类的秘密
- ATL布幔下的秘密之窗口类的秘密
- ATL布幔下的秘密之窗口类的秘密
- 你是否拥有技术管理者必备的能力及解决常见问题 之 技术来源于一线,永远不能脱离一线。
- ATL布幔下的秘密之模板技术
- 探索C++的秘密之详解extern
- 探索C++的秘密之详解extern
- 抽象类和接口
- 中关村修电脑,被坑了
- ProgressDialog进度条使用(有可运行Demo)
- redmine在说明、概述或者描述的位置贴图操作
- 程序员都该阅读的书
- 一线研发之声 之 软硬交互“自学习匹配”的秘密
- 第86天
- Xenserver中导出vhd
- 我刚写的一个反序输出每个英文单词的小程序,大神看下哪里需要调整
- POJ 2386 Lake Counting
- HDU 3972 1 M possible(思维)
- UIImage 图片处理:截图,缩放,设定大小,存储
- log4j在spring应用中的配置
- ViewPager onPageChangeListener总结