嵌入式第16讲_第8章常用嵌入式接口和嵌入式外部设备1汇总.ppt

嵌入式第16讲_第8章常用嵌入式接口和嵌入式外部设备1汇总.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 第17讲 嵌入式接口技术 第8章 嵌入式存储器和接口技术 本章主要介绍以下内容: 嵌入式系统常用存储器 嵌入式系统常用总线 嵌入式系统常用接口 嵌入式系统常用外部设备 2 8.3 嵌入式系统常用接口 嵌入式系统常用的接口有串口、以太网口、USB口和JTAG口。此外,还有通用IO口(GPIO)、火线(IEEE1394)、同步串行IO口(例如:S3C44B0X处理器的SIO)、 PCMCIA等。 在第5讲我们已经详细讲解了JTAG接口,以下我们主要介绍串口(UART)、 GPIO口和USB口。 由于篇幅的限制,我们没有把以太网接口和以太网接口控制器RTL8019AS的讲解做在本课件中。 3 8.3.1 UART接口 UART负责管理异步串行数据通信,常常用于主机与嵌入式开发板的之间的最初调试信息通信,在嵌入式系统中是重要的I/O接口之一。 多数嵌入式处理器内部集成了UART接口。例如:S3C44B0X内部具有2个(S3C2410有3个)独立的UART通道,每个UART通道都可以工作在中断模式或DMA模式,并且每个UART均具有两个16字节的FIFO(先入先出寄存器)分别供接受和发送使用,所支持的最高波特率达到118.2Kbps(S3C2410为230.4Kbps)。 4 UART的基本功能 UART提供的主要功能是:传输波特率设定;将接受到的串行数据变换为主机内部的并行数据;把机内并行数据转换为输出串行数据;设定数据传输的帧格式;对输入输出的串行数据流中进行奇偶校验处理;进行数据收发执行缓冲处理等等。 5 S3C44B0X处理器的UART操作 主要有4种 UART操作 数据发送 数据接收 自动流控制 RS-232接口 6 S3C44B0X的UART编程步骤 通常基于S3C44B0X嵌入式开发板的串行口使用的是S3C44B0X内部UART接口。通过电平转换电路芯片(如Max3233),把3.3V的逻辑电平转换为RS-232-C的逻辑电平,向外进行数据收发。这种串口往往使用了RS-232-C的3根线进行通信,其接口为D型的9针阳性插头。 7 S3C44B0X的UART编程步骤(续1) D型的9针阳性插头各个管脚的定义及3线通信连接方法参看下图: 8 S3C44B0X的UART编程步骤(续2) 涉及UART数据发送接收的引脚主要是两组RxD,TxD引脚。参看下图,可以看出RxD0、TxD0、RxD1、TxD1这四个引脚是复用引脚。因此,在编写串口数据收发程序之前,首先需要对GPC12、GPC13、GPE1、GPE2口的工作模式进行设置。 9 S3C44B0X的UART编程步骤(续3) S3C44B0X的UART数据收发引脚示意图: 10 S3C44B0X的UART编程步骤(续4) 与这两组串口引脚设置有关的寄存器PCONC和PCONE的部分位定义如下表所示。 控制寄存器 地址 控制口线 控制位 描述 PCONC 0x01D20010 PC13 27~26 00:输入 01:输出 10:DATA29 11:RxD1 PC12 25~24 00:输入 01:输出 10:DATA28 11:TxD1 PCONE 0x01D20028 PE2 5~4 00:输入 01:输出 10:RxD0 11:保留 PE1 3~2 00:输入 01:输出 10:TxD0 11:保留 PUPC 0x01D20018 PC15~ PC0 15~0 0:相应位的上拉电阻使能 1:相应位的上拉电阻失效 PUPE 0x01D2002C PE8~ PE0 8~0 0:相应位的上拉电阻使能 1:相应位的上拉电阻失效 11 S3C44B0X的UART编程步骤(续5) (1) PC口和PE口设置 #define rPCONC (*(volatile unsigned char*)0x01D20010) PC口通过以下C语句设置: rPCONC = 0x0F000000 | rPCONC; /* 使PC13引脚为RxD1,PC12引脚为TxD1*/ rPUPC = 0x3000; /* 设置PC13和PC12无内部上拉电阻*/ PE口通过以下C语句设置: rPCONE = (rPCONE0xFC3) | 0xEB; /*使PE2引脚为RxD0,PE1引脚为TxD0 */ rPUPE = 0x6; /* 设置PE2和PE1无内部上拉电阻*/ 12 UART初始化代码 void Uart_Init(int Uartnum, int mclk, int baud) { int i; if(mclk==0) mclk=MCLK; if(Uartnum=

文档评论(0)

知识宝库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档