深圳市伟博创科技有限公司
深圳市伟博创科技有限公司
首页  有关伟博创  产品信息  行业动态  技术文章  人才招聘  联系我们  解决方案 
主要产品系列
LOGO--NXP恩智浦半导体
  • Microcontrollers
    • MCU
    • Cortex
    • ARM7
    • 80C51
  • Logic
  • RFID
  • Automotive
Exar半导体芯片--串行收发器
  • 串行收发器
TI(德州仪器)半导体
  • Chipcom
補丁科技
  • Specialty DRAM
开发工具
PDA开发
解决方案
产品展示
NXP LPC1768开发板
LPC1768开发板
TYPE A、TYPE B、“二代证”读卡模块--PDA
二代证读卡模块
H-JTAG开发套件
H-JTAG开发套件

LPC111X、LPC13XX 软件化的全双工UART

该文档描述了运行在LPC111X/LPC13XX 处理器上的软件如何实现标准的通用异步收发(UART)

1.简介

LPC111X、LPC13XX 系列微控制器提供了丰富的通讯接口。每一个微控制器都包含一 个片上UART(通用异步收发)。而实际上,很多实际应用需要更多的UART。在这种情况 下,可以考虑增加一个外部独立的UART 芯片,软件化的UART 不仅可以减少物料成本, 而且又不占用额外的PCB 空间。这样,设计人员就可以满足小型化的要求,达到降低成本 的目的。该文档描述了全双工UART 软件化的实现方法。

LPC111X/LPC13XX 的软件UART 是从LPC2000 移值而来。软件UART 的实现原理的 细节,请参考AN10689-LPC2000 software UART。该文档使用Artists’ LPCXpresso 1114 Rev A ,LPCXpresso Base Board Rev A evaluation kits 和Code Red LPCXpresso 3.3.4。值得注意 的是,请确保开发板(the Base Board)上的跳线处于正确的位置,特别是热敏元件不是连 接到P1.5,电位计不是连接到P0.11。

须知,示例软件包并不是最优的。当增加软件UART 功能时,可能需要1KB 的额外空间, 在优化代码密度时请注意。在某一特定应用中,如果全双工操作不是必需的,可以裁减没用 的UART 功能达到减小代码体积的目的。

2.实现

该方案依赖一个通用32 位定时器(timer),定时器可以在触发一个指定的pin 的同时, 监听另一个pin 的状态。当启动定时器的捕获和触发功能时,接收程序还要使用定时器的一 个匹配寄存器。每一个定时器都有4 个匹配寄存器,表1 指明了它们的配置。在本文档中, 使用的是Timer32_0。示例代码中的转换格式见表2。

表1 匹配寄存器的使用
Timer MRn Function
MR0 RX
MR1 RX
MR2 Available to user
MR3 TX

该软件方案采用深度可变的先入先出的形式(variable depth FIFOs)作为发送和接收的缓 冲。请注意,UART 的波特率以及发送器、接收器的FIFO 深度,是在编译过程中配置的,并且 在运行时无法改变。

表2
Parameter Value
Start Bits 1
Data Bits 8
Stop Bits 1
Parity None

演示源代码利用了LPC111X 和LPC13XX 的引脚兼容性的优点,在目标平台之间只需 要做最少量的修改。表3 列出了源代码使用的引脚功能。本文档中使用的两个目标评估模块 配备了硬件电路以转换外围的UART 信号到RS232 或者USB。软件UART 引脚必须与这些 信号相连接才能与PC 通信。因为LPC111X/LPC13XX 的引脚默认使用上拉电阻,P1.6 和 P1.7 必须设置为闲置模式(inactive mode)避免与软件UART 信号发生冲突。

引脚PIN功能-LPC111X、LPC13XX 软件化的全双工UART,NXP

3.软件环境

本文档中包含了几个版本的示例软件工程。这些工程在表4 所列明的环境中进行测试。示例 工程的默认大小(没有优化)列在表5 中。

工具版本-LPC111X、LPC13XX 软件化的全双工UART,NXP 文件大小-LPC111X、LPC13XX 软件化的全双工UART,NXP

4.硬件配置——IAR LPC1114 SK

图1 所示为一个连线的例子。请注意,跳线连接P0.11 和P1.7,使用20pin 标准连接器 进行调试。这样的话不会影响JLink 调试,但是仍然需要一个外部的调试器,例如Keil ULINK2,使用10pin SWD 头。

IAR LPC1114 SK-LPC111X、LPC13XX 软件化的全双工UART,NXP

5.硬件配置——LPC1114 LPCXpresso

图2 所示为软件UART 信号与USB 转换芯片的连接方法。

LPC1114 LPCXpresso-LPC111X、LPC13XX 软件化的全双工UART,NXP

6.操作

LPC13XX 系列演示代码在以下几种条件下进行测试:1,没有使用系统的PLL,连接 外部12MHz 晶振;2,使用系统的PLL 分别产生24MHz,60MHz,72MHz 系统时钟。LPC111X 系列在以下环境中测试:1,外部12MHz 晶振;2,使用PLL 分别产生24MHz 和48MHz 系统时钟。

请注意,UART 的波特率依赖于系统时钟频率。因此,系统使用一个不同于示例代码中 的48MHz/72MHz 的时钟频率时,必须在工程源代码中更新BIT_LENGTH 的定义。例如, 在12MHz 的系统中传送串行数据的速率为9600bit/s , 则BIT_LENGTH 为: 12000000/9600=1250 。如果系统时钟变为48MHz , BIT_LENGTH 应该改为: 48000000/9600=5000。

演示程序先发出一个用户提示信息,然后进入一个永恒循环,把接收到的字符回传给用户, 如图3 所示。

输出-LPC111X、LPC13XX 软件化的全双工UART,NXP

7.结果

信号线的示波图(The oscilloscope screenshots)在调试过程中很有帮助。这些类似于LPC2000 软件UART,细节请参考AN10689。表6 和表7 所示为,演示程序在不同的系统时钟频率 下,波特率最大的速率。

表6 LPC111X测试结果
System clock(MHz) Max.transmit(bit/s) Max.receive(bit/s)
12 9600 4800
24 38400 9600
48 57600 19200

表7 LPC13XX测试结果
System Clock(MHz) Max.transmit(bit/s) Max.reveive(bit/s)
12 9600 4800
24 38400 9600
60 115200 19200
72 115200 38400

8.结论

尽管部分LPC11XX/LPC13XX 只配置了单一的UART,通过这个例程,设计人员使用 额外的软件UART 通道,可以增强产品的性能。采用这种软件化方案,不必在PCB 上增加 额外的IC,这样既节省了空间,又降低了生产的成本。

文档下载:

  • LPC111X、LPC13XX 软件化的全双工UART.pdf
  • 工程包下载

声明:本站部分内容根据互联网资料整理而成,若侵犯您的权益,请联系我们,我们会尽快处理。

深圳市伟博创科技有限公司
管理员 | 首页 | 产品 |   联系我们
© 2006 WeBoch.Com.cn 版权所有:深圳市伟博创科技有限公司
地址:深圳市福田区振华路苏发大厦305栋405 电话:0755-83240703 传真:0755-83240724