一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种单USB转多路RS232的装置及方法与流程

2023-10-25 06:30:49 来源:中国专利 TAG:

一种单usb转多路rs232的装置及方法
技术领域
1.本发明涉及计算机通讯技术、嵌入式系统等技术领域。特别是涉及一种单usb转多路rs232的装置及方法,适用于对rs232、rs485或uart异步串行通讯信息进行采集和记录,也适用于对其他接口标准的异步串行通讯信息进行采集和记录。


背景技术:

2.异步串行通信无需数据时钟、帧同步时钟等时钟信号,数据的发送和接收是自同步的,完全依靠收发双方约定的传输波特率和数据线自身的电平变化来正确地收发数据比特流,同时它联机简单,采用rs232电平或差分电平,传输的距离要比同步通信的长。正因为有上述的优点,异步串行通讯在嵌入式系统中得到广泛的应用,嵌入式系统与pc机通信、与带异步串口的设备进行通信、系统之间组网、设备之间组网,异步串行通讯是一种重要的通信方法。在许多嵌入式设备或系统中可能有多个采用异步串行通讯的信道,而这些信道的通信时序方面往往还存在着一些关联关系。在上述的嵌入式设备或系统进行开发和调试过程中,需要对这些多信道的异步串行通讯信息进行长时间的采集、监视、记录、分析。因此能记录多路异步串行通讯信息的方法和装置就显得十分必要。


技术实现要素:

