基于无线通信模块的软件模拟uart的方法

文档序号:7664399阅读:146来源:国知局
专利名称:基于无线通信模块的软件模拟uart的方法
技术领域
本发明涉及一种基于无线通信模块的软件模拟UART(通用异步收发器) 的方法,特别是基于无线通信模块的一种软件算法替代普通RS232接口电路 的方法。
背景技术
目前大多数公司,基于无线通信模块的辅助EVB板(一种电路板)大 部分必须集成多个RS232接口芯片,以满足各种要求。例如在SIM300模块 辅助EVBV2.02上集成两块SPEX sp3238eea RS232接口芯片(一种RS232 接口芯片),这两块SPEXsp3238eeaRS232接口芯片分别提供MAIN (主函 数)串口和DEBUG (调试)串口支持。为实现稳定可靠的串口通信在硬件 设计上还必须考虑添加光耦隔离抗干扰等硬件电路。这种方法在实现方法上 并不复杂,但最大的问题是增加成本,在以百万级计算的大规模制造中,这种 方法的缺点一览无余。电子产品的开发设计时,通常要求在保证性能的情况 下降低硬件成本,软件模拟扩展串口提供了一种降低成本的好方法。

发明内容
本发明的目的是提供一种基于无线通信模块的软件模拟UART的方法, 该方法仅使用2个普通I/0和1个定时器,由于不受限制,可以扩展出多个 串口,且带FIFO (先进先出队列)的功能,该方法扩展模拟UART的收发 数据在中断服务中完成。
本发明的目的是通过以下技术方案实现的一种基于无线通信模块的软件模拟UART方法中的中断处理方法,其特 点在于,其包括以下步骤
1) 接收起始计数为零;
2) 如果三次采样到接收I/0引脚的电平为高、低、低,接收I/0口电平 计数设置为8位,时间计数清零;
3) 分别给接收和发送I/0口电平检测位清零,之后分成两个分支;
4) 如果接收口电平采样计数超过3并且接收起始计数不为零,则进入 数据接收子程序;
5) 如果发送口电平采样计数超过3,则进入发送数据子程序。
其中,中断定时间隔为波特率定时间隔的1/3,以3倍的波特率对RxD 进行采样。
一种基于无线通信模块的软件模拟UART方法中的数据发送方法,其特 点在于,其包括以下步骤
1) 当启动字节发送时,通过TxD先发起始位;
2) 然后发数据位和奇偶数效验位;
3) 最后再发停止位。
其中,该发送过程由发送状态机控制,每次中断只发送l个位,经过若 干个定时中断完成1个字节帧的发送。
一种基于无线通信模块的软件模拟UART方法中的数据接收方法,其特 点在于,其包括以下步骤
1) 当不在字节帧接收过程时,每次定时中断以3倍的波特率监视RxD 的状态,当其连续3次采样电平依次为高、低、低时,表示检测到起始位, 则开始启动一次字节帧接收;
2) 数据接收过程中,依次存储RxD的逻辑位形成字节数据,当数据接 收完毕且停止位为1时,表示接收到了有效数据;
3) 将接收结果存储到接收FIFO队列中去。
其中,该字节帧接收过程由接收状态机控制,每次中断只接收l个位,经过若干个定时中断完成1个字节帧的接收。 本发明的积极进步效果在于
1、 对于基于无线通信模块的进行二次开发的通信终端企业来说,能够 削减制造成本,节约人力资源,简化生产工艺;
2、 解决了基于无线通信模块二次开发过程中需要额外RS232芯片的问 题,提供一种简便、安全、廉价、稳定的方法,无需硬件额外支出,而且还 加强对I/O 口的复用,提高多UART 口处理能力。


