一起学mini2440裸机开发(六)--UART原理与基础实验资料.docVIP

一起学mini2440裸机开发(六)--UART原理与基础实验资料.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
? 一起学mini2440裸机开发(六)--UART原理与基础实验 ?我个人感觉UART也不算是很难,学过单片机的相信都用过UART,在这里还是说说它吧,并且在写基础实验并调试的时候,出现了一个问题,就是我们平时使用jlink调试程序都是基于在sdram中运行的,由于ram的掉电易失性,所以咱们的裸机程序根本就不能脱机工作,也即是说复位之后程序就没有了,当然,我知道可以利用以后学的知识将它下载到NAND Flash中去,这个以后再说。貌似还有一个办法,就是使用mdk直接Download到flash,不过需要什么算法之类的,这个算法我还不懂,先不管他了,先把UART的原理实验弄清楚了再说,以后学了nand flash就可以脱机工作了。 UART概述 ??? S3C2440通用异步收发器(UART)提供3个独立的异步串行I/O(UART0、UART1、UART2),每个端口都可以在中断或DMA模式下。也就是说,在CPU和UART之间传输数据时,UART可以产生中断或DMA请求。 ??? 使用UART的最简单情况是只使用3根线:Tx用于数据发送,Rx用于数据接收,GND是双方地线,提供通信双方的参考电平,如图1所示: ????? 其中电平转换器的作用是完成通信双方之间的电平转换,这又牵扯到RS232电平和CMOS电平,咱可以不管它,可以直接假设PC机的Rx、Tx粉笔用两根线直接与SC2440的Tx、Rx相连就行了,即,PC机发送端Tx发送一个数据,S3C2440接收端Rx就能接收到该数据,反之亦然。 S3C2440处理器UART工作原理: ??? ??S3C240的3个UART包括可编程的波特率,红外(IR)发射/接收,一个或两个停止位,5位、6位、7位或8位的数据宽度,和奇偶校验位。(不很懂是吧,其实我开始也不懂,这是什么玩意儿) ??? 每个UART包含一个波特率发生器、发送器、接收器和一个控制单元,如图2所示。波特率发生器的输入时钟有3种:PCLK、FCLK/n、UEXTCLK(外部输入时钟)。 ?? ?? 结合上图,数据收发原理如下: ?? UART包含两种工作模式,FIFO模式和非FIFO模式。 ?? ●?? FIFO模式数据收发过程 ??? 发送数据:在发送数据之前,先将数据写入到发送FIFO,然后数据从发送FIFO复制到发送移位寄存器,最后将数据从数据引脚(TxDn)移出。 ?? ?接收数据:数据从RxDn引脚一位一位地接收到接收移位寄存器,然后数据从接收移位寄存器复制到接收FIFO,最后,CPU可通过数据总线从接收FIFO中读取数据, 如图2中黑色虚线所示。 ?? ●?? 非FIFO模式数据收发过程 ??? 发送数据: 在发送数据之前,先将数据写入到发送保持寄存器,然后数据从发送保持寄存器复制到发送移位寄存器,最后将数据从数据引脚(TxDn)移出,如图2 中黑色粗实线所示。 ??? 接收数据:数据从RxDn引脚一位一位地接收到接收移位寄存器,然后数据从接收移位寄存器复制到接收保持寄存器,最后,CPU可以从接收保持寄存器中读取数据, 如图2中黑色虚线所示。???? ??? 注意:从图2中可以很容易看出发送FIFO和发送保持寄存器、接收FIFO和接收保持寄存器的关系。发送保持寄存器只是发送FIFO中的一个字节,接收保持寄存器只是接收FIFO中的一个字节。其实,非FIFO模式FIFO可以理解为FIFO模式的一个特例,此时,FIFO寄存器只有一个字节,而在FIFO模式时,FIFO寄存器有64个字节。 ??? 下面就以非FIFO模式讲解,嘿嘿,其实,FIFO模式我不会用,至少是在平时的程序中没有用到。 UART引脚及相关寄存器 ??? S3C2440的引脚是复用的,可以通过编程将同一个引脚设置为不同的功能,UART也不例外。前文讲到在最简单的情况下,UART只需要3根线就可以实现通信功能,出去GND外,只有两根线:一根数据发送线TXD,一根数据接收线RXD。下图为S3C2440关于UART的引脚安排图: ??? ?? 本实验咱们使用UART0,从上图可以看出,TXD0与GPH2是复用的,RXD0与GPH3是复用的。 ?? 因此,使用UART0,首先应将GPH2设置为TXD0功能,将GPH3设置为RXD0功能: ?????GPHCON=~((34)|(36));?????? ?//GPH2--TXD0;GPH3--RXD0 ?????GPHCON|=((24)|(26));??????????//设置GPH2、GPH3为TXD0、RXD0功能 ?? 然后是初始化与UART0相关的寄存器。 ?? S3C2440处理器串口具有很多功能。例如,支持FIFO模式、硬件流控、接收中断、接收超时、接收错误状态中断使能等功能。但是,对于我这样

文档评论(0)

南非的朋友 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档