CN102214155A - 串口服务器 - Google Patents
串口服务器 Download PDFInfo
- Publication number
- CN102214155A CN102214155A CN2011101906185A CN201110190618A CN102214155A CN 102214155 A CN102214155 A CN 102214155A CN 2011101906185 A CN2011101906185 A CN 2011101906185A CN 201110190618 A CN201110190618 A CN 201110190618A CN 102214155 A CN102214155 A CN 102214155A
- Authority
- CN
- China
- Prior art keywords
- serial
- serial ports
- serial port
- data
- ports
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种串口服务器,包括一片STC12C5628AD单片机、一片SP3739串口扩展芯片和一片印制电路板,STC12C5628AD单片机与SP3739串口扩展芯片通过印制电路板相连,所述SP3739串口扩展芯片设有7个串口即第一串口、第二串口、第三串口、第四串口、第五串口、第六串口、第七串口,第一串口与上位机连接,第二串口、第三串口、第四串口、第五串口、第六串口、第七串口可以依次与下位机相连。该服务器对上位机的单串口进行扩展,根据应用系统设计的需要把一个串口扩展为多个同类型的串口或一个串口扩展为多个不同类型(RS232、RS422、RS485)的串口,以便与不同接口的计算机或设备进行串行通信,从而解决多串口控制问题。
Description
技术领域
本发明属于串口通信装置,用于在由计算机组成的分布式数据采集系统中,解决上位机与多台串口设备通信问题,即实现对上位机的单串口进行扩展,并根据应用系统设计的需要把一个串口扩展为多个同类型的串口或一个串口扩展为多个不同类型(RS232、RS422、RS485)的串口,以便与不同接口的计算机或设备进行串行通信。
背景技术
通常计算机单串口扩展为多串口采用的是增加转换器件。扩展的原理不尽相同:直接对串口进行扩展;在PCI插槽上插上扩展卡;利用USB转串口;利用扩展芯片。
1)RS232一转多扩展器
RS232一转多扩展器用于将一个RS232串行口分时扩展为多个准RS232串行口。扩展器上已经设定好了多个串口的硬件地址,所以多机通信时无需修改下位机的软件。准RS232串行口只有TXD(发送)、RXD(接收)、GND(信号地)三个信号。如波仕卡公司的RS232一变八扩展器8232A,使用之前通过软件设置来分时选通八个准RS232接口。
RS232一变多扩展器适用于一台PC机与多台PC机、单片机或仪表之间的通信。
2)多串口RS232扩展卡
该方法通过在计算机的PCI扩展槽上插上多串口卡来扩展串口。如HighTek公司的HK-1116。该方法的特点是:只占用上位机一个PCI扩展槽,就可以支持对多达十六个RS-232串口的控制,所有的设置都由软件来完成,无开关无跳线,更无需调整I/O地址和IRQ(Interrupt Request,即“中断请求”),而且每个口收发各有128字节FIFO。
3)USB转串口
该方法通过协议转换把当前流行的USB接口转换为多路RS232接口。通过利用USB接口具有的即插即用和热拔插的方便性,使USB接口可非常容易地和其他RS232设备通信,并能提供高达12Mbps的传输速率。安装驱动程序以后,计算机可自动虚拟出多个COM口(具体COM口的端口号由虚拟驱动程序自动分配)。这几个虚拟出来的COM口和计算机原有的COM口对于应用软件来说是一样的,只要应用软件能够映射(或选择)到这几个虚拟COM口,就可以实现对RS-232端口的通信。
4)串口扩展芯片
该方法通过专门的芯片可将任意8-32位处理器及各种DSP等原有的通用异步收发器扩展为多个完全独立的子串口。且所有子串口可同时或非同时收、发数据且不会丢失数据;所有子串口波特率可独立设置;所有子串口数据帧长度可独立设置。如成都视普科技公司的一转七串口扩展芯片SP3739。
常用串口扩展方案多采用的是增加转换器件。扩展的原理不尽相同:软件模拟法;在PCI插槽上插上扩展卡;利用USB转串口;利用扩展芯片。其中,软件模拟串口主要通过单片机的I/O口模拟异步串行接口时序来实现。以这种方式扩展串口对单片机性能的要求就提高了,这也限制了其应用,一般仅用于1~2个串口的软件模拟。而PCI总线扩展方法通过在计算机的PCI扩展槽上插上多串口卡来扩展串口。但由于采用了分时控制,需手动选通串口,当多个串口同时给上位机发送数据时可能会发生数据丢失。USB扩串口是一种比较理想的串口扩展方案,但是在需扩展多个串口时,一般采用USB-HUB扩展USB接口,再扩展串口,但这样会相应增加成本。
发明内容
本发明的目的在于提供一种结构更加紧凑、易于扩展的串口服务器。
实现本发明目的的技术解决方案为:一种串口服务器,包括一片STC12C5628AD单片机、一片SP3739串口扩展芯片和一片印制电路板,STC12C5628AD单片机与SP3739串口扩展芯片通过印制电路板相连,所述SP3739串口扩展芯片设有7个串口即第一串口、第二串口、第三串口、第四串口、第五串口、第六串口、第七串口,第一串口与上位机连接,第二串口、第三串口、第四串口、第五串口、第六串口、第七串口依次与下位机相连。
本发明与现有技术相比,其显著优点:(1)单片机可以对采集到的数据进行处理,缓解了上位机的编程压力;(2)7个子串口可同时收、发数据,每个子串口独立收、发FIFO;(3)7个子串口共享上位机原有串口中断实现数据收、发,而不占用上位机的外部中断和并行数据总线。
附图说明
图1是本发明的系统总体结构图。
图2是本发明实施中SP3739与STC12C5628AD单片机简化电路。
图3是本发明实施的软件整体结构框图。
图4是本发明实施的主程序流程图。
图5是本发明实施的入队列流程图。
图6是本发明实施的出队列流程图。
图7是本发明实施的串口中断处理流程图。
具体实施方式
下面结合附图对本发明作进一步详细描述。
本发明串口服务器,包括一片STC12C5628AD单片机、一片SP3739串口扩展芯片和一片印制电路板,STC12C5628AD单片机与SP3739串口扩展芯片通过印制电路板相连,所述SP3739串口扩展芯片设有7个串口即第一串口0、第二串口1、第三串口2、第四串口3、第五串口4、第六串口5、第七串口6,第一串口0与上位机连接,第二串口1、第三串口2、第四串口3、第五串口4、第六串口5、第七串口6依次与下位机相连。
本发明串口服务器,所述印制电路板上蚀刻有6条I/O线和2条串口线用以连接STC12C5628AD单片机和SP3739串口扩展芯片。
1 硬件设计
1.1 系统总体结构
在本发明中,需要将多台仪器的数据通过RS232接口传到上位机上,同时还需要对数据进行分析处理。RS232一转多扩展器硬件简单,使用起来方便,但由于采用了分时控制,需手动选通串口,当多个串口同时给上位机发送数据时可能会发生数据丢失;多串口RS232扩展卡从根本上解决了上位机的串口短缺问题,但该方法成本较高;USB一转多串口在长期工作时稳定性得不到保证;在本发明中采用第四种方案,即采用专门的串口扩展芯片。
采用专门的串口扩展芯片需增加一个单片机来扩展上位机的串口,同时单片机又可以对采集到得数据进行处理,缓解了上位机的编程压力。扩展的7个串口可独立设置为10位或11位帧长(即:1+8+1或1+8+1+1);7个子串口可同时收、发数据,每个子串口都有8Byte独立收、发FIFO;占用资源少,不占用上位机的外部中断和并行数据总线,7个子串口共享上位机原有串口中断实现数据收、发(上位机通过输入、输出地址识别子串口)。
由于串口扩展芯片(SP3739)主要是用来扩展各种单片机和DSP的串口的,不能直接用来扩展计算机的串口,因此中间需要通过一个单片机系统来转换。系统总体结构框架如图1所示。系统中通过两个插针来选择下载调试模式(插针把①连通)和运行模式(插针把②连通)。当处于下载调试模式时,单片机PC机直接与单片机通信,把程序下载在单片机中;当处于运行模式时,SP3739的母串口与单片机相连,子串口0与PC机相连,子串口1~6与其它设备相连,单片机采集设备1~6的数据(或接收PC机的指令)再转发给PC机(设备1~6)。
1.2 扩展器通讯协议
●通信机制
(1)串口扩展器采用隧道传输技术设计。
(2)扩展器接到上位机的数据包后,剥离出包头、原始数据包和包尾,解释出目的设备地址和原始数据包,把原始数据包转发给目的设备。
(3)扩展器接收到子设备的数据包后,加上包头包尾构造出一个新的数据包,再转发给上位机。
●信道单数
(1)波特率:9600
(2)字节通信格式:1bit起始位,8bit数据位,无校验位,1bit停止位
●数据包格式
包头(目的设备编号+原始数据包长度)+原始数据包+包尾(校验字节(1Byte)
●子设备地址编号
0x80~0XFF,每个设备一个编号。
1.3 系统工作过程
●单片机发送数据流程
(1)单片机先发送待发送数据的地址信息(子串口地址)到SP3739的输入地址(ADRI0~ADRI2),即选中待发送数据对应的子串口。
(2)通过串口向SP3739发送数据信息(SP3739会根据第一步的地址信息将数据信息由相应的子串口发送出去)。
(3)由于母串口的速度比子串口要快,单片机可发送“NOP”指令,或调用必要的延时程序,来匹配母串口和各子串口不发生数据溢出。
●单片机接收数据流程
(1)单片机接收到数据后,必须尽快读取ADRO0~ADR02三位输出地址的状态,并由此来判断接收的数据来自哪个子串口。
(2)单片机读取输出地址的最长时间为:8/(K7*1000)(uS),其中K7为单片机串口的波特率。
(3)单片机采用中断方式来接受数据,并将串口中断设置为最高优先级。
●单片机与上位机的通信
(1)单片机接收到上位机(即串口0)的命令后,对其进行分析,然后选通相应的串口发送命令。
(2)各子串口接收到命令后即发送相应的数据给SP3739,再转给单片机,由单片机对数据进行打包发送给上位机。
1.4 SP3739与STC12C5628AD单片机的电路连接
SP3739与STC12C5628AD单片机之间的连接只需6条I/O线、2条串口线,电路连接非常简单。如图2为SP3739与STC12C5628AD单片机简化的电路。
2 系统软件设计
在软件开发的过程中,本发明采用了模块化程序设计的思想,即对系统进行功能划分,每个子程序完成单一的功能,通过在主程序中调用相应的子程序来完成整个系统功能。软件系统的结构模块如图3所示。
系统的软件主要包括主程序模块、队列子程序模块、串口处理子程序模块以及延时子程序模块。队列子程序模块的作用是为每个串口的输出和输出提供一个缓冲区,确保单片机与串口之间高效稳定的通信;串口处理子程序模块的作用是处理各个串口的中断,当有串口发生中断时即对相应的串口输入输出队列进行操作;延时子程序模块的作用是为整个软件提供一个标准的1ms延时。
2.1 主程序
主程序中主要执行一些变量的初始化、定时器的初始化以及调用串口和队列的初始化程序,如图4。定时器每隔5ms产生一次中断,查询是否有串口数据需要处理,若有,则置位相应的串口标志。主程序遍询各个串口的标志位,若有串口数据需要处理则读出相应的队列数据进行处理。
2.2 队列子程序
队列是一种特殊的线性表,它只允许在表的一端插入元素,而在另一端删除元素,实现了线性表先进先出(First In First Out,缩写为FIFO)的功能。在队列中进行插入的一端叫队尾(rear),进行删除的一端则称为对头(front)。
这里我们采用循环队列来存储单片机与各个串口之间通信的数据。循环队列是队列的一种顺序表示和实现方法。与顺序栈类似,在队列的顺序存储结构中,我们用一组地址连续的顺序存储单元依次存放从队头到队尾的元素,由于队头和队尾的位置都是动态变化的,因此需要附加两个指针front和rear分别指示队头元素和队尾元素在数组中的位置。初始化队列时,令front=rear=0;入队时,直接将新元素送入尾指针rear所指的单元,然后尾指针加1;出队时,直接取出队头指针front所指的元素,然后头指针加1。当rear=MAXSIZE时,认为队满,但此时不一定是真的队满,因为随着部分元素的出队,数组前面会出现一些空单元,由于只能在队尾入列,使得上述空单元无法使用,此现象为假溢出。一个较巧妙的方法是将顺序队列的数组看成一个环状的空间,即规定最后一个单元的后继为第一个单元,即循环队列。
这里可以通过构造14个队列来分别表示单片机与7子串口间发送数据和接受数据的缓冲区。队列程序设计的关键就是入队和出队的操作,其流程图如图5、6所示。
2.3 串口处理子程序
RS232串口扩展方案的主要功能是串口数据的转发,即将串口1~6(设备)的数据转发给串口0(计算机),或是将串口0的数据转发给串口1~6。因此串口处理子程序对外的接口主要是串口的发送功能,其具体实现过程为:由指定的串口号和数据长度对需要发送的数据进行入队列操作,然后置位串口中断标志位,由串口中断程序来对数据进行发送,因此串口程序设计的关键是串口中断程序的设计。在对串口进行操作前,我们可以通过对SP3739发送命令字来配置各个串口的属性,如波特率、数据位等。串口中断流程图如图7所示。
Claims (2)
1.一种串口服务器,其特征在于:包括一片STC12C5628AD单片机、一片SP3739串口扩展芯片和一片印制电路板,STC12C5628AD单片机与SP3739串口扩展芯片通过印制电路板相连,所述SP3739串口扩展芯片设有7个串口即第一串口[0]、第二串口[1]、第三串口[2]、第四串口[3]、第五串口[4]、第六串口[5]、第七串口[6],第一串口[0]与上位机连接,第二串口[1]、第三串口[2]、第四串口[3]、第五串口[4]、第六串口[5]、第七串口[6]依次与下位机相连。
2.根据权利要求1所述的串口服务器,其特征在于:所述印制电路板上蚀刻有6条I/O线和2条串口线用以连接STC12C5628AD单片机和SP3739串口扩展芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101906185A CN102214155A (zh) | 2011-07-08 | 2011-07-08 | 串口服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101906185A CN102214155A (zh) | 2011-07-08 | 2011-07-08 | 串口服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102214155A true CN102214155A (zh) | 2011-10-12 |
Family
ID=44745470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101906185A Pending CN102214155A (zh) | 2011-07-08 | 2011-07-08 | 串口服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102214155A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228499A (zh) * | 2017-12-28 | 2018-06-29 | 北京首都在线科技股份有限公司 | 一种带外管理设备 |
CN109939310A (zh) * | 2017-12-20 | 2019-06-28 | 北京谊安医疗系统股份有限公司 | 呼吸机的下位机向上位机发送数据的方法和呼吸机 |
CN111586077A (zh) * | 2020-05-28 | 2020-08-25 | 珠海格力智能装备有限公司 | 数据交互方法及装置、电子设备 |
CN115473759A (zh) * | 2022-08-30 | 2022-12-13 | 一恒生命科学仪器(昆山)有限公司 | 基于扩展rs485通讯接口实现多机通讯以及打印和存贮的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2704854Y (zh) * | 2004-05-18 | 2005-06-15 | 天津市华海计算机技术有限公司 | Gsm/cdma+gps危险品车辆监控中心站装置 |
-
2011
- 2011-07-08 CN CN2011101906185A patent/CN102214155A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2704854Y (zh) * | 2004-05-18 | 2005-06-15 | 天津市华海计算机技术有限公司 | Gsm/cdma+gps危险品车辆监控中心站装置 |
Non-Patent Citations (1)
Title |
---|
殷平: "基于虚拟仪器的发动机测控系统研制", 《中国优秀硕士学位论文全文数据库》, 31 December 2010 (2010-12-31), pages 47 - 57 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109939310A (zh) * | 2017-12-20 | 2019-06-28 | 北京谊安医疗系统股份有限公司 | 呼吸机的下位机向上位机发送数据的方法和呼吸机 |
CN108228499A (zh) * | 2017-12-28 | 2018-06-29 | 北京首都在线科技股份有限公司 | 一种带外管理设备 |
CN108228499B (zh) * | 2017-12-28 | 2021-04-30 | 北京首都在线科技股份有限公司 | 一种带外管理设备 |
CN111586077A (zh) * | 2020-05-28 | 2020-08-25 | 珠海格力智能装备有限公司 | 数据交互方法及装置、电子设备 |
CN115473759A (zh) * | 2022-08-30 | 2022-12-13 | 一恒生命科学仪器(昆山)有限公司 | 基于扩展rs485通讯接口实现多机通讯以及打印和存贮的方法 |
CN115473759B (zh) * | 2022-08-30 | 2024-04-26 | 一恒生命科学仪器(昆山)有限公司 | 基于扩展rs485通讯接口实现多机通讯以及打印和存贮的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5043938A (en) | Node controller for a local area network | |
US8867573B2 (en) | Transferring data between asynchronous clock domains | |
CN106953853B (zh) | 一种片上网络千兆以太网资源节点及其工作方法 | |
CN202084028U (zh) | 一种模块化多串口扩展装置 | |
CN109165178B (zh) | 一种基于RapidIO的弹上系统SoC芯片间高速通信方法 | |
JP2002204253A (ja) | 非同期転送モードにおけるホスト・プロセッサおよびディジタル信号プロセッサ間転送用インターフェース・ユニット、およびこれを用いたデータ処理システム | |
EP2097828A2 (en) | Dmac to handle transfers of unknown lengths | |
CN116841932B (zh) | 一种可灵活连接的便携式高速数据存取设备及其工作方法 | |
US7779194B2 (en) | Data modification module | |
CN103106169A (zh) | 基于aurora协议的高速总线接口的扩展架构 | |
CN102420877A (zh) | 一种多模式高速智能异步串口通信模块及实现方法 | |
CN116069711B (zh) | 直接内存访问控制器、异构设备、内存访问方法及介质 | |
EP1202498A2 (en) | Datapipe routing bridge | |
CN102214155A (zh) | 串口服务器 | |
CN109656856A (zh) | 利用fpga实现非复用总线与复用总线互联装置及方法 | |
GB2394323A (en) | High-throughput UART interfaces | |
US7610415B2 (en) | System and method for processing data streams | |
CN116795763B (zh) | 基于axi协议的数据分组传输的方法、片上系统和芯片 | |
CN209118271U (zh) | 一种多路高速高频串行数据采集装置 | |
CN101464844B (zh) | 一种ram使用权的控制方法及总线接口 | |
EP2779543B1 (en) | Direct push operations and gather operations | |
US11748289B2 (en) | Protocol aware bridge circuit for low latency communication among integrated circuits | |
JP2000115199A (ja) | スイッチ装置 | |
CN113553279B (zh) | 一种rdma通信加速集合通信的方法及系统 | |
CN108055460A (zh) | 高速图像处理和采集系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111012 |