电脑与串口外接模块自动匹配通信的方法

文档序号:6392757阅读:868来源:国知局
专利名称:电脑与串口外接模块自动匹配通信的方法
技术领域
本发明涉及通信技术,特别是涉及电脑与串口外接模块的RS232通信技术。
背景技术
电脑与串口外接模块的RS232通信技术,常用于家用电子产品、工业控制、安全识别等领域。由于电脑有多个串口,外接模块可以被连接在任意一个串口上,传统的RS232通信技术中,没有提供自动匹配通信方案,需要用户辨别电脑串口的端口号,手工配置端口号、波特率,对用户要求较高,用户使用不方便。

发明内容
本发明要解决的技术问题在于避免上述现有技术的不足之处而提出一种电脑与串口外接模块自动匹配通信的方法,无需用户辨别串口的端口号,无需手工配置端口号和波特率,使用方便。
本发明解决所述技术问题可以通过采用以下技术方案来实现提出一种电脑与串口外接模块自动匹配通信的方法,包括有电脑、电脑串口通信软件、串口外接模块,在采用预先约定的波特率通信时,包括以下步骤①串口外接模块初始化I/O口,按约定的波特率侦听电脑串口发送的数据②电脑串口通信软件按约定的波特率依次初始化所有电脑串口,启动接收线程,向每个串口发送握手包;③串口外接模块接收到握手包,回复握手响应包;④电脑串口通信软件接收到某个串口返回的握手响应包后,判断此串口上有外接模块,记录此串口的端口号,使用此串口进行通信。
上述方案的特征在于电脑串口通信软件通过检测串口接收消患包的方式自动识别串口外接模块连接电脑的RS232串口的端口号。也可以由串口外接模块主动发送握手包,电脑串口通信软件通过检测某个串口接收到消息包来判断串口外接模块连接的端口号。之所以采用由电脑串口通信软件主动发送握手包、检测握手响应包的方案,是考虑到可以与串口外接模块通过检测波形自动计算电脑RS232串口的波特率的技术方案统一起来。
上述方案适用于电脑和串口外接模块采用预先约定的波特率通信的情况。用户可把串口外接模块连接到电脑串口的任一端口上,无需用户手工配置端口号,系统可自动识别端口号进行通信。
在电脑与串口外接模块没有约定波特率的情况下,提出一种串口外接模块自动检测电脑串口波特率的方法,包括有电脑、电脑串口通信软件、串口外接模块,包括以下步骤①串口外接模块初始化I/O口,循环侦听电脑串口是否发送数据;②电脑串口通信软件按缺省的波特率依次初始化所有电脑串口,启动接收线程,向每个串口发送握手包;③串口外接模块在检测到电脑串口发送数据时,用计数器测量低电平保持时间,计算每位时间宽度,确定电脑发送数据的波特率;④串口外接模块根据步骤③确定的波特率向电脑回复握手响应包;⑤电脑串口通信软件接收到某个串口返回的握手响应包后,判断此串口上有外接模块,记录此串口的端口号,使用此串口进行通信;同现有技术相比较,本发明的技术效果在于自动识别串口外接模块所连接的电脑串口的端口号,串口外接模块自动检测匹配波特率,无需用户辨别电脑端口号,无需手工配置,使用方便。本发明的技术方案实现成本低,接口清晰,可以方便地嵌入到家用电子产品、工业控制、安全识别等方案中。


