字节协议下载

协议下载  时间:2021-04-18  阅读:()
AN-881应用笔记OneTechnologyWayP.
O.
Box9106Norwood,MA02062-9106,U.
S.
A.
Tel:781.
329.
4700Fax:781.
461.
3113www.
analog.
com通过LIN—协议4进行Flash/EE存储器编程作者:AudeRichardRev.
0|Page1of8表1.
标识示例行LFCSP行1ADuC7034行2BCPZ行3A40#日期代码行4组装批次号简介ADuC7034的一个主要特性是能够将代码在线下载至片内Flash/EE存储器,这种在线代码下载通过LIN通信总线执行.
本应用笔记描述ADuC7034器件(协议4)实现的下载协议,以便用户能够开发自己的LIN编程工具来进行串行生产编程或应用更新.
主机指的是用来下载数据至ADuC7034的主机(微控制器、DSP或其他机器),加载程序特指ADuC7034中固化的串行下载固件.
注意,本应用笔记仅描述协议4.
应用笔记AN-946("通过LIN—协议6进行Flash/EE存储器编程")描述协议6,详情请访问www.
analog.
com.
器件标识的第3行显示所用协议(参见表1).
A40表示协议4的发行版本,A60则表示协议6的发行版本.
该协议在19.
2k波特率时兼容LIN2.
0,每个数据包可传输8字节数据.
据估算,该协议可在约35.
9秒内擦除或下载30000字节数据至ADuC7034器件.
运行ADuC7034加载程序为了实现LIN下载,只有当NTRST在复位期间为低电平,并且Flash/EE存储器地址0x00080014的内容不是0x27011970及页0校验和时,ADuC7034才会进入加载程序模式,如图1所示.
一般情况下,NTRST保持低电平,进入下载模式与否由Flash地址0x00080014的内容决定.
通常而言,在用户应用中,Flash地址0x00080014的值不是0xFFFFFFFF,因此,用户代码必须具有一个内置机制来毁坏地址0x00080014或擦除页0(Flash地址0x0至Flash地址0x200),并且复位器件.
这种机制支持进入下载模式,以便对器件重新编程.
理想情况下,Flash地址0x00080014的值应最后编程,以便在电源发生故障时,或者在对程序主体进行重新编程期间发生错误时,能够重新进入下载模式.
页0的校验和指页0中的所有半字之和,不包括地址0x00080014的两个半字.
该校验和必须存储在地址0x00080014.
AN-881Rev.
0|Page2of8目录简介.
1运行ADuC7034加载程序1用户代码和系统代码要求.
4通过LIN分配PID4LIN下载协议命令.
5安全写入帧5地址写入帧6验证命令校验和计算.
6数据写入帧7状态读取帧7更多信息.
8AN-881Rev.
0|Page3of8INITIALIZEON-CHIPPERIPHERALSTOFACTORYCALIBRATEDSTATEFLAGPAGE0ERRORLINCOMMANDJTAGMODENTRST=1KEYPRESENT0x14=0x27011970PAGEERASED0x14=0xFFFFFFFFRESETCOMMANDCHECKSUMPRESENT0x14=CHECKSUMNONONONONOYESYESYESYESNOYES06446-001ERASEPAGE0SOFTWARERESET图1.
进入下载模式AN-881Rev.
0|Page4of8表2.
LIN诊断帧字节描述值字节0节点地址(NAD)0x7F字节1协议控制信息(PCI)0x06字节2服务标识符(SID)0xB1字节3ADI公司供应商IDLSB0x3A字节4ADI公司供应商IDMSB0x00字节5消息IDLSB0x00/0x01/0x02/0x03字节6消息IDMSB0x00字节7用户自定义PID用户设定值表3.
默认PID消息IDPID默认帧ID0x0000安全写入0xF00x300x0001地址写入0xB10x310x0002数据写入0x320x320x0003状态读取0x730x33用户代码和系统代码要求如需从用户代码进入下载模式,用户代码必须更改地址0x00080014,使其不是0x27011970或校验和.
新代码根据该标准通过LIN下载后,就必须进行复位.
在用户模式下,请使用以下步骤实现可靠的输入序列:1.
使能Flash/EE擦除和写入命令(FEExMOD[3]).
2.
去除即将重新编程页面上的所有保护,至少包括页面0.
3.
通过将值0x00000000写入地址0x00080014使地址0x00080014失效.
4.
产生复位指令.
5.
加载程序进入下载模式.
6.
根据"通过LIN分配PID"部分的描述设置保护识别符.
7.
发送L命令以使能后续LIN下载命令.
8.
发送下载命令和数据,对所需页面重新编程.
在这一阶段,地址0x00080014应给定的值为0xFFFFFFFF.
9.
验证所有已编程的页面.
若检测到误差,可从步骤4重新开始编程.
10.
将校验和编程设置至地址0x00080014.
11.
发送R命令,以产生软件复位指令.
12.
器件进入用户模式.
在用户模式下,必须确保整个序列不会意外执行.
这一机制取决于控制地址0x00080014的用户代码控制功能.
如果未能实施,用户就无法通过LIN接口进行下载.
通过JTAG接口下载依然可以实现,因为复位时,NTRST处于高电平(连接JTAG仿真器),用户代码可以执行,不受地址0x00080014影响.
通过LIN分配PIDADuC7034具有默认分配的PID.
为了重新定义这些PID,可采用LIN诊断帧(0x3C).
ADuC7034不会回复LIN诊断帧.
通过LIN分配PID时采用下列顺序:1.
下载序列开始时,加载程序针对0x3C的PID检查所有帧.
若LIN帧不包含该诊断PID,就会忽略该LIN帧.
2.
一旦收到PID为0x3C的LIN诊断帧,ADuC7034器件就会检查字节0到字节4的LIN帧.
若其包含NAD、PCI、SID和供应商ID,如表2所示,ADuC7034器件就将字节5的消息IDLSB分配至字节7中指定的PID.
3.
LIN主机发送这些数据包中的一至四个,包含所需的用户定义PID.
每个PID都和一个消息ID相关,如表3所示.
安全写入PID必须写入,而且必须是写入的最后一个LIN诊断帧.
4.
加载程序现在使用安全写入PID只识别L命令.
5.
接收到L命令后,R、E、W和V命令,以及数据写入和状态读取帧就可以采用这四个PID进行发送.
不采用这四个PID的命令会被忽略.
重新分配地址写入、数据写入和状态读取的PID是可选项.
分配安全写入帧PID不是可选项,必须是诊断帧分配的最后一个PID.
诊断帧的相关校验和是传统校验和,也就是说,校验和只根据数据计算.
其他所有分组都采用增强校验和.
奇偶校验位构成了PID的一部分.
AN-881Rev.
0|Page5of8表4.
命令描述L该命令用于进入LIN下载模式.
仅在分配安全写入PID之后使用.
E该命令用于擦除Flash/EE页面.
W该命令用于向Flash/EE写入数据.
V该命令用于在Flash/EE中的额定范围内产生32位校验和.
R该命令用于产生软件复位.
有关软件复位的更多信息,请参阅ADuC7034数据手册.
表5.
LIN诊断帧LIN帧PID默认PID值有效命令命令结果安全写入0xF0L进入LIN下载模式R复位Flash/EE地址写入0xB1E擦除Flash/EEW写入Flash/EEV验证Flash/EE数据写入0x32用户设定值Flash/EE的数据状态读取0x73用户设定值状态读取表6.
LIN进入下载模式帧字节描述值字节描述值字节0命令L0x4C字节1保留供未来使用0xFF字节2LIN下载输入键0x42字节3保留供未来使用0xFF字节4保留供未来使用0xFF字节5保留供未来使用0xFF字节6保留供未来使用0xFF字节7保留供未来使用字节0命令R字节1保留供未来使用字节2LIN下载输入键字节3保留供未来使用字节4保留供未来使用字节5保留供未来使用字节6保留供未来使用字节7保留供未来使用0xFF表7.
LIN复位帧0x520xFF0xBD0xFF0xFF0xFF0xFF0xFFLIN下载协议命令ADuC7034LIN下载协议包含五个命令(参见表4).
这五个命令(如表4所示)在四个PID之间分配使用,如表5所示.
对与Flash/EE地址写入PID相关的所有命令而言,存储器的物理位置0x00080000至0x000877FF应用作映射区域0x00000000至0x000077FF的对应位置.
若使用映射地址,执行命令就不会成功.
所有的数据包均为8位长度,闲置/保留分组包含0xFF.
安全写入、Flash/EE地址写入、数据写入和状态读取LIN帧具有增强校验和,即根据数据和PID计算校验和.
安全写入帧L命令LIN进入下载模式命令使加载程序进入LIN下载模式.
通过诊断帧接收时,该命令与安全写入帧PID相关.
语法:例如,要进入下载模式,应使用以下命令:需要采用键B(0x42)来成功执行命令.
R命令复位命令产生软件复位.
有关软件复位含义的更多信息,请参阅ADuC7034数据手册.
语法:例如,要启动复位,应使用以下命令:AN-881Rev.
0|Page6of8表8.
LIN擦除Flash/EE帧命令E0x45起始地址LSB不适用起始地址,第二字节不适用起始地址,第三字节不适用起始地址MSB不适用LSB字节数不适用MSB字节数不适用保留供未来使用0xFF表9.
LIN写入Flash/EE帧0x57用户设定值用户设定值用户设定值用户设定值用户设定值用户设定值0xFF表10.
LIN验证Flash/EE帧0x560xFF∑=rebmuNfosetyBLocationStarttiBsdroWChecksum16地址写入帧E命令擦除Flash/EE命令可擦除Flash/EE页面.
对具有512字节页面的Flash/EE而言,分成512个页面的规定字节数会被擦除.
字节数应为512的倍数,否则页面数会取整处理.
擦除命令只对Flash/EE地址写入的PID做出响应.
语法:例如,要擦除页面0和页面1,应使用以下命令:该LIN写入Flash/EE帧之后是数据包.
数据包与Flash/EE数据写入的数据写入PID相关.
建议最后对页面0进行编程设置,地址0x00080014除外.
规定的字节数不超过512.
发送8字节数据包.
W数据包和所有的数据包都发送完毕后,应对写入区域执行验证命令.
写入过程不会检查写入的数据.
V命令验证命令计算选定页面所有半字的32位和,并将计算结果存入状态存储器,可通过状态读取命令回读.
若选择非页面对齐地址或字节数进行验证,该值就按最接近的页面数取整.
验证命令只对Flash/EE地址写入的PID做出响应.
语法:例如,要生成Flash/EE第二和第三个页面(1024字节)的校验和,应使用以下命令:验证命令校验和计算验证命令生成32位值,代表从起始位置开始的16位值之和,其针对所需的字节数在V帧中规定.
对一个512字节页面而言,ADuC7034器件收到V数据包后,需要500μs时间,直到任何后续LIN帧开始.
W命令写入Flash/EE命令准备向已擦除的Flash/EE页面写入数据.
字节5和字节6中定义的字节数写入Flash/EE,从字节1到字节4中规定的地址开始.
写入命令只对Flash/EE地址写入的PID做出响应.
语法:例如,要启动第二个Flash/EE页面的写入命令,应使用以下命令:字节描述值字节0字节1字节2字节3字节4字节5字节6字节7字节描述值字节0字节1字节2字节3字节4字节5字节6字节7命令W起始地址LSB起始地址,第二字节起始地址,第三字节起始地址MSBLSB字节数MSB字节数保留供未来使用用户设定值用户设定值用户设定值用户设定值用户设定值用户设定值字节描述值字节0字节1字节2字节3字节4字节5字节6字节7命令V起始地址LSB起始地址,第二字节起始地址,第三字节起始地址MSBLSB字节数MSB字节数保留供未来使用AN-881Rev.
0|Page7of8表11.
LINFlash/EE数据帧数据10x45数据2数据3数据4数据5数据6数据7数据80xFF表12.
LIN状态帧字节0最后执行的命令用户设定值字节1器件ID字节0x30/0x34字节2最后执行时每个命令的状态用户设定值字节3保留供未来使用0xFF字节4用于V命令的校验和LSB(否则保留)用户设定值字节5用于V命令的校验和第二字节(否则保留)用户设定值字节6用于V命令的校验和第三字节(否则保留)用户设定值字节7用于V命令的校验和MSB(否则保留)用户设定值数据写入帧数据由一个或多个8字节LIN数据包构成.
该数据接收后写入Flash/EE.
发送的数据包数量取决于之前地址写入命令中规定的字节数.
规定的字节数除以8后即为数据包数量.
闲置数据位必须以0xFF填充.
这些填充位不会影响Flash/EE.
如果所需的数据包完成前收到任何其他PID,数据流就会终止,并标出写入错误.
数据写入后,应使用验证命令进行验证.
该校验和可由状态读取来读取,并由主机与预期校验和进行比较.
状态读取帧当LIN总线的主节点请求读取从节点时,就会读取状态帧.
8字节LIN数据包由状态读取命令读取.
以下段落列出了关于表11中字节的更多信息:字节0表示最后执行的命令,即E、L、W或V.
字节1表示ADI公司的器件ID0x34—ADuC7034字节2包含最后执行命令的good/bad状态位.
相关位会清除,以表示命令已顺利完成,并设置以指示故障.
F对应Flash页面0错误标识.
字节3保留供将来使用.
字节4至字节7根据最后执行的命令(验证)提供数据.
没有提供存储器读取命令用于用户代码保护和提高下载协议效率.
注意,所有值均以十六进制字节发送,表示为两个半字节.
字节描述值字节描述值字节0字节1字节2字节3字节4字节5字节6字节7用户设定值用户设定值用户设定值用户设定值用户设定值用户设定值AN-881Rev.
0|Page8of8其它信息示例表13列出了下载512字节至页面2的一种序列示例.
本例中采用ADuC7034.
表13.
序列示例PID命令1描述0x3C0x7F0x060xB10x3A0x000x010x00AWAW是地址写入PID0x3C0x7F0x060xB10x3A0x000x020x00DWDW是数据写入PID0x3C0x7F0x060xB10x3A0x000x030x00SRSR是状态读取PID0x3C0x7F0x060xB10x3A0x000x000x00SWSW是安全写入PIDSWL0xFF0x420xFF0xFF0xFF0xFF0xFF进入下载协议的序列Key=B(0x42)AWE0x000x020x080x000x000x020xFF从第二个页面开始擦除一个页面的内容SRE0x300x000xFF0xFF0xFF0xFF0xFFGood状态AWW0x000x020x080x000x000x020xFF在地址0x80200写入512字节DWUsercode下载数据至所需的Flash64数据包DWUsercode……DWUsercode最后一个写入的数据包AWV0x000x020x080x000x000x020xFF生成第二个页面的校验和SRV0x300x000xFFCSCS为4字节校验和…编程设置其他页面…SWR0xFF0xBD0xFF0xFF0xFF0xFF0xFF生成复位命令并运行用户代码1前三个诊断帧为可选项.
如果未发送,就使用AW、DW和SR的默认值.
TFRAMESLOT=THEADERMAXIMUM+TRESPONSEMAXIMUM=1.
4*(THEADERNOMINAL+TRESPONSENOMINAL)=1.
4*(34*TBIT+(10*(NDATA+1)*TBIT))2008AnalogDevices,Inc.
Allrightsreserved.
Trademarksandregisteredtrademarksarethepropertyoftheirrespectiveowners.
AN06446sc-0-5/08(0)LIN协议下载速度根据LIN2.
0协议,每个LIN帧都具有等于或大于最大帧大小的时隙.
因此,有关LIN帧长度的更多信息,请参考2.
2"帧时隙"部分的LIN2.
0规格、LIN协议规格.
单个页面擦除需要20ms.
擦除整个30kB用户空间需要1.
2秒.
使用协议4时,每个帧时隙为9.
04ms.
这是下载8字节所需的时间.
因此,对整个用户空间(30kB)进行编程设置需要34.
7ms.

