搜索
bottom↓
回复: 71

潜水这么久,今天冒个泡秀秀我写的并口下载程序(可以在AVRStudio中使用)

[复制链接]

出0入0汤圆

发表于 2005-12-19 19:16:58 | 显示全部楼层 |阅读模式
前一段要用mega48做个小项目,本来想买本站的stk500,不幸项目被cancel掉了~~~只好作罢

以前用过一点avr,都是用并口下载线,软件用的是双龙的,感觉很不稳定,错误不断

后来改用了一个叫progisp的下载软件,稳定是稳定了,但是感觉不能在AVRStudio里用还是很不爽

因为项目被cancel掉的原因,最近比较清闲,所以就想写个能在AVRStudio里用的并口下载器

折腾了一个月终于折腾出了个样子

今天拿出来给大家秀秀



运行前需要安装虚拟串口的驱动



安装后设备管理器中能看到"Virtual Serial Bus Enumerator"表示驱动安装成功



运行程序



主界面,其中的参数一般不需要修改



启动程序,正常的话应该如下图所显



程序启动后可以隐藏掉主界面



在AVRStudio中选择STK500 or AVRISP端口选择虚拟串口一中的设置



连接成功



选择芯片



编程,提示编程成功

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2005-12-19 19:28:43 | 显示全部楼层
楼主挺有创意的。我想请教一下你是如何虚拟串口的呢?是自己开发驱动还是有现成的控件之类调用的呢?

出0入0汤圆

发表于 2005-12-19 19:30:07 | 显示全部楼层
这种方式很特别,比较好.

出0入0汤圆

 楼主| 发表于 2005-12-19 19:38:11 | 显示全部楼层
我正在写自己的驱动,但是很有难度的

估计一时半会儿还写不好呢

