软件UART示例

软件UART示例

ID:37675464

大小:741.22 KB

页数:34页

时间:2019-05-28

软件UART示例_第1页
软件UART示例_第2页
软件UART示例_第3页
软件UART示例_第4页
软件UART示例_第5页
资源描述:

《软件UART示例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、CYGNAL应用笔记AN015软件UART示例相关器件本应用笔记适用于下列器件C8051F000C8051F001C8051F002C8051F005C8051F006C8051F010C8051F011C8051F012C8051F015C8051F016C8051F017C8051F220C8051F221C8051F226C8051F230C8051F231C8051F236引言本应用笔记讨论基于C8051Fxxx系列器件的软件UART实现方法本文给出两个完整的例子一个用PCA为波特率发生器的C语言程序和一个用定时器0为波特率发

2、生器的汇编语言程序关键特性这两个软件设计示例在节省硬件资源和CPU带宽的前提下几乎完全模拟硬件UART的功能下面是两个例子中都可以找到的关键特性y一个与硬件UART相似的接口有用户级发送和接收中断y中断或查询方式访问支持y全双工通信使用18.432MHz时钟源时最大波特率可达57.6kbpsy基于状态的中断驱动实现方案需要的CPU开销最小y最少的硬件资源占用-C语言示例程序使用两个PCA模块-汇编语言示例程序使用定时器0工作于方式3实现选择在实现一个软件UARTSWUART时最重要的是在硬件占用和速度/效率之间权衡使用较多硬件的设计可

3、能消耗较小的CPU带宽并允许较高的位速率这种权衡将在下面讨论波特率源在传输每一位时都必须产生一个中断在全双工115.2kbps的速率下每4.3微秒产生一个中断产生这些中断波特率源的方法不同则实现时的CPU开销会有很大的差异可能的选择包括8位定时器16位定时器及可编程计数器阵列PCA注意对于全双工操作需要两个波特率源发送和接收各一个使用8位定时器的方案允许将一个16位硬件定时器用于产生发送和接收波特率定时器0工CYGNALIntegratedProducts,Inc.沈阳新华龙电子有限公司4301WestbankDrive沈阳市和平区青

4、年大街284号58号信箱SuiteB-100Copyright©2001CygnalIntegratedProducts,Inc.电话0242393036623940230Austin,TX78746版权所有电邮longhua@mail.sy.ln.cnwww.cygnal.com网址www.xhl.com.cnAN015软件UART示例作于方式3时具有这种能力注意当定时器0工作于方式3时定时器1的功能将减少但是定时器1仍可用作硬件UARTHWUART的波特率发生器使用8位定时器节省硬件资源但是会有CPU软件开销和延迟时间的问题这些问

5、题在例2中讨论上述方法的一个替代方案是使用16位自动重装载定时器在这种情况下两个16位硬件定时器被SWUART占用一个用于发送一个用于接收任何可用的定时器都能满足要求但定时器2和定时器3的自动重装载能力可以减少软件开销并可消除任何中断延迟问题此外16位定时器还可支持更宽的波特率范围可编程计数器阵列PCA也为SWUART提供了一个很好的解决方案所提供的C语言示例能说明这一点PCA包含一个专用的16位计数器/定时器和五个16位的捕捉/比较模块每个模块都可以被设置为在PCA计数器与相对应的比较模块的内容一致时触发一个中断由于PCA计数器在产

6、生中断时并不停止运行所以该方案可以避免中断延迟累加的问题PCA实现方案不适用于C8051F2xx器件其它考虑上述的每种定时器源都可以用SYSCLK或一个外部信号作为时钟在所提供的例子中波特率源用SYSCLK作为时钟而SYSCLK源自外部的18.432MHz晶体任何波特率/晶体频率组合都是允许的但软件开销限制了波特率与SYSCLK的最大比值起始位检测也是SWUART接收器的一个重要问题C8051F00x和C8051F01x器件提供了很多外部中断源其中有几个可被配置用于检测下降沿本文的两个示例程序都使用外部中断检测起始位例1可编程计数器阵

7、列实现例1使用两个PCA模块产生接收和发送波特率分别为模块0和1这两个模块被配置为软件定时器方式用于产生波特率中断对PCA的介绍见AN007程序结构在软件定时器方式当PCA计数器与某个比较模块中的值一致时PCA可产生一个中断由于PCA计数器不会中断运行比较模块可在每个位时间被更新以精确产生下一个位时间另外PCA还提供一个在起始位检测中很有用的捕捉功能PCA模块可通过交叉开关与外部信号连接这些信号对模块n称为CEXn可用于触发PCA计数器捕捉在SWUART接收器中用到这一特性起始位识别是用模块0实现的模块0被配置为在RX引脚出现一个下降

8、沿时捕捉PCA计数器的内容该功能有两个优点1起始位检测容易实现2由于捕捉是在检测到下降沿后立即完成的所以位采样时间不受中断响应延迟的影响实现例1中的发送和接收操作是在PCA中断服务程序的两个独立的状态机中实现的这两个状态

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。