diff --git a/README.md b/README.md
index 49cea9b..3d942fa 100644
--- a/README.md
+++ b/README.md
@@ -54,7 +54,7 @@
 
 > MsgId 0x0200:位置信息汇报
 
-``` package
+``` csharp
 
 JT808Package jT808Package = new JT808Package();
 
@@ -98,7 +98,7 @@ var hex = data.ToHexString();
 
 #### 2.手动解包:
 
-``` unpackage
+``` text
 1.原包:
 7E 02 00 00 26 12 34 56 78 90 12 00 (7D 02) 00 00 00 01 00 00 00 02 00 BA 7F 0E 07 E4 F1 1C 00 28 00 3C 00 00 18 10 15 10 10 10 01 04 00 00 00 64 02 02 00 (7D 01) 13 7E
 
@@ -134,7 +134,7 @@ var hex = data.ToHexString();
 
 #### 3.程序解包:
 
-``` unpackage2
+``` csharp
 //1.转成byte数组
 byte[] bytes = "7E 02 00 00 26 12 34 56 78 90 12 00 7D 02 00 00 00 01 00 00 00 02 00 BA 7F 0E 07 E4 F1 1C 00 28 00 3C 00 00 18 10 15 10 10 10 01 04 00 00 00 64 02 02 00 7D 01 13 7E".ToHexBytes();
 
