随着网络普及和速度的提升,网络通信方式被更多的用户采用,即用户通过集线器或网络直连的方式与显示屏通信。其中通过集线器,PC机和显示屏IP可不在同一个网段;而网络直连时,PC机和显示屏的IP地址必须在同一个网段。不管采用哪一种方法,都必须知道两者的IP地址才能进行通信。但在调试过程中,由于LED控制卡太多、放置时间太长或由不同的人进行配置,有时用户可能不知道显示屏的IP地址,这样就很难开展工作了。另外,出厂配置的IP地址和现场安装的IP地址可能不一样,并且现场安装的显示屏IP地址由于用户千差万别,其IP地址段也不一样。这样一来,在调试过程中,需要反复修改显示屏或PC机的IP地址,带来很大的工作量。因此,基于应用中的这些问题,有用户提出能否采用网络直连的方式,无需知道LED显示屏的IP地址,也不用修改PC机的IP就可实现PC机与LED显示屏网络通信,让用户更方便地调试LED显示屏。通过市场调研,有些软件声称实现了LED显示屏网络直连的方式,但在具体实现上并不能令人满意,例如稳定性、可靠性和时效性等方面并不如意。经过研究,本文提出一种新的网络直连的方法,可以很好地解决这些问题,让用户方便、可靠、高效地调试显示屏。
主要功能需求分析和模型构建
对于网络直连,硬件如图1所示,用网络直连线将PC机和显示屏连接起来,然后手动设置它们的IP地址在同一个网段,即可进行通信了。
但采用这种方式,如果事先不知道显示屏的IP地址,将很难进行通信。为了达到不知道显示屏IP地址也能实现PC机与显示屏直连通信的目的,可借助DHCP服务原理来解决:即设置LED显示屏为某固定IP地址的DHCP服务器,设置PC机网卡为自动获取IP地址的方式,通过DHCP服务功能,自动配置PC机的网卡IP地址,这样网络连接通道就建立了。有些开发商就采用这种方式实现了网络直连,但这种方法存在一些问题:其一,由于UDP通信为不连接通信,其通信可靠性要差一些,容易失败;其二,只能通过操作系统自带的系统完成,没有干预,用户不能设置超时,有时等待时间太长,最长为60秒;其三,DHCP为固定IP方式,在实际应用中显然不太好;其四,退出系统时,不能恢复PC机原有的网卡配置信息。
基于此,经过研究,本文提出一种新的网络直连方法,可以实现网络直连、自动获取IP地址以及实现PC机网卡配置信息保存和恢复等功能,克服当前实现方法的不足,提高可靠性、稳定性和时效性等各方面性能,其系统模型如图2所示,主要功能和工作流程如下:
(1)启动系统时,检索、访问PC机的所有网卡,并保存其网卡配置信息,供退出系统时恢复;(2)启动网络直连进程;(3)广播IP地址请求数据包;(4)返回IP地址数据包;(5)解包,获取PC机和LED显示屏的IP地址,设置PC机的IP地址;(6)返回LED显示屏的IP地址,关闭网络直连,完成通信通道的建立;(7)建立PC机和LED显示屏的通信通道后,即可对显示屏进行读/写参数、发送节目、开关屏等通信控制操作;(8)退出系统时,根据(1)保存的网卡配置信息,恢复PC机网卡的原始状态。
在以上流程中,(2)~(6)是核心过程,它模拟DHCP服务,实现PC机广播请求IP地址,获取PC机IP地址并设置,上传LED显示屏IP地址,完成网络直连通道的建立,是进行网络直连操作时必做的步骤;(1)和(8)是启动和退出系统时所做的保存PC机网卡配置信息和恢复网卡配置信息操作;(7)是在完成网络直连通道后进行的显示屏控制的一般操作。本文重点介绍前两者。
关键功能的设计和实现
2.1保存PC机网卡配置信息
用来调试显示屏的PC机,一般是一机多用,在调试显示屏的同时,还用来办公、上网,其网卡IP地址可能是固定的或自动获取的。在做网络直连时,可能会改变其IP地址,为了不影响用户的工作,退出时需要自动恢复其IP地址。而要做到这一点,可在启动LED控制软件时,读取当前网卡配置信息,如IP地址、网卡名、MAC地址、网卡类型、是否是自动配置IP地址等等,将这些信息放入一个链表中保存,同时设置一个标识,记录用户在调试显示屏的过程中,是否使用过网络直连操作,待退出系统时使用。
在Windows操作系统中,可使用IPHelper接口来读取网卡信息,它是一套用于管理本地网络设置的API,通过它使用IP_ADAPTER_INFO结构,可以方便地提取上述网卡配置信息,保存到链表中。
2.2借鉴DHCP服务原理,构建网络直连通道
要实现PC机和LED显示屏网络直连通信,必须解决两个关键问题:其一,让PC机和LED显示屏在同一个网段;其二,知道LED显示屏的IP地址。
除此之外,还要解决多网卡、无线网卡对网络直连的干扰等现象。借鉴DHCP原理,主要解决思路如下:
(1)在PC机端设计一个网络直连控制进程;(2)需要网络直连时,启动该进程,通过Windows相关网络API函数和注册表信息,确定与LED显示屏连接的非无线网卡,将其MAC地址放入构建请求IP地址的UDP数据包中,然后广播出去,同时启动内部UDP包捕获子进程;(3)LED显示屏收到请求IP地址的UDP包后,根据本身IP地址,构造一个PC机的IP地址,将其广播出去,为了不引起混乱,这里构建的是伪DHCP包,正常的Windows客户端收到该UDP包时,并不会自动改变其IP地址;(4)网络直连控制进程的UDP包捕获子进程接收到分配的IP地址的UDP包后,解包得到PC机的IP地址和LED显示屏的IP地址;(5)设置PC机网卡IP地址,上传LED显示屏的IP地址给控制软件,成功后,关闭网络直连控制进程,完成网络直连通道的建立。
这个网络直连的过程涉及三个系统:(1)网络直连控制进程,它构建请求IP地址UDP数据包并广播出去,同时监控目标网卡的68端口,捕获返回的UDP数据包,解析出PC机的IP地址和LED显示屏的IP地址,然后设置PC机的IP地址,将LED显示屏的IP地址提交给主进程,完成网络直连的任务;(2)LED显示屏DHCP服务子进程,它接收PC机的IP地址请求,构建并设置自身IP地址,并返回PC机的IP地址的伪DHCP包;(3)LED控制软件,当用户选择网络直连方式时,启动网络直连控制子进程,实现网络直接通道的建立,完成后,关闭该进程。
2.3恢复PC机网卡的配置信息
退出系统时,根据2.1保存的是否使用过网络直连的标识进行判断,如果没有使用过网络直连方式,则无需执行网络IP恢复功能;否则将执行恢复功能,还原2.1保存的网卡配置,恢复网卡IP地址可使用netshinterfaceipset命令。
同时,为了加快处理速度并提高成功率,可按禁用网卡、设置网卡IP地址、再启用网卡的步骤实施:
(1)使用Windows的SetupAPI相关接口API函数禁用目标网卡;(2)恢复目标网卡IP设置,根据静态IP地址和动态IP地址,分别用不同的命令:
a.恢复静态IP地址命令。
netshinterfaceipsetaddressname=“本地连接”
source=STaticaddr=192.168.1.19mask=255.
255.255.0gateway=none.
b.恢复动态IP地址命令。
netshinterfaceipsetaddress“本地连接”dhcp
(3)使用SetupAPI相关接口API函数启用目标网卡,这样就完成了网卡配置信息的恢复。
结论
本文针对LED显示屏调试过程中对网络直连的需求,提出一种网络直连的方法,系统在启动时自动保存网卡配置信息,使用网络直连进程构建网络直连通道,退出系统时自动恢复网卡配置信息,使用户无需知道LED显示屏的IP地址,也不用修改PC机的IP地址,便可实现PC机与LED显示屏的网络通信。该方法在LED导航者软件中使用,其可靠性、稳定性和时效性得到了用户的认可,取得了良好的效果。实践证明,该方法可为类似的应用提供一种可供借鉴的解决方案。
上一篇:论LED照明灯具设计的三层“境界”
下一篇:新型LED照明驱动电源解决方案,无需电解电容
推荐阅读最新更新时间:2023-10-12 22:45
Vishay线上图书馆
- 选型-汽车级表面贴装和通孔超快整流器
- 你知道吗?DC-LINK电容在高湿条件下具有高度稳定性
- microBUCK和microBRICK直流/直流稳压器解决方案
- SOP-4小型封装光伏MOSFET驱动器VOMDA1271
- 使用薄膜、大功率、背接触式电阻的优势
- SQJQ140E车规级N沟道40V MOSFET
- MathWorks 和 NXP 合作推出用于电池管理系统的 Model-Based Design Toolbox
- 意法半导体先进的电隔离栅极驱动器 STGAP3S为 IGBT 和 SiC MOSFET 提供灵活的保护功能
- 全新无隔膜固态锂电池技术问世:正负极距离小于0.000001米
- 东芝推出具有低导通电阻和高可靠性的适用于车载牵引逆变器的最新款1200 V SiC MOSFET
- 【“源”察秋毫系列】 下一代半导体氧化镓器件光电探测器应用与测试
- 采用自主设计封装,绝缘电阻显著提高!ROHM开发出更高电压xEV系统的SiC肖特基势垒二极管
- 艾迈斯欧司朗发布OSCONIQ® C 3030 LED:打造未来户外及体育场照明新标杆
- 氮化镓取代碳化硅?PI颠覆式1700V InnoMux2先来打个样
- 从隔离到三代半:一文看懂纳芯微的栅极驱动IC