我现在用的是国外的一个现成的控件的破解:(

主要是想验证一下想法是否可行

出0入0汤圆

发表于 2005-12-19 20:08:19 | 显示全部楼层
能否把控件发上来呢?挺有意思的。而且可以把avr的usbTo232做成com转换线。
-----此内容被xiaoku于2005-12-19,20:12:40编辑过

出0入0汤圆

 楼主| 发表于 2005-12-19 20:12:48 | 显示全部楼层
xiaoku 小苦

把你的邮箱给我

我把控件发给你好了

我现在上传不上东西,太慢了

刚才的几张图片发了100多遍

出0入0汤圆

 楼主| 发表于 2005-12-19 20:15:09 | 显示全部楼层
xiaoku 小苦

而且可以把avr的usbTo232做成com转换线



没理解?!

出0入0汤圆

发表于 2005-12-19 20:15:15 | 显示全部楼层
好的。我的QQ是364831597 email是:kiki@admaxcn.com

出0入0汤圆

 楼主| 发表于 2005-12-19 20:19:51 | 显示全部楼层
xiaoku 小苦

已经发给你了

出0入0汤圆

发表于 2005-12-19 20:21:04 | 显示全部楼层
搂主能不能给我也发一份,我也研究研究,mcu598@163.com

出0入0汤圆

发表于 2005-12-19 20:26:06 | 显示全部楼层
已经收到,谢谢!
-----此内容被xiaoku于2005-12-19,20:42:59编辑过

出0入0汤圆

 楼主| 发表于 2005-12-19 20:28:36 | 显示全部楼层
zhifeng

已经发给你了

出0入0汤圆

发表于 2005-12-19 20:28:37 | 显示全部楼层
谢谢!已收到。

出0入0汤圆

发表于 2005-12-19 20:49:10 | 显示全部楼层
请问是不是这样使用。使用DLL把虚拟出com3,com11,然后用com口控件操作com11也就是操作com3了(因为它们是互联一起的)。然后用下面的例子来操作吗?



Using it With C/C++

In C and C++, you have to dynamically load the DLL file, find the function(s) you want to use, and call them. A sample function to do this in Visual C++ is shown below:



typedef bool (__stdcall *CreatePairFn)(char *Port1, char *Port2);

typedef bool (__stdcall *DeletePairFn)(char *Port1);

typedef bool (__stdcall *DeleteAllFn)(void);

typedef bool (__stdcall *SetStrictBaudrateName) (char *Port, bool StrictBaudrate);

typedef bool (__stdcall *SetStrictBaudrateHandle) (HANDLE hPort, bool StrictBaudrate);

typedef bool (__stdcall *CreatePairFn)(char *Port1, char *Port2);

typedef bool (__stdcall *DeletePairFn)(char *Port1);

typedef bool (__stdcall *DeleteAllFn)(void);

typedef bool (__stdcall *SetStrictBaudrateFn)(char *Port, bool StrictBaudrate);

typedef bool (__stdcall *SetBreakFn)(char *Port, bool bBreak);

typedef bool (__stdcall *QueryBusFn)(void* InBuffer, long sizeInBuffer, void* OutBuffer, long sizeOutBuffer);

typedef bool (__stdcall *SetWiringFn)(char *Port, void *Buffer, long sizeBuffer);





Code example:



bool CreateVSPair(char *Port1, char *Port2) {



OSVERSIONINFO VersionInfo;

HINSTANCE libInst;

bool returnvalue = false;



VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

GetVersionEx(&VersionInfo);



if (VersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT)

libInst = LoadLibrary("VSPDCTL.DLL");

else

libInst = LoadLibrary("VSPDCTL.DLL");



if (!libInst) return false; /* Couldn't load library */

/* Substitute the typedefs above for functions other than CreatePairFn */

CreatePairFn CreatePair=(CreatePairFn)GetProcAddress(libInst, "CreatePair");

if (CreatePair==0) return false; /* Couldn't find function */

returnvalue=CreatePair(Port1, Port2); /* For example, Port1 = "COM5" and Port2 = "COM6" */

FreeLibrary(libInst);

return returnvalue;

};

出0入0汤圆

 楼主| 发表于 2005-12-19 20:54:34 | 显示全部楼层
xiaoku 小苦



没错

就是这个意思

出0入0汤圆

发表于 2005-12-19 21:02:01 | 显示全部楼层
看样子使用下面函数转为并口的吧?

typedef bool (__stdcall *QueryBusFn)(void* InBuffer, long sizeInBuffer, void* OutBuffer, long sizeOutBuffer);

出0入0汤圆

发表于 2005-12-19 21:15:20 | 显示全部楼层
这个软件非常有意思.

出0入0汤圆

 楼主| 发表于 2005-12-19 21:15:28 | 显示全部楼层
zhifeng



我不是这么做的

我的理解是上面的函数是获得串口信息用的

出0入0汤圆

发表于 2005-12-19 21:26:11 | 显示全部楼层
楼主的软件什么时候发布一下。很有创意。使用这种方法,可以扩展很多东西。举个例:可以使用声卡的游戏接口作下载线。开阔了很多应用,说不定哪天有人用红外线或wifi作下载线呢。:P

出0入0汤圆

 楼主| 发表于 2005-12-19 21:47:45 | 显示全部楼层
最近恐怕还不能发布~

因为你也看到了最复杂的虚拟串口我用的是盗版的控件

我想这样发布传播开就不大好了

毕竟这个控件一个licence要一百多美圆呢

本来我就不大会用mfc,这个软件也是学vs2005练手做的

我正在看ddk方面的东西,乐观估计过段~~~时间也许能写出自己的驱动来

那个时候再发布我能安心点的说



不过我想也许可以考虑先让本站的几位大牛试用一下

找找毛病

因为我只用过并口下载线,现在也只实验过对mega48编程

我也想知道现在这个版本的稳定行速度什么的如何
头像被屏蔽

出0入0汤圆

发表于 2005-12-19 22:09:22 | 显示全部楼层
呵呵,思路不错啊。



不过 ..... 可能只能玩玩。要达到实用性的稳定程度,还需要做较多的工作。



毕竟windows下的驱动,不是件容易做好的事。

出0入0汤圆

 楼主| 发表于 2005-12-19 22:17:03 | 显示全部楼层
armok 阿莫



的确,要做windows的驱动是比较困难的事情



但是这个例子对驱动的要求并不太高

不需要考虑太多的进程线程同步方面的东西

这样就简单多了

出0入0汤圆

发表于 2005-12-20 00:47:10 | 显示全部楼层
avr的usbTo232转换,不能像市面上的转换线一样虚拟一个com口。只能通过调用usb的库函数进行操作。把你的com to lpt软件变成com to usb,哪就变成一条不错的转换线了。

出0入0汤圆

 楼主| 发表于 2005-12-20 01:49:03 | 显示全部楼层
xiaoku 小苦

原来是这个意思啊

明白了

你说的avr的usbTo232转换是不是atmel文档里介绍的那个啊?

可惜现在这个控件只能虚拟成对的串口

不过写个服务程序实现

RS232<->usd<->usb dll<->服务程序(自己编写)<->virtual com1<->virtual com2

经过这么一折腾就实现你要的功能啦^_^

出0入0汤圆

 楼主| 发表于 2005-12-20 01:52:49 | 显示全部楼层
我自制的并口下载线的原理图和实物照片





出0入0汤圆

 楼主| 发表于 2005-12-20 02:11:34 | 显示全部楼层
目标板

出0入0汤圆

发表于 2005-12-20 10:46:19 | 显示全部楼层
有意思,LPT映射成COM.是这样吗?

出0入0汤圆

发表于 2005-12-20 12:16:02 | 显示全部楼层
RS232<->usd<->usb dll<->服务程序(自己编写)<->virtual com1<->virtual com2 就是这样啦。我也觉得挺烦的。要是能生成单一com口就好了。

出0入0汤圆

发表于 2005-12-20 13:26:08 | 显示全部楼层
我也明白了原理了,虚拟串口1接avrstudio,虚拟串口2接楼主的服务程序,搂主的服务程序将虚拟串口2的数据转并口,这样就可以用avrstudio驱动并口编程了,不知我说的对不对?

编程数据由avrstudio->虚拟串口1-〉虚拟串口2-〉并口-〉目标板。

我也提供个虚拟串口的程序。

点击此处下载armok0193166.rar

出0入0汤圆

发表于 2005-12-20 13:59:57 | 显示全部楼层
我的单一串口驱动已经写好了,COM TO USB (虚拟的通用串口)只是没有测试,因为我的本本没有串口,调试好了之后我会上传上来,楼主的控件不知能不能发一份给我

sshda@126.com

出0入0汤圆

 楼主| 发表于 2005-12-20 18:37:45 | 显示全部楼层
zhifeng :



你的这个虚拟串口的软件我也看到过

可惜我一直都没有找到破解所以没有用成



编程数据由avrstudio->虚拟串口1-〉虚拟串口2-〉并口-〉目标板



就是这个意思,其实编程器基本上就提供个spi接口,实质上和并口实现的spi没什么差别的

出0入0汤圆

 楼主| 发表于 2005-12-20 18:41:55 | 显示全部楼层
shaoshunda :

你要的控件我已经发给你了



想请教一下你写的驱动是如何实现虚拟串口部分的

是不是基于ddk中的toaster总线?

还是用的usb cdc中的免驱动方案?

或者有其他的方案



希望交流交流

出0入0汤圆

发表于 2005-12-20 18:57:15 | 显示全部楼层
是用DDK配合Compuware DriverStudio V3.1,Compuware DriverStudio V3.1已经支持虚拟串口了.

"DriverWorks和DriverNetworks是DriverStudio的两个主要框架工具,可以提高开发

驱动程序的速度。DriverWorks简化了开发NT和WDM驱动程序的工作;DriverNetworks

则帮助开发人员毫不费力的创建和定制网络驱动程序。目前的版本可以让驱动程序

开发人员来回切换开发工具而无需改变开发环境。

DriverWorks和DriverNetworks还都提供了全新的DriverWizard,可以用C语言来创建

Windows设备驱动程序。另外,DriverWorks和DriverNetworks还为Visual Studio .NET

提供了全新的菜单和工具条,让开发人员可以使用Windows DDK编译器和链接器来build

驱动程序。

DriverWorks的类库和实例现在已经支持开发虚拟COM端口的驱动程序了。"

出0入0汤圆

 楼主| 发表于 2005-12-20 19:14:10 | 显示全部楼层
shaoshunda :



我现在是在参考ddk里的toaster总线的例子开发

似乎结构很复杂,加上以前没接触过驱动开发现在写的七七八八

刚能虚拟出来设备



Compuware DriverStudio V3.1的资料哪里有?

我也想下载一份,我现在的开发环境是vs2005,ddk是xp ddk

出0入0汤圆

 楼主| 发表于 2005-12-20 20:30:25 | 显示全部楼层
shaoshunda :



哪个例子是虚拟串口的?

我已经下好Compuware DriverStudio V3.2了

出0入0汤圆

发表于 2005-12-20 20:38:16 | 显示全部楼层
我是在电驴上下的下面是网址

http://lib.verycd.com/2005/06/07/0000053175.html

我用的是3.1版本,3.2可能会更好

出0入0汤圆

发表于 2005-12-20 20:41:55 | 显示全部楼层
好多网站的Compuware DriverStudio V3.2不是完全版的

我是用其中的DriverWizard生成虚拟串口代码框架的



等有空的时侯我会把具体的操做截图贴上来

并上传一些相关的资料
-----此内容被shaoshunda于2005-12-20,20:54:38编辑过

出0入0汤圆

 楼主| 发表于 2005-12-20 21:19:13 | 显示全部楼层
shaoshunda :



期待你的资料~~~

出0入0汤圆

发表于 2005-12-21 09:17:59 | 显示全部楼层
下面是一份虚拟串口的源码,来至驱动开发网的论坛不知对你有没有用,里面有作者对整个工程源码的详细说明及注释,还有作者的联系方式。

点击此处下载armok0193346.rar

是COM TO TCP/IP
-----此内容被shaoshunda于2005-12-21,09:21:34编辑过
头像被屏蔽

出0入0汤圆

发表于 2005-12-21 10:08:03 | 显示全部楼层
谢谢 shaoshuda. 这才是有价值的资料。



sharpen 能将你的控件传上来吗?我们只是内部交流而己,商业应用时,建议大家购买正版。



(ORACLE价值上百万元一套的数据库软件,也是放在官方网站随便你下载的,并且是完整版本,没有任何限制。商业应用的人会购买版权。这样有利于软件发展与扩大市场份额)。

出0入0汤圆

 楼主| 发表于 2005-12-21 18:26:40 | 显示全部楼层
armok 阿莫:



我把整个软件传上来好了

给大家试用,给我提提意见

不知道为什么我上传不了文件

要不我先发给你?

13902245677@21cn.com

可以用么?



ORACLE是大公司人家卖的是服务

Eltima是小公司,搞不好要收律师信的~~~~


-----此内容被sharpen于2005-12-21,18:34:59编辑过

出0入0汤圆

发表于 2005-12-21 18:44:06 | 显示全部楼层
要不我帮你传一下,mcu598@163.com

出0入0汤圆

 楼主| 发表于 2005-12-21 18:56:48 | 显示全部楼层
zhifeng:

发给你了,谢谢.

出0入0汤圆

发表于 2005-12-21 19:02:29 | 显示全部楼层
【42楼】 sharpen 的程序

点击此处下载armok0193406.rar

出0入0汤圆

 楼主| 发表于 2005-12-21 19:11:46 | 显示全部楼层
感谢zhifeng

动作还真快



我运行程序的环境是windows xp sp2

athlon64 3000+ 1G RAM



运行程序需要管理员权限

似乎在2000下不能正常工作

出0入0汤圆

发表于 2005-12-22 01:24:51 | 显示全部楼层
不错,但好像安装有点麻烦,还没搞清楚。

出0入0汤圆

 楼主| 发表于 2005-12-22 02:39:12 | 显示全部楼层
testcode :

安装再简单不过了

一般情况下只要运行那个驱动的安装就可以了



如果程序能够正常启动

之后的用法和普通编程器是一样的

出0入0汤圆

发表于 2005-12-22 14:21:40 | 显示全部楼层
我测试了一下,很不错!烧录m16没有问题,其它的芯片还没有测试,应该差不多吧

出0入0汤圆

发表于 2005-12-22 15:22:10 | 显示全部楼层
to:楼主,我给你提供个虚拟串口的程序,没有限制不用破解

如果各位使用好的话,多支持我一把。

安装与设置按下图:

出0入0汤圆

发表于 2005-12-22 15:29:51 | 显示全部楼层
选择安装多串口卡的驱动程序,设置串口号时不要与已有的重复。此驱动不会在"Ports (COM & LPT)“出现虚拟的串口信息,在串口调试软件与超级终端中可以看到,比如用我的avrgccide中的终端就可以操作

点击此处下载armok0193627.rar

出0入0汤圆

发表于 2005-12-22 17:36:53 | 显示全部楼层
忘了说了虚拟的串口必须相邻,我用楼主的软件无法工作。不知楼主的程序是如何工作的?

为何第一选项有串口,第二选项还有串口?按理直接有一串口转并口就行了吧?

出0入0汤圆

 楼主| 发表于 2005-12-22 18:29:18 | 显示全部楼层
zhifeng:



我看看你提供的虚拟串口程序

要是好用的话我就把现在写的更新了



至于为什么需要设置两个虚拟串口是这样的

虚拟串口一是用来和avrstudio通讯的

虚拟串口二与虚拟串口一是相连的,这样我就可以与avrstudio通讯

本来虚拟串口二是可以做死的一般情况下(比如我设置成com127)就不需要改动了



因为这个软件还是个测试版所以就做成可以更改的了

出0入0汤圆

发表于 2005-12-22 18:44:35 | 显示全部楼层
我的驱动是虚拟串口1直连虚拟串口2的

出0入0汤圆

 楼主| 发表于 2005-12-22 18:54:04 | 显示全部楼层
zhifeng:

你写的这个驱动我之前就用过了

因为当时有点东西还没搞懂就选了这个相对简单的控件

提前验证一下可行性



有可能的话下个版本会用这个驱动的单串口版

出0入0汤圆

发表于 2006-2-24 11:58:47 | 显示全部楼层
搂主能不能给我也发一份,我也研究研究,vcom2005@163.com

谢谢!!!

出0入0汤圆

发表于 2006-2-24 12:11:02 | 显示全部楼层
楼主, 为什么你的目标板上的灯会亮, 我的不会呢? 我用的是progisp2000, ISP线和你的一样

出0入0汤圆

发表于 2007-3-29 00:29:56 | 显示全部楼层
楼主,能否把控件也发给我啊,我也想研究一下!!谢谢! donggood2003@163.com

出0入0汤圆

发表于 2009-6-18 07:42:06 | 显示全部楼层
楼主所说的控件VSPDCTL.DLL,
CreatePair
DeletePair
我为什么连不上

出0入0汤圆

发表于 2009-6-18 08:52:57 | 显示全部楼层

出0入96汤圆

发表于 2010-5-12 09:28:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-7 17:31:43 | 显示全部楼层
谢谢!

出0入0汤圆

发表于 2010-7-7 17:56:27 | 显示全部楼层
很有用。。。。mark

出0入0汤圆

发表于 2010-11-8 10:30:36 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-11-9 21:59:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-21 23:13:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-14 15:59:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-15 09:27:52 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-6-1 15:00:35 | 显示全部楼层
N年后继续顶

出0入0汤圆

发表于 2011-6-21 20:19:46 | 显示全部楼层
MARK.

出0入0汤圆

发表于 2011-12-24 14:22:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-24 12:38:44 | 显示全部楼层
先顶一下。春节超过5天没上来,被删了!重新注_册的,积分也没了!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-28 19:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表