@@ -169,7 +169,7 @@ Assert.Equal(125, ((JT808_0x0200_0x02)jT808_0x0200.BasicLocationAttachData[JT808
 
 ### 举个栗子2
 
-``` create package
+``` csharp
 // 使用消息Id的扩展方法创建JT808Package包
 JT808Package jT808Package = Enums.JT808MsgId.位置信息汇报.Create("123456789012",
     new JT808_0x0200 {
@@ -197,7 +197,7 @@ var hex = data.ToHexString();
 
 ### 举个栗子3
 
-``` config
+``` csharp
 // 初始化配置
 IJT808Config DT1JT808Config = new DT1Config();
 IJT808Config DT2JT808Config = new DT2Config();
@@ -348,6 +348,15 @@ JT808Serializer DT2JT808Serializer = new JT808Serializer(DT2JT808Config);
 
 [可以参考Simples的Demo15](https://github.com/SmallChi/JT808/blob/master/src/JT808.Protocol.Test/Simples/Demo15.cs)
 
+### 举个栗子16
+
+场景:
+平台下发分包数据到设备
+
+可以参考【栗子5】中,设备上来的分包数据结构,然后举一反三的去实现。
+
+[可以参考Simples的Demo16](https://github.com/SmallChi/JT808/blob/master/src/JT808.Protocol.Test/Simples/Demo16.cs)
+
 ## NuGet安装
 
 | Package Name| Version| Preview  Version |Downloads|Remark|
@@ -536,7 +545,7 @@ serviceDescriptors1.AddJT808Configure()
 
 ## 使用方法
 
-```dotnet
+```csharp
 IServiceCollection serviceDescriptors1 = new ServiceCollection();
 serviceDescriptors1.AddJT808Configure()
                    .AddSuBiaoConfigure();
@@ -572,7 +581,7 @@ serviceDescriptors1.AddJT808Configure()
 
 ## 使用方法
 
-```dotnet
+```csharp
 IServiceCollection serviceDescriptors1 = new ServiceCollection();
 serviceDescriptors1.AddJT808Configure()
                    .AddYueBiaoConfigure();
diff --git a/src/JT808.Protocol.Test/Simples/Demo16.cs b/src/JT808.Protocol.Test/Simples/Demo16.cs
new file mode 100644
index 0000000..9c3883a
--- /dev/null
+++ b/src/JT808.Protocol.Test/Simples/Demo16.cs
@@ -0,0 +1,101 @@
+using JT808.Protocol.Enums;
+using JT808.Protocol.Interfaces;
+using JT808.Protocol.Internal;
+using JT808.Protocol.Extensions;
+using Microsoft.Extensions.DependencyInjection;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Xunit;
+using JT808.Protocol.MessageBody;
+using JT808.Protocol.Formatters;
+using JT808.Protocol.MessagePack;
+using System.Text.Json;
+using JT808.Protocol.MessageBody.CarDVR;
+using System.Linq;
+using JT808.Protocol.Test.JT808LocationAttach;
+using static JT808.Protocol.MessageBody.JT808_0x8105;
+using System.Buffers.Binary;
+using Newtonsoft.Json;
+
+namespace JT808.Protocol.Test.Simples
+{
+    public class Demo16
+    {
+        JT808Serializer JT808Serializer;
+
+        IJT808Config JT808Config;
+
+        public Demo16()
+        {
+            IServiceCollection serviceDescriptors = new ServiceCollection();
+            serviceDescriptors.AddJT808Configure();
+            //通常在startup中使用app的Use进行扩展
+            IServiceProvider serviceProvider = serviceDescriptors.BuildServiceProvider();
+            JT808Config = serviceProvider.GetRequiredService<IJT808Config>();
+            JT808Serializer = JT808Config.GetSerializer();
+        }
+
+        [Fact]
+        public void Test1()
+        {
+            var upgradePackage = new byte[1024 * 10];
+            var splitPackage = JT808Config.SplitPackageStrategy.Processor(upgradePackage).ToList();
+            ushort packgeCount = (ushort)splitPackage.Count();
+            List<string> hexs = new List<string>();
+            for (ushort i = 1; i <= packgeCount; i++)
+            {
+                if (i == 1)
+                {
+                    var bodies = new JT808_0x8108
+                    {
+                        UpgradeType = JT808UpgradeType.终端,
+                        VersionNum = "v1.2.1",
+                        MakerId = "1234",
+                        UpgradePackage = splitPackage[i - 1].Data
+                    };
+                    var firstBodies = JT808Serializer.Serialize(bodies);
+                    JT808Package package = new JT808Package
+                    {
+                        Header = new JT808Header
+                        {
+                            MsgId = Enums.JT808MsgId.下发终端升级包.ToUInt16Value(),
+                            ManualMsgNum = 10,
+                            TerminalPhoneNo = "123456789",
+                            MessageBodyProperty = new JT808HeaderMessageBodyProperty()
+                            {
+                                IsPackage = true,
+                            },
+                            PackgeCount = packgeCount,
+                            PackageIndex = i
+                        },
+                        SubDataBodies = firstBodies
+                    };
+                    var hex = JT808Serializer.Serialize(package).ToHexString();
+                    hexs.Add(hex);
+                }
+                else
+                {
+                    JT808Package package = new JT808Package
+                    {
+                        Header = new JT808Header
+                        {
+                            MsgId = Enums.JT808MsgId.下发终端升级包.ToUInt16Value(),
+                            ManualMsgNum = 10,
+                            TerminalPhoneNo = "123456789",
+                            MessageBodyProperty = new JT808HeaderMessageBodyProperty()
+                            {
+                                IsPackage = true,
+                            },
+                            PackgeCount = packgeCount,
+                            PackageIndex = i
+                        },
+                        SubDataBodies = splitPackage[i - 1].Data
+                    };
+                    var hex = JT808Serializer.Serialize(package).ToHexString();
+                    hexs.Add(hex);
+                }
+            }
+        }
+    }
+}
diff --git a/src/JT808.Protocol/JT808.Protocol.csproj b/src/JT808.Protocol/JT808.Protocol.csproj
index 75d0747..685cb02 100644
--- a/src/JT808.Protocol/JT808.Protocol.csproj
+++ b/src/JT808.Protocol/JT808.Protocol.csproj
@@ -56,14 +56,14 @@
     <PackageReference Include="System.Dynamic.Runtime" Version="4.3.0" />
     <PackageReference Include="System.Memory" Version="4.5.4" />
     <PackageReference Include="System.Reflection.Extensions" Version="4.3.0" />
-    <PackageReference Include="System.Text.Json" Version="6.0.0" />
+    <PackageReference Include="System.Text.Json" Version="6.0.1" />
 	<PackageReference Include="System.Text.Encoding.CodePages" Version="6.0.0" />
 	<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
   </ItemGroup>
 
   <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.1' ">
     <PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
-	<PackageReference Include="System.Text.Json" Version="6.0.0" />
+	<PackageReference Include="System.Text.Json" Version="6.0.1" />
 	<PackageReference Include="System.Text.Encoding.CodePages" Version="6.0.0" />
 	<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
   </ItemGroup>