Virmach($5.23/年)年付VPS闪购

每每进入第四季度,我们就可以看到各大云服务商的促销力度是一年中最大的。一来是年底的促销节日活动比较多,二来是商家希望最后一个季度冲刺业绩。这不还没有到第四季度,我们看到有些商家已经蠢蠢欲动的开始筹备活动。比如素有低价VPS收割机之称的Virmach商家居然还没有到黑色星期五就有发布黑五促销活动。Virmach 商家有十多个数据中心,价格是便宜的,但是机器稳定性和速度肯定我们也是有数的,要不这么低的...

41云,服务器8折优惠券,200G TCP防御

41云怎么样?41云是国人主机品牌,目前经营产品有国内外云服务器、CDN(高防CDN)和物理机,其中国内外云服务器又细分小类有香港限流量VPS、香港大带宽VPS、香港弹性自选VPS、香港不限流VPS、香港BGP线路VPS、香港Cera+大带宽机器、美国超防VPS、韩国原生VPS、仁川原生VPS、日本CN2 VPS、枣庄高防VPS和金华高防VPS;物理机有美国Cera服务器、香港单程CN2服务器、香...

Hostinger 限时外贸美国主机活动 低至月12元且赠送1个COM域名

Hostinger 商家我们可能一些新用户不是太熟悉,因为我们很多新人用户都可能较多的直接从云服务器、独立服务器起步的。而Hostinger商家已经有将近十年的历史的商家,曾经主做低价虚拟主机,也是比较有知名度的,那时候也有接触过,不过一直没有过多的使用。这不这么多年过去,Hostinger商家一直比较稳妥的在运营,最近看到这个商家在改版UI后且产品上也在活动策划比较多。目前Hostinger在进...

协议下载为你推荐
操作http开启javascript如何启用JavaScript?linux防火墙设置LINUX系统怎么关闭防火墙申请支付宝账户支付宝账户怎么申请?360防火墙在哪里设置电脑或电脑360有联网防火墙吗,在哪里设置tplink01cuteftp刚刚网刚刚在网上认识了一个女孩子,不是很了解她,就跟她表白了。科创板首批名单江苏北人的机器人在同行中的评价怎么样?瑞东集团请问富源集团到底是一个怎么样的集团?电子商务世界电子商务最先起源于那个国家,什么时间
高防服务器租用选锐一 中文域名查询 深圳域名空间 英语简历模板word 彩虹ip ftp免费空间 卡巴斯基是免费的吗 创建邮箱 阿里云官方网站 cxz 国外在线代理服务器 东莞主机托管 atom处理器 学生服务器 广东主机托管 江苏双线 好看的空间 godaddy域名 内存 dmz主机 更多