打印

论单片机如何控制USB外设?

[复制链接]
2599|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
幸福至上|  楼主 | 2015-8-20 11:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 幸福至上 于 2015-8-20 11:25 编辑

      最近,想使用嵌入式系统开发板控制一个USB接口的打印机。最开始采取的方式是,将嵌入式系统的一组UART口通过WCH的CH340G转换成USB信号来把数据传输给打印机。结果打印机一直没反应,测量打印机接口电路输出,也无电压波动。后来查了资料才明白,两个USB从设备之间是不能直接通信的,需要有USB Host来控制数据流才行的。USB通信协议是一种总线通信方式,所有的传输数据都需要通过USB Host控制器才能进行收发传输。好吧,之前想当然了,囧。。。。。。(不对之处,请轻拍~~)       接着上面说,所以要实现两个USB从设备之间的通信,那么势必需要USB Host的介入,也就是说,如果想要使嵌入式系统能够与USB从设备进行数据传输,进而进行控制的话,那么势必需要一块USB Host接口芯片了。
     我在网上也搜了一下,有那么几种USB Host芯片,但以前并未使用过,所以并不清楚是否好用,麻烦大家推荐个比较好使,能够快速实现设计功能的USB Host 芯片。。。
     另外,STM32F10x及以上版本的片子自带USB口,不知道能否直接通过加载USB协议栈并通过片上USB实现USB OTG功能呢,有这样用过的吗?  先谢谢了。;)

相关帖子

沙发
dirtwillfly| | 2015-8-20 11:39 | 只看该作者
支持Host模式usb模块的stm32是可以的

使用特权

评论回复
板凳
chunyang| | 2015-8-20 12:36 | 只看该作者
主USB芯片不少,用起来都差不多,哪个好买用什么即可。用自带主USB的MCU当然也可以,自行比较性价比以及自己的软件编程能力进行方案选择吧。

使用特权

评论回复
地板
幸福至上|  楼主 | 2015-8-20 12:41 | 只看该作者
dirtwillfly 发表于 2015-8-20 11:39
支持Host模式usb模块的stm32是可以的

呦西,我就看到STM32 F103有带USB口,不过没有调试过。是不是需要加载USB协议桟包呢?

使用特权

评论回复
5
幸福至上|  楼主 | 2015-8-20 12:43 | 只看该作者
chunyang 发表于 2015-8-20 12:36
主USB芯片不少,用起来都差不多,哪个好买用什么即可。用自带主USB的MCU当然也可以,自行比较性价比以及自 ...

CH375有用过吗?我现在就在看这个手册,还不是很明白能否实现 对USB打印机的通信连接~~~

使用特权

评论回复
6
songchenping| | 2015-8-20 12:46 | 只看该作者
幸福至上 发表于 2015-8-20 12:41
呦西,我就看到STM32 F103有带USB口,不过没有调试过。是不是需要加载USB协议桟包呢? ...

这个得看你的打印机是个什么通信原理了。

使用特权

评论回复
7
chunyang| | 2015-8-20 12:46 | 只看该作者
幸福至上 发表于 2015-8-20 12:43
CH375有用过吗?我现在就在看这个手册,还不是很明白能否实现 对USB打印机的通信连接~~~ ...

没有问题,任何USB Host芯片都支持USB接口的打印机,不过你要自己编写打印驱动,这一步也同样少不了。

使用特权

评论回复
8
幸福至上|  楼主 | 2015-8-20 14:30 | 只看该作者
chunyang 发表于 2015-8-20 12:46
没有问题,任何USB Host芯片都支持USB接口的打印机,不过你要自己编写打印驱动,这一步也同样少不了。 ...

打印驱动用Windows驱动方式吧 ;)

使用特权

评论回复
9
幸福至上|  楼主 | 2015-8-20 14:32 | 只看该作者
songchenping 发表于 2015-8-20 12:46
这个得看你的打印机是个什么通信原理了。

谢谢,已查看打印机电路,USB转并口的

使用特权

评论回复
10
eyesee2008| | 2015-8-20 16:43 | 只看该作者

使用特权

评论回复
11
泰山特曲123| | 2015-8-20 19:36 | 只看该作者
不知道你是否清楚,单片机通过USB与打印机通信,通信协议如何?你要在单片机实现USB打印机类的协议才行啊。

使用特权

评论回复
12
chunyang| | 2015-8-20 20:40 | 只看该作者
幸福至上 发表于 2015-8-20 14:30
打印驱动用Windows驱动方式吧 ;)

显然不是,你难道会在嵌入式系统上跑Windows?

使用特权

评论回复
13
highend| | 2015-8-20 21:19 | 只看该作者
驱动打印机,最好上嵌入式linux , 某些实时操作系统也有usb host 打印机驱动。
例如freescale的单片机。

可能,通过usb还不如提高网络打印呢。

使用特权

评论回复
14
lifevast01| | 2015-8-20 21:58 | 只看该作者
http://www.wch.cn/productcenter/1.html   这家的很多型号

使用特权

评论回复
15
幸福至上|  楼主 | 2015-8-21 10:11 | 只看该作者
chunyang 发表于 2015-8-20 20:40
显然不是,你难道会在嵌入式系统上跑Windows?

呃,是这样的。原始数据是由PC提供的。我只是提取其中部分进行处理,再使用打印机命令集控制打印一些其他东西。所以windows驱动程序发送什么给打印机,我就转发给打印机 ;) 刚开始没说得太清楚~~

使用特权

评论回复
16
幸福至上|  楼主 | 2015-8-21 10:13 | 只看该作者
highend 发表于 2015-8-20 21:19
驱动打印机,最好上嵌入式linux , 某些实时操作系统也有usb host 打印机驱动。
例如freescale的单片机。
...

那个好是好,就是太费时间了~单片机攻城狮表示很无奈。。。╮(╯▽╰)╭

使用特权

评论回复
17
幸福至上|  楼主 | 2015-8-21 10:14 | 只看该作者
lifevast01 发表于 2015-8-20 21:58
http://www.wch.cn/productcenter/1.html   这家的很多型号

谢谢,已选定用沁恒 CH375,仔细看了下手册,应该可行。。。

使用特权

评论回复
18
caijin| | 2015-8-21 10:38 | 只看该作者
楼主可以考虑用FTDI的USB 桥接芯片,驱动全面。可以加我QQ,给你介绍。

使用特权

评论回复
19
chunyang| | 2015-8-21 12:20 | 只看该作者
幸福至上 发表于 2015-8-21 10:11
呃,是这样的。原始数据是由PC提供的。我只是提取其中部分进行处理,再使用打印机命令集控制打印一些其他 ...

那样会很麻烦,你的系统必须虚拟成同样的打印机,否则Windows是不会输出什么的。

使用特权

评论回复
20
chunyang| | 2015-8-21 12:21 | 只看该作者
幸福至上 发表于 2015-8-21 10:13
那个好是好,就是太费时间了~单片机攻城狮表示很无奈。。。╮(╯▽╰)╭ ...

驱动打印机不难,至少比你想象的方案要简单多了。你的想象需要虚拟打印机,这个要考虑的事情就多多了。

使用特权

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

本版积分规则

个人签名:重庆电子交流圈:521107487,欢迎各位工程师朋友们加入,一起交流讨论,互动分享,共同进步。

38

主题

854

帖子

10

粉丝