CH9120 TFTP使用详解
一、TFTP简介:
TFTP是基于UDP应用层的简单的文件传输协议,端口号为69,TFTP协议主要应用于网络引导、配置文件传输等场景。
二、报文介绍:
TFTP有四种数据包格式,分别是读/写请求包、文件数据包、回应包和错误信息包。

- 读/写请求包
操作码,它的值为1表示读操作,2表示写操作;文件名,它是一个以0结尾的字符串;模式,它也是一个以0结尾的字符串,常用的传输模式有"octet"(二进制传输)和"netascii"(ASCII码传输)。
- 文件数据包
操作码,它的值为3;数据块编号,它的值从1开始递增;数据块的内容,它的长度为512字节。
- 回应包
操作码,它的值为4;数据块编号,它的值与对方发送的文件数据包的数据块编号相同;
- 错误信息包
操作码,它的值为5;差错码,它的取值范围为0~7,具体含义如下:
- 0:未定义的错误
- 1:文件不存在
- 2:访问被拒绝
- 3:磁盘已满
- 4:操作超时
- 5:文件传输中断
- 6:未知传输ID
- 7:文件已存在
差错信息表示错误信息的内容,它是一个以0结尾的字符串。
三、CH9120做TFTP客户端访问服务器

将CH9120配置为UDPSERVER模式注意不能设为CLIENT(CLIENT会导致在数据传输阶段收不到服务器的数据报文),端口为69。
获取服务器文件需要通过串口发送命令如下:
00 01 //读操作码
74 65 73 74 2e 63 //test.c
00 //
6e 65 74 61 73 63 69 69 // netascii
00//
TFTP服务器收到该命令后会采用一个随机端口给CH9120发文件数据包
00 03 //数据操作码
00 01 //数据块编号
71 71 71 71 71 71 71 71 71 //数据
71 71 71 71 71 71 71 71 71 //数据
71 73 73 73 73 73 0d 00 0d //数据
0a 64 66 72 74 64 64 64 64 //数据
64 64 64 64 64 64 64 64 64 //数据
64 64 //数据
CH9120收到数据后回复回应包
00 04//回应包
00 01//数据块编号
上传服务器文件需要通过串口发送命令如下:
00 02 //写请求包
74 65 73 74 2e 63 //test.c
00 //
6e 65 74 61 73 63 69 69 // netascii
00//
注意:下次读写报文前需要复位一次CH9120
CH9120 TFTP使用详解的更多相关文章
- Linux中TFTP使用详解
FTP协议简介TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现. linux服务器端tftp-server的配置1.安装tftp服务器需要安装xinetd(守护tftp).tftp和 ...
- tftp命令详解
TFTP协议简介TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现.嵌入式linux的tftp开发环境包括两个方面: 一是linux服务器端的tftp-server支持,二是嵌入式目标 ...
- 8 TFTP代码详解 协议写在程序中
1.版本1:发送请求 # -*- coding:utf-8 -*- import struct from socket import * #0. 获取要下载的文件名字: downloadFileNam ...
- 转载]OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]
原文地址:OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]作者:千山我独行 由于工作的平台也是嵌入式,差不多的平台,所以一直就没有把自己买过来的ok6410板子好好玩玩.以前一直都是 ...
- linux查看端口及端口详解
今天现场查看了TCP端口的占用情况,如下图 红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说E ...
- TCP/IP详解 (转)
TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中 ...
- net user命令集合详解
net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" /user: ...
- TCP IP详解(转)
大学学习网络基础的时候老师讲过,网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 网络七层协议简称OSI.TCP/IP刨除了物理层,并把上三层(会话层.表示层和应用层)统称 ...
- TCP/IP详解学习笔记(9)-TCP协议概述
终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输 ...
- 常见 jar包详解
常见 jar包详解 jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实例化.单件的生命周期 ...
随机推荐
- Springboot 整合 xxl-job
前言 很久很久以前写过好几篇关于定时任务的使用系列的文章: 这一篇是最简单的,就是单纯跑跑定时任务,那你看这篇就行,没必要用xxljob(因为xxljob要跑服务端,然后自己服务作为客户端接入): 文 ...
- 微服务实战系列(七)-网关springcloud gateway-copy
1. 场景描述 springcloud刚推出的时候用的是netflix全家桶,路由用的zuul,但是据说zull1.0在大数据量访问的时候存在较大性能问题,2.0就没集成到springcloud中了, ...
- 第四章 对称加密算法--DES--AES--IDEA--PBE
10.1.DES 已破解,不再安全,基本没有企业在用了 是对称加密算法的基石,具有学习价值 密钥长度56(JDK).56/64(BC) 10.2.DESede(三重DES) 早于AES出现来替代DES ...
- Word文档转换成Html格式
CentOS 下安装 OpenOffice4.0 一.更新服务器 yum源 [root@APP2 /]# yum clean all [root@APP2 /]# yum makecache [roo ...
- Java底层知识面试题
JVM内存结构class文件格式JVM不会理解我们写的Java源文件, 我们必须把Java源文件编译成class文件, 才能被JVM识别, 对于JVM而言,class文件相当于一个接口class文件是 ...
- shell脚本中的变量
在shell脚本中使用变量显得我们的脚本更加专业更像是一门语言,开个玩笑,变量的作用当然不是为了专业.如果你写了一个长达1000行的shell脚本,并且脚本中出现了某一个命令或者路径几百次.突然你觉得 ...
- a instanceof A:判断对象a是否是类A的实例。如果是,返回true;如果不是,返回false
- Oracle连接 ORA-28001: 口令已经失效解决方法
cmd进入命令行 C:\Users\Administrator>sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on 星期 ...
- 用 DeepSeek 分析,SaaS 多租户的3种隔离模式,结果。。。
大家好,我是汤师爷~ 在SaaS模式下,多租户之间的资源隔离是基础且关键的一环. SaaS服务商需要在确保运营效率和控制成本的前提下,搭建一个让多个租户能够同时访问的共享环境. 虽然大家都在用同一套S ...
- 百思不得其解,DeepSeek怎么突然就比肩GPT了?
>关注公众号**回复1**>>获取**一线.总监.高管<管理秘籍>** 之前大家都认为中美在AI领域的差距很大,谁曾想春节期间**DeepSeek横空出世**,直接给Op ...