c10l05 bld - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971uxw38g.pdf · msd...

66
© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 1 使您的USB应用支持“自举程序” C10L05 BLD C10L05 BLD

Upload: nguyenliem

Post on 08-Mar-2018

230 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 1 页

使您的USB应用支持“自举程序”

C10L05 BLDC10L05 BLD

Page 2: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 2 页

课程目标

l 了解在嵌入式应用中, 自举程序的应用

l 了解USB设备自举程序的原理

l 了解USB嵌入式主机自举程序的原理

l 掌握怎样实现USB自举程序的功能

Page 3: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 3 页

课程安排

l 概述

l 自举程序的原理

l USB基础的回顾

l Microchip USB协议栈的介绍

l USB 设备自举程序

l USB 嵌入式主机自举程序总结

Page 4: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 4 页

概述

l 自举程序概念

l 自举程序就是在应用程序之前运行的一小段程序。通过这段程序,我们可以初始化硬件设备、建立内存空间的映射图,更新应用程序。

Page 5: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 5 页

概述

l 应用场合及优点

l 修复设计中的BUGl 更新现有的设计,添加新的功能

l 不需要工程师去产品现场,可以远程更新或者通过终端用户完成

l 升级方便,不需要额外的烧录工具

Page 6: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 6 页

概述

l 自举程序的分类l 串口自举程序

l 以太网自举程序

l SD卡自举程序

l CAN自举程序

l USB自举程序

---- USB 设备自举程序

---- USB 嵌入式主机自举程序

Page 7: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 7 页

概述

l 串口自举程序l AN1094 – dsPIC30F/33F和PIC24F/24H器件的

自举程序

l AN1157 – A Serial Bootloader for PIC24F Devices

l AN732 – Implementing a Bootloader for the PIC16F87x

Page 8: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 8 页

概述

l 以太网自举程序l 下载我们的TCP/IP协议栈

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en537041

l 请参考默认的安装路径:

C:\Microchip Solutions\Internet Bootloader App

Page 9: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 9 页

概述

l SD 卡自举程序

l PIC18F入门工具包

l Beta版的源代码

Page 10: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 10 页

概述

l CAN自举程序

l AN247-A CAN Bootloader for PIC18F CAN MCUs

Page 11: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 11 页

概述

l USB自举程序

l 最新的USB协议栈Microchip Application Libraries v2009-08-31.ziphttp://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en537044

l 包括上位机的应用软件和PIC单片机的固件

Page 12: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 12 页

课程安排

l 概述

l 自举程序的原理

l USB基础的回顾

l Microchip USB协议栈的介绍

l USB 设备自举程序

l USB 嵌入式主机自举程序

l 总结

Page 13: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 13 页

自举程序的原理

l 自举程序原理l 先用烧录工具在MCU里面烧录一段程序。

这段程序的功能是能够从外部(PC/SD卡/U盘等)读取应用程序,然后自身烧录到程序空间,然后运行应用程序的功能。

Page 14: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 14 页

课程安排

l 概述

l 自举程序的原理

l USB基础的回顾

l Microchip USB协议栈的介绍

l USB 设备自举程序

l USB 嵌入式主机自举程序

l 总结

Page 15: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 15 页

USB的协议规范

l USB Specification 1.1l USB Specification 2.0l On-The-Go Supplement to USB

2.0l USB Specification 3.0

Page 16: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 16 页

USB相关的术语及缩写

l USB----Universal Serial Bus(通用串行总线)

l SIE ---- Serial Interface Engine(串行接口引擎)

l Device/Host/OTG/DRD(设备/主机/OTG/DRD)

l USB Class(USB类)

l Endpoint(端点)

l Pipe(管道)

l Descriptor(描述符)

l Enumeration(枚举)

Page 17: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 17 页

全速USB基础知识l USB是“单主 + 多从”查询式总线

鼠标 扬声器打印机

USB主机控制器(主)和根集线器(Root Hub)

SOF SOF SOFIntEP1

IsoEP1

BulkEP2

IntEP1

IntEP1

BulkEP2

帧的开始

IsoEP1

IsoEP1

IsoEP1

IsoEP1

Page 18: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 18 页

“逻辑”USB设备

设备(生产商:Microchip Technology)(产品:Mouse in a Circle Demo)(VID_PID:04d8_0000)

配置(活动)

接口(鼠标)

端点0(控制 – OUT)USB系统软件

(默认控制管道)

USB设备特定的管道(HID)

MCHPFSUSBHID TX/RX功能

模拟/数字I/O

端点0(控制 – IN)

端点1(中断 – IN)

端点1(中断 – OUT)

逻辑设置由设备描述符表来表示,保存在设备固件中。

Page 19: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 19 页

最大传输速率-USB全速

传输/端点类型

查询间隔 对于这一类型的所有传输,

