新闻中心

EEPW首页>电源与新能源>设计应用> 基于GUI软件配置UCD3138数字电源PMBUS命令

基于GUI软件配置UCD3138数字电源PMBUS命令

作者: 时间:2013-06-25 来源:网络 收藏

而在pmbus_read_two_byte_handler()函数中的关键代码为:

pmbus_buffer[1] = value >> 8;

pmbus_buffer[0] = value 0xff;

pmbus_buffer 字节中的数据会最终上传到GUI 软件中。

(4)、数据转换函数的设计

◎ Linear Data Format 数据格式

上文提到,来自GUI 的数据遵循PMBUS 协议,其格式为Linear Data Format。如图5,其低11 位为“尾数”,以补码形式保存;高5 位为“指数”,亦是以补码形式保存。该数据与实际数据的关系为:X=Y× 2N 。

PMBUS 协议中的Linear Data Format

图 5:PMBUS 协议中的Linear Data Format

◎ ARM 编译器中的浮点型数据

如图6,为ARM 编译器中对单精度浮点型数据的存储格式。其最高位为符号位,接下的8 位为指数,后面的23 位为尾数。在编译器中定义的浮点数据,将以该格式存储在硬件存储空间。

ARM 编译器中的浮点型数据格式

图 6:ARM 编译器中的浮点型数据格式

◎ 定义结构体和联合体

如下, 定义了结构体FLOAT_ELEMENTS , 用以保存上文提到的浮点型数据。还定义了联合体FLOAT_OPEN,成员包括浮点型数据“all”和结构体类型数据“bit”,用以保存转换完毕的浮点型数据。

struct FLOAT_ELEMENTS {

Uint32 SIGN:1;

Uint32 EXPONENT:8;

Uint32 MANTISSA:23;

};

union FLOAT_OPEN {

float all;

struct FLOAT_ELEMENTS bit;

Uint32 word;

};

◎ 转换函数linear11_to_float()

该函数完成将来自GUI 的Linear Data Format 格式的数据转换为浮点型数据,并作为返回值返回。包含的关键代码如下。

定义变量,包括整型“mantissa”和“exponent”及结构体变量“final”。

int16 mantissa, exponent;

union FLOAT_OPEN final;

下面代码完成对输入参数的分析,并扩展到16 位。如果输入参数的尾数是负值,前5 位补1;如果是正值,前5 位补0。

if(linear11 0x0400)// if mantissa is negative

{ mantissa = linear11 | 0xfc00; //put it in there at minimum mantissa }

else

{ mantissa = linear11 0x07FF; }

下面代码首先是将mantissa 左移16 位(16+16=32),以使其数据长度符合单精度浮点型数据的长度,然后exponent 减去16,保证了原始数据的大小没有变化。

final.all = ((int32)mantissa) 16; //set it up for minimum exponent.

exponent = (linear11 >> 11) - 16; //get exponent to match shifted value

下面代码首先判断单精度浮点型的指数是否为负。如果是负,则改写其为零,原因是对应的“输出过流保护点”不会出现负值;如果是正,则将指数信息放置在单精度浮点型数据的指数位置。

if((final.bit.EXPONENT + exponent) 0)//if it's so low it will wrap

{ final.bit.EXPONENT = 0; }

else

{ final.bit.EXPONENT = final.bit.EXPONENT + exponent; }

上述操作完毕后,final.all 中就保存了转换后的浮点型数据,因此可以作为返回值返回。

return final.all;

2.4 操作流程图

上述所有操作的流程图见图7。

UCD3138 接收信息流程图

图 7:接收信息流程图

3 删除GUI 信息栏

图 8:删除GUI 中的信息栏

此时重新编译软件并下载到后,GUI 中将不再会出现该信息栏,见图4。但软件中依然保留有对该PMBUS 命令的接收、转换和处理等函数,亦需要删除,在此不再赘述。

4 小结

通过上文两个实例的分析可知,用户在GUI 软件中可以灵活的添加或删除PMBUS 命令对应的信息栏,提高了GUI 的灵活性。该操作主要包括PMBUS 命令的使能或屏蔽及UCD3138 软件添加或删除相应处理函数等两大部分。



关键词:数字电源UCD3138

评论


相关推荐

技术专区

关闭