IPMIUARTPROTOCAL.docx

上传人:b****6 文档编号:5127254 上传时间:2022-12-13 格式:DOCX 页数:13 大小:53.18KB
下载 相关 举报
IPMIUARTPROTOCAL.docx_第1页
第1页 / 共13页
IPMIUARTPROTOCAL.docx_第2页
第2页 / 共13页
IPMIUARTPROTOCAL.docx_第3页
第3页 / 共13页
IPMIUARTPROTOCAL.docx_第4页
第4页 / 共13页
IPMIUARTPROTOCAL.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

IPMIUARTPROTOCAL.docx

《IPMIUARTPROTOCAL.docx》由会员分享,可在线阅读,更多相关《IPMIUARTPROTOCAL.docx(13页珍藏版)》请在冰豆网上搜索。

IPMIUARTPROTOCAL.docx

IPMIUARTPROTOCAL

IPMI串口通信设计

ReleaseHistory

Version

Comment

Author

Data

0.1

Initialrelease

gyl

2007-5-15

0.2

Addcommand:

E508,E509,E50AModifycommand:

E506

gyl

2007-8-3

0.3

Addeventcommand0x5EFEReadregcommandfunctionadjust

gyl

2007-8-31

0.4

Addmoreevent

gyl

2008-1-22

0.5

Logenabledataadjust

gyl

2008-4-7

0.6

ERRlogadd

gyl

2008-05-13

0.7

Addresetsys,Keepconnection,addeventforfpgaboot

gyl

2008-07-25

0.8

AddmutilDSPreseterrorissue(seemarkread)

Gyl

2008-07-26

0.9

Addnetportlinkingevent

Gyl

2008-07-31

1.0

Addboardinfohandle(replace0xE50B)

Gyl

2008-08-20

1.1

Gyl

2008-08-21

1.

串口通信数据报格式(SLIP)

下面的规则描述了SLIP协议定义的帧格式:

  1) 数据报以一个称作END(0xc0)的特殊字符结束。

同时,为了防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个END字符(如果有线路噪声,那么END字符将结束这份错误的报文。

这样当前的报文得以正确地传输,而前一个错误报文交给上层后,会发现其内容毫无意义而被丢弃)。

  2) 如果报文中某个字符为END,那么就要连续传输两个字节0xdb和0xdc来取代它。

0xdb这个特殊字符被称作SLIP的ESC字符,但是它的值与ASCII码的ESC字符(0x1b)不同。

  3) 如果报文中某个字符为SLIP的ESC字符,那么就要连续传输两个字节0xdb和0xdd来取代它。

  图2-2中的例子就是含有一个END字符和一个ESC字符的IP报文。

在这个例子中,在串行线路上传输的总字节数是原报文长度再加4个字节。

2.

命令集索引

CMD

COMMENT

DATA

ACK

DATA

0xE500

FPGAimagedown

image

0x5E00

Ackstatus

0xE501

DSPbootloaderdown

image

0x5E01

Ackstatus

0xE502

FPGAboot

Boardnum

0x5E02

Ackstatus

0xE503

DSPboot

Board+dspnumber

0x5E03

Ackstatus

0xE504

Setserialportbaud

Port+Baudrate

0x5E04

Ackstatus

0xE505

Settargetlogenable

Enableport

0x5E05

Ackstatus

0xE506

UpdateEPROM

EPROMheadanddata

0x5E06

Ackstatus

0xE507

ResetDSP

Samewith0xE503

0x5E07

Ackstatus

0xE508

ReadRegister

Registertype

0x5E08

Registerdata

0xE509

WriteRegister

Registertypeanddata

0x5E09

Ackstatus

0xE50A

UpdateAMCfirmware

NOTSUPPORT

0x5E0A

Ackstatus

0xE50B

Getfirmwareversion

Boardnum

0x5E0B

Boardinfo

0xE50C

Geterrorlog

NULL

0x5E0C

Errorloginfo

0xE50D

ResetSYS

NULL

0x5E0D

Ackstatusornoresponse(doreset)

0xE50E

keepconnect

Connectiontimesetting

0x5E0E

Ackstatus

0x5EFE

Eventmsgupload

0x5EFF

Loginfoupload

3.

主机发送命令数据到目标机帧格式:

Cmd:

请求命令字,可以扩展。

0xE500:

FPGAfirmwaredownload.

Sn:

sequencenumber(0,1,2,3,….)

Payloadlength:

thelengthofpayloaddata。

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

FPGAfirmwareimage

0xE501:

dspfirmwaredownload.

Sn:

sequencenumber(0,1,2,3,….)

Payloadlength:

thelengthofpayloaddata。

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

DSPfirmwareimage.

0xE502:

FPGAboot.

Sn:

0

Payloadlength:

1。

Payloadcrc:

0.

Headcrc:

the16bitcrcchecksumofhearder

Data:

boardnumber(1byte)

0xE503:

dspboot

Sn:

0

Payloadlength:

1

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

boardnumber(1byte),dspnumber(1byte)

Noteboardnumber0~2AMCBoard

0xE504:

setserialportbaud.

Sn:

0

Payloadlength:

N

Payloadcrc:

0.

Headcrc:

the16bitcrcchecksumofhearder

Data:

4byte(port),4byte(Baudrate)

0xE505:

settargetlogenable.

Sn:

0

Payloadlength:

1

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

0x03(uart3octern),0x0(uart02468),0xFF(disable)

0xE506:

updateEPROM.

Sn:

sequencenumber(0,1,2,3,….)