% 保留BW/帧

最大数量的数据字节/帧/端点(每帧的最大事务数@ 最大Ep长度)*

数据

完整性

中断 固定,定期 90 64 (1 x 64) Y

同步 固定,定期 90 1023 (1 x 1023) N

批量 可变,使用空闲带宽

0 1216 (19 x 64) Y

控制 可变 10 832 (13 x 64) N

Page 20: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 20 页

USB的类

操纵杆

鼠标

外部硬盘驱动器

ICD2

调制解调器

软盘驱动器数据手套

键盘

以太网适配器

人机接口设备类(HID)

海量存储设备类(MSD)

通信设备类(CDC)

定制类(供应商类)

更多的类….

PICkit™ 2入门工具包

Page 21: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 21 页

USB驱动程序选择

功能特性 HID CDC mchpusb.sys(v1.0.0.6)

WinUSB

Windows内建驱动程序支持

Y 需要 .inf N 需要 .inf

64位PC支持 Y Y Y Y

XP支持 Y Y Y Y

Vista支持 Y Y Y Y

传输类型

控制 Y N Y Y

中断 Y N Y Y

批量 N Y Y Y

最大速度 64KB/s ~80KB/s ~1.0 MB/s ~1.0MB/s

Page 22: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 22 页

USB设备的枚举过程

其他端点

端点0 IN(控制数据)

端点 0 OUT(控制数据)

双口RAM

描述符

控制传输

总线复位 设置地址(0) 得到描述符 配置设备设备准备好数

据通信

l 请参考USB规范第9章获得更多信息

Page 23: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 23 页

描述符

是什么设备

l 每个USB设备包含了一些自身数据结构的信息被称作描述符。当设备连接到USB总线时,它将发送描述符给主机。描述符允许主机识别新插上的设备,配置设备,下载必要的驱动。

l 有5种标准的描述符类l 设备描述符l 配置描述符l 接口描述符l 端点描述符l 字符串描述符

设备

描述符

是鼠标。

Page 24: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 24 页

描述符

设备

配置 1

接口 0

端点

接口 1

端点 端点 端点

其他的配置描述符 …

字符串 0字符串 1

字符串 N

其他的接口描述符 …

l 描述符被存储在非易失性的闪存存储器中

Page 25: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 25 页

描述符—示例

PICDEM USB

Microchip

设备

配置 1

接口 0

端点

Manu. String

Prod. String

USB 2.0, VID = 0x04D8,PID = 0x0007, Num. Configurations,

Strings?

Configuration #1: Bus-Powered,Remote Wakeup, 500mA, Num.

Interfaces

Interface #0: HID Class, Num. Endpoints

Endpoint 1 IN, Interrupt Transfer Type, 64-byte buffer, Poll every 3 ms

Unicode Characters

Go USB!

Other String

Page 26: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 26 页

课程安排

l 概述

l 自举程序的原理

l USB基础的回顾

l Microchip USB协议栈的介绍

l USB 设备自举程序

l USB 嵌入式主机自举程序

l 总结

Page 27: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 27 页

Microchip USB协议栈的介绍

l 我们一直在更新USB的协议栈,版本从最初的1.1到现在的2.5b

l 协议栈覆盖Microchip所有的带USB SIE的MCU,包括8位\16位\32位

l 协议栈包括了常用的USB类:HID类/ MSD类/CDC类/客户定制类

l 协议栈也包括设备/主机/OTG/DRD示例程序,还有要在PC中运行的示例程序

Page 28: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 28 页

Microchip USB协议栈的介绍

l 免费

l 开源代码

l 下载地址

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2651&param=en534494

Page 29: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 29 页

Microchip USB协议栈的介绍

l 安装后默认路径C:\Microchip Solutions

PC自举程序

Page 30: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 30 页

Microchip USB协议栈的介绍

l 安装后默认路径C:\Microchip Solutions(续)

U盘自举程序

Page 31: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 31 页

Microchip USB协议栈的介绍

l 方便移植和修改

在同一个USB 类目录下,有不同系列PIC单片机的项目文件

l 有用Visual C++ express 2008的示例程序

l 有提供DLL文件和驱动程序

Page 32: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 32 页

Microchip USB协议栈帮助文件

l 默认路径:C:\Microchip Solutions\Microchip\Help

l MDDFS Library Help.chml USB Device Library Help.chml USB Embedded Host Library

Help.chm

Page 33: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 33 页

Microchip USB协议栈MDDFS 帮助文件

Page 34: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 34 页

Microchip USB协议栈USB 设备库帮助文件

Page 35: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 35 页

Microchip USB协议栈USB 嵌入式主机库帮助文件

Page 36: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 36 页

课程安排

l 概述

l 自举程序的原理

l USB基础的回顾

l Microchip USB协议栈的介绍