3.本发明的目的在于提供一种单usb转多路rs232的装置及方法。该装置主要由单片微处理器、多个与外部异步串行通讯线路联接的接口电路、usb总线接口电路组成。通过rs232接口电路、rs485接口电路、uart接口电路与外部异步串行通讯线路联接,通过usb-host主机接口与usb设备(u盘)连接;通过装置中的单片微处理器uart的输入或模拟uart的输入实现对多路异步串行通讯信息的采集,并存入各自的缓存区,当接收信息的长度大于等于规定的长度,将该通道接收的信息存入u盘对应的文件,从而实现对多路异步串行通讯信息的长时间记录。该装置和方法不影响异步串行通讯的可靠性、稳定性,但实现了对多路异步串行通讯信息的实时采集和记录。
4.为达到上述目的,本发明采用下述技术方案:
5.一种单usb转多路rs232的装置,包括一个单片微处理器、多个与外部异步串行通讯线路联接的接口电路、以及usb总线接口电路,其特征在于:所述单片微处理器通过总线连接多个与外部异步串行通讯线路连接的接口电路、一个usb总线接口电路、一个时钟电路、一个扩充ram、一个参考数设置电路,
6.所述单片微处理器从各通道接收异步串行通讯的信息,存入各自的缓存区,当接收信息的长度大于等于规定的长度,将该通道接收的信息存入u盘对应的文件。
7.与外部异步串行通讯线路联接的rs232接口电路、rs485接口电路和uart接口电路结构上做成模块式的,与单片微处理器的连接方式相同,因此根据外部异步串行通讯的接口方式可进行置换。
8.单片微处理器通过其自带的uart的输入(rxd)连接rs232接口电路、rs485接口电
路和uart接口电路,采集外部异步串行通讯的信息。为了扩充采集外部异步串行通讯信息的信道,单片微处理器也可通过捕获比较i/o口模拟rxd的输入。
9.实时钟电路用来产生时标信号,当时标信号时间到,单片微处理器采集实时钟信息,并插入采集到的外部异步串行通讯的信息中,作为不同通道之间的同步点。
10.大容量ram用来存放单片微处理器采集到的外部异步串行通讯信息,每个信道设置一个环型存储区,容量为1kbytes。当该存储区存储的数据大于等于512bytes时,单片微处理器就将这些数据写入u盘相对应的檔中,同时释放该存储空间。
11.参数设置电路用来设置每个信道异步串行通讯的波特率,设置实时钟电路产生时标信号的间隔时间。
12.单片微处理器与其外围电路通过单片微处理器总线进行连接。
13.一种单usb转多路rs232的方法,采用上述装置实现,其特征在于操作步骤如下:
14.a)单片微处理器执行初始化;
15.b)单片微处理器检测是否有usb设备(u盘)连接。已连接,转c)执行;否则在b)等待;
16.c)单片微处理器检查u盘上是否有正确的可记录信息的文件名。无,创建正确的可记录信息的文件名,转d)执行;有,转d)执行;
17.d)单片微处理器从各通道接收异步串行通讯的信息,存入各自的缓存区,修改各通道接收信息的长度;
18.e)单片微处理器检查各通道接收信息的长度是否大于等于512bytes。是,打开对应的u盘上的文件名,将该通道接收的信息存入u盘,关闭文件,修改该通道接收信息的长度,转f)执行;否,转f)执行;
19.f)单片微处理器检测是否有usb设备(u盘)断开。是,停止各通道接收异步串行通讯的信息,转b)执行;否则转d)执行;
20.上述一种单usb转多路rs232的方法,其步骤a)单片微处理器执行初始化,包含以下内容:
21.单片微处理器根据面板开关的设定,设定各通道接收的波特率;
22.单片微处理器启动片内(或片外)的实时钟,根据面板开关的设定,确定时标信号的间隔时间,初始化实时钟电路参数;
23.单片微处理器初始化usb总线接口电路使其工作在usb-host模式。
24.上述一种单usb转多路rs232的方法,其步骤c)单片微处理器检查u盘上是否有正确的可记录信息的文件名,包含以下内容:
25.每个通道接收的异步串行通讯的信息,都被保存在u盘各自独立的文件中。文件的命名方式为:ch加通道号,如1号通道,其对应的文件名为:ch1。文件的格式为二进制文件格式,后缀.bin。
26.单片微处理器检查u盘上是否有上述正确的可记录信息的文件名。若无,在u盘中创建上述的正确的可记录信息的文件名。
27.上述一种单usb转多路rs232的方法,其中步骤d)单片微处理器从各通道接收异步串行通讯的信息,存入各自的缓存区,修改各通道接收信息的长度,包含以下内容:
28.每个通道接收的异步串行通讯的信息,在未存入u盘文件前,都被放在缓存区内,
对每个通道设置一个1k(1024)bytes的环型缓存区;各环型缓存区均有一个头指针和一个尾指针,头指针指向信息要存入的地址,尾指针指向信息要取出的地址;各通道接收信息的长度为0到1024。每接收到一个byte的信息,即存入内存,同时头指针加1。
29.上述一种单usb转多路rs232的方法,其中步骤d)还包括以下内容:
30.判断实时钟的时标信号时间到否,若未到,跳过以下步骤;若时间已到,执行下列步骤:
31.1)实时钟的时标信号时间到,单片微处理器读取实时钟时间;
32.2)将每个环型缓存区的头指针加十一,空出十一个字节;
33.3)单片微处理器将实时钟时间存入每个环型缓存区在步骤2)空出的十一个字节。
34.上述的存入每个环型缓存区十一个字节的实时钟时间格式为(见说明书附图表1):
[0035]“%”年(一字节)“/”月(一字节)“/”日(一字节)“/”时(一字节)“/”分(一字节)“%”。
[0036]
本发明解决了多路异步串行通讯信息的采集与记录。具有如下显而易见的突出实质性特点和显著优点:本发明通过采用rs232、rs485和uart接口电路实现与外部异步串行通讯线路的接口;采用具有usb-host主机接口功能的usb总线接口电路实现了与存储媒介u盘的接口;采用单片微处理器自带的uart输入(rxd)和捕获比较i/o口模拟rxd的输入扩充了对外部异步串行通讯信息采集的信道数量;采用实时钟方法在存储的信息中插入时标同步信号,使不同信道之间的信息比较有了同步点。本发明适用于长时间的对多路异步串行通讯信息进行采集与记录,不需要人员在现场的操作与管理;存储的数据由于有时标信息便于今后的分析与比较。本发明适用于rs232、rs485、uart方式或其它方式的多路异步串行通讯信息的采集与记录。
附图说明
[0037]
图1是一种单usb转多路rs232的装置的结构框图。
[0038]
图2是一种单usb转多路rs232的方法的流程图。
[0039]
图3是一个具体的单usb转多路rs232的装置的结构框图。
[0040]
图4是各通道记录、缓存、储存u盘、添加时标的时序示意图。具体实施方式。
具体实施方式
[0041]
为了使本发明的目的和优点更加清楚明白,下面结合实施例对本发明作进一步描述;应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
[0042]
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。
[0043]
需要说明的是,在本发明的描述中,术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0044]
此外,还需要说明的是,在本发明的描述中,除非另有明确的规定和限定,术语“安
装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可根据具体情况理解上述术语在本发明中的具体含义。
[0045]
本发明的优选实施例结合附图详述如下:
[0046]
实施例一:参见图1,本单usb转多路rs232的装置,包括一个单片微处理器,多个与外部异步串行通讯线路联接的接口电路、一个usb总线接口电路、一个实时钟电路、一个扩充ram、一个参数设置电路,单片微处理器通过总线连接上述外围电路。
[0047]
实施例二:参见图3,本实施例与实施例一基本相同,特别之处如下:本实例中提供的一种记录多路异步串行通讯信息的装置采用下列器件组成:
[0048]
1)单片微处理器p89c668。
[0049]
2)与外部异步串行通讯的接口:2个信道采用rs485接口,2个信道采用rs232接口,2个信道采用uart接口。
[0050]
3)采用ch375芯片作为usb总线的host主机,单片微处理器可以通过ch375读写u盘中的文件和数据。单片微处理器通过并行总线与ch375接口。
[0051]
4)芯片具有一个全双工的uart,5个捕获比较i/o口,通过软件可以模拟成uart的输入,因此该装置最多可以采集记录六信道的外部异步串行通讯信息。
[0052]
5)单片微处理器p89c668带有7936个bytes的内部ram,使用其中的6144bytes存放单片微处理器采集到的外部异步串行通讯信息。
[0053]
6)实时钟采用pcf8563,单片微处理器通过i2c总线与pcf8563接口。
[0054]
该装置采集记录的六路异步串行通讯线路的情况如下:
[0055]
第一通道:rs485通信方式,波特率2400,每秒大约16-20bytes数据流量;
[0056]
第二通道:rs485通信方式,波特率2400,每15秒大约60bytes数据流量;
[0057]
第三通道:rs232通信方式,波特率9600,每分钟大约160bytes数据流量;
[0058]
第四通道:rs232通信方式,波特率9600,每分钟大约120bytes数据流量;
[0059]
第五通道:uart电平,波特率19200,每分钟大约250bytes数据流量;
[0060]
第六通道:uart电平,波特率19200,每分钟大约80bytes数据流量;
[0061]
每个信道占用单片微处理器内部ram的6144bytes存放采集到的外部异步串行通讯信息。具体分布如下:
[0062]
第一通道:使用内部ram地址0x0000-0x03ff;
[0063]
第二通道:使用内部ram地址0x0400-0x07ff;
[0064]
第三通道:使用内部ram地址0x0800-0x0bff;
[0065]
第四通道:使用内部ram地址0x0c00-0x0fff;
[0066]
第五通道:使用内部ram地址0x1000-0x13ff;
[0067]
第六通道:使用内部ram地址0x1400-0x17ff;
[0068]
实时钟的时标信号时间间隔设置为5分钟。
[0069]
记录异步串行通讯信息的u盘容量为2g。
[0070]
实施例三:参见图2,本单usb转多路rs232的方法,采用上述装置进行记录通讯信息,其操作步骤如下:
[0071]
1)单片微处理器执行初始化。
[0072]
设置单片微处理器芯片自带的uart(连接第一通道)波特率为2400,模拟uart(连接第二信道至第六信道)的捕获比较i/o定时器设定为26us;初始化实时钟参数,并启动实时钟;初始化ch375,使usb总线接口电路其工作在usb-host模式。
[0073]
2)单片微处理器检测是否有usb设备(u盘)连接。若已连接,则转到步骤3)执行,否则在步骤2)等待。
[0074]
3)单片微处理器检查u盘上是否有正确的可记录信息的文件名,若无,则创建正确的可记录信息的文件名,分别为:ch1.bin,ch2.bin,ch3.bin,ch4.bin,ch5.bin,ch6.bin,然后转步骤4)执行。
[0075]
若已有,转步骤4)执行。
[0076]
4)单片微处理器从各信道接收异步串行通讯的信息,存入各自的缓存区。
[0077]
第一通道的数据流量每秒大约20bytes,接收512bytes大约需要26秒;
[0078]
第二通道的数据流量每15秒大约60bytes,接收512bytes大约需要128秒;
[0079]
第三通道的数据流量每分钟大约160bytes,接收512bytes大约需要192秒;
[0080]
第四通道的数据流量每分钟大约120bytes,接收512bytes大约需要256秒;
[0081]
第五通道的数据流量每分钟大约250bytes,接收512bytes大约需要123秒;
[0082]
第六通道的数据流量每分钟大约80bytes,接收512bytes大约需要384秒;
[0083]
每隔5分钟,单片微处理器读取实时钟时间,在每个通道的缓存区插入实时钟时间信息。
[0084]
实时钟时间信息占十一个字节,其格式为:“%”年(一字节)“/”月(一字节)“/”日(一字节)“/”时(一字节)“/”分(一字节)“%”。
[0085]
5)单片微处理器检查各信道接收信息的长度是否大于等于512bytes。若条件满足,打开该通道所对应的u盘上的文件,将该信道接收的信息存入u盘,然后关闭该文件,同时将该通道缓冲区的尾指针加512,释放512bytes存储空间,然后转步骤6)执行;
[0086]
若条件不满足,转步骤6)执行。各通道记录、缓存、储存u盘、添加时标的时序示意图如图4所示。
[0087]
6)单片微处理器检测是否有usb设备(u盘)断开。是,停止各通道接收异步串行通讯的信息,转步骤2)执行;否则转步骤4)执行。
[0088]
在该实例中记录异步串行通讯信息的u盘容量为2g,对上述数据流量的6个信道异步串行通讯信息进行记录,30天(=2592000秒)后,u盘中各文件的容量可以以下式来计算:
[0089]
文件容量=每秒数据流量(bytes/每秒)
×
2592000
[0090]
记录第一通道信息,文件名:ch1.bin,文件容量=20
×
2592000=51mb记录第二通道信息,文件名:ch2.bin,文件容量=60/15
×
2592000=1mb记录第三通道信息,文件名:ch3.bin,文件容量=160/60
×
2592000=7mb记录第四通道信息,文件名:ch4.bi n,文件容量=210/60
×
2592000=9mb记录第五通道信息,文件名:ch5.bi n,文件容量=250/60
×
2592000=11mb记录第六通道信息,文件名:ch6.bi n,文件容量=80/60
×
2592000=3.5mb上述的实时钟时间格式如表1所示。
[0091]
表1
[0092][0093]
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
[0094]
以上所述仅为本发明的优选实施例,并不用于限制本发明;对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表