串口与网口速率怎么调节?

wyu1983 2006-07-05 11:09:14
我想将从socket收到的数据发到与串口相连的设备上去,但是网络数据传输的速率大于串口的数据传输速率,那么怎样才能把每个从socket接收的数据,正确的发到串口上去,并且让串口设备正常接收呢?
...全文
600 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyu1983 2006-07-07
  • 打赏
  • 举报
回复
那客户端能知道这个码是干什么的么?
YanDong_8212 2006-07-07
  • 打赏
  • 举报
回复
上一次命令处理完毕,你可以回传一个返回码给客户端,这个相当于通知
wyu1983 2006-07-07
  • 打赏
  • 举报
回复
收到服务器的通知??不太明白!!
有些客户端就是输入一个字符就向服务器发送一个字符的,有些就是回车的时候整体发送给服务器,那怎么能收到服务器的通知呢?
YanDong_8212 2006-07-07
  • 打赏
  • 举报
回复
不是叫你输入一个字符发一个,是收到服务器端的通知再接收客户端的数据。
wyu1983 2006-07-07
  • 打赏
  • 举报
回复
我是用select机制,收到就发,如果要是输入一个字符发一个,不控制流量会不会有数据丢失呢?
wyu1983 2006-07-06
  • 打赏
  • 举报
回复
实际情况是,在客户端输入命令,然后让串口设备如:交换机等执行这个命令,然后将结果返回给客户端。就好比超级终端似的。
YanDong_8212 2006-07-06
  • 打赏
  • 举报
回复
如果你只开发服务器端,你可以想象。客户端不停的发数据,但你是要间断性收数据,那会造成数据积压,是要出问题的。select也无法完全解决这个问题。只有根据你的实际情况来设计下算法。
wyu1983 2006-07-06
  • 打赏
  • 举报
回复
我并不开发客户端,单就服务器来说,还有别的方法来控制么?收到一个socket数据,然后写入串口,然后再收一个数据,再写入就可以保证每个数据都正常么?那用select机制可以实现么?
YanDong_8212 2006-07-06
  • 打赏
  • 举报
回复
每次从socket接收的数据也不是固定大小的,另外,怎么控制第二次接收数据啊?第一次的数据发到串口上之后,第二次的数据马上发到串口,不是也会覆盖前一个数据么?

------------------------------------------------------------------------------------

不管socket的数据是不是固定大小,你socket收发数据本身就有个buffer。
这个第二次控制需要你的socket的服务器端和客户端相互控制,简单点的比如,当你的客户端向服务器端发送一个CMD_PREPARED的命令码,服务器端再发第二次。第二次数据的发送是在你第一次数据发送并处理完毕之后进行,所以不存在覆盖之说。
wyu1983 2006-07-06
  • 打赏
  • 举报
回复
每次从socket接收的数据也不是固定大小的,另外,怎么控制第二次接收数据啊?第一次的数据发到串口上之后,第二次的数据马上发到串口,不是也会覆盖前一个数据么?
YanDong_8212 2006-07-06
  • 打赏
  • 举报
回复
不管用户怎么输入,你只取你需要的数据,并对其进行规格化。
如果采用一问一答形势是不需要控制流量的。
wyu1983 2006-07-06
  • 打赏
  • 举报
回复
是不是这样处理就可以不用进行流量控制了呢?
另外,有的客户端是回车是将数据整体发送,有的客户端是输入一个发一个,但是发到回车时,交换机才运行这个命令,象这样的两种情况,这种处理方法都可以满足么?
YanDong_8212 2006-07-06
  • 打赏
  • 举报
回复
如果是交互操作,可以比命令稍微设置大点,因为要考虑以后的扩充问题。
wyu1983 2006-07-06
  • 打赏
  • 举报
回复
如果是进行交互操作,只要buffer的长度能够完整接收一个命令是不是就可以了?
YanDong_8212 2006-07-06
  • 打赏
  • 举报
回复
那个buffer最好用队列这种数据结构
YanDong_8212 2006-07-06
  • 打赏
  • 举报
回复
如果你的客户端不是很多,你完全可以设置一个buffer把那些命令包存下来,交换机它也只能在一个时间执行一个命令吧。如果在一个时间命令超过了你的buffer长度,你就拒绝接收命令,或者发送错误信息给客户端“串口设备忙,请稍候再进行操作!”,然后客户端也可以根据信息重发操作。
erhei 2006-07-05
  • 打赏
  • 举报
