WinCE利用vspd.dll实现虚拟串口

简介:
由于最近的项目中发现串口不够用,更关键的是GPS的数据被导航软件独占了,自己的程序无法获得GPS数据了,所以想用虚拟串口的方法,既可以在不影响导航软件的情况下让自己的程序获得GPS数据,又可以节省出来一个串口。

本来是打算自己来做一个虚拟串口的驱动的,但无意中发现已经有现成的驱动了,只需要修改一下注册表就可以实现上面的功能了。

实现方法

以下内容来自网络,这里转载并整理了一下。

1、当然是从网络上下载vspd.dll的驱动了。

2如果是WINCE5.0那么就在platform.bib中加入:
vspd.dll    $(_FLATRELEASEDIR\vspd.dll        SH
            如果是WINCE6.0系统,那么就在platform.bib中加入:

vspd.dll     $(_FLATRELEASEDIR\vspd.dll    NK    SHK
3、修改注册表,在platform.reg中加入

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\VSPD0] 

                 "Priority"=dword:00000000 

                 "DeviceArrayIndex"=dword:00000000 

                 "PortIsRO"=dword:00000000 

                 "SplitPort"=dword:00000003 

                 "Index"=dword:00000005 

                 "Prefix"="COM" 

                 "Dll"="vspd.dll" 

                 "DeviceType"=dword:00000000 

                 "Tsp"="Unimodem.dll" 

                 "FriendlyName"="Virtual port COM5" 

"DevConfig"=hex:10,00,00,00,05,00,00,00,10,01,00,00,00,4b,00,00,00,00,08,00,00,00,00,00,00
通过上面的三步,就可以将物理串口3虚拟成串口5了,这两个串口就可以同时接受GPS数据了。当然可以继续添加VSP1,比如再虚拟出一个串口6来,和上面注册表内容基本一致,只需要修改"Index""FriendlyName"就可以了。

测试分析

经过测试发现,虚拟串口5确实可以收到数据了,但是有流量限制。上网一查才知道,原来这个驱动是商业软件,下载到的是试用版的,有流量和虚拟串口数量的限制,即当虚拟串口收发的数据超过1M后就不能继续了,必须重新启动系统才可以继续,而且虚拟的串口数量最多只能有两个。

解决的方法有两个:

1、花钱买一个正版的,相信大家都不会这么做,呵呵。

     2、找一个破解的vspd.dll或者自己破解。

      网上确实有很多破解的vspd.dll,但是这个破解的大多数是针对PC机平台的,WinCE平台基本没有,或者下载到的试用了不行,如果哪位大虾有破解后的,麻烦发一份过来。另外,网络上有一个博主声称自己破解了,将流量扩充到了4G(基本上可以一直接收GPS数据好几天,应该够用了),数量扩充到了4个,但是下面留言的有说好像不行。本人也没有测试,因为博主给出的链接已经打不开了。

 
 http://blog.csdn.net/shuiii/archive/2008/11/12/3280234.aspx是那篇破解了vspd.dll的文章

做GPS的都熟悉,机器要一起运行导航和电子狗就不得不用一个虚拟串口软件,数据从一个物理串口出来,分给两个虚拟串口,虚拟串口得到的数据是一样的.

 
最近公司需要,玩了一下虚拟串口,自己写了一个虚拟串口驱动,两个虚拟串口一起收数据总是不能同步,没那么多时间了,怎么办,只有用人家的了..

 
GOOGLE了一下,发现用Serial Splitter CE 2.9这个软件的人还不少.下.把里面的vspd.dll抠出来,配上自己的UI,哈.居然可以了.不是吧.这么简单,不是一个License都是几百大洋吗.再看了下文档,晕.这只是demo版,有限制的,只能虚拟两个串口,还有1M的流量限制,也就是通过虚拟串口收发的数据超过1M之后就不能再用了.要重启机器.测试了一下,果然,机器跑了半个小时左右就没收不到数据了..

 
前段时间了解了下逆向工程,看来只有试试破解了.用IDA Pro三两下就找到地方了,把流量限制改成了4G,哈,这下连续运行几天几夜也没有问题了..看来破解这东西还真是七分运气.


本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/595554,如需转载请自行联系原作者
相关文章
|
9月前
|
Linux API 开发工具
Windows NT 驱动程序的编译、安装、调试
Windows 驱动分为两类,一类是从 Windows NT 遗留下来的驱动模型称为传统的 Windows NT 驱动程序模型,另一类是 Windows 添加了电源管理后的 KMDF (WDM)驱动程序。本文这里首先以最简单的 Windows NT 驱动模型为例介绍 Windows 驱动的简单编写、编译、安装及调试。
162 0
Jlink使用技巧之虚拟串口功能
前言 串口调试是单片机开发过程必不可少的一个功能,一般是使用一个UART-TTL的串口模块来实现串口的功能,其实下载调试使用的Jlink仿真器也可以实现串口调试的功能,本篇文章将介绍如何使用Jlink实现虚拟串口功能。
2392 0
|
Windows
Windows XP下USB转串口驱动编码实现分析
       USB转COM驱动的编写实现有很多中方法,最近在网络上看到一个最常用的方式,即是虚拟一个COM口,在COM初试的时候进行打开一个USB设备.
1020 0
|
Windows
WinCE6.0实现TexFAT的注意点
TexFAT(Transaction-safe Extended FAT)与TFAT功能一样,在WinCE6.0之前,包括Windows Mobile6.5使用的是TFAT,WinCE6.0和WP7则使用TexFAT。
1060 0
WinCE系统声音定制
WinCE系统声音定制       2010的第一篇Blog,介绍一下WinCE系统声音的定制。说白了,就是设置注册表。WinCE系统启动的开机音乐,点击触摸屏以及键盘输入的按键音,还有系统运行过程中的各种声音其实都是在注册表里面预先设置好的。
851 0