Payloadlength:

2+thelengthofpayloaddata。

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

1byte(epromtype),1byte(boardnum),Epromdata()

0xE507:

ResetDSP

Sn:

0

Payloadlength:

1

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

1byte(boardnumber),1byte(dspnumber)

0xE508:

ReadRegister

Sn:

0

Payloadlength:

5

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

1byte(device:

0->switch;1->sensor,2->fan,3->power,4->hotswap),

4byte(switch->addr,sensor->(boardnumber:

2byte,sensornumber:

2byte),

fan->(fannumber:

4byte),power->(boardnumber:

4byte),

hotswap->(boardnumber:

4byte))

Byte0

Byte1

Byte2

Byte3

Byte4

Switch

0

Switchaddr

Sensor

1

boardnumber

Sensornum

fan

2

fannumber(0)

power

3

boardnumber

Hotswap

4

boardnumber

ResetOcten

5

Cable

6

Note:

boardnumber0:

MCH1~3AMC4PowerBoard

Sensornum:

thermal0~1

0xE509:

WriteRegister

Sn:

0

Payloadlength:

9

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

1byte(device),4byte(addr),4byte(data)

0xE50A:

UpdateAMCfirmware(onlysupportbyMCH).

Sn:

0

Payloadlength:

2

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

1bytes(boardnum(0xFF==ALLboard))

1bytes(Firmwaretype0x00==FPGA,0x01==DSP)

0xE50B:

Getfirmwareversion.

Sn:

0

Payloadlength:

2

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

1bytes(boardnum(mch0123+powerboard4))

1bytes(researve)

0xE50C:

GetERRORLOG.

Sn:

0

Payloadlength:

1

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

1bytes(reserved)

0xE50D:

ResetSYS.

Sn:

0

Payloadlength:

1

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

1bytes(reserved)

0xE50E:

keepconnect.

Sn:

0

Payloadlength:

1

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

1bytes(0x**,after**secnotreceivedkeepingwillresetoctern,

0xFFstopkeep,0x00keeping)

//Note 即使没有启动KEEP,也会在约30min后重启octern

//everyticks=10sec*254~=42min;实际使用必须<30分钟

4.

目标机发送确认或者LOG到主机

Cmd:

应答命令字,和请求配对

0x5E00:

AcktheFPGAfirmwaredownload.

Sn:

equalthesequencenumberofthereceived

Payloadlength:

thelengthofpayloaddata。

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

0x01(OK),0x00(failure)

0x5E01:

Ackthedspfirmwaredownload.

Sn:

equalthesequencenumberofthereceived

Payloadlength:

thelengthofpayloaddata。

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

0x01(OK),0x00(failure)

0x5E02:

AcktheFPGAboot.

Sn:

0

Payloadlength:

thelengthofpayloaddata

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

0x01(OK),0x00(failure)

0x5E03:

Ackthedspboot

Sn:

0

Payloadlength:

thelengthofpayloaddata

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

0x01(OK),0x00(failure)

0x5E04:

Acksetserialportbaud.

Sn:

0

Payloadlength:

thelengthofpayloaddata

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

0x01(OK),0x00(failure)

0x5E05:

settargetlogenable.

Sn:

0

Payloadlength:

thelengthofpayloaddata

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

0x01(OK),0x0(failure)

0x5E06:

AcktheupdateEPROM.

Sn:

equalthesequencenumberofthereceived

Payloadlength:

thelengthofpayloaddata。

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

0x01(OK),0x0(failure)

0x5E07:

AcktheresetDSPcommand

Sn:

0

Payloadlength:

1

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

0x01(OK),0x0(failure)

0x5E08:

AcktheReadReg

Sn:

0

Payloadlength:

6

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

6byte(status:

1byte(OK),0(failure)),

device:

0->switch;1->sensor,2->fan,3->power,4->hotswap

4bytedata(switch->regdata,

Sensor->tmp(С),fan->rpm,

power->managerpower2byte(1OK,0failure),

payloadpower2byte(1OK,0failure),

Hotswap->(1,板子插入,0未插)))

Byte0

Byte1

Byte2

Byte3

Byte4

Byte5

Switch

status

0

registerdata

Sensor

status

1

tmp

fan

status

2

RPM

power

status

3

managerpw

payloadpw

Hotswap

status

4

Inseartion

ResetOcten

Status

5

Cable

Status

6

State

Note:

cablestate(bit0~3figurethecableport1-4connection)

0x5E09:

AcktheWriteReg

Sn:

0

Payloadlength:

1

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

1byte(status:

1(OK),0(failure))

0x5E0A:

AcktheUpdateAMCfirmware(onlysupportbyMCH).

Sn:

0

Payloadlength:

1

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

1byte(status:

1(OK),0(failure))

0xE50B:

AckGetfirmwareversion.

Payloadlength:

N

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

Nbytesdataofstring

Format:

“AVONACO”+ProductName+HardwareVersion+SN+PartNum(forFirmwareversion)

0x5E0C:

GetERRORLOG.

Sn:

0

Payloadlength:

xx

Payloadcrc:

the16bitcrcchecksumofPayloaddata.

Headcrc:

the16bitcrcchecksumofhearder

Data:

1bytes(Newlognum)在get一次后将清零,有新的log累计,然后log依次后移,保证最前的都是最新的errlog

{//*5items

1bytes(errorlogtype)

1bytes(errorlognum)

1bytes(boardnum)//(0x10:

MCH0x727476AMC0xC2PowerBoard)

1bytes(reserved)

}

LOGTY

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1