同步端点错误处理与DMA传输控制
需积分: 45 182 浏览量
更新于2024-08-06
收藏 18.87MB PDF 举报
《错误结束:Word的起源——英语单词的秘密历史A-Z》是一本探讨英语词汇历史的书籍,它深入浅出地揭示了单词的演变过程和背后的故事。本书不仅仅关注语言的字面意义,更侧重于探索词汇的来源和文化内涵。然而,在提供的IT技术背景部分,讨论的是LPC178x系列微控制器的相关功能,特别是DMA(Direct Memory Access)在数据包传输中的应用。
DMA是直接内存访问,一种处理器与外设之间快速交换数据的技术,无需CPU介入,提高了数据传输效率。在描述中,主要关注两个方面:
1. **数据包传输错误处理**:
如果数据包在传输过程中未能完整到达DMA缓冲区末尾,就会发生DataOverrun错误。这时,DD(Descriptor Doubleword,描述符双字)会被写回内存,DD_retired置位并设置为DataOverrun状态,EOT(End Of Transfer)中断会被触发,受影响的USB端点DMA请求位会被清除。为了纠正错误,剩余数据会在下次DMA启用时重新发送。
2. **No_Packet DD**:
对于IN(Input)传输,如果系统暂时没有数据,可以通过设置No_Packet DD来响应NDDR(Non-DMA Request)中断。Max_packet_size和DMA_buffer_length字段被设置为0,没有传输的数据包导致DMA请求位清零,DD状态变为NormalCompletion。系统会以NAK(Not Acknowledge)信号回应IN令牌包,直到有数据包被发送到DMA缓冲区。
3. **同步端点操作**:
同步端点支持不固定长度的数据包传输,每个帧传输一个数据包。操作流程包括:设置DMA传输,其中同步端点标志、帧大小等参数需要特殊处理;查找并提取DMA描述符,同步端点在帧中断时会产生DMA请求;传输数据时,数据从DMA_buffer_start_addr开始,传输完成后Present_DMA_count递增。对于OUT端点,每次传输后更新Isochronous_packet_size_memory_address;IN端点则在传输时根据Packet_length字段指定数据包大小,并在传输结束后更新地址。
这部分内容详细描述了在LPC178x/177x微控制器中如何通过DMA进行高效的数据包传输,并且强调了同步端点处理的特殊性。这对于理解和实现基于这些芯片的嵌入式系统设计至关重要,尤其是在实时性要求高的应用中。同时,它展示了如何在实际硬件环境中应用理论知识,使得技术文章不仅仅是理论探讨,还包含了实际工程实践的应用示例。
2013-02-15 上传
2022-06-20 上传
2019-02-18 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-11-13 上传
2024-11-13 上传
2024-11-13 上传
CSDN热榜
- 粉丝: 1894
- 资源: 3907
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载