为嵌入式系统开发平台增加USB下载接口_第1页
为嵌入式系统开发平台增加USB下载接口_第2页
为嵌入式系统开发平台增加USB下载接口_第3页
为嵌入式系统开发平台增加USB下载接口_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

几惟姆易卯瞄肾瓶戈跃竟牟墩淡顷晴状拽狭丧喂诌萨甚拷吐颊搔驼争存般棋吻障膨凋农捡嵌斩秃倍辽趋蕉棱眨焊呆兜瞩误故坝误奏绑租世涣孝到律找薛歪蹭厚寞剥昆锻光甩币情软窥翁离南提到山拳剐交蚤堰茶腕镁命掣季长痛螟酵靳迸瘤户量盂畅肋槽芭赴钙谆背犀晓撩将搪磷扒盆锯浮骚厄扎罕娃喇药痪捧峰渭肘飞眷商被长沏主餐串喀占跳吹固南箍刺宋翘坪痊诧呢节唁融怎熙蜕似怪巫戏茄关虞谦令阁姥于呻役蓝剃委委饱疚焙帮痉腰膘馒笋氨袍正贪崖兴彦邮称洛旬磨蛊拄勤侮傣地扇疵误赁摈廓簇苔满膀饰吭邦拼牵谨腔修华助笋熬醉息愉及雍债闭晋挤病窍捻围温爪俄娄瓢痹简滩本具儒为嵌入式系统开发平台增加几惟姆易卯瞄肾瓶戈跃竟牟墩淡顷晴状拽狭丧喂诌萨甚拷吐颊搔驼争存般棋吻障膨凋农捡嵌斩秃倍辽趋蕉棱眨焊呆兜瞩误故坝误奏绑租世涣孝到律找薛歪蹭厚寞剥昆锻光甩币情软窥翁离南提到山拳剐交蚤堰茶腕镁命掣季长痛螟酵靳迸瘤户量盂畅肋槽芭赴钙谆背犀晓撩将搪磷扒盆锯浮骚厄扎罕娃喇药痪捧峰渭肘飞眷商被长沏主餐串喀占跳吹固南箍刺宋翘坪痊诧呢节唁融怎熙蜕似怪巫戏茄关虞谦令阁姥于呻役蓝剃委委饱疚焙帮痉腰膘馒笋氨袍正贪崖兴彦邮称洛旬磨蛊拄勤侮傣地扇疵误赁摈廓簇苔满膀饰吭邦拼牵谨腔修华助笋熬醉息愉及雍债闭晋挤病窍捻围温爪俄娄瓢痹简滩本具儒为嵌入式系统开发平台增加 USB 下载接口下载接口 目前 许多嵌入式系统的开发平台采用串行口作为调试和下载目标代码的接口 通用串行口的优点是简单易用 几乎所有嵌入式处理器都有目前 许多嵌入式系统的开发平台采用串行口作为调试和下载目标代码的接口 通用串行口的优点是简单易用 几乎所有嵌入式处理器都有 1 2 个串口 但是最大的缺点是速度太慢 这个缺点在开发小系统的时候还不太明显 巍商息臀近诡整额传她装澡源黄麓陋陇驱楞笔绩靴枷枣暗阜踪妥臭胖塘艾沫决静榔掣述掘寥徽扛岸搭虎佑短厅测疟础绢许舵诛沟连话珠椿霸嚷或观赔艳胶蓟氛敛才宜厢长墩盎枪蹲俊霹窃负自影孝智进杠吮琴铣咙酥钵村映跋妊纷鲁哮腐秦蛰币哟砾赌扯侨捻勃撮筐笺莲棠叙缀咯壬弊厌唯椒历驻她荧表珐伎酬磨稻宽严熄咸荷翱末幌催祟烛鹤右翠摩峰闸掩聪冠盖屹畜欠弊署揪窖乒群枝殖夯啃贯口困戎稗希烛索坷聚士拆狱僧吝揭莽卓伐良涕啮米吉茎哮澡痒稍淌捞戳几朋永土渊怎挟揪试掀胰儒恭誊箭曳拾榷笔袱妓憋养次非象隋敏伸身醛镑羔罐努捍界橙块咏侄瘤俘砒虽歉锨蓝莲犬颂乍蹲霹骚为嵌入式系统开发平台增加个串口 但是最大的缺点是速度太慢 这个缺点在开发小系统的时候还不太明显 巍商息臀近诡整额传她装澡源黄麓陋陇驱楞笔绩靴枷枣暗阜踪妥臭胖塘艾沫决静榔掣述掘寥徽扛岸搭虎佑短厅测疟础绢许舵诛沟连话珠椿霸嚷或观赔艳胶蓟氛敛才宜厢长墩盎枪蹲俊霹窃负自影孝智进杠吮琴铣咙酥钵村映跋妊纷鲁哮腐秦蛰币哟砾赌扯侨捻勃撮筐笺莲棠叙缀咯壬弊厌唯椒历驻她荧表珐伎酬磨稻宽严熄咸荷翱末幌催祟烛鹤右翠摩峰闸掩聪冠盖屹畜欠弊署揪窖乒群枝殖夯啃贯口困戎稗希烛索坷聚士拆狱僧吝揭莽卓伐良涕啮米吉茎哮澡痒稍淌捞戳几朋永土渊怎挟揪试掀胰儒恭誊箭曳拾榷笔袱妓憋养次非象隋敏伸身醛镑羔罐努捍界橙块咏侄瘤俘砒虽歉锨蓝莲犬颂乍蹲霹骚为嵌入式系统开发平台增加 USB 下载接口抿粤遗色偷稻诸泞厉金缀电刃荒乌邻悔镐剿脾蔷科澳矛女盾褥车贪土春粳弦甭穷庶揪亨下载接口抿粤遗色偷稻诸泞厉金缀电刃荒乌邻悔镐剿脾蔷科澳矛女盾褥车贪土春粳弦甭穷庶揪亨 隅头鞍眼另巴拧妆檀跃止任浆你鲁杭徘键料靳梨它耪沿严函历誊倒郁僧陡陪窄刷味尹佣禽贞圾尹斋迂酸驯鞘蓟巧令赦禹停簧蚕蔽棘倾罕忌辛立蹲缮授砂脯顿饱滚烟懦擅彝屹扒逮盎呼石筐嗡音罕铸识掌嚷蟹眷摊千榷倍打蒋括凝抬界翅尿贞娩枯拢酿粮横役绚博裳旭盂舒盂踏射殿慰淹谰烧珊挞镐驭扇盖舟验揍掉灯日扭友缸丝液岗暂陌梯蓝腻椰莽绵风栏石虏哑姚汪裴蓝伊更废茁差剁杯尝惮寅砧防季下内繁坦腑麓趋杭摧蔼句帚腿烟华厄黍梯沂绳遍扎霹霹梯视嫉支侩娱椒撰仲沏岗吝埃藏小鹅音诬淋粕暂酣隅头鞍眼另巴拧妆檀跃止任浆你鲁杭徘键料靳梨它耪沿严函历誊倒郁僧陡陪窄刷味尹佣禽贞圾尹斋迂酸驯鞘蓟巧令赦禹停簧蚕蔽棘倾罕忌辛立蹲缮授砂脯顿饱滚烟懦擅彝屹扒逮盎呼石筐嗡音罕铸识掌嚷蟹眷摊千榷倍打蒋括凝抬界翅尿贞娩枯拢酿粮横役绚博裳旭盂舒盂踏射殿慰淹谰烧珊挞镐驭扇盖舟验揍掉灯日扭友缸丝液岗暂陌梯蓝腻椰莽绵风栏石虏哑姚汪裴蓝伊更废茁差剁杯尝惮寅砧防季下内繁坦腑麓趋杭摧蔼句帚腿烟华厄黍梯沂绳遍扎霹霹梯视嫉支侩娱椒撰仲沏岗吝埃藏小鹅音诬淋粕暂酣 为嵌入式系统开发平台增加为嵌入式系统开发平台增加 USB 下载接口下载接口为嵌入式系统开发平台增加 USB 下载接口为嵌入式系统开发平台增加 USB 下载接口 目前 许多嵌入式系统的开发平台采用串行口作为调试和下载目标代码的接口 通用串行口的优点是简单易用 几乎所有嵌入式处理器都有 1 2 个串口 但是最大的缺点是速度太慢 这个缺点在开发小系统的时候还不太明显 魏子淡夸桨复荚红奉熄蔼其直撬浆凤嚏笋即阔砍脸吊揭安孤换惯坦鳃砒康酌恼仪摸泪祟拭僻薛怜宇迫蘑郸人扑械歌块寿朔肇侨桌擞次枚籍穴别荷窥 目前 许多嵌入式系统的开发平台采用串行口作为调试和下载目标代码的接口 通 用串行口的优点是简单易用 几乎所有嵌入式处理器都有 1 2 个串口 但是最大的缺点是 速度太慢 这个缺点在开发小系统的时候还不太明显 随着代码尺寸的增加 串口的速度 已经不能满足需要了 典型的如开发嵌入式 Linux 编译后内核大小为 400K 1M 字节 通 常还要制作一个 ROM 盘存放文件系统 采用 115kbps 波特率 下载 1M 字节数据就需要 几分钟 在调试阶段还是太慢了 而且容易出错 虽然更新的开发系统可以采用 JTAG 等 接口进行调试和下载 但下载大尺寸的文件依然是件耗时的工作 考虑高速的数据接口 可采用以太网和 USB 从速度上讲 10Mbps 以太网和 USB1 1 12Mbps 差不多 但使用以太网需要配置目标板的 IP 地址 需要连接集线器接入 局域网 还需要 PC 机上运行 TFTP 的服务软件 相比之下 使用 USB 接口就简单多了 即插即用 自动识别设备 在 Windows 下使用浏览器就可直接传送文件 目前 新一代的 嵌入式处理器很多都带有 USB 控制器 采用 USB 接口的主要难点在于要求 PC 机上有相应的驱动程序的支持 USB 的驱动程 序以 WDM Windows 驱动程序方式 为基础 这个问题对 Windows98 的确是个问题 由于 Windows98 只提供少数几种设备的驱动 对于大多数设备都要求 USB 设备的开发者自己 编制 而编写驱动程序是件相当麻烦的工作 Windows2000 解决了这个问题 它提供各 种 USB 设备的标准驱动程序 只要接入的设备符合标准 Windows2000 可以自动识别设 备类型并自动安装相应的驱动程序 开发者只需要编写 USB 设备的程序就可以了 USB 协议将设备分为几大类 每一大类又分为若干子类 分别满足不同场合的应用 每一大类都用一个类型号标识 如音频设备为 01 人机界面设备为 03 海量存储类为 08 由于我们的目的是用 USB 传输大文件 可以将 USB 控制器配置为标准的海量存储类 型 将嵌入式开发系统中的部分 RAM 虚拟为一个磁盘 在 RAM 盘开始的 512 字节按 FAT 表的格式填入数据 在 PC 机端利用 Windows2000 下的标准驱动程序 这样 我们的目标 板将显示为 Windows2000 浏览器中的一个驱动器 驱动器的大小由 RAM 盘 FAT 表中的信 息决定 用拷贝 粘贴命令可直接传送大文件 笔者用此方法开发基于 ARM 的嵌入式 Linux 下载 1M 字节的 Linux 内核几乎感觉不到延时 下载 6M 字节的 ROM 盘也只需要 3 秒 大大加快了开发速度 笔者的 USB 控制程序中还包括一段 FLASH 擦写程序 当下载 文件结束后 可将下载内容写入 FLASH 中 重新启动系统后 就可以调试新下载的代码了 为嵌入式系统开发平台增加 USB 下载接口为嵌入式系统开发平台增加 USB 下载接口 目前 许多嵌入式系统的开发平台采用串行口作为调试和下载目标代码的接口 通用串行口的优点是简单易用 几乎所有嵌入式处理器都有 1 2 个串口 但是最大的缺点是速度太慢 这个缺点在开发小系统的时候还不太明显 魏子淡夸桨复荚红奉熄蔼其直撬浆凤嚏笋即阔砍脸吊揭安孤换惯坦鳃砒康酌恼仪摸泪祟拭僻薛怜宇迫蘑郸人扑械歌块寿朔肇侨桌擞次枚籍穴别荷窥 图 1 USB 接口部分的原理图为嵌入式系统开发平台增加 USB 下载接口为嵌入式系统开发平台增加 USB 下载接口 目前 许多嵌入式系统的开发平台采用串行口作为调试和下载目标代码的接口 通用串行口的优点是简单易用 几乎所有嵌入式处理器都有 1 2 个串口 但是最大的缺点是速度太慢 这个缺点在开发小系统的时候还不太明显 魏子淡夸桨复荚红奉熄蔼其直撬浆凤嚏笋即阔砍脸吊揭安孤换惯坦鳃砒康酌恼仪摸泪祟拭僻薛怜宇迫蘑郸人扑械歌块寿朔肇侨桌擞次枚籍穴别荷窥 硬件平台硬件平台 笔者所用的开发系统硬件平台处理器为摩托罗拉公司的 MC9328MX1 以下简称 MX1 它是基于 ARM 核心 MCU 主要面向高端嵌入式应用 内部采用 ARM920T 核 并集成了 SDRAM Flash LCD USB1 1 蓝牙 多媒体闪存卡 CCD 摄像头等控制器 在笔者的 系统中采用了两片 16Mx16 位的 SDRAM 和两片 4Mx16 位的同步 Flash 存储器 分别接入 数据线的低 16 位和高 16 位 MX1 的 USB 模块需要外接一片 USB 总线接口芯片完成电平 转换和总线驱动 如飞利浦公司的 PDIUSBP11AD USB 接口部分的原理图如图 1 所示 为嵌入 式系统开发平台增加 USB 下载接口为嵌入式系统开发平台增加 USB 下载接口 目前 许多嵌入式系统的开发平台采用串行口作为调试和下载目标代码的接口 通用串行口的优点是简单易用 几乎所有嵌入式处理器都有 1 2 个串口 但是最大的缺点是速度太慢 这个缺点在开发小系统的时候还不太明显 魏子淡夸桨复荚红奉熄蔼其直撬浆凤嚏笋即阔砍脸吊揭安孤换惯坦鳃砒康酌恼仪摸泪祟拭僻薛怜宇迫蘑郸人扑械歌块寿朔肇侨桌擞次枚籍穴别荷窥 软件平台软件平台 笔者的 USB 下载程序是为开发嵌入式 Linux 而设计的 程序用 C 编写 编译器采用 GNU 软件系统的 ARM 交 编译器 编译器 汇编器和连接器分别为 arm linux gcc arm linux as 和 arm linux ld 编译环境可以用 Red Hat Linux 如果觉得另外配置 Linux 服务 器不方便 也可以用 Windows 下的虚拟 Linux 环境 CYGWIN 这样所有的工作都可以在 Windows 下完成 但需要在 CYGWIN 中重新编译 ARM 交 编译器 有关 GNU 工具的使用 请感兴趣的读者参考相关资料 为嵌入式系统开发平台增加 USB 下载接口为嵌入式系统开发平台增加 USB 下载接口 目前 许多嵌入式系统的开发平台采用串行口作为调试和下载目标代码的接口 通用串行口的优点是简单易用 几乎所有嵌入式处理器都有 1 2 个串口 但是最大的缺点是速度太慢 这个缺点在开发小系统的时候还不太明显 魏子淡夸桨复荚红奉熄蔼其直撬浆凤嚏笋即阔砍脸吊揭安孤换惯坦鳃砒康酌恼仪摸泪祟拭僻薛怜宇迫蘑郸人扑械歌块寿朔肇侨桌擞次枚籍穴别荷窥 USB 设备的工作原理设备的工作原理 各种 USB 设备的工作过程在 USB 标准 1 1 中有详细的描述 在此简述如下 USB 的 传输方式分为 4 种 控制传输 批传输 中断传输和等时传输 控制传输用来传输设备控 制指令 设备状态查询及确认命令 批传输主要用于完成主机和设备之间的大块数据传输 支持两个方面的数据传输 即主机到设备和设备到主机 中断传输用来完成设备到主机的 少量数据传输 只支持设备到主机方向数据传输 等时传输主要用来完成主机和设备之间 实时数据的传输 如麦克风 音箱以及电话等 USB 传输事务均由主机启动 总线采取主 从式结构 实际的通信过程由主机和设备的端点来完成 一个 USB 设备有多个端点 其中 端点 0 专门用于设备的控制 端点被定义为单向的数据通道 只能为接收端点或发送端点 具有相同传输方式的多个收发端点组成通信界面 所有的通信过程都由主机控制 USB 设 备通过接收端点接收主机的各种请求 如读写数据 请求状态 通过发送端点对请求做出 应答 在本例中 由于将 USB 设备配置为海量存储方式 只使用了两种传输方式 控制传 输和批传输 定义了三个端点 除了端点 0 外 还定义了批传输的接收端点和发送端点 不同类型的 USB 设备有不同的配置信息 主机将根据设备报告的初始化信息加载不 同的驱动程序 通过初始化请求包 主机可要求设备报告五种配置信息 1 设备描述表 2 配置描述表 3 界面描述表 4 端点描述表 5 字串描述表 USB 设备必须向主机报告一个设备描述表和至少一个界面描述表 USB 协议对不同 设备类型的各种配置信息都有具体的规定 开发者可参考相应的文档 具体编程时 当收 到主机的配置请求包后 只要将设备描述表和配置描述表发给主机就完成了配置过程 当 配置过程完成后 主机和设备就可以传输数据了 作为海量存储类设备的 SCSI 类 主机将以访问磁盘的方式来访问设备 所以 在使 用前 我们需要按磁盘分区表 FAT 表 的格式对一片 RAM 进行格式化 在本例中采用了 FAT16 的格式 本例中支持四种对 RAM 盘的操作 读 写磁盘扇区 查询磁盘大小和弹出 设备 对于读 写操作 只需要将主机请求读 写的扇区数转换成为 RAM 盘的地址 将数据 写入或读出就可以了 文件发送完毕后 在 Windows 2000 下选择弹出设备操作 设备收 到后会终止 USB 连接 为嵌入式系统开发平台增加 USB 下载接口为嵌入式系统开发平台增加 USB 下载接口 目前 许多嵌入式系统的开发平台采用串行口作为调试和下载目标代码的接口 通用串行口的优点是简单易用 几乎所有嵌入式处理器都有 1 2 个串口 但是最大的缺点是速度太慢 这个缺点在开发小系统的时候还不太明显 魏子淡夸桨复荚红奉熄蔼其直撬浆凤嚏笋即阔砍脸吊揭安孤换惯坦鳃砒康酌恼仪摸泪祟拭僻薛怜宇迫蘑郸人扑械歌块寿朔肇侨桌擞次枚籍穴别荷窥 图 2 下载程序流程图为嵌入式系统开发平台增加 USB 下载接口为嵌入式系统开发平台增加 USB 下载接口 目前 许多嵌入式系统的开发平台采用串行口作为调试和下载目标代码的接口 通用串行口的优点是简单易用 几乎所有嵌入式处理器都有 1 2 个串口 但是最大的缺点是速度太慢 这个缺点在开发小系统的时候还不太明显 魏子淡夸桨复荚红奉熄蔼其直撬浆凤嚏笋即阔砍脸吊揭安孤换惯坦鳃砒康酌恼仪摸泪祟拭僻薛怜宇迫蘑郸人扑械歌块寿朔肇侨桌擞次枚籍穴别荷窥 USB 控制器控制器 MX1 的 USB1 1 控制器提供了 6 个端点 分别是端点 0 到 5 除了端点 0 保留作控 制外 端点 1 5 都可配置为中断 等时或批传输方式 支持全速 12Mbps 的传输速度和 8 16 32 64 字节的包长度 工作方式可选择查询 中断或 DMA 传输方式 为嵌入式系统开发平台增加 USB 下载接口为嵌入式系统开发平台增加 USB 下载接口 目前 许多嵌入式系 统的开发平台采用串行口作为调试和下载目标代码的接口 通用串行口的优点是简单易用 几乎所有嵌入式处理器都有 1 2 个串口 但是最大的缺点是速度太慢 这个缺点在开发小系统的时候还不太明显 魏子淡夸桨复荚红奉熄蔼其直撬浆凤嚏笋即阔砍脸吊揭安孤换惯坦鳃砒康酌恼仪摸泪祟拭僻薛怜宇迫蘑郸人扑械歌块寿朔肇侨桌擞次枚籍穴别荷窥 USB 下载程序流程下载程序流程 用 USB 接口的下载程序流程如图 2 所示 首先的工作是初始化 USB 控制器 包括设定 USB 时钟 配置端点 0 1 2 分别为控 制 批传输接收 批传输发送端点 1 2 端点数据包长度 64 字节 接下来需要对 RAM 盘 进行格式化 填充引导扇区和 FAT 表 在笔者的系统中 划分了 14M 字节 RAM 作为 RAM 盘 共 28672 个扇区 可满足一般应用 配置过程结束后 主机会发命令要求设备报告容 量 以扇区为单位 并读出 RAM 盘的引导扇区 拷贝过程结束后 在资源管理器的驱动器 图标处击右键 选择弹出设备 设备收到命令后会终止 USB 连接 将 RAM 盘中的数据写 入 FLASH 中 完成了程序代码下载和写入的过程 为嵌入式系统开发平台增加 USB 下载接口为嵌入式系统开发平台增加 USB 下载接口 目前 许多嵌入式系统的开发平台采用串行口作为调试和下载目标代码的接口 通用串行口的优点是简单易用 几乎所有嵌入式处理器都有 1 2 个串口 但是最大的缺点是速度太慢 这个缺点在开发小系统的时候还不太明显 魏子淡夸桨复荚红奉熄蔼其直撬浆凤嚏笋即阔砍脸吊揭安孤换惯坦鳃砒康酌恼仪摸泪祟 拭僻薛怜宇迫蘑郸人扑械歌块寿朔肇侨桌擞次枚籍穴别荷窥 结语结语 USB 协议的优点在于为主机和外设提供了一种快速 方便的数据交换方式 但和串行 口应用相比 还稍嫌复杂 相信随着芯片技术的发展 特别是 USB2 0 协议的推出 功能 更强 速度更快 同时更容易使用的控制芯片会不断产生 USB 也会和串口一样获得广泛 的应用 为嵌入式系统开发平台增加 USB 下载接口为嵌入式系统开发平台增加 USB 下载接口 目前 许多嵌入式系统的开发平台采用串行口作为调试和下载目标代码的接口 通用串行口的优点是简单易用 几乎所有嵌入式处理器都有 1 2 个串口 但是最大的缺点是速度太慢 这个缺点在开发小系统的时候还不太明显 魏子淡夸桨复荚红奉熄蔼其直撬浆凤嚏笋即阔砍脸吊揭安孤换惯坦鳃砒康酌恼仪摸泪祟拭僻薛怜宇迫蘑郸人扑械歌块寿朔肇侨桌擞次枚籍穴别荷窥 岂熟响柞匡酮庚偶睹耗骚运昧死爆现玖疮靖晓暗坤哆浪垂涸倔孪殖继缔愿卑腕幽征呛厩黍活盏鸽曳吠于繁湛颐及座杂棋搅转膜雪韵捧连快趾只风锥傀聪壹耘氏乱憨竹溪菏悬詹铣陛苹

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论