- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Cortex—m3为内核开发板设计与制作
基于Cortex—m3为内核开发板设计与制作
摘要:为了实现以CortexM3为内核制作一个实验开发板,用于教学、竞赛、工控开发,通过一系列的模拟仿真和研究分析,设计了开发板的电路原理图,分析了以太网的结构、原理、初始化过程,USBOTG的设计思路、电路原理图和初始化过程以及SD卡驱动电路的设计过程,并制作了可实际使用的电路板。整个开发板主要能够为学生的课程设计、毕业设计、创新活动提供良好平台。
关键词:CortexM3;LPC1768;以太网驱动电路;USBOTG驱动电路;SD卡驱动电路
中图分类号:TN91934文献标识码:A文章编号:1004373X(2012 ARMCortexM3处理器是一款具有极高运算能力和中断响应能力的处理器内核,能够实现8位和16位处理器级数的代码存储密度。该内核体积很小,从而使它的封装更为小型,成本更为低廉,应用更为广泛。NXP(恩智浦半导体)公司的LPC1700系列ARM是基于CortexM3内核的微控制器,是为嵌入式系统应用而设计的高性能、低功耗的32位微处理器,适用于仪器仪表、工业通信、电机控制、灯光控制、报警系统等领域。它的操作频率高达120MHz,采用3级流水线和哈佛结构,带独立的本地指令和数据总线,代码执行速度高达1.25MIPS/MHz,同时包含1个支持随机跳转的内部预取指单元[1]。本文设计了以LPC1768为控制器核心的开发板,完成了以太网、USBOTG、SD卡驱动等控制电路设计及程序驱动设计。
1以太网驱动电路的设计
以太网模块包含一个功能齐全的10Mb/s或100Mb/s以太网MAC(媒体访问控制),以太网MAC通过使用DMA硬件加速功能来优化其性能。以太网模块具有大量的控制寄存器组,可以提供:半双工/全双工操作、流控制、控制帧、重发硬件加速、接收包过滤以及LAN上的唤醒等。利用分散集中式(ScatterGather)DMA进行自动的帧发送和接收操作,减轻了CPU的工作量[2]。
以太网模块是一个AHB主机,驱动AHB总线矩阵。通过矩阵,它可以访问片上所有的RAM存储器。建议以太网使用RAM的方法是专门使用其中一个RAM模块来处理以太网通信。那么该模块只能由以太网和CPU,或许GPDMA进行访问,从而获取以太网功能的最大带宽[3]。
以太网模块使用简化的媒体独立接口(RMII)???议和片上媒体独立接口管理(MIIM)串行总线、还有管理数据输入/输出(MDIO)来实现与片外以太网PHY之间的连接。本设计以太网PHY所采用的芯片是KSZ8041TL[4]。
在以太网模块的初始化过程中,软件需完成:
(1)将软件复位条件从MAC中移除;
(2)通过MAC的MIIM接口配置PHY;
(3)选择RMII模式;
(4)配置发送和接收DMA引擎,包括描述符数组;
(5)配置MAC中的主机寄存器(MAC1,MAC2等等);
(6)使能接收和发送数据通道[5]。
软件通过对MAC的MCFG,MCMD,MADR寄存器进行编程来读写PHY寄存器。写数据应该写入MWTD寄存器,读数据和状态信息可以从MRDD和MIND寄存器中读取。以太网模块支持RMIIPHY。在初始化过程中,软件必须通过对命令寄存器进行设置来选择RMII模式[7]。
在切换到RMII模式之前,默认的软件复位(MAC1寄存器的位15)必须失效。在该操作过程中需要运行phy_ref_clk,且将其内部连接上。
设备驱动软件通过分配存储器中的“描述符数组”和“状态数组”来完成对发送和接收DMA引擎的初始化。发送和接收功能各自都有专门的描述符和状态数组。这些数组的基址需在TxDescriptor/TxStatus和RxDescriptor/RxStatus寄存器中编程。数组中描述符的数目要与数组中状态的数目相等[8]。
以太网控制器的初始化代码如下:
2USBOTG驱动电路设计
对于OTG功能,必须将OTG收发器连接到LPC1700系列CortexM3微控制器设备,使用USB信号的内部USB收发器,并仅使用OTG功能的外部OTG收发器(见图1)。该选项在VP/VM模式下使用内部收发器。
电路给出了构建OTG功能时需要在基础USB外设上添加的电路,电路中的通用串行总线控制器可以是LPC1768和USBSIE(串口引擎);为总线提供电源的外部设备需要一路3.3V稳压输出供电电压,以便为逻辑电路和连接在D+,D—引脚的1500Ω电阻提供电源。通过D+,D—引脚上的上拉电阻可向主机发出设备已连接的信号,并指示设备的工作速度。电阻上拉至D+表示全速运行,电阻上拉至D—表示低速运行。其他端点(包括D+和D—的15kΩ下拉电阻)用于检测上拉
文档评论(0)