CN107544936A - 一种基于usb烧写的数据传输方法 - Google Patents
一种基于usb烧写的数据传输方法 Download PDFInfo
- Publication number
- CN107544936A CN107544936A CN201710843347.6A CN201710843347A CN107544936A CN 107544936 A CN107544936 A CN 107544936A CN 201710843347 A CN201710843347 A CN 201710843347A CN 107544936 A CN107544936 A CN 107544936A
- Authority
- CN
- China
- Prior art keywords
- data
- transmission
- usb host
- data transfer
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 70
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000012546 transfer Methods 0.000 claims abstract description 52
- 238000012790 confirmation Methods 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 abstract description 16
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明提供一种基于USB烧写的数据传输方法,在嵌入式系统固件量产技术领域,能够将固件数据快速可靠地烧写到设备介质中。采用技术方案是:数据传输采用应用层和传输层两层确认的握手方式进行传输,每层的数据传输都要经过命令传输,数据传输、状态传输三个传输阶段,通过两层确认三个阶段的方式建立可靠的数据传输通路,进行快速有效的数据传输。数据传输流程如附图所示,数据传输由USB主机发起,首先发送应用层命令AC(S201),然后USB主机进行判断(S202),进行数据传输(S203),判断传输是否完成(S204),最后接收应用层状态AS(S205),完成数据传输。有效解决传统USB量产方式的低速和可靠性的问题,生产效率明显提高。
Description
技术领域
本发明涉及嵌入式系统固件量产技术领域,特别涉及嵌入式系统基于USB烧写的固件数据的场景。
背景技术
嵌入式产品已广泛应用于社会的各行各业,在产品生产过程中,需要将嵌入式系统固件量产到产品设备中。 固件(Firmware)作为操作系统目标代码储存在Nand Flash、Nor Flash、Emmc等存储介质中,固件是固化在存储介质的程序,是嵌入式产品的灵魂,决定了产品的设备的功能和性能。
通常固件数据写入到嵌入式产品后无法被用户直接读出或者修改,如果在烧写过程中数据出现异常,就会导致整个产品无法正常启动,所以保证烧写的固件数据安全可靠就显得非常重要。目前可以进行量产的固件数据烧写方式有USB方式,卡方式等,因为USB烧写方式可以实时显示量产进度,并且可以同时量产多个产品设备,是在不同类型产品量产时使用较多的一种方式。
但是传统嵌入式产品的固件烧写方式为了保证固件数据烧写到存储介质上的可靠性,在烧写数据时进行校验增拖慢了烧写速度,影响产线效率。为提升产品量产阶段的用户体验,特别是量产过程中固件的烧写数据的可靠性和烧写速度,同时方便产线工人进行量产状态跟踪,需要一种可靠快速的数据烧写方法。
发明内容
本发明提出了一种可靠快速的USB量产烧写方法,能有效解决传统USB量产方式的低速和可靠性的问题,生产效率明显提高。
本发明要求处理的目标系统满足以下条件:(1)USB主机与设备之间USB连接状态正常,(2)USB主机的USB驱动可以正常枚举USB设备,(3)要烧写的固件数据支持设备介质类型。
本发明采用技术方案是:数据传输采用应用层和传输层两层确认的握手方式进行传输,每层的数据传输都要经过命令传输,数据传输、状态传输三个传输阶段,通过两层确认三个阶段的方式建立可靠的数据传输通路,进行快速有效的数据传输。
首先通过应用层命令AC(Application Command)建立数据传输通路,在确认命令传输完成后,USB主机开始应用层数据AD(Application Data)传输,传输方向可读可写,所有的固件烧写数据就是通过本阶段传输完成,传输方向为写,数据传输可以通过若干次完成,应用层数据传输完成后,就要对USB设备进行应用层状态AS(Application Status)传输来获取设备的状态信息,进一步确认数据传输完成。应用层命令传输时,USB主机首先发送传输层命令TC(Transfers Command),命令固定长度为16byte,USB主机对传输层命令TC进行判断,传输层命令TC发送完成之后,接着发送传输层数据TD(Transfers Data),也就是AC命令的具体内容,传输层数据TD发送完成之后,接着USB主机获取设备端传输层状态TS(Transfers Status),应用层数据传输AD和应用层状态传输AS这两个阶段与应用层命令AC传输阶段的过程相同,只是内容不同。
本发明的有益效果是:(1)提高数据的可靠性,通过两层握手三个阶段传输的方式,每次数据传输都会经过多次握手和数据可靠性判断,保证了数据的正确性。(2)无须进行数据校验,减少了设备端对传输数据校验的工作量,提高量产烧写的速度,提升产线的生产效率。(3)采用分层分阶段的数据传输方法,也便于进行二次开发,如果需要增加新的功能,只需要在,只需要在应用层命令阶段进行扩展,与其他阶段或层次具有较低的耦合性。(4)本发明实现的数据传输方式以较小的握手数据(每次AC为32 Byte,TC,TD、AS均为16Byte),保证了固件数据的大数据量的传输(每次可以传输数据量,理论上没有限制,与业务逻辑相关),提升了传输数据的有效性。
附图说明
图1:USB主机与设备之间数据传输的层次结构。
图2:USB数据传输的完整流程。
图3:应用层命令传输阶段的详细流程,是图2中命令传输的实现细化描述。
图4:应用层数据传输阶段的详细流程,是图2中数据传输的实现细化描述。
图5:应用层状态传输阶段的详细流程,是图2中状态传输的实现细化描述。
图6:应用层命令AC的成员结构,长度为32 Byte,包括magic魔数必须为“ AC ”、cmd 命令,tag 流水号等。
图7: 应用层状态的成员结构,长度为16 Byte,包括magic魔数必须为“ AS ”、mark标志,必须为0xffff,tag 流水号,设备状态等。
图8: 传输层命令的成员结构,长度为16 Byte,包括magic魔数必须为“ TC ”、size本命令结构的长度必须为16 Byte,dir 传输方向,tag 流水号,len要传输的数据长度等。
图9: 传输层状态的成员结构,长度为16 Byte,包括magic魔数必须为“ TS ”、tag 流水号,设备状态等。
具体实施方式
本发明的具体实现,详细描述如下:如图1所示,数据传输采用应用层(S104)和传输层(S108)两层确认的握手方式进行传输,每层的数据传输都要经过命令传输,数据传输、状态传输三个传输阶段,应用层的三个传输阶段为:应用层命令传输AC(S101)、应用层数据AD(S102)、应用层状态AS(S103)三个传输阶段,传输层的三个传输阶段为:传输层命令TC(S105),传输层数据TD(S106),传输层状态TS(S107)三个传输阶段,根据USB总线的协议,PC作为USB主机(S109)完全掌握着数据传输的主动性,对USB设备的读写操作均由USB主机发起。
整体的数据传输实现流程如图2所示,USB主机通过发送应用层命令AC(S201)建立数据传输通路,在确认应用层命令AC传输完成后,USB主机判断是否要进行数据传输(S202),如果需要进行数据传输,开始应用层数据传输(S203),传输方向可读可写,所有的固件烧写数据就是通过本阶段传输完成,传输方向为写,并且可以进行多次传输,在判断数据传输完成后(S203),USB主机就要获取设备应用层状态AS来读取获取设备状态信息(S205),数据传输完成。
应用层命令传输AC传输的具体实施方式为,需要再结合流程来描述,具体如图3所示,数据开始传输(S301),首先进入应用层命令传输AC阶段(S302),USB主机发送传输层命令TC(S303),命令固定长度为16byte,包含命令标识、magic、数据传输方向、流水号,要传输应用层命令AC长度等(S305),数据传输方向为写数据,传输层命令TC发送完成之后,接着发送传输层数据TD,也就是AC命令(S304)的具体内容,传输层数据TD发送完成之后,接着USB主机获取传输层状态TS,里面包含了USB设备端的要返回给USB主机的状态信息,USB设备此时要去判断USB主机发送的传输层命令TC的magic是否为“ TC ”(S305),数据传输方向必须为写,然后再去判断传输层数据TD(即AS命令)的命令格式是否支持(包括magic是否为“ TS”, cmd是否在约定的支持列表中, tag流水号是否与TC流水号相同(S306)),如果都正确则返回设备就绪的状态信息给主机(S307),否则的话就返回Error的状态信息给主机(S308),USB主机收到输层数据TS命令后(S309),除了要判断设备的状态信息外,USB主机还要判断magic是否为“ TS ”,tag流水号是否与传输层命令TC相同,如果状态信息、magic、流水号三者任一只要不相同就会停止传输(S310),完全相同的才会进行执行数据传输AD传输阶段(S312),否则的话设备状态错误,传输中止(S311)。
应用层数据AD传输阶段具体实现流程如图4所示,应用层数据AD传输开始(S401)时,USB主机首先是否要进行数据传输(S402),如果没有数据要传输,只需要小机端执行命令即可,数据传输结束(S411),如果需要数据传输,发送传输层命令TC(S403),命令固定长度为16byte,包含命令标识、magic、数据传输方向、流水号,要传输的数据长度等,数据传输方向可以是读数据也可以是写数据,传输层命令TC发送完成之后,接着发送传输层数据TD,也就应用层数据AD的具体内容,USB主机首先判断是否是写数据(S404),如果需要写数据,则有主机发送数据(S406),应用层数据传输AD可以分为若干次传输完成(S407),如果需要读数据,USB主机接收数据(S405),读数据也可以分多次来传输(S408),传输完成后,接着USB主机获取传输层状态TS(S409),里面包含了USB设备端的要返回给USB主机的状态信息,USB设备此时要去判断USB主机发送的传输层命令TC的magic是否为“ TC ”,还要判断数据传输的总长度是否与传输命令TC中约定的长度是否相等(S410),如果都正确则返回设备就绪的状态信息给主机,否则的话就返回Error的状态信息给主机,USB主机收到传输层状态TS命令后,要对其进行判断,如果设备状态正常进入应用层状态传输AS阶段(S411),否则状态异常传输中止(S412)。
应用层状态AS传输阶段具体实现流程如图5所示,应用层状态AS传输开始(S501)时,USB主机首先发送传输层命令TC(S502),命令固定长度为16byte,包含命令标识、magic、数据传输方向、流水号,要传输的数据长度等,数据传输方向读数据,传输层命令TC发送完成之后,接着接收传输层数据TD,也就应用层状态AS(S503),对AS的内容进行有效性判断,具体包括magic魔数(“ AS ”),tag流水号,设备状态等(S504),如果应用层状态无效,数据传输中止(S507),如果各个参数状态有效,USB主机接收设备端传输层状态TS(S505),USB主机接收到传输层状态TS后,判断传输层状态TS的魔数、tag流水号、设备状态是否正常(S506),如果正常状态传输完成,并且整个传输过程正常完成(S508),否则数据传输中止,传输失败(S507)。
Claims (6)
1.一种基于USB烧写的数据传输方法,其特征在于:数据传输采用应用层和传输层两层确认的握手方式进行传输,每层的数据传输都要经过命令传输,数据传输、状态传输三个传输阶段;具体包括如下步骤:步骤1、USB主机与设备建立数据传输的连接通路,USB主机主动通知设备要传输数据的大小等信息、设备准备接收后进行确认;步骤2、USB主机告知设备要进行数据传输,并且进行数据传输,设备接收约定数据后,返回传输数据的长度等信息;步骤3、设备对数据进行处理,完成后,设备获取处理结果。
2.根据权利要求1所述的方法,其特征在于:所述步骤1具体为USB主机与USB设备建立数据传输的连接通路,需要建立可靠的握手信息,进一步描述为USB主机首先发送传输层命令TC,命令固定长度为16 Byte,magic魔数必须为“ TC ”、 传输方向,流水号,要传输的数据长度等,数据传输方向可以是读数据也可以是写数据。
3.根据权利要求1所述的方法,其特征在于:所述步骤1描述USB主机主动通知设备具体描述为,连接通路建立后,USB主机发送传输层数据TD,也即应用层命令AC数据,数据的长度必须与传输层命令TC约定的要传输的长度相等。
4.根据权利要求1所述的方法,其特征在于:所述步骤1描述设备准备接收后进行确认;具体为设备准好数据传输的准备后会发送确认传输层状态(TS),等待主机去读取,命令中包含magic魔数必须为“ TS ”、 流水号,设备状态等,流水号必须与主机在权利要求2中发送传输层命令TC的流水号相同。
5.根据权利要求1所述的方法,其特征在于:所述步骤2描述USB主机告知设备要进行数据传输,具体描述为主机发送要传输命令TC,命令包含的所有项与权利要求2中发送传输层命令TC所有项相同,只是内容不同。
6.根据权利要求1所述的方法,其特征在于:所述步骤3描述具体解释为,设备对传输数据处理后,将设备状态返回给USB主机,进一步描述为根据权利要求2所述的方法,USB主机主动发送TC命令,命令格式与权利要求2描述的格式相同,内容不同,同时USB设备端根据权利要求3所述的方法准备应用层状态AS,包括魔数、tag流水号,设备状态等,等待USB主机获取;根据权利要求4所述的方法准备传输层状态(TS),等待USB主机获取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710843347.6A CN107544936A (zh) | 2017-09-18 | 2017-09-18 | 一种基于usb烧写的数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710843347.6A CN107544936A (zh) | 2017-09-18 | 2017-09-18 | 一种基于usb烧写的数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107544936A true CN107544936A (zh) | 2018-01-05 |
Family
ID=60964251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710843347.6A Pending CN107544936A (zh) | 2017-09-18 | 2017-09-18 | 一种基于usb烧写的数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107544936A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114205135A (zh) * | 2021-12-07 | 2022-03-18 | 国微集团(深圳)有限公司 | 解密设备对ts流的处理方法、ts流的处理系统 |
CN117666949A (zh) * | 2023-11-14 | 2024-03-08 | 海信家电集团股份有限公司 | 数据写入装置、数据写入控制方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1385794A (zh) * | 2001-05-14 | 2002-12-18 | 精工爱普生株式会社 | 数据传送控制装置、电子装置和数据传送控制方法 |
US20050015523A1 (en) * | 2003-06-06 | 2005-01-20 | Seiko Epson Corporation | Data transfer control device, electronic instrument, and data transfer control method |
US20080126611A1 (en) * | 2006-11-28 | 2008-05-29 | Via Technologies, Inc. | Hardware accelerator and data transmission system and method using the same |
US20080162753A1 (en) * | 2006-12-31 | 2008-07-03 | Baojing Liu | Method for Performing Full Transfer Automation in a USB Controller |
-
2017
- 2017-09-18 CN CN201710843347.6A patent/CN107544936A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1385794A (zh) * | 2001-05-14 | 2002-12-18 | 精工爱普生株式会社 | 数据传送控制装置、电子装置和数据传送控制方法 |
US20050015523A1 (en) * | 2003-06-06 | 2005-01-20 | Seiko Epson Corporation | Data transfer control device, electronic instrument, and data transfer control method |
US20080126611A1 (en) * | 2006-11-28 | 2008-05-29 | Via Technologies, Inc. | Hardware accelerator and data transmission system and method using the same |
US20080162753A1 (en) * | 2006-12-31 | 2008-07-03 | Baojing Liu | Method for Performing Full Transfer Automation in a USB Controller |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114205135A (zh) * | 2021-12-07 | 2022-03-18 | 国微集团(深圳)有限公司 | 解密设备对ts流的处理方法、ts流的处理系统 |
CN117666949A (zh) * | 2023-11-14 | 2024-03-08 | 海信家电集团股份有限公司 | 数据写入装置、数据写入控制方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102057363B (zh) | 从装置之间的直接数据传输 | |
CN100507940C (zh) | 可移除电子电路卡的模块之间的有效连接 | |
CN105474238B (zh) | 在基于大容量存储的接口上操作基于m-phy的通信以及相关连接器、系统和方法 | |
CN104376341B (zh) | 家用电器的序列号写入方法及系统 | |
EP3542276B1 (en) | Flow control in remote direct memory access data communications with mirroring of ring buffers | |
CN104350720B (zh) | 提供用于双向串行互连的串行协议的装置、方法和系统 | |
JP2014527243A (ja) | Rfidカードの管理方法及び端末 | |
CN101252729A (zh) | 采用sim卡增强支付类芯片功能的方法 | |
CN107544936A (zh) | 一种基于usb烧写的数据传输方法 | |
CN106991352A (zh) | Nfc读写器和nfc标签的数据读写方法 | |
CN102446284A (zh) | Ic卡、可便携电子装置及ic卡中的数据处理方法 | |
CN108667950A (zh) | 一种获取设备标识的方法和设备 | |
CN102467467A (zh) | 半导体设备通信标准的讯息交换装置与讯息交换方法 | |
CN105528655A (zh) | 购票方法及系统 | |
CN110430293A (zh) | 多联机系统的配对方法及装置、存储介质和处理器 | |
JP6403122B2 (ja) | 通信デバイス及び通信システム | |
CN109934314A (zh) | 一种电力物联网用电子标签的数据读取方法及系统 | |
CN103346943A (zh) | 数据传输方法及系统 | |
EP4125260A1 (en) | System and method for resource-driven datapoint aggregation of lidar datapoints exchanged between lidar sensor and host computing device and application of same | |
CN103927563A (zh) | 基于rfid的构件放样方法及其装置 | |
CN105989397A (zh) | 模拟卡片 | |
CN104579870A (zh) | 一种基于rfid芯片的快速组网方法及专用装置 | |
CN204968124U (zh) | 一种基于ZigBee应用的校园一卡通系统 | |
CN105956854A (zh) | 一种数据处理方法及云端服务器 | |
CN206420443U (zh) | 一种视觉精密测量无线传感器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |