- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《S3C2440 之USB 设备篇》.doc
????? ?? ??? S3C2440 之USB 设备篇
S3C2440 有2 个USB 主机接口和1 个USB 设备接口, 本篇讲述USB 设备接口。
1 USB 的分类及主机接口和设备接口的区别
1.1USB2.0 按照速度分为以下三类
High-speed USB2.0 :理论速度480Mbps ,对应之前的USB2.0 ; Full-speed USB2.0 :理论速度12Mbps ,也就是过去的USB1.1 ; Low-speed USB2.0 :理论速度1.5Mbps ,这个一般用于鼠标、键盘等对速度要求不高的外部设备。
?
1.2 低速USB? 全速USB 硬件设备接口的区别
USB 通过D-,D+ 信号的状态判断设备的插入,如下图所示,D+ 接上拉电阻为全速设备,D- 接下拉为低速设备。
?
1.3 MINI2440USB 设备接口的区别
? ? ? Mini2440 开发板只有一个USB 主机接口和一个USB 设备接口,均为USB 全速接口。Mini2440 USB 设备的D+ 是由GPC5 来控制的,如果GPC5 输出高电平,则D+ 上相当于通过上拉电阻接到+5V ,则设备启用;如果GPC5 输出低电平,则D+ 上相当于通过下拉电阻接到GND ,则设备禁用。
?
2 S3C2440USB 设备的固件枚举过程分析
2.1 S3C2440 USB 设备的端点
?? 2440 有5 个端点,EP0 ,EP1 ,EP2 ,EP3 ,EP4, 。
?? EP0 是用于USB 设备枚举,传输方式为control 方式。EP1 到 EP4 用于数据传输。端点的传输方向有两种,IN 和OUT ,这个由 IN_CSR2_REG 来配置。
? 端点的传输方式,批量(bulk ),中断(interrupt )也是由 IN_CSR2_REG 来配置。
由上图看到,BIT6 用于配置是批量模式,BIT5 用于配置传输方向。
?
2.2 S3C2440 USB 程序分析
????? 整个USB 枚举过程其实是很简单的,首先进行USB 时钟的初始化,设置为48MHz ;然后GPC5 使能,表示全速设备,然后设置USBD1 为USB 设备,禁止USB 挂起,这样调用 UsbdMain(); 进行必要的初始化,这样就准备完成了。
当我们把2440 的USB 口插入到电脑主机的时候,会产生USB 设备复位中断,我们在设备复位中断中进行一些初始化,整个枚举就进入到一个状态机中,一步一步直到枚举完成。
?
// 初始化USB 设备时钟 48MHZ
?????? ChangeUPllValue(0x38,2,2); // UCLK=48Mhz
?
?????? // GPC5 使能, 输出为高电平, 表示全速设备
?????? rGPCCON = ~(310);
?????? rGPCCON |=? (110); // output
?????? rGPCUP? |=? (15);? // pullup disable
?????? rGPCDAT |=? (15);? // ourtput?
?
?????? rMISCCR=rMISCCR~(13);? // USBD1 设置为设备( 不是主机)
?????? rMISCCR=rMISCCR~(113); // USBD1 设置为普通模式( 不是挂起模式)
?????? UsbdMain();
??? while(1)
?????? {
delay();
}
?
我们看下函数UsbdMain 的定义
void UsbdMain(void)
{
??? InitDescriptorTable();?? // 初始化设备描述符
?
??? ConfigUsbd(); ???????? // USB 配置
?
??? PrepareEp1Fifo(); ????? // 端点1 初始化
}
?
我们看下函数ConfigUsbd
void ConfigUsbd(void)
{
??? ReconfigUsbd();?????? // 重新配置USB
?
??? pISR_USBD =(unsigned)IsrUsbd;? // 安装中断函数
??? ClearPending(BIT_USBD);??????? // 清除USB 中断挂起标记
??? rINTMSK=~(BIT_USBD);?? ??? // 允许USB 中断
}
?
void ReconfigUsbd(void)
{
// *** End point information ***
//?? EP0: co
您可能关注的文档
- 《qby-100铝合金气动隔膜泵》.doc
- 《qby-10气动隔膜泵》.doc
- 《qby-15气动隔膜泵》.doc
- 《qby-15铝合金气动隔膜泵》.doc
- 《qby-25型气动隔膜泵》.doc
- 《qby-25气动隔膜泵》.doc
- 《qby-25铝合金气动隔膜泵》.doc
- 《qby-25铸铁气动隔膜泵》.doc
- 《qby-40不锈钢气动隔膜泵》.doc
- 《qby-40气动隔膜泵》.doc
- 2024年陕西咸阳亨通电力(集团)有限公司供电服务业务部直聘用工招聘145人笔试参考题库附带答案详解 .docx
- 2024年中建四局土木工程有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年四川雅茶贸易有限公司公开招聘和考察聘用人员3人笔试参考题库附带答案详解 .docx
- 2024年中国烟草总公司辽宁省公司公开招聘拟录用人员(166人)笔试参考题库附带答案详解 .docx
- 2024江苏连云港中诚物业管理有限公司招聘工作人员1人笔试参考题库附带答案详解 .docx
- [毕节]2025年贵州毕节市引进人才649人笔试历年参考题库附带答案详解.docx
- 2024年度中国东航技术应用研发中心有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年福建省厦门盐业有限责任公司春季人才招聘1人笔试参考题库附带答案详解 .docx
- 2024年山东省环保发展集团绿能有限公司职业经理人招聘2人笔试参考题库附带答案详解 .docx
- 2024年安徽滁州郊源阳光电力维修工程有限责任公司招聘41人(第一批次)笔试参考题库附带答案详解 .docx
文档评论(0)