图1是本发明的总体架构示意图;图2是串口外接模块(2)的电路原理图;
图3是电脑(1)与串口外接模块(2)以约定波特率通信的软件流程图;图4是电脑(1)与串口外接模块(2)不约定波特率,自动匹配波特率的软件流程图;图4-1是电脑(1)与串口外接模块(2)软件主流程图,图4-2是串口外接模块(2)根据握手包检测波特率的电平波形示意图,图4-3是串口外接模块(2)检测波特率软件流程图;具体实施方式
以下结合附图所示之最佳实施例作进一步详述。
如图1所示,电脑(1)有四个串口,包括COM1(13)、COM2(14)、COM3(15)、COM4(16);串口通信软件(12)负责管理所有串口的初始化、数据发送/接收,并判断串口外接模块(2)与哪个串口相连;串口外接模块(2)连接在电脑(1)的任意一个串口。串口通信软件对应用软件(11)提供了统一的通信接口供其调用,并屏蔽了端口号、波特率等串口通信细节;优选的,串口通信软件(12)作为一个动态链接库供应用软件(11)调用,也可以封装成一个类嵌入到应用软件(11)中。
通过专用的多串口卡设备,电脑(1)可以提供四个以上的串口,串口通信软件(12)对所有串口采用同样的管理流程。
图2是串口外接模块(2)的电路原理图。串口外接模块(2)连接到电脑(1)的任意一个串口,通过窃电电路从电脑(1)串口获取5V电源;电路以8位单片机EM78P156为中心控制模块,以软件方式实现串口通信,单片机I/O管脚P61负责向电脑(1)串口发送数据,单片机I/O管脚P62负责接收来自电脑(1)的串行数据。
所述串口外接模块电路是低成本的优选方案,市场上也有其它采用专用芯片实现RS232通信电路的方案,这里不再详述。
图3是电脑(1)与串口外接模块(2)以约定波特率通信的软件流程图,其流程详述如下
串口外接模块(2)初始化I/O口,按约定的波特率侦听电脑串口发送的数据;电脑串口通信软件(12)按约定的波特率依次初始化串口COM1(13)、COM2(14)、COM3(15)、COM4(16),启动接收线程,向每个串口发送握手包;串口外接模块(2)接收到握手包,按约定的波特率回复握手响应包;电脑串口通信软件(12)接收到某个串口返回的握手响应包后,判断此串口上连接有串口外接模块(2),记录此串口的端口号,使用此串口进行通信;其它串口在指定时间内没有收到握手回复包,电脑串口通信软件(12)判断其它串口上没有串口外接模块,关闭其它端口。
图4是电脑(1)与串口外接模块(2)不约定波特率,自动匹配波特率的软件流程图;图4-1是电脑(1)与串口外接模块(2)软件主流程图,图4-2是串口外接模块(2)根据握手包检测波特率的电平波形示意图,图4-3是串口外接模块(2)检测波特率软件流程图;如图4-1所示,电脑(1)与串口外接模块(2)软件主流程详述如下串口外接模块(2)初始化I/O口,侦听电脑串口是否发送数据,即循环检测单片机输入管脚是否为低电平(RS232发送数据的起始位是低电平);电脑串口通信软件(12)按电脑缺省的波特率依次初始化串口COM1(13)、COM2(14)、COM3(15)、COM4(16),启动接收线程,向每个串口发送握手包;串口外接模块(2)在单片机输入管脚检测到电脑串口发送数据到达时,根据握手包的波形计算并匹配波特率;并按照此波特率向电脑(1)回复握手响应包;电脑串口通信软件(12)接收到某个串口返回的握手响应包后,则判断此串口上连接有串口外接模块(2),记录此串口的端口号,使用此串口进行通信;其它串口在指定时间内没有收到握手回复包,电脑串口通信软件(12)判断其它串口上没有串口外接模块,关闭其它端口。
图4-2所示为单片机输入脚接收到的波形。电脑(1)向串口外接模块(2)发送的握手包为一个字节,为0x00;数据格式为1位起始位、8位数据位、没有奇偶校验位、2位停止位、1位空闲位。在单片机输入脚,握手包的1位起始位和8位数据位组成一个持续的低电平;串口接收模块(2)在起始位开始的下降沿开始计时,到第8位数据位末尾的上升沿结束计时,低电平时间宽度T为9位时间宽度,每位时间宽度为T/9,计算波特率为9/T。
在串口外接模块(2)实际电路中,由于元器件参数的影响,下降沿和上升沿有一定的时间,波特率9/T不是精确的波特率,但比较接近实际波特率,串口接收模块(2)根据元器件参数进行调整补偿,适配为标准的波特率,如300bps、600bps、1200bps、2400bps、4800bps、9600bps、19200bps、38400bps等。
采用0x00作为握手包的原因,主要是考虑元器件参数对下降沿和上升沿的影响。0x00可以构成9位低电平的时间宽度,每位时间宽度为平均值T/9,可以把元器件参数的影响降到最小。按同样的波特率计算方法,也可以采用其它字节值作为握手包,只需要根据字节值形成的低电平时间宽度计算并调整补偿波特率。
图4-3所示,串口外接模块(2)检测握手包低电平时间宽度的软件流程如下所述串口外接模块(2)软件初始化I/O口,把计数器清零;循环查询单片机输入管脚是否变为低电平,即是否收到电脑(1)串口发送数据的起始位;如果检测到单片机输入管脚变为低电平,则延时10us,计数器加1,并查询单片机输入管脚是否变为高电平;如果没有变为高电平,则继续延时,累加计数器;在单片机输入管脚变为高电平后,根据计数器值和循环中的指令时间计算时间宽度T=计数器值×(10us+循环中的其它指令时间),计算波特率为9/T。由于下降沿和上升沿有一定的时间,波特率9/T不是精确的波特率,串口外接模块(2)软件根据元器件参数调整补偿为标准波特率,之后采用确定的波特率与电脑(1)进行通信。
权利要求
1.一种电脑(1)与串口外接模块(2)自动匹配通信的方法,包括有电脑(1)、串口外接模块(2),其特征在于电脑串口通信软件(12)通过检测串口接收消息包的方式自动识别串口外接模块(2)连接电脑的(1)RS232串口的端口号。
2.如权利要求1所述的电脑(1)与串口外接模块(2)自动匹配通信的方法,其特征在于串口外接模块(2)通过检测波形自动计算匹配电脑(1)RS232串口的波特率。
全文摘要
一种电脑与串口外接模块自动匹配通信的方法,其特征是电脑串口通信软件通过检测串口接收消息包的方式自动识别串口外接模块连接电脑的串口的端口号,串口外接模块通过检测波形自动计算匹配电脑RS232串口的波特率。本发明使得电脑与串口外接模块通信使用更加简便。
文档编号G06F13/42GK1570899SQ20041002703
公开日2005年1月26日 申请日期2004年4月25日 优先权日2004年4月25日
发明者赵红刚 申请人:赵红刚
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1