




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7 LECTURE 串行口 陈子为 1UART0 特性 LPC2000系列微控制器具有两个功能强大的UART 其中UART0具有如下的特性 16字节接收FIFO和16字节发送FIFO 寄存器位置符合16C550工业标准 接收FIFO触发点可设置为1 4 8或14字节 内置波特率发生器 由于这几个寄存器物理地址相同 不能同时访问 因此需使用UART线控制寄存器U0LCR的DLAB位进行区分 DLAB 0 UnTHR UnRBR UnIERDLAB 1 UnDLL UnDLM注意 使用除数锁存寄存器时需要先设置U0LCR的DLAB 1 1 在使用UART之前需要设置的寄存器 UART0内部结构示意图 FIFO控制 中断使能 UART0格式设置 波特率设置 数据传输时是低位在前 2 发送数据的通道 UART0内部结构示意图 CPU内核通过VPB接口对UART0的寄存器进行读写访问 发送缓存 发送移位寄存器 3 接收数据的通道 UART0内部结构示意图 接收缓存 接收移位寄存器 4 通信过程中可能影响的标志位 UART0内部结构示意图 中断标志 UART0当前状态 U0THR U0TSR TxD0 RxD0 U0LCR U0LSR U0IIR U0IER U0DLM U0DLL UART0相关寄存器描述 这两个寄存器决定波特率时钟的频率 而波特率时钟必须是波特率的16倍 波特率计算公式如下 BaudRate FPCLK U0DLM U0DLL 16 除数锁存寄存器 注意 由于U0DLL U0DLM寄存器与其它寄存器的地址重叠 所以在访问它们时 U0LCR的除数锁存访问位 DLAB 必须为1 示例 U0LCR 0 x80 DLAB 1 U0DLM Fpclk 16 baud 256 U0DLL Fpclk 16 baud 256 LPC2103的UART特有的寄存器 1 发生使能寄存器UxTER x 0 1 2 自动波特率控制寄存器UxACR x 0 1 3 小数分频器寄存器UxFDR x 0 1 该寄存器控制生成波特率的时钟预分频器 该寄存器的复位值保持小数波特率发生器功能禁止 以确保UART的软件和硬件与没有该特性的UART完全兼容 UART0相关寄存器描述 中断使能寄存器 U0IER U0IER可以控制UART0的4个中断源 其中RBR中断使能包括两个中断 一个是接收数据可用 RDA 中断 一个是接收超时中断 CTI 稍后将对各中断源作详细介绍 UART0相关寄存器描述 中断标识寄存器 U0IIR提供状态代码用于指示一个挂起中断的中断源和优先级 在访问U0IIR过程中 中断被冻结 如果在访问U0IIR时产生了中断 该中断将被记录 在下次访问U0IIR时可以读出 避免了中断的丢失 U0IIR UART0相关寄存器描述 中断标识寄存器 中断源和中断使能的关系 U0IIR RLS中断 U0IIR 3 1 011 RDA中断 U0IIR 3 1 010 CTI中断 U0IIR 3 1 110 THRE中断 U0IIR 3 1 001 UART0相关寄存器描述 中断标识寄存器 U0IIR RLS中断 RDA中断 CTI中断 THRE中断 中断源和中断使能的关系 UART0相关寄存器描述 中断源说明 RLS中断 该中断为最高优先级 它在UART0产生了四个错误条件 溢出错误 OE 奇偶错误 PE 帧错误 FE 和间隔中断 BI 中的任意一个时置位 通过查看U0LSR 4 1 可以了解到产生该中断的错误条件 读取U0LSR时清除该中断 UART0相关寄存器描述 中断源说明 RDA中断 该中断与CTI中断并列为第二优先级 当接收的有效数据到达接收FIFO设置寄存器 U0FCR 中设置的触发点时 RDA被激活 当接收FIFO中的有效数据少于触发点时 RDA复位 1 移位寄存器 U0RSR 从RxD0引脚接收串行数据后 送入接收FIFO中 2 当接收FIFO中的有效数据数量到达预定的触发点时 置位RDA中断 3 从U0RBR寄存器中读取FIFO中最早到达的数据 当FIFO中的有效数据小于预定触发点时 清零RDA中断 DATA UART0相关寄存器描述 中断源说明 CTI中断 该中断为第二优先级 当接收FIFO中的有效数据少于预定的触发点数量 但至少有一个字节时 如果超过接收3 5 4 5个字节所需要的时间仍没有接收到数据 那将触发该中断 对接收FIFO的任何操作都会清零该中断标志 接收FIFO 触发点设置 8 U0RBR 1 移位寄存器 U0RSR 从RxD0引脚接收串行数据后 送入接收FIFO中 2 当接收FIFO中的有效数据少于触发个数 但至少有一个时 如果长时间没有数据到达 将触发CTI中断 3 从U0RBR中读取接收FIFO中的数据 或者有新的数据送入接收FIFO 都将清零CTI中断 U0RSR DATA RxD0 UART0相关寄存器描述 中断源说明 THRE中断 该中断为第三优先级 当发送FIFO为空并且满足一定的条件时 该中断将被触发 这些条件是 发送FIFO 1 系统启动时 虽然发送FIFO为空 但不会产生THRE中断 DATA U0TSR 2 在上一次发生THRE中断后 向发送FIFO中写入1个字节数据 将在延时一个字节加上一个停止位后发生THRE中断 这是因为 如果发送移位寄存器为空 那么写入发送FIFO的数据将直接进入发送移位寄存器 此时发送FIFO仍然为空 如果立即产生THRE中断 就会影响紧接着要写入发送FIFO的数据 所以在发送完该字节以及一个停止位后 才产生THRE中断 3 如果在发送FIFO中有超过两个字节以上的数据 但是现在发送FIFO为空时 将立即触发THRE中断 当THRE中断为当前有效的最高优先级中断时 往U0THR写数据 或者对U0IIR的读操作 将使THRE中断复位 void irqUART0 IRQ void uiGNum 0 while U0IIR 串口中断服务函数 返回 UART0相关寄存器描述 FIFO控制寄存器 U0FCR U0FCR控制UART0接收和发送FIFO的操作 UART0相关寄存器描述 FIFO控制寄存器 U0FCR UART0相关寄存器描述 FIFO控制寄存器 U0FCR UART0相关寄存器描述 FIFO控制寄存器 U0FCR UART0相关寄存器描述 FIFO控制寄存器 U0FCR UART0相关寄存器描述 线状态控制寄存器 U0LCR UART数据帧结构 停止位 1 2位 数据 5 8位 奇偶校验位 可选 起始位 U0LCR寄存器 U0LCR控制发送和接收数据帧的格式 UART0相关寄存器描述 线状态控制寄存器 U0LCR UART0相关寄存器描述 线状态寄存器 U0LSR为只读寄存器 它反映了UART0接收和发送模块的状态信息 U0LSR UART0相关寄存器描述 线状态寄存器 U0LSR UART0相关寄存器描述 线状态寄存器 U0LSR UART0相关寄存器描述 线状态寄存器 U0LSR UART0相关寄存器描述 线状态寄存器 U0LSR UART0相关寄存器描述 线状态寄存器 U0LSR UART0相关寄存器描述 线状态寄存器 U0LSR UART0相关寄存器描述 线状态寄存器 U0LSR 使用UART0注意要点 U0RBR与U0THR在同一地址上 但实际上是两个独立的寄存器 读操作时选择U0RBR 写操作时选择U0THR U0DLL与U0RBR U0THR U0DLM与U0IER在同一地址上 通过除数访问位DLAB选择 当该位为1时 选择U0DLL和U0DLM 为0时 选择U0RBR U0THR和U0IER 波特率计算公式 UART0应用示例 操作流程 UART0应用示例 初始化代码 UART0初始化代码 defineUART BPS115200VoidUART0 Ini void uint16Fdiv PINSEL0 0 x00000005 U0LCR 0 x83 Fdiv Fpclk 16 UART BPS U0DLM Fdiv 256 U0LLM Fdiv 256 U0LCR 0 x03 UART0应用示例 初始化代码 UART0初始化代码 defineUART BPS115200VoidUART0 Ini void uint16Fdiv PINSEL0 0 x00000005 U0LCR 0 x83 Fdiv Fpclk 16 UART BPS U0DLM Fdiv 256 U0LLM Fdiv 256 U0LCR 0 x03 UART0应用示例 收发数据 voidUART0 SendByte uint8data U0THR data while U0LSR uint8UART0 RcvByte void uint8rcv data while U0LSR 查询方式发送一字节数据 查询方式接收一字节数据 UART0应用示例 中断方式 UART0 Ini 初始化串口模式U0FCR 0 x81 使能FIFO 并设置触发点为8字节U0IER 0 x01 允许RBR中断 即接收中断 设置中断允许 VICIntSelect 0 x00000000 设置所有通道为IRQ中断VICVectCntl0 0 x26 UART0中断通道分配到IRQslot0 即优先级最高VICVectAddr0 int IRQ UART0 设置UART0向量地址VICIntEnable 0 x00000040 使能UART0中断 中断服务程序IRQ UART0 见前面 2SPI接口 特性 大部分LPC2000系列微控制器具有两个硬件SPI SerialPeripheralInterface 接口 LPC2104 LPC2105 LPC2106只有一个 它们具有如下特性 完全独立的SPI控制器 遵循同步串行接口 SPI 规范 全双工数据通信 可配置为SPI主机或从机 最大数据位速率为外设时钟Fpclk的1 8 注意 LPC2103只有一个SPI接口 但还有一个SSP接口 这个SSP接口可以实现SPI接口功能 SPI接口简介 SPI是一种全双工的同步串行接口 一个SPI总线可以连接多个主机和多个从机 在同一时刻只允许一个主机操作总线 并且同时只能和一个从机通信 串行时钟由主机产生 当主机发送一字节数据 通过MOSI 的同时 从机返回一字节数据 通过MISO 使用SPI通信需要4个引脚 分别为 SPI电气连接 作SPI主机时 SSEL要接上拉电阻 VDD3 3 注 对于LPC2103 作为主机时 主机的SSEL引脚可作为GPIO功能使用 不必接上拉电阻 SPI工作模式 LPC2000在SPI通信中可作为从机也可以作为主机 这取决于硬件设计和软件设置 当器件作为主机时 使用一个IO引脚拉低相应从机的选择引脚 SSEL 传输的起始由主机发送数据来启动 时钟 SCK 信号由主机产生 通过MOSI发送数据 同时通过MISO引脚接收从机发出的数据 当器件作为从机时 传输在从机选择引脚 SSEL 被主机拉低后开始 接收主机输出的时钟信号 在读取主机数据的同时通过MISO引脚输出数据 SPI接口内部结构 SPI寄存器描述 SPI寄存器描述 SPI控制寄存器 SPCR寄存器包含一些可编程位来控制SPI功能模块的功能 该寄存器必须在数据传输之前进行设定 SPI寄存器描述 SPI控制寄存器 SPI寄存器描述 SPI控制寄存器 SPI寄存器描述 SPI控制寄存器 SPI寄存器描述 SPI控制寄存器 SPI寄存器描述 SPI控制寄存器 SPI寄存器描述 SPI状态寄存器 SPSR寄存器为只读寄存器 用于监视SPI功能模块的状态 包括一般性功能和异常状况 SPI寄存器描述 SPI数据寄存器 SPDR寄存器为SPI提供数据的发送和接收 处于主模式时 向该寄存器写入数据 将启动SPI数据传输 从数据传输开始到SPIF状态位置位并且没有读取状态寄存器的这段时间内不能对该寄存器执行写操作 SPI寄存器描述 SPI时钟计数寄存器 作为主机时 SPCCR寄存器控制SCK的频率 寄存器的值为一位SCK时钟所占用的PCLK周期数 该寄存器的值必须为偶数 并且必须不小于8 如果寄存器的值不符合以上条件 可能会导致产生不可预测的动作 SPI速率 Fpclk SPCCR 示例 fdiv Fpclk F spi if fdiv 8 fdiv 8 S0PCCR fdiv 使用SPI接口的注意要点口 作主机时 SSEL引脚必须接上拉电阻 不能作为IO口使用 作主机时 在发送一字节数据的同时接收一字节数据 SPI时钟分频值必须大于或等于8 数据寄存器与内部移位寄存器之间没有缓冲区 写SPDR会使数据直接进入移位寄存器 因此数据只能在上一次数据发送完成后写入SPDR寄存器 S0PDR data1 通过将数据写入到数据寄存器S0PDR来启动数据发送 While S0PSR SPI应用示例 作为主机 操作流程 SPI应用示例 作为主机 SPI初始化代码 defineMSTR 1 5 defineCPOL 1 4 defineCPHA 1 3 defineLSBF 1 6 defineSPI MODE MSTR CPOL voidMSpiIni uint8fdiv if fdiv 8 fdiv 8 S0PCCR fdiv 过滤分频值 如果小于8为非法 SPI应用示例 作为主机 SPI主机发送和接收程序 defineMSTR 1 5 defineCPOL 1 4 defineCPHA 1 3 defineLSBF 1 6 defineSPI MODE MSTR CPOL uint8MSendData uint8data IO0CLR HC595 CS S0PDR data while 0 S0PSR SPI应用示例 作为从机 操作流程 SPI应用示例 作为从机 SPI初始化代码 初始化从机voidSSpiIni uint8fdiv S0PCR 1 4 收发一字节数据uint8SSwapData uint8data S0PDR data while 0 S0PSR 特殊 LPC2103的SPCR与SPDR LPC2103的SPI控制寄存器SPCRLPC22xx传输的数据固定为8位 而LPC2103传输的数据的位数可以由用户设置 LPC2103的SPCR寄存器的第2位 0表示每次传输的数据位数是8位1表示每次传输的数据位数取决于第11 8位 LPC22xx只有前8位 无第11 8位 1000每次传输8位1001每次传输9位 1111每次传输15位0000每次传输16位SPCR的其它位 LPC2103与LPC22xx相同 LPC2103的SPI数据寄存器SP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 溶剂蒸馏工质量管控考核试卷及答案
- 建筑防雷工程技术施工方案
- 白酒市场营销策划方案模板
- 林业碳汇核算-洞察及研究
- 2025-2030中国工业机器人应用市场发展趋势及投资回报分析报告
- 矿区土壤碳汇功能恢复-洞察及研究
- 2025-2030中国共享公寓卫生安全标准与运营规范研究报告
- 2025-2030中国公寓行业人才需求与人力资源管理报告
- 2025-2030中国住房租赁市场租金定价机制与波动规律
- 2025-2030Z世代租住行为特征与公寓服务升级方向研究
- 汉服妆造培训课件
- 静脉输液安全及风险防控
- 电能质量控制与安全标准手册
- 设计总监升职述职报告
- JJF 2203-2025水质毒性分析仪校准规范
- 《MRO系统简介》课件
- 第五讲-铸牢中华民族共同体意识-2024年形势与政策(讲稿)
- 秦岭科普知识
- 律所销售培训
- 《质谱分析方惠群版》课件
- 护理专科建设与发展
评论
0/150
提交评论