打开客服菜单
contact us

联系我们

IC解密首页 > 芯片资讯 > 解密单片机W78LE52 与 EMC78P458,是怎么“交谈”?
解密单片机W78LE52 与 EMC78P458,是怎么“交谈”?
编辑 :

专业芯片解密公司

时间 : 2020-05-30 10:32 浏览量 : 56

解密单片机实例(双单片机结构,多功能低功耗系统)

(1)硬件

W78LE52 与 EMC78P458 组成一个电池供电、可远程通信的工业流量计。78P458 采用 32.768kHz 晶振,工作电流低,不间断工作,实时采集传感器的脉冲及温度、压力等一些模拟量;W78LE52 采 11.0592MHz 晶振,由于它的工作电流较大,采用间断工作,负责流量的非线性校正、参数输入、液晶显示、与上位机通信等功能,它的 UART 用于远程通信。2 个单片机共用 1 片 I2C 接口的 FRAM(FM24CL16)组成二主一从的 I2C 总线控制方式,W78LE52 的 P3.5、P3.2 分别与 78P458 的 P51、P50 连接作握手信号线 A 与 B。我们把握手线 A(简称 A 线)定义为总线控制、指示线,主要用于获取总线控制权与判别总线是否“忙”;握手线 B(简称 B 线)定义为通知线,主要用于通知对方取走数据。

解密单片机

(2)I2C 总线仲裁

由于我们采用的是二主一从的 I2C 总线方式,因此防止 2 个主机同时去操作从机(防冲突)是一个非常重要的问题。带有硬件 I2C 模块的器件一般是这样的,器件内部有 1 个总线仲裁器与总线超时定时器:当总线超时定时器超时后指示总线空闲,这时单片机可以发出获取总线命令,总线仲裁器通过一系列操作后确认获取总线成功或失败;超时定时器清零,以后的每一个 SCL 状态变化对总线所有主机的超时定时器进行清零,以防止它溢出,指示总线正处于“忙”状态,直到一个主机对总线控制结束不再产生 SCL 脉冲;超时定时器溢出,总线重新回到“空闲”状态。但是目前大多数单片机没有配备硬件 I2C 模块,而且当 2 个主机的工作频率相差较大时,超时定时器定时值只能设为较大的值,这样也会影响总线的使用效率。

(3)通信协议

一个可靠通信体系,除了好的硬件电路外,通信协议也至关重要。在单片机系统 RAM 资源与执行速度都非常有限的情况下,一个简捷有效的协议是非常重要的。下面具体介绍一种比较适用于单片机通信的协议,数据以包的形式传送。数据包结构:

①包头——指示数据包的开始,有利于包完整性检测,有时可省略;

②地址——数据包要传送的目标地址,若只有双机通信或硬件区分地址可以省略;

③包长度——指示整个数据包的长度;

④命令——指示本数据包的作用;

⑤参数——需要传送的数据与参数;

⑥校验——验证数据包的正确性,可以是和校验、异或校验、CRC 校验等或者是它们的组合;

(4)通信流程

首先,要在 FRAM 里划分好各个区域,各个单片机的参数区、数据接收区等。然后,单片机可以向另一个单片机发送数据包,发送完毕之后通过向握手线 B 发送 1 个脉冲通知对方取走数据;接收方读取数据并进行处理后,向 FRAM 内发送方的数据接收区写入回传数据或通信失败标志,再向握手线 B 发送 1 个脉冲回应发送方。

如果需要单片机 2 发送的话,只需交换一下操作过程即可。

总结

通过实践可知,以上方法是可行的。与其它方法相比具有以下优点:

①简单。占用单片机口线少(SCL、SDA、握手线 A、握手线 B)。

②通用。软件模拟 I2C 主机方式,可以在任何种类的单片机之间通信。

③高效。由于采用数据缓冲,可以在不同时钟频率、不同速度的单片机之间通信;读写数据时,可以 I2C 总线的最高速度进行,可以实现 1 次传送大量数据;在一个单片机向 FRAM 传送数据时,另一个单片机无须一一作出响应或等待,可以进行其它程序操作,提高软件工作效率。

④灵活。通信硬件接口对于各个单片机是对等的,通过软件配置,每个单片机既可以根据需要主动发送通信,也可以只响应其它单片机的呼叫。

以下是需要注意的地方:

①为了提高通信效率,握手线 B 最好使用中断端口,负脉冲宽度一定要满足速度较低单片机中断信号要求。如果没有中断的话应增加 1 条口线,用改变端口状态的方法通知对方,等待对方查询,而不是负脉冲。

②向对方发送负脉冲时,应屏蔽自己的中断。

③由于参数与通信缓冲区同时设在同一片 FRAM 内,要避免对参数部分的误操作。一个较好的解决办法是把参数存放在地址的后半部分(A2=1),在进行通信操作时,把 FRAM 的 WP 引脚拉高(地址在后半部分的单元写保护),这样可以有效地防止测验时对参数区误操作。

④由于 I2C 总线在一个时间段内只有 1 个主机和 1 个从机,所以当 1 个单片机正在写通信数据时,另一个单片机是不能对 FRAM 进行操作的。如果需要实时、频繁地读取 FRAM 中参数的话,请预先将参数读入 RAM 单元使用或另外增加专门存放参数的芯片。

      欣荣科技专业提供单片机解密电路板抄板PCBA加工生产等一条龙服务,欢迎您的来电:

      0755-29558766  13418519739   QQ:905156827  林工


cache
Processed in 0.006406 Second.