l USB 设备自举程序

l USB 嵌入式主机自举程序

l 总结

Page 37: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 37 页

USB 设备自举程序的特点

l 需要PC或者嵌入式主机

l 需要一个小的应用程序

l USB 设备自举程序占用较少程序空间

l PIC18/PIC24/PIC32都支持

Page 38: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 38 页

USB 设备自举程序的分类

l 客户定制类

l HID 类

Page 39: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 39 页

USB 设备自举程序

l 客户定制类l 程序代码

C:\Microchip Solutions\USB Device -Bootloaders\Vendor Class - MCHPUSB Bootloader

l PC端的应用程序(部分代码)

l 需要驱动程序和inf文件

Page 40: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 40 页

USB 设备自举程序

l PC 端的应用程序-客户定制类

Page 41: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 41 页

USB 设备自举程序

l 怎样修改应用程序-客户定制类l 针对PIC18F4550,修改lkr文件

l 参考传统的USB stack version1.2/1.3l 驱动

C:\Microchip Solutions\USB Tools\MCHPUSB Custom Driver\MCHPUSB Driver\Release

Page 42: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 42 页

USB 设备自举程序----客户定制类

l 演示 I演示通过PC用客户定制类更新应用程序

Page 43: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 43 页

USB 设备自举程序

l HID 类l 程序代码

C:\Microchip Solutions\USB Device -Bootloaders\HID - Bootloader

l PC 端的应用程序(用Visual C++2005 express Edition)

l 不需要驱动程序和inf文件

Page 44: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 44 页

USB 设备自举程序

l PC 端的应用程序-HID 类

Page 45: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 45 页

USB设备自举程序----HID类

l 在我们的协议栈中,应用程序默认添加了此功能

l PIC24F/PIC32l 添加文件PIC24 HID Bootloader

Remapping.sl 怎样处理中断程序,参见AN1157

方法一:修改中断向量,指向中断函数

方法二:修改中断向量,指向中断向量跳转表

Page 46: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 46 页

USB 设备自举程序----HID类

l 在我们的协议栈中,应用程序默认添加了此功能

l PIC18 USBl 修改中断入口向量地址

l 修改lkr文件的程序起始地址

Page 47: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 47 页

USB 设备自举程序----HID类

l 演示 II演示通过PC用HID类在更新应用程序

Page 48: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 48 页

课程安排

l 概述

l 自举程序的原理

l USB基础的回顾

l Microchip USB协议栈的介绍

l USB 设备自举程序

l USB 嵌入式主机自举程序

l 总结

Page 49: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 49 页

USB 嵌入式主机自举程序的特点

l 不需要PC,需要U盘

l 不需要PC的应用程序和驱动程序

l 只有PIC24/PIC32支持

l 占用较大的程序空间

Page 50: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 50 页

USB 嵌入式主机自举程序

l 支持文件系统FAT16/FAT32l 自举程序代码

C:\Microchip Solutions\USB Host - Bootloaders\Mass Storage Bootloader

Page 51: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 51 页

USB 嵌入式主机自举程序的流程图

复位 main() BLIO_InitializeIO()

当下载成功后

LoadApplication()

BootApplication()

当自举程序条件成立

USBTasks()在哪里调用的

呢?

while(1)

Page 52: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 52 页

USB 嵌入式主机自举程序的源程序

l 项目文件里的源文件

USB协议栈和文件系统

配置PIC使能自举程序的条件

从U盘读文件主程序

写hex文件到闪存

Page 53: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 53 页

Intel Hex文件的格式

l 记录格式 : :llaaaatt[dd...]cc: Intel hex记录的开始符

ll 记录的长度

aaaa 记录的起始地址

tt 记录的类型

dd… 记录的数据

cc 记录的校验码

Page 54: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 54 页

USB 嵌入式主机自举程序

l 自举程序与应用程序的差别l 不同的gld文件,p24FJ256GB110.gld

C:\Microchip Solutions\USB Host -Bootloaders\Mass Storage Bootloader

l 部分中断向量表…

LONG(ABSOLUTE(__DefaultInterrupt)); /* __Interrupt4 not implemented */LONG(ABSOLUTE(0xA828)); /* __IC2Interrupt*/LONG(ABSOLUTE(0xA82C)); /* __OC2Interrupt*/LONG(ABSOLUTE(0xA830)); /* __T2Interrupt*/LONG(ABSOLUTE(0xA834)); /* __T3Interrupt*/LONG(ABSOLUTE(0xA838)); /* __SPI1ErrInterrupt*/LONG(ABSOLUTE(0xA83C)); /* __SPI1Interrupt*/LONG(ABSOLUTE(0xA840)); /* __U1RXInterrupt*/LONG(ABSOLUTE(0xA844)); /* __U1TXInterrupt*/LONG(ABSOLUTE(0xA848)); /* __ADC1Interrupt*/LONG(ABSOLUTE(__DefaultInterrupt)); /* __Interrupt14 not implemented */

