UCD 系列数字电源控制器包括UCD3000 和UCD9000 两个系列,所使用的通讯协议都是电源管理总线(PMBus)协议。PMBus 有4 条信号线,分别是时钟、数据、告警以及控制。PMBus 传输层是基于低成本系统管理总线(SMBus),而SMBus 是个功能更为强健的标准I2C 串行总线的版本,具有分组错误检查和主机通知功能。为了提高通讯数据的可靠性,它们都内置了通讯数据错误校验(PEC)功能。UCD 系列控制器主要利用循环冗余校验(CRC)来实现PEC 功能。本文首先简单介绍CRC 原理,然后通过实例来说明PEC 校验字节如何产生的。
1 引言
当主机和从机(UCD 数字电源控制器)通讯时,需要保证数据的准确性。而如何保证传输数据的准确性,那就需要有一个方法来进行校验。UCD 系列控制器采用循环冗余校验(CRC)来计算PEC 校验码。UCD 控制器PEC 功能可以禁止,不过不建议这样做。当编写主机和UCD 控制器通讯控制程序、编写自己的图形界面软件(GUI)、或者烧写器厂家编写支持UCD 控制器的烧写器代码等,都需要使用PEC 功能。对于一些重要的通讯数据,一定要校验数据的准确性,否则可能引起问题。例如,主机发送命令调节电源输出电压,从机在接收到主机命令后,需要检查一下自己计算的PEC 码和主机发送的PEC 码是否一致,如果不一致,就不执行操作。如果没有PEC 校验,当通讯数据出错的情况下,如调压数据出错,那么从机依然会执行操作,去把输出电压调节到一个错误的电压值上。
2 CRC的基本原理
CRC 即循环冗余校验码(Cyclic Redundancy Check),是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。利用CRC 进行检错的过程可简单描述为:在发送端根据要传送的k 位二进制码序列,以一定的规则产生一个校验用的r 位监督码(CRC 码),附在原始信息后边,构成一个新的二进制码序列数共k+r 位,然后发送出去。在接收端,根据信息码和CRC 码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则,在差错控制理论中称为“生成多项式”。
在 UCD 系列控制器中采用8 位循环冗余校验(CRC-8),生成多项式为:C(x) = x8 + x2 + x1 + 1,表示成二进制是0b100000111。
3 PEC校验码的产生
上位机在和UCD 控制器通讯过程中,需要根据CRC-8 产生相应的PEC 校验码。下面分别给出读写命令校验码的产生过程。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !