打印

电脑圈圈做的USB转串口——源代码包以及电路图

[复制链接]
12068|46
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
computer00|  楼主 | 2007-12-11 01:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
wahahaabc| | 2007-12-11 09:16 | 只看该作者

re:computer00

computer00 大侠的USB转RS232是否这样测试过:用115200波特率做测试,因为115200波特率发送一个字节的时间大概是90us,所以,使用串口调试工具进行自发自收测试,启动自动发送功能,发送时间间隔为10ms,每次发送100个字节,差不多100us发一个字节,在这种情况下测试,是否会有数据丢失?

小弟前段时间做了一个USB转RS232,也是使用51单片机+PDIUSBD12,但是无法通过上述测试

使用特权

评论回复
板凳
computer00|  楼主 | 2007-12-11 10:02 | 只看该作者

使用串口调试助手自发自收,显示数据有问题

好象是多了些回车换行,我突然想起来我是勾了那个发送新行的,
是不是因为这个原因,时间到了它就发了个回车换行,把我的数据
弄乱了?我中午回去再测试。

但是下面的提示接收数量和发送数量却是一样的,我晕。

但是使用两个串口调试助手就没问题了,一个收,一个发。

可以两边同时对发,115200bps收发一个都不漏。发送一个200K的文件大概要
20几秒。

230400bps的我还没测试过,因为我的电脑自带的串口不支持这么高的波特率。
我估计是没问题的。

我串口接收和USB接收分别使用了64bytes的缓冲区,串口接收使用中断方式,
循环缓冲。
100us一字节,处理速度应该是足够了的。我用22.1184M的晶体,大概有2MIPS。

另外我还有几个问题想问下你,就是那些线路状态如何返回?文档里有个SerialState的Notification,
但是我发现主机从来都没去请求过。另外我也有一个中断端输入端点,但是也不知道是否可以通过它返回
状态?我强行返回一些数据,没用。

另外,当主机设置波特率时,我的设备不支持,那我应该返回怎样的信息告诉主机?
我直接将当前设置的波特率(跟主机请求的不一样)在GetLineCoding时返回,结果
主机也认为设置波特率成功了,我晕...真不知道怎么办,文档里也没提到。是不是
不支持这个波特率,就不要返回状态包?文档里也没提到状态包该返回啥,我就返回
了0长度的状态包。

使用特权

评论回复
地板
古道热肠| | 2007-12-11 12:58 | 只看该作者

好呀,支付共享!

使用特权

评论回复
5
doob| | 2007-12-13 12:11 | 只看该作者

支持啊,顶00

使用特权

评论回复
6
clarksh| | 2007-12-14 17:53 | 只看该作者

推荐一款芯片实现USB转串口

FT232  可以实现串口UART转为USB  包括RS232/422/485/TTL

使用特权

评论回复
7
john871410| | 2007-12-20 11:43 | 只看该作者

老大,你太强了

使用特权

评论回复
8
aweyfan| | 2007-12-20 14:06 | 只看该作者

代码看了一下,发现很多缺陷

先记着,以后再说

使用特权

评论回复
9
aweyfan| | 2007-12-20 16:18 | 只看该作者

偶认为的缺陷,欢迎拍砖

1 为什么不用总线方式驱动?
2 d12中断用主程序查询方式处理
3 串口发送居然在死等
4 串口接收明明缓存有数,只送一部分,剩下的第二次送
5 缺少对临界资源的保护

使用特权

评论回复
10
aweyfan| | 2007-12-20 18:03 | 只看该作者

computer00陪小蜜去了,也不来拍?

笔记本到了?

使用特权

评论回复
11
computer00|  楼主 | 2007-12-21 01:31 | 只看该作者

这有啥好拍的?

1 为什么不用总线方式驱动?
——个人不喜欢用总线方式,IO口模拟时序方便控制,想怎么玩就怎么玩。

2 d12中断用主程序查询方式处理
——用查询方式有什么不好的?难道非要搞个中断,在中断里面设置个标志,然后再到主程序中去查询这个标志?

3 串口发送居然在死等
——串口发送死等有啥不好的?反正都没发完,也不想干其它的事了。

4 串口接收明明缓存有数,只送一部分,剩下的第二次送
——这个是一个循环缓冲,你给想一个更好一点的办法出来发送数据?分两次发有什么不好的?出现这样的情况的概率有多少?

5 缺少对临界资源的保护 
——除了串口接收中断之外,其它地方没啥中断了,还要保护哪里的临界资源?


最后声明一下,这个是一个USB学习板,提供给学习USB的人学习USB用,程序越简单越好,硬件越容易理解越好。

使用特权

评论回复
12
王紫豪| | 2007-12-22 01:43 | 只看该作者

hh ,不错

使用特权

评论回复
13
zsl602| | 2007-12-22 11:45 | 只看该作者

哈哈,不错!

哈哈,不错,00有个性。

使用特权

评论回复
14
lltwalkman| | 2007-12-25 21:04 | 只看该作者

OO牛人

设计得由个性发挥,当然约束项也是动力的存在.

使用特权

评论回复
15
bjlcl| | 2007-12-26 23:31 | 只看该作者

qiang!!!

使用特权

评论回复
16
keer_zu| | 2007-12-27 14:10 | 只看该作者

hehe

使用特权

评论回复
17
huangqi412| | 2007-12-27 18:13 | 只看该作者

顶00

使用特权

评论回复
18
52mcu| | 2007-12-27 22:51 | 只看该作者

原理图中P1IDEPORT是个啥器件

使用特权

评论回复
19
52mcu| | 2007-12-27 22:56 | 只看该作者

pc上的驱动程序是如何做的 请圈圈指教

使用特权

评论回复
20
computer00|  楼主 | 2007-12-28 01:25 | 只看该作者

P1IDEPORT是硬盘接口,挂硬盘用的,你可以不用理它

这个是个学习板来的,所以其它东西比较多,例如键盘,LED等。

驱动程序我不用写,只需要弄个inf文件,告诉系统需要复制那些驱动程序文件就行了。
驱动程序是windows自带的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

246

主题

14693

帖子

210

粉丝