回复
采用应答方式,只有串口数据全部发送完毕,才通知网络发送下一包数据
YanDong_8212 2006-07-05
  • 打赏
  • 举报
回复
从你的情况看,要想sokcet和串口同步是不可能的,就只能把频率降下来.可以考虑:
1.缓冲大小就设置成每一次socket 接收数据的大小,每次接收到数据后,待数据全部发送到串口,再第二次接收socket的数据.
2.利用队列,但还是要考虑容量和发送时间问题.
3.设置一个大缓冲,接收完数据后再发。

我比较倾向于第一种选择.
wyu1983 2006-07-05
  • 打赏
  • 举报
回复
我也想过,可是,多大缓冲区才是合适啊?100M和9600k差好多啊,大量的数据来的时候,缓冲区还是可能不够用的啊!!
YanDong_8212 2006-07-05
  • 打赏
  • 举报
回复
你把SOCKET上接收的数据,保存在一个缓冲里面,然后按照串口的速率,发送过去不就行了.
可将 TTL/UART 串口设备连接至以太网 支持网口升级程序 支持TCP服务器、TCP客户端、UDP模式 支持虚拟串口、Web登录或使用VirCom进行配置 ZLSN2003 概述 ZLSN2003是上海卓岚开发的新一代串口转以太网嵌入式模块。该模块功能强大,其基本功能是实现串口联网的方便性,即只要和用户的串口TTL电平的串口连接,ZLSN2003就可以将数据发送到基于TCP/IP/UDP的网络服务器上。默认情况下串口和以太网之间是透明传输协议,即串口发送什么,网络就收到什么数据,不会数据格式转化。ZLSN2003内部已经集成网络变压器,外围电路非常简单。 ZLSN2003模块为单片机联网、传统串口设备联网提供了快捷、稳定、经济的方案。不仅能够保证您的产品快速上市,并且为您的产品的稳定提供支撑。 特点 支持在线网络升级固件程序,用户可以从卓岚公司获得软件升级工具和升级firmware,可自行升级到最高版本。 使用配置的ZLVircom工具可以搜索、管理局域网内(支持跨网段搜索)、Internet上的ZLSN2003模块。可一键式配置模块的所有参数。设备配置、管理非常方便。 支持DHCP功能,可以动态获得局域网内的DHCP服务器分配的IP。 支持DNS,自动解析目的域名为IP,目的IP可以为动态域名。 作为TCP Server(TCP服务器端)时,支持独有的100个连接的强大连接能力。 作为TCP Client(TCP客户端)的,支持连接8个目标服务器。作为TCP客户端时,可以在断线后自动进行重连。支持隐含心跳技术,保证网线断线后的恢复。 支持UDP、UDP组播等功能。 支持虚拟串口。 规格 网络界面 以太网 10/100 Mbps 保护 内建1KV电磁隔离 串口界面 界面 TTL电平串口 串口数 1 校验位 None, Even, Odd, Space, Mark 数据位 5~9 停止位 1,2 流控 RTS/CTS,DTR/DCR,XON/XOFF 速率 1200bps~460800bps 软件特性 协议 TCP,HTTP,UDP,ICMP,ARP,IP,DNS,DHCP 虚拟串口平台 Windows 95/98/ME/NT/2000/XP/WIN7/WIN8 配置方式 Web浏览器、卓岚ZLVirCom、串口类AT命令 电器特性 电压输入 DC5V(ZLSN2003-3.3V支持3.3V),210~250mA 机械特性 尺寸 长×宽=43 × 26mm 工作环境 工作温度,湿度 0~70℃,5~95% RH 储存温度,湿度 -45~165℃,5~95% RH W
可将 TTL/UART 串口设备连接至以太网 支持网口升级程序 支持TCP服务器、TCP客户端、UDP模式 支持虚拟串口、Web登录或使用VirCom进行配置 ZLSN2003 概述 ZLSN2003是上海卓岚开发的新一代串口转以太网嵌入式模块。该模块功能强大,其基本功能是实现串口联网的方便性,即只要和用户的串口TTL电平的串口连接,ZLSN2003就可以将数据发送到基于TCP/IP/UDP的网络服务器上。默认情况下串口和以太网之间是透明传输协议,即串口发送什么,网络就收到什么数据,不会数据格式转化。ZLSN2003内部已经集成网络变压器,外围电路非常简单。 ZLSN2003模块为单片机联网、传统串口设备联网提供了快捷、稳定、经济的方案。不仅能够保证您的产品快速上市,并且为您的产品的稳定提供支撑。 特点 支持在线网络升级固件程序,用户可以从卓岚公司获得软件升级工具和升级firmware,可自行升级到最高版本。 使用配置的ZLVircom工具可以搜索、管理局域网内(支持跨网段搜索)、Internet上的ZLSN2003模块。可一键式配置模块的所有参数。设备配置、管理非常方便。 支持DHCP功能,可以动态获得局域网内的DHCP服务器分配的IP。 支持DNS,自动解析目的域名为IP,目的IP可以为动态域名。 作为TCP Server(TCP服务器端)时,支持独有的100个连接的强大连接能力。 作为TCP Client(TCP客户端)的,支持连接8个目标服务器。作为TCP客户端时,可以在断线后自动进行重连。支持隐含心跳技术,保证网线断线后的恢复。 支持UDP、UDP组播等功能。 支持虚拟串口。 规格 网络界面 以太网 10/100 Mbps 保护 内建1KV电磁隔离 串口界面 界面 TTL电平串口 串口数 1 校验位 None, Even, Odd, Space, Mark 数据位 5~9 停止位 1,2 流控 RTS/CTS,DTR/DCR,XON/XOFF 速率 1200bps~460800bps 软件特性 协议 TCP,HTTP,UDP,ICMP,ARP,IP,DNS,DHCP 虚拟串口平台 Windows 95/98/ME/NT/2000/XP/WIN7/WIN8 配置方式 Web浏览器、卓岚ZLVirCom、串口类AT命令 电器特性 电压输入 DC5V(ZLSN2003-3.3V支持3.3V),210~250mA 机械特性 尺寸 长×宽=43 × 26mm 工作环境 工作温度,湿度 0~70℃,5~95% RH 储存温度,湿度 -45~165℃,5~95% RH W
将 RS-232/485 串口设备连接至以太网 业界首款全双工、不间断、低成本服务器 支持TCP服务器、TCP客户端、UDP模式 支持虚拟串口、Web登录或使用VirCom进行配置 ZLAN5102 概述 ZLAN5102串口服务器是上海卓岚信息科技有限公司开发的一款工业级RS232/485和TCP/IP之间协议转化器。该串口服务器可以方便地使得串口设备连接到以太网和Internet,实现串口设备的网络化管理。和同类产品相比,其显著特点是稳定性(可以全双工、不间断发送大批量数据而不丢失一字节)和适中的价格。 特点 通过内嵌Web服务器可配置其网络参数、串口参数、登录口令等。 Web服务器支持密码登录,以防止随意修改。 支持跨网关:能够将串口服务器和任何Internet上有公网IP的主机连接。 支持1200~460800波特率。 支持9位数据发送功能:第9位可以为无、奇校验、偶校验、1、0,五种方式方便在485通信中区分数据帧和地址帧。 ZLVirCom配置工具可在网络上自动寻找设备联网服务器。 支持虚拟串口。 支持数据写保护,防止随意篡改。 支持默认配置启动。 LINK灯连接指示。 硬件流控CTS/RTS。 1KV网络浪涌保护。 外壳采用抗辐射的SECC板,保证在高电磁辐射区也能够正常工作。 规格 网络界面 以太网 10/100 Mbps, RJ45 保护 内建2KV电磁隔离 串口界面 界面 RS-232/485 串口数 1 校验位 None, Even, Odd, Space, Mark 数据位 5~9 停止位 1,2 流控 RTS/CTS,DTR/DCR, XON/XOFF 速率 1200bps~460800bps 软件特性 协议 TCP,HTTP,UDP,ICMP,ARP,IP,DNS,DHCP 虚拟串口平台 Windows 98/2000/XP/WIN7/WIN8 配置方式 Web浏览器、卓岚ZLVirCom、串口类AT命令 电器特性 电压输入 DC9~24V,100mA 机械特性 外壳材料 抗电磁材料SECC钢板 尺寸 长×宽×高=9.4cm×6.5cm×2.5cm 工作环境 工作温度,湿度 -45~85℃,5~95% RH 储存温度,湿度 -45~165℃,5~95% RH W

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