|
一、探究背景
从事电子行业的朋友,特别是从事嵌入式工作的朋友,都知道逻辑分析仪这个工具,用它来抓协议是非常方便可靠的。基本上所有的标准总线协议, 逻辑分析仪都能分析出来。
但是,对于非标准的协议,逻辑分析仪就无能为力了。因为逻辑分析仪 所分析的协议是标准的、已知的、预编程分析的。所以,有必要对非标准的 协议进行处理。
接下来,我会在本文中讨论和制作一种非标准单总线协议辅助工具。
二、单总线的特点
单总线,就是主机和从机在一根线上来回传输数据。由于只有一根线, 所以数据和时钟都包含在内,它的传输时“半双工”的,即可以主机发从机 收或者从机发主机收。有两种方向但不能同时进行,所以称为“半双工”。
还有就是,总线空闲时,一定是高电平,一般需要外接上拉电阻把总线拉高。
主机和从机的通信端口一般都是配置为输入悬浮,即端口本身不接上拉电阻 和下拉电阻,端口本身的电平是不确定的,所以需要外接一个上拉电阻将总 线拉高。在通信时,发送方端口被配置为输出模式来拉低电平,端口被配置 为输入悬浮来释放总线;接收方的端口配置为输入悬浮、下降沿中断来检测 和获取数据。值得注意的是,单总线对时序比较敏感,如果传输的数据时序 稍微有偏差,通信往往就失败。DS18B20温度传感器就是标准单总线协议通 信的,这个比较典型,网上也有很多例程和讲解,单总线入门可以从DS18B20 开始。
三、非标准单总线分析的难点
虽然是非标准的单总线,但其硬件方面还是跟标准的单总线一样。不同的 地方就是是传输协议了,有许多产品采用非标准单总线协议来识别自家产品,比 PSP 如日本的数码相机电池、 掌机电池、部分手机电池等。它们采用非标准协议 主要是防止别人生产兼容产品,而且价格也是比较高的,当然对消费者是不利的。
以相机和电池通信为例。把相机和电池的通信端子和它们的负极用线引出 来,都接到逻辑分析仪上,我们会看到一大堆高低电平通信,而且还不是标准的 单总线协议,根本无从下手。
那么问题来了:如果要分析相机与电池的非标准单总线协议,如何知道总 线到底是被相机拉低了还是被电池拉低了?
不解决这个问题,后面的协议分析就无法进行下去了!!!
四、解决思路
1、相机和电池通信的等效模
查看附件图片
2、设计模型
查看附件图片
3、优化后模型
查看附件图片
4、实际电路设计
查看附件图片
5、实际测试
查看附件图片
五、总结
本文从最简单的模型分析判断总线被哪方拉低的可能性,然后逐步完成电路
的设计,最后搭建电路并且经过了测试。对于非标准的协议辅助分析,本工具能派上用场的。
|
|