
串行闪存加载程序
闪存加载器。由于主机设备为主,在SSI的闪存加载设备上不
需要确定,因为它是由主机直接提供的时钟。
A.3
数据包处理
所有通信,除UART自动波特率,通过定义数据包做了
被确认(ACK)或否认( NAK)的设备。分组使用相同的
用于接收和发送数据包,其中包括该方法的格式用于确认成功或
不成功的数据包的接收。
A.3.1
包格式
发送和接收来自设备的所有数据包使用下面的字节打包格式。
结构
{
无符号字符型ucSize ;
无符号字符型ucCheckSum ;
无符号字符型数据[ ] ;
};
ucSize
ucChecksum
数据
收到的第一个字节存储传输的总大小包括
的大小和校验和字节。
这适用于仅在数据缓冲区中的字节的一个简单的校验和。
该算法是数据[ 0] +数据[1] + ... +数据[ ucSize -3] 。
这是供所述装置,其被格式化为原始数据
某种形式的命令接口。应该有
ucSize–2
到或从设备设置在该缓冲器中的数据字节。
A.3.2
发送数据包
该数据包的实际字节可单独发送或者一次全部;唯一的限制在于
命令的原因快闪存储器存取应限制下载大小,以防止丢失字节
在Flash编程。这个限制是指在描述的序列部分进一步讨论
闪存加载器的命令, COMMAND_SEND_DATA (见“ COMMAND_SEND_DATA
448页( 0X24 )“)。
一旦分组被正确格式化由主机,应该送出该UART或
SSI接口。那么主机需要查询的UART或SSI接口返回的第一个非零数据
从设备。的第一非零字节要么是一个ACK(的0xCC )或者从一个NAK ( 0x33 )字节
设备指示该分组被成功接收(ACK)或失败(NAK) 。这
并不表示该命令的数据包中的数据部分发出的实际内容
是有效的,只是为接收到的数据包正确。
A.3.3
接收数据包
闪速加载器发送的数据中,它接收到一个数据包的格式相同的分组。闪存加载器
可传送前导零的数据之前的数据的第一个字节的实际发送出去。的第一非零字节
是包,接着检验和字节的大小,最后接着是数据本身。那里
是第一个非零字节从闪存加载器发送后的数据没有中断。一旦设备
与闪存加载器通信接收所有字节,它必须是ACK或NAK数据包
指示该传输是成功的。发送一个NAK到后适当的响应
闪存加载器重新发送失败,并再次请求数据的命令。如果需要的话,该
主机可以发送ACK / NAK信息信号发送下到闪存加载之前的前导零,作为
446
初步
2007年9月2日