Page 55: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 55 页

USB 嵌入式主机自举程序

l 怎样修改应用程序

l 添加两个文件到应用程序的项目

C:\Microchip Solutions\USB Host - Bootloaders\Mass Storage Bootloader\Application Files

l MSD Bootloader Remapping.cl p24FJ256GB110_Host_MSD_Boo

tloader.gld

Page 56: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 56 页

USB 嵌入式主机自举程序

l 为什么要添加MSD Bootloader Remapping.c

#include "usb_config.h"void __attribute__((address(0xA800))) _InterruptRemapping(){

asm("reset");Nop();asm("goto __DefaultInterrupt"); //asm("goto __ReservedTrap0");asm("goto __DefaultInterrupt"); //asm("goto __OscillatorFail");asm("goto __DefaultInterrupt"); //asm("goto __AddressError");asm("goto __DefaultInterrupt"); //asm("goto __StackError");asm("goto __INT0Interrupt "); //asm("goto __INT0Interrupt");

Page 57: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 57 页

USB嵌入式主机自举程序

l 应用程序的gld文件

l p24FJ256GB110_Host_MSD_Bootloader.gld----修改复位的入口地址

----修改程序的起始位置

----删除中断向量表

Page 58: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 58 页

USB 嵌入式主机自举程序

l 把编译后生成的文件改名为image.hexl 注意进入自举程序的条件

Page 59: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 59 页

USB 嵌入式主机自举程序----代码保护

l MCU本身的代码保护功能

可参考MCU的数据手册第25.4节l 添加额外的保护措施

自举程序前备份应用程序在外部的存储空间,当自举程序运行不成功或者有异常时可以恢复。

Page 60: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 60 页

USB 嵌入式主机自举程序

l 演示 III存储hex文件在U盘,然后通过U盘来更新应用程序

Page 61: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 61 页

USB自举程序对比

功能特性 USB设备自举程序

客户定制类

USB设备自举程序HID类

USB嵌入式主机

自举程序

外部资源 需要PC 需要PC U盘

驱动 需要 不需要 不需要

PIC PIC18/PIC24/PIC32 PIC18/PIC24/PIC32 PIC24/PIC32

程序空间 大约4K 大约4K 大约15K

使用方便性 ★ ★ ★ ★ ★ ★ ★ ★ ★

Page 62: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 62 页

日程安排

l 概述

l 自举程序的原理

l USB基础的回顾

l Microchip USB协议栈的介绍

l USB 设备自举程序

l USB 嵌入式主机自举程序

l 总结

Page 63: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 63 页

总结

l 自举程序的原理与分类

l USB的基础概念回顾

l USB自举程序

l 演示及对比特点

l 参考资料

Page 64: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 64 页

问题

致谢 !!!

Page 65: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 65 页

资料及参考文献

l 应用笔记l AN1094l AN1157l AN732

l 网站链接l www.usb.org(USB规范及类定义)l www.lvr.com(USB示例)l www.microchip.com/usb

l 论坛l http://www.microchip.com/forums/tt.aspx?forumid=102l http://www.picpic.cn/bbs/forumdisplay.php?fid=35

Page 66: C10L05 BLD - d1.amobbs.comd1.amobbs.com/bbs_upload782111/files_30/ourdev_565971UXW38G.pdf · msd ) 通信设备类 ... pic18/pic24/pic32

© 2009 Microchip Technology Incorporated. 版权所有。 C10L05 BLD 第 66 页

商标

l Microchip的名称和徽标组合、Microchip徽标、dsPIC、KeeLoq、KeeLoq徽标、MPLAB、PIC、PICmicro、PICSTART、rfPIC和 UNI/O均为Microchip Technology Inc.在美国和其他国家或地区的注册商标。

l FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、MXDEV、MXLAB、SEEVAL和The Embedded Control Solutions Company 均为Microchip Technology Inc.在美国的注册商标。

l Analog-for-the-Digital Age、Application Maestro、CodeGuard、dsPICDEM、dsPICDEM.net、dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、MPASM、MPLAB Certified徽标、MPLIB、MPLINK、mTouch、Octopus、Omniscient Code Generation、PICC、PICC-18、PICDEM、PICDEM.net、PICkit、PICtail、PIC32徽标、REAL ICE、rfLAB、Select Mode、Total Endurance、TSHARC、UniWinDriver、WiperLock和ZENA均为Microchip Technology Inc.在美国和其他国家或地区的商标。

l SQTP是Microchip Technology Inc.在美国的服务标记。

l 在此提及的所有其他商标均为各持有公司所有。

l © 2009, Microchip Technology Inc.版权所有。