图1为普通MCU (微控制器)与SIM300模块连接图。 图2为本发明的MCU与SIM300模块连接图。 图3为本发明较佳实施例中,中断处理方法的流程图。 图4为本发明较佳实施例中,数据发送方法的流程图。 图5为本发明较佳实施例中,数据接收方法的流程图。
具体实施例方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
一、 本发明的硬件连接
本实施例中无线通信模块选用SIMCOM公司的SIM300模块,但不局限于 该模块。如图1所示为普通MCU与SIM300模块的连接图,图中有两块RS232 接口芯片分别提供MAIN串口和DEBUG串口支持。但电子产品的开发设计 中,通常要求在保证性能的情况下降低硬件成本,所以如图2所示为本发明 中的MCU与SIM300模块的连接图,图中省去了额外的RS232芯片,仅使 用2个普通I/O 口和一个定时器。
二、 本软件模拟UART的方法中的中断处理方法 本发明的软件模拟UART的方法中包括中断处理方法,以及位于中断处
理方法流程末端的数据发送方法和数据接收方法,三种方法共同组成了本发明的软件模拟UART的方法。中断处理方法中首先打开定时器的中断,将定 时器设置为自装载模式,依照波特率设置定时中断的定时间隔,启动定时器, 并进行UART各变量的初始化。中断定时时间为波特率定时的1/3,即以3 倍的波特率对RxD进行采样,实现起始位的判别,当起始位到达时启动接 收过程状态机。将该定时进行3分频再调用数据的发送和接收过程,进行准 确波特率下的串口通信。
如图3所示为中断处理方法的具体步骤流程图。 步骤IOI,接收起始计数为零,如果不为零则执行步骤109。 步骤102,判断三次采样到接收I/0引脚的电平是否为高、低、低,如 果结果为是则继续下一步骤;否则执行步骤109,中断退出。
步骤103,接收I/0口电平计数设置为8位,时间计数清零。 步骤104,分别给接收和发送1/0 口电平检测位清零,之后分成两个分 支105和107。
步骤105,如果接收口电平采样计数超过3并且接收起始计数不为零, 则进入步骤106数据接收子程序;否则执行步骤109。
步骤107,如果发送口电平采样计数超过3,则进入步骤108发送数据 子程序;否则执行步骤109。
步骤109,中断退出。
三、本软件模拟UART的方法中的数据发送和数据接收方法 在串口的异步通信中,数据以字节为单位的字节帧进行传送,发送端和 接收端必须按照相同的字节帧格式和波特率进行通信,其中字节帧格式规定 了起始位、数据位、寄偶效验位、停止位。起始位是字节帧的开始,使数据 线处于逻辑0状态,用于向接收端表明开始发送数据帧,起到使发送和接收 设备实现同步。停止位是字节帧的终止,使数据线处于逻辑1状态,用于向 接收端表明数据帧发送完毕。波特率采用标准速度,如4800、 9600、 19200、 28800、 38400、 57600、 115200等。在本设计对硬件要求方面,仅仅占用CPU的任意2个I/O端口和1个定 时器,利用定时器的定时中断功能实现精确的波特率定时,发送和接收都在 定时中断的控制之下进行。
如图4所示为数据发送方法的流程图,与图3中步骤108相对应。
步骤1081,当启动字节发送时,通过TxD先发起始位;
步骤1082,然后发数据位和奇偶数效验位;
步骤1083,最后再发停止位。
上述发送过程由发送状态机控制,每次中断只发送l个位,经过若干个 定时中断完成1个字节帧的发送。当数据发送状态结束时,检测发送FIFO 队列是否为空,若非空则取出发送数据,然后启动发送状态;当处于发送状 态时,则按照状态机的状态进行起始位、数据位和停止位的发送。
如图5所示为数据接收方法的流程图,与图3中步骤106相对应。
步骤1061,当不在字节帧接收过程时,每次定时中断以3倍的波特率监 视RxD的状态,当其连续3次采样电平依次为高、低、低时,表示检测到 起始位,则开始启动一次字节帧接收;
步骤1062,数据接收过程中,依次存储RxD的逻辑位形成字节数据,
当数据接收完毕且停止位为1时,表示接收到了有效数据;
步骤1063,将接收结果存储到接收FIFO队列中去。
上述字节帧接收过程由接收状态机控制,每次中断只接收l个位,经过 若干个定时中断完成1个字节帧的接收。数据接收过程中,依次存储RxD 的逻辑位形成字节数据,当数据接收完毕且停止位为1时,表示接收到了有 效数据,就将结果存储到接收FIFO队列中去。
为了提高串口的性能,在发送和接收上都实现了 FIFO功能,提高通信 的实时性。FIFO的长度可以进行自由定义,适应用户的不同需要。波特率 的计算按照计算公式进行,在设置最高波特率时一定要考虑模拟UART程序 代码的执行时间,该定时时间必须大于模拟UART的程序的规定时间。CPU的执行速度越快,则可以实现更高的串口通讯速度。
综上所述,本发明提出的模拟UART设计方法,其独特之处在于仅仅 使用任意2个普通I/O引脚和1个定时中断实现了全双工串口 ,对硬件的占 用较少,具有多串口扩展能力;在串口接收的起始位判别时采用了连续3次 采样的判别方法,该方法实现简单、准确率高;用定时中断实现了串口数据 的发送和接收,并实现了FIFO队列,使串口发送和接收工作效率高。
虽然以上描述了本发明的具体实施方式
,但是本领域的技术人员应当理 解,这些仅是举例说明,在不背离本发明的原理和实质的前提下,可以对这 些实施方式做出多种变更或修改。因此,本发明的保护范围由所附权利要求 书限定。
权利要求
1、一种基于无线通信模块的软件模拟通用异步收发器方法中的中断处理方法,其特征在于,其包括以下步骤1)接收起始计数为零;2)如果三次采样到接收I/O引脚的电平为高、低、低,接收I/O口电平计数设置为8位,时间计数清零;3)分别给接收和发送I/O口电平检测位清零,之后分成两个分支;4)如果接收口电平采样计数超过3并且接收起始计数不为零,则进入数据接收子程序;5)如果发送口电平采样计数超过3,则进入发送数据子程序。
2、 根据权利要求1所述的基于无线通信模块的软件模拟通用异步收发 器方法中的中断处理方法,其特征在于,中断定时间隔为波特率定时间隔的 1/3,以3倍的波特率对接收数据进行采样。
3、 一种基于无线通信模块的软件模拟通用异步收发器方法中的数据发 送方法,其特征在于,其包括以下步骤1) 当启动字节发送时,通过发送数据先发起始位;2) 然后发数据位和奇偶数效验位;3) 最后发停止位。
4、 根据权利要求3所述的基于无线通信模块的软件模拟通用异步收发 器方法中的数据发送方法,其特征在于,该发送过程由发送状态机控制,每 次中断只发送1个位,经过若干个定时中断完成1个字节帧的发送。
5、 一种基于无线通信模块的软件模拟通用异步收发器方法中的数据接 收方法,其特征在于,其包括以下步骤1)当不在字节帧接收过程时,每次定时中断以3倍的波特率监视发送 数据的状态,当其连续3次采样电平依次为高、低、低时,表示检测到起始位,则开始启动一次字节帧接收;2) 数据接收过程中,依次存储接收数据的逻辑位形成字节数据,当数 据接收完毕且停止位为1时,表示接收到了有效数据;3) 将接收结果存储到接收先进先出队列中去。
6、根据权利要求5所述的基于无线通信模块的软件模拟通用异步收发 器方法中的数据接收方法,其特征在于,该字节帧接收过程由接收状态机控 制,每次中断只接收l个位,经过若干个定时中断完成l个字节帧的接收。
全文摘要
本发明公开了一种基于无线通信模块的软件模拟UART方法,包括中断处理方法,以及位于中断处理方法流程末端的数据发送方法和数据接收方法,三种方法共同组成了本发明的软件模拟UART的方法。本发明仅使用2个普通I/O和1个定时器,由于不需要INT的限制,可以扩展出多个串口,且带FIFO的功能,扩展模拟UART的收发数据在中断服务中完成。本发明对于基于无线通信模块的进行二次开发的通信终端企业来说,能够削减制造成本,节约人力资源,简化生产工艺;解决了基于无线通信模块二次开发过程中需要额外RS232芯片的问题,提供一种简便、安全、廉价、稳定的方法,无需硬件额外支出,而且还加强对I/O口的复用,提高多UART口处理能力。
文档编号H04L12/02GK101471787SQ20071017296
公开日2009年7月1日 申请日期2007年12月25日 优先权日2007年12月25日
发明者攀 杨 申请人:希姆通信息技术(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1