From 792e201d1ec3616ede09216d71e3427bead9ca71 Mon Sep 17 00:00:00 2001 From: wrh Date: Mon, 24 Aug 2026 18:06:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E3=80=81=E5=8F=AF=E4=BB=A5=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E7=89=88=E6=9C=AC=E5=8F=B7=20-=20=E6=96=B0=E5=A2=9EQM?= =?UTF-8?q?P4810300-4=E5=A4=9A=E5=8D=8F=E8=AE=AE=E5=8F=8C=E5=90=91?= =?UTF-8?q?=E7=94=B5=E6=BA=90=E9=80=9A=E4=BF=A1=E5=8D=8F=E8=AE=AEV1.2?= =?UTF-8?q?=E6=96=87=E6=A1=A3=20-=20=E5=A4=9A=E4=B8=AA=E6=BA=90=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B4=E6=96=87=E4=BB=B6=E7=89=88=E6=9C=AC=E5=8F=B7?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=87=B3V1.1.8=20-=20=E5=9C=A8chrg=5Fcomm.c?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0Modbus=E5=9B=BA=E4=BB=B6=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=AA=E8=AF=BB=E5=AF=84=E5=AD=98=E5=99=A8=20-=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B5=8B=E8=AF=95=E6=97=A5=E5=BF=97=E4=B8=8E?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97V1.1.8=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=20-=20=E4=BF=AE=E5=A4=8DPD=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E9=80=BB=E8=BE=91=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=A4=8D=E4=BD=8D=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/chrg/applications/thread/chrg_comm.c | 22 ++++++++++- apps/chrg/applications/thread/chrg_comm.h | 2 +- apps/chrg/applications/thread/chrg_north.c | 2 +- apps/chrg/applications/thread/chrg_roll_nor.c | 2 +- apps/chrg/applications/thread/chrg_roll_nor.h | 2 +- apps/chrg/applications/utils/chrg_source.c | 2 +- apps/chrg/applications/utils/chrg_source.h | 2 +- ...0-4多协议可编程双向电源通信协议V_1.1.xlsx} | Bin ...00-4多协议可编程双向电源通信协议V_1.2.xlsx | Bin 0 -> 18322 bytes docs/修改日志.md | 19 +++++++++ docs/测试日志.md | 36 ++++++++++++++++++ 11 files changed, 82 insertions(+), 7 deletions(-) rename docs/{BMP4810300-4多协议可编程双向电源通信协议V_1.1.xlsx => QMP4810300-4多协议可编程双向电源通信协议V_1.1.xlsx} (100%) create mode 100644 docs/QMP4810300-4多协议可编程双向电源通信协议V_1.2.xlsx create mode 100644 docs/测试日志.md diff --git a/apps/chrg/applications/thread/chrg_comm.c b/apps/chrg/applications/thread/chrg_comm.c index e36b42a..9258747 100644 --- a/apps/chrg/applications/thread/chrg_comm.c +++ b/apps/chrg/applications/thread/chrg_comm.c @@ -1,7 +1,7 @@ /**************************************************************************** 文件名称 : chrg_comm.c 完成日期 : -当前版本号 : V1.0 +当前版本号 : V1.1.8 主要功能 : 实现对外通讯协议 MODBUS 服务端,以独立线程等待处理响应请求数据。 版本历史 : 创建原始版本 说明 : @@ -26,6 +26,9 @@ #include "stm32f4xx_hal.h" +#define HOLD_REG_FIRMWARE_VERSION 0x0300U /* 协议板固件版本,只读 */ +#define CHRG_FIRMWARE_VERSION 0x0118U /* 当前协议板版本:V1.1.8 */ + rt_uint8_t ucDiscInBuf[(TOTAL_DISC_REGS+BITS_UCHAR-1)/BITS_UCHAR]; rt_uint8_t ucCoilBuf[(TOTAL_COIL_REGS+BITS_UCHAR-1)/BITS_UCHAR]; rt_uint16_t usRegInBuf[TOTAL_INPUT_REGS]; @@ -602,6 +605,23 @@ eMBException funcReadHoldingRegister (rt_uint8_t *reqFrame, rt_uint16_t reqLen, return MB_EX_ILLEGAL_DATA_VALUE; } + /* + * 协议板版本号使用独立的只读地址0x0300,不占用现有通道保持寄存器空间。 + * 当前版本V1.1.8编码为0x0118,Modbus响应按高字节在前返回01 18。 + * 该特殊地址只支持一次读取一个寄存器,避免与普通连续寄存器混用。 + */ + if (regAddress == HOLD_REG_FIRMWARE_VERSION) { + if (cntReg != 1U) { + return MB_EX_ILLEGAL_DATA_VALUE; + } + resFrame[1] = MB_READ_HOLDING_REGISTER; + resFrame[2] = 2U; + resFrame[3] = (rt_uint8_t)(CHRG_FIRMWARE_VERSION >> 8); + resFrame[4] = (rt_uint8_t)(CHRG_FIRMWARE_VERSION & 0xFFU); + *resLen = 5U; + return MB_EX_NONE; + } + resFrame[1] = MB_READ_HOLDING_REGISTER; resFrame[2] = cntReg * 2; diff --git a/apps/chrg/applications/thread/chrg_comm.h b/apps/chrg/applications/thread/chrg_comm.h index c1a5b09..7b292e6 100644 --- a/apps/chrg/applications/thread/chrg_comm.h +++ b/apps/chrg/applications/thread/chrg_comm.h @@ -1,7 +1,7 @@ /**************************************************************************** 文件名称 : chrg_comm.h 完成日期 : -当前版本号 : V1.0 +当前版本号 : V1.1.8 主要功能 : 实现对外通讯协议 MODBUS 服务端,以独立线程等待处理响应请求数据。 版本历史 : 创建原始版本 说明 : diff --git a/apps/chrg/applications/thread/chrg_north.c b/apps/chrg/applications/thread/chrg_north.c index 2e21a6f..b4a66d0 100644 --- a/apps/chrg/applications/thread/chrg_north.c +++ b/apps/chrg/applications/thread/chrg_north.c @@ -1,7 +1,7 @@ /**************************************************************************** 文件名称 : chrg_north.c 完成日期 : -当前版本号 : V1.0 +当前版本号 : V1.1.8 主要功能 : 实现北向通信交互,包括接收命令解析,发送请求命令,切换通路。以独立线程处理。 版本历史 : 创建原始版本 说明 : diff --git a/apps/chrg/applications/thread/chrg_roll_nor.c b/apps/chrg/applications/thread/chrg_roll_nor.c index de818e7..70af2da 100644 --- a/apps/chrg/applications/thread/chrg_roll_nor.c +++ b/apps/chrg/applications/thread/chrg_roll_nor.c @@ -1,7 +1,7 @@ /**************************************************************************** 文件名称 : chrg_roll_nor.c 完成日期 : -当前版本号 : V1.0 +当前版本号 : V1.1.8 主要功能 : 实现北向通信轮巡请求命令。以独立线程处理。 版本历史 : 创建原始版本 说明 : diff --git a/apps/chrg/applications/thread/chrg_roll_nor.h b/apps/chrg/applications/thread/chrg_roll_nor.h index 21c58ae..c2cca5c 100644 --- a/apps/chrg/applications/thread/chrg_roll_nor.h +++ b/apps/chrg/applications/thread/chrg_roll_nor.h @@ -1,7 +1,7 @@ /**************************************************************************** 文件名称 : chrg_roll_nor.h 完成日期 : -当前版本号 : V1.0 +当前版本号 : V1.1.8 主要功能 : 实现北向通信轮巡请求命令。以独立线程处理。 版本历史 : 创建原始版本 说明 : diff --git a/apps/chrg/applications/utils/chrg_source.c b/apps/chrg/applications/utils/chrg_source.c index b2a7d69..b38d3ed 100644 --- a/apps/chrg/applications/utils/chrg_source.c +++ b/apps/chrg/applications/utils/chrg_source.c @@ -1,7 +1,7 @@ /**************************************************************************** 文件名称 : chrg_source.c 完成日期 : -当前版本号 : V1.0 +当前版本号 : V1.1.8 主要功能 : 北向数据source请求数据填充及发送。 版本历史 : 创建原始版本 说明 : diff --git a/apps/chrg/applications/utils/chrg_source.h b/apps/chrg/applications/utils/chrg_source.h index 1ae00da..df3ee28 100644 --- a/apps/chrg/applications/utils/chrg_source.h +++ b/apps/chrg/applications/utils/chrg_source.h @@ -1,7 +1,7 @@ /**************************************************************************** 文件名称 : chrg_source.c 完成日期 : -当前版本号 : V1.0 +当前版本号 : V1.1.8 主要功能 : 北向数据source请求数据填充及发送,命令字定义。 版本历史 : 创建原始版本 说明 : diff --git a/docs/BMP4810300-4多协议可编程双向电源通信协议V_1.1.xlsx b/docs/QMP4810300-4多协议可编程双向电源通信协议V_1.1.xlsx similarity index 100% rename from docs/BMP4810300-4多协议可编程双向电源通信协议V_1.1.xlsx rename to docs/QMP4810300-4多协议可编程双向电源通信协议V_1.1.xlsx diff --git a/docs/QMP4810300-4多协议可编程双向电源通信协议V_1.2.xlsx b/docs/QMP4810300-4多协议可编程双向电源通信协议V_1.2.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c263bf5d96f7028860d88d8e4b78af44d85abe08 GIT binary patch literal 18322 zcmeIa1D7UUvNl|{ZQHhOn_aeT+wL;Ey4+>Ex@?MI4AG5?#x`7 z5gB{$h`3@$?nnh`U=S1lFaQVu002S&LH58&TR;E+5KsUBWB>>tZDBiGXA@gzeH9OT z6DM6dcN=Sh0uUgIJOH52`~PqIU)%!~D#NzD328?!f8z zXw^LV`C7LY%iTEWn{=m}QX>JDS2~}KoFdzXir^1fr zOZU+@Pvxs{>)8c@_*en! zUAy%MQGn50w3f<*p?6N<*09-uWKtGQwLSOqvQq9?3#d<4rM&M9*`la4y%WN5Zr*s%*|_QEiyx$VKF#Z*1LtBa+#L z{N_z7mo=nB#Det5G$}qvns?`?RnKxYn(gtE9kQ={=yEtP3cqCI6S4l&NOrX^zE%PQ z0IYpN8~kU_xLeb^**RJn+SytC#<2?3Y1=|E6rUe+egf_CUwiyvp)@gpS0t`R9NQhJ zHEYQj*eJT2`#4-tD(CP^o;RA_yWfTUOsO0Ern#4vBz0A78;5cX&SAowE_fdtpKP_! zR)~>ZCaCqv(KQw|QZ8A3q;|eLAQk3R%_pi+(z^G1zeUVHx0Ty{2IN6Z zMHXg z=}rT2V0Y4m@-Nxw)vG;d4$i-h2@VqcL3ca#CCI3#mi^U{iWBDy{zW`#viXXaiVFzFvRy{)KMVqVE7_#9sgnD$O zYcHv#t{!>EN9@rk3Xddt-V2rA)-${ZX;~Bmnh5y2%AKBn;L%))x>pj3E1BE-;cf`1 z*&Y$^4lS_e%_m>7k_0&Ks}k`r`MEx$og=S_+8TonIXVQd1=V+@A)ZiGB-b{ zytrHlR#)2nSayetRF-Nr3|WhWIKQ-XI6}Jms0`Vf+Rk!$j9>&u0!cy%y$!8b5xjT7 zNp`M|iwsL6A9Hz~A{t2BMA8SN{iBeVtzo-CAE%$GP)H6$7H^B2)ila~fuKBFxch;0 zx%(Wn85pJV>(3z~Ix)d5jUl*SvFoJU1hv12HTT|kV#Z6&Smc?h78T~p@-iE~54hX$ zVxV*P@oE2{n!*mFI)C~8akfS4u3yazKj>zLhvSVQ7iyN%5kYoi;eEdS&H(Xpkb4m~ z_;x`)?RG{T?FUmbO`;PMBNL-WrtbG&EjxfOIql}tqFX=V4+{VS@YAyYfq?&N-~WS# zfS-^_p6FEd1Ri3zo^q9pklFWk6Pv14S7Sk% z9@s9_<6?Z!^??;`2N?OThq@#Z3B(iG`hpwOZv18(7{c(Z5-(636dCFC_@w*{8ZN^L zxrHxrh$aVxWB-wY6f>-_m`LQdWhRuxa)QBy$GcjOZdM(cO|pM#Z8D+BABng}u| zP4_-pgjesuasxf^r*AMJC3#>y0HzP;2&o@?MDHQ4+h0v(JtnMr3ZG&2aLT3e%2;{5 zL!Al2hQ#sxC=;Fb3ewwDFSeb9UPdUpRuIlevkBvlIPaJI3FrP_L`&w8~NI)1~^r-+YUwjZ!)pS!W_$uzNbRBX>Sn zw?h$OX+5g0l$hS)^6_GW09()oKTyNFuyC%$Y0c6zD+>S)Fx>R<_;!B3`{LQOX?-!N zy=>9uQrp?J?7On&$7%O=;FoL%R+;o>;PPSN($=A$+w`t+q5a|haPe_}|Jm)U?FE86ZEf1Phq-O^W-npuo_D2m&Td`{7ENAe zZsp@Xqh1(iIXgx#PdEFfyvrNjZQ7go?Mds;t}c1c7hSe^_dToY#kjI z-W;TpW}Or6PknXU%g4o6!HXXx?3xaZ+J2kO0AlLdX{wYbY@J-wn(snp9RulwR_xD> zPtF_9n>|H`F4w*X;65n{7 z5MldZG-{h&Y%DSx}?bv*hwYWTcXcj|89EI21txHvBHz1F^aWBjnQE481t%YJQH z-|%VHY%#y59MAOAYeOL=25+r+Z(e`jU(-)0WK%WPZ*xJ_T*qPCT-?~JI6060C_NGD z62H;grgB@DlY56_r9ElOU&;2?^3(Ha<9%&?W7N0n^yXDaxlwl1_&$3$i=TA&9(tWg zWxsO7)y2N5?I`r&=h)=HPPKP%{P27cH~zhE@kT8t*R@u#YnAJ%c>{kW#%Y^x)A)3#Ee~Lk?vTE12<*GZhQ$F&47peS(1PBf-6a#x*~5!R0)HVLs8@bhkMu!$ zny_jW^^BFyZqTf4(;;sd@<`$eB=Gzl4#7%d%2sEoVFA79!kHhsMAvsc=& z*;=imbx!soV*t|um_Um_jKPL*;;G|cPS7T^UwJbXU<|XlTSq>OGkukh(FM@_b%1L@ zcJ=X&SY!Pfy1@an6rD2=rg85Q5n2onDg#%-+*?{A6pUs?AmSkjlm(;&O#R0ITdu>y z>;xP%F#K2@@>3McsqKxiVfTW>SfE2Q(!*$!tii`rkA*?4_;e(60KpOXL0n%V#Z30vRIgW?no?*GfFIGhD7RRu+po{_G28e zl7BXK9-i!*Y+!_V+4ppcb^~YvDM^a-k5O84^Nc_DDO<+j$=j&MbE$Ja51$m{9!-lTO?~Lky{PBULJ%0%QT}z&eU4Uu5dKuvI0pCEW04Wl)SNOq38}wzFg)_`n^+Fs24*?*Hr@e;bcU!G&gD_W7 zYWFZ#LdmgMY2`~iNO0mw2~tE@4&-7DW^bAX(`^U(i`axSoMts*ggJ*f+Y+;a9ulFc zCdOl!jj+dCju7{!DICw`$+ceWX=PDT{Z){rv$#X4{-00w!vCw8`*#aR(H2Jgxa)4H9OgY|ytTi~~gl4b!L#I`f zmwmd3ONW^QvrdsNsJqG-q1$U1R25-NmPPo$DRfRIwRDz9MMq&GjfkR2f>hdKBs+r( zY_DQwE;%k;pvC!gm0-7#*n}7r#FZ{+DvO>4f)rgvkO7kCH?=XssrAk$HAn!xC`b=c z3eC5mt)h9xz%5ej7@o}hs7&6*mLB&z2|uCH;sj(B#rSxlh@HtXPfDK?d{$ zZ7q!Y;?nPi^Q$&K?t{dxJQ%-1tjx-kAi6Q<{kZWW;m2!mJkftl)Xab6~@tyhZ zxf$sc-+oFtU;-&Yia6eq*swVXuIXa2UiLUs0t#LRT6nnUabV#MTl%#-CUFr^%QoQtd zVH(FR(J@}3L{*qklCw;;F)_K1VleGl(rOcvgLYe&D9BH5aMCZv?Pm(_}w+(NGEE;ck>1YSC7kiI%Tq9X2ZSJX)eNl_VXe z#FAV?pKX*>uf0Q+d?=_4-_>>1(4?9<>t@7|oKY+Sqn2!KQYu8_#^(R!NH#wnEXxvE zqz&mgE|%yVUpga}RAqcjowxxpykr1-suQp(VTzR%fI9?&jR`te*&`*^qdiRFEDLI? zBLiyih3npfB~lPzeMF22Vxc&ZjSE7msnZZaKvS=^UqhOc<;t3v(oBNwYOCG&AkwjI zu7{03f9)l;Hf3}eZ3A0!gjQ)-DdU=WcmeKkXcQn~!1T-a(4d$i98oGRdd$S+hcB0h zyl=tR0~Dq$s9B5NY?7SeN*0Bb{D~B2c@(hmML5qYDBtqGjya-yv;IaA)>BAdOqv)m znuS|R(}Z-J5ks=~TdL0|L?|`I3|IJrNGQSma`{d2`3y>J$`OOpuS(w-oJCYeI!*cv zSr3t{sUj#w)>HkBqPIS^BLz%C$<}NoD8^g^h=fA?fK)irk=xN2JA2Rdof?Z37Fsya zQQ$BCk&G{y(mGB_HVRBa+4O7R3o)g*YUG4;D9WCzLy!#~KATvf1ZPE2ZGyQ5z;C5> zJ3fZsVg+A!$0T4?Yhpg@k#LMHL+MC^p`18723tL3VSni5!4jRQ1o<4&;g*KdqL}?x zi2@cgMJi5=m5x$tk^>xW1d!AsCWsQHAaX_(GYQZhxtma}5gTjRef{hTrTa^qWa5`;7ca$ z)13W8!4PJe_HuRQU6PnkOah}$KirUVf&)$$vm042i9alndJ0Z-R`~WsSyCj)mqazA zt~sfwuHD;OGAL@87Z@-xNL+`@gj$vh#ssO>*?f^jXq>nYI+Wy~S`F&ASsjQcemiF* zUMz^R5DzsjI8Y-7#ZEtLR>P_=F7Tr6_gIy450M%k0Ohp%X=Obnm{v=^oEJow!j^IK z{di`OeWyiSIo$BZACPDFr`ir=kOG4ca&R$33dA@<2Dk)|S$DjQmO}b(;Sdk;+WM~C z7T%u*?pll1Tj1o0I3EsZTTB35tH8w_!C|a*;l*Z>*4uK*6io+GNwG^$+1eJ7$<(51 zBUU-d8-HX5Yl4(FV*>vLPR6T)*|4&_CuB5<5KL zN23z9D>qCVq8l`Uv;bAaAq0+OW$T^_Hel$kDgMonI0Y%NzZR-b8jR%rXWnLYC=&^2 zOTL&J>ctuGB?0lWUnB_rvx}TTVvBSo=>WvWQfO8H6nG@l(n$l0cQOI=>$vyOn?@6=h1xyb&AX1H^|B zq21_T+^)%$!mQ$H%n2Ebr>Y%+wTzHoX=Too^vb{oT^+~}5Dekmx30iqjE`wUMN22!IXsa8)S7v6}Lw0*&Kg$w!=cKkVk z#TK2FPB_Em>ktem=?R6?UpFIt-dwQ?>E+xB;euWfR0aA87#VlOM=Ny4TA?r}@h244 zLG;TzdDSN6;;L%BU|KjAns+#$EF5YJdSOvfaazB_Kk#h{p{7w!#c{Ni`R-A3)cR$N zd`KbXV5wkJi1FWW7Aovd1NiB%FlCRHPKXndr{Affado0+ABYh;UYMl?K;@DN8E-SI>7EiKl!AVoB zW<|Eb%k@l7pRK^a;pPjT@Z2PbIabBau|fK+Eq*La)$N;+n;=*@2tTE+rn6pRNC`!ncfE_g?u3N5$Wc*c9KWtl)9_pA_{qxD%YFE~?W-bf&%BygXo8L<^`xeR3QeF#_ zvB>ee-D1n9|LluzZwO4uBRX1_ldDZ2Ar|;b*-`Yx0}+!#(ehwl?0B^^CI$s_BZa6> z*f35b{SuBHX_bPm{kw`GiOJ8XW`XUgn|L{xHkLlINN9aIhi$@sP|v2Ia7=D>okv4T zy2PLtbccXGk20YSH$gf4Zr&Xm6jVGVmFkpsaiqe_F*y@QSQPZmtb+pIzGYPHY3`Ja zaRQiWv3USp;(C!1rFhGVqv(h?82SP%_3xGk&uH}*ia2#K1uI@kDqa#M*dQ@! zwPBlx6}p+J-pO+E?>u zXxt-zxa2a60P~asdWvf;l)hyM(#K9gW9)lir-;%(1h1JMlqE^Rd~i>_ld8Ga#%AX! ztEyYr3@9~4Na^NnGe(6U5A01%;uB$EQcR9JX) z^nlhlYSFMeYsi#%NOwF@pKUWvT>=p>sZe#Iah`}j_+X8a6Q~89o(;t2AR&)%Bs6zE zn<=ptj;$#(X5y@34^@?P3giXvs-)4keW)2767ZFXv>o0~{63$}5gY$$2%>&`Z&nN*$HK$C55lcw+4a>S{*)lR!soITHmVchL|xkt}z5oy>3%}3(N#tu)B zM#nLjUY7>H7NTC>G#$(i6Z@fBUp9Tu4f(;raS|P#@>tqOUKJ>!etS2_092*RyCR{x zuyEUIK{)if0u^yK+e8ucP8LhDc>adr^n$?)`Gs0cnO#3Mj*J;c?ZE6nz8^<}3T#lE^BH)3 zy-dFfc(GjH_ydF80epOe8$ z&EsBtMzZG;AaNaN5j_h-J$6?zR8YdFZxga&r;-99T21;71NB(4E>m5^&O0_DzQT#k zcG-)eOI>KnWEIcm6Ax#SOp2pR+WqP=&*EXgj3yffu8T$rV>=7I($4v1MtF#_fVs>ivO!aha!-E|x{2spzMmL| zrGTXD#f!8qrN_-?b_kOSyJrEjYN)NXXPe5gXUW2CRiX-JnKsixUDlH1jhH6GcSg6~ z)h{BsmXbAM>caHya=7{BlHZ-fh%(0HpM@Y(B>SIz*b3X@Ci9*^yq_?YdrM5-HsA|!xawV7HOL!%~dRea`fLMt69hEQLE$VSZ z#g#hIoPSp88>EAJw8?q49nPRW^MX%}PB%;i8xx_n{w&CC4dhF5zeSqgSerA_CGo0Y z#Kk0!o1(Kno;*3>j53OMv%~M4Ihcpf#C~SGJve*o@$t$KlMCa=JG7dASiQQ>>6$(- zd#`@3)vIvTXM1=_(taLjc#&d>*>igrp1HGoes+mTtaxhXog&Zc>*}0AUs}8+WkvF# z<(j=mc<=G$uYljglfzSkKUohO&vkahQnz)(enxY7i@3X4=yP>js$>Jl8bN#~pLcQL z_E?(oU!mPrradAesl{&j;d@cV_Y|OUv;64x@%aYyKeOVp{Qfk-U;qIASihJ1{FN1V zHaD>`q5tduuY~xi=A_*!8%ihq(g(rexmF|TGTbprqcyozQlt4A9PbR9O-;Uta8VML zXn?L8CPN;!D`xd7T%SMCszurxJ8k26+!8UVwy_NRTLRGf6b1yzu~!`arq}bM@S+`$ zT!~XCvz*3?gViF>V$V^qtR&Y(^MiPw)Tm3dz!8dK>P~E1?^;LA$CKIObWXTKAa1q% z6W(!i4MJ3hWr}J%7ISAY>jSVa`P<*?*P04m16W z8HsM|i`4-zR8#3zt$|P-@(~s`8WcBgr6h>{Rk-N{W&tkxb9(I!qA!h37!lo;;Acpi ztG(W(C+Zb~h{|ov+Lr%JeF_zHWTAVPK0cT!=fi*5cRtVsq)-!s%>uqnu=c17z>?lA z;Y8OunYVa;7X(xua4j8m;aj&^g6Tf)XB6ec9?uW_L!iaa51JoG3_z0P+@kX;) z4MTsutRx#A+)j$75gF`&)YFB%wm-sQKunUHE_XE4z$tL9(r$l#TJ`%}4)FBSl&i=4 zLU(aXlymZ!*5&(l9mlVKfH$B8w%z|QssH}|+7G|^dN;}(^pvhQYD_DHg+4h1*`?%Q)B76BcR>6|Qy;{e=8Yy#>VgPKs4dolqxI<(J zac+%rG;N`mL^$H25z{b+8S^#|i5xtlm4ukFHHwmjvjo!6=!h7ClFiTk$ADR*Iksay zKIVi=EdonI{@yu=Uw~Rr$xAx13PN}O_=Je75;+yM5wY0zfay6#BUwEtPPTO|Nj>fj zMVml2HQ(R9Rv{s$LpoaCcm!k2Ciu8w^;2kSa3--V)aYL-Qz-7Pne>A3o9<&1T@b=k ztf!xYgJ2(Z>Ohb2PBeJ7-A$vouR z!lzz-XMAAjBSyiCNF5p1to6g`YeKQGxe7L9L*|;n`(%8r0~1*%2@zk! zG!WVyYr|dEP48V6H}rr(<&TVcG7SC8N>`ZC-LJAYyq1+@4}~r6_9P>&^h@=9??StW z)tcvRZ0GZGu2uJgRzNfNHWKF9=_FWaNaHTV#@j9=b3;|ZqN}|Hr0YMF8zy$hPy}p} zP&Jr1tEY~e19C6k46s8eaz=Re1_4e^M|O2Airqkyj!^+l!dyU;(`}`zxWmZB)6!P3 zjaLZrQ!*umsQWNv9Tc;l4Te?sTXl=)^2mj2e6gjl#uvhd8c-6TR|J%GDb0_w+}5fQ zyFHdbXt~Z|?w{?`Y4Ti~b&iR+!hq`{hOW`yb(2jJ9Hzy2CV;C%$kl^_A+k7=NpRKS z{FGr?RIv)0=Z^^>@M&AvhDHX(;1X@gFegpjiEityXqjf7Xeqp_P#3<7ery8GDp(w zbLvDKhQ_w8{uF4V9)JN{hue0iBVT&RaiPyGGudUCra6!iR^6?zK%a$YAGWF(k(~RI zBHgsYcByo-VpSO=)G&dRHr8s#KxjTUG67?mc-06aJx-@3YpLE$FhzuT9=>WCTP?Pu zYvxvm$Rel^!*Q%4_I_s+M4r;t`l&Asd9HUYEKb6mnE}l2*K*Ic6^+iY{ud zw#v%_d781$h^tL+B9(HkN?By{^R80)#ry6K0zx*qfzOg{y_dna^+Pyn->${7`oe1U zqcFuf{!?+ma$fIaE;Fc8H|zv_IIWawG*MLkTaq`mwwc?LyQ|t%<^!xqon)Y~Xp%_A^_y{+_xn4J$ z-YSz`rP;uYR3^oYOp(s&)KcZ%VBmd4hoWtZ2b$-jkNpE9C;ma!+Q&xl3yFb61MB` zms96b_5zHFcftdLYbp;A4T&$-P1mP&y<#Xd5u&DW(@3Ej`F!h~b>L}f{99F@CD0p3 zx=*0A>9K;FiU(>U&RaUIX3z=L9c7aaIbhvLVn~Vx69pVOB_pYZ*MnN@Iua9~6T|Q! znR7X^zg7wR2)ePuff~62QqJ}~X8-DR+dt(thi#K3e+S=2)SM~^pK&f|OFe-^u?8>u zMGIH!F!k#Ozsvjm1b<;vgssL^&?=49-YRU}8mQGQ2B{A*FCq-H#!hbd)PaI}_i0NV zuvM>Xi394wuO)dkDdyRzFjm;+_V zA#XMY2(2!-CJl;cm&7{~6PAP?OF|XFQ@9ZRiUNDIHxe?w6#sIX(H4T7E9h6mktCm> z;jA3#P&BF}eGzqenrVp8jMMon^@i@62L!C!GBNZ;mjnUgGO7t=(J%WNzKDo=;D9Lb zTBQ5x!CVuFerUA8h*&_Kv9u>SqWkz`9LK`m8ySIhH3w`yz>-iX6ieq!&k)O!kBktP zJ;2bfk`@7{!ApSBWRat&jr+d-%)YdFcPlF$jYBgvjGJY^SSY+u)QiOUUt+DDs`?%{ zmQ?J5Gv$EBJ}8K7<3iK)wm@0xyCIrNOKGwc+0CPVk<$^ z0J#|Wse$?j;*-XVGNJ<=rpx?|?V1OLLj*x1Z27B-Yx$1NcwJVlgXk zivnhq5)5pmieVKnpz(Dwbh_6W!@AxogQl1ZX%7V3V*>|QyhA# zv)0DjCN&&@WG*JiQj=`+rk4S-)M|3sgHSlz3Mpfnc2?lBqdc{XHi@0ql%gdyG&AG` zEGK84`(A^L5ZwPAXIY+4bKWfdve^7bIWP>lbN@)rU~Mdw(v;L;<)(E;h4Hj4lsaet zO_I!rX=e)64*|zH=_(2dgq%@l>dS7bUMr#oZUJ~4=l;X(@NSphw9_CsljOIwKVfB-^)j_@&vakybTI>AMgoMXyZM^{LkR4?4s&5lY*e zAQ4#GoJdzsGJM*QqFK2;38OVzWXeYXH3^glY->#uK$%R=*wEB8G)pGFDvW0aGGurZP71HR%psay(f7UgO#9P*M2fb8q-)i1xUk1P%FDA*bbhuAD~;Pe4DzWjm7CS}*X=v>{^ zIH0S+Zn71PTZ4~pWCOWfJz&dA0`&$zE`|!FTOeek`MXTW*HC?JfF^#l-)(Dfy`r<> zP5;EdFr^o7a=WoLqnHfM_JuFcPT*=gD|yRYK0EU!aofwxMMB@4Xucn~IO>_E`Nn@w z+l+G%k_6kcIcSsd)g5B%X0aQ9JHlrUcj$+z==qpe?aUGUR5dfs?c9WpYHL%_`>9-Z zIpnG3@QFih5k-$EH<%u-vY}BFM?xhLG^uuv#O31{Nzo9Jk~gH|Gyf-2{O1HnMHG60 z;uB>KQ~>}`{)r{#2974i%Fd1!wq}1p$|;VnGS={YHr0C{iu}23GA6-*HKcZAz9qiW zwk^`8Ch2sfKRScSxv-Qh3IhSz6){yrM${ECbVeoyBEu`DCs@ua^usMnbP&`K3&{qm zl@;^tZ5F3b=d<^n^E=xyhGEXqdX8Y)Y{~YD2CR|Weaka=c3gA@_ycVvF4n-W2F@27 zVY=_@B_5U!=Dy6Os@ZsPX#r;0c!j3jC%Esb<#)HROSo+EnN~~Z!QAk=wqfJY{OfV` zIR;JZ3m2c0v5r{6%2<=t2DsHc<-Xe%u`InpF|+1U1F@{253HKZVF^@-sAh+ttV^h4=tc}eVKqJ^+K3p*2oVuoIb=3$l3v;FYlTwp)i(1!4 zqfb}t6yBHc^)EpE8wKBJeSPUKpg)A5Gq0b{2e$SHibl_hV`oQ+0<|!@KQy=fa{QR( zt%U`6fyq>Jt%mkY*W%t;ENLzWd-3sHwfzT-a}b~*hGFo$&7EN2cu5OAueJd*SB>b$ ze%%rYC?cI2CmKy1IYz-CZl1E5C^LJLL=br$u79m&(*tc9AP69RP@k->ga-i^nKg3b zud$LDYZw(NVd5xI7hhIEff&>w8qqBe9g9O{l&LdbkY$8>Ez3q1L(?R=*;A!UGTdx8<>MR(HKOp|RHOs2 zmWRH>!M3mWp?yG}U}y?@uj1uJe?pl-Fx-z~!!;#Bjz`QQicrA4l=rguz^~n}-e9Es zY^4r0u-hX;V$Pxd%gtSf*6AV3BA6`ogJ-()G z8jNS=SM16|aMazxIFpR+a42JE-=RHt_-UH_Sdw_5@`uo%f_+1&U9;e(Y;V`yD!@AO zgNziNF++M=+;KwOLT&@A?~p=*%c8f#+!xf#x#dmQf)-cUeq4#*sF}W>kN>mBD zp5|6{cp?WQ$CNSB5BS>=_R}a3Pb_t^6~xJjFH#?CuGSV+zkrNmL4x?2B0qIacM~R( zd&}iN&>wAI_PA7IyL6k`;*ZY(;#d57DPk#Az#89w)$sRgk*zCUt#q?KAG~d+x_l)W zB`J?7JffAX!idF~Od8?zNZkHvy^o8JbAaBphu)Qw6I{F~K=Bk3&hU%di9VUaD-Hm? zxC;=7#rW8T6Z4Bk!c}d50y|1{y7{QZhA@m@M;;>R4zUqMs|VlxcT*HlrAEHG^aROt z@9oV^0{z6C`YGI=3*{r_*e^nrX-GIy9jCayGDNf?p0JZmN{}a)3@I?al8~jUSP<1| zR)VAv)&yN~@IHC9Z3S_JW0lu8zNgv7Xq0YW-Yk#d=shyc&0 z{v~)w<%y8Dvk%60c*lZpe+JguI9KGlEHY!gUzI-IdV|rcozlxZXmkE1wnW|V#hDJ9Yq3k=pIV^7kDX>$Ce8K^j>8G5|Pr; zUP~IcYUo%+TQ@vkAfL30jLQB^LEcv~DZx+*3cccSP`d~jI_6Am_(+{EQ|`fWif6xG zAHh*zvoE%8-f{i)2KqPn1v2SPjML733XRaq;NQI5=ftayy2O;4{ z8PvSqF|joO1dSC-7{eX#oiCUvWwc&{!B+YkUv* z;bL#muwis-9Da1%v6v_;%e0Uqv~%Hd8PM7#{E^~Gc6WN z!6wOV5$pO-=`hmE09giH0ww~2rI~35$O8!noHq2-bcnsm=RG%!be0@Ob*W9W-9@slNI@T|Nd{+;xC&#&v=wQnqe5bb!}gsuIpU?QWNmkLJp}Os(98zv@*!f7jd`NQK$>8PuvAglnmq)~~~Kk*XEa^gWTWPRrzs67#4) z3N57~GDtPzYXC9`Q#WcndDj<@YC}iZQ6S^t20&yY~$*^;rDHDz){nkOt#f ztEYMTuH-dfsV$!j9+=UP@eCceU!R%SDr2^aHx}MzyzZi=V3DklPy)xr+*4PfW7rQq zCGoEa^3#3EJgc6Bl;9fZFodB7HBP_*W42H_v(|><$Ir#i&Sit+ksV3UMUBaQRXJeF z5ZV%W*ZL*BeMC+63NkwSm+V{MlugQ6qd$qd8;1nJo+JQvY=@u~aK}ijLObm!zVe4s zL`w;aJ|k+ZCs&iSfJ+IP39>Z=yebcUK-T+zS`{uyen}DBa-S*_axc5DDe#H3DfTVs z&<{1#Z9%kNc@;`3by6@cMg?;m*#QD~Q2pF?;4nr6wzSwFEoCN@5N{#JBsQ7+NU;LK z5g{fPvZ;RI9#M0o039e7!8ShorRi0blOBWaHqn_Eu>umQ_gcdXaMYxJG!z~7x2%FN zVc_ldx-qDjd}o?yOVMu~kxLqWo>7KTEk}@A^L)UZUM$M!LuObDDM*(jg5R97NWP;8 zo#dAxJt)kF%QM9o?nLdvq$uruA@)MazW_l{GED28LF1+H^=0bP0Z+z*Tjl|N6ox}~ z5rAq`1U?&>?^aUKR8KdUqw;l#nNop?y*$9KVs6$qbPW2if{kSDH>l#s8hteG<6=6M zPMrwtj$zSFo;atN2sM~C@>f7W>J3pBnvMACLf@_w7G|Jli2XhLdtrzH@O-QarK5it z%BTQ2firz1X(pjad>hAD96`$Ag&+dc{n zy5Md?{M^)r4?``=L`2746&gE$^-La)yO1oV7Mn5PX@yf13bp4HI2^egynw*FZ%8LM z>aIZ@O9{^z6E{>ZY={VoUzd^h8*i1^xw4a!dU30_e*bC`9KnDToN?Lmh^283hgnUs5(4akfLwl{}aVOP#1HMZKjqwFk*p8?NMJ+{mj zo>FX6xCENHR-lkwBXslXORp8$F2Nd(<24jWTAp}=S-Q>)U^zLdh{1RbROp%zMUpp+ zKHs0qHL;MT@qGKsk`W#Z!%tDzQx#>FHrM*#_4INL7c{#*>Oow*N}BJdu|D`bwuN02 z64#T#lAQ5h_zEOAheXe={S5_A-0pL%eBeNeZN^4#?jir%++uo*2T$#@_1+)=0ObGZ z0sGHMg|msHvWc_v@7V?YALop8h8DJ`%HvXf0toMoh&Aq0g<(WHrRe#x$~JKpiBcrP zsn*B5Ga+C?wMCSVLF~D`%9}sYuQ0tqvqeBbDN%Ub?Z23HW^b-z4)lNk;Q+>N-Rl^M2hqqrL=s3Z$Ll)hj$;Mm@{~*P7sB)ch zxQ4npvSiD^E0)P?PFtb3A9hm4(uGm(oy+Qbwfs@~?hekD?va@lg0HKhzcL8e*7x<^ z6a*aYEIxuzPNHyDm)v*@26!nrG`M1ArP77VvtiP|z^mxuR}NEax>jl-N#ED7&aK%g zM+C0kdmfp(qWCDNE20EV%rwaygWf(0mUW1Ho!z6_1qaoL4GZujjbR~@CZu9OYWbVq zNwaI*qk$A9RGD8&f#8>WG!cc^q=ZDw)#Fp49V(^mV%@-IvxtopTQk*fxt=ediNgP! z_VMN|T55d`jlpLD5#nb7k+GeTf}@?i6TOk0qsi|y;%61@|J4nB>a2I7tXv-hLdb)} z8sRmcL)KK8h9s5m9BN8D1W--gsRcG7cf#3>>oDXNgASwvY*rC$sQ?Y{#W=g2m|U^8 zrYC)#tYRrj0)Yq~g ztj)EC^5+ms+kQZkh^=I+FO4(HA@Lzv*i(>rDw)u!V@oaE_XPkBEu)=!o9&YiaUdV5 zI6q=G1qI#d5YBe+lfxd5xpMPqpoWLw2Yoq4hJzEGuyT1>lj5E;{dEP;4?d)$acp zgQ%|Uu^s)p6g%_B=BX8BL#vQ+kdOlcbJ8Yk3`VEmGG$I!XH40H@lCQI;r^)pVTw52ufZ|669`5J; zDCmh91H~^ktV#)?#2l4c1_|Ux{fSxPYQbz`m{`yw35?}4miQ!L#rvTvz9`Bzmy;QGKq-T{F@n!Ul4kf;8* z%1=LlxUgkUh>chV|EyMhOLi|T9;-6gpT&?jpmy6E` z>$53;uHE>P!Jlu={$@}_^%sM`-=qCW`e&l_Z_-PKe~|u}HvN;sp8?_D9He;u?1TRr z9{$Pj&-m(ZhBCZ=G5jOC`mfQ}pG^NfGWeV2XNs5)0N_93gg?pu-H-n(xx3)MkpI)G XD@cQW>L36B%;%5nQ;pR`exLn6U(+82 literal 0 HcmV?d00001 diff --git a/docs/修改日志.md b/docs/修改日志.md index 78e638a..e6c1851 100644 --- a/docs/修改日志.md +++ b/docs/修改日志.md @@ -1,5 +1,24 @@ # 修改日志 +## V1.1.8 - 2026-08-24 + +### 修改主题 +修复了source部分的PD协议长时间运行后会出不来的问题 +对应芯海3221/source版本V_1.07 + +### Source协议复位切换 +- 新增`SOURCE_RESET`命令:发送`06 00 02 18 00 0E`,校验回码`05 00 02 18 16`。 +- 首次发送协议不复位;PD与非PD跨类别切换时先复位。 +- PD切PD、非PD切非PD以及仅切换CC线时不复位。 +- 删除`CC_CLOSE`状态及其共享等待屏障。 +- 协议设置回码有效后更新`last_pd_pro`,避免协议尚未生效时错误判断。 + +### 验证记录 +- 使用1-2,3-4测试自举例程测试俩百次正常 +- git diff --check`:通过。 +- 旧`CC_CLOSE`状态、宏和调用引用:已检查清理。 +- Keil编译:按当前要求未执行,待现场烧录后验证复位回码和协议切换时序。 + ## V1.1.7 - 2026-08-08 ### 修改主题 diff --git a/docs/测试日志.md b/docs/测试日志.md new file mode 100644 index 0000000..c55b9ad --- /dev/null +++ b/docs/测试日志.md @@ -0,0 +1,36 @@ +# 测试日志 + +## V1.1.8 - 2026-08-24 + +### 测试对象 + +Source协议切换复位逻辑。 + +### 验证记录 + +| 编号 | 测试项 | 预期结果 | 当前结果 | +| --- | --- | --- | --- | +| 1 | 首次发送Source协议 | 直接发送协议,不发送`SOURCE_RESET` | 静态检查通过 | +| 2 | PD切换到非PD | 先复位,再发送协议 | 静态检查通过 | +| 3 | 非PD切换到PD | 先复位,再发送协议 | 静态检查通过 | +| 4 | PD切PD | 不复位,直接发送协议 | 静态检查通过 | +| 5 | 非PD切非PD | 不复位,直接发送协议 | 静态检查通过 | +| 6 | 仅切换CC线 | 不复位 | 静态检查通过 | +| 7 | 复位命令帧 | 发送`06 00 02 18 00 0E` | 静态检查通过 | +| 8 | 复位回码 | 收到`05 00 02 18 16`后推进状态 | 待硬件验证 | + +### 静态验证 + +- 已执行`git diff --check`,无格式错误。 +- 已检查复位命令、状态映射、回码长度校验和`last_pd_pro`更新路径。 +- Keil编译及硬件实测未执行。 + +### 待补充现场信息 + +- 板卡编号: +- 测试连接方式: +- 测试开始/结束时间: +- 复位发送日志: +- 复位回码日志: +- 协议切换结果: